[eclipse-ecf] Make core package archful so it can be installed into libdir

Mat Booth mbooth at fedoraproject.org
Thu Nov 27 17:49:48 UTC 2014


commit d2b781302195c020eeaca6eaa3e636e0d30218a3
Author: Mat Booth <mat.booth at redhat.com>
Date:   Thu Nov 27 12:24:20 2014 +0000

    Make core package archful so it can be installed into libdir
    
      where eclipse-platform expects it to be

 eclipse-ecf.spec |  102 ++++++++++++++++++++++++-----------------------------
 1 files changed, 46 insertions(+), 56 deletions(-)
---
diff --git a/eclipse-ecf.spec b/eclipse-ecf.spec
index 52d4214..e6c99c2 100644
--- a/eclipse-ecf.spec
+++ b/eclipse-ecf.spec
@@ -1,46 +1,50 @@
 %{?scl:%scl_package eclipse-ecf}
 %{!?scl:%global pkg_name %{name}}
 
-%global tag R-Release_HEAD-sdk_feature-142_2014-08-18_17-43-32
-%global contextQualifier v%(date +%%Y%%m%%d-%%H%%M)
+# The core sub-package must be archful because it is required to be in
+# libdir by the platform, but we have no natives, so suppress debuginfo
+%global debug_package %{nil}
 
-%define __requires_exclude osgi*
+# This exclude breaks the cyclic dependency on the platform to aide in
+# bootstrapping
+%global __requires_exclude .*org\.eclipse\.equinox.*
+
+%global git_tag R-Release_HEAD-sdk_feature-142_2014-08-18_17-43-32
 
 Name:           %{?scl_prefix}eclipse-ecf
 Version:        3.9.0
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Eclipse Communication Framework (ECF) Eclipse plug-in
 
 License:        EPL
 URL:            http://www.eclipse.org/ecf/
-Source0:        http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/snapshot/org.eclipse.ecf-%{tag}.tar.bz2
+Source0:        http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/snapshot/org.eclipse.ecf-%{git_tag}.tar.bz2
 
-BuildRequires:  java-devel >= 1.7.0 
-BuildRequires:  jpackage-utils
-BuildRequires:  eclipse-pde >= 4.3.0
+BuildRequires:  java-devel
+BuildRequires:  eclipse-pde >= 1:4.3.0
 BuildRequires:  httpcomponents-client
 BuildRequires:  httpcomponents-core
 BuildRequires:  apache-commons-codec
 BuildRequires:  apache-commons-logging
 
-BuildArch:      noarch
-
 %description
 ECF is a set of frameworks for building communications into applications and
 services. It provides a lightweight, modular, transport-independent, fully
 compliant implementation of the OSGi Remote Services standard.
 
-%package core
-Summary:        Eclipse ECF Core
-Requires:       java-headless
-Requires:       jpackage-utils
-%{?scl:Requires: %scl_runtime}
+%package   core
+Summary:   Eclipse ECF Core
+Requires:  java-headless
+Requires:  eclipse-filesystem
 
 %description core
 ECF bundles required by eclipse-platform.
 
 %prep
-%setup -q -n org.eclipse.ecf-%{tag}
+%setup -q -n org.eclipse.ecf-%{git_tag}
+
+find . -type f -name "*.jar" -exec rm {} \;
+find . -type f -name "*.class" -exec rm {} \;
 
 #get just the bits we need
 mkdir -p ecf/plugins
@@ -64,9 +68,7 @@ cp -r providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl ec
 
 rm -rf `ls | grep -v "ecf"`
 
-find . -type f -name "*.jar" -exec rm {} \;
-find . -type f -name "*.class" -exec rm {} \;
-
+# Orbit deps for PDE build
 mkdir -p deps
 build-jar-repository -s -p deps \
   httpcomponents/httpclient httpcomponents/httpcore commons-codec commons-logging
@@ -75,50 +77,38 @@ build-jar-repository -s -p deps \
 sed -i -e 's#(Object) ((URIID) o)#((URIID) o)#g' ecf/plugins/org.eclipse.ecf.identity/src/org/eclipse/ecf/core/identity/URIID.java
 
 %build
-eclipse-pdebuild -f org.eclipse.ecf.core.feature \
-  -j "-DforceContextQualifier=%{contextQualifier}" -o `pwd`/deps
-eclipse-pdebuild -f org.eclipse.ecf.core.ssl.feature \
-  -j "-DforceContextQualifier=%{contextQualifier}" -o `pwd`/deps
-eclipse-pdebuild -f org.eclipse.ecf.filetransfer.feature \
-  -j "-DforceContextQualifier=%{contextQualifier}" -o `pwd`/deps
-eclipse-pdebuild -f org.eclipse.ecf.filetransfer.ssl.feature \
-  -j "-DforceContextQualifier=%{contextQualifier}" -o `pwd`/deps
-eclipse-pdebuild -f org.eclipse.ecf.filetransfer.httpclient4.feature \
-  -j "-DforceContextQualifier=%{contextQualifier}" -o `pwd`/deps
-eclipse-pdebuild -f org.eclipse.ecf.filetransfer.httpclient4.ssl.feature \
-  -j "-DforceContextQualifier=%{contextQualifier}" -o `pwd`/deps
+OPTIONS="-DforceContextQualifier=$(date +v%Y%m%d-%H00)"
+
+eclipse-pdebuild -f org.eclipse.ecf.core.feature -j "$OPTIONS" -o `pwd`/deps
+eclipse-pdebuild -f org.eclipse.ecf.core.ssl.feature -j "$OPTIONS" -o `pwd`/deps
+eclipse-pdebuild -f org.eclipse.ecf.filetransfer.feature -j "$OPTIONS" -o `pwd`/deps
+eclipse-pdebuild -f org.eclipse.ecf.filetransfer.ssl.feature -j "$OPTIONS" -o `pwd`/deps
+eclipse-pdebuild -f org.eclipse.ecf.filetransfer.httpclient4.feature -j "$OPTIONS" -o `pwd`/deps
+eclipse-pdebuild -f org.eclipse.ecf.filetransfer.httpclient4.ssl.feature -j "$OPTIONS" -o `pwd`/deps
 
 %install
-install -d -m 755 %{buildroot}%{_javadir}/ecf
-
-unzip -q -n -d %{buildroot}%{_javadir}/ecf          build/rpmBuild/org.eclipse.ecf.core.feature.zip
-unzip -q -n -d %{buildroot}%{_javadir}/ecf          build/rpmBuild/org.eclipse.ecf.core.ssl.feature.zip
-unzip -q -n -d %{buildroot}%{_javadir}/ecf          build/rpmBuild/org.eclipse.ecf.filetransfer.feature.zip
-unzip -q -n -d %{buildroot}%{_javadir}/ecf          build/rpmBuild/org.eclipse.ecf.filetransfer.ssl.feature.zip
-unzip -q -n -d %{buildroot}%{_javadir}/ecf          build/rpmBuild/org.eclipse.ecf.filetransfer.httpclient4.feature.zip
-unzip -q -n -d %{buildroot}%{_javadir}/ecf          build/rpmBuild/org.eclipse.ecf.filetransfer.httpclient4.ssl.feature.zip
-
-pushd %{buildroot}%{_javadir}/ecf/eclipse/plugins/
-rm -rf org.apache*
-#remove timestamps from name to make symlinking easy
-for f in \
-org.eclipse.ecf \
-org.eclipse.ecf.filetransfer \
-org.eclipse.ecf.identity \
-org.eclipse.ecf.provider.filetransfer \
-org.eclipse.ecf.provider.filetransfer.ssl \
-org.eclipse.ecf.ssl \
-org.eclipse.ecf.provider.filetransfer.httpclient4 \
-org.eclipse.ecf.provider.filetransfer.httpclient4.ssl ; do
-  mv ${f}_*.jar ${f}.jar
-done
-popd
+install -d -m 755 %{buildroot}%{_libdir}/eclipse/{features,plugins}
+
+unzip -q -n -d %{buildroot}%{_libdir} build/rpmBuild/org.eclipse.ecf.core.feature.zip
+unzip -q -n -d %{buildroot}%{_libdir} build/rpmBuild/org.eclipse.ecf.core.ssl.feature.zip
+unzip -q -n -d %{buildroot}%{_libdir} build/rpmBuild/org.eclipse.ecf.filetransfer.feature.zip
+unzip -q -n -d %{buildroot}%{_libdir} build/rpmBuild/org.eclipse.ecf.filetransfer.ssl.feature.zip
+unzip -q -n -d %{buildroot}%{_libdir} build/rpmBuild/org.eclipse.ecf.filetransfer.httpclient4.feature.zip
+unzip -q -n -d %{buildroot}%{_libdir} build/rpmBuild/org.eclipse.ecf.filetransfer.httpclient4.ssl.feature.zip
+
+# Remove stuff that will be symlinked by the platform
+rm %{buildroot}%{_libdir}/eclipse/plugins/org.apache*
 
 %files core
-%{_javadir}/ecf
+%{_libdir}/eclipse/features/*
+%{_libdir}/eclipse/plugins/*
 %doc ecf/features/org.eclipse.ecf.core.feature/*.html
 
 %changelog
+* Thu Nov 27 2014 Mat Booth <mat.booth at redhat.com> - 3.9.0-3
+- Make core package archful so it can be installed into libdir
+  where eclipse-platform expects it to be
+
 * Tue Nov 18 2014 Mat Booth <mat.booth at redhat.com> - 3.9.0-2
 - Rebuild for new commons-codec
 


More information about the scm-commits mailing list