Merge master into stdenv-updates

Conflicts (simple):
	pkgs/development/tools/misc/binutils/default.nix
	pkgs/tools/package-management/disnix/default.nix
	pkgs/top-level/all-packages.nix
This commit is contained in:
Vladimír Čunát
2013-07-08 10:48:05 +02:00
304 changed files with 7116 additions and 1620 deletions

View File

@@ -1,6 +1,5 @@
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm
}:
, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm, libX11 }:
assert zlibSupport -> zlib != null;
@@ -25,6 +24,10 @@ let
# doesn't work in Nix because Nix changes the mtime of files in
# the Nix store to 1. So treat that as a special case.
./nix-store-mtime.patch
# patch python to put zero timestamp into pyc
# if DETERMINISTIC_BUILD env var is set
./deterministic-build.patch
];
postPatch = stdenv.lib.optionalString (stdenv.gcc.libc != null) ''
@@ -175,7 +178,7 @@ let
tkinter = buildInternalPythonModule {
moduleName = "tkinter";
deps = [ tcl tk x11 ];
deps = [ tcl tk x11 libX11 ];
};
readline = buildInternalPythonModule {

View File

@@ -0,0 +1,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);