Commit Graph

22 Commits

Author SHA1 Message Date
Sergei Trofimovich
69cf5181c3 stdenv/generic/setup.sh: enable parallel installs by default
The primary motivating example is openssl:

Before the change full package build took 1m54s minutes.
After the change full package build takes 59s.

About a 2x speedup.

The difference is visible because openssl builds hundreds of manpages
spawning a perl process per manual in `install` phase. Such a workload
is very easy to parallelize.

Another example would be `autotools`+`libtool` based build system where
install step requires relinking. The more binaries there are to relink
the more gain it will be to do it in parallel.

The change enables parallel installs by default only for buiilds that
already have parallel builds enabled. There is a high chance those build
systems already handle parallelism well but some packages will fail.

Consistently propagated the enableParallelBuilding to:
- cmake (enabled by default, similar to builds)
- ninja (set parallelism explicitly, don't rely on default)
- bmake (enable when requested)
- scons (enable when requested)
- meson (set parallelism explicitly, don't rely on default)
- waf (set parallelism explicitly, don't rely on default)
- qmake-4/5/6 (enable by default, similar to builds)
- xorg (always enable, similar to builds)
2023-02-26 22:02:09 +00:00
Artturin
c01f509e44 treewide: source .attrs in builders
if theres a source $stdenv then this is needed

for structuredAttrs
2022-12-08 21:09:02 +02:00
John Ericson
e0f1739c75 treewide: Don't use nativePkgs or crossPkgs anymore 2017-12-30 22:04:22 -05:00
John Ericson
da19c34d0f stdenv setup: Always use both propagated files
This continues #23374, which always kept around both attributes, by
always including both propagated files: `propgated-native-build-inputs`
and `propagated-build-inputs`. `nativePkgs` and `crossPkgs` are still
defined as before, however, so this change should only barely
observable.

This is an incremental step to fully keeping the dependencies separate
in all cases.
2017-11-21 10:44:44 -05:00
John Ericson
ea7d13cf1a stdenv-setup and misc hooks: Work with bash-3.4 for MacOS nix-shell
This is a temporary measure until this impurity is removed from Nix.
2017-07-26 09:08:01 -04:00
John Ericson
8d76effc17 stdenv-setup: Make the package accumulators associative arrays instead of strings
This is generally cleaner: less eval, less worrying about separators,
and probably also faster. I got the idea from that python wrapper
script.
2017-07-12 15:30:56 -04:00
Robin Gloster
27b9f5d65e xorg.*: disable relro/bindnow hardening
Breaks the module system at runtime otherwise.
2016-08-14 09:01:55 +00:00
Robin Gloster
d020caa5b2 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-18 13:49:22 +00:00
Robin Gloster
f519a255a5 xorg: switch off bindnow hardening for all packages
X otherwise fails to load modules.
2016-04-04 14:15:31 +00:00
Vladimír Čunát
5227fb1dd5 Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
2015-10-03 13:33:37 +02:00
Eelco Dolstra
e8e0995bd0 Fix inputproto and probably other packages
"grep Requires" failed on *.pc files that had no Requires fields, due
to pipefail. But this error was previously masked by #7524.
2015-05-13 18:17:25 +02:00
Eelco Dolstra
99b88cfb53 Merge remote-tracking branch 'origin/master' into multiple-outputs
Conflicts:
	pkgs/development/libraries/acl/default.nix
	pkgs/development/libraries/atk/2.6.x.nix
	pkgs/development/libraries/attr/default.nix
	pkgs/development/libraries/cairo/default.nix
	pkgs/development/libraries/freetype/default.nix
	pkgs/development/libraries/glib/2.34.x.nix
	pkgs/development/libraries/gtk+/2.24.x.nix
	pkgs/development/libraries/libtiff/default.nix
	pkgs/development/libraries/openssl/default.nix
	pkgs/development/libraries/pango/1.30.x.nix
	pkgs/misc/cups/default.nix
	pkgs/os-specific/linux/util-linux/default.nix
	pkgs/servers/x11/xorg/builder.sh
	pkgs/servers/x11/xorg/default.nix
	pkgs/top-level/all-packages.nix
2013-06-09 00:41:27 +02:00
Eelco Dolstra
ab3eeabfed Rename buildNativeInputs -> nativeBuildInputs
Likewise for propagatedBuildNativeInputs, etc.  "buildNativeInputs"
sounds like an imperative rather than a noun phrase.
2012-12-28 19:20:09 +01:00
Eelco Dolstra
61129e1ee9 Split some GTK/X11-related packages
The closure of the Pan newsreader is now down from 344 MiB to 195 MiB.
2012-08-26 22:53:19 -04:00
Eelco Dolstra
c556a6ea46 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless
function, so obsolete it.

svn path=/nixpkgs/branches/stdenv-updates/; revision=31644
2012-01-18 20:16:00 +00:00
Eelco Dolstra
6ba53ec09a * Fix xf86-input-synaptics and xf86-input-keyboard.
* Enable parallel building for all X.org packages.

svn path=/nixpkgs/branches/x-updates/; revision=25982
2011-02-15 15:54:57 +00:00
Lluís Batlle i Rossell
d8aa5b5db1 Fixing stdenv's chain of propagated-build-inputs (2nd level propagated build
inputs did not get in)
Updating the xorg builder script to support cross building (in fact, support
for propagating the required build inputs).


svn path=/nixpkgs/branches/stdenv-updates/; revision=18569
2009-11-23 19:45:18 +00:00
Eelco Dolstra
94d7d1fdbb * Got rid of all --disable-static flags; they're redundant now.
* Also a bunch of style cleanups (tabs, with args, ...).

svn path=/nixpkgs/branches/stdenv-updates/; revision=15235
2009-04-21 23:18:09 +00:00
Eelco Dolstra
3e19819c28 * X11R7.2 and associated updates.
svn path=/nixpkgs/trunk/; revision=8049
2007-02-26 16:32:27 +00:00
Eelco Dolstra
c656e18b1d * Don't build static libraries. Whooooosh!
svn path=/nixpkgs/trunk/; revision=4559
2006-01-16 12:59:34 +00:00
Eelco Dolstra
ceb9b654ed * Discover dependencies on libXaw.
* Handle commas in *.pc files.

svn path=/nixpkgs/trunk/; revision=4525
2006-01-09 12:49:21 +00:00
Eelco Dolstra
ebc93faa32 * Automatically propagate pkgconfig "Requires" fields so I don't have
to figure out the propagatedBuildInputs.

svn path=/nixpkgs/trunk/; revision=4521
2006-01-08 22:09:44 +00:00