[lucene] SCL-ize package

Mat Booth mbooth at fedoraproject.org
Thu May 8 14:47:14 UTC 2014


commit 086a17f7123e21e545d851cab01f359fce56ecf1
Author: Mat Booth <mat.booth at redhat.com>
Date:   Wed May 7 16:09:29 2014 +0100

    SCL-ize package

 .gitignore   |    5 ++-
 ivy-conf.xml |   20 --------
 lucene.spec  |  139 ++++++++++++++++++++++++++++++++++------------------------
 3 files changed, 85 insertions(+), 79 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index db8f596..80a1040 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,6 @@ lucene-2.4.1-src.tar.gz
 /lucene-3.6.0-src.tgz
 dev-tools.tar.xz
 /lucene-3.6.2-src.tgz
-/lucene-3.6.2
 /noarch
 /lucene-4.6.0-src.tgz
 /lucene-4.6.1-src.tgz
@@ -15,3 +14,7 @@ dev-tools.tar.xz
 /dev-tools-4.7.2.tar.xz
 /dev-tools-4.8.0.tar.xz
 /lucene-4.8.0-src.tgz
+/lucene-4.*/
+/*.src.rpm
+/.build-*.log
+/.project
diff --git a/lucene.spec b/lucene.spec
index 7e64aa7..475bb89 100644
--- a/lucene.spec
+++ b/lucene.spec
@@ -28,14 +28,17 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 
+%{?scl:%scl_package lucene}
+%{!?scl:%global pkg_name %{name}}
+
 Summary:        High-performance, full-featured text search engine
-Name:           lucene
+Name:           %{?scl_prefix}lucene
 Version:        4.8.0
-Release:        1%{?dist}
+Release:        2%{?dist}
 Epoch:          0
 License:        ASL 2.0
 URL:            http://lucene.apache.org/
-Source0:        http://www.apache.org/dist/lucene/java/%{version}/%{name}-%{version}-src.tgz
+Source0:        http://www.apache.org/dist/lucene/java/%{version}/lucene-%{version}-src.tgz
 Source1:        lucene-%{version}-core-OSGi-MANIFEST.MF
 Source2:        lucene-%{version}-analysis-OSGi-MANIFEST.MF
 Source3:        lucene-%{version}-queryparser-OSGi-MANIFEST.MF
@@ -48,10 +51,16 @@ Patch1:         0001-dependency-generation.patch
 
 BuildRequires:  git
 BuildRequires:  ant
-BuildRequires:  ivy-local
-BuildRequires:  icu4j
+%{!?scl:BuildRequires:  ivy-local}
+%{?scl:BuildRequires:  apache-ivy}
+BuildRequires:  %{?scl_prefix}icu4j
 BuildRequires:  httpcomponents-client
-BuildRequires:  jetty
+BuildRequires:  jetty-continuation
+BuildRequires:  jetty-http
+BuildRequires:  jetty-io
+BuildRequires:  jetty-server
+BuildRequires:  jetty-servlet
+BuildRequires:  jetty-util
 BuildRequires:  morfologik-stemming
 BuildRequires:  uimaj
 BuildRequires:  uima-addons
@@ -67,13 +76,15 @@ BuildRequires:  junit
 BuildRequires:  randomizedtesting-junit4-ant
 BuildRequires:  randomizedtesting-runner
 
-Provides:       lucene-core = %{epoch}:%{version}-%{release}
+%{?scl:Requires: %scl_runtime}
+
+Provides:       %{name}-core = %{epoch}:%{version}-%{release}
 # previously used by eclipse but no longer needed
-Obsoletes:      lucene-devel < %{epoch}:%{version}-%{release}
-Obsoletes:      lucene-demo < %{epoch}:%{version}-%{release}
+Obsoletes:      %{name}-devel < %{epoch}:%{version}-%{release}
+Obsoletes:      %{name}-demo  < %{epoch}:%{version}-%{release}
 # previously distributed separately, but merged into main package
-Provides:       lucene-contrib = %{version}-%{release}
-Obsoletes:      lucene-contrib < %{version}-%{release}
+Provides:       %{name}-contrib = %{version}-%{release}
+Obsoletes:      %{name}-contrib < %{version}-%{release}
 
 BuildArch:      noarch
 
@@ -84,16 +95,16 @@ for nearly any application that requires full-text search, especially
 cross-platform.
 
 %package parent
-Summary:      Parent POM for %{name}
+Summary:      Parent POM for Lucene
 
 %description parent
-Parent POM for %{name}.
+Parent POM for Lucene.
 
 %package solr-grandparent
-Summary:      %{name}-solr grandparent POM
+Summary:      Lucene Solr grandparent POM
 
 %description solr-grandparent
-%{name}-solr grandparent POM.
+Lucene Solr grandparent POM.
 
 %package benchmark
 Summary:      Lucene Benchmarking Module
@@ -264,17 +275,17 @@ Summary:        Javadoc for Lucene
 %{summary}.
 
 %prep
-%autosetup -S git
+%autosetup -n %{pkg_name}-%{version} -S git
 
 # dependency generator expects that the directory name is just lucene
-mkdir %{name}
+mkdir %{pkg_name}
 find -maxdepth 1 ! -name CHANGES.txt ! -name LICENSE.txt ! -name README.txt \
     ! -name NOTICE.txt ! -name MIGRATE.txt  ! -name ivy-settings.xml \
-    ! -path %{name} -exec mv \{} %{name}/ \;
+    ! -path %{pkg_name} -exec mv \{} %{pkg_name}/ \;
 
 tar xf %{SOURCE4}
 
-pushd %{name}
+pushd %{pkg_name}
 
 # remove all binary libs
 find . -name "*.jar" -exec rm -f {} \;
@@ -284,21 +295,24 @@ rm sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestJakartaRegexpCap
 # old API
 rm -r replicator/src/test/*
 
+# Because ivy-local is not available before F21
+%{?scl:ln -s %{_sysconfdir}/ivy/ivysettings.xml}
+
 popd
 
-%mvn_package ":%{name}-analysis-modules-aggregator" %{name}-analysis
-%mvn_package ":%{name}-analyzers-common" %{name}-analysis
+%mvn_package ":%{pkg_name}-analysis-modules-aggregator" %{pkg_name}-analysis
+%mvn_package ":%{pkg_name}-analyzers-common" %{pkg_name}-analysis
 %mvn_package ":{*}-aggregator" @1
 
 
 %build
-pushd %{name}
+pushd %{pkg_name}
 # generate dependencies
 ant filter-pom-templates -Divy.mode=local -Dversion=%{version}
 
 # fix source dir + move to expected place
-for pom in `find build/poms/%{name} -name pom.xml`; do
-    sed 's/\${module-path}/${basedir}/g' "$pom" > "${pom##build/poms/%{name}/}"
+for pom in `find build/poms/%{pkg_name} -name pom.xml`; do
+    sed 's/\${module-path}/${basedir}/g' "$pom" > "${pom##build/poms/%{pkg_name}/}"
 done
 
 for module in benchmark misc test-framework demo core/src/java facet \
@@ -323,9 +337,12 @@ mv lucene/build/poms/pom.xml .
 %pom_remove_plugin :gmaven-plugin
 %pom_remove_plugin :forbiddenapis
 
-%mvn_build -s
+%{?scl:scl enable %{scl} - <<"EOF"}
+# For some reason TestHtmlParser.testTurkish fails when building inside SCLs
+%mvn_build -s %{?scl:-- -Dmaven.test.failure.ignore=true}
+%{?scl:EOF}
 
-pushd %{name}
+pushd %{pkg_name}
 
 # add missing OSGi metadata to manifests
 mkdir META-INF
@@ -347,51 +364,57 @@ zip -u queryparser/target/lucene-queryparser-%{version}.jar META-INF/MANIFEST.MF
 popd
 
 %install
+%{?scl:scl enable %{scl} - <<"EOF"}
+
 # suggest provides spellchecker
-%mvn_alias :%{name}-suggest :%{name}-spellchecker
+%mvn_alias :%{pkg_name}-suggest :%{pkg_name}-spellchecker
 
 # compatibility with existing packages
-%mvn_alias :%{name}-analyzers-common :%{name}-analyzers
+%mvn_alias :%{pkg_name}-analyzers-common :%{pkg_name}-analyzers
 
 %mvn_install
+%{?scl:EOF}
 
-%files -f .mfiles-%{name}-core
-%dir %{_javadir}/%{name}
+%files -f .mfiles-%{pkg_name}-core
+%dir %{_javadir}/%{pkg_name}
 %doc CHANGES.txt LICENSE.txt README.txt NOTICE.txt MIGRATE.txt
 
-%files parent -f .mfiles-%{name}-parent
-%files solr-grandparent -f .mfiles-%{name}-solr-grandparent
-%files benchmark -f .mfiles-%{name}-benchmark
-%files replicator -f .mfiles-%{name}-replicator
-%files grouping -f .mfiles-%{name}-grouping
-%files highlighter -f .mfiles-%{name}-highlighter
-%files misc -f .mfiles-%{name}-misc
-%files test-framework -f .mfiles-%{name}-test-framework
-%files memory -f .mfiles-%{name}-memory
-%files expressions -f .mfiles-%{name}-expressions
-%files demo -f .mfiles-%{name}-demo
-%files classification -f .mfiles-%{name}-classification
-%files join -f .mfiles-%{name}-join
-%files suggest -f .mfiles-%{name}-suggest
-%files facet -f .mfiles-%{name}-facet
-%files analysis -f .mfiles-%{name}-analysis
-%files sandbox -f .mfiles-%{name}-sandbox
-%files queries -f .mfiles-%{name}-queries
-%files spatial -f .mfiles-%{name}-spatial
-%files codecs -f .mfiles-%{name}-codecs
-%files queryparser -f .mfiles-%{name}-queryparser
-%files analyzers-smartcn -f .mfiles-%{name}-analyzers-smartcn
-%files analyzers-phonetic -f .mfiles-%{name}-analyzers-phonetic
-%files analyzers-icu -f .mfiles-%{name}-analyzers-icu
-%files analyzers-morfologik -f .mfiles-%{name}-analyzers-morfologik
-%files analyzers-uima -f .mfiles-%{name}-analyzers-uima
-%files analyzers-kuromoji -f .mfiles-%{name}-analyzers-kuromoji
-%files analyzers-stempel -f .mfiles-%{name}-analyzers-stempel
+%files parent -f .mfiles-%{pkg_name}-parent
+%files solr-grandparent -f .mfiles-%{pkg_name}-solr-grandparent
+%files benchmark -f .mfiles-%{pkg_name}-benchmark
+%files replicator -f .mfiles-%{pkg_name}-replicator
+%files grouping -f .mfiles-%{pkg_name}-grouping
+%files highlighter -f .mfiles-%{pkg_name}-highlighter
+%files misc -f .mfiles-%{pkg_name}-misc
+%files test-framework -f .mfiles-%{pkg_name}-test-framework
+%files memory -f .mfiles-%{pkg_name}-memory
+%files expressions -f .mfiles-%{pkg_name}-expressions
+%files demo -f .mfiles-%{pkg_name}-demo
+%files classification -f .mfiles-%{pkg_name}-classification
+%files join -f .mfiles-%{pkg_name}-join
+%files suggest -f .mfiles-%{pkg_name}-suggest
+%files facet -f .mfiles-%{pkg_name}-facet
+%files analysis -f .mfiles-%{pkg_name}-analysis
+%files sandbox -f .mfiles-%{pkg_name}-sandbox
+%files queries -f .mfiles-%{pkg_name}-queries
+%files spatial -f .mfiles-%{pkg_name}-spatial
+%files codecs -f .mfiles-%{pkg_name}-codecs
+%files queryparser -f .mfiles-%{pkg_name}-queryparser
+%files analyzers-smartcn -f .mfiles-%{pkg_name}-analyzers-smartcn
+%files analyzers-phonetic -f .mfiles-%{pkg_name}-analyzers-phonetic
+%files analyzers-icu -f .mfiles-%{pkg_name}-analyzers-icu
+%files analyzers-morfologik -f .mfiles-%{pkg_name}-analyzers-morfologik
+%files analyzers-uima -f .mfiles-%{pkg_name}-analyzers-uima
+%files analyzers-kuromoji -f .mfiles-%{pkg_name}-analyzers-kuromoji
+%files analyzers-stempel -f .mfiles-%{pkg_name}-analyzers-stempel
 
 %files javadoc -f .mfiles-javadoc
 %doc LICENSE.txt
 
 %changelog
+* Fri May 02 2014 Mat Booth <mat.booth at redhat.com> - 0:4.8.0-2
+- SCL-ize package
+
 * Fri May 02 2014 Michael Simacek <msimacek at redhat.com> - 0:4.8.0-1
 - Update to upstream release 4.8.0
 


More information about the scm-commits mailing list