From fb2a269fa60591201e8d69d691456048fca9b843 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 29 2019 10:33:06 +0000 Subject: [PATCH 1/12] Fix requires on maven-wagon and sisu --- diff --git a/maven.spec b/maven.spec index f7a2725..dc9ed96 100644 --- a/maven.spec +++ b/maven.spec @@ -106,18 +106,14 @@ Requires: maven-resolver-spi Requires: maven-resolver-transport-wagon Requires: maven-resolver-util Requires: maven-shared-utils -Requires: maven-wagon-file -Requires: maven-wagon-http -Requires: maven-wagon-http-shared -Requires: maven-wagon-provider-api +Requires: maven-wagon Requires: plexus-cipher Requires: plexus-classworlds Requires: plexus-containers-component-annotations Requires: plexus-interpolation Requires: plexus-sec-dispatcher Requires: plexus-utils -Requires: sisu-inject -Requires: sisu-plexus +Requires: sisu Requires: slf4j %description From 1cc7f8ab12755562d8bd33c72a901f0d5996a00b Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 29 2019 11:09:04 +0000 Subject: [PATCH 2/12] Fix requires on maven-resolver --- diff --git a/maven.spec b/maven.spec index dc9ed96..156e8f3 100644 --- a/maven.spec +++ b/maven.spec @@ -99,12 +99,7 @@ Requires: httpcomponents-core Requires: jansi Requires: jansi-native Requires: jcl-over-slf4j -Requires: maven-resolver-api -Requires: maven-resolver-connector-basic -Requires: maven-resolver-impl -Requires: maven-resolver-spi -Requires: maven-resolver-transport-wagon -Requires: maven-resolver-util +Requires: maven-resolver Requires: maven-shared-utils Requires: maven-wagon Requires: plexus-cipher From 0aef973c520706f5d37b70249511ad57d1868161 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 29 2019 11:32:31 +0000 Subject: [PATCH 3/12] Use javadoc_package macro --- diff --git a/maven.spec b/maven.spec index 156e8f3..b7dddba 100644 --- a/maven.spec +++ b/maven.spec @@ -134,11 +134,7 @@ Provides: bundled(slf4j) = %{bundled_slf4j_version} %description lib Core part of Apache Maven that can be used as a library. -%package javadoc -Summary: API documentation for %{name} - -%description javadoc -%{summary}. +%{?javadoc_package} %prep %setup -q -n apache-%{name}-%{version} @@ -253,9 +249,6 @@ update-alternatives --install %{_bindir}/mvn mvn %{homedir}/bin/mvn %{?maven_alt %ghost %{_mandir}/man1/mvn.1.gz %ghost %{_mandir}/man1/mvnDebug.1.gz -%files javadoc -f .mfiles-javadoc -%license LICENSE NOTICE - %changelog * Thu May 30 2019 Mikolaj Izdebski - 1:3.6.1-4 From 86248a8a468b47034364ad6b110ed81e6c5e425b Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 29 2019 11:34:51 +0000 Subject: [PATCH 4/12] Add module prefixes to package names --- diff --git a/maven.spec b/maven.spec index b7dddba..61d5a32 100644 --- a/maven.spec +++ b/maven.spec @@ -116,7 +116,7 @@ Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. -%package lib +%package -n %{?module_prefix}%{name}-lib Summary: Core part of Maven # If XMvn is part of the same RPM transaction then it should be # installed first to avoid triggering rhbz#1014355. @@ -131,9 +131,10 @@ Requires: javapackages-tools # maven-slf4j-provider.jar, together with Maven-specific additions. Provides: bundled(slf4j) = %{bundled_slf4j_version} -%description lib +%description -n %{?module_prefix}%{name}-lib Core part of Apache Maven that can be used as a library. +%{?module_package} %{?javadoc_package} %prep @@ -222,17 +223,17 @@ touch %{buildroot}%{_bindir}/{mvn,mvnDebug} touch %{buildroot}%{_mandir}/man1/{mvn,mvnDebug}.1 -%post +%post -n %{?module_prefix}%{name} update-alternatives --install %{_bindir}/mvn mvn %{homedir}/bin/mvn %{?maven_alternatives_priority}0 \ --slave %{_bindir}/mvnDebug mvnDebug %{homedir}/bin/mvnDebug \ --slave %{_mandir}/man1/mvn.1.gz mvn1 %{homedir}/bin/mvn.1.gz \ --slave %{_mandir}/man1/mvnDebug.1.gz mvnDebug1 %{homedir}/bin/mvn.1.gz \ -%postun +%postun -n %{?module_prefix}%{name} [[ $1 -eq 0 ]] && update-alternatives --remove %{name} %{homedir}/bin/mvn -%files lib -f .mfiles +%files -n %{?module_prefix}%{name}-lib -f .mfiles %doc README.md %license LICENSE NOTICE %{homedir} @@ -242,7 +243,7 @@ update-alternatives --install %{_bindir}/mvn mvn %{homedir}/bin/mvn %{?maven_alt %config(noreplace) %{confdir}/settings.xml %config(noreplace) %{confdir}/logging/simplelogger.properties -%files +%files -n %{?module_prefix}%{name} %ghost %{_bindir}/mvn %ghost %{_bindir}/mvnDebug %{_datadir}/bash-completion From ae085dde62945fc1b110b2c902ee6bb48b6893c2 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 29 2019 11:38:31 +0000 Subject: [PATCH 5/12] Namespace requires and buildrequires --- diff --git a/maven.spec b/maven.spec index 61d5a32..a16687f 100644 --- a/maven.spec +++ b/maven.spec @@ -24,50 +24,50 @@ Patch2: 0002-Invoke-logback-via-reflection.patch Patch3: 0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch BuildRequires: maven-local -BuildRequires: mvn(com.google.inject:guice::no_aop:) -BuildRequires: mvn(commons-cli:commons-cli) +BuildRequires: %{?module_prefix}mvn(com.google.inject:guice::no_aop:) +BuildRequires: %{?module_prefix}mvn(commons-cli:commons-cli) BuildRequires: mvn(commons-jxpath:commons-jxpath) -BuildRequires: mvn(javax.annotation:jsr250-api) -BuildRequires: mvn(javax.inject:javax.inject) +BuildRequires: %{?module_prefix}mvn(javax.annotation:jsr250-api) +BuildRequires: %{?module_prefix}mvn(javax.inject:javax.inject) BuildRequires: mvn(junit:junit) -BuildRequires: mvn(org.apache.commons:commons-lang3) +BuildRequires: %{?module_prefix}mvn(org.apache.commons:commons-lang3) BuildRequires: mvn(org.apache.maven:maven-parent:pom:) BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin) -BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-api) -BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-connector-basic) -BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-impl) -BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-spi) -BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-transport-wagon) -BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-util) -BuildRequires: mvn(org.apache.maven.shared:maven-shared-utils) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-api) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-connector-basic) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-impl) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-spi) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-transport-wagon) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-util) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.shared:maven-shared-utils) BuildRequires: mvn(org.apache.maven.wagon:wagon-file) BuildRequires: mvn(org.apache.maven.wagon:wagon-http::shaded:) -BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.wagon:wagon-provider-api) BuildRequires: mvn(org.codehaus.modello:modello-maven-plugin) >= 1.10.0 BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) -BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) -BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) +BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-classworlds) +BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-component-annotations) BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata) -BuildRequires: mvn(org.codehaus.plexus:plexus-interpolation) -BuildRequires: mvn(org.codehaus.plexus:plexus-utils) >= 3.2.0 -BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject) -BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) +BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-interpolation) +BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-utils) >= 3.2.0 +BuildRequires: %{?module_prefix}mvn(org.eclipse.sisu:org.eclipse.sisu.inject) +BuildRequires: %{?module_prefix}mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) BuildRequires: mvn(org.fusesource.jansi:jansi) BuildRequires: mvn(org.mockito:mockito-core) >= 2 BuildRequires: mvn(org.slf4j:jcl-over-slf4j) -BuildRequires: mvn(org.slf4j:slf4j-api) +BuildRequires: %{?module_prefix}mvn(org.slf4j:slf4j-api) BuildRequires: mvn(org.slf4j:slf4j-simple) -BuildRequires: mvn(org.sonatype.plexus:plexus-cipher) -BuildRequires: mvn(org.sonatype.plexus:plexus-sec-dispatcher) +BuildRequires: %{?module_prefix}mvn(org.sonatype.plexus:plexus-cipher) +BuildRequires: %{?module_prefix}mvn(org.sonatype.plexus:plexus-sec-dispatcher) BuildRequires: mvn(org.xmlunit:xmlunit-core) BuildRequires: mvn(org.xmlunit:xmlunit-matchers) BuildRequires: slf4j-sources = %{bundled_slf4j_version} -Requires: %{name}-lib = %{epoch}:%{version}-%{release} +Requires: %{?module_prefix}%{name}-lib = %{epoch}:%{version}-%{release} Requires(post): (alternatives if fedora-release >= 30 else chkconfig) Requires(postun): (alternatives if fedora-release >= 30 else chkconfig) @@ -82,34 +82,34 @@ Recommends: java-devel # by XMvn. It would be possible to explicitly specify only # dependencies which are not generated automatically, but adding # everything seems to be easier. -Requires: aopalliance -Requires: apache-commons-cli -Requires: apache-commons-codec -Requires: apache-commons-io -Requires: apache-commons-lang3 -Requires: apache-commons-logging -Requires: atinject -Requires: cdi-api -Requires: geronimo-annotation -Requires: google-guice -Requires: guava -Requires: hawtjni-runtime -Requires: httpcomponents-client -Requires: httpcomponents-core -Requires: jansi -Requires: jansi-native -Requires: jcl-over-slf4j -Requires: maven-resolver -Requires: maven-shared-utils -Requires: maven-wagon -Requires: plexus-cipher -Requires: plexus-classworlds -Requires: plexus-containers-component-annotations -Requires: plexus-interpolation -Requires: plexus-sec-dispatcher -Requires: plexus-utils -Requires: sisu -Requires: slf4j +Requires: %{?module_prefix}aopalliance +Requires: %{?module_prefix}apache-commons-cli +Requires: %{?module_prefix}apache-commons-codec +Requires: %{?module_prefix}apache-commons-io +Requires: %{?module_prefix}apache-commons-lang3 +Requires: %{?module_prefix}apache-commons-logging +Requires: %{?module_prefix}atinject +Requires: %{?module_prefix}cdi-api +Requires: %{?module_prefix}geronimo-annotation +Requires: %{?module_prefix}google-guice +Requires: %{?module_prefix}guava +Requires: %{?module_prefix}hawtjni-runtime +Requires: %{?module_prefix}httpcomponents-client +Requires: %{?module_prefix}httpcomponents-core +Requires: %{?module_prefix}jansi +Requires: %{?module_prefix}jansi-native +Requires: %{?module_prefix}jcl-over-slf4j +Requires: %{?module_prefix}maven-resolver +Requires: %{?module_prefix}maven-shared-utils +Requires: %{?module_prefix}maven-wagon +Requires: %{?module_prefix}plexus-cipher +Requires: %{?module_prefix}plexus-classworlds +Requires: %{?module_prefix}plexus-containers-component-annotations +Requires: %{?module_prefix}plexus-interpolation +Requires: %{?module_prefix}plexus-sec-dispatcher +Requires: %{?module_prefix}plexus-utils +Requires: %{?module_prefix}sisu +Requires: %{?module_prefix}slf4j %description Maven is a software project management and comprehension tool. Based on the From 438f14fe7fbe7d355cbca4af1bcf1e449cbfb046 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 29 2019 12:44:20 +0000 Subject: [PATCH 6/12] Add explicit BR on prefixed packages --- diff --git a/maven.spec b/maven.spec index a16687f..be4e5ce 100644 --- a/maven.spec +++ b/maven.spec @@ -66,6 +66,34 @@ BuildRequires: mvn(org.xmlunit:xmlunit-matchers) BuildRequires: slf4j-sources = %{bundled_slf4j_version} +BuildRequires: %{?module_prefix}aopalliance +BuildRequires: %{?module_prefix}apache-commons-cli +BuildRequires: %{?module_prefix}apache-commons-codec +BuildRequires: %{?module_prefix}apache-commons-io +BuildRequires: %{?module_prefix}apache-commons-lang3 +BuildRequires: %{?module_prefix}apache-commons-logging +BuildRequires: %{?module_prefix}atinject +BuildRequires: %{?module_prefix}cdi-api +BuildRequires: %{?module_prefix}geronimo-annotation +BuildRequires: %{?module_prefix}google-guice +BuildRequires: %{?module_prefix}guava +BuildRequires: %{?module_prefix}hawtjni-runtime +BuildRequires: %{?module_prefix}httpcomponents-client +BuildRequires: %{?module_prefix}httpcomponents-core +BuildRequires: %{?module_prefix}jansi +BuildRequires: %{?module_prefix}jansi-native +BuildRequires: %{?module_prefix}jcl-over-slf4j +BuildRequires: %{?module_prefix}maven-resolver +BuildRequires: %{?module_prefix}maven-shared-utils +BuildRequires: %{?module_prefix}maven-wagon +BuildRequires: %{?module_prefix}plexus-cipher +BuildRequires: %{?module_prefix}plexus-classworlds +BuildRequires: %{?module_prefix}plexus-containers-component-annotations +BuildRequires: %{?module_prefix}plexus-interpolation +BuildRequires: %{?module_prefix}plexus-sec-dispatcher +BuildRequires: %{?module_prefix}plexus-utils +BuildRequires: %{?module_prefix}sisu +BuildRequires: %{?module_prefix}slf4j Requires: %{?module_prefix}%{name}-lib = %{epoch}:%{version}-%{release} From b84a3416e565203d1a1b0544c107928d843c8590 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jul 01 2019 08:53:39 +0000 Subject: [PATCH 7/12] Avoid manually symlinking required libraries --- diff --git a/0001-Adapt-mvn-script.patch b/0001-Adapt-mvn-script.patch index aeac507..e62d186 100644 --- a/0001-Adapt-mvn-script.patch +++ b/0001-Adapt-mvn-script.patch @@ -1,7 +1,7 @@ From 9e51d86115b066cbf3d44392810b3f6fd63fdfc9 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Wed, 1 Feb 2017 14:54:26 +0100 -Subject: [PATCH 1/3] Adapt mvn script +Subject: [PATCH 1/4] Adapt mvn script --- apache-maven/src/bin/mvn | 19 ++++++++++++++++--- diff --git a/0002-Invoke-logback-via-reflection.patch b/0002-Invoke-logback-via-reflection.patch index 4ab9c09..44c017e 100644 --- a/0002-Invoke-logback-via-reflection.patch +++ b/0002-Invoke-logback-via-reflection.patch @@ -1,7 +1,7 @@ From 4fa2cfaa19a0752a656b2a223a77c3af25d2de12 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 6 Jun 2017 13:47:43 +0200 -Subject: [PATCH 2/3] Invoke logback via reflection +Subject: [PATCH 2/4] Invoke logback via reflection --- .../logging/impl/LogbackConfiguration.java | 19 ++++++++++++++----- diff --git a/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch b/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch index 6d517b1..47cc1bd 100644 --- a/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch +++ b/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch @@ -1,7 +1,7 @@ From c533aada209c517c1666989d7115672e7522aa72 Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Sat, 13 Oct 2018 04:16:44 +0200 -Subject: [PATCH 3/3] [MNG-6642] Revert "[MNG-5995] Remove dependency to +Subject: [PATCH 3/4] [MNG-6642] Revert "[MNG-5995] Remove dependency to maven-compat (#185)" This partially reverts commit bb3ec5da71d26d105972392f0a20bc61bc5d8c53 to restore working with Tycho P2 repository. diff --git a/0004-Use-non-shaded-HTTP-wagon.patch b/0004-Use-non-shaded-HTTP-wagon.patch new file mode 100644 index 0000000..5b2dcd6 --- /dev/null +++ b/0004-Use-non-shaded-HTTP-wagon.patch @@ -0,0 +1,51 @@ +From 59092ee77227c480d3665d62554f0f0023d8a6c7 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 1 Jul 2019 09:51:56 +0200 +Subject: [PATCH 4/4] Use non-shaded HTTP wagon + +--- + apache-maven/pom.xml | 15 --------------- + pom.xml | 1 - + 2 files changed, 16 deletions(-) + +diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml +index 2686570af..d22ae121d 100644 +--- a/apache-maven/pom.xml ++++ b/apache-maven/pom.xml +@@ -63,21 +63,6 @@ under the License. + + org.apache.maven.wagon + wagon-http +- shaded +- +- +- org.apache.httpcomponents +- httpclient +- +- +- org.apache.httpcomponents +- httpcore +- +- +- org.apache.maven.wagon +- wagon-http-shared +- +- + + + org.slf4j +diff --git a/pom.xml b/pom.xml +index 237cdc39e..85436c54d 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -324,7 +324,6 @@ under the License. + org.apache.maven.wagon + wagon-http + ${wagonVersion} +- shaded + + + commons-logging +-- +2.21.0 + diff --git a/maven.spec b/maven.spec index be4e5ce..f5bbbac 100644 --- a/maven.spec +++ b/maven.spec @@ -22,6 +22,7 @@ Patch1: 0001-Adapt-mvn-script.patch # Used only when %%without logback is in effect Patch2: 0002-Invoke-logback-via-reflection.patch Patch3: 0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch +Patch4: 0004-Use-non-shaded-HTTP-wagon.patch BuildRequires: maven-local BuildRequires: %{?module_prefix}mvn(com.google.inject:guice::no_aop:) @@ -41,8 +42,8 @@ BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-sp BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-transport-wagon) BuildRequires: %{?module_prefix}mvn(org.apache.maven.resolver:maven-resolver-util) BuildRequires: %{?module_prefix}mvn(org.apache.maven.shared:maven-shared-utils) -BuildRequires: mvn(org.apache.maven.wagon:wagon-file) -BuildRequires: mvn(org.apache.maven.wagon:wagon-http::shaded:) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.wagon:wagon-file) +BuildRequires: %{?module_prefix}mvn(org.apache.maven.wagon:wagon-http) BuildRequires: %{?module_prefix}mvn(org.apache.maven.wagon:wagon-provider-api) BuildRequires: mvn(org.codehaus.modello:modello-maven-plugin) >= 1.10.0 BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) @@ -54,11 +55,11 @@ BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-utils) >= 3.2.0 BuildRequires: %{?module_prefix}mvn(org.eclipse.sisu:org.eclipse.sisu.inject) BuildRequires: %{?module_prefix}mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) -BuildRequires: mvn(org.fusesource.jansi:jansi) +BuildRequires: %{?module_prefix}mvn(org.fusesource.jansi:jansi) BuildRequires: mvn(org.mockito:mockito-core) >= 2 -BuildRequires: mvn(org.slf4j:jcl-over-slf4j) +BuildRequires: %{?module_prefix}mvn(org.slf4j:jcl-over-slf4j) BuildRequires: %{?module_prefix}mvn(org.slf4j:slf4j-api) -BuildRequires: mvn(org.slf4j:slf4j-simple) +BuildRequires: %{?module_prefix}mvn(org.slf4j:slf4j-simple) BuildRequires: %{?module_prefix}mvn(org.sonatype.plexus:plexus-cipher) BuildRequires: %{?module_prefix}mvn(org.sonatype.plexus:plexus-sec-dispatcher) BuildRequires: mvn(org.xmlunit:xmlunit-core) @@ -66,35 +67,6 @@ BuildRequires: mvn(org.xmlunit:xmlunit-matchers) BuildRequires: slf4j-sources = %{bundled_slf4j_version} -BuildRequires: %{?module_prefix}aopalliance -BuildRequires: %{?module_prefix}apache-commons-cli -BuildRequires: %{?module_prefix}apache-commons-codec -BuildRequires: %{?module_prefix}apache-commons-io -BuildRequires: %{?module_prefix}apache-commons-lang3 -BuildRequires: %{?module_prefix}apache-commons-logging -BuildRequires: %{?module_prefix}atinject -BuildRequires: %{?module_prefix}cdi-api -BuildRequires: %{?module_prefix}geronimo-annotation -BuildRequires: %{?module_prefix}google-guice -BuildRequires: %{?module_prefix}guava -BuildRequires: %{?module_prefix}hawtjni-runtime -BuildRequires: %{?module_prefix}httpcomponents-client -BuildRequires: %{?module_prefix}httpcomponents-core -BuildRequires: %{?module_prefix}jansi -BuildRequires: %{?module_prefix}jansi-native -BuildRequires: %{?module_prefix}jcl-over-slf4j -BuildRequires: %{?module_prefix}maven-resolver -BuildRequires: %{?module_prefix}maven-shared-utils -BuildRequires: %{?module_prefix}maven-wagon -BuildRequires: %{?module_prefix}plexus-cipher -BuildRequires: %{?module_prefix}plexus-classworlds -BuildRequires: %{?module_prefix}plexus-containers-component-annotations -BuildRequires: %{?module_prefix}plexus-interpolation -BuildRequires: %{?module_prefix}plexus-sec-dispatcher -BuildRequires: %{?module_prefix}plexus-utils -BuildRequires: %{?module_prefix}sisu -BuildRequires: %{?module_prefix}slf4j - Requires: %{?module_prefix}%{name}-lib = %{epoch}:%{version}-%{release} Requires(post): (alternatives if fedora-release >= 30 else chkconfig) @@ -104,41 +76,6 @@ Requires(postun): (alternatives if fedora-release >= 30 else chkconfig) # workflow requires full JDK, so we recommend it here. Recommends: java-devel -# XMvn does generate auto-requires, but explicit requires are still -# needed because some symlinked JARs are not present in Maven POMs or -# their dependency scope prevents them from being added automatically -# by XMvn. It would be possible to explicitly specify only -# dependencies which are not generated automatically, but adding -# everything seems to be easier. -Requires: %{?module_prefix}aopalliance -Requires: %{?module_prefix}apache-commons-cli -Requires: %{?module_prefix}apache-commons-codec -Requires: %{?module_prefix}apache-commons-io -Requires: %{?module_prefix}apache-commons-lang3 -Requires: %{?module_prefix}apache-commons-logging -Requires: %{?module_prefix}atinject -Requires: %{?module_prefix}cdi-api -Requires: %{?module_prefix}geronimo-annotation -Requires: %{?module_prefix}google-guice -Requires: %{?module_prefix}guava -Requires: %{?module_prefix}hawtjni-runtime -Requires: %{?module_prefix}httpcomponents-client -Requires: %{?module_prefix}httpcomponents-core -Requires: %{?module_prefix}jansi -Requires: %{?module_prefix}jansi-native -Requires: %{?module_prefix}jcl-over-slf4j -Requires: %{?module_prefix}maven-resolver -Requires: %{?module_prefix}maven-shared-utils -Requires: %{?module_prefix}maven-wagon -Requires: %{?module_prefix}plexus-cipher -Requires: %{?module_prefix}plexus-classworlds -Requires: %{?module_prefix}plexus-containers-component-annotations -Requires: %{?module_prefix}plexus-interpolation -Requires: %{?module_prefix}plexus-sec-dispatcher -Requires: %{?module_prefix}plexus-utils -Requires: %{?module_prefix}sisu -Requires: %{?module_prefix}slf4j - %description Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, @@ -171,6 +108,7 @@ Core part of Apache Maven that can be used as a library. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 # not really used during build, but a precaution find -name '*.jar' -not -path '*/test/*' -delete @@ -223,17 +161,6 @@ install -d -m 755 %{buildroot}%{_datadir}/bash-completion/completions/ cp -a $M2_HOME/{bin,lib,boot} %{buildroot}%{homedir}/ xmvn-subst -R %{buildroot} -s %{buildroot}%{homedir} -# Transitive deps of wagon-http, missing because of unshading -build-jar-repository -s -p %{buildroot}%{homedir}/lib \ - commons-{codec,logging} httpcomponents/{httpclient,httpcore} maven-wagon/http-shared - -# Transitive deps of cdi-api that should have been excluded -rm %{buildroot}%{homedir}/lib/jboss-interceptors*.jar -rm %{buildroot}%{homedir}/lib/javax.el-api*.jar - -# Native lib whose extraction we suppressed -ln -s %{_jnidir}/jansi-native/jansi-linux.jar %{buildroot}%{homedir}/lib/ - install -p -m 644 %{SOURCE2} %{buildroot}%{homedir}/bin/ gzip -9 %{buildroot}%{homedir}/bin/mvn.1 install -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/bash-completion/completions/mvn%{?maven_version_suffix} From 3d7478cfc8a082060326254ee20cba5a62c43484 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jul 01 2019 09:14:48 +0000 Subject: [PATCH 8/12] Change scope of jansi dependency to runtime --- diff --git a/maven.spec b/maven.spec index f5bbbac..361f75d 100644 --- a/maven.spec +++ b/maven.spec @@ -136,6 +136,7 @@ sed -i " %mvn_package :apache-maven __noinstall +%pom_change_dep :jansi :::runtime maven-embedder %pom_remove_dep -r :logback-classic %mvn_alias :maven-resolver-provider :maven-aether-provider From a77ded0c2878cc066e110d5554b179b910866dd5 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jul 01 2019 09:20:15 +0000 Subject: [PATCH 9/12] Fix requires of namespaced main package --- diff --git a/maven.spec b/maven.spec index 361f75d..800035e 100644 --- a/maven.spec +++ b/maven.spec @@ -67,6 +67,11 @@ BuildRequires: mvn(org.xmlunit:xmlunit-matchers) BuildRequires: slf4j-sources = %{bundled_slf4j_version} +%if 0%{?module_prefix:1} +%package -n %{module_prefix}%{name} +Summary: %{summary} +%endif + Requires: %{?module_prefix}%{name}-lib = %{epoch}:%{version}-%{release} Requires(post): (alternatives if fedora-release >= 30 else chkconfig) @@ -76,6 +81,11 @@ Requires(postun): (alternatives if fedora-release >= 30 else chkconfig) # workflow requires full JDK, so we recommend it here. Recommends: java-devel +%if 0%{?module_prefix:1} +%description -n %{module_prefix}%{name} +%{summary}. +%endif + %description Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, @@ -99,7 +109,6 @@ Provides: bundled(slf4j) = %{bundled_slf4j_version} %description -n %{?module_prefix}%{name}-lib Core part of Apache Maven that can be used as a library. -%{?module_package} %{?javadoc_package} %prep From 4f933c98bb2297c896597fb76257dc664e631e61 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jul 01 2019 12:24:02 +0000 Subject: [PATCH 10/12] Remove unused maven-script --- diff --git a/maven-script b/maven-script deleted file mode 100644 index c4e898c..0000000 --- a/maven-script +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -for f in /etc/mavenrc /etc/java/maven.conf "$HOME/.mavenrc"; do - [ -f "$f" ] && . "$f" -done - -if [ -f /usr/share/java-utils/java-functions ] ; then - . /usr/share/java-utils/java-functions - set_jvm - set_javacmd -fi -export JAVA_HOME -export JAVACMD - -export M2_HOME="${M2_HOME:-/usr/share/maven}" - - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { -( - basedir="`pwd`" - wdir="`pwd`" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - wdir="`cd "$wdir/.."; pwd`" - done - echo "${basedir}" -) -} - -export MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir`}" - -export MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" - -project_opts=$( - [ -e "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config" ] && - cat /tmp/foo "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") - -exec "$JAVACMD" \ - $project_opts \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath $(build-classpath plexus-classworlds) \ - -Dclassworlds.conf="${M2_HOME}/bin/m2.conf" \ - -Dmaven.home="${M2_HOME}" \ - -Dmaven.multiModuleProjectDirectory="${MAVEN_PROJECTBASEDIR}" \ - org.codehaus.plexus.classworlds.launcher.Launcher \ - "$@" From 180d45516a27efffa4510df8891a74999475f62a Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jul 01 2019 12:26:52 +0000 Subject: [PATCH 11/12] Fix classworlds location in maven script --- diff --git a/0001-Adapt-mvn-script.patch b/0001-Adapt-mvn-script.patch index e62d186..3b9b670 100644 --- a/0001-Adapt-mvn-script.patch +++ b/0001-Adapt-mvn-script.patch @@ -1,14 +1,14 @@ -From 9e51d86115b066cbf3d44392810b3f6fd63fdfc9 Mon Sep 17 00:00:00 2001 +From 056c94f86450c7c27f5bb11f98653c73bfe3d8e4 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Wed, 1 Feb 2017 14:54:26 +0100 Subject: [PATCH 1/4] Adapt mvn script --- - apache-maven/src/bin/mvn | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) + apache-maven/src/bin/mvn | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn -index a554c6617..818cf70b8 100755 +index a554c6617..0c07ba6e2 100755 --- a/apache-maven/src/bin/mvn +++ b/apache-maven/src/bin/mvn @@ -22,7 +22,7 @@ @@ -55,15 +55,6 @@ index a554c6617..818cf70b8 100755 # make it fully qualified MAVEN_HOME=`cd "$MAVEN_HOME" && pwd` -@@ -102,7 +115,7 @@ if [ ! -x "$JAVACMD" ] ; then - exit 1 - fi - --CLASSWORLDS_JAR=`echo "${MAVEN_HOME}"/boot/plexus-classworlds-*.jar` -+CLASSWORLDS_JAR=`build-classpath plexus-classworlds` - CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - - # For Cygwin, switch paths to Windows format before running java -- 2.21.0 diff --git a/0002-Invoke-logback-via-reflection.patch b/0002-Invoke-logback-via-reflection.patch index 44c017e..863977d 100644 --- a/0002-Invoke-logback-via-reflection.patch +++ b/0002-Invoke-logback-via-reflection.patch @@ -1,4 +1,4 @@ -From 4fa2cfaa19a0752a656b2a223a77c3af25d2de12 Mon Sep 17 00:00:00 2001 +From 7610a10691e680db00edcbd4ce6767a30641cd71 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 6 Jun 2017 13:47:43 +0200 Subject: [PATCH 2/4] Invoke logback via reflection diff --git a/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch b/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch index 47cc1bd..9986945 100644 --- a/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch +++ b/0003-MNG-6642-Revert-MNG-5995-Remove-dependency-to-maven-.patch @@ -1,4 +1,4 @@ -From c533aada209c517c1666989d7115672e7522aa72 Mon Sep 17 00:00:00 2001 +From 56d10f48ebb2cdaf3882dc8afbef65a2ab529040 Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Sat, 13 Oct 2018 04:16:44 +0200 Subject: [PATCH 3/4] [MNG-6642] Revert "[MNG-5995] Remove dependency to diff --git a/0004-Use-non-shaded-HTTP-wagon.patch b/0004-Use-non-shaded-HTTP-wagon.patch index 5b2dcd6..0ebea69 100644 --- a/0004-Use-non-shaded-HTTP-wagon.patch +++ b/0004-Use-non-shaded-HTTP-wagon.patch @@ -1,4 +1,4 @@ -From 59092ee77227c480d3665d62554f0f0023d8a6c7 Mon Sep 17 00:00:00 2001 +From c8933d155694ce37b1d4be59a744c8f7cbde6bb5 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 1 Jul 2019 09:51:56 +0200 Subject: [PATCH 4/4] Use non-shaded HTTP wagon From 5c6c03b4f242b46e18c1877aeb9058cf94f539c1 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jul 01 2019 12:38:35 +0000 Subject: [PATCH 12/12] Install versioned commands and manpages --- diff --git a/maven.spec b/maven.spec index 800035e..2598853 100644 --- a/maven.spec +++ b/maven.spec @@ -72,11 +72,15 @@ BuildRequires: slf4j-sources = %{bundled_slf4j_version} Summary: %{summary} %endif -Requires: %{?module_prefix}%{name}-lib = %{epoch}:%{version}-%{release} +Requires: %{?module_prefix}%{name}-lib = %{epoch}:%{version}-%{release} Requires(post): (alternatives if fedora-release >= 30 else chkconfig) Requires(postun): (alternatives if fedora-release >= 30 else chkconfig) +# Require full javapackages-tools since maven-script uses +# /usr/share/java-utils/java-functions +Requires: javapackages-tools + # Theoretically Maven might be usable with just JRE, but typical Maven # workflow requires full JDK, so we recommend it here. Recommends: java-devel @@ -97,9 +101,6 @@ Summary: Core part of Maven # installed first to avoid triggering rhbz#1014355. OrderWithRequires: xmvn-minimal -# Require full javapackages-tools since maven-script uses -# /usr/share/java-utils/java-functions -Requires: javapackages-tools # Maven upstream uses patched version of SLF4J. They unpack # slf4j-simple-sources.jar, apply non-upstreamable, Maven-specific # patch (using a script written in Groovy), compile and package as @@ -187,6 +188,14 @@ install -d -m 755 %{buildroot}%{_mandir}/man1/ touch %{buildroot}%{_bindir}/{mvn,mvnDebug} touch %{buildroot}%{_mandir}/man1/{mvn,mvnDebug}.1 +# Versioned commands and manpages +%if 0%{?maven_version_suffix:1} +ln -s %{homedir}/bin/mvn %{buildroot}%{_bindir}/mvn%{maven_version_suffix} +ln -s %{homedir}/bin/mvnDebug %{buildroot}%{_bindir}/mvnDebug%{maven_version_suffix} +ln -s %{homedir}/bin/mvn.1.gz %{buildroot}%{_mandir}/man1/mvn%{maven_version_suffix}.1.gz +ln -s %{homedir}/bin/mvnDebug.1.gz %{buildroot}%{_mandir}/man1/mvnDebug%{maven_version_suffix}.1.gz +%endif + %post -n %{?module_prefix}%{name} update-alternatives --install %{_bindir}/mvn mvn %{homedir}/bin/mvn %{?maven_alternatives_priority}0 \ @@ -214,6 +223,12 @@ update-alternatives --install %{_bindir}/mvn mvn %{homedir}/bin/mvn %{?maven_alt %{_datadir}/bash-completion %ghost %{_mandir}/man1/mvn.1.gz %ghost %{_mandir}/man1/mvnDebug.1.gz +%if 0%{?maven_version_suffix:1} +%{_bindir}/mvn%{maven_version_suffix} +%{_bindir}/mvnDebug%{maven_version_suffix} +%{_mandir}/man1/mvn%{maven_version_suffix}.1.gz +%{_mandir}/man1/mvnDebug%{maven_version_suffix}.1.gz +%endif %changelog