File sbt.spec of Package sbt.28307
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "bootstrap"
%bcond_without bootstrap
%else
%bcond_with bootstrap
%endif
%global short_name sbt
# build non-bootstrap packages with tests, cross-referenced sources, etc
%global do_proper 0
%global scala_version 2.10.7
%global scala_short_version 2.10
%global sbt_bootstrap_version 0.13.18
%global sbt_major 0
%global sbt_minor 13
%global sbt_patch 18
%global sbt_build %{nil}
%global sbt_short_version %{sbt_major}.%{sbt_minor}
%global sbt_version %{sbt_major}.%{sbt_minor}.%{sbt_patch}
%global sbt_full_version %{sbt_version}%{sbt_build}
%global typesafe_repo https://repo.typesafe.com/typesafe/ivy-releases
%global ivy_local_dir ivy-local
%global installed_ivy_local %{_datadir}/%{short_name}/%{ivy_local_dir}
%global generic_ivy_artifact() %{1}/%{2}/%{3}/%{4}/jars/%{5}.jar#/%{5}-%{4}.jar
%global generic_ivy_descriptor() %{1}/%{2}/%{3}/%{4}/ivys/ivy.xml#/%{5}-%{4}-ivy.xml
%global sbt_ivy_artifact() %{typesafe_repo}/org.scala-sbt/%{1}/%{sbt_bootstrap_version}/jars/%{1}.jar#/%{1}-%{sbt_bootstrap_version}.jar
%global sbt_ivy_descriptor() %{typesafe_repo}/org.scala-sbt/%{1}/%{sbt_bootstrap_version}/ivys/ivy.xml#/%{1}-%{sbt_bootstrap_version}-ivy.xml
%global sbt_launcher_version 1.0.1
%global sbt_bootstrap_ivy_version 2.3.0-sbt-b18f59ea3bc914a297bb6f1a4f7fb0ace399e310
%global sbt_serialization_version 0.1.2
%global scala_pickling_version 0.10.1
%global template_resolver_version 0.1
%global quasiquotes_version 2.0.1
%global jline_version 2.14.5
%global jansi_version 1.12
%global sbt_ghpages_version 0.5.4
%global sbt_git_version 0.8.5
%global sbt_site_version 0.8.2
%global sbt_jvcheck_version 0.1.0
%global sbt_doge_version 0.1.5
%global sbt_assembly_version 0.14.2
%global sbt_bintray_version 0.5.1
%global scalariform_version 0.1.4
%global sbt_scalariform_version 1.3.0
%global sbt_pgp_version 1.0.0
%global sxr_version 0.3.0
%global sbinary_version 0.4.2
%global scalacheck_version 1.11.4
%global specs2_version 2.3.11
%global testinterface_version 1.0
%global dispatch_http_version 0.8.9
%global want_sxr 0
%global want_specs2 0
%global want_scalacheck 0
%global want_dispatch_http 0
Version: %{sbt_version}
Release: 0
Summary: The simple build tool for Scala and Java projects
License: BSD-3-Clause
URL: http://www.scala-sbt.org
Source0: https://github.com/sbt/sbt/archive/v%{version}%{sbt_build}.tar.gz
# sbt-ghpages plugin
Source1: https://github.com/sbt/sbt-ghpages/archive/v%{sbt_ghpages_version}.tar.gz
# sbt-git plugin
Source2: https://github.com/sbt/sbt-git/archive/v%{sbt_git_version}.tar.gz
# sbt-site plugin
Source3: https://github.com/sbt/sbt-site/archive/v%{sbt_site_version}.tar.gz
# sxr
Source4: https://github.com/harrah/browse/archive/v%{sxr_version}.tar.gz
# specs
Source7: https://github.com/etorreborre/specs2/archive/SPECS2-%{specs2_version}.tar.gz
Source15: https://raw.github.com/willb/climbing-nemesis/master/climbing-nemesis.py
Source16: https://raw.github.com/willb/rpm-packaging/master/sbt-packaging/rpmbuild-sbt.boot.properties
Source17: https://raw.github.com/willb/rpm-packaging/master/sbt-packaging/sbt.boot.properties
# sbt script (to be obsoleted in future releases)
# https://raw.github.com/willb/rpm-packaging/master/sbt-packaging/sbt
# modified to correspond to openSUSE jline versions
Source21: sbt
Source34: https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/%{sbt_bootstrap_version}/srcs/compiler-interface-sources.jar#/compiler-interface-%{sbt_bootstrap_version}-sources.jar
Source71: %{sbt_ivy_artifact sbt}
Source134: %{sbt_ivy_descriptor compiler-interface}
Source171: %{sbt_ivy_descriptor sbt}
Patch0: sbt-%{sbt_version}-build-sbt.patch
Patch1: sbt-maven385.patch
Patch2: sbt-0.13.17-lines.patch
Patch3: sbt-new-ivy.patch
Patch4: sbt-0.13.13-sxr.patch
BuildRequires: apache-ivy
#Source650: https://oss.sonatype.org/service/local/repositories/releases/content/org/scala-sbt/sbt-giter8-resolver/sbt-giter8-resolver_%{scala_short_version}/0.1.0/sbt-giter8-resolver_%{scala_short_version}-0.1.0.jar
#Source660: https://oss.sonatype.org/service/local/repositories/releases/content/org/foundweekends/giter8/giter8_%{scala_short_version}/0.7.1/giter8_%{scala_short_version}-0.7.1.jar
BuildRequires: ivy-local
BuildRequires: java-devel
BuildRequires: javapackages-tools
BuildRequires: jline
BuildRequires: jsch
BuildRequires: json4s-core
BuildRequires: junit
BuildRequires: maven-lib
BuildRequires: proguard
BuildRequires: python3
BuildRequires: sbinary
BuildRequires: sbt-launcher
BuildRequires: sbt-launcher-interface
BuildRequires: scala
BuildRequires: serialization
BuildRequires: template-resolver
BuildRequires: test-interface
BuildRequires: xmvn-resolve
BuildRequires: xmvn-subst
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(commons-httpclient:commons-httpclient)
BuildRequires: mvn(javax.inject:javax.inject)
BuildRequires: mvn(org.apache.commons:commons-lang3)
BuildRequires: mvn(org.bouncycastle:bcpg-jdk16)
BuildRequires: mvn(org.bouncycastle:bcprov-jdk16)
BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds)
BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations)
BuildRequires: mvn(org.codehaus.plexus:plexus-interpolation)
BuildRequires: mvn(org.codehaus.plexus:plexus-utils)
BuildRequires: mvn(org.eclipse.aether:aether-api)
BuildRequires: mvn(org.eclipse.aether:aether-connector-basic)
BuildRequires: mvn(org.eclipse.aether:aether-impl)
BuildRequires: mvn(org.eclipse.aether:aether-spi)
BuildRequires: mvn(org.eclipse.aether:aether-util)
BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject)
BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus)
BuildRequires: mvn(org.fusesource.jansi:jansi)
BuildRequires: mvn(org.jsoup:jsoup)
BuildRequires: mvn(oro:oro)
BuildConflicts: java >= 9
BuildConflicts: java-devel >= 9
BuildConflicts: java-headless >= 9
Requires: apache-commons-lang3
Requires: apache-ivy
Requires: atinject
Requires: guava
Requires: hamcrest-core
Requires: jansi
Requires: javapackages-tools
Requires: jawn-json4s
Requires: jawn-parser
Requires: jawn-util
Requires: jline
Requires: jsch
Requires: json4s-ast
Requires: json4s-core
Requires: jsr-305
Requires: junit
Requires: maven-lib
Requires: maven-resolver-api
Requires: maven-resolver-connector-basic
Requires: maven-resolver-impl
Requires: maven-resolver-spi
Requires: maven-resolver-util
Requires: paranamer
Requires: plexus-classworlds
Requires: plexus-containers-component-annotations
Requires: plexus-interpolation
Requires: plexus-utils
Requires: quasiquotes
Requires: sbinary
Requires: sbt-launcher
Requires: sbt-launcher-interface
Requires: scala
Requires: scala-pickling
Requires: serialization
Requires: sisu-inject
Requires: sisu-plexus
Requires: slf4j
Requires: template-resolver
Requires: test-interface
BuildArch: noarch
%if %{with bootstrap}
Name: %{short_name}-bootstrap
%else
Name: %{short_name}
%endif
# scalacheck
%if %{?want_scalacheck}
Source6: https://github.com/rickynils/scalacheck/archive/%{scalacheck_version}.tar.gz
%endif
%if %{with bootstrap}
Source32: %{sbt_ivy_artifact ivy}
Source33: %{sbt_ivy_artifact task-system}
Source36: %{sbt_ivy_artifact testing}
Source37: %{sbt_ivy_artifact command}
Source38: %{sbt_ivy_artifact test-agent}
Source40: %{sbt_ivy_artifact run}
Source41: %{sbt_ivy_artifact compiler-ivy-integration}
Source44: %{sbt_ivy_artifact collections}
Source45: %{sbt_ivy_artifact persist}
Source46: %{sbt_ivy_artifact classfile}
Source47: %{sbt_ivy_artifact control}
Source49: %{sbt_ivy_artifact apply-macro}
Source51: %{sbt_ivy_artifact interface}
Source52: %{sbt_ivy_artifact main-settings}
Source53: %{sbt_ivy_artifact incremental-compiler}
Source54: %{sbt_ivy_artifact cache}
Source55: %{sbt_ivy_artifact compiler-integration}
Source56: %{sbt_ivy_artifact api}
# include bootstrap libraries
Source57: %{sbt_ivy_artifact main}
Source58: %{sbt_ivy_artifact classpath}
Source59: %{sbt_ivy_artifact logging}
Source60: %{sbt_ivy_artifact compile}
Source61: %{sbt_ivy_artifact process}
Source62: %{sbt_ivy_artifact actions}
Source65: %{sbt_ivy_artifact tracking}
Source66: %{sbt_ivy_artifact tasks}
Source67: %{sbt_ivy_artifact completion}
Source68: %{sbt_ivy_artifact cross}
Source69: %{sbt_ivy_artifact relation}
Source70: %{sbt_ivy_artifact io}
Source73: %{sbt_ivy_artifact logic}
Source132: %{sbt_ivy_descriptor ivy}
Source133: %{sbt_ivy_descriptor task-system}
Source136: %{sbt_ivy_descriptor testing}
Source137: %{sbt_ivy_descriptor command}
Source138: %{sbt_ivy_descriptor test-agent}
Source140: %{sbt_ivy_descriptor run}
Source141: %{sbt_ivy_descriptor compiler-ivy-integration}
Source144: %{sbt_ivy_descriptor collections}
Source145: %{sbt_ivy_descriptor persist}
Source146: %{sbt_ivy_descriptor classfile}
Source147: %{sbt_ivy_descriptor control}
Source149: %{sbt_ivy_descriptor apply-macro}
Source151: %{sbt_ivy_descriptor interface}
Source152: %{sbt_ivy_descriptor main-settings}
Source153: %{sbt_ivy_descriptor incremental-compiler}
Source154: %{sbt_ivy_descriptor cache}
Source155: %{sbt_ivy_descriptor compiler-integration}
Source156: %{sbt_ivy_descriptor api}
Source157: %{sbt_ivy_descriptor main}
Source158: %{sbt_ivy_descriptor classpath}
Source159: %{sbt_ivy_descriptor logging}
Source160: %{sbt_ivy_descriptor compile}
Source161: %{sbt_ivy_descriptor process}
Source162: %{sbt_ivy_descriptor actions}
Source165: %{sbt_ivy_descriptor tracking}
Source166: %{sbt_ivy_descriptor tasks}
Source167: %{sbt_ivy_descriptor completion}
Source168: %{sbt_ivy_descriptor cross}
Source169: %{sbt_ivy_descriptor relation}
Source170: %{sbt_ivy_descriptor io}
Source173: %{sbt_ivy_descriptor logic}
%if %{?want_specs2}
# specs
Source79: https://oss.sonatype.org/content/repositories/releases/org/specs2/specs2_%{scala_short_version}/%{specs2_version}/specs2_%{scala_short_version}-%{specs2_version}.jar
%endif
%if %{do_proper}
# sbt plugins
Source74: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-ghpages/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_ghpages_version}/jars/sbt-ghpages.jar
Source75: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-site/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_site_version}/jars/sbt-site.jar
Source76: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-git/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_git_version}/jars/sbt-git.jar
%endif # do_proper
%if %{?want_sxr}
Source77: %{generic_ivy_artifact http://repo.typesafe.com/typesafe/ivy-releases org.scala-sbt.sxr sxr_%{scala_short_version} %{sxr_version} sxr_%{scala_short_version}}
%endif # want_sxr
# scalacheck
%if %{?want_scalacheck}
Source78: http://oss.sonatype.org/content/repositories/releases/org/scalacheck/scalacheck_%{scala_short_version}/%{scalacheck_version}/scalacheck_%{scala_short_version}-%{scalacheck_version}.jar
%endif
%if %{?want_dispatch_http}
# dispatch-http
Source81: http://oss.sonatype.org/content/repositories/releases/net/databinder/dispatch-http_%{scala_short_version}/%{dispatch_http_version}/dispatch-http_%{scala_short_version}-%{dispatch_http_version}.jar
%endif # want_dispatch_http
%if %{do_proper}
# more plugins
Source90: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.eed3si9n/sbt-doge/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_doge_version}/jars/sbt-doge.jar
Source91: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-javaversioncheck/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_jvcheck_version}/jars/sbt-javaversioncheck.jar
Source92: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-scalariform/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_scalariform_version}/jars/sbt-scalariform.jar
Source93: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.jsuereth/sbt-pgp/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_pgp_version}/jars/sbt-pgp.jar
Source94: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.eed3si9n/sbt-assembly/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_assembly_version}/jars/sbt-assembly.jar
Source95: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.foundweekends/sbt-bintray/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_bintray_version}/jars/sbt-bintray.jar
Source96: https://repo1.maven.org/maven2/org/scalariform/scalariform_%{scala_short_version}/%{scalariform_version}/scalariform_%{scala_short_version}-%{scalariform_version}.jar
Source190: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.eed3si9n/sbt-doge/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_doge_version}/ivys/ivy.xml#/sbt-doge-%{sbt_doge_version}-ivy.xml
Source191: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-javaversioncheck/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_jvcheck_version}/ivys/ivy.xml#/sbt-javaversioncheck-%{sbt_jvcheck_version}-ivy.xml
Source192: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-scalariform/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_scalariform_version}/ivys/ivy.xml#/sbt-scalariform-%{sbt_scalariform_version}-ivy.xml
Source193: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.jsuereth/sbt-pgp/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_pgp_version}/ivys/ivy.xml#/sbt-pgp-%{sbt_pgp_version}-ivy.xml
Source194: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.eed3si9n/sbt-assembly/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_assembly_version}/ivys/ivy.xml#/sbt-assembly-%{sbt_assembly_version}-ivy.xml
Source195: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.foundweekends/sbt-bintray/scala_%{scala_short_version}/sbt_%{sbt_short_version}/%{sbt_bintray_version}/ivys/ivy.xml#/sbt-bintray-%{sbt_bintray_version}-ivy.xml
Source196: https://repo1.maven.org/maven2/org/scalariform/scalariform_%{scala_short_version}/%{scalariform_version}/scalariform_%{scala_short_version}-%{scalariform_version}.pom
%endif # do_proper
%endif # with bootstrap
%if %{without bootstrap}
BuildRequires: %{short_name}-bootstrap
Obsoletes: %{short_name}-bootstrap
%if %{do_proper}
BuildRequires: sbt-ghpages = %{sbt_ghpages_version}
BuildRequires: sbt-git = %{sbt_git_version}
BuildRequires: sbt-site = %{sbt_site_version}
BuildRequires: scalacheck = %{scalacheck_version}
BuildRequires: specs2 = %{specs2_version}
BuildRequires: sxr = %{sxr_version}
%endif
%endif
%description
sbt is the simple build tool for Scala and Java projects.
%prep
%setup -q -n %{short_name}-%{sbt_version}%{sbt_build}
%if !%{do_proper}
%patch0 -p1
%endif
%patch1 -p1
%patch2 -p1
%patch3 -p1
%if !%{do_proper}
%patch4 -p1
%endif
sed -i -e '/% "test"/d' project/Util.scala
cp %{SOURCE15} .
chmod 755 climbing-nemesis.py
cp %{SOURCE16} .
cp %{SOURCE17} .
mkdir %{ivy_local_dir}
./climbing-nemesis.py org.scala-lang scala-library %{ivy_local_dir} --version %{scala_version}
./climbing-nemesis.py org.scala-lang scala-compiler %{ivy_local_dir} --version %{scala_version}
./climbing-nemesis.py org.scala-lang scala-reflect %{ivy_local_dir} --version %{scala_version}
./climbing-nemesis.py org.scala-tools.sbinary sbinary_%{scala_short_version} %{ivy_local_dir} --version 0.4.2
./climbing-nemesis.py jline jline %{ivy_local_dir} --version %{jline_version}
./climbing-nemesis.py com.jcraft jsch %{ivy_local_dir} --version 0.1.50
./climbing-nemesis.py junit junit %{ivy_local_dir} --version 4.11
./climbing-nemesis.py org.hamcrest hamcrest-core %{ivy_local_dir} --version 1.3
./climbing-nemesis.py org.apache.commons commons-lang3 %{ivy_local_dir} --version 3.8.1
./climbing-nemesis.py org.fusesource.jansi jansi %{ivy_local_dir} --version %{jansi_version}
./climbing-nemesis.py org.scala-sbt serialization_%{scala_short_version} %{ivy_local_dir} --version %{sbt_serialization_version}
./climbing-nemesis.py org.json4s json4s-core_%{scala_short_version} %{ivy_local_dir} --version 3.2.10
./climbing-nemesis.py org.json4s json4s-ast_%{scala_short_version} %{ivy_local_dir} --version 3.2.7
./climbing-nemesis.py org.json4s json4s-ast_%{scala_short_version} %{ivy_local_dir} --version 3.2.10
./climbing-nemesis.py org.json4s json4s-ast_%{scala_short_version} %{ivy_local_dir} --version 3.6.3
./climbing-nemesis.py org.typelevel jawn-parser_%{scala_short_version} %{ivy_local_dir} --version 0.14.1
./climbing-nemesis.py org.typelevel jawn-json4s_%{scala_short_version} %{ivy_local_dir} --version 0.14.1
./climbing-nemesis.py org.typelevel jawn-util_%{scala_short_version} %{ivy_local_dir} --version 0.14.1
./climbing-nemesis.py org.apache.ivy ivy %{ivy_local_dir} --version 2.4.0
./climbing-nemesis.py org.scala-sbt launcher-interface %{ivy_local_dir} --version %{sbt_launcher_version}
./climbing-nemesis.py org.scala-sbt launcher-implementation %{ivy_local_dir} --version %{sbt_launcher_version}
./climbing-nemesis.py org.scala-lang.modules scala-pickling_%{scala_short_version} %{ivy_local_dir} --version %{scala_pickling_version}
./climbing-nemesis.py com.thoughtworks.paranamer paranamer %{ivy_local_dir} --version 2.6
./climbing-nemesis.py org.scalamacros quasiquotes_%{scala_short_version} %{ivy_local_dir} --version 2.0.1
./climbing-nemesis.py org.scala-sbt template-resolver %{ivy_local_dir} --version %{template_resolver_version}
./climbing-nemesis.py org.codehaus.plexus plexus-component-annotations %{ivy_local_dir} --version 1.6
./climbing-nemesis.py org.codehaus.plexus plexus-classworlds %{ivy_local_dir} --version 2.5.2
./climbing-nemesis.py org.codehaus.plexus plexus-utils %{ivy_local_dir} --version 3.0.22
./climbing-nemesis.py org.eclipse.aether aether-api %{ivy_local_dir} --version 1.3.1
./climbing-nemesis.py org.apache.maven.resolver maven-resolver-api %{ivy_local_dir} --version 1.7.3
./climbing-nemesis.py org.eclipse.aether aether-spi %{ivy_local_dir} --version 1.3.1
./climbing-nemesis.py org.apache.maven.resolver maven-resolver-spi %{ivy_local_dir} --version 1.7.3
./climbing-nemesis.py org.eclipse.aether aether-util %{ivy_local_dir} --version 1.3.1
./climbing-nemesis.py org.apache.maven.resolver maven-resolver-util %{ivy_local_dir} --version 1.7.3
./climbing-nemesis.py org.apache.maven maven-model %{ivy_local_dir} --version 3.2.3
./climbing-nemesis.py org.apache.maven maven-model %{ivy_local_dir} --version 3.8.6
./climbing-nemesis.py org.apache.maven maven-model-builder %{ivy_local_dir} --version 3.2.3
./climbing-nemesis.py org.apache.maven maven-model-builder %{ivy_local_dir} --version 3.8.6
./climbing-nemesis.py org.apache.maven maven-repository-metadata %{ivy_local_dir} --version 3.2.3
./climbing-nemesis.py org.apache.maven maven-repository-metadata %{ivy_local_dir} --version 3.8.6
./climbing-nemesis.py org.apache.maven maven-builder-support %{ivy_local_dir} --version 3.8.6
./climbing-nemesis.py org.apache.maven maven-artifact %{ivy_local_dir} --version 3.8.6
./climbing-nemesis.py org.codehaus.plexus plexus-utils %{ivy_local_dir} --version 3.3.1
./climbing-nemesis.py org.codehaus.plexus plexus-interpolation %{ivy_local_dir} --version 1.26
./climbing-nemesis.py org.eclipse.sisu org.eclipse.sisu.inject %{ivy_local_dir} --version 0.3.0.M1 --ignore "cdi-api"
./climbing-nemesis.py org.eclipse.sisu org.eclipse.sisu.inject %{ivy_local_dir} --version 0.3.3 --ignore "cdi-api"
./climbing-nemesis.py org.eclipse.sisu org.eclipse.sisu.inject %{ivy_local_dir} --version 0.3.5 --ignore "cdi-api"
./climbing-nemesis.py org.slf4j slf4j-api %{ivy_local_dir} --version 1.7.25
./climbing-nemesis.py org.slf4j slf4j-api %{ivy_local_dir} --version 1.7.32
./climbing-nemesis.py javax.annotation javax.annotation-api %{ivy_local_dir} --version 1.3.2
./climbing-nemesis.py com.google.guava guava %{ivy_local_dir} --version 18.0 --ignore "jsr305"
./climbing-nemesis.py com.google.code.findbugs jsr305 %{ivy_local_dir} --version 1.3.9
./climbing-nemesis.py javax.inject javax.inject %{ivy_local_dir} --version 1 --override javax.inject:javax.inject
./climbing-nemesis.py org.eclipse.sisu org.eclipse.sisu.plexus %{ivy_local_dir} --version 0.3.0.M1
./climbing-nemesis.py org.eclipse.aether aether-impl %{ivy_local_dir} --version 1.0.1.v20141111
./climbing-nemesis.py org.apache.maven.resolver maven-resolver-impl %{ivy_local_dir} --version 1.7.3
./climbing-nemesis.py org.apache.maven.resolver maven-resolver-impl %{ivy_local_dir} --version 1.6.3
./climbing-nemesis.py org.apache.maven.resolver maven-resolver-named-locks %{ivy_local_dir} --version 1.7.3
./climbing-nemesis.py org.eclipse.aether aether-connector-basic %{ivy_local_dir} --version 1.0.1.v20141111
./climbing-nemesis.py org.apache.maven maven-aether-provider %{ivy_local_dir} --version 3.2.3
# test-interface
./climbing-nemesis.py org.scala-sbt test-interface %{ivy_local_dir} --version %{testinterface_version}
./climbing-nemesis.py --jarfile %{SOURCE34} --ivyfile %{SOURCE134} org.scala-sbt compiler-interface %{ivy_local_dir} --version %{sbt_bootstrap_version}
%if %{with bootstrap}
cp %{SOURCE171} org.scala-sbt.sbt-%{sbt_bootstrap_version}.ivy.xml
sed -i -e '/precompiled/d' org.scala-sbt.sbt-%{sbt_bootstrap_version}.ivy.xml
./climbing-nemesis.py --jarfile %{SOURCE71} --ivyfile org.scala-sbt.sbt-%{sbt_bootstrap_version}.ivy.xml org.scala-sbt sbt %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE57} --ivyfile %{SOURCE157} org.scala-sbt main %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE62} --ivyfile %{SOURCE162} org.scala-sbt actions %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE52} --ivyfile %{SOURCE152} org.scala-sbt main-settings %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE32} --ivyfile %{SOURCE132} org.scala-sbt ivy %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE33} --ivyfile %{SOURCE133} org.scala-sbt task-system %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE36} --ivyfile %{SOURCE136} org.scala-sbt testing %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE37} --ivyfile %{SOURCE137} org.scala-sbt command %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE40} --ivyfile %{SOURCE140} org.scala-sbt run %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE41} --ivyfile %{SOURCE141} org.scala-sbt compiler-ivy-integration %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE55} --ivyfile %{SOURCE155} org.scala-sbt compiler-integration %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE56} --ivyfile %{SOURCE156} org.scala-sbt api %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE58} --ivyfile %{SOURCE158} org.scala-sbt classpath %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE61} --ivyfile %{SOURCE161} org.scala-sbt process %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE65} --ivyfile %{SOURCE165} org.scala-sbt tracking %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE66} --ivyfile %{SOURCE166} org.scala-sbt tasks %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE67} --ivyfile %{SOURCE167} org.scala-sbt completion %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE69} --ivyfile %{SOURCE169} org.scala-sbt relation %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE73} --ivyfile %{SOURCE173} org.scala-sbt logic %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE51} --ivyfile %{SOURCE151} org.scala-sbt interface %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE70} --ivyfile %{SOURCE170} org.scala-sbt io %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE68} --ivyfile %{SOURCE168} org.scala-sbt cross %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE47} --ivyfile %{SOURCE147} org.scala-sbt control %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE46} --ivyfile %{SOURCE146} org.scala-sbt classfile %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE53} --ivyfile %{SOURCE153} org.scala-sbt incremental-compiler %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE60} --ivyfile %{SOURCE160} org.scala-sbt compile %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE45} --ivyfile %{SOURCE145} org.scala-sbt persist %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE59} --ivyfile %{SOURCE159} org.scala-sbt logging %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE54} --ivyfile %{SOURCE154} org.scala-sbt cache %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE38} --ivyfile %{SOURCE138} org.scala-sbt test-agent %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE44} --ivyfile %{SOURCE144} org.scala-sbt collections %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE49} --ivyfile %{SOURCE149} org.scala-sbt apply-macro %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE51} --ivyfile %{SOURCE151} org.scala-sbt interface %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py --jarfile %{SOURCE70} --ivyfile %{SOURCE170} org.scala-sbt io %{ivy_local_dir} --version %{sbt_bootstrap_version}
./climbing-nemesis.py org.apache.ivy ivy %{ivy_local_dir} --version %{sbt_bootstrap_ivy_version} --override org.scala-sbt.ivy:ivy
%if %{?want_specs2}
./climbing-nemesis.py org.specs2 specs2_%{scala_short_version} %{ivy_local_dir} --version %{specs2_version} --jarfile %{SOURCE79}
%endif # want_specs2
# scalacheck
%if %{?want_scalacheck}
./climbing-nemesis.py --jarfile %{SOURCE78} org.scalacheck scalacheck %{ivy_local_dir} --version %{scalacheck_version} --scala %{scala_short_version}
%endif # want_scalacheck
%if %{?want_sxr}
./climbing-nemesis.py --jarfile %{SOURCE77} org.scala-sbt.sxr sxr %{ivy_local_dir} --version %{sxr_version} --scala %{scala_short_version}
./climbing-nemesis.py --jarfile %{SOURCE77} org.scala-sbt sxr %{ivy_local_dir} --version %{sxr_version} --scala %{scala_short_version}
%endif # want_sxr
%if %{do_proper}
./climbing-nemesis.py --jarfile %{SOURCE74} com.typesafe.sbt sbt-ghpages %{ivy_local_dir} --version %{sbt_ghpages_version} --meta e:scalaVersion=%{scala_short_version} --meta e:sbtVersion=%{sbt_short_version}
./climbing-nemesis.py --jarfile %{SOURCE75} com.typesafe.sbt sbt-site %{ivy_local_dir} --version %{sbt_site_version} --meta e:scalaVersion=%{scala_short_version} --meta e:sbtVersion=%{sbt_short_version}
./climbing-nemesis.py --jarfile %{SOURCE76} com.typesafe.sbt sbt-git %{ivy_local_dir} --version %{sbt_git_version} --meta e:scalaVersion=%{scala_short_version} --meta e:sbtVersion=%{sbt_short_version}
./climbing-nemesis.py --jarfile %{SOURCE90} --ivyfile %{SOURCE190} com.eed3si9n sbt-doge %{ivy_local_dir} --version %{sbt_doge_version}
./climbing-nemesis.py --jarfile %{SOURCE91} --ivyfile %{SOURCE191} com.typesafe.sbt sbt-javaversioncheck %{ivy_local_dir} --version %{sbt_jvcheck_version}
./climbing-nemesis.py --jarfile %{SOURCE92} --ivyfile %{SOURCE192} com.typesafe.sbt sbt-scalariform %{ivy_local_dir} --version %{sbt_scalariform_version}
./climbing-nemesis.py --jarfile %{SOURCE93} --ivyfile %{SOURCE193} com.jsuereth sbt-pgp %{ivy_local_dir} --version %{sbt_pgp_version}
./climbing-nemesis.py --jarfile %{SOURCE94} --ivyfile %{SOURCE194} com.eed3si9n sbt-assembly %{ivy_local_dir} --version %{sbt_assembly_version}
./climbing-nemesis.py --jarfile %{SOURCE95} --ivyfile %{SOURCE195} org.foundweekends sbt-bintray %{ivy_local_dir} --version %{sbt_bintray_version}
%endif
# dispatch-http
%if %{?want_dispatch_http}
./climbing-nemesis.py --jarfile %{SOURCE81} net.databinder dispatch-http_%{scala_short_version} %{ivy_local_dir} --version %{dispatch_http_version}
%endif
%else
# If we aren't bootstrapping, copy installed jars into local ivy cache
# dir. In the future, we'll use MikoĊaj's new xmvn Ivy resolver.
# sbt components
for jar in actions api apply-macro cache classfile classpath collections command compile compiler-integration compiler-ivy-integration completion control cross datatype-generator incremental-compiler interface io ivy logging logic main main-settings persist process relation run sbt scripted-framework scripted-plugin scripted-sbt tasks task-system test-agent testing tracking; do
./climbing-nemesis.py --jarfile %{_javadir}/%{short_name}/${jar}.jar --ivyfile %{installed_ivy_local}/org.scala-sbt/${jar}/%{sbt_bootstrap_version}/ivy.xml org.scala-sbt ${jar} %{ivy_local_dir} --version %{sbt_bootstrap_version}
done
%endif # with bootstrap
%if !%{do_proper}
sed -i -e '/sbt-doge/d' project/plugins.sbt
sed -i -e '/sbt-ghpages/d' project/plugins.sbt
sed -i -e '/sbt-git/d' project/plugins.sbt
sed -i -e '/sbt-javaversioncheck/d' project/plugins.sbt
sed -i -e '/sbt-pgp/d' project/plugins.sbt
sed -i -e '/sbt-scalariform/d' project/plugins.sbt
sed -i -e '/sbt-site/d' project/plugins.sbt
sed -i -e '/sbt-bintray/d' project/plugins.sbt
sed -i -e '/sbt-assembly/d' project/plugins.sbt
rm -f main/src/main/scala/sbt/plugins/Giter8ResolverPlugin.scala
sed -i '/sbt.plugins.Giter8TemplatePlugin/d' main/src/main/scala/sbt/PluginDiscovery.scala
sed -i 's/sbt.plugins.JUnitXmlReportPlugin,/sbt.plugins.JUnitXmlReportPlugin/' main/src/main/scala/sbt/PluginDiscovery.scala
#sed -i "/templateResolverApi/d" project/Dependencies.scala
#sed -i "/templateResolverApi/d" build.sbt
%endif
for props in rpmbuild-sbt.boot.properties sbt.boot.properties ; do
sed -i -e 's/FEDORA_SCALA_VERSION/%{scala_version}/g' $props
sed -i -e 's/FEDORA_SBT_VERSION/%{sbt_version}/g' $props
done
sed -i -e 's/0[.]13[.]17/%{sbt_bootstrap_version}/g' project/build.properties
sed -i -e 's/["]2[.]10[.][23456]["]/\"%{scala_version}\"/g' $(find . -name \*.sbt -type f) $(find . -name \*.xml) $(find . -name \*.scala)
sed -i -e 's#org\.scala-sbt\.ivy#org.apache.ivy#g' project/Dependencies.scala
sed -i -e 's#2[.]3[.]0-sbt-.*["]#2.4.0\"#g' project/Dependencies.scala
%if !%{do_proper}
rm -f project/Docs.scala
rm -f project/Formatting.scala
rm -f project/NightlyPlugin.scala
rm -f project/Release.scala
rm -f project/SiteMap.scala
rm -f project/StatusPlugin.scala
%endif
mkdir sbt-boot-dir
%if %{with bootstrap}
mkdir -p sbt-boot-dir/scala-%{scala_version}/org.scala-sbt/%{short_name}/%{sbt_bootstrap_version}/
mkdir -p sbt-boot-dir/scala-%{scala_version}/lib
for jar in $(find %{ivy_local_dir}/ -name \*.jar | grep fusesource) ; do
cp --symbolic-link $(readlink $jar) sbt-boot-dir/scala-%{scala_version}/lib
done
# this is a hack, obvs
for jar in $(find %{ivy_local_dir}/ -name \*.jar | grep bouncycastle) ; do
cp --symbolic-link $(readlink $jar) sbt-boot-dir/scala-%{scala_version}/lib
done
%endif
mkdir -p scala/lib
for jar in %{_javadir}/scala/*.jar ; do
cp --symbolic-link $jar scala/lib
done
%build
%if %{with bootstrap}
java \
-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled \
-cp $(build-classpath scala ivy sbt-launcher) \
-Dfedora.sbt.ivy.dir=$PWD/%{ivy_local_dir} -Dfedora.sbt.boot.dir=$PWD/sbt-boot-dir/ \
-Divy.checksums='""' -Dsbt.boot.properties=$PWD/rpmbuild-sbt.boot.properties -Dsbt.log.noformat=true \
xsbt.boot.Boot package "set publishTo in Global := Some(Resolver.file(\"published\", file(\"published\"))(Resolver.ivyStylePatterns) ivys \"$(pwd)/published/[organization]/[module]/[revision]/ivy.xml\" artifacts \"$(pwd)/published/[organization]/[module]/[revision]/[artifact]-[revision].[ext]\")" publish makePom
%else
export SBT_IVY_DIR=$PWD/%{ivy_local_dir}
export SBT_BOOT_DIR=$PWD/sbt-boot-dir/
export SBT_BOOT_PROPERTIES=rpmbuild-sbt.boot.properties
sbt -Dsbt.log.noformat=true package "set publishTo in Global := Some(Resolver.file(\"published\", file(\"published\"))(Resolver.ivyStylePatterns) ivys \"$(pwd)/published/[organization]/[module]/[revision]/ivy.xml\" artifacts \"$(pwd)/published/[organization]/[module]/[revision]/[artifact]-[revision].[ext]\")" publish makePom
%endif
# XXX: this is a hack; we seem to get correct metadata but bogus JARs
# from "sbt publish" for some reason
for f in $(find published -name \*.jar ) ; do
find . -ipath \*target\* -and -name $(basename $f) -exec cp '{}' $f \;
done
%install
mkdir -p %{buildroot}/%{_javadir}/%{short_name}
# collect and install SBT jars
find published -name \*.jar | grep -v sbt-launch.jar | grep %{sbt_full_version}.jar | xargs -I JAR cp JAR %{buildroot}/%{_javadir}/%{short_name}
mkdir -p %{buildroot}/%{_bindir}
cp -p %{SOURCE21} %{buildroot}/%{_bindir}/%{short_name}
chmod 755 %{buildroot}/%{_bindir}/%{short_name}
pushd %{buildroot}/%{_javadir}/%{short_name}
for jar in *.jar ; do
mv $jar $(echo $jar | sed -e 's/-%{sbt_full_version}//g')
done
popd
rm -f %{buildroot}/%{_javadir}/%{short_name}/sbt-launch*.jar
mkdir -p %{buildroot}/%{_sysconfdir}/%{short_name}
# XXXXXXX
for props in rpmbuild-sbt.boot.properties sbt.boot.properties ; do
sed 's/debug/info/' < $props > %{buildroot}/%{_sysconfdir}/%{short_name}/$props
done
mkdir -p %{buildroot}/%{installed_ivy_local}
# remove things that we only needed for the bootstrap build
rm -rf %{ivy_local_dir}/net.databinder
rm -rf %{ivy_local_dir}/com.typesafe.sbt
rm -rf %{ivy_local_dir}/org.scalacheck
rm -rf %{ivy_local_dir}/org.scala-sbt.sxr
rm -rf %{ivy_local_dir}/cache
rm -rf %{ivy_local_dir}/org.scala-sbt/sbt-launch
(cd %{ivy_local_dir} ; tar --exclude=.md5 --exclude=.sha1 -cf - .) | (cd %{buildroot}/%{installed_ivy_local} ; tar -xf - )
(cd published ; tar --exclude=\*.md5 --exclude=\*.sha1 -cf - .) | (cd %{buildroot}/%{installed_ivy_local} ; tar -xf - )
for bootjar in $(find %{buildroot}/%{installed_ivy_local}/org.scala-sbt/*/%{sbt_version}/ -name \*-%{sbt_version}.jar) ; do
rm -f $bootjar
ln -s %{_javadir}/%{short_name}/$(basename $bootjar -%{sbt_version}.jar).jar $bootjar
done
%if %{with bootstrap}
concretize() {
src=$(readlink $1)
rm $1 && cp $src $1
}
# copy other bootstrap dependency jars from their sources
for depjar in $(find %{buildroot}/%{installed_ivy_local} -lname %{_sourcedir}\* ) ; do
concretize $depjar
done
%endif # with bootstrap
find %{buildroot}/%{installed_ivy_local} -name \*.lock -delete
find %{buildroot}/%{_datadir}/%{short_name} -name \*test-interface\* | xargs rm -rf
./climbing-nemesis.py org.scala-sbt test-interface %{buildroot}/%{installed_ivy_local} --version %{testinterface_version}
find %{buildroot}/%{_datadir}/%{short_name} -name \*launcher-interface\* | xargs rm -rf
./climbing-nemesis.py org.scala-sbt launcher-interface %{buildroot}/%{installed_ivy_local} --version %{sbt_launcher_version}
find %{buildroot}/%{_datadir}/%{short_name} -name \*launcher-implementation\* | xargs rm -rf
./climbing-nemesis.py org.scala-sbt launcher-implementation %{buildroot}/%{installed_ivy_local} --version %{sbt_launcher_version}
### install POM files
mkdir -p %{buildroot}/%{_mavenpomdir}
rm -f .rpm_pomfiles
touch .rpm_pomfiles
declare -a shortnames
for pom in $(find ./*/ -name \*%{sbt_full_version}.pom -a ! -name \*sbtroot\*) ; do
shortname=$(echo $pom | sed -e 's/^.*[/]\([a-z-]\+\)-%{sbt_full_version}.pom$/\1/g')
echo installing POM $pom to %{_mavenpomdir}/JPP.%{short_name}-${shortname}.pom
cp $pom %{buildroot}/%{_mavenpomdir}/JPP.%{short_name}-${shortname}.pom
echo %{_mavenpomdir}/JPP.%{short_name}-${shortname}.pom >> .rpm_pomfiles
shortnames=( "${shortnames[@]}" $shortname )
done
echo shortnames are ${shortnames[@]}
for sub in ${shortnames[@]} ; do
echo running add_maven_depmap JPP.%{short_name}-${sub}.pom %{short_name}/${sub}.jar
%add_maven_depmap JPP.%{short_name}-${sub}.pom %{short_name}/${sub}.jar
done
%files -f .mfiles
%{_datadir}/%{short_name}
%{_bindir}/%{short_name}*
%{_javadir}/%{short_name}
%{_sysconfdir}/%{short_name}
%doc README.md
%license LICENSE NOTICE
%changelog