summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/fixmtime.py43
-rwxr-xr-xscripts/upd-instroot9
2 files changed, 52 insertions, 0 deletions
diff --git a/scripts/fixmtime.py b/scripts/fixmtime.py
new file mode 100755
index 000000000..f3b046d20
--- /dev/null
+++ b/scripts/fixmtime.py
@@ -0,0 +1,43 @@
+#!/usr/bin/python
+
+"""Walks path given on the command line for .pyc and .pyo files, changing
+the mtime in the header to 0, so it will match the .py file on the cramfs"""
+
+import os
+import sys
+import getopt
+
+debug = 0
+
+def usage():
+ print 'usage: %s /path/to/walk/and/fix' %sys.argv[0]
+ sys.exit(1)
+
+def visit(arg, d, files):
+ for filen in files:
+ if not (filen.endswith('.pyc') or filen.endswith('.pyo')):
+ continue
+ path = os.sep.join((d, filen))
+ #print 'fixing mtime', path
+ f = open(path, 'r+')
+ f.seek(4)
+ f.write('\0\0\0\0')
+ f.close()
+
+if __name__ == '__main__':
+ (args, extra) = getopt.getopt(sys.argv[1:], '', "debug")
+
+ if len(extra) < 1:
+ usage()
+
+ for arg in args:
+ if arg == "--debug":
+ debug = 1
+
+ dir = extra[0]
+
+ if not os.path.isdir(dir):
+ usage()
+
+ os.path.walk(dir, visit, None)
+
diff --git a/scripts/upd-instroot b/scripts/upd-instroot
index c8957b5ff..7b60d4797 100755
--- a/scripts/upd-instroot
+++ b/scripts/upd-instroot
@@ -814,6 +814,15 @@ if [ $ARCH = s390 -o $ARCH = s390x ]; then
done
fi
+# change mtimes to 0 (to match what happens on the cramfs)
+for p in $DEST $DESTGR; do
+ if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
+ runroot $COMPONENT --onlyone --arch $ARCH "cd $p\; usr/lib/anaconda-runtime/fixmtime.py $DEBUG $p"
+ else
+ $p/usr/lib/anaconda-runtime/fixmtime.py $DEBUG $p
+ fi
+done
+
# Remove locales unused during the install
cat $DESTGR/usr/lib/anaconda/lang-table* | awk '
{ gsub("-", "", $4);