%global _eclipsedir %{_prefix}/lib/eclipse # This exclude breaks the cyclic dependency on the platform to aide in # bootstrapping %global __requires_exclude .*org\.eclipse\.equinox.* %global git_tag 181d11c1b2e1fc81199b351d5594545956f09429 # Set this flag to avoid building everything except for the core bundles # Allows building into a brand new buildroot before Eclipse is even built %bcond_without bootstrap Name: eclipse-ecf Group: Development/Java Version: 3.14.17 Release: %mkrel 6 Summary: Eclipse Communication Framework (ECF) Eclipse plug-in # Note: The org.jivesoftware.smack bundle is Apache licensed # Note: The ch.ethz.iks.r_osgi.remote bundle is BSD licensed License: EPL-2.0 and ASL 2.0 and BSD URL: https://www.eclipse.org/ecf/ Source0: https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/snapshot/org.eclipse.ecf-%{git_tag}.tar.xz # Change how feature deps are specified, to avoid embedding versions Patch0: 0001-Avoid-hard-coding-dependency-versions-by-using-featu.patch # Unneeded dep on JDT prevents bootstrap mode Patch1: 0002-Remove-unneeded-dep-on-jdt-annotations.patch BuildRequires: tycho BuildRequires: tycho-extras BuildRequires: maven-plugin-build-helper BuildRequires: eclipse-license2 BuildRequires: osgi-annotation BuildRequires: httpcomponents-client BuildRequires: httpcomponents-core BuildRequires: apache-commons-codec BuildRequires: apache-commons-logging %if %{without bootstrap} BuildRequires: eclipse-emf-runtime BuildRequires: eclipse-pde %endif BuildArch: noarch # Upstream Eclipse no longer supports non-64bit arches ExcludeArch: s390 %{arm} %{ix86} %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: httpcomponents-client Requires: httpcomponents-core %description core ECF bundles required by eclipse-platform. %if %{without bootstrap} %package runtime Summary: Eclipse Communication Framework (ECF) Eclipse plug-in %description runtime 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 sdk Summary: Eclipse ECF SDK %description sdk Documentation and developer resources for the Eclipse Communication Framework (ECF) plug-in. %endif %prep %setup -q -n org.eclipse.ecf-%{git_tag} find . -type f -name "*.jar" -exec rm {} \; find . -type f -name "*.class" -exec rm {} \; %patch0 -p1 %patch1 -p1 # Correction for content of runtime package %pom_xpath_remove "feature/plugin[@id='org.eclipse.ecf.presence']" releng/features/org.eclipse.ecf.core/feature.xml # Don't build examples or tests sed -i -e '/<module>examples/d' -e '/<module>tests/d' pom.xml %pom_disable_module releng/features/org.eclipse.ecf.tests.feature %pom_disable_module releng/features/org.eclipse.ecf.tests.filetransfer.feature %pom_disable_module releng/features/org.eclipse.ecf.eventadmin.examples.feature %pom_disable_module releng/features/org.eclipse.ecf.remoteservice.examples.feature %pom_disable_module releng/features/org.eclipse.ecf.remoteservice.sdk.examples.feature %pom_xpath_remove "feature/requires/import[@feature='org.eclipse.ecf.remoteservice.sdk.examples.feature']" releng/features/org.eclipse.ecf.core/feature.xml %pom_xpath_remove "feature/plugin[@id='org.eclipse.ecf.example.clients']" releng/features/org.eclipse.ecf.core/feature.xml %pom_xpath_remove "feature/plugin[@id='org.eclipse.ecf.example.collab']" releng/features/org.eclipse.ecf.core/feature.xml # Don't use target platform or jgit packaging bits %pom_xpath_remove "pom:target" %pom_xpath_remove "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:dependencies" %pom_xpath_remove "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:configuration/pom:sourceReferences" %pom_xpath_remove "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:configuration/pom:timestampProvider" %pom_disable_module releng/org.eclipse.ecf.releng.repository # Remove unnecesary dep on json %pom_xpath_remove "feature/requires/import[@plugin='org.json']" releng/features/org.eclipse.ecf.remoteservice.rest.feature/feature.xml # Using latest zookeeper requires non-trivial port %pom_disable_module releng/features/org.eclipse.ecf.discovery.zookeeper.feature %pom_disable_module providers/bundles/org.eclipse.ecf.provider.zookeeper %pom_xpath_remove "feature/includes[@id='org.eclipse.ecf.discovery.zookeeper.feature']" releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml sed -i -e '/provider.zookeeper/d' doc/bundles/org.eclipse.ecf.doc/build.properties # Using latest rome requires non-trivial port %pom_disable_module releng/features/org.eclipse.ecf.remoteservice.rest.synd.feature %pom_disable_module framework/bundles/org.eclipse.ecf.remoteservice.rest.synd sed -i -e '/remoteservice.rest.synd/d' doc/bundles/org.eclipse.ecf.doc/build.properties # Disable SLP provider, rhbz#1416706 %pom_disable_module releng/features/org.eclipse.ecf.discovery.slp.feature %pom_disable_module providers/bundles/org.eclipse.ecf.provider.jslp %pom_disable_module protocols/bundles/ch.ethz.iks.slp %pom_xpath_remove "feature/includes[@id='org.eclipse.ecf.discovery.slp.feature']" releng/features/org.eclipse.ecf.remoteservice.sdk.feature/feature.xml sed -i -e '/provider.jslp/d' doc/bundles/org.eclipse.ecf.doc/build.properties # Misc other providers that we don't need %pom_disable_module releng/features/org.eclipse.ecf.discovery.dnssd.feature %pom_disable_module providers/bundles/org.eclipse.ecf.provider.dnssd sed -i -e '/provider.dnssd/d' doc/bundles/org.eclipse.ecf.doc/build.properties %pom_disable_module protocols/bundles/org.jivesoftware.smack %pom_disable_module providers/bundles/org.eclipse.ecf.provider.xmpp.datashare %pom_disable_module providers/bundles/org.eclipse.ecf.provider.xmpp %pom_disable_module providers/bundles/org.eclipse.ecf.provider.xmpp.remoteservice %pom_disable_module providers/bundles/org.eclipse.ecf.provider.xmpp.ui %pom_disable_module releng/features/org.eclipse.ecf.xmpp.feature %pom_xpath_remove "feature/plugin[@id='org.eclipse.ecf.provider.xmpp.ui']" releng/features/org.eclipse.ecf.core/feature.xml %pom_disable_module providers/bundles/org.eclipse.ecf.provider.irc %pom_disable_module providers/bundles/org.eclipse.ecf.provider.irc.ui %pom_xpath_remove "feature/plugin[@id='org.eclipse.ecf.provider.irc']" releng/features/org.eclipse.ecf.core/feature.xml %pom_xpath_remove "feature/plugin[@id='org.eclipse.ecf.provider.irc.ui']" releng/features/org.eclipse.ecf.core/feature.xml # Don't build bundles that are not relevant to our platform %pom_disable_module providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45.win32 %pom_xpath_remove "feature/plugin[@os='win32']" releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature/feature.xml # Use system libs ln -s $(build-classpath osgi-annotation) osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/osgi/osgi.annotation.jar # Fix doc-build on Java 11 %if 0%{?fedora} >= 33 || 0%{?eln} %pom_xpath_replace "pom:dependency[pom:artifactId='javax.annotation']" "<dependency><artifactId>jakarta.annotation-api</artifactId><type>eclipse-plugin</type></dependency>" doc/bundles/org.eclipse.ecf.doc %else %pom_xpath_replace "pom:dependency[pom:artifactId='javax.annotation']" "<dependency><artifactId>javax.annotation-api</artifactId><type>eclipse-plugin</type></dependency>" doc/bundles/org.eclipse.ecf.doc %endif # Fix dep on ASM 8 sed -i -e '/org.objectweb.asm/s/8\.0\.0/9.0.0/' protocols/bundles/ch.ethz.iks.r_osgi.remote/META-INF/MANIFEST.MF %if %{with bootstrap} # Only build core modules when bootstrapping %pom_xpath_replace "pom:modules" "<modules> <module>releng/features/org.eclipse.ecf.core.feature</module> <module>releng/features/org.eclipse.ecf.core.ssl.feature</module> <module>releng/features/org.eclipse.ecf.filetransfer.feature</module> <module>releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature</module> <module>releng/features/org.eclipse.ecf.filetransfer.httpclient4.ssl.feature</module> <module>releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature</module> <module>releng/features/org.eclipse.ecf.filetransfer.ssl.feature</module> <module>framework/bundles/org.eclipse.ecf</module> <module>framework/bundles/org.eclipse.ecf.identity</module> <module>framework/bundles/org.eclipse.ecf.filetransfer</module> <module>framework/bundles/org.eclipse.ecf.ssl</module> <module>providers/bundles/org.eclipse.ecf.provider.filetransfer</module> <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4</module> <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl</module> <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45</module> <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl</module> </modules>" %endif # TODO: Figure out why this is necessary.... sed -i -e '/Require-Bundle:/a\ org.eclipse.osgi.services,' framework/bundles/org.eclipse.ecf.console/META-INF/MANIFEST.MF # Don't install poms %mvn_package "::{pom,target}::" __noinstall %if %{with bootstrap} %mvn_package "::jar:{sources,sources-feature}:" __noinstall %else %mvn_package "::jar:{sources,sources-feature}:" sdk %endif %mvn_package ":org.eclipse.ecf.{core,sdk}" sdk %mvn_package ":org.eclipse.ecf.docshare*" sdk for p in $(grep '<plugin' releng/features/org.eclipse.ecf.core/feature.xml | sed -e 's/.*id="\(.*\)" d.*/\1/') ; do %mvn_package ":$p" sdk done %mvn_package ":*.ui" sdk %mvn_package ":*.ui.*" sdk %mvn_package ":org.eclipse.ecf.remoteservice.sdk.*" sdk %mvn_package ":org.eclipse.ecf.core.{,ssl.}feature" %mvn_package ":org.eclipse.ecf.filetransfer.{,httpclient4.}{,ssl.}feature" %mvn_package ":org.eclipse.ecf.filetransfer.httpclient45.feature" %mvn_package ":org.eclipse.ecf{,.identity,.ssl,.filetransfer}" %mvn_package ":org.eclipse.ecf.provider.filetransfer*" %mvn_package ":" runtime %build # Qualifier generated from last modification time of source tarball QUALIFIER=$(date -u -d"$(stat --format=%y %{SOURCE0})" +v%Y%m%d-%H%M) %mvn_build -j -- -DforceContextQualifier=$QUALIFIER %install %mvn_install # Move to libdir due to being part of core platform install -d -m 755 %{buildroot}%{_eclipsedir} mv %{buildroot}%{_datadir}/eclipse/droplets/ecf/{plugins,features} %{buildroot}%{_eclipsedir} rm -r %{buildroot}%{_datadir}/eclipse/droplets/ecf # Fixup metadata sed -i -e 's|%{_datadir}/eclipse/droplets/ecf|%{_eclipsedir}|' %{buildroot}%{_datadir}/maven-metadata/eclipse-ecf.xml sed -i -e 's|%{_datadir}/eclipse/droplets/ecf/features/|%{_eclipsedir}/features/|' \ -e 's|%{_datadir}/eclipse/droplets/ecf/plugins/|%{_eclipsedir}/plugins/|' .mfiles sed -i -e '/droplets/d' .mfiles # Remove any symlinks that might be created during bootstrapping due to missing platform bundles for del in $( (cd %{buildroot}%{_eclipsedir}/plugins && ls | grep -v -e '^org\.eclipse\.ecf' ) ) ; do rm %{buildroot}%{_eclipsedir}/plugins/$del sed -i -e "/$del/d" .mfiles done # Symlink jars into javadir install -d -m 755 %{buildroot}%{_javadir}/eclipse location=%{_eclipsedir}/plugins while [ "$location" != "/" ] ; do location=$(dirname $location) updir="$updir../" done pushd %{buildroot}%{_javadir}/eclipse for J in ecf{,.identity,.ssl,.filetransfer,.provider.filetransfer{,.ssl,.httpclient4{,.ssl}}} ecf.provider.filetransfer.httpclient45 ; do DIR=$updir%{_eclipsedir}/plugins [ -e "`ls $DIR/org.eclipse.${J}_*.jar`" ] && ln -s $DIR/org.eclipse.${J}_*.jar ${J}.jar done popd %files core -f .mfiles %{_javadir}/eclipse/* %if %{without bootstrap} %files runtime -f .mfiles-runtime %files sdk -f .mfiles-sdk %endif %changelog * Sat Nov 14 2020 tv <tv> 3.14.17-6.mga8 + Revision: 1645966 - 3.14.17 * Thu Aug 20 2020 neoclust <neoclust> 3.14.6-6.mga8 + Revision: 1617083 - Rebuild against java11 * Sun Aug 16 2020 neoclust <neoclust> 3.14.6-5.mga8 + Revision: 1614247 - Disable bootstrap mode * Tue Aug 11 2020 neoclust <neoclust> 3.14.6-4.mga8 + Revision: 1613189 - New version 3.14.6 * Fri Feb 14 2020 umeabot <umeabot> 3.14.4-3.mga8 + Revision: 1521238 - Mageia 8 Mass Rebuild * Mon Dec 17 2018 neoclust <neoclust> 3.14.4-2.mga7 + Revision: 1342115 - Disable bootstrap mode * Thu Dec 13 2018 neoclust <neoclust> 3.14.4-1.mga7 + Revision: 1341018 - New version 3.14.4 * Sun Sep 23 2018 umeabot <umeabot> 3.13.3-2.mga7 + Revision: 1297561 - Mageia 7 Mass Rebuild * Mon May 15 2017 neoclust <neoclust> 3.13.3-1.mga6 + Revision: 1101831 - New version * Fri Sep 16 2016 daviddavid <daviddavid> 3.13.2-1.mga6 + Revision: 1053366 - Update to latest release 3.13.2 - Set qualifiers to source-modification-time instead of build-time, to eliminate descrepancies between architectures - Add SDK package for sources * Sun Jul 17 2016 neoclust <neoclust> 3.13.1-2.mga6 + Revision: 1042379 - Do a clean rebuild for armv5 * Fri Apr 29 2016 daviddavid <daviddavid> 3.13.1-1.mga6 + Revision: 1007762 - Update to latest release - Add a new subpackage to ship additional ECF bundles - Avoid embedding versions of external deps in features. This avoids the need to rebuild when a dependency changes version. * Wed Mar 02 2016 neoclust <neoclust> 3.12.0-6.mga6 + Revision: 982450 - Second rebuild of the java stack * Sun Feb 28 2016 neoclust <neoclust> 3.12.0-5.mga6 + Revision: 980528 - Rebuild on core - First rebuild of the java stack - sync package eclipse-ecf with fedora + umeabot <umeabot> - Mageia 6 Mass Rebuild * Fri Dec 26 2014 pterjan <pterjan> 3.9.1-2.mga5 + Revision: 806307 - Clean rebuild - Sync with Fedora 21 (update to 3.9.1) - Restore + sander85 <sander85> - Depends on broken java stack * Wed Oct 15 2014 umeabot <umeabot> 3.6.1-4.mga5 + Revision: 750316 - Second Mageia 5 Mass Rebuild * Tue Sep 16 2014 umeabot <umeabot> 3.6.1-3.mga5 + Revision: 678935 - Mageia 5 Mass Rebuild * Tue Oct 22 2013 umeabot <umeabot> 3.6.1-2.mga4 + Revision: 542157 - Mageia 4 Mass Rebuild * Mon Oct 14 2013 dmorgan <dmorgan> 3.6.1-1.mga4 + Revision: 497007 - New version * Wed Sep 25 2013 dmorgan <dmorgan> 3.6.0-2.mga4 + Revision: 485936 - rhbz#974112: Remove versions and timestamps from ECF * Wed Sep 25 2013 dmorgan <dmorgan> 3.6.0-1.mga4 + Revision: 485788 - New upstream release * Tue Sep 24 2013 dmorgan <dmorgan> 3.5.7-0.8.mga4 + Revision: 485688 - Drop v3 httpclient. - Make dependency to commons loggigng less strict * Tue Sep 24 2013 dmorgan <dmorgan> 3.5.7-0.7.mga4 + Revision: 485323 - Do not drop v3 httpclient yet * Tue Sep 24 2013 dmorgan <dmorgan> 3.5.7-0.5.mga4 + Revision: 485288 - New version * Tue Sep 24 2013 dmorgan <dmorgan> 3.5.6-8.mga4 + Revision: 484872 - Rebuild against latest eclipse * Sat Jan 19 2013 dmorgan <dmorgan> 3.5.6-7.mga3 + Revision: 389606 - Rebuild against fixed eclipse * Fri Jan 11 2013 umeabot <umeabot> 3.5.6-6.mga3 + Revision: 349371 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Thu Dec 06 2012 dmorgan <dmorgan> 3.5.6-5.mga3 + Revision: 327134 - Filter out requires on osgi * Sat Sep 15 2012 dmorgan <dmorgan> 3.5.6-4.mga3 + Revision: 294051 - Rebuild against new eclipse - imported package eclipse-ecf