scala/scala.spec

161 lines
5.7 KiB
RPMSpec
Raw Normal View History

2019-12-17 11:31:11 +08:00
%global _default_patch_fuzz 2
%{?filter_setup: %filter_from_requires /ant/d; %filter_setup}
Name: scala
Version: 2.10.6
2020-02-24 01:59:03 -05:00
Release: 14
2019-12-17 11:31:11 +08:00
Summary: Combination of object-oriented and functional programming
License: BSD and CC0 and Public Domain
URL: http://www.scala-lang.org/
Source0: %{name}-%{version}.tar.gz
Source1: scala-library-2.10.0-bnd.properties
2020-02-24 01:59:03 -05:00
Source2: scala.gitinfo
Source3: scala.keys
Source4: scala.mime
Source5: scala-mime-info.xml
Source6: scala.ant.d
Source7: scala-bootstript.xml
2019-12-17 11:31:11 +08:00
Patch0: scala-2.10.0-tooltemplate.patch
Patch1: scala-2.10.3-use_system_jline.patch
Patch2: scala-2.10.3-compiler-pom.patch
Patch3: scala-2.10.2-java7.patch
Patch4: scala-2.10-jline.patch
Patch5: scala-2.10.4-build_xml.patch
2020-03-10 02:21:15 -04:00
Patch6: scala-2.10.6-scaladoc-resources.patch
2019-12-26 16:38:01 +08:00
Patch6000: CVE-2017-15288-pre.patch
Patch6001: CVE-2017-15288.patch
2019-12-17 11:31:11 +08:00
BuildArch: noarch
BuildRequires: java-devel >= 1:1.7.0, ant, ant-junit, ant-contrib, jline >= 2.10, aqute-bnd, junit, javapackages-local, scala
Requires: jpackage-utils, jansi, java-headless >= 1:1.7.0, jline >= 2.10
Provides: %{name}-apidoc%{?_isa} %{name}-apidoc
Obsoletes: %{name}-apidoc
Provides: %{name}-swing%{?_isa} %{name}-swing
Obsoletes: %{name}-swing
Provides: ant-scala%{?_isa} ant-scala
Obsoletes: ant-scala
%description
Scala combines object-oriented and functional programming in one concise, high-level language.
Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes
let you build high-performance systems with easy access to huge ecosystems of libraries.
It provides a common, uniform, and all-encompassing framework for collection types.
This framework enables you to work with data in memory at a high level, with the basic building
blocks of a program being whole collections, instead of individual elements.
This style of programming requires some learning. Fortunately, the adaptation is helped by several
nice properties of the Scala collections. They are easy to use, concise, safe, fast, universal.
%prep
%autosetup -p1
echo "starr.version=2.10.4\nstarr.use.released=0" > starr.number
cd src
rm -rf jline
cd -
sed -i '/is not supported by/d' build.xml
sed -i '/exec.*pull-binary-libs.sh/d' build.xml
pushd lib
rm -rf scala-compiler.jar scala-library.jar scala-reflect.jar
ln -s $(build-classpath scala/scala-compiler.jar) scala-compiler.jar
ln -s $(build-classpath scala/scala-library.jar) scala-library.jar
ln -s $(build-classpath scala/scala-reflect.jar) scala-reflect.jar
pushd ant
rm -rf ant.jar ant-contrib.jar
ln -s $(build-classpath ant.jar) ant.jar
ln -s $(build-classpath ant/ant-contrib) ant-contrib.jar
popd
popd
2020-02-24 01:59:03 -05:00
cp -rf %{SOURCE7} .
2019-12-17 11:31:11 +08:00
sed -i -e 's!@JLINE@!%{_javadir}/jline/jline.jar!g' build.xml
2020-02-24 01:59:03 -05:00
echo echo $(head -n 1 %{SOURCE2}) > tools/get-scala-commit-sha
echo echo $(tail -n 1 %{SOURCE2}) > tools/get-scala-commit-date
2019-12-17 11:31:11 +08:00
chmod 755 tools/get-scala-*
%build
export ANT_OPTS="-Xms2048m -Xmx2048m %{nil}"
ant build || exit 1
cd 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
cd -
%check
pushd test/files/run
rm -rf parserJavaIdent.scala t6223.scala
pushd ../presentation
rm -rf implicit-member t5708 ide-bug-1000349 ide-bug-1000475 ide-bug-1000531 visibility ping-pong callcc-interpreter
pushd ../../osgi/src
rm -rf ReflectionToolboxTest.scala
popd
popd
popd
%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%{_datadir}/scala/lib
%mvn_file ':{*}:jar:' %{name}/@1 %{_datadir}/scala/lib/@1
%mvn_file ':{*}:pom:' %{name}/@1 JPP.%{name}-@1
%mvn_package :scala-swing swing
for libname in scala-compiler scala-library scala-reflect scalap scala-swing ; do
sed -i "s|@VERSION@|%{version}|" src/build/maven/$libname-pom.xml
sed -i "s|@RELEASE_REPOSITORY@|http://nexus.scala-tools.org/content/repositories/releases|" src/build/maven/$libname-pom.xml
sed -i "s|@SNAPSHOT_REPOSITORY@|http://nexus.scala-tools.org/content/repositories/snapshots|" src/build/maven/$libname-pom.xml
%mvn_artifact src/build/maven/$libname-pom.xml build/pack/lib/$libname.jar
done
ln -s $(abs2rel %{_javadir}/jline/jline.jar %{_datadir}/scala/lib) $RPM_BUILD_ROOT%{_datadir}/scala/lib
ln -s $(abs2rel %{_javadir}/jansi/jansi.jar %{_datadir}/scala/lib) $RPM_BUILD_ROOT%{_datadir}/scala/lib
%mvn_install
install -d $RPM_BUILD_ROOT%{_sysconfdir}/ant.d
2020-02-24 01:59:03 -05:00
install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/ant.d/scala
2019-12-17 11:31:11 +08:00
install -d $RPM_BUILD_ROOT%{_datadir}/mime-info
2020-02-24 01:59:03 -05:00
install -p -m 644 %{SOURCE3} %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/mime-info/
2019-12-17 11:31:11 +08:00
install -d $RPM_BUILD_ROOT%{_datadir}/mime/packages/
2020-02-24 01:59:03 -05:00
install -p -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/mime/packages/
2019-12-17 11:31:11 +08:00
sed -i -e 's,@JAVADIR@,%{_javadir},g' -e 's,@DATADIR@,%{_datadir},g' $RPM_BUILD_ROOT%{_bindir}/*
%post
touch --no-create %{_datadir}/mime/packages > /dev/null 2>&1 || :
%postun
if [ $1 -eq 0 ]; then
update-mime-database %{_datadir}/mime > /dev/null 2>&1 || :
fi
%posttrans
2020-02-24 01:59:03 -05:00
update-mime-database -n %{_datadir}/mime > /dev/null 2>&1 || :
2019-12-17 11:31:11 +08:00
%files -f .mfiles
%license docs/LICENSE
%config %{_sysconfdir}/ant.d/*
%{_bindir}/*
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/lib
%{_datadir}/%{name}/lib/*.jar
%{_datadir}/mime-info/*
%{_datadir}/mime/packages/*
%{_javadir}/%{name}/*
/usr/share/maven*
%changelog
2020-02-24 01:59:03 -05:00
* Tue Feb 18 2020 Senlin Xia <xiasenlin1@huawei.com> - 2.10.6-14
2020-02-24 02:01:42 -05:00
- remove unused files