diff --git a/plexus-archiver.changes b/plexus-archiver.changes index d7f9bea..fdbb766 100644 --- a/plexus-archiver.changes +++ b/plexus-archiver.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Sep 24 19:08:57 UTC 2024 - Fridrich Strba + +- Added patch: + * y2038.patch + + Don't pass possibly negative time to File.setLastModified, + where it is explicitly forbidden + + Fixes java.lang.IllegalArgumentException: Negative time + ------------------------------------------------------------------- Thu Sep 19 05:40:53 UTC 2024 - Fridrich Strba diff --git a/plexus-archiver.spec b/plexus-archiver.spec index 8487d7d..312714a 100644 --- a/plexus-archiver.spec +++ b/plexus-archiver.spec @@ -27,6 +27,7 @@ Source0: https://github.com/codehaus-plexus/plexus-archiver/archive/plexu Source1: %{name}-build.xml Patch0: 0001-Remove-support-for-snappy.patch Patch1: 0002-Remove-support-for-zstd.patch +Patch2: y2038.patch BuildRequires: ant BuildRequires: apache-commons-compress BuildRequires: apache-commons-io @@ -80,6 +81,8 @@ rm -rf src/main/java/org/codehaus/plexus/archiver/tar/PlexusIoTarZstdFileResourc rm -rf src/main/java/org/codehaus/plexus/archiver/tar/TarZstdArchiver.java rm -rf src/test/java/org/codehaus/plexus/archiver/tar/TarZstdUnArchiverTest.java +%patch -P 2 -p1 + %build mkdir -p lib build-jar-repository -s lib atinject slf4j/api org.eclipse.sisu.inject jsr-305 commons-compress commons-io plexus/utils plexus/io diff --git a/y2038.patch b/y2038.patch new file mode 100644 index 0000000..4dab3d1 --- /dev/null +++ b/y2038.patch @@ -0,0 +1,38 @@ +--- plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java 2024-09-25 07:27:00.833967276 +0200 ++++ plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java 2024-09-25 08:30:07.036715483 +0200 +@@ -325,7 +325,7 @@ + Files.copy(compressedInputStream, targetFileName.toPath(), REPLACE_EXISTING); + } + +- targetFileName.setLastModified(entryDate.getTime()); ++ setTargetLastModified(targetFileName, entryDate.getTime()); + + if (!isIgnorePermissions() && mode != null && !isDirectory) { + ArchiveEntryUtils.chmod(targetFileName, mode); +@@ -391,6 +391,10 @@ + return isOverwrite() || fileOnDiskIsOlderThanEntry; + } + ++ protected void setTargetLastModified(File target, long millis) { ++ target.setLastModified(millis); ++ } ++ + private String normalizedFileSeparator(String pathOrEntry) { + return pathOrEntry.replace("/", File.separator); + } +--- plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java 2024-09-25 07:27:01.097302238 +0200 ++++ plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java 2024-09-25 08:21:11.862993093 +0200 +@@ -193,4 +193,13 @@ + "Error while expanding " + getSourceFile().getAbsolutePath(), ioe); + } + } ++ ++ @Override ++ protected void setTargetLastModified(File target, long millis) { ++ if (millis >= 0) ++ { ++ target.setLastModified( millis ); ++ } ++ } ++ + }