%global fullversion %{version} %global release_repository http://nexus.scala-tools.org/content/repositories/releases %global snapshot_repository http://nexus.scala-tools.org/content/repositories/snapshots %global jansi_jar %{_javadir}/jansi/jansi.jar %global jline2_jar %{_javadir}/jline/jline.jar %global scaladir %{_datadir}/scala %global want_jdk8 1 %global bootstrap_build 0 Name: scala Version: 2.10.6 Release: 14%{?dist} Summary: A hybrid functional/object-oriented language for the JVM BuildArch: noarch # License was confirmed to be standard BSD by fedora-legal # https://www.redhat.com/archives/fedora-legal-list/2007-December/msg00012.html # files in forkjoin module are under CC0 # files in threadpool module are under Public Domain License: BSD and CC0 and Public Domain URL: http://www.scala-lang.org/ # ./generate-tarball.sh Source0: %{name}-%{version}.tar.gz Source1: scala-library-2.10.0-bnd.properties # Bootstrap file generated by ./get-sources.sh Source2: scala-2.10.3-bootstrap.tgz # git information generated by ./get-sources.sh Source3: scala.gitinfo # we need this binary copy of the scala 2.10.4 compiler # for bootstrapping under Java 8; this can be removed if # necessary after Scala 2.10.5 is released if it uses 2.10.4 # for bootstrapping. Source4: http://www.scala-lang.org/files/archive/scala-2.10.4.tgz # Remove bundled binaries which are possibly proprietary Source5: generate-tarball.sh # Source0: http://www.scala-lang.org/downloads/distrib/files/scala-sources-%%{fullversion}.tgz # Change the default classpath (SCALA_HOME) Patch1: scala-2.10.0-tooltemplate.patch # Use system jline2 instead of bundled jline2 Patch2: scala-2.10.3-use_system_jline.patch # change org.scala-lang jline in org.sonatype.jline jline Patch3: scala-2.10.3-compiler-pom.patch # Patch Swing module for JDK 1.7 Patch4: scala-2.10.2-java7.patch # fix incompatibilities with JLine 2.7 Patch6: scala-2.10-jline.patch # work around a known bug when running binary-compatibility tests against # non-optimized builds (we can't do optimized builds due to another bug): # http://grokbase.com/t/gg/scala-internals/1347g1jahq/2-10-x-bc-test-fails # Patch7: scala-2.10.1-bc.patch Patch8: scala-2.10.4-build_xml.patch # Stop scaladoc from trying to bundle non-existent resources that were # removed due to being in object form only, whithout sources Patch9: scala-2.10.6-scaladoc-resources.patch Source21: scala.keys Source22: scala.mime Source23: scala-mime-info.xml Source24: scala.ant.d Source31: scala-bootstript.xml BuildRequires: java-devel >= 1:1.7.0 BuildRequires: ant BuildRequires: ant-junit BuildRequires: ant-contrib BuildRequires: jline >= 2.10 BuildRequires: aqute-bnd BuildRequires: junit BuildRequires: javapackages-local %if !(0%{?bootstrap_build}) BuildRequires: scala %endif # Require full javapackages-tools since scripts use # /usr/share/java-utils/java-functions Requires: javapackages-tools Requires: jansi Requires: java-headless >= 1:1.7.0 Requires: jline >= 2.10 %{?filter_setup: %filter_from_requires /ant/d; %filter_setup } %description Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java. %package apidoc Summary: Documentation for the Scala programming language %description apidoc Scala is a general purpose programming language for the JVM that blends object-oriented and functional programming. This package provides reference and API documentation for the Scala programming language. %package swing Summary: The swing library for the scala programming languages Requires: scala = %{version}-%{release} Requires: java >= 1:1.7.0 %description swing This package contains the swing library for the scala programming languages. This library is required to develope GUI-releate applications in scala. The release provided by this package is not the original version from upstream because this version is not compatible with JDK-1.7. %package -n ant-scala Summary: Development files for Scala Requires: scala = %{version}-%{release}, ant %description -n ant-scala Scala is a general purpose programming language for the JVM that blends object-oriented and functional programming. This package enables support for the scala ant tasks. %if 0 %package examples Summary: Examples for the Scala programming language # Otherwise it will pick up some perl module Autoprov: 0 Requires: scala = %{version}-%{release} Requires: ant %description examples Scala is a general purpose programming language for the JVM that blends object-oriented and functional programming. This package contains examples for the Scala programming language %package swing-examples Summary: Examples for the Scala Swing library Requires: scala = %{version}-%{release} Requires: ant %description swing-examples This package contains examples for the Swing library of the Scala language which is required to create GUI applications in the Scala programming language. %endif %prep %global _default_patch_fuzz 2 %setup -q %patch1 -p1 -b .tool %patch2 -p1 -b .sysjline %patch3 -p1 -b .compiler-pom %patch4 -p1 -b .jdk7 %patch6 -p1 -b .rvk # %patch7 -p1 -b .bc %patch8 -p1 -b .bld %patch9 -p1 -b .scaladoc echo "starr.version=2.10.4\nstarr.use.released=0" > starr.number pushd src rm -rf jline popd sed -i '/is not supported by/d' build.xml sed -i '/exec.*pull-binary-libs.sh/d' build.xml %if 0%{?bootstrap_build} %global do_bootstrap -DdoBootstrapBuild=yes tar -xzvf %{SOURCE2} %if %{want_jdk8} tar -xzvf %{SOURCE4} --strip-components=1 scala-2.10.4/lib %endif %else %global do_bootstrap %{nil} %endif pushd lib # fjbg.jar ch.epfl.lamp # forkjoin.jar scala.concurrent.forkjoin available @ https://bugzilla.redhat.com/show_bug.cgi?id=854234 as jsr166y # find -not \( -name 'scala-compiler.jar' -or -name 'scala-library.jar' -or -name 'midpapi10.jar' -or \ # -name 'msil.jar' -or -name 'fjbg.jar' -or -name 'forkjoin.jar' \) -and -name '*.jar' -delete # midpapi10.jar https://bugzilla.redhat.com/show_bug.cgi?id=807242 ? # msil.jar ch.epfl.lamp.compiler # scala-compiler.jar # scala-library-src.jar # scala-library.jar %if !(0%{?bootstrap_build}) rm -rf scala-compiler.jar ln -s $(build-classpath scala/scala-compiler.jar) scala-compiler.jar rm -rf scala-library.jar ln -s $(build-classpath scala/scala-library.jar) scala-library.jar rm -rf scala-reflect.jar ln -s $(build-classpath scala/scala-reflect.jar) scala-reflect.jar %endif pushd ant rm -rf ant.jar rm -rf ant-contrib.jar ln -s $(build-classpath ant.jar) ant.jar ln -s $(build-classpath ant/ant-contrib) ant-contrib.jar # rm -rf ant-dotnet-1.0.jar # rm -rf maven-ant-tasks-2.1.1.jar # rm -rf vizant.jar popd popd cp -rf %{SOURCE31} . sed -i -e 's!@JLINE@!%{jline2_jar}!g' build.xml echo echo $(head -n 1 %{SOURCE3}) > tools/get-scala-commit-sha echo echo $(tail -n 1 %{SOURCE3}) > tools/get-scala-commit-date chmod 755 tools/get-scala-* %build export ANT_OPTS="-Xms2048m -Xmx2048m %{do_bootstrap}" # NB: the "build" task is (unfortunately) necessary # build-opt will fail due to a scala optimizer bug # and its interaction with the system jline # ant -f scala-bootstript.xml build ant build docs || exit 1 pushd build/pack/lib mv scala-library.jar scala-library.jar.no bnd wrap --properties %{SOURCE1} --output scala-library.jar \ --version "%{version}" scala-library.jar.no popd %check # these tests fail, but their failures appear spurious rm -f test/files/run/parserJavaIdent.scala rm -rf test/files/presentation/implicit-member rm -rf test/files/presentation/t5708 rm -rf test/files/presentation/ide-bug-1000349 rm -rf test/files/presentation/ide-bug-1000475 rm -rf test/files/presentation/callcc-interpreter rm -rf test/files/presentation/ide-bug-1000531 rm -rf test/files/presentation/visibility rm -rf test/files/presentation/ping-pong rm -f test/osgi/src/ReflectionToolboxTest.scala # fails under mock but not under rpmbuild rm -f test/files/run/t6223.scala ## Most test dependencies still aren't available in Fedora # ant test %install install -d $RPM_BUILD_ROOT%{_bindir} for prog in scaladoc fsc scala scalac scalap; do install -p -m 755 build/pack/bin/$prog $RPM_BUILD_ROOT%{_bindir} done install -p -m 755 -d $RPM_BUILD_ROOT%{scaladir}/lib # Add symlinks in lib directory %mvn_file ':{*}:jar:' %{name}/@1 %{scaladir}/lib/@1 # Add compat symlinks to POMs because climbing-nemesis uses the old JPP naming convention %mvn_file ':{*}:pom:' %{name}/@1 JPP.%{name}-@1 %mvn_package :scala-swing swing # XXX: add scala-partest when it works again for libname in scala-compiler \ scala-library \ scala-reflect \ scalap \ scala-swing ; do sed -i "s|@VERSION@|%{fullversion}|" src/build/maven/$libname-pom.xml sed -i "s|@RELEASE_REPOSITORY@|%{release_repository}|" src/build/maven/$libname-pom.xml sed -i "s|@SNAPSHOT_REPOSITORY@|%{snapshot_repository}|" src/build/maven/$libname-pom.xml %mvn_artifact src/build/maven/$libname-pom.xml build/pack/lib/$libname.jar done ln -s $(abs2rel %{jline2_jar} %{scaladir}/lib) $RPM_BUILD_ROOT%{scaladir}/lib ln -s $(abs2rel %{jansi_jar} %{scaladir}/lib) $RPM_BUILD_ROOT%{scaladir}/lib %mvn_install install -d $RPM_BUILD_ROOT%{_sysconfdir}/ant.d install -p -m 644 %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/ant.d/scala %if 0 cp -pr docs/examples $RPM_BUILD_ROOT%{_datadir}/scala/ %endif install -d $RPM_BUILD_ROOT%{_datadir}/mime-info install -p -m 644 %{SOURCE21} %{SOURCE22} $RPM_BUILD_ROOT%{_datadir}/mime-info/ install -d $RPM_BUILD_ROOT%{_datadir}/mime/packages/ install -p -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_datadir}/mime/packages/ sed -i -e 's,@JAVADIR@,%{_javadir},g' -e 's,@DATADIR@,%{_datadir},g' $RPM_BUILD_ROOT%{_bindir}/* install -d $RPM_BUILD_ROOT%{_mandir}/man1 install -p -m 644 build/scaladoc/manual/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1 %post touch --no-create %{_datadir}/mime/packages &> /dev/null || : %postun if [ $1 -eq 0 ]; then update-mime-database %{_datadir}/mime &> /dev/null || : fi %posttrans update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %files -f .mfiles %{_bindir}/* %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/lib %{_datadir}/%{name}/lib/j*.jar %{_datadir}/mime-info/* %{_datadir}/mime/packages/* %{_mandir}/man1/* %license docs/LICENSE %files swing -f .mfiles-swing %license docs/LICENSE %files -n ant-scala # Following is plain config because the ant task classpath could change from # release to release %config %{_sysconfdir}/ant.d/* %license docs/LICENSE %files apidoc %doc build/scaladoc/library/* %license docs/LICENSE %if 0 %files examples %{_datadir}/scala/examples %exclude %{_datadir}/scala/examples/swing %license docs/LICENSE %files swing-examples %{_datadir}/scala/examples/swing %license docs/LICENSE %endif %changelog * Fri Oct 12 2018 Mikolaj Izdebski - 2.10.6-14 - Re-enable docs generation during build * Fri Oct 12 2018 Mikolaj Izdebski - 2.10.6-13 - Stop scaladoc from trying to bundle non-existent resources - Temporarly disable docs generation during build * Tue Jul 31 2018 Severin Gehwolf - 2.10.6-12 - Require full javapackages-tools for scripts. * Tue Jul 31 2018 Michael Simacek - 2.10.6-11 - Correct license tag to include CC0 and Public Domain - Repack tarball to remove possibly proprietary binaries - Use %%license macro * Sat Jul 14 2018 Fedora Release Engineering - 2.10.6-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Tue Jul 3 2018 Mikolaj Izdebski - 2.10.6-9 - Include bootstrap sources in SRPM * Fri Feb 09 2018 Fedora Release Engineering - 2.10.6-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Wed Jan 31 2018 Michael Simacek - 2.10.6-7 - Port from deprecated add_maven_depmap to mvn_install - Remove unused BR felix-framework - Fix unowned directory * Thu Dec 7 2017 Mikolaj Izdebski - 2.10.6-6 - Add missing BR on javapackages-local - Resolves: rhbz#1512883 * Thu Jul 27 2017 Fedora Release Engineering - 2.10.6-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Jul 07 2017 Igor Gnatenko - 2.10.6-4 - Rebuild due to bug in RPM (RHBZ #1468476) * Sat Feb 11 2017 Fedora Release Engineering - 2.10.6-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Thu Jan 5 2017 Mikolaj Izdebski - 2.10.6-2 - Update to current packaging guidelines - Remove legacy build conditionals - Remove file requires - Remove usage of shutil (not available on RHEL) * Wed Nov 16 2016 William Benton - 2.10.6-1 - upstream version bump * Thu Feb 04 2016 Fedora Release Engineering - 2.10.4-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Thu Jul 16 2015 Michael Simacek - 2.10.4-8 - Use aqute-bnd-2.4.1 * Thu Jul 9 2015 William Benton - 2.10.4-7 - non-bootstrap build * Thu Jul 9 2015 William Benton - 2.10.4-6 - bootstrap build * Fri Jun 19 2015 Fedora Release Engineering - 2.10.4-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sun May 24 2015 Peter Robinson 2.10.4-4 - Drop ExcludeArch for ARM, can't be both noarch and arch exclusive * Wed Oct 1 2014 William Benton - 2.10.4-3 - non-bootstrap build * Sat Sep 27 2014 Rex Dieter 2.10.4-2 - update/optimize mime scriptlets * Mon Sep 15 2014 William Benton - 2.10.4-1 - updated to upstream version 2.10.4 - fixes for Java 8 compatibility: use scala 2.10.4 for bootstrapping * Sun Jun 08 2014 Fedora Release Engineering - 2.10.3-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Fri Feb 21 2014 Jochen Schmitt - 2.10.3-11 - Implenting usage of headless java (#1068518) - Fix rpmdeps version sanity check issue * Mon Dec 9 2013 Jochen Schmitt - 2.10.3-10 - Activate compiler-pom patch again * Sun Dec 8 2013 Jochen Schmitt - 2.10.3-9 - Put the swing library into a seperate subpackage * Wed Nov 27 2013 Jochen Schmitt - 2.10.3-8 - Filter osgi(org.apache.ant) Req. (#975598) * Thu Oct 31 2013 Jochen Schmitt - 2.10.3-7 - Fix wrong condition for jline Req. * Wed Oct 30 2013 Jochen Schmitt - 2.10.3-6 - Jline2 is now jline in Rawhide - Fix an issue with jansi.jar in F-20 (#1025062) * Tue Oct 22 2013 Jochen Schmitt - 2.10.3-5 - Fix typo * Mon Oct 21 2013 Jochen Schmitt - 2.10.3-4 - Fix jline2.jar path for Rawhide (#1021465) - Add jpackage-utils as a BR * Tue Oct 15 2013 Jochen Schmitt - 2.10.3-3 - Fix change classpath of jansi.jar - Dynamicly setting of version in bnd.properties - automatic generation of gitdate and gitsha * Sun Oct 13 2013 Jochen Schmitt - 2.10.3-2 - Fix REPL crash issue when entering an exclaimation mark (#890069) * Thu Oct 10 2013 Jochen Schmitt - 2.10.3-1 - New upstream release * Thu Sep 26 2013 William Benton - 2.10.2-1 - upstream version 2.10.2 * Thu Sep 12 2013 William Benton - 2.10.1-4 - updated upstream source location (thanks to Antoine Gourlay for the observation) * Wed Sep 11 2013 William Benton - 2.10.1-3 - Fixes to build and install on F19 * Sun Aug 04 2013 Fedora Release Engineering - 2.10.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Sat Mar 16 2013 Jochen Schmitt - 2.10.1-1 - New upstream releae * Thu Feb 14 2013 Fedora Release Engineering - 2.10.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Mon Jan 7 2013 Jochen Schmitt - 2.10.0-1 - New upstream release - Add patch to use system aQuate-bnd.jar file * Thu Dec 13 2012 Jochen Schmitt - 2.10.0-0.5 - New upstream release * Fri Dec 7 2012 Jochen Schmitt - 2.10.0-0.3 - New upstream release * Thu Sep 13 2012 gil cattaneo 2.9.2-1 - update to 2.9.2 - added maven poms - adapted to current guideline - built with java 7 support - removed ant-nodeps from buildrequires - disabled swing module * Sat Jul 21 2012 Fedora Release Engineering - 2.9.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Sat Jan 14 2012 Fedora Release Engineering - 2.9.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Sun Nov 27 2011 Jochen Schmitt - 2.9.1-2 - Build explicit agains java-1.6.0 * Thu Nov 3 2011 Jochen Schmitt - 2.9.1-1 - New upstream release * Wed Feb 09 2011 Fedora Release Engineering - 2.8.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Thu Dec 9 2010 Jochen Schmitt - 2.8.1-1 - New upstream release (#661853) * Sun Aug 15 2010 Geoff Reedy - 2.8.0-1 - Update to upstream 2.8.0 release * Thu Oct 29 2009 Geoff Reedy - 2.7.7-1 - Update to upstream 2.7.7 release * Sat Sep 19 2009 Geoff Reedy - 2.7.5-1 - Update to upstream 2.7.5 release * Sun Jul 26 2009 Fedora Release Engineering - 2.7.4-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Mon May 18 2009 Geoff Reedy - 2.7.4-5 - fix problem in tooltemplate patch * Mon May 18 2009 Geoff Reedy - 2.7.4-4 - make jline implicitly available to match upstream behavior * Mon May 18 2009 Geoff Reedy - 2.7.4-3 - fix problem with substitutions to scripts in %%install * Mon May 18 2009 Geoff Reedy - 2.7.4-2 - fix launcher scripts by modifying template, not overriding them * Tue May 12 2009 Geoff Reedy - 2.7.4-1 - update to 2.7.4 final * Wed Feb 25 2009 Fedora Release Engineering - 2.7.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Wed Jan 21 2009 Geoff Reedy - 2.7.3-1 - update to 2.7.3 final * Sun Nov 09 2008 Geoff Reedy - 2.7.2-1 - update to 2.7.2 final * Mon Nov 03 2008 Geoff Reedy - 2.7.2-0.3.RC6 - bump release to fix upgrade path * Sat Nov 01 2008 Geoff Reedy - 2.7.2-0.1.RC6 - update to 2.7.2-RC6 * Thu Oct 30 2008 Geoff Reedy - 2.7.2-0.1.RC5 - update to 2.7.2-RC5 * Sat Sep 06 2008 Geoff Reedy - 2.7.2-0.2.RC1 - All code is now under BSD license - Remove dll so and exe binaries in prep - Add BuildRequires required by Java packaging guidelines - Add missing defattr for examples and ant-scala * Wed Aug 20 2008 Geoff Reedy - 2.7.2-0.1.RC1 - update to 2.7.2-RC1 * Wed Aug 13 2008 Geoff Reedy - 2.7.1-3 - regenerate classpath in manifest patch to apply cleanly to 2.7.1 * Wed Aug 13 2008 Geoff Reedy - 2.7.1-2 - no changes, accidental release bump * Mon May 05 2008 Geoff Reedy - 2.7.1-1 - Update to 2.7.1 * Fri May 02 2008 Geoff Reedy - 2.7.0-2 - Use java-sdk-openjdk for non-fc8 builds * Mon Mar 10 2008 Geoff Reedy - 2.7.0-1 - Update to 2.7.0 - License now correctly indicated as BSD and LGPLv2+ - Include LICENSE file in apidoc subpackage * Mon Feb 11 2008 Geoff Reedy - 2.6.1-8 - Adhere more strongly to the emacs package guidelines - Include some comments regarding the boot-strapping process * Wed Jan 16 2008 Geoff Reedy - 2.6.1-7 - Add dist tag to release - Fix directory ownership issues in %%_datadir/scala - Remove source code from -devel package - Rename -devel package to ant-scala - Fix packaging of gtksourceview2 language spec - Preserve timestamps when installing and cping - Add patch to remove Class-Path entries from jar manifests - Fix line endings in enscript/README * Sun Jan 13 2008 Geoff Reedy - 2.6.1-6 - Include further information about inclusion of binary distribution - Unpack only those files needed from the binary distribution - Include note about license approval * Thu Dec 27 2007 Geoff Reedy - 2.6.1-5 - Add emacs(bin) BR - Patch out call to subversion in build.xml - Add pkgconfig to BuildRequires * Thu Dec 27 2007 Geoff Reedy - 2.6.1-4 - Reformat emacs-scala description - Expand tabs to spaces - Fix -devel symlinks - Better base package summary * Wed Dec 26 2007 Geoff Reedy - 2.6.1-3 - Add ant config to devel package - Require icedtea for build - Move examples to %%{_datadir}/scala/examples - Clean up package descriptions - Add base package requirement for scala-examples and scala-devel * Wed Dec 26 2007 Geoff Reedy - 2.6.1-2 - Fix post scripts - Use spaces instead of tabs * Wed Dec 26 2007 Geoff Reedy - 2.6.1-1 - Initial build.