Sophie

Sophie

distrib > Mageia > 8 > armv7hl > by-pkgid > eddc1612e923e8608f32fd1b13731cb5 > files > 3

eclipse-ecf-3.14.17-6.mga8.src.rpm

%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