Commit graph

1163 commits

Author SHA1 Message Date
Russell O'Connor
94c6af494a Exponentially reduce computation time needed for replace-dependency by using memoization.
This patch makes two changes.

(1) It memoizes the computation of dependsOnOld.
(2) It replaces rewrittenDerivations with a similar memoized table rewriteMemo.

This prevents the entire tree of run-time dependencies from being traversed and instead only traverses the graph of run-time dependencies.
In the case of deep dependency changes (such as changing one's bash version for an entire NixOS system) this can lead to an exponential speedup in processing time
because shared dependencies are no longer traversed multiple times.

This patch isn't quite derivation-per-derivation equivalent to the original computation.
There are two immaterial differences.

(1) The previous version would always call upon sed to replace oldDependency with newDependency even when the store object being updated doesn't directly depend on
oldDependency.
The new version only replaceds oldDependency with newDependency when the store object being updated actually directly depends on oldDependency (which means there is
actually a hash to replace).
(2) The previous version would list the old store object as a source input of the new store object, *except* for the root derivation being updated.  Because the
root derivation being updated has its actual derivation avaiable the previous verions would make the updated root derivation depend on the old derivation as a
derivation input instead of a source input.
The new version always lists the old store object as a source input, including the root derivation.
2014-09-28 09:39:39 -04:00
Eelco Dolstra
91fa55e702 Remove references to <nixpkgs>
Nixpkgs should not use <nixpkgs> to refer to itself, because $NIX_PATH
might not be set or not point to the same Nixpkgs. It's also
unnecessary.
2014-09-23 15:48:15 +02:00
Mathijs Kwik
e80cbedbae VM builds: Use default kernel
(this was set to 3.10 when 3.4 was our default)
See commit d846e97656.
2014-09-23 09:17:01 +02:00
Christoph Hrdinka
4f5b4ceb85 build-fhs-chrootenv: bind mount chroots /tmp to hosts /tmp 2014-09-09 12:10:54 +02:00
Ricardo M. Correia
238a84ac78 grsecurity: Update stable and test patches
stable: 3.0-3.14.17-201408260041 -> 3.0-3.14.18-201409060013
test:   3.0-3.15.10-201408212335 -> 3.0-3.16.2-201409060014
2014-09-08 15:16:38 +02:00
Eelco Dolstra
585983bc95 Merge remote-tracking branch 'origin/staging'
Conflicts:
	pkgs/applications/version-management/subversion/default.nix
2014-09-08 11:42:09 +02:00
Vladimír Čunát
06fea81c6e Merge recent master into staging
Hydra: ?compare=1150594
2014-09-06 16:52:45 +02:00
Christoph Hrdinka
573aa18e9f steam: fix extraBuildCommandsMulti on i686 2014-09-06 00:25:49 +02:00
Christoph Hrdinka
c376b1afa0 build-fhs-chrootenv: fix gcc libs on i686 2014-09-06 00:25:49 +02:00
Christoph Hrdinka
64f873461f build-fhs-chrootenv: fix gcc libs on x86 2014-09-06 00:25:49 +02:00
Christoph Hrdinka
2d912e29d5 build-fhs-chrootenv: fix gcc_multi paths 2014-09-06 00:25:49 +02:00
Christoph Hrdinka
72b1f874ef buildFHSChrootEnv: fix merge error 2014-09-06 00:25:48 +02:00
Christoph Hrdinka
c5f51039f4 steam: fix steam on x86_64 2014-09-06 00:25:48 +02:00
Eelco Dolstra
7e744041f3 rpm-closure.pl: Reduce verbosity 2014-09-05 12:37:07 +02:00
Peter Simons
ca931e0e1e Merge pull request #3915 from Fuuzetsu/agda-builder
RFC: Agda builder
2014-09-04 11:28:47 +02:00
Michael Raskin
46cdc2e017 Allow git checkouts to have custom name 2014-09-03 21:54:25 +04:00
Michael Raskin
76f4eb5f93 Revert "python-wrapper: fix wrapped argv[0] w/o sed, maybe"
This reverts commit a6dd9bd0cb.
2014-09-02 20:45:41 +04:00
Michael Raskin
af4c369d0a Revert "Create wrapper directory outside of /bin/ for FHS chroots to be closer to FHS"
This reverts commit 9deb7f8aae.
2014-09-02 20:17:55 +04:00
Eelco Dolstra
715943a6fb ld-wrapper: Put back the --sysroot filter
We still need this because some clang-based packages depend on
it. (The sysroot filtering was originally done by clang-wrapper's
ld-wrapper, but we merged the ld-wrappers in
a4f9b9c8b5ec9ef106671ffdf93e0059835d0ec1.)

http://hydra.nixos.org/build/13906922
2014-09-02 13:18:03 +02:00
Peter Simons
1c0d15b90e Merge branch 'origin/master' into staging.
Conflicts:
	pkgs/development/libraries/ffmpeg/2.x.nix
	pkgs/development/libraries/serf/default.nix
2014-09-02 12:31:03 +02:00
Michael Raskin
5addaeb74f More support for SF.net in auto-updater 2014-09-02 14:25:16 +04:00
Michael Raskin
9deb7f8aae Create wrapper directory outside of /bin/ for FHS chroots to be closer to FHS 2014-09-02 01:45:15 +04:00
tv@shackspace.de
a6dd9bd0cb python-wrapper: fix wrapped argv[0] w/o sed, maybe 2014-09-02 01:31:49 +04:00
Mateusz Kowalczyk
d54b62ca60 Add a builder for Agda packages. 2014-09-01 01:05:48 +01:00
Vladimír Čunát
e51f73652d Merge recent master into staging
Hydra: ?compare=1149952

Conflicts:
	nixos/doc/manual/configuration.xml (changed split file)
	nixos/modules/config/users-groups.nix (choosing filterNull instead of inline definition)
	pkgs/development/libraries/readline/readline6.3.nix (auto-solved)
2014-08-30 10:04:02 +02:00
aszlig
5e7a1cf955
build-support: Fix nix-prefetch-* on OS X.
Fixes a regression on OS X introduced by f83af95.

Don't use --tmpdir for mktemp, because that flag doesn't exist on OS X.
However, using -t is deprecated in GNU coreutils, so as suggested by
@ip1981 we're now using parameter expansion on ${TMPDIR:-/tmp} to
provide /tmp as a fallback if TMPDIR is not set and use it instead.

Also use this approach for nix-prefetch-cvs now in order to stay
consistent.

Reported-by: Vladimir Kirillov <proger@wilab.org.ua>
Tested-by: Igor Pashev <pashev.igor@gmail.com>
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-08-27 11:22:34 +02:00
aszlig
f83af95f8a
build-support: Use mktemp -d in nix-prefetch-*.
Instead of relying on $$ to not collide with an existing path.

Quoting the Bash manual about $$:

> Expands to the process ID of the shell. In a () subshell, it expands
> to the process ID of the current shell, not the subshell.

So, this is different from $BASHPID:

> Expands to the process ID of the current bash process. This differs
> from $$ under certain circumstances, such as subshells that do not
> require bash to be re-initialized.

But even $BASHPID is prone to race conditions if the process IDs wrap
around, so to be on the safe side, we're using mktemp here.

Closes #3784.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-08-25 15:28:55 +02:00
Michael Raskin
8ba5e6fa24 Merge pull request #3650 from bennofs/prefetch-git-human-readable
prefetch-git: output human-readable rev to stderr
2014-08-23 13:05:55 +04:00
Vladimír Čunát
d4e9fd2a90 Merge recent master into staging
Hydra: ?compare=1148749

Conflicts (easy):
	nixos/modules/virtualisation/containers.nix
2014-08-21 15:09:31 +02:00
Eelco Dolstra
a0c60b76ec gcc: Revive the no-sys-dirs patch
For now, we don't NATIVE_SYSTEM_HEADER_DIR because it breaks the
build. However, it points to Glibc in the Nix store (not /usr/include)
so it's kind of okay.
2014-08-18 17:20:37 +02:00
Benno Fünfstück
ce3e86702f prefetch-git: output human-readable rev to stderr
that way, the stdout stays compatible with nix-prefetch-{bzr,svn,hg}
2014-08-17 23:00:03 +02:00
Peter Simons
817c0e4144 cabal: enable multi-threaded builds with GHC 7.8.x or later
https://github.com/NixOS/nixpkgs/issues/3220
2014-08-17 00:20:12 +02:00
Peter Simons
462e067f45 cabal: cosmetic 2014-08-17 00:20:12 +02:00
Peter Simons
a9fad50181 cabal: minor code re-factoring of shleavy's patch that allows building packages without a Setup.hs file
https://github.com/NixOS/nixpkgs/pull/3585
2014-08-17 00:20:12 +02:00
Shea Levy
dc285e6895 cabal.mkDerivation: Use defaultMain if no Setup.{l,}hs exists.
This mirrors the default behaviour of cabal-install for the Simple build type
2014-08-16 00:13:14 -05:00
Patrick Mahoney
d314461278 Add http mirror for postgresql. 2014-08-14 19:17:26 +02:00
Daniel Peebles
a570251187 Make ant-build canonicalize the jars it produces so that we produce byte-for-byte identical jars (they normally contain timestamps and nondeterministic ordering of metadata lines) 2014-08-14 01:20:44 -04:00
Georges Dubus
ca0b0a68e8 Fixed deterministicness of fetchgit with leaveDotGit
The shebang of .git/hooks depended the git's bash, which made the result
depend of that bash's path.
2014-08-10 16:25:29 +02:00
Eelco Dolstra
05e81e0d9f debian: Update to 6.0.10 2014-08-10 15:17:00 +02:00
Georges Dubus
f4fbcddd44 fetchgit: make deterministic with leaveDotGit (close #3392)
There was a few files containing timestamp, so we now remove them.

It shouldn't be a problem for logs. However, index might be. Anyway,
that's better than nothing.
2014-08-08 21:51:29 +02:00
Vladimír Čunát
52d9c93abe Merge 'staging' into master 2014-08-08 20:13:23 +02:00
Eelco Dolstra
940eb8bfc1 debBuild: Allow setting the package name and overriding the install command 2014-08-08 14:15:43 +02:00
Peter Simons
b76a7504bb cabal: cosmetic fix to syntax highlighting in Emacs 2014-08-04 12:39:11 +02:00
Eelco Dolstra
7f410ef923 Merge remote-tracking branch 'origin/master' into staging
Conflicts:
	pkgs/misc/vim-plugins/default.nix
2014-07-22 11:00:00 +02:00
Michael Raskin
c38a11316d Filter out broken-completely links 2014-07-18 17:42:00 +04:00
Shea Levy
b969e9340b Separate fetchgitPrivate into a separate file 2014-07-16 18:05:56 -04:00
Eelco Dolstra
ff97b7dbe6 Merge remote-tracking branch 'origin/master' into staging 2014-07-14 17:04:55 +02:00
Shea Levy
b57bc220cc Merge branch 'master' of git://github.com/ip1981/nixpkgs
Added quilt-0.63
2014-07-14 10:26:39 -04:00
Igor Pashev
26f47ba388 Fixed main Savannah mirror directory 2014-07-14 15:39:08 +02:00
Eelco Dolstra
1245ca3ff7 debian: Update to 7.6 2014-07-14 14:35:09 +02:00