aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/deterministic-build.patch
blob: 98d9d339fa116297977b7335bbd81408f7416104 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
diff -ur orig/Lib/py_compile.py new/Lib/py_compile.py
--- orig/Lib/py_compile.py
+++ new/Lib/py_compile.py
@@ -122,7 +122,10 @@
         cfile = file + (__debug__ and 'c' or 'o')
     with open(cfile, 'wb') as fc:
         fc.write('\0\0\0\0')
-        wr_long(fc, timestamp)
+        if "DETERMINISTIC_BUILD" in os.environ:
+            fc.write('\0\0\0\0')
+        else:
+            wr_long(fc, timestamp)
         marshal.dump(codeobject, fc)
         fc.flush()
         fc.seek(0, 0)
diff -ur orig/Python/import.c new/Python/import.c
--- orig/Python/import.c
+++ new/Python/import.c
@@ -939,10 +939,12 @@
         return;
     }
     /* Now write the true mtime (as a 32-bit field) */
-    fseek(fp, 4L, 0);
-    assert(mtime <= 0xFFFFFFFF);
-    PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION);
-    fflush(fp);
+    if (Py_GETENV("DETERMINISTIC_BUILD") == NULL) {
+        fseek(fp, 4L, 0);
+        assert(mtime <= 0xFFFFFFFF);
+        PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION);
+        fflush(fp);
+    }
     fclose(fp);
     if (Py_VerboseFlag)
         PySys_WriteStderr("# wrote %s\n", cpathname);