commit d8b7dbc9910d5915148cfc8f2528b14ed218e77d Author: Adrian Schröter Date: Mon Feb 19 15:43:37 2024 +0100 Sync from SUSE:ALP:Source:Standard:1.0 maven revision c1e0896cca1eedaed0bb8102909c39c0 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/0001-Adapt-mvn-script.patch b/0001-Adapt-mvn-script.patch new file mode 100644 index 0000000..72f596a --- /dev/null +++ b/0001-Adapt-mvn-script.patch @@ -0,0 +1,69 @@ +From 6e8f6a1b27c09d0a84fb5f3b7269cf5840db04f8 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(-) + +diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn +index dfa384b8e..8c03825ed 100755 +--- a/apache-maven/src/bin/mvn ++++ b/apache-maven/src/bin/mvn +@@ -22,7 +22,7 @@ + # + # Environment Variable Prerequisites + # +-# JAVA_HOME Must point at your Java Development Kit installation. ++# JAVA_HOME (Optional) Must point at your Java Development Kit installation. + # MAVEN_ARGS (Optional) Arguments passed to Maven before CLI arguments. + # MAVEN_OPTS (Optional) Java runtime options used when Maven is executed. + # MAVEN_SKIP_RC (Optional) Flag to disable loading of mavenrc files. +@@ -38,12 +38,24 @@ if [ -z "$MAVEN_SKIP_RC" ] ; then + . /etc/mavenrc + fi + ++ if [ -f /etc/java/maven.conf ] ; then ++ . /etc/java/maven.conf ++ fi ++ + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + + fi + ++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 ++ + # OS specific support. $var _must_ be set to either true or false. + cygwin=false; + mingw=false; +@@ -68,7 +80,8 @@ done + + saveddir=`pwd` + +-MAVEN_HOME=`dirname "$PRG"`/.. ++MAVEN_HOME="${_FEDORA_MAVEN_HOME:-`dirname "$PRG"`/..}" ++unset _FEDORA_MAVEN_HOME + + # make it fully qualified + MAVEN_HOME=`cd "$MAVEN_HOME" && pwd` +@@ -106,7 +119,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.36.1 + diff --git a/0002-Invoke-logback-via-reflection.patch b/0002-Invoke-logback-via-reflection.patch new file mode 100644 index 0000000..aab3138 --- /dev/null +++ b/0002-Invoke-logback-via-reflection.patch @@ -0,0 +1,51 @@ +From d1e6e9bcce8553e85957987d05d28583fcb55fdf 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 + +--- + .../cli/logging/impl/LogbackConfiguration.java | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java +index 4dc5a37b8..a977ba085 100644 +--- a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java ++++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java +@@ -31,21 +31,29 @@ + public class LogbackConfiguration extends BaseSlf4jConfiguration { + @Override + public void setRootLoggerLevel(Level level) { +- ch.qos.logback.classic.Level value; ++ String value; + switch (level) { + case DEBUG: +- value = ch.qos.logback.classic.Level.DEBUG; ++ value = "DEBUG"; + break; + + case INFO: +- value = ch.qos.logback.classic.Level.INFO; ++ value = "INFO"; + break; + + default: +- value = ch.qos.logback.classic.Level.ERROR; ++ value = "ERROR"; + break; + } +- ((ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)).setLevel(value); ++ Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); ++ try { ++ Class levelClass = Class.forName("ch.qos.logback.classic.Level"); ++ Object logbackLevel = levelClass.getField(value).get(null); ++ Class loggerClass = Class.forName("ch.qos.logback.classic.Logger"); ++ loggerClass.getMethod("setLevel", new Class[] {levelClass}).invoke(logger, new Object[] {logbackLevel}); ++ } catch (Exception e) { ++ throw new RuntimeException("Failed to initialize logback configuration", e); ++ } + } + + @Override +-- +2.40.1 + diff --git a/0003-Remove-dependency-on-powermock.patch b/0003-Remove-dependency-on-powermock.patch new file mode 100644 index 0000000..9554240 --- /dev/null +++ b/0003-Remove-dependency-on-powermock.patch @@ -0,0 +1,89 @@ +From fdc9034faeb960d15aa39820d610e00cd7121e03 Mon Sep 17 00:00:00 2001 +From: Marian Koncek +Date: Thu, 5 Sep 2019 15:21:04 +0200 +Subject: [PATCH 3/4] Remove dependency on powermock + +--- + .../StringSearchModelInterpolatorTest.java | 59 ------------------- + 1 file changed, 59 deletions(-) + +diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java +index b2612e540..20b7162e2 100644 +--- a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java ++++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java +@@ -35,8 +35,6 @@ + import static org.hamcrest.CoreMatchers.anyOf; + import static org.hamcrest.CoreMatchers.is; + import static org.junit.Assert.assertThat; +-import static org.powermock.reflect.Whitebox.getField; +-import static org.powermock.reflect.Whitebox.getInternalState; + + /** + * @author jdcasey +@@ -344,63 +342,6 @@ public void testInterpolateObjectWithPomFile() throws Exception { + is(System.getProperty("user.dir") + File.separator + '.' + File.separator + "target")))); + } + +- public void testNotInterpolateObjectWithFile() throws Exception { +- Model model = new Model(); +- +- File baseDir = new File(System.getProperty("user.dir")); +- +- Properties p = new Properties(); +- +- ObjectWithNotInterpolatedFile obj = new ObjectWithNotInterpolatedFile(baseDir); +- +- StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator(); +- +- ModelBuildingRequest config = createModelBuildingRequest(p); +- +- SimpleProblemCollector collector = new SimpleProblemCollector(); +- interpolator.interpolateObject(obj, model, new File("."), config, collector); +- assertProblemFree(collector); +- +- //noinspection unchecked +- Map, ?> cache = (Map, ?>) +- getField(StringSearchModelInterpolator.class, "CACHED_ENTRIES").get(null); +- +- Object objCacheItem = cache.get(Object.class); +- Object fileCacheItem = cache.get(File.class); +- +- assertNotNull(objCacheItem); +- assertNotNull(fileCacheItem); +- +- assertThat(((Object[]) getInternalState(objCacheItem, "fields")).length, is(0)); +- assertThat(((Object[]) getInternalState(fileCacheItem, "fields")).length, is(0)); +- } +- +- public void testNotInterpolateFile() throws Exception { +- Model model = new Model(); +- +- File baseDir = new File(System.getProperty("user.dir")); +- +- Properties p = new Properties(); +- +- StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator(); +- +- ModelBuildingRequest config = createModelBuildingRequest(p); +- +- SimpleProblemCollector collector = new SimpleProblemCollector(); +- interpolator.interpolateObject(baseDir, model, new File("."), config, collector); +- assertProblemFree(collector); +- +- //noinspection unchecked +- Map, ?> cache = (Map, ?>) +- getField(StringSearchModelInterpolator.class, "CACHED_ENTRIES").get(null); +- +- Object fileCacheItem = cache.get(File.class); +- +- assertNotNull(fileCacheItem); +- +- assertThat(((Object[]) getInternalState(fileCacheItem, "fields")).length, is(0)); +- } +- + public void testConcurrentInterpolation() throws Exception { + final Model model = new Model(); + +-- +2.40.1 + diff --git a/0004-Fix-build-with-qdox-2.0.1.patch b/0004-Fix-build-with-qdox-2.0.1.patch new file mode 100644 index 0000000..3bb7ef7 --- /dev/null +++ b/0004-Fix-build-with-qdox-2.0.1.patch @@ -0,0 +1,156 @@ +From a46e8cb4641508c71379a07869551c770f18f1b9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Tue, 2 May 2023 18:12:26 +0200 +Subject: [PATCH 4/4] Fix build with qdox-2.0.1 + +--- + .../org/apache/maven/plugin/DefaultExtensionRealmCache.java | 2 +- + .../org/apache/maven/plugin/DefaultPluginArtifactsCache.java | 2 +- + .../java/org/apache/maven/plugin/DefaultPluginRealmCache.java | 2 +- + .../java/org/apache/maven/plugin/ExtensionRealmCache.java | 4 ++-- + .../java/org/apache/maven/plugin/PluginArtifactsCache.java | 4 ++-- + .../main/java/org/apache/maven/plugin/PluginRealmCache.java | 4 ++-- + .../org/apache/maven/project/DefaultProjectRealmCache.java | 2 +- + .../main/java/org/apache/maven/project/ProjectRealmCache.java | 4 ++-- + .../maven/project/artifact/DefaultProjectArtifactsCache.java | 2 +- + .../apache/maven/project/artifact/ProjectArtifactsCache.java | 4 ++-- + 10 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java +index e2b712305..ce7bcae4e 100644 +--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java ++++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java +@@ -138,7 +138,7 @@ public void flush() { + cache.clear(); + } + +- public void register(MavenProject project, Key key, CacheRecord record) { ++ public void register(MavenProject project, Key key, CacheRecord record_) { + // default cache does not track extension usage + } + +diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java +index f2088b593..e5d7244fd 100644 +--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java ++++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java +@@ -177,7 +177,7 @@ protected static boolean pluginEquals(Plugin a, Plugin b) { + return CacheUtils.pluginEquals(a, b); + } + +- public void register(MavenProject project, Key cacheKey, CacheRecord record) { ++ public void register(MavenProject project, Key cacheKey, CacheRecord record_) { + // default cache does not track record usage + } + } +diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java +index 10321374b..c9e1d0e59 100644 +--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java ++++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java +@@ -204,7 +204,7 @@ protected static boolean pluginEquals(Plugin a, Plugin b) { + return CacheUtils.pluginEquals(a, b); + } + +- public void register(MavenProject project, Key key, CacheRecord record) { ++ public void register(MavenProject project, Key key, CacheRecord record_) { + // default cache does not track plugin usage + } + +diff --git a/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java +index 022b99320..b5cb6e66a 100644 +--- a/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java ++++ b/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java +@@ -86,7 +86,7 @@ CacheRecord put( + * cache. + * + * @param project The project that employs the plugin realm, must not be {@code null}. +- * @param record The cache record being used for the project, must not be {@code null}. ++ * @param record_ The cache record being used for the project, must not be {@code null}. + */ +- void register(MavenProject project, Key key, CacheRecord record); ++ void register(MavenProject project, Key key, CacheRecord record_); + } +diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java +index b0c07ae9a..97f76524c 100644 +--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java ++++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java +@@ -92,7 +92,7 @@ Key createKey( + * cache. + * + * @param project The project that employs the plugin realm, must not be {@code null}. +- * @param record The cache record being used for the project, must not be {@code null}. ++ * @param record_ The cache record being used for the project, must not be {@code null}. + */ +- void register(MavenProject project, Key cacheKey, CacheRecord record); ++ void register(MavenProject project, Key cacheKey, CacheRecord record_); + } +diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java +index bf655efc3..7b0e25259 100644 +--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java ++++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java +@@ -102,7 +102,7 @@ default CacheRecord get(Key key, PluginRealmSupplier supplier) + * cache. + * + * @param project The project that employs the plugin realm, must not be {@code null}. +- * @param record The cache record being used for the project, must not be {@code null}. ++ * @param record_ The cache record being used for the project, must not be {@code null}. + */ +- void register(MavenProject project, Key key, CacheRecord record); ++ void register(MavenProject project, Key key, CacheRecord record_); + } +diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java +index 1a1f70638..cb446c759 100644 +--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java ++++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java +@@ -115,7 +115,7 @@ public void flush() { + cache.clear(); + } + +- public void register(MavenProject project, Key key, CacheRecord record) { ++ public void register(MavenProject project, Key key, CacheRecord record_) { + // default cache does not track record usage + } + +diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java b/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java +index 241c86095..922ec982c 100644 +--- a/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java ++++ b/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java +@@ -77,7 +77,7 @@ public DependencyFilter getExtensionArtifactFilter() { + * cache. + * + * @param project The project that employs the plugin realm, must not be {@code null}. +- * @param record The cache record being used for the project, must not be {@code null}. ++ * @param record_ The cache record being used for the project, must not be {@code null}. + */ +- void register(MavenProject project, Key key, CacheRecord record); ++ void register(MavenProject project, Key key, CacheRecord record_); + } +diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java +index c45128530..a854fd234 100644 +--- a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java ++++ b/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java +@@ -227,7 +227,7 @@ public void flush() { + } + + @Override +- public void register(MavenProject project, Key cacheKey, CacheRecord record) { ++ public void register(MavenProject project, Key cacheKey, CacheRecord record_) { + // default cache does not track record usage + } + } +diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java +index 025800698..f6ba70b86 100644 +--- a/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java ++++ b/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java +@@ -93,7 +93,7 @@ Key createKey( + * cache. + * + * @param project The project that employs the plugin realm, must not be {@code null}. +- * @param record The cache record being used for the project, must not be {@code null}. ++ * @param record_ The cache record being used for the project, must not be {@code null}. + */ +- void register(MavenProject project, Key cacheKey, CacheRecord record); ++ void register(MavenProject project, Key cacheKey, CacheRecord record_); + } +-- +2.40.1 + diff --git a/0005-Reproducible-maven.build.timestamp.patch b/0005-Reproducible-maven.build.timestamp.patch new file mode 100644 index 0000000..585988b --- /dev/null +++ b/0005-Reproducible-maven.build.timestamp.patch @@ -0,0 +1,65 @@ +From 599dc0284287da5d48f578f5fe90b84dd4e0e485 Mon Sep 17 00:00:00 2001 +From: Emmanuel Bourg +Date: Mon, 4 Sep 2023 17:10:19 +0200 +Subject: [PATCH 5/5] Reproducible maven.build.timestamp + +Set the maven.build.timestamp variable to the date defined by +the SOURCE_DATE_EPOCH environment variable to make the Maven +builds reproducible. +--- + .../interpolation/BuildTimestampValueSource.java | 10 +++++++++- + .../maven/model/interpolation/MavenBuildTimestamp.java | 10 +++++++++- + 2 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java b/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java +index f2af8036a..9e0db2cb0 100644 +--- a/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java ++++ b/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java +@@ -44,7 +44,15 @@ public BuildTimestampValueSource(Date startTime, String format) { + public Object getValue(String expression) { + if ("build.timestamp".equals(expression) || "maven.build.timestamp".equals(expression)) { + if (formattedDate == null && startTime != null) { +- formattedDate = new SimpleDateFormat(format).format(startTime); ++ if ( System.getenv( "SOURCE_DATE_EPOCH" ) == null ) { ++ formattedDate = new SimpleDateFormat( format ).format( startTime ); ++ } else { ++ // Use the SOURCE_DATE_EPOCH timestamp and make the format locale insensitive ++ SimpleDateFormat fmt = new SimpleDateFormat( format, java.util.Locale.ENGLISH ); ++ fmt.setTimeZone( java.util.TimeZone.getTimeZone( "UTC" ) ); ++ Date date = new Date( 1000 * Long.parseLong( System.getenv( "SOURCE_DATE_EPOCH" ) ) ); ++ formattedDate = fmt.format( date ); ++ } + } + + return formattedDate; +diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java +index e1721334f..2ea2ce381 100644 +--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java ++++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java +@@ -21,6 +21,7 @@ + import java.text.SimpleDateFormat; + import java.util.Date; + import java.util.GregorianCalendar; ++import java.util.Locale; + import java.util.Properties; + import java.util.TimeZone; + +@@ -56,7 +57,14 @@ public MavenBuildTimestamp(Date time, String timestampFormat) { + if (time == null) { + time = new Date(); + } +- SimpleDateFormat dateFormat = new SimpleDateFormat(timestampFormat); ++ ++ Locale locale = Locale.getDefault(); ++ if ( System.getenv( "SOURCE_DATE_EPOCH" ) != null ) { ++ time = new Date( 1000 * Long.parseLong( System.getenv( "SOURCE_DATE_EPOCH" ) ) ); ++ locale = Locale.ENGLISH; ++ } ++ ++ SimpleDateFormat dateFormat = new SimpleDateFormat( timestampFormat, locale ); + dateFormat.setCalendar(new GregorianCalendar()); + dateFormat.setTimeZone(DEFAULT_BUILD_TIME_ZONE); + formattedTimestamp = dateFormat.format(time); +-- +2.42.0 + diff --git a/apache-maven-3.9.6-build.tar.xz b/apache-maven-3.9.6-build.tar.xz new file mode 100644 index 0000000..4f13bcc --- /dev/null +++ b/apache-maven-3.9.6-build.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b0991c5dc67adc417251b4997e219497c7de12ecd01f82f0848d44db402ab8f +size 5152 diff --git a/apache-maven-3.9.6-src.tar.gz b/apache-maven-3.9.6-src.tar.gz new file mode 100644 index 0000000..53ebf8d --- /dev/null +++ b/apache-maven-3.9.6-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:817d8fbfc1f4d91712bfb1ff839a603f9873c4125e89151ae52b56f72ee8043e +size 2796240 diff --git a/maven-bash-completion b/maven-bash-completion new file mode 100644 index 0000000..0ca36fa --- /dev/null +++ b/maven-bash-completion @@ -0,0 +1,90 @@ +_m2_make_goals() +{ + plugin=$1 + mojos=$2 + for mojo in $mojos + do + export goals="$goals $plugin:$mojo" + done +} + +_m2_complete() +{ + local cur goals + + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + case "${prev}" in + -f | --file|-l|--log-file) + COMPREPLY=( $(compgen -f ${cur}) ) + return 0 + ;; + *);; + esac + + + goals='clean compile test install package deploy site verify' + if [[ ${cur} == -* ]] ; then + goals="$goals -am --also-make + -amd --also-make-dependents + -B --batch-mode + -C --strict-checksums + -c --lax-checksums + -cpu --check-plugin-updates + -D --define + -e --errors + -emp --encrypt-master-password + -ep --encrypt-password + -f --file + -fae --fail-at-end + -ff --fail-fast + -fn --fail-never + -gs --global-settings + -h --help + -l --log-file + -N --non-recursive + -npr --no-plugin-registry + -npu --no-plugin-updates + -nsu --no-snapshot-updates + -o --offline + -P --activate-profiles + -pl --projects + -q --quiet + -rf --resume-from + -s --settings + -T --threads + -t --toolchains + -U --update-snapshots + -up --update-plugins + -V --show-version + -v --version + -X --debug + -Dmaven.test.skip=true + -Dmaven.compiler.source=1.5 + -Dmaven.compiler.source=1.6 + -Dmaven.compiler.source=1.7 + -Dmaven.compiler.target=1.5 + -Dmaven.compiler.target=1.6 + -Dmaven.compiler.target=1.7 + -Dproject.build.sourceEncoding=UTF-8 + -Dmaven.repo.local= + -Dmaven.local.depmap.file= + -Dmaven.local.debug=true + -Dmaven.local.mode=true" + fi + + goals=$goals _m2_make_goals "eclipse" "eclipse" + goals=$goals _m2_make_goals "idea" "idea" + goals=$goals _m2_make_goals "assembly" "assembly" + goals=$goals _m2_make_goals "plexus" "app bundle-application bundle-runtime descriptor runtime service" + goals=$goals _m2_make_goals "dependency" "analyze analyze-dep-mgt analyze-only analyze-report analyze-duplicate + build-classpath copy copy-dependencies get go-offline list properties + purge-local-repository resolve resolve-plugins sources tree unpack + unpack-dependencies" + cur=`echo $cur | sed 's/\\\\//g'` + COMPREPLY=($(compgen -W "${goals}" -- ${cur} | sed 's/\\\\//g') ) +} + +complete -F _m2_complete -o filenames mvn diff --git a/maven.changes b/maven.changes new file mode 100644 index 0000000..d1dd00c --- /dev/null +++ b/maven.changes @@ -0,0 +1,536 @@ +------------------------------------------------------------------- +Tue Jan 30 07:13:33 UTC 2024 - Fridrich Strba + +- Upgrade tu upstream version 3.9.6 + + * Bug + + MNG-7851: Error message when modelVersion is 4.0 is confusing + * Improvement + + MNG-7875: Colorize transfer messages + + MNG-7895: Support ${project.basedir} in file profile + activation + + MNG-7939: Allow to exclude plugins from validation + * Task + + MNG-7856: Maven Resolver Provider classes ctor change + + MNG-7870: Undeprecate wrongly deprecated repository metadata + + MNG-7872: Deprecate + org.apache.maven.repository.internal.MavenResolverModule + + MNG-7874: maven-resolver-provider: introduce NAME constants. + * Dependency upgrade + + MNG-7859: Update to Resolver 1.9.16 + + MNG-7913: Upgrade Sisu version to 0.9.0.M2 + + MNG-7934: Upgrade Resolver version to 1.9.18 + + MNG-7942: Upgrade to parent POM 41 + + MNG-7943: Upgrade default plugin bindings + +------------------------------------------------------------------- +Thu Sep 21 12:03:34 UTC 2023 - Fridrich Strba + +- Upgrade tu upstream version 3.9.4 + * Bug + + MNG-7705: Sporadic failures on multiple builds sharing the + same local repo when writing the .lastUpdated file + + MNG-7786: Maven Plugin Validation message is misleading + + MNG-7795: IllegalArgumentException: 'other' has different root + during plugin validation + + MNG-7796: Top directory cannot be computed + + MNG-7799: Plugin validation falsely reports there are issues + (but shows none) + + MNG-7811: Plugins verification - reports are inconsistent + + MNG-7818: [REGRESSION] maven improperly excludes hamcrest-core + from junit + + MNG-7819: Create IT that exercise file locking with snapshots + + MNG-7846: endless loop in DefaultExceptionHandler.getMessage() + * Improvement + + MNG-7698: Allow comments in .mvn/maven.config + + MNG-7785: Clean usage of SessionData + + MNG-7787: Introduce new options for plugin validation + + MNG-7788: Plugin Validation Report should be printed before + build summary + + MNG-7789: Plugin Dependency Validations use wrong data set + + MNG-7806: Plugins verification - remove used in module(s) + report + + MNG-7823: Make plugin validation level parsing more consistent + * Task + + MNG-5987: Document the algorithm calculating the order of + plugin executions inside a phase. + + MNG-7743: Make the build work on JDK 20 + + MNG-7790: Update lifecycle plugins + + MNG-7791: Split validation issues into "user actionable" and + "plugin dev actionable" + + MNG-7797: Return BRIEF mode, simply map it onto SUMMARY + + MNG-7807: Update Super POM plugins + * Dependency upgrade + + MNG-7800: Upgrade to Maven Resolver 1.9.13 + + MNG-7816: Bump maven parent from 39 to 40 + + MNG-7828: Bump guava from 31.1-jre to 32.0.1-jre + + MNG-7847: Upgrade to Resolver 1.9.14 + +------------------------------------------------------------------- +Tue Sep 12 12:55:07 UTC 2023 - Fridrich Strba + +- Reproducible builds: do not output build number + +------------------------------------------------------------------- +Mon Sep 4 15:13:23 UTC 2023 - Fridrich Strba + +- Added patch: + * 0005-Reproducible-maven.build.timestamp.patch + + debian patch to make maven builds more reproducible + +------------------------------------------------------------------- +Mon Jun 19 15:31:21 UTC 2023 - Fridrich Strba + +- Upgrade to upstream version 3.9.2 + * Bug + + MNG-7750: Interpolated properties in originalModel in + an active profile. + + MNG-7759: java.lang.NullPointerException at org.apache + .maven.repository.internal.DefaultModelCache.newInstance + (DefaultModelCache.java:37) + * Improvement + + MNG-7712: Core should issue a warning if plugin depends + on maven-compat + + MNG-7741: Add more information when using + -Dmaven.repo.local.recordReverseTree=true + + MNG-7754: Improvement and extension of plugin validation + + MNG-7767: Tone down plugin validation report + + MNG-7776: don't fingerprint Sigstore signatures (like GPG) + + MNG-7778: Maven should print suppressed exceptions when a + mojo fails + * Task + + MNG-7749: Upgrade animal-sniffer from 1.21 to 1.23 + + MNG-7774: Maven config and command line interpolation + +------------------------------------------------------------------- +Thu May 11 08:39:04 UTC 2023 - Fridrich Strba + +- Modified patch: + * 0001-Adapt-mvn-script.patch + + revert to older version which worked well (bsc#1211198) + +------------------------------------------------------------------- +Wed May 3 11:44:20 UTC 2023 - Fridrich Strba + +- Upgrade to upstream version 3.9.1 + * Changes of version 3.8.7: + + Regression fixes from Maven 3.8.6 + + General fixes + + Maven Wagon upgrade + * Changes of verson 3.8.8 + + Regression fixes from Maven 3.8.7 + + General fixes + + Non-functional backports and improvements from 3.9.0 + * Changes of version 3.9.0 + + Minimum Java version to use with Maven 3.9.0 is raised to + Java 8. + + With Java 8, upgrade of several key dependencies became + possible as well. + + Several backports from Maven 4.x line. + + Long outstanding issue fixes from Maven 3.x line. + + Cutting ties with Maven 2 backward compatibility, preparing + grounds for Maven 4. + + General fixes and improvements. + + The Maven Resolver transport has changed from Wagon to “native + HTTP”, see Resolver Transport guide. + + Maven 2.x was auto-injecting an ancient version of + plexus-utils dependency into the plugin classpath, and Maven + 3.x continued doing this to preserve backward compatibility. + Starting with Maven 3.9, it does not happen anymore. This + change may lead to plugin breakage. The fix for affected + plugin maintainers is to explicitly declare a dependency on + plexus-utils. The workaround for affected plugin users is to + add this dependency to plugin dependencies until issue is + fixed by the affected plugin maintainer. + + Mojos are prevented to boostrap new instance of + RepositorySystem (for example by using deprecated + ServiceLocator), they should reuse RepositorySystem instance + provided by Maven instead. See MNG-7471. + + Each line in .mvn/maven.config is now interpreted as a single + argument. That is, if the file contains multiple arguments, + these must now be placed on separate lines, see MNG-7684. + * Changes of version 3.9.1: + + Regression fixes from Maven 3.9.0 + + General performance and other fixes +- Changed patches: + * 0001-Adapt-mvn-script.patch + * 0002-Invoke-logback-via-reflection.patch + + rediff to changed context + * 0004-Remove-dependency-on-powermock.patch + -> 0003-Remove-dependency-on-powermock.patch + * 0007-Fix-build-with-qdox-2.0.1.patch + -> 0004-Fix-build-with-qdox-2.0.1.patch + + rediff and rename to have the sequence of patches right +- Removed patches: + * 0003-Use-non-shaded-HTTP-wagon.patch + * 0005-Port-to-maven-resolver-1.7.2.patch + * 0006-Restore-DefaultModelValidator-compatibility-with-Mav.patch + + not needed with 3.9.1 + +------------------------------------------------------------------- +Mon Aug 29 08:50:39 UTC 2022 - Thorsten Kukuk + +- Move mvn.1 from bin to man directory + +------------------------------------------------------------------- +Mon Jul 25 12:13:39 UTC 2022 - Fridrich Strba + +- Upgrade to upstream version 3.8.6 + * Bug + + MNG-7432: [REGRESSION] Resolver session contains + non-MavenWorkspaceReader + + MNG-7433: [REGRESSION] Multiple maven instances working on + same source tree can lock each other + + MNG-7441: Update Version of (optional) Logback to Address + CVE-2021-42550, bsc#1193795 + + MNG-7448: Don't ignore bin/ otherwise bin/ in apache-maven + module cannot be readded + + MNG-7455: [REGRESSION] IllegalStateException in + SessionScope during guice injection in multithreaded build + + MNG-7459: Revert MNG-7347 (SessionScoped beans should be + singletons for a given session) + + MNG-7467: [REGRESSION] Compilation failure with relocated + transitive dependency + + MNG-7487: Fix deadlock during forked lifecycle executions + + MNG-7493: [REGRESSION] Resolving dependencies between + submodules fails + * New Feature + + MNG-7486: Create a multiline message helper for boxed log + messages + * Improvement + + MNG-7445: to refactor some useless code + + MNG-7476: Display a warning when an aggregator mojo is + locking other mojo executions + * Task + + MNG-7466: Align Assembly Descriptor NS versions + * Dependency upgrade + + MNG-7488: Upgrade SLF4J to 1.7.36 + + MNG-7489: Upgrade JUnit to 4.13.2 + + MNG-7490: Upgrade Plexus Utils to 3.3.1 + +------------------------------------------------------------------- +Mon May 16 14:26:42 UTC 2022 - Fridrich Strba + +- Upgrade to upstream version 3.8.5 + * Bug + + MNG-5180: Versioning's snapshot version list is not + included in metadata merge + + MNG-5561: Plugin relocation loses configuration + + MNG-5982: The POM for ... is invalid, transitive + dependencies ... while property was overriden + + MNG-6326: Build continues when core extensions aren't + found + + MNG-6727: Using version range in parent and CI Friendly + Version fails + + MNG-6802: FileProfileActivator changes + FileProfileActivator.exists which lets flattened + resolveCiFriendliesOnly depending fail activating profile + + MNG-7156: Parallel build can cause issues between clean + and forked goals + + MNG-7335: [Regression] Parallel build fails due to missing + JAR artifacts in compilePath + + MNG-7347: SessionScoped beans should be singletons for a + given session + + MNG-7357: All Maven Core JARs have unusual entry order + + MNG-7362: DefaultArtifactResolver has spurious "Failure + detected" INFO log + + MNG-7374: Mutating RelocatedArtifact does not retain type + + MNG-7386: ModelMerger$MergingList is not serializable + + MNG-7402: BuildListCalculator never detaches the + classloader + + MNG-7417: Several classes do not set properties properly + for building requests + * New Feature + + MNG-7395: Support interpolation in extensions.xml + + MNG-7407: Introduce a ModelVersionProcessor component to + make CI Friendly Versions pluggable + * Improvement + + MNG-6960: Use RuntimeInformation instead of reading + properties + + MNG-7349: Limit relocation warning message to direct + dependencies only + + MNG-7380: Don't log non-threadsafe warning if only + building a single module + + MNG-7381: Shorten parallel builder thread name to + artifactId, conditionally with groupId + + MNG-7385: Improve documentation on repository metadata + + MNG-7400: Allow more WorkspaceReaders to participate + + MNG-7408: Explain reporting plugin version automatic + selection (in Maven 3) + * Dependency upgrade + + MNG-7370: Upgrade Maven Wagon to 3.5.1 + + MNG-7384: Upgrade Maven JAR Plugin to 3.2.2 + + MNG-7428: Upgrade Maven Parent to 35 +- Modified patches: + * 0001-Adapt-mvn-script.patch + * 0002-Invoke-logback-via-reflection.patch + * 0005-Port-to-maven-resolver-1.7.2.patch + * 0004-Use-non-shaded-HTTP-wagon.patch -> + 0003-Use-non-shaded-HTTP-wagon.patch + + rebase + * qdox-2.0.1.patch -> 0007-Fix-build-with-qdox-2.0.1.patch + + rebase using git +- Added patches: + * 0004-Remove-dependency-on-powermock.patch + + Remove the non-interpolated tests that require powermock + * 0006-Restore-DefaultModelValidator-compatibility-with-Mav.patch + + XMvn was relying on default constructor for the + org.apache.maven.model.validation.DefaultModelValidator, + which is not generated, since a non-default one is defined. + + This adds the no-parameter constructor back implicitely + +------------------------------------------------------------------- +Fri May 13 09:01:43 UTC 2022 - Fridrich Strba + +- Fix build with modello-2.0.0 + +------------------------------------------------------------------- +Wed Apr 27 14:00:15 UTC 2022 - Fridrich Strba + +- Remove using of alternatives, since the symlinks are in a separate + package that one can decide not to install and this is the only + provider for mvn and mvnDebug links +- Remove dependency on cglib and aopalliance, since the no_aop + version of guice does not really depend on them + +------------------------------------------------------------------- +Fri Mar 11 12:11:36 UTC 2022 - Fridrich Strba + +- Added patch: + * 0005-Port-to-maven-resolver-1.7.2.patch + + fix build with the API incompatible maven-resolver 1.7.3 +- Link the new maven-resolver-named-locks artifact too + +------------------------------------------------------------------- +Thu Jan 13 07:12:09 UTC 2022 - Fridrich Strba + +- Upgrade to upstream version 3.8.4 + * Sub-task + + MNG-6281: ArrayIndexOutOfBoundsException caused by pom.xml + with invalid/duplicate XML + * Bug + + MNG-4706: Multithreaded building can create bad files for + downloaded artifacts in local repository + + MNG-5307: NPE during resolution of dependencies - parallel + mode + + MNG-5315: Artifact resolution sporadically fails in + parallel builds + + MNG-5838: Maven on No-File-Lock Systems + + MNG-5868: Adding serval times the same artifact via + MavenProjectHelper (attachArtifact) keep adding to the List + duplicate artifacts + + MNG-6071: GetResource ('/) returns 'null' if build is + started with -f + + MNG-6216: ArrayIndexOutOfBoundsException when parsing POM + + MNG-6239: Jansi messes up System.err and System.out + + MNG-6380: Option -Dstyle.color=always doesn't force color + output + + MNG-6604: Intermittent failures while downloading GAVs from + Nexus + + MNG-6648: 'mavenrc_pre' script does not receive arguments + like mavenrc in Bourne shell does + + MNG-6719: mvn color output escape keys w/ "| tee xxx.log" + on Win with git/bash + + MNG-6737: StackOverflowError when version ranges are + unsolvable and graph contains a cycle + + MNG-6767: Plugin with ${project.groupId} resolved + improperly + + MNG-6819: NullPointerException for + DefaultArtifactDescriptorReader.loadPom + + MNG-6828: DependencyResolutionException breaks + serialization + + MNG-6842: ProjectBuilderTest uses Guava, but Guava is not + defined in dependencies + + MNG-6843: Parallel build fails due to missing JAR artifacts + in compilePath + + MNG-6850: Prevent printing the EXEC_DIR when it's just a + disk letter + + MNG-6921: Maven compile with properties ${artifactId} and + ${project.build.finalName} occurs + java.lang.NullPointerException + + MNG-6937: StringSearchModelInterpolatorTest fails on + symlinked paths + + MNG-6964: Maven version sorting is internally inconsistent + + MNG-6983: Plugin key can get out of sync with artifactId + and groupId + + MNG-7000: metadata.mdo contains invalid link to schema + + MNG-7032: Option -B still showing formatting when used + with --version + + MNG-7034: StackOverflowError thrown if a cycle exists in + BOM imports + + MNG-7045: Drop CDI API from Maven + + MNG-7090: mvnDebug does not work on Java 11+ + + MNG-7127: NullPointerException in + MavenCliTest.testStyleColors in JDK 16 + + MNG-7155: make sources jar reproducible (upgrade + maven-source-plugin to 3.2.1) + + MNG-7161: Error thrown during uninstalling of JAnsi + + MNG-7214: Bad transitive dependency parent from CDI API + + MNG-7215: [Regression] Maven Site Plugin cannot resolve + parent site descriptor without locale + + MNG-7216: Revert MNG-7170 + + MNG-7218: [Regression] + o.a.m.model.Build.getSourceDirectory() incorrectly returns + absolute dir on 3.8.2 + + MNG-7219: [Regression] plexus-cipher missing from + transitive dependencies + + MNG-7220: [REGRESSION] test-classpath incorrectly resolved + + MNG-7251: Fix threadLocalArtifactsHolder leaking into + cloned project + + MNG-7253: Relocation message is never shown + + MNG-7270: Maven startup script (init) calls which(1) which + is an external command + + MNG-7285: [Regression] MavenProject.getArtifacts() not + returning correct value across multiple threads + + MNG-7300: [Regression] Reloading web application (Enter) + fails due to java.lang.ClassNotFoundException + * New Feature + + MNG-7149: Introduce MAVEN_DEBUG_ADDRESS in mvnDebug scripts + + MNG-7164: Add constructor MojoExecutionException(Throwable) + * Improvement + + MNG-2802: Concurrent-safe access to local Maven repository + + MNG-6471: Parallel builder should use the module name as + thread name + + MNG-6754: Set the same timestamp in multi module builds + + MNG-6810: Remove profiles in maven-model + + MNG-6811: Remove unnecessary filtering configuration + + MNG-6816: Prefer System.lineSeparator() over system + properties + + MNG-6827: Replace deprecated StringUtils#defaultString() + from Plexus Utils + + MNG-6837: Simplify detection of the MAVEN_HOME and make it + fully qualified on Windows + + MNG-6844: Use StandardCharsets and remove outdated + @SuppressWarnings + + MNG-6853: Don't box primitives where it's not needed + + MNG-6859: Build not easily reproducible when built from + source release archive + + MNG-6873: Inconsistent library versions notice + + MNG-6967: Improve the command line output from + maven-artifact + + MNG-6987: Reorder groupId before artifactId when writing an + exclusion using maven-model + + MNG-7010: Omit "NB: JAVA_HOME should point to a JDK not a + JRE" except when that is the problem + + MNG-7064: Use HTTPS for schema location in global + settings.xml + + MNG-7080: Add a --color option + + MNG-7170: Allow to associate pomFile/${basedir} with + DefaultProjectBuilder.build(ModelSource, ...) + + MNG-7180: Make --color option behave more like BSD/GNU + grep's --color option + + MNG-7181: Make --version support -q + + MNG-7185: Describe explicit and recommended version for + VersionRange.createFromVersionSpec() + + MNG-7190: Load mavenrc from /usr/local/etc also in Bourne + shell script + + MNG-7235: Speed improvements when calculating the sorted + project graph + + MNG-7236: The DefaultPluginVersionResolver should cache + results for the session + * Task + + MNG-6598: Maven 3.6.0 and Surefire problem + + MNG-6884: Cleanup POM File after version upgrade + + MNG-7172: Remove expansion of Jansi native libraries + + MNG-7184: document .mavenrc/maven_pre.bat|cmd scripts and + MAVEN_SKIP_RC environment variable + + MNG-7252: Fix warnings issued by dependency:analyze + + MNG-7254: Expand Windows native libraries for Jansi due to + JDK-8195129 (workaround) + + MNG-7312: Revert ThreadLocal approach from MNG-6843 and + MNG-7251 + * Dependency upgrade + + MNG-6818: Upgrade Plexus Utils to 3.3.0 + + MNG-6841: Upgrade Plexus Interpolation to 1.26 + + MNG-6872: Found CVEs in your dependencies - plexus-utils + (tests) + + MNG-6874: Upgrade Maven Parent to 34 + + MNG-6886: Upgrade plexus-cipher 1.8 + + MNG-6993: Upgrade SLF4J to 1.7.30 + + MNG-7152: Upgrade Maven Resolver to 1.6.3 + + MNG-7177: Upgrade Maven Shared Utils to 3.3.4 + + MNG-7179: Upgrade Jansi to 2.3.3 + + MNG-7186: Upgrade Guice to 4.2.2 + + MNG-7196: Upgrade Jansi to 2.3.4 + + MNG-7198: Upgrade SLF4J to 1.7.32 + + MNG-7246: Upgrade Plexus Cipher and Sec Dispatcher to 2.0 + + MNG-7250: Upgrade Sisu Inject/Plexus to 0.3.5 + + MNG-7331: Upgrade Jansi to 2.4.0 +- Added patch: + * qdox-2.0.1.patch + + Fix syntax error with qdox 2.0.1 and method declarations + containing the new keyword "record" as name of variables + +------------------------------------------------------------------- +Sun Nov 21 08:49:59 UTC 2021 - Andreas Stieger + +- add upstream signing key and verify source signature + +------------------------------------------------------------------- +Tue Sep 14 14:44:11 UTC 2021 - Stefan Schubert + +- Use libalternatives instead of update-alternatives. + +------------------------------------------------------------------- +Tue May 11 09:57:12 UTC 2021 - Fridrich Strba + +- Do not build against the compatibility version guava20 any more, + but use the default guava package + +------------------------------------------------------------------- +Tue Apr 27 07:25:29 UTC 2021 - Fridrich Strba + +- Upgrade to upstream version 3.8.1 + * Security fixes: + + CVE-2021-26291 and CVE-2020-13956 + * Bug: + + MNG-7128: improve error message when blocked repository + defined in build POM + * New Feature + + MNG-7116: Add support for mirror selector on + external:http:* + + MNG-7117: Add support for blocking mirrors + + MNG-7118: Block external HTTP repositories by default + * Dependency upgrade + + MNG-7119: Upgrade Maven Wagon to 3.4.3 + + MNG-7123: Upgrade Maven Resolver to 1.6.2 + +------------------------------------------------------------------- +Sun Mar 1 08:27:38 UTC 2020 - Fridrich Strba + +- Let maven-lib obsolete maven-jansi + +------------------------------------------------------------------- +Fri Feb 7 15:50:55 UTC 2020 - Fridrich Strba + +- Upgrade to upstream version 3.6.3 +- Modified patches: + * 0002-Invoke-logback-via-reflection.patch + * 0004-Use-non-shaded-HTTP-wagon.patch + + Adapt to changed line endings + +------------------------------------------------------------------- +Thu Nov 21 15:53:17 UTC 2019 - Fridrich Strba + +- Upgrade to upstream version 3.6.2 +- Modified patch: + * 0002-Invoke-logback-via-reflection.patch + + adapt to changed context +- Removed patch: + * 0003-Revert-MNG-6335-Update-Mockito-to-2.12.0.patch + + we don't need this patch, since we are not running tests + by default +- Added patch: + * 0004-Use-non-shaded-HTTP-wagon.patch + + we don't use/distribute shared wagon-http + +------------------------------------------------------------------- +Mon Apr 1 23:29:07 UTC 2019 - Jan Engelhardt + +- Adjust RPM groups. Avoid bashisms in %postun. + +------------------------------------------------------------------- +Fri Mar 29 07:58:04 UTC 2019 - Fridrich Strba + +- Initial packaging of maven 3.5.4 +- Generate and customize ant build files diff --git a/maven.spec b/maven.spec new file mode 100644 index 0000000..f306064 --- /dev/null +++ b/maven.spec @@ -0,0 +1,371 @@ +# +# spec file for package maven +# +# Copyright (c) 2024 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 bundled_slf4j_version 1.7.25 +%global homedir %{_datadir}/%{name}%{?maven_version_suffix} +%global confdir %{_sysconfdir}/%{name}%{?maven_version_suffix} +Name: maven +Version: 3.9.6 +Release: 0 +Summary: Java project management and project comprehension tool +# maven itself is ASL 2.0 +# bundled slf4j is MIT +License: Apache-2.0 AND MIT +Group: Development/Tools/Building +URL: https://maven.apache.org/ +Source0: http://archive.apache.org/dist/%{name}/%{name}-3/%{version}/source/apache-%{name}-%{version}-src.tar.gz +Source1: maven-bash-completion +Source2: mvn.1 +Source10: apache-%{name}-%{version}-build.tar.xz +Patch1: 0001-Adapt-mvn-script.patch +# Downstream-specific, avoids dependency on logback +Patch2: 0002-Invoke-logback-via-reflection.patch +Patch3: 0003-Remove-dependency-on-powermock.patch +Patch4: 0004-Fix-build-with-qdox-2.0.1.patch +Patch5: 0005-Reproducible-maven.build.timestamp.patch +BuildRequires: ant +BuildRequires: aopalliance +BuildRequires: apache-commons-cli +BuildRequires: apache-commons-codec +BuildRequires: apache-commons-lang3 +BuildRequires: apache-commons-logging +BuildRequires: atinject +BuildRequires: dos2unix +BuildRequires: fdupes +BuildRequires: glassfish-annotation-api +BuildRequires: google-guice +BuildRequires: guava +BuildRequires: httpcomponents-client +BuildRequires: httpcomponents-core +BuildRequires: jansi +BuildRequires: javapackages-local +BuildRequires: jcl-over-slf4j +BuildRequires: jdom2 +BuildRequires: maven-resolver-api >= 1.8.1 +BuildRequires: maven-resolver-connector-basic +BuildRequires: maven-resolver-impl +BuildRequires: maven-resolver-named-locks +BuildRequires: maven-resolver-spi +BuildRequires: maven-resolver-transport-file +BuildRequires: maven-resolver-transport-http +BuildRequires: maven-resolver-transport-wagon +BuildRequires: maven-resolver-util +BuildRequires: maven-shared-utils +BuildRequires: maven-wagon-file +BuildRequires: maven-wagon-http +BuildRequires: maven-wagon-http-shared +BuildRequires: maven-wagon-provider-api +BuildRequires: modello >= 2.0.0 +BuildRequires: objectweb-asm +BuildRequires: plexus-cipher >= 2.0 +BuildRequires: plexus-classworlds +BuildRequires: plexus-cli +BuildRequires: plexus-containers-component-annotations +BuildRequires: plexus-interpolation +BuildRequires: plexus-metadata-generator +BuildRequires: plexus-sec-dispatcher >= 2.0 +BuildRequires: plexus-utils +BuildRequires: qdox +BuildRequires: sisu-inject +BuildRequires: sisu-plexus +BuildRequires: slf4j +BuildRequires: slf4j-sources +BuildRequires: unix2dos +BuildRequires: xbean +BuildRequires: xmvn-install +BuildRequires: xmvn-resolve +BuildRequires: xmvn-subst +BuildRequires: mvn(org.apache.maven:maven-parent:pom:) +Requires: %{name}-lib = %{version}-%{release} +Requires(post): aaa_base +Requires(postun): aaa_base +# maven-lib cannot be noarch because of the position of jansi.jar +#BuildArch: noarch + +%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, +reporting and documentation from a central piece of information. + +%package lib +Summary: Core part of Maven +# Require full javapackages-tools since maven-script uses +# /usr/share/java-utils/java-functions +# 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. +Group: Development/Tools/Building +Requires: aopalliance +Requires: apache-commons-cli +Requires: apache-commons-codec +Requires: apache-commons-lang3 +Requires: apache-commons-logging +Requires: atinject +Requires: glassfish-annotation-api +Requires: google-guice +Requires: guava +Requires: httpcomponents-client +Requires: httpcomponents-core +Requires: jansi +Requires: javapackages-tools +Requires: jcl-over-slf4j +Requires: junit +Requires: maven-resolver-api +Requires: maven-resolver-connector-basic +Requires: maven-resolver-impl +Requires: maven-resolver-named-locks +Requires: maven-resolver-spi +Requires: maven-resolver-transport-file +Requires: maven-resolver-transport-http +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: objectweb-asm +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: slf4j +# 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 +# maven-slf4j-provider.jar, together with Maven-specific additions. +Provides: bundled(slf4j) = %{bundled_slf4j_version} +# This package might be installed on a system, since it used to be +# produced by the binary maven repackaging in some repositories. +# This Obsoletes will allow a clean upgrade. +Obsoletes: %{name}-jansi +# If XMvn is part of the same RPM transaction then it should be +# installed first to avoid triggering rhbz#1014355. +OrderWithRequires: xmvn-minimal + +%description lib +Core part of Apache Maven that can be used as a library. + +%package javadoc +Summary: API documentation for %{name} +Group: Documentation/HTML +BuildArch: noarch + +%description javadoc +%{summary}. + +%prep +%setup -q -n apache-%{name}-%{version} -a10 + +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 + +# not really used during build, but a precaution +find -name '*.jar' -not -path '*/test/*' -delete +find -name '*.class' -delete +find -name '*.bat' -delete + +sed -i 's:\r::' apache-maven/src/conf/settings.xml + +# Downloads dependency licenses from the Internet and aggregates them. +# We already ship the licenses in their respective packages. +rm apache-maven/src/main/appended-resources/META-INF/LICENSE.vm + +# Disable plugins which are not useful for us +%pom_remove_plugin -r :animal-sniffer-maven-plugin +%pom_remove_plugin -r :apache-rat-plugin +%pom_remove_plugin -r :maven-site-plugin +%pom_remove_plugin -r :buildnumber-maven-plugin +sed -i " +/buildNumber=/ d +/timestamp=/ d +" `find -name build.properties` +sed -i "s/version=.*/version=%{version}/" `find -name build.properties` +sed -i "s/distributionId=.*/distributionId=apache-maven/" `find -name build.properties` +sed -i "s/distributionShortName=.*/distributionShortName=Maven/" `find -name build.properties` +sed -i "s/distributionName=.*/distributionName=Apache\ Maven/" `find -name build.properties` + +%{mvn_package} :apache-maven __noinstall + +%pom_remove_dep -r :logback-classic + +%pom_xpath_remove pom:parent/pom:relativePath + +%{mvn_alias} :maven-resolver-provider :maven-aether-provider + +%build +mkdir -p lib +build-jar-repository -s lib \ + apache-commons-lang3 \ + atinject \ + commons-cli \ + glassfish-annotation-api \ + guava/guava \ + guice/google-guice \ + jdom2/jdom2 \ + maven-resolver/maven-resolver-api \ + maven-resolver/maven-resolver-impl \ + maven-resolver/maven-resolver-named-locks \ + maven-resolver/maven-resolver-spi \ + maven-resolver/maven-resolver-util \ + maven-shared-utils/maven-shared-utils \ + maven-wagon/provider-api \ + objectweb-asm/asm-commons \ + objectweb-asm/asm \ + org.eclipse.sisu.inject \ + org.eclipse.sisu.plexus \ + plexus-classworlds \ + plexus/cli \ + plexus-containers/plexus-component-annotations \ + plexus/interpolation \ + plexus-metadata-generator \ + plexus/plexus-cipher \ + plexus/plexus-sec-dispatcher \ + plexus/utils \ + qdox \ + slf4j/api \ + slf4j/simple \ + xbean/xbean-reflect +ln -s $(build-classpath slf4j/slf4j-simple-sources) lib/ +%{ant} \ + -Dtest.skip=true \ + package javadoc + +%{mvn_artifact} pom.xml +mkdir -p target/site/apidocs +for i in \ + artifact \ + model \ + plugin-api \ + builder-support \ + model-builder \ + settings \ + settings-builder \ + repository-metadata \ + resolver-provider \ + core \ + slf4j-provider \ + embedder \ + compat; do + cp -r %{name}-${i}/target/site/apidocs target/site/apidocs/%{name}-${i} + %{mvn_artifact} %{name}-${i}/pom.xml %{name}-${i}/target/%{name}-${i}-%{version}.jar +done + +%install +%mvn_install +%fdupes %{buildroot}%{_javadocdir} + +install -d -m 755 %{buildroot}%{homedir}/boot +install -d -m 755 %{buildroot}%{confdir} +install -d -m 755 %{buildroot}%{_datadir}/bash-completion/completions/ + +cp -a apache-maven/src/{bin,conf,lib} %{buildroot}%{homedir}/ +chmod +x %{buildroot}%{homedir}/bin/* +unix2dos %{buildroot}%{homedir}/bin/*.cmd %{buildroot}%{homedir}/bin/*.conf +chmod -x %{buildroot}%{homedir}/bin/*.cmd %{buildroot}%{homedir}/bin/*.conf + +# Transitive deps of wagon-http, missing because of unshading +build-jar-repository -p %{buildroot}%{homedir}/lib \ + aopalliance \ + apache-commons-lang3 \ + atinject \ + commons-cli \ + commons-codec \ + glassfish-annotation-api \ + guava/guava \ + guice/google-guice \ + httpcomponents/httpclient \ + httpcomponents/httpcore \ + jansi/jansi \ + maven-resolver/maven-resolver-api \ + maven-resolver/maven-resolver-connector-basic \ + maven-resolver/maven-resolver-impl \ + maven-resolver/maven-resolver-named-locks \ + maven-resolver/maven-resolver-spi \ + maven-resolver/maven-resolver-transport-file \ + maven-resolver/maven-resolver-transport-http \ + maven-resolver/maven-resolver-transport-wagon \ + maven-resolver/maven-resolver-util \ + maven-shared-utils/maven-shared-utils \ + maven-wagon/file \ + maven-wagon/http \ + maven-wagon/http-shared \ + maven-wagon/provider-api \ + org.eclipse.sisu.inject \ + org.eclipse.sisu.plexus \ + plexus/plexus-cipher \ + plexus/interpolation \ + plexus/plexus-sec-dispatcher \ + plexus/utils \ + plexus-containers/plexus-component-annotations \ + slf4j/api \ + slf4j/jcl-over-slf4j + +cp %{buildroot}%{_javadir}/%{name}/*.jar %{buildroot}%{homedir}/lib/ + +ln -sf %{_libdir}/jansi/libjansi.so %{buildroot}%{homedir}/lib/jansi-native/ + +build-jar-repository -p %{buildroot}%{homedir}/boot \ + plexus-classworlds + +xmvn-subst -R %{buildroot} -s %{buildroot}%{homedir} + +install -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/bash-completion/completions/mvn%{?maven_version_suffix} +mv %{buildroot}%{homedir}/bin/m2.conf %{buildroot}%{_sysconfdir}/m2%{?maven_version_suffix}.conf +ln -sf %{_sysconfdir}/m2%{?maven_version_suffix}.conf %{buildroot}%{homedir}/bin/m2.conf +mv %{buildroot}%{homedir}/conf/settings.xml %{buildroot}%{confdir}/ +ln -sf %{confdir}/settings.xml %{buildroot}%{homedir}/conf/settings.xml +mv %{buildroot}%{homedir}/conf/logging %{buildroot}%{confdir}/ +ln -sf %{confdir}/logging %{buildroot}%{homedir}/conf + +install -d -m 0755 %{buildroot}%{_bindir} +ln -sf %{homedir}/bin/mvn %{buildroot}%{_bindir}/ +ln -sf %{homedir}/bin/mvnDebug %{buildroot}%{_bindir}/ +install -d -m 755 %{buildroot}%{_mandir}/man1/ +install -p -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1/ + +%files lib -f .mfiles +%doc README.md +%license LICENSE NOTICE +%{homedir} +%dir %{confdir} +%dir %{confdir}/logging +%config(noreplace) %{_sysconfdir}/m2%{?maven_version_suffix}.conf +%config(noreplace) %{confdir}/settings.xml +%config(noreplace) %{confdir}/logging/simplelogger.properties + +%files +%{_bindir}/mvn +%{_bindir}/mvnDebug +%{_datadir}/bash-completion +%{_mandir}/man1/mvn.1%{?ext_man} + +%files javadoc -f .mfiles-javadoc +%license LICENSE NOTICE + +%changelog diff --git a/mvn.1 b/mvn.1 new file mode 100644 index 0000000..1363cd6 --- /dev/null +++ b/mvn.1 @@ -0,0 +1,153 @@ +.TH MVN "1" "April 2015" "Apache Maven 3.3.1" "User Commands" +.SH NAME +mvn \- software project management and comprehension tool +.SH DESCRIPTION +usage: mvn [options] [] [] +usage: mvnDebug [options] [] [] +.SH OPTIONS +.TP +\fB\-am\fR,\-\-also\-make +If project list is specified, also +build projects required by the +list +.TP +\fB\-amd\fR,\-\-also\-make\-dependents +If project list is specified, also +build projects that depend on +projects on the list +.TP +\fB\-B\fR,\-\-batch\-mode +Run in non\-interactive (batch) +mode +.TP +\fB\-b\fR,\-\-builder +The id of the build strategy to +use. +.TP +\fB\-C\fR,\-\-strict\-checksums +Fail the build if checksums don't +match +.TP +\fB\-c\fR,\-\-lax\-checksums +Warn if checksums don't match +.TP +\fB\-cpu\fR,\-\-check\-plugin\-updates +Ineffective, only kept for +backward compatibility +.TP +\fB\-D\fR,\-\-define +Define a system property +.TP +\fB\-e\fR,\-\-errors +Produce execution error messages +.TP +\fB\-emp\fR,\-\-encrypt\-master\-password +Encrypt master security password +.TP +\fB\-ep\fR,\-\-encrypt\-password +Encrypt server password +.TP +\fB\-f\fR,\-\-file +Force the use of an alternate POM +file (or directory with pom.xml). +.TP +\fB\-fae\fR,\-\-fail\-at\-end +Only fail the build afterwards; +allow all non\-impacted builds to +continue +.TP +\fB\-ff\fR,\-\-fail\-fast +Stop at first failure in +reactorized builds +.TP +\fB\-fn\fR,\-\-fail\-never +NEVER fail the build, regardless +of project result +.TP +\fB\-gs\fR,\-\-global\-settings +Alternate path for the global +settings file +.TP +\fB\-gt\fR,\-\-global\-toolchains +Alternate path for the global +toolchains file +.TP +\fB\-h\fR,\-\-help +Display help information +.TP +\fB\-l\fR,\-\-log\-file +Log file to where all build output +will go. +.TP +\fB\-llr\fR,\-\-legacy\-local\-repository +Use Maven 2 Legacy Local +Repository behaviour, ie no use of +_remote.repositories. Can also be +activated by using +\fB\-Dmaven\fR.legacyLocalRepo=true +.TP +\fB\-N\fR,\-\-non\-recursive +Do not recurse into sub\-projects +.TP +\fB\-npr\fR,\-\-no\-plugin\-registry +Ineffective, only kept for +backward compatibility +.TP +\fB\-npu\fR,\-\-no\-plugin\-updates +Ineffective, only kept for +backward compatibility +.TP +\fB\-nsu\fR,\-\-no\-snapshot\-updates +Suppress SNAPSHOT updates +.TP +\fB\-o\fR,\-\-offline +Work offline +.TP +\fB\-P\fR,\-\-activate\-profiles +Comma\-delimited list of profiles +to activate +.TP +\fB\-pl\fR,\-\-projects +Comma\-delimited list of specified +reactor projects to build instead +of all projects. A project can be +specified by [groupId]:artifactId +or by its relative path. +.TP +\fB\-q\fR,\-\-quiet +Quiet output \- only show errors +.TP +\fB\-rf\fR,\-\-resume\-from +Resume reactor from specified +project +.TP +\fB\-s\fR,\-\-settings +Alternate path for the user +settings file +.TP +\fB\-T\fR,\-\-threads +Thread count, for instance 2.0C +where C is core multiplied +.TP +\fB\-t\fR,\-\-toolchains +Alternate path for the user +toolchains file +.TP +\fB\-U\fR,\-\-update\-snapshots +Forces a check for missing +releases and updated snapshots on +remote repositories +.TP +\fB\-up\fR,\-\-update\-plugins +Ineffective, only kept for +backward compatibility +.TP +\fB\-V\fR,\-\-show\-version +Display version information +WITHOUT stopping build +.TP +\fB\-v\fR,\-\-version +Display version information +.TP +\fB\-X\fR,\-\-debug +Produce execution debug output