diff options
-rwxr-xr-x | install-xpi | 3 | ||||
-rwxr-xr-x | xpi-pack | 6 | ||||
-rwxr-xr-x | xpi-unpack | 4 |
3 files changed, 8 insertions, 5 deletions
diff --git a/install-xpi b/install-xpi index 3601038..4e7c674 100755 --- a/install-xpi +++ b/install-xpi @@ -156,6 +156,9 @@ def install_xpi(script_name, package, xpi_file, exclude, install_dir, links, # create directory and extract xpi file if not os.path.isdir(copy_dir): os.makedirs(copy_dir) + # With unzip, the mtime of created files will depend on the timezone, + # which prevents reproducible builds. Let's make it UTC before unzipping. + os.environ['TZ'] = 'UTC' command = ["unzip", "-o", "-d", copy_dir, xpi_file] if len(exclude) > 0: command.append("-x") @@ -71,19 +71,19 @@ for JAR_DIR in `find . -type d -name '*.jar\!'` ; do ABS_CUR_DIR=`pwd`; cd $ABS_JAR_PATH; echo "Packing $JAR_FILE"; - zip -q -X -r $ABS_JAR_FILE .; + TZ=UTC zip -q -X -r $ABS_JAR_FILE .; cd $ABS_CUR_DIR; PACK_JAR_PATHS="$ABS_JAR_FILE $PACK_JAR_PATHS"; rm -rf $ABS_JAR_PATH; done; echo "Packing $XPIFILE"; -zip -q -X -r $START_DIR/$XPIFILE * -x debian/\* temp-*/\*; +TC=UTC zip -q -X -r $START_DIR/$XPIFILE * -x debian/\* temp-*/\*; [ -f $START_DIR/$XPIFILE ] && XPIDIR=`dirname $START_DIR/$XPIFILE` ABS_XPIDIR=`cd $XPIDIR; pwd`; echo "Packed XPI file. It is located in $ABS_XPIDIR"; for JAR_PATH in $PACK_JAR_PATHS ; do echo "Unpacking and removing $JAR_PATH"; - unzip -q $JAR_PATH -d $JAR_PATH!; + TC=UTC unzip -q $JAR_PATH -d $JAR_PATH!; rm -f $JAR_PATH; done; cd $START_DIR; @@ -64,11 +64,11 @@ fi; mkdir $OUTDIR; echo "Unpacking $XPIFILE"; -unzip -q $XPIFILE -d $OUTDIR; +TZ=UTC unzip -q $XPIFILE -d $OUTDIR; cd $OUTDIR; for JAR_PATH in `find . -name '*.jar'` ; do echo "Unpacking $JAR_PATH"; - unzip -q $JAR_PATH -d $JAR_PATH!; + TZ=UTC unzip -q $JAR_PATH -d $JAR_PATH!; rm -f $JAR_PATH; done; cd ..; |