File eclipse-mylyn.spec of Package eclipse-mylyn
#
# spec file for package eclipse-mylyn
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global tag R_3_25_0
# Set this to avoid circular deps when bootstrapping
%bcond_without bootstrap
Name: eclipse-mylyn
Version: 3.25.0
Release: 0
Summary: Eclipse Mylyn main feature.
License: EPL-1.0 AND EPL-2.0
URL: https://www.eclipse.org/mylyn
# bash fetch-eclipse-mylyn.sh
Source0: eclipse-mylyn-%{tag}-fetched-src.tar.xz
Source1: fetch-eclipse-mylyn.sh
Source6: redhat-bugzilla-custom-transitions.txt
Patch0: %{name}-remove-hudson-discovery.patch
Patch1: %{name}-add-apache-xmlrpc.patch
Patch2: no-wikitext-sources.patch
Patch4: %{name}-bug-419133.patch
Patch5: explicit-hamcrest-use.patch
Patch6: explicit-httpcore-bundle.patch
BuildRequires: apache-commons-io >= 2.3
BuildRequires: apache-commons-lang >= 2.6
BuildRequires: apache-commons-logging
# Eclipse deps
BuildRequires: eclipse-ecf-runtime
BuildRequires: eclipse-emf-runtime
BuildRequires: eclipse-license1
BuildRequires: eclipse-license2
BuildRequires: eclipse-pde
BuildRequires: glassfish-jaxb-api
BuildRequires: glassfish-jaxb-runtime
BuildRequires: google-gson
BuildRequires: guava
BuildRequires: jakarta-commons-httpclient
BuildRequires: maven-local
# Deps for stage 1 wikitext build
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.apache.ant:ant)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-install-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin)
BuildRequires: mvn(org.apache.maven:maven-plugin-api)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:xml-maven-plugin)
BuildRequires: mvn(org.eclipse.tycho:target-platform-configuration)
BuildRequires: mvn(org.eclipse.tycho:tycho-compiler-plugin)
BuildRequires: mvn(org.eclipse.tycho:tycho-maven-plugin)
BuildRequires: mvn(org.eclipse.tycho:tycho-p2-plugin)
BuildRequires: mvn(org.eclipse.tycho:tycho-packaging-plugin)
BuildRequires: mvn(org.eclipse.tycho:tycho-source-plugin)
BuildRequires: mvn(org.eclipse.tycho:tycho-surefire-plugin)
BuildRequires: mvn(org.jsoup:jsoup)
BuildRequires: osgi(com.sun.activation.javax.activation)
# Deps for stage 2 tycho build
BuildRequires: ws-commons-util >= 1.0.1
BuildRequires: xmlrpc-client >= 3.1.3
BuildRequires: xmlrpc-common >= 3.1.3
BuildRequires: xmlrpc-server >= 3.1.3
BuildConflicts: java >= 12
BuildConflicts: java-devel >= 12
BuildConflicts: java-headless >= 12
#!BuildRequires: tycho
Requires: eclipse-platform
# Added in F31
Obsoletes: %{name}-docs-epub <= 3.25.0
Obsoletes: %{name}-docs-wikitext <= 3.25.0
Obsoletes: %{name}-tasks-web <= 3.25.0
Obsoletes: %{name}-tests <= 3.25.0
BuildArch: noarch
# Upstream Eclipse no longer supports non-64bit arches
ExcludeArch: s390 %{arm} %{ix86}
%if %{without bootstrap}
# Circular dependencies
BuildRequires: eclipse-cdt
BuildRequires: eclipse-egit
BuildRequires: eclipse-jgit
BuildRequires: eclipse-subclipse
%endif
%description
Mylyn integrates task support into Eclipse. It supports offline editing
for certain task repositories and monitors work activity to hide
information that is not relevant to the current task.
%package context-java
Summary: Mylyn Bridge: Java Development
Requires: eclipse-jdt
%description context-java
Mylyn Task-Focused UI extensions for JDT. Provides focusing of Java
element views and editors.
%package context-pde
Summary: Mylyn Bridge: Plug-in Development
Requires: eclipse-pde
%description context-pde
Mylyn Task-Focused UI extensions for PDE, Ant, Team Support and CVS.
%if %{without bootstrap}
%package context-cdt
Summary: Mylyn Bridge: C/C++ Development
Requires: eclipse-cdt
%description context-cdt
Mylyn Task-Focused UI extensions for CDT. Provides focusing of C/C++
element views and editors.
%endif
%package tasks-bugzilla
Summary: Mylyn Tasks Connector: Bugzilla
%description tasks-bugzilla
Provides Task List integration, offline support and rich editing for the
open source Bugzilla bug tracker.
%package tasks-trac
Summary: Mylyn Tasks Connector: Trac
%description tasks-trac
Provides Task List integration, offline support and rich editing
for the open source Trac issue tracker.
%package versions
Summary: Eclipse Mylyn Versions
%description versions
Provides a framework for accessing team providers for Eclipse Mylyn.
%package versions-git
Summary: Mylyn Versions Connector: Git
%description versions-git
Provides Git integration for Eclipse Mylyn.
%package versions-cvs
Summary: Mylyn Versions Connector: CVS
%description versions-cvs
Provides CVS integration for Eclipse Mylyn.
%if %{without bootstrap}
%package versions-subclipse
Summary: Mylyn Versions Connector: SVN
%description versions-subclipse
Provides SVN integration for Eclipse Mylyn.
%endif
%package builds
Summary: Eclipse Mylyn Builds
%description builds
Provides a common framework to interact with continuous integration
build providers using Eclipse Mylyn.
%package builds-hudson
Summary: Mylyn Builds Connector: Hudson/Jenkins
Requires: eclipse-ecf-runtime
%description builds-hudson
Support for the open source Hudson and Jenkins continuous integration servers.
%package sdk
Summary: Mylyn SDK
Requires: %{name} = %{version}-%{release}
Requires: %{name}-builds = %{version}-%{release}
Requires: %{name}-builds-hudson = %{version}-%{release}
Requires: %{name}-context-java = %{version}-%{release}
Requires: %{name}-context-pde = %{version}-%{release}
Requires: %{name}-tasks-bugzilla = %{version}-%{release}
Requires: %{name}-tasks-trac = %{version}-%{release}
Requires: %{name}-versions = %{version}-%{release}
Requires: %{name}-versions-cvs = %{version}-%{release}
%if %{without bootstrap}
Requires: %{name}-context-cdt = %{version}-%{release}
Requires: %{name}-versions-git = %{version}-%{release}
Requires: %{name}-versions-subclipse = %{version}-%{release}
%endif
%description sdk
Sources for all Mylyn bundles.
%prep
%setup -q -n eclipse-mylyn-%{tag}-fetched-src
%patch -P 0
%patch -P 1
%patch -P 2
%patch -P 4
%patch -P 5
%patch -P 6 -p1
# Relax version constraint on jsoup
find -name MANIFEST.MF -exec grep -l -e 'org\.jsoup' {} \; | xargs sed -i -e '/org\.jsoup/s/1.8.3/1.6.1/'
# Don't build and ship test bundles
for pom in $(find -maxdepth 3 -name pom.xml) ; do
sed -i -e '/tests<\/module>/d' -e '/test-feature<\/module>/d' $pom
done
# Correct doc license feature version
sed -i -e 's/license-feature-version=\"2\.0\.0/license-feature-version=\"0.0.0/' $(find -name feature.xml)
# Disable plugins we can live without (they are skipped by default anyway)
%pom_remove_plugin -r :findbugs-maven-plugin
%pom_remove_plugin -r :maven-pmd-plugin
%pom_remove_plugin -r :jacoco-maven-plugin
%pom_remove_plugin -r :maven-deploy-plugin
# Disable target platforms and repos that we don't need for RPM builds
for site in $(grep -l -r --include="pom.xml" eclipse-update-site .) ; do
module=$(basename $(dirname $site)); dir=$(dirname $(dirname $site))
%pom_disable_module $module $dir
done
# Don't build development features
%pom_disable_module org.eclipse.mylyn.builds.development-feature org.eclipse.mylyn.builds
%pom_disable_module org.eclipse.mylyn.commons.development-feature org.eclipse.mylyn.commons
%pom_disable_module org.eclipse.mylyn.context.development-feature org.eclipse.mylyn.context
%pom_disable_module org.eclipse.mylyn.reviews.development.feature org.eclipse.mylyn.reviews
%pom_disable_module org.eclipse.mylyn.versions.development-feature org.eclipse.mylyn.versions
# Disable modules we can't build yet
%pom_disable_module org.eclipse.mylyn.reviews
rm org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson.ui/src/org/eclipse/mylyn/internal/hudson/ui/HudsonDiscovery.java
rm org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson.ui/src/org/eclipse/mylyn/internal/hudson/ui/HudsonUiPlugin.java
rm org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson.ui/src/org/eclipse/mylyn/internal/hudson/ui/HudsonStartup.java
%pom_xpath_remove "plugin[contains(@id, '.source')]" \
org.eclipse.mylyn.builds/org.eclipse.mylyn.builds.sdk-feature/feature.xml \
org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.sdk-feature/feature.xml \
org.eclipse.mylyn.context/org.eclipse.mylyn.context.sdk-feature/feature.xml \
org.eclipse.mylyn.tasks/org.eclipse.mylyn.sdk-feature/feature.xml \
org.eclipse.mylyn.tasks/org.eclipse.mylyn.test-feature/feature.xml \
org.eclipse.mylyn.versions/org.eclipse.mylyn.versions.sdk-feature/feature.xml
# Conditionally build git, subclipse and cdt support when bootstrapping
%if %{with bootstrap}
%pom_disable_module org.eclipse.mylyn.git-feature org.eclipse.mylyn.versions
%pom_disable_module org.eclipse.mylyn.git.core org.eclipse.mylyn.versions
%pom_disable_module org.eclipse.mylyn.git.ui org.eclipse.mylyn.versions
%pom_xpath_remove "includes[@id='org.eclipse.mylyn.git']" \
org.eclipse.mylyn.versions/org.eclipse.mylyn.versions.sdk-feature/feature.xml
%pom_disable_module org.eclipse.mylyn.subclipse-feature org.eclipse.mylyn.versions
%pom_disable_module org.eclipse.mylyn.subclipse.core org.eclipse.mylyn.versions
%pom_disable_module org.eclipse.mylyn.subclipse.ui org.eclipse.mylyn.versions
%pom_disable_module org.eclipse.mylyn.cdt-feature org.eclipse.mylyn.context
%pom_disable_module org.eclipse.mylyn.cdt.ui org.eclipse.mylyn.context
%pom_xpath_remove "includes[@id='org.eclipse.cdt.mylyn']" \
org.eclipse.mylyn.context/org.eclipse.mylyn.context.sdk-feature/feature.xml
%endif
# Don't build artifacts that we don't ship
%pom_disable_module org.eclipse.mylyn.commons.tck-feature org.eclipse.mylyn.commons
# These are not intended to be shipped by upstream, see ebz#467669 and ebz#260666
%pom_disable_module org.eclipse.mylyn.commons.identity.ui org.eclipse.mylyn.commons
%pom_disable_module org.eclipse.mylyn.help.sdk org.eclipse.mylyn.tasks
# Use default buildtimestamp source
%pom_remove_dep :tycho-buildtimestamp-jgit org.eclipse.mylyn/org.eclipse.mylyn-parent
%pom_remove_dep :tycho-sourceref-jgit org.eclipse.mylyn/org.eclipse.mylyn-parent
sed -i -e "/<sourceReferences>/,+3d" org.eclipse.mylyn/org.eclipse.mylyn-parent/pom.xml
# Fix javax.activation references
%pom_xpath_remove "plugin[@id='javax.activation']" \
org.eclipse.mylyn.builds/org.eclipse.mylyn.builds.sdk-feature/feature.xml org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.sdk-feature/feature.xml
%pom_xpath_remove "import[@plugin='javax.activation']" \
org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson-feature/feature.xml org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.notifications-feature/feature.xml
# Fix javax.xml.stream references
%pom_xpath_remove "plugin[@id='javax.xml.stream']" \
org.eclipse.mylyn.builds/org.eclipse.mylyn.builds.sdk-feature/feature.xml org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.sdk-feature/feature.xml
%pom_xpath_remove "import[@plugin='javax.xml.stream']" \
org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson-feature/feature.xml org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.notifications-feature/feature.xml
# Fix javax.xml.bind references
sed -i -e "s/javax\.xml\.bind/jaxb-api/" -e "s/com\.sun\.xml\.bind/com.sun.xml.bind.jaxb-impl/" \
org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson-feature/feature.xml org.eclipse.mylyn.builds/org.eclipse.mylyn.builds.sdk-feature/feature.xml \
org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.notifications-feature/feature.xml org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.sdk-feature/feature.xml \
org.eclipse.mylyn.builds/org.eclipse.mylyn.hudson.core/META-INF/MANIFEST.MF org.eclipse.mylyn.commons/org.eclipse.mylyn.commons.notifications.feed/META-INF/MANIFEST.MF
# Be more tolerant for gson and guava
sed -i -e "/com.google.guava;bundle-version/s/21.0.0,22.0.0/21.0.0,99.0.0/g" $(find -name MANIFEST.MF)
sed -i -e "/com.google.gson.*version/s/2.7.0,2.[89].0/2.2.0,2.9.0/g" $(find -name MANIFEST.MF)
sed -i -e "/org.apache.lucene.*version/s/6.0.0,6.3.0/8.0.0,9.0.0/g" org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.index.core/META-INF/MANIFEST.MF
# Deal with split package
sed -i -e '/Require-/a\ org.eclipse.jdt.core,' org.eclipse.mylyn.context/org.eclipse.mylyn.context.ui/META-INF/MANIFEST.MF
# Compilation errors with JDT annotations
for mod in $(grep -l 'org.eclipse.jdt.annotation' $(find -name build.properties) ) ; do
mod_man=$(dirname $mod)/META-INF/MANIFEST.MF
sed -i -e '/^Require-Bundle:/a\ org.eclipse.jdt.annotation;bundle-version="[1.0.0,3.0.0)";resolution:=optional,' $mod_man
done
%{mvn_package} "::{target,pom}::" __noinstall
%{mvn_package} "::jar:sources:" sdk
%{mvn_package} ":*.sdk{,_feature}" sdk
%{mvn_package} ":org.eclipse.mylyn.tests.util" sdk
%{mvn_package} ":org.eclipse.mylyn.{context,commons}.sdk.util" sdk
%{mvn_package} ":org.eclipse.mylyn.context.sdk.java" sdk
%{mvn_package} "org.eclipse.mylyn.builds:*hudson*" builds-hudson
%{mvn_package} "org.eclipse.mylyn.builds:" builds
%{mvn_package} "org.eclipse.mylyn.context:*cdt.mylyn*" context-cdt
%{mvn_package} "org.eclipse.mylyn.context:*mylyn.pde*" context-pde
%{mvn_package} "org.eclipse.mylyn.context*:*.team.cvs" context-pde
%{mvn_package} "org.eclipse.mylyn.context:*{java_feature,java.tasks,java.ui,ide.ant,debug.ui}*" context-java
%{mvn_package} "org.eclipse.mylyn.tasks:*bugzilla*" tasks-bugzilla
%{mvn_package} "org.eclipse.mylyn.tasks:*trac*" tasks-trac
%{mvn_package} "org.eclipse.mylyn.versions:*cvs*" versions-cvs
%{mvn_package} "org.eclipse.mylyn.versions:*git*" versions-git
%{mvn_package} "org.eclipse.mylyn.versions:*subclipse*" versions-subclipse
%{mvn_package} "org.eclipse.mylyn.versions:" versions
%{mvn_package} "org.eclipse.mylyn{,.commons,.context,.context.features,.tasks}:"
%build
# Increase memory to ensure build succeeds on s390x
export MAVEN_OPTS="-Xmx1024m"
%{mvn_build} -f -j -- -Ddist.qualifier="\'v\'yyyyMMdd-HHmm"
%install
%mvn_install
install %{SOURCE6} \
%{buildroot}%{_datadir}/eclipse/droplets/mylyn-tasks-bugzilla/redhat-bugzilla-custom-transitions.txt
%files -f .mfiles
%files context-java -f .mfiles-context-java
%files context-pde -f .mfiles-context-pde
%if %{without bootstrap}
%files context-cdt -f .mfiles-context-cdt
%endif
%files tasks-bugzilla -f .mfiles-tasks-bugzilla
%{_datadir}/eclipse/droplets/mylyn-tasks-bugzilla/redhat-bugzilla-custom-transitions.txt
%files tasks-trac -f .mfiles-tasks-trac
%files versions -f .mfiles-versions
%files versions-cvs -f .mfiles-versions-cvs
%if %{without bootstrap}
%files versions-git -f .mfiles-versions-git
%files versions-subclipse -f .mfiles-versions-subclipse
%endif
%files builds -f .mfiles-builds
%files builds-hudson -f .mfiles-builds-hudson
%files sdk -f .mfiles-sdk
%changelog