File strip-nondeterminism.patch of Package javapackages-tools
diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py
index 70c1fcf2..58dbc84c 100644
--- a/java-utils/maven_depmap.py
+++ b/java-utils/maven_depmap.py
@@ -39,11 +39,12 @@
from optparse import OptionParser
import os
import shutil
+import subprocess
import sys
from os.path import basename, dirname
+import time
import zipfile
-from time import gmtime, strftime
from copy import deepcopy
from javapackages.maven.pom import POM
@@ -74,6 +75,10 @@ class UnknownFileExtension(JavaPackagesToolsException):
def __init__(self, jar_path):
self.args=("Unknown file extension: %s" % (jar_path),)
+class StripNondeterminismFailed(JavaPackagesToolsException):
+ def __init__(self, jar_path):
+ self.args=("Failed strip-nondeterminism %s" % (jar_path),)
+
def _print_path_with_dirs(path, base):
print(path)
@@ -139,7 +144,11 @@ def append_if_missing(archive_name, file_name, file_contents):
archive = zipfile.ZipFile(archive_name, 'a')
try:
if file_name not in archive.namelist():
- archive.writestr(file_name, file_contents)
+ timeint = int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))
+ file_info = zipfile.ZipInfo(file_name, time.gmtime(timeint))
+ # set UNIX 644 permission
+ file_info.external_attr = 0x81a40000
+ archive.writestr(file_info, file_contents)
finally:
archive.close()
@@ -294,6 +303,11 @@ def _main():
# output file path for file list (if it's not versioned)
if not add_versions:
_print_path_with_dirs(jar_path, jar_base)
+ try:
+ if subprocess.call(["strip-nondeterminism", jar_path]):
+ raise StripNondeterminismFailed(jar_path)
+ except OSError as e:
+ pass
if have_pom:
metadata_pom_path = os.path.abspath(pom_path)
artifact.path = metadata_pom_path.replace(buildroot, "") if buildroot else metadata_pom_path