diff --git a/doc/manual.xml b/doc/manual.xml
index 2b4f47aff1c8b..de663fcd5b647 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -12,6 +12,7 @@
+
diff --git a/doc/multiple-output.xml b/doc/multiple-output.xml
new file mode 100644
index 0000000000000..1821861adf714
--- /dev/null
+++ b/doc/multiple-output.xml
@@ -0,0 +1,91 @@
+
+
+]>
+
+
+Multiple-output packages
+
+Introduction
+ The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs.
+ The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less.
+ The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
+
+
+Installing a split package
+ When installing a package via systemPackages or nix-env you have several options:
+ Currently nix-env almost always installs all outputs until https://github.com/NixOS/nix/pull/815 gets merged.
+
+ You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The outputs attribute contains a list of output names.
+ You can let it use the default outputs. These are handled by meta.outputsToInstall attribute that contains a list of output names.
+ TODO: more about tweaking the attribute, etc.
+ NixOS provides configuration option environment.extraOutputsToInstall that allows adding extra outputs of environment.systemPackages atop the default ones. It's mainly meant for documentation and debug symbols, and it's also modified by specific options.
+ At this moment there is no similar configurability for packages installed by nix-env. You can still use approach from to override meta.outputsToInstall attributes, but that's a rather inconvenient way.
+
+
+
+
+Using a split package
+ In the Nix language the individual outputs can be reached explicitly as attributes, e.g. coreutils.info, but the typical case is just using packages as build inputs.
+ When a multiple-output derivation gets into a build input of another derivation, the first output is added (.dev by convention) and also propagatedBuildOutputs of that package which by default contain $outputBin and $outputLib. (See .)
+
+
+
+Writing a split derivation
+ Here you find how to write a derivation that produces multiple outputs.
+ In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in <nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh>; it's relatively well-readable. The whole machinery is triggered by defining the outputs attribute to contain the list of desired output names (strings).
+ outputs = [ "dev" "out" "bin" "doc" ];
+ Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. By convention, the first output should usually be dev; typically you also want to have the main out output, as it catches any files that didn't get elsewhere.
+
+ There is a special handling of the debug output, described at .
+
+
+ File type groups
+ The support code currently recognizes some particular kinds of outputs and either instructs the build system of the package to put files into their desired outputs or it moves the files during the fixup phase. Each group of file types has an outputFoo variable specifying the output name where they should go. If that variable isn't defined by the derivation writer, it is guessed – a default output name is defined, falling back to other possibilities if the output isn't defined.
+
+
+ $outputDev
+ is for development-only files. These include C(++) headers, pkg-config, cmake and aclocal files. They go to dev or out by default.
+
+
+ $outputBin
+ is meant for user-facing binaries, typically residing in bin/. They go to bin or out by default.
+
+
+ $outputLib
+ is meant for libraries, typically residing in lib/ and libexec/. They go to lib or out by default.
+
+
+ $outputDoc
+ is for user documentation, typically residing in share/doc/. It goes to doc or out by default.
+
+
+ $outputDocdev
+ is for developer documentation. Currently we count gtk-doc and man3 pages in there. It goes to docdev or is removed (!) by default. This is because e.g. gtk-doc tends to be rather large and completely unused by nixpkgs users.
+
+
+ $outputMan
+ is for man pages (except for section 3). They go to man or doc or $outputBin by default.
+
+
+ $outputInfo
+ is for info pages. They go to info or doc or $outputMan by default.
+
+
+
+
+ Common caveats
+
+ Some configure scripts don't like some of the parameters passed by default by the framework, e.g. --docdir=/foo/bar. You can disable this by setting setOutputFlags = false;.
+ The outputs of a single derivation can retain references to each other, but note that circular references are not allowed. (And each strongly-connected component would act as a single output anyway.)
+ Most of split packages contain their core functionality in libraries. These libraries tend to refer to various kind of data that typically gets into out, e.g. locale strings, so there is often no advantage in separating the libraries into lib, as keeping them in out is easier.
+ Some packages have hidden assumptions on install paths, which complicates splitting.
+
+
+
+
+
+
+
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index f8d9acb2fb0c7..136e83ee0cda8 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -956,7 +956,7 @@ following:
phase.
-
+
separateDebugInfo
If set to true, the standard
environment will enable debug information in C/C++ builds. After
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 585495469b249..efe82d7866001 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -129,7 +129,7 @@ rec {
};
outputsList = map outputToAttrListElement outputs;
- in commonAttrs.${drv.outputName};
+ in commonAttrs // { outputUnspecified = true; };
/* Strip a derivation of all non-essential attributes, returning
diff --git a/lib/strings.nix b/lib/strings.nix
index 01a6f181d0389..f9145f34832e4 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -98,7 +98,9 @@ rec {
makeLibraryPath [ pkgs.openssl pkgs.zlib ]
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r/lib:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/lib"
*/
- makeLibraryPath = makeSearchPath "lib";
+ makeLibraryPath = pkgs: makeSearchPath "lib"
+ # try to guess the right output of each pkg
+ (map (pkg: pkg.lib or (pkg.out or pkg)) pkgs);
/* Construct a binary search path (such as $PATH) containing the
binaries for a set of packages.
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 7d26dd73a2b7e..69da1f9488298 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -44,7 +44,7 @@ let
echo "for hints about the offending path)."
exit 1
fi
- ${libxslt}/bin/xsltproc \
+ ${libxslt.bin}/bin/xsltproc \
--stringparam revision '${revision}' \
-o $out ${./options-to-docbook.xsl} $optionsXML
'';
diff --git a/nixos/modules/config/debug-info.nix b/nixos/modules/config/debug-info.nix
index a096a9809ceee..17cb862d29162 100644
--- a/nixos/modules/config/debug-info.nix
+++ b/nixos/modules/config/debug-info.nix
@@ -38,7 +38,7 @@ with lib;
# environment.pathsToLink, and we can't have both.
#environment.pathsToLink = [ "/lib/debug/.build-id" ];
- environment.outputsToLink =
+ environment.extraOutputsToInstall =
optional config.environment.enableDebugInfo "debug";
};
diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix
index e078a75b295ca..1eaebe4b2bbdd 100644
--- a/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixos/modules/config/fonts/fontconfig.nix
@@ -236,7 +236,7 @@ with lib;
# Versioned fontconfig > 2.10. Take shared fonts.conf from fontconfig.
# Otherwise specify only font directories.
environment.etc."fonts/${pkgs.fontconfig.configVersion}/fonts.conf".source =
- "${pkgs.fontconfig}/etc/fonts/fonts.conf";
+ "${pkgs.fontconfig.out}/etc/fonts/fonts.conf";
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/00-nixos.conf".text =
let
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index ca498ca499ebe..0c4f4cbfa5c6e 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -148,7 +148,7 @@ in
"protocols".source = pkgs.iana_etc + "/etc/protocols";
# /etc/rpc: RPC program numbers.
- "rpc".source = pkgs.glibc + "/etc/rpc";
+ "rpc".source = pkgs.glibc.out + "/etc/rpc";
# /etc/hosts: Hostname-to-IP mappings.
"hosts".text =
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index 8b4ad796d0d51..642aedc3f242c 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -26,7 +26,7 @@ let
# are built with PulseAudio support (like KDE).
clientConf = writeText "client.conf" ''
autospawn=${if nonSystemWide then "yes" else "no"}
- ${optionalString nonSystemWide "daemon-binary=${cfg.package}/bin/pulseaudio"}
+ ${optionalString nonSystemWide "daemon-binary=${cfg.package.out}/bin/pulseaudio"}
'';
# Write an /etc/asound.conf that causes all ALSA applications to
@@ -130,11 +130,11 @@ in {
source = clientConf;
};
- hardware.pulseaudio.configFile = mkDefault "${cfg.package}/etc/pulse/default.pa";
+ hardware.pulseaudio.configFile = mkDefault "${cfg.package.out}/etc/pulse/default.pa";
}
(mkIf cfg.enable {
- environment.systemPackages = [ cfg.package ];
+ environment.systemPackages = [ cfg.package.out ];
environment.etc = singleton {
target = "asound.conf";
@@ -195,7 +195,7 @@ in {
environment.PULSE_RUNTIME_PATH = stateDir;
serviceConfig = {
Type = "notify";
- ExecStart = "${cfg.package}/bin/pulseaudio --daemonize=no --log-level=${cfg.daemon.logLevel} --system -n --file=${cfg.configFile}";
+ ExecStart = "${cfg.package.out}/bin/pulseaudio --daemonize=no --log-level=${cfg.daemon.logLevel} --system -n --file=${cfg.configFile}";
Restart = "on-failure";
};
};
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index f510b58842e42..d7815324c4c4d 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -73,11 +73,11 @@ in
description = "List of directories to be symlinked in /run/current-system/sw.";
};
- outputsToLink = mkOption {
+ extraOutputsToInstall = mkOption {
type = types.listOf types.str;
- default = [];
- example = [ "doc" ];
- description = "List of package outputs to be symlinked into /run/current-system/sw.";
+ default = [ ];
+ example = [ "doc" "info" "docdev" ];
+ description = "List of additional package outputs to be symlinked into /run/current-system/sw.";
};
};
@@ -123,9 +123,10 @@ in
system.path = pkgs.buildEnv {
name = "system-path";
paths = config.environment.systemPackages;
- inherit (config.environment) pathsToLink outputsToLink;
+ inherit (config.environment) pathsToLink extraOutputsToInstall;
ignoreCollisions = true;
# !!! Hacky, should modularise.
+ # outputs TODO: note that the tools will often not be linked by default
postBuild =
''
if [ -x $out/bin/update-mime-database -a -w $out/share/mime ]; then
diff --git a/nixos/modules/installer/tools/auto-upgrade.nix b/nixos/modules/installer/tools/auto-upgrade.nix
index 2da330f9b5716..79ccb5c3d18a0 100644
--- a/nixos/modules/installer/tools/auto-upgrade.nix
+++ b/nixos/modules/installer/tools/auto-upgrade.nix
@@ -78,7 +78,7 @@ let cfg = config.system.autoUpgrade; in
HOME = "/root";
};
- path = [ pkgs.gnutar pkgs.xz config.nix.package ];
+ path = [ pkgs.gnutar pkgs.xz.bin config.nix.package ];
script = ''
${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch ${toString cfg.flags}
diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index b8057cadce25c..20a1f7f1ed8c2 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -35,7 +35,7 @@
# Tools to create / manipulate filesystems.
pkgs.ntfsprogs # for resizing NTFS partitions
pkgs.dosfstools
- pkgs.xfsprogs
+ pkgs.xfsprogs.bin
pkgs.jfsutils
pkgs.f2fs-tools
diff --git a/nixos/modules/programs/man.nix b/nixos/modules/programs/man.nix
index b285065380496..201144ccb451b 100644
--- a/nixos/modules/programs/man.nix
+++ b/nixos/modules/programs/man.nix
@@ -23,7 +23,7 @@ with lib;
environment.pathsToLink = [ "/share/man" ];
- environment.outputsToLink = [ "man" ];
+ environment.extraOutputsToInstall = [ "man" ];
};
diff --git a/nixos/modules/programs/xfs_quota.nix b/nixos/modules/programs/xfs_quota.nix
index 90b6304fa9990..648fd9a8a94f4 100644
--- a/nixos/modules/programs/xfs_quota.nix
+++ b/nixos/modules/programs/xfs_quota.nix
@@ -89,8 +89,8 @@ in
nameValuePair "xfs_quota-${name}" {
description = "Setup xfs_quota for project ${name}";
script = ''
- ${pkgs.xfsprogs}/bin/xfs_quota -x -c 'project -s ${name}' ${opts.fileSystem}
- ${pkgs.xfsprogs}/bin/xfs_quota -x -c 'limit -p ${limitOptions opts} ${name}' ${opts.fileSystem}
+ ${pkgs.xfsprogs.bin}/bin/xfs_quota -x -c 'project -s ${name}' ${opts.fileSystem}
+ ${pkgs.xfsprogs.bin}/bin/xfs_quota -x -c 'limit -p ${limitOptions opts} ${name}' ${opts.fileSystem}
'';
wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/security/apparmor-suid.nix b/nixos/modules/security/apparmor-suid.nix
index b89b379ae6668..d766f6badfc7e 100644
--- a/nixos/modules/security/apparmor-suid.nix
+++ b/nixos/modules/security/apparmor-suid.nix
@@ -28,9 +28,9 @@ with lib;
capability setuid,
network inet raw,
- ${pkgs.glibc}/lib/*.so mr,
- ${pkgs.libcap}/lib/libcap.so* mr,
- ${pkgs.attr}/lib/libattr.so* mr,
+ ${pkgs.glibc.out}/lib/*.so mr,
+ ${pkgs.libcap.out}/lib/libcap.so* mr,
+ ${pkgs.attr.out}/lib/libattr.so* mr,
${pkgs.iputils}/bin/ping mixr,
/var/setuid-wrappers/ping.real r,
diff --git a/nixos/modules/security/polkit.nix b/nixos/modules/security/polkit.nix
index 95b659d96f0f2..507f81bbf0737 100644
--- a/nixos/modules/security/polkit.nix
+++ b/nixos/modules/security/polkit.nix
@@ -59,9 +59,9 @@ in
config = mkIf cfg.enable {
- environment.systemPackages = [ pkgs.polkit ];
+ environment.systemPackages = [ pkgs.polkit.bin pkgs.polkit.out ];
- systemd.packages = [ pkgs.polkit ];
+ systemd.packages = [ pkgs.polkit.out ];
systemd.services.polkit.restartTriggers = [ config.system.path ];
systemd.services.polkit.unitConfig.X-StopIfChanged = false;
@@ -79,7 +79,7 @@ in
${cfg.extraConfig}
''; #TODO: validation on compilation (at least against typos)
- services.dbus.packages = [ pkgs.polkit ];
+ services.dbus.packages = [ pkgs.polkit.out ];
security.pam.services.polkit-1 = {};
@@ -90,7 +90,7 @@ in
owner = "root";
group = "root";
setuid = true;
- source = "${pkgs.polkit}/lib/polkit-1/polkit-agent-helper-1";
+ source = "${pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1";
}
];
diff --git a/nixos/modules/security/setuid-wrappers.nix b/nixos/modules/security/setuid-wrappers.nix
index 2a289dc402ce8..7d69f9b1183da 100644
--- a/nixos/modules/security/setuid-wrappers.nix
+++ b/nixos/modules/security/setuid-wrappers.nix
@@ -8,12 +8,12 @@ let
setuidWrapper = pkgs.stdenv.mkDerivation {
name = "setuid-wrapper";
- buildCommand = ''
+ unpackPhase = "true";
+ installPhase = ''
mkdir -p $out/bin
cp ${./setuid-wrapper.c} setuid-wrapper.c
gcc -Wall -O2 -DWRAPPER_DIR=\"${wrapperDir}\" \
setuid-wrapper.c -o $out/bin/setuid-wrapper
- strip -S $out/bin/setuid-wrapper
'';
};
diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix
index cfb1cd773c7fe..6fd39e68b1d9c 100644
--- a/nixos/modules/services/continuous-integration/jenkins/default.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/default.nix
@@ -161,11 +161,11 @@ in {
'';
postStart = ''
- until ${pkgs.curl}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix} ; do
+ until ${pkgs.curl.bin}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix} ; do
sleep 10
done
while true ; do
- index=`${pkgs.curl}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix}`
+ index=`${pkgs.curl.bin}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix}`
if [[ !("$index" =~ 'Please wait while Jenkins is restarting' ||
"$index" =~ 'Please wait while Jenkins is getting ready to work') ]]; then
exit 0
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index 6fd901a00559d..9e86559dda04d 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -87,7 +87,7 @@ in
mkdir -p ${cfg.dataDir}
chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
'';
- serviceConfig.ExecStart = "${openldap}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -f ${configFile}";
+ serviceConfig.ExecStart = "${openldap.out}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -f ${configFile}";
};
users.extraUsers.openldap =
diff --git a/nixos/modules/services/desktops/gnome3/gvfs.nix b/nixos/modules/services/desktops/gnome3/gvfs.nix
index c4f41a6125c71..a07cdadbb12bf 100644
--- a/nixos/modules/services/desktops/gnome3/gvfs.nix
+++ b/nixos/modules/services/desktops/gnome3/gvfs.nix
@@ -37,7 +37,7 @@ in
services.dbus.packages = [ gnome3.gvfs ];
- services.udev.packages = [ pkgs.libmtp ];
+ services.udev.packages = [ pkgs.libmtp.bin ];
};
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index e267aeee030c8..8e883ed7775fb 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -72,7 +72,7 @@ let
run_progs=$(grep -v '^[[:space:]]*#' $out/* | grep 'RUN+="[^/$]' |
sed -e 's/.*RUN+="\([^ "]*\)[ "].*/\1/' | uniq)
for i in $import_progs $run_progs; do
- if [[ ! -x ${pkgs.udev}/lib/udev/$i && ! $i =~ socket:.* ]]; then
+ if [[ ! -x ${udev}/lib/udev/$i && ! $i =~ socket:.* ]]; then
echo "FAIL"
echo "$i is called in udev rules but not installed by udev"
exit 1
diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix
index 739d76fbf1f5b..2198842a45116 100644
--- a/nixos/modules/services/hardware/upower.nix
+++ b/nixos/modules/services/hardware/upower.nix
@@ -51,7 +51,7 @@ in
systemd.services.upower =
{ description = "Power Management Daemon";
- path = [ pkgs.glib ]; # needed for gdbus
+ path = [ pkgs.glib.out ]; # needed for gdbus
serviceConfig =
{ Type = "dbus";
BusName = "org.freedesktop.UPower";
diff --git a/nixos/modules/services/misc/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix
index 0a0e160a7cc32..add339f9bdfed 100644
--- a/nixos/modules/services/misc/docker-registry.nix
+++ b/nixos/modules/services/misc/docker-registry.nix
@@ -65,7 +65,7 @@ in {
};
postStart = ''
- until ${pkgs.curl}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/'; do
+ until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/'; do
sleep 1;
done
'';
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index e079a5d80d4cb..911f79e5756a3 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -358,7 +358,7 @@ in
systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ];
systemd.services.nix-daemon =
- { path = [ nix pkgs.openssl pkgs.utillinux config.programs.ssh.package ]
+ { path = [ nix pkgs.openssl.bin pkgs.utillinux config.programs.ssh.package ]
++ optionals cfg.distributedBuilds [ pkgs.gzip ];
environment = cfg.envVars
diff --git a/nixos/modules/services/misc/subsonic.nix b/nixos/modules/services/misc/subsonic.nix
index 020d53a481de1..c1ebe418f727b 100644
--- a/nixos/modules/services/misc/subsonic.nix
+++ b/nixos/modules/services/misc/subsonic.nix
@@ -97,7 +97,7 @@ in
transcoders = mkOption {
type = types.listOf types.path;
- default = [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
+ default = [ "${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
description = ''
List of paths to transcoder executables that should be accessible
from Subsonic. Symlinks will be created to each executable inside
diff --git a/nixos/modules/services/misc/svnserve.nix b/nixos/modules/services/misc/svnserve.nix
index 37dd133e137d8..c74befac749db 100644
--- a/nixos/modules/services/misc/svnserve.nix
+++ b/nixos/modules/services/misc/svnserve.nix
@@ -38,7 +38,7 @@ in
after = [ "network-interfaces.target" ];
wantedBy = [ "multi-user.target" ];
preStart = "mkdir -p ${cfg.svnBaseDir}";
- script = "${pkgs.subversion}/bin/svnserve -r ${cfg.svnBaseDir} -d --foreground --pid-file=/var/run/svnserve.pid";
+ script = "${pkgs.subversion.out}/bin/svnserve -r ${cfg.svnBaseDir} -d --foreground --pid-file=/var/run/svnserve.pid";
};
};
}
diff --git a/nixos/modules/services/monitoring/cadvisor.nix b/nixos/modules/services/monitoring/cadvisor.nix
index 425e0ee9230f9..a67df158be478 100644
--- a/nixos/modules/services/monitoring/cadvisor.nix
+++ b/nixos/modules/services/monitoring/cadvisor.nix
@@ -71,7 +71,7 @@ in {
after = [ "network.target" "docker.service" "influxdb.service" ];
postStart = mkBefore ''
- until ${pkgs.curl}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/containers/'; do
+ until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://${cfg.listenAddress}:${toString cfg.port}/containers/'; do
sleep 1;
done
'';
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index 7104a5796f761..e50728aff8f89 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -509,7 +509,7 @@ in {
};
in "${aenv}/${pkgs.python.sitePackages}";
GRAPHITE_API_CONFIG = graphiteApiConfig;
- LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
+ LD_LIBRARY_PATH = "${pkgs.cairo.out}/lib";
};
serviceConfig = {
ExecStart = ''
diff --git a/nixos/modules/services/networking/dnscrypt-proxy.nix b/nixos/modules/services/networking/dnscrypt-proxy.nix
index 886bfc30468e8..61305f5a755ee 100644
--- a/nixos/modules/services/networking/dnscrypt-proxy.nix
+++ b/nixos/modules/services/networking/dnscrypt-proxy.nix
@@ -151,7 +151,7 @@ in
/etc/group r,
${config.environment.etc."nsswitch.conf".source} r,
- ${pkgs.glibc}/lib/*.so mr,
+ ${pkgs.glibc.out}/lib/*.so mr,
${pkgs.tzdata}/share/zoneinfo/** r,
network inet stream,
@@ -159,12 +159,12 @@ in
network inet dgram,
network inet6 dgram,
- ${pkgs.gcc.cc}/lib/libssp.so.* mr,
- ${pkgs.libsodium}/lib/libsodium.so.* mr,
+ ${pkgs.gcc.cc.lib}/lib/libssp.so.* mr,
+ ${pkgs.libsodium.out}/lib/libsodium.so.* mr,
${pkgs.systemd}/lib/libsystemd.so.* mr,
- ${pkgs.xz}/lib/liblzma.so.* mr,
- ${pkgs.libgcrypt}/lib/libgcrypt.so.* mr,
- ${pkgs.libgpgerror}/lib/libgpg-error.so.* mr,
+ ${pkgs.xz.out}/lib/liblzma.so.* mr,
+ ${pkgs.libgcrypt.out}/lib/libgcrypt.so.* mr,
+ ${pkgs.libgpgerror.out}/lib/libgpg-error.so.* mr,
${pkgs.libcap}/lib/libcap.so.* mr,
${pkgs.lz4}/lib/liblz4.so.* mr,
${pkgs.attr}/lib/libattr.so.* mr,
diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix
index 15ec9be801217..0cbf57314c4b6 100644
--- a/nixos/modules/services/networking/i2pd.nix
+++ b/nixos/modules/services/networking/i2pd.nix
@@ -8,7 +8,7 @@ let
homeDir = "/var/lib/i2pd";
- extip = "EXTIP=\$(${pkgs.curl}/bin/curl -sf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')";
+ extip = "EXTIP=\$(${pkgs.curl.bin}/bin/curl -sf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')";
toYesNo = b: if b then "yes" else "no";
diff --git a/nixos/modules/services/networking/nix-serve.nix b/nixos/modules/services/networking/nix-serve.nix
index 880a1d361dfeb..8f6881441cf79 100644
--- a/nixos/modules/services/networking/nix-serve.nix
+++ b/nixos/modules/services/networking/nix-serve.nix
@@ -50,7 +50,7 @@ in
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- path = [ config.nix.package pkgs.bzip2 ];
+ path = [ config.nix.package pkgs.bzip2.bin ];
environment.NIX_REMOTE = "daemon";
environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix
index 9e122dc7beac2..29166be2399bb 100644
--- a/nixos/modules/services/printing/cupsd.nix
+++ b/nixos/modules/services/printing/cupsd.nix
@@ -14,21 +14,21 @@ let
additionalBackends = pkgs.runCommand "additional-cups-backends" { }
''
mkdir -p $out
- if [ ! -e ${cups}/lib/cups/backend/smb ]; then
+ if [ ! -e ${cups.out}/lib/cups/backend/smb ]; then
mkdir -p $out/lib/cups/backend
ln -sv ${pkgs.samba}/bin/smbspool $out/lib/cups/backend/smb
fi
# Provide support for printing via HTTPS.
- if [ ! -e ${cups}/lib/cups/backend/https ]; then
+ if [ ! -e ${cups.out}/lib/cups/backend/https ]; then
mkdir -p $out/lib/cups/backend
- ln -sv ${cups}/lib/cups/backend/ipp $out/lib/cups/backend/https
+ ln -sv ${cups.out}/lib/cups/backend/ipp $out/lib/cups/backend/https
fi
'';
# Here we can enable additional backends, filters, etc. that are not
# part of CUPS itself, e.g. the SMB backend is part of Samba. Since
- # we can't update ${cups}/lib/cups itself, we create a symlink tree
+ # we can't update ${cups.out}/lib/cups itself, we create a symlink tree
# here and add the additional programs. The ServerBin directive in
# cupsd.conf tells cupsd to use this tree.
bindir = pkgs.buildEnv {
diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix
index 31332489a7841..c51a42b8e9c1f 100644
--- a/nixos/modules/services/search/elasticsearch.nix
+++ b/nixos/modules/services/search/elasticsearch.nix
@@ -148,7 +148,7 @@ in {
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
'';
postStart = mkBefore ''
- until ${pkgs.curl}/bin/curl -s -o /dev/null ${cfg.listenAddress}:${toString cfg.port}; do
+ until ${pkgs.curl.bin}/bin/curl -s -o /dev/null ${cfg.listenAddress}:${toString cfg.port}; do
sleep 1
done
'';
diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index ba34eb25169cc..3279934430489 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -121,7 +121,7 @@ in
security.setuidOwners = singleton
{ program = "dbus-daemon-launch-helper";
- source = "${pkgs.dbus_daemon}/libexec/dbus-daemon-launch-helper";
+ source = "${pkgs.dbus_daemon.lib}/libexec/dbus-daemon-launch-helper";
owner = "root";
group = "messagebus";
setuid = true;
diff --git a/nixos/modules/services/system/nscd.nix b/nixos/modules/services/system/nscd.nix
index 3c0d2043ed5d5..d98ef8a306d57 100644
--- a/nixos/modules/services/system/nscd.nix
+++ b/nixos/modules/services/system/nscd.nix
@@ -64,14 +64,14 @@ in
restartTriggers = [ config.environment.etc.hosts.source config.environment.etc."nsswitch.conf".source ];
serviceConfig =
- { ExecStart = "@${pkgs.glibc}/sbin/nscd nscd -f ${cfgFile}";
+ { ExecStart = "@${pkgs.glibc.bin}/sbin/nscd nscd -f ${cfgFile}";
Type = "forking";
PIDFile = "/run/nscd/nscd.pid";
Restart = "always";
ExecReload =
- [ "${pkgs.glibc}/sbin/nscd --invalidate passwd"
- "${pkgs.glibc}/sbin/nscd --invalidate group"
- "${pkgs.glibc}/sbin/nscd --invalidate hosts"
+ [ "${pkgs.glibc.bin}/sbin/nscd --invalidate passwd"
+ "${pkgs.glibc.bin}/sbin/nscd --invalidate group"
+ "${pkgs.glibc.bin}/sbin/nscd --invalidate hosts"
];
};
@@ -79,7 +79,7 @@ in
# its pid. So wait until it's ready.
postStart =
''
- while ! ${pkgs.glibc}/sbin/nscd -g -f ${cfgFile} > /dev/null; do
+ while ! ${pkgs.glibc.bin}/sbin/nscd -g -f ${cfgFile} > /dev/null; do
sleep 0.2
done
'';
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 7718a721763cb..c2220cb0cff7a 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -113,21 +113,21 @@ in
#include
#include
- ${pkgs.glibc}/lib/*.so mr,
- ${pkgs.libevent}/lib/libevent*.so* mr,
- ${pkgs.curl}/lib/libcurl*.so* mr,
- ${pkgs.openssl}/lib/libssl*.so* mr,
- ${pkgs.openssl}/lib/libcrypto*.so* mr,
- ${pkgs.zlib}/lib/libz*.so* mr,
- ${pkgs.libssh2}/lib/libssh2*.so* mr,
+ ${pkgs.glibc.out}/lib/*.so mr,
+ ${pkgs.libevent.out}/lib/libevent*.so* mr,
+ ${pkgs.curl.out}/lib/libcurl*.so* mr,
+ ${pkgs.openssl.out}/lib/libssl*.so* mr,
+ ${pkgs.openssl.out}/lib/libcrypto*.so* mr,
+ ${pkgs.zlib.out}/lib/libz*.so* mr,
+ ${pkgs.libssh2.out}/lib/libssh2*.so* mr,
${pkgs.systemd}/lib/libsystemd*.so* mr,
- ${pkgs.xz}/lib/liblzma*.so* mr,
- ${pkgs.libgcrypt}/lib/libgcrypt*.so* mr,
- ${pkgs.libgpgerror}/lib/libgpg-error*.so* mr,
- ${pkgs.libnghttp2}/lib/libnghttp2*.so* mr,
- ${pkgs.c-ares}/lib/libcares*.so* mr,
- ${pkgs.libcap}/lib/libcap*.so* mr,
- ${pkgs.attr}/lib/libattr*.so* mr,
+ ${pkgs.xz.out}/lib/liblzma*.so* mr,
+ ${pkgs.libgcrypt.out}/lib/libgcrypt*.so* mr,
+ ${pkgs.libgpgerror.out}/lib/libgpg-error*.so* mr,
+ ${pkgs.libnghttp2.out}/lib/libnghttp2*.so* mr,
+ ${pkgs.c-ares.out}/lib/libcares*.so* mr,
+ ${pkgs.libcap.out}/lib/libcap*.so* mr,
+ ${pkgs.attr.out}/lib/libattr*.so* mr,
${pkgs.lz4}/lib/liblz4*.so* mr,
@{PROC}/sys/kernel/random/uuid r,
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index fdbd61c85e653..7953729c00cd8 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -6,13 +6,13 @@ let
mainCfg = config.services.httpd;
- httpd = mainCfg.package;
+ httpd = mainCfg.package.out;
version24 = !versionOlder httpd.version "2.4";
httpdConf = mainCfg.configFile;
- php = pkgs.php.override { apacheHttpd = httpd; };
+ php = pkgs.php.override { apacheHttpd = httpd.dev; /* otherwise it only gets .out */ };
getPort = cfg: if cfg.port != 0 then cfg.port else if cfg.enableSSL then 443 else 80;
diff --git a/nixos/modules/services/web-servers/apache-httpd/owncloud.nix b/nixos/modules/services/web-servers/apache-httpd/owncloud.nix
index a9ec20ae84716..94e85f1f42890 100644
--- a/nixos/modules/services/web-servers/apache-httpd/owncloud.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/owncloud.nix
@@ -333,7 +333,7 @@ let
'version' => '${config.package.version}',
- 'openssl' => '${pkgs.openssl}/bin/openssl'
+ 'openssl' => '${pkgs.openssl.bin}/bin/openssl'
);
diff --git a/nixos/modules/services/web-servers/apache-httpd/phabricator.nix b/nixos/modules/services/web-servers/apache-httpd/phabricator.nix
index e4e3aac8d411a..efd4a7b5f0fb9 100644
--- a/nixos/modules/services/web-servers/apache-httpd/phabricator.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/phabricator.nix
@@ -39,7 +39,7 @@ in {
"${pkgs.diffutils}"
] ++
(if config.mercurial then ["${pkgs.mercurial}"] else []) ++
- (if config.subversion then ["${pkgs.subversion}"] else []) ++
+ (if config.subversion then ["${pkgs.subversion.out}"] else []) ++
(if config.git then ["${pkgs.git}"] else []);
startupScript = pkgs.writeScript "activatePhabricator" ''
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index be7700424bc64..b112fc2422a76 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -166,7 +166,7 @@ in {
};
environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules"
- "${gnome3.glib_networking}/lib/gio/modules"
+ "${gnome3.glib_networking.out}/lib/gio/modules"
"${gnome3.gvfs}/lib/gio/modules" ];
environment.systemPackages = gnome3.corePackages ++ cfg.sessionPath
++ (removePackagesByName gnome3.optionalPackages config.environment.gnome3.excludePackages);
diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix
index 71361bae82dc2..4f74d5732af55 100644
--- a/nixos/modules/services/x11/desktop-managers/kde5.nix
+++ b/nixos/modules/services/x11/desktop-managers/kde5.nix
@@ -62,13 +62,13 @@ in
${config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
''}
- exec ${kde5.plasma-workspace}/bin/startkde
+ exec startkde
'';
};
security.setuidOwners = singleton {
program = "kcheckpass";
- source = "${kde5.plasma-workspace}/lib/libexec/kcheckpass";
+ source = "${kde5.plasma-workspace.out}/lib/libexec/kcheckpass";
owner = "root";
group = "root";
setuid = true;
@@ -171,12 +171,12 @@ in
# Enable GTK applications to load SVG icons
environment.variables = mkIf (lib.hasAttr "breeze-icons" kde5) {
- GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
+ GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
};
fonts.fonts = [ (kde5.oxygen-fonts or pkgs.noto-fonts) ];
- programs.ssh.askPassword = "${kde5.ksshaskpass}/bin/ksshaskpass";
+ programs.ssh.askPassword = "${kde5.ksshaskpass.out}/bin/ksshaskpass";
# Enable helpful DBus services.
services.udisks2.enable = true;
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 7dffdfc2b36cf..be634fc259a2b 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -45,7 +45,7 @@ let
${optionalString cfg.startDbusSession ''
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
- exec ${pkgs.dbus.tools}/bin/dbus-launch --exit-with-session "$0" "$sessionType"
+ exec ${pkgs.dbus.dbus-launch} --exit-with-session "$0" "$sessionType"
fi
''}
@@ -55,11 +55,11 @@ let
# Start PulseAudio if enabled.
${optionalString (config.hardware.pulseaudio.enable) ''
${optionalString (!config.hardware.pulseaudio.systemWide)
- "${config.hardware.pulseaudio.package}/bin/pulseaudio --start"
+ "${config.hardware.pulseaudio.package.out}/bin/pulseaudio --start"
}
# Publish access credentials in the root window.
- ${config.hardware.pulseaudio.package}/bin/pactl load-module module-x11-publish "display=$DISPLAY"
+ ${config.hardware.pulseaudio.package.out}/bin/pactl load-module module-x11-publish "display=$DISPLAY"
''}
# Tell systemd about our $DISPLAY. This is needed by the
@@ -275,7 +275,7 @@ in
};
config = {
- services.xserver.displayManager.xserverBin = "${xorg.xorgserver}/bin/X";
+ services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X";
};
imports = [
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
index f5b6c20c5a05b..543dd628ce666 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
@@ -24,9 +24,9 @@ let
# This wrapper ensures that we actually get themes
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
$out/greeter \
- --prefix PATH : "${pkgs.glibc}/bin" \
- --set GDK_PIXBUF_MODULE_FILE "${pkgs.gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
- --set GTK_PATH "${theme}:${pkgs.gtk3}" \
+ --prefix PATH : "${pkgs.glibc.bin}/bin" \
+ --set GDK_PIXBUF_MODULE_FILE "${pkgs.gdk_pixbuf.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
+ --set GTK_PATH "${theme}:${pkgs.gtk3.out}" \
--set GTK_EXE_PREFIX "${theme}" \
--set GTK_DATA_PREFIX "${theme}" \
--set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index 4d61afe0eaeb8..7a17a222bcab1 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -48,7 +48,7 @@ let
[XDisplay]
MinimumVT=${toString xcfg.tty}
ServerPath=${xserverWrapper}
- XephyrPath=${pkgs.xorg.xorgserver}/bin/Xephyr
+ XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr
SessionCommand=${dmcfg.session.script}
SessionDir=${dmcfg.session.desktops}
XauthPath=${pkgs.xorg.xauth}/bin/xauth
diff --git a/nixos/modules/services/x11/terminal-server.nix b/nixos/modules/services/x11/terminal-server.nix
index 4d5dbd604159c..09d0ab0775150 100644
--- a/nixos/modules/services/x11/terminal-server.nix
+++ b/nixos/modules/services/x11/terminal-server.nix
@@ -41,7 +41,7 @@ with lib;
{ description = "Terminal Server";
path =
- [ pkgs.xorgserver pkgs.gawk pkgs.which pkgs.openssl pkgs.xorg.xauth
+ [ pkgs.xorgserver.out pkgs.gawk pkgs.which pkgs.openssl pkgs.xorg.xauth
pkgs.nettools pkgs.shadow pkgs.procps pkgs.utillinux pkgs.bash
];
diff --git a/nixos/modules/services/x11/window-managers/metacity.nix b/nixos/modules/services/x11/window-managers/metacity.nix
index 3e5229be634f1..2957ad91be453 100644
--- a/nixos/modules/services/x11/window-managers/metacity.nix
+++ b/nixos/modules/services/x11/window-managers/metacity.nix
@@ -20,7 +20,7 @@ in
services.xserver.windowManager.session = singleton
{ name = "metacity";
start = ''
- env LD_LIBRARY_PATH=${xorg.libX11}/lib:${xorg.libXext}/lib:/usr/lib/
+ env LD_LIBRARY_PATH=${xorg.libX11.out}/lib:${xorg.libXext.out}/lib:/usr/lib/
# !!! Hack: load the schemas for Metacity.
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
--makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas # */
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index ff44963c94fa2..dcf9f820f59c2 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -456,7 +456,7 @@ in
]);
environment.systemPackages =
- [ xorg.xorgserver
+ [ xorg.xorgserver.out
xorg.xrandr
xorg.xrdb
xorg.setxkbmap
@@ -494,7 +494,7 @@ in
XKB_BINDIR = "${xorg.xkbcomp}/bin"; # Needed for the Xkb extension.
XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
LD_LIBRARY_PATH = concatStringsSep ":" (
- [ "${xorg.libX11}/lib" "${xorg.libXext}/lib" ]
+ [ "${xorg.libX11.out}/lib" "${xorg.libXext.out}/lib" ]
++ concatLists (catAttrs "libPath" cfg.drivers));
} // cfg.displayManager.job.environment;
@@ -525,7 +525,7 @@ in
services.xserver.modules =
concatLists (catAttrs "modules" cfg.drivers) ++
- [ xorg.xorgserver
+ [ xorg.xorgserver.out
xorg.xf86inputevdev
];
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 854fa2f40b692..9d61d64f7553a 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -12,7 +12,8 @@ let
'';
});
- path =
+ path = map # outputs TODO?
+ (pkg: (pkg.bin or (pkg.out or pkg)))
[ pkgs.coreutils pkgs.gnugrep pkgs.findutils
pkgs.glibc # needed for getent
pkgs.shadow
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 59bff5472e844..77a82547031a1 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -436,9 +436,9 @@ in
${optionalString luks.yubikeySupport ''
copy_bin_and_libs ${pkgs.ykpers}/bin/ykchalresp
copy_bin_and_libs ${pkgs.ykpers}/bin/ykinfo
- copy_bin_and_libs ${pkgs.openssl}/bin/openssl
+ copy_bin_and_libs ${pkgs.openssl.bin}/bin/openssl
- cc -O3 -I${pkgs.openssl}/include -L${pkgs.openssl}/lib ${./pbkdf2-sha512.c} -o pbkdf2-sha512 -lcrypto
+ cc -O3 -I${pkgs.openssl}/include -L${pkgs.openssl.out}/lib ${./pbkdf2-sha512.c} -o pbkdf2-sha512 -lcrypto
strip -s pbkdf2-sha512
copy_bin_and_libs pbkdf2-sha512
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 7b13a305f0355..7e84dd2047731 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -80,7 +80,7 @@ let
${config.boot.initrd.extraUtilsCommands}
# Copy ld manually since it isn't detected correctly
- cp -pv ${pkgs.glibc}/lib/ld*.so.? $out/lib
+ cp -pv ${pkgs.glibc.out}/lib/ld*.so.? $out/lib
# Copy all of the needed libraries for the binaries
for BIN in $(find $out/{bin,sbin} -type f); do
diff --git a/nixos/modules/system/boot/stage-2.nix b/nixos/modules/system/boot/stage-2.nix
index c0ef4e02d1ffa..b67f42a017e69 100644
--- a/nixos/modules/system/boot/stage-2.nix
+++ b/nixos/modules/system/boot/stage-2.nix
@@ -7,11 +7,14 @@ let
kernel = config.boot.kernelPackages.kernel;
activateConfiguration = config.system.activationScripts.script;
- readonlyMountpoint = pkgs.runCommand "readonly-mountpoint" {} ''
- mkdir -p $out/bin
- cc -O3 ${./readonly-mountpoint.c} -o $out/bin/readonly-mountpoint
- strip -s $out/bin/readonly-mountpoint
- '';
+ readonlyMountpoint = pkgs.stdenv.mkDerivation {
+ name = "readonly-mountpoint";
+ unpackPhase = "true";
+ installPhase = ''
+ mkdir -p $out/bin
+ cc -O3 ${./readonly-mountpoint.c} -o $out/bin/readonly-mountpoint
+ '';
+ };
bootStage2 = pkgs.substituteAll {
src = ./stage-2-init.sh;
diff --git a/nixos/modules/tasks/filesystems/unionfs-fuse.nix b/nixos/modules/tasks/filesystems/unionfs-fuse.nix
index 3e38bffa3ba2c..1dcc4c87e3cec 100644
--- a/nixos/modules/tasks/filesystems/unionfs-fuse.nix
+++ b/nixos/modules/tasks/filesystems/unionfs-fuse.nix
@@ -18,9 +18,9 @@
boot.initrd.postDeviceCommands = ''
# Hacky!!! fuse hard-codes the path to mount
- mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}/bin
- ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}/bin
- ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}/bin
+ mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
+ ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
+ ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
'';
})
diff --git a/nixos/modules/tasks/filesystems/xfs.nix b/nixos/modules/tasks/filesystems/xfs.nix
index d7c3930f4a3c0..c6a90bcf1a518 100644
--- a/nixos/modules/tasks/filesystems/xfs.nix
+++ b/nixos/modules/tasks/filesystems/xfs.nix
@@ -11,13 +11,13 @@ in
{
config = mkIf (any (fs: fs == "xfs") config.boot.supportedFilesystems) {
- system.fsPackages = [ pkgs.xfsprogs ];
+ system.fsPackages = [ pkgs.xfsprogs.bin ];
boot.initrd.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
boot.initrd.extraUtilsCommands = mkIf inInitrd
''
- copy_bin_and_libs ${pkgs.xfsprogs}/sbin/fsck.xfs
+ copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/fsck.xfs
'';
# Trick just to set 'sh' after the extraUtils nuke-refs.
diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix
index a025aee7cfeb6..9733bd6fac462 100644
--- a/nixos/modules/virtualisation/virtualbox-guest.nix
+++ b/nixos/modules/virtualisation/virtualbox-guest.nix
@@ -66,7 +66,7 @@ in
services.xserver.displayManager.sessionCommands =
''
- PATH=${makeSearchPath "bin" [ pkgs.gnugrep pkgs.which pkgs.xorg.xorgserver ]}:$PATH \
+ PATH=${makeSearchPath "bin" [ pkgs.gnugrep pkgs.which pkgs.xorg.xorgserver.out ]}:$PATH \
${kernel.virtualboxGuestAdditions}/bin/VBoxClient-all
'';
diff --git a/nixos/tests/cadvisor.nix b/nixos/tests/cadvisor.nix
index 1644cb856cece..c55b08c0e9249 100644
--- a/nixos/tests/cadvisor.nix
+++ b/nixos/tests/cadvisor.nix
@@ -14,7 +14,7 @@ import ./make-test.nix ({ pkgs, ... } : {
services.cadvisor.storageDriver = "influxdb";
services.influxdb.enable = true;
systemd.services.influxdb.postStart = mkAfter ''
- ${pkgs.curl}/bin/curl -X POST 'http://localhost:8086/db?u=root&p=root' \
+ ${pkgs.curl.bin}/bin/curl -X POST 'http://localhost:8086/db?u=root&p=root' \
-d '{"name": "root"}'
'';
};
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 05c3f267eb931..48d5fecad9213 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -108,8 +108,8 @@ let
$machine->waitUntilSucceeds("cat /proc/swaps | grep -q /dev");
# Check whether the channel works.
- $machine->succeed("nix-env -iA nixos.coreutils >&2");
- $machine->succeed("type -tP ls | tee /dev/stderr") =~ /.nix-profile/
+ $machine->succeed("nix-env -iA nixos.procps >&2");
+ $machine->succeed("type -tP ps | tee /dev/stderr") =~ /.nix-profile/
or die "nix-env failed";
# We need to a writable nix-store on next boot.
diff --git a/pkgs/applications/altcoins/bitcoin-xt.nix b/pkgs/applications/altcoins/bitcoin-xt.nix
index 9b86bf2b3d5af..e678d6e4acb39 100644
--- a/pkgs/applications/altcoins/bitcoin-xt.nix
+++ b/pkgs/applications/altcoins/bitcoin-xt.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec{
configureFlags = [
"--with-boost-libdir=${boost.lib}/lib"
- "--with-libcurl-headers=${curl}/include"
+ "--with-libcurl-headers=${curl.dev}/include"
] ++ optionals withGui [ "--with-gui=qt4" ];
meta = {
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 3d44dd872c782..9f047a600cbdf 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
# have to do that ourself.
patchPhase = ''
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
- sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
+ sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
patchShebangs ./tools/
'';
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 627d68525b9b5..afa8a94d200d4 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
sha256 = "19fr674mw844zmkp1476yigkcnmb6zyn78av64ccdwi3p68i00rf";
})];
+ # fix with gcc-5 from http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2012-December/245884.html
+ postPatch = ''
+ substituteInPlace lib-src/libnyquist/nyquist/ffts/src/fftlib.c \
+ --replace 'inline void' 'static inline void'
+ '';
+
preConfigure = /* we prefer system-wide libs */ ''
mv lib-src lib-src-rm
mkdir lib-src
diff --git a/pkgs/applications/audio/baudline/default.nix b/pkgs/applications/audio/baudline/default.nix
index 543329ef679b1..2d6b0434d6a1c 100644
--- a/pkgs/applications/audio/baudline/default.nix
+++ b/pkgs/applications/audio/baudline/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
cp -r . "$out/libexec/baudline/"
- interpreter="$(echo ${stdenv.glibc}/lib/ld-linux*)"
+ interpreter="$(echo ${stdenv.glibc.out}/lib/ld-linux*)"
for prog in "$out"/libexec/baudline/baudline*; do
patchelf --interpreter "$interpreter" "$prog"
ln -sr "$prog" "$out/bin/"
diff --git a/pkgs/applications/audio/caudec/default.nix b/pkgs/applications/audio/caudec/default.nix
index 978dd27facdb7..d84ff702ce872 100644
--- a/pkgs/applications/audio/caudec/default.nix
+++ b/pkgs/applications/audio/caudec/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
postFixup = ''
for executable in $(cd $out/bin && ls); do
wrapProgram $out/bin/$executable \
- --prefix PATH : "${bc}/bin:${findutils}/bin:${sox}/bin:${procps}/bin:${opusTools}/bin:${lame}/bin:${flac}/bin"
+ --prefix PATH : "${bc}/bin:${findutils}/bin:${sox}/bin:${procps}/bin:${opusTools}/bin:${lame}/bin:${flac.bin}/bin"
done
'';
diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix
index 18fb48a17ba1d..80e4e49fb1830 100644
--- a/pkgs/applications/audio/flac/default.nix
+++ b/pkgs/applications/audio/flac/default.nix
@@ -8,12 +8,12 @@ stdenv.mkDerivation rec {
sha256 = "4773c0099dba767d963fd92143263be338c48702172e8754b9bc5103efe1c56c";
};
- outputs = [ "out" "doc" ];
-
buildInputs = [ libogg ];
#doCheck = true; # takes lots of time
+ outputs = [ "dev" "out" "bin" "doc" ];
+
meta = with stdenv.lib; {
homepage = http://xiph.org/flac/;
description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
diff --git a/pkgs/applications/audio/google-musicmanager/default.nix b/pkgs/applications/audio/google-musicmanager/default.nix
index f86513659b647..72bec52b2663a 100644
--- a/pkgs/applications/audio/google-musicmanager/default.nix
+++ b/pkgs/applications/audio/google-musicmanager/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
buildPhase = ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "$out/opt/google/musicmanager:${readline}/lib:${ncurses}/lib:${stdenv.cc.libc}/lib:${qt48}/lib:${stdenv.cc.cc}/lib:${libidn}/lib:${expat}/lib:${flac}/lib:${libvorbis}/lib" opt/google/musicmanager/MusicManager
+ --set-rpath "$out/opt/google/musicmanager:${stdenv.lib.makeLibraryPath [ readline ncurses stdenv.cc.libc.out qt48 stdenv.cc.cc libidn expat flac libvorbis ]}" opt/google/musicmanager/MusicManager
'';
dontPatchELF = true;
diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix
index 8bc0aebba5a84..f22ccd08a8e87 100644
--- a/pkgs/applications/audio/milkytracker/default.nix
+++ b/pkgs/applications/audio/milkytracker/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
'';
preBuild=''
- export CPATH=${zlib}/lib
+ export CPATH=${zlib.out}/lib
'';
buildInputs = [ SDL alsaLib autoconf automake libjack2 perl zlib zziplib ];
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index d8fdd2b9415ed..00e841e7009e1 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -1,6 +1,6 @@
{ fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf
-, libgcrypt, udev, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }:
+, libgcrypt, libudev, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }:
assert stdenv.system == "x86_64-linux";
@@ -27,7 +27,7 @@ let
nss
pango
stdenv.cc.cc
- udev
+ libudev
xorg.libX11
xorg.libXcomposite
xorg.libXcursor
@@ -68,10 +68,10 @@ stdenv.mkDerivation {
# Work around Spotify referring to a specific minor version of
# OpenSSL.
- ln -s ${openssl}/lib/libssl.so $libdir/libssl.so.1.0.0
- ln -s ${openssl}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
- ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so
- ln -s ${nspr}/lib/libplc4.so $libdir/libplc4.so
+ ln -s ${openssl.out}/lib/libssl.so $libdir/libssl.so.1.0.0
+ ln -s ${openssl.out}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
+ ln -s ${nspr.out}/lib/libnspr4.so $libdir/libnspr4.so
+ ln -s ${nspr.out}/lib/libplc4.so $libdir/libplc4.so
rpath="$out/share/spotify:$libdir"
diff --git a/pkgs/applications/audio/swh-lv2/default.nix b/pkgs/applications/audio/swh-lv2/default.nix
index 2955a9371ff6f..4bc7801637c6d 100644
--- a/pkgs/applications/audio/swh-lv2/default.nix
+++ b/pkgs/applications/audio/swh-lv2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
};
patchPhase = ''
- sed -e "s#xsltproc#${libxslt}/bin/xsltproc#" -i Makefile
+ sed -e "s#xsltproc#${libxslt.bin}/bin/xsltproc#" -i Makefile
sed -e "s#PREFIX = /usr/local#PREFIX = $out#" -i Makefile
'';
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 9cc7f3f1fc85d..ab7eb10798d7d 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
preConfigure = "cd src";
- cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc}/lib/libm.so -DCMAKE_INSTALL_DATAROOTDIR=$out" ];
+ cmakeFlags = [ "-DFLTK_MATH_LIBRARY=${stdenv.glibc.out}/lib/libm.so -DCMAKE_INSTALL_DATAROOTDIR=$out" ];
meta = with stdenv.lib; {
description = "high quality software synthesizer based on ZynAddSubFX";
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index e4f68d786f403..8e1812ec013ba 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ lndir makeQtWrapper ];
buildInputs = [ unwrapped ] ++ themes;
- inherit themes;
+ themes = map (pkg: pkg.out or pkg) themes;
inherit unwrapped;
installPhase = ''
@@ -81,7 +81,7 @@ stdenv.mkDerivation {
mkdir -p "$out/share/sddm"
for pkg in $unwrapped $themes; do
local sddmDir="$pkg/share/sddm"
- if [[ -d "$sddmDir" ]]; then
+ if [ -d "$sddmDir" ]; then
lndir -silent "$sddmDir" "$out/share/sddm"
fi
done
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix
index 8020ecb12a556..62b1a9c2f696c 100644
--- a/pkgs/applications/display-managers/slim/default.nix
+++ b/pkgs/applications/display-managers/slim/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
-, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs }:
+, fontconfig, freetype, pam, dbus_libs, makeWrapper }:
stdenv.mkDerivation rec {
name = "slim-1.3.6";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
buildInputs =
[ cmake pkgconfig libjpeg libpng fontconfig freetype
- pam dbus_libs
+ pam dbus_libs (stdenv.cc.libc.out or null)
xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
];
diff --git a/pkgs/applications/editors/brackets/default.nix b/pkgs/applications/editors/brackets/default.nix
index 131675486bada..127ed981a6c85 100644
--- a/pkgs/applications/editors/brackets/default.nix
+++ b/pkgs/applications/editors/brackets/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, buildEnv, gtk, glib, gdk_pixbuf, alsaLib, nss, nspr, gconf
-, cups, libgcrypt_1_5, makeWrapper, dbus, udev }:
+, cups, libgcrypt_1_5, libudev, makeWrapper, dbus }:
let
bracketsEnv = buildEnv {
name = "env-brackets";
paths = [
gtk glib gdk_pixbuf stdenv.cc.cc alsaLib nss nspr gconf cups libgcrypt_1_5
- dbus udev
+ dbus libudev.out
];
};
in
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
rmdir $out/usr
ln -sf $out/opt/brackets/brackets $out/bin/brackets
- ln -s ${udev}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
+ ln -s ${libudev.out}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${bracketsEnv}/lib:${bracketsEnv}/lib64" \
diff --git a/pkgs/applications/editors/codeblocks/default.nix b/pkgs/applications/editors/codeblocks/default.nix
index 53b7b5750a047..76df6d4d2b999 100644
--- a/pkgs/applications/editors/codeblocks/default.nix
+++ b/pkgs/applications/editors/codeblocks/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches = [ ./writable-projects.patch ];
preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
- postConfigure = optionalString stdenv.isLinux "substituteInPlace libtool --replace ldconfig ${stdenv.cc.libc}/sbin/ldconfig";
+ postConfigure = optionalString stdenv.isLinux "substituteInPlace libtool --replace ldconfig ${stdenv.cc.libc.bin}/bin/ldconfig";
configureFlags = [ "--enable-pch=no" ]
++ optional contribPlugins "--with-contrib-plugins";
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index f4804c75ca3b5..e4eb6eb8f658f 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
, freetype, fontconfig, libX11, libXext, libXrender, zlib
, glib, gtk, libXtst, jdk
, webkitgtk2 ? null # for internal web browser
diff --git a/pkgs/applications/editors/edbrowse/default.nix b/pkgs/applications/editors/edbrowse/default.nix
index d969552ecde42..712ede2e316f0 100644
--- a/pkgs/applications/editors/edbrowse/default.nix
+++ b/pkgs/applications/editors/edbrowse/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
substituteInPlace src/ebjs.c --replace \"edbrowse-js\" \"$out/bin/edbrowse-js\"
'';
- NIX_CFLAGS_COMPILE = "-I${spidermonkey_24}/include/mozjs-24";
+ NIX_CFLAGS_COMPILE = "-I${spidermonkey_24.dev}/include/mozjs-24";
makeFlags = "-C src prefix=$(out)";
src = fetchurl {
diff --git a/pkgs/applications/editors/emacs-24/default.nix b/pkgs/applications/editors/emacs-24/default.nix
index ffa280d360c51..6359bd7bde182 100644
--- a/pkgs/applications/editors/emacs-24/default.nix
+++ b/pkgs/applications/editors/emacs-24/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
"--with-gif=no" "--with-tiff=no" ];
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
- "-I${cairo}/include/cairo";
+ "-I${cairo.dev}/include/cairo";
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/
diff --git a/pkgs/applications/editors/emacs-24/macport-24.5.nix b/pkgs/applications/editors/emacs-24/macport-24.5.nix
index c778c42de8576..23133ec262c39 100644
--- a/pkgs/applications/editors/emacs-24/macport-24.5.nix
+++ b/pkgs/applications/editors/emacs-24/macport-24.5.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
- "LDFLAGS=-L${ncurses}/lib"
+ "LDFLAGS=-L${ncurses.out}/lib"
"--with-xml2=yes"
"--with-gnutls=yes"
"--with-mac"
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
];
CFLAGS = "-O3";
- LDFLAGS = "-O3 -L${ncurses}/lib";
+ LDFLAGS = "-O3 -L${ncurses.out}/lib";
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/
diff --git a/pkgs/applications/editors/heme/default.nix b/pkgs/applications/editors/heme/default.nix
index 69ba674d2d49d..c74e47a5243de 100644
--- a/pkgs/applications/editors/heme/default.nix
+++ b/pkgs/applications/editors/heme/default.nix
@@ -10,10 +10,11 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace Makefile \
--replace "/usr/local" "$out" \
- --replace "CFLAGS = " "CFLAGS = -I${ncurses}/include " \
- --replace "LDFLAGS = " "LDFLAGS = -L${ncurses}/lib " \
+ --replace "CFLAGS = " "CFLAGS = -I${ncurses.dev}/include " \
+ --replace "LDFLAGS = " "LDFLAGS = -L${ncurses.out}/lib " \
--replace "-lcurses" "-lncurses"
'';
+ buildInputs = [ ncurses ];
preBuild = ''
mkdir -p $out/bin
mkdir -p $out/man/man1
diff --git a/pkgs/applications/editors/idea/common.nix b/pkgs/applications/editors/idea/common.nix
index 36f600c148605..fbe6210a39bac 100644
--- a/pkgs/applications/editors/idea/common.nix
+++ b/pkgs/applications/editors/idea/common.nix
@@ -37,7 +37,7 @@ with stdenv; lib.makeOverridable mkDerivation rec {
truncate --size=$size $fname
}
- interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
+ interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
if [ "${stdenv.system}" == "x86_64-linux" ]; then
target_size=$(get_file_size bin/fsnotifier64)
patchelf --set-interpreter "$interpreter" bin/fsnotifier64
diff --git a/pkgs/applications/editors/lighttable/default.nix b/pkgs/applications/editors/lighttable/default.nix
index 6bf5a1a9e6da6..9b87f13d623d6 100644
--- a/pkgs/applications/editors/lighttable/default.nix
+++ b/pkgs/applications/editors/lighttable/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, zlib, glib, alsaLib, makeDesktopItem
, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
-, cairo, cups, expat, libgpgerror, nspr, gnome3, nss, xorg, udev, libnotify
+, cairo, cups, expat, libgpgerror, nspr, gnome3, nss, xorg, libudev, libnotify
}:
let
@@ -45,9 +45,9 @@ stdenv.mkDerivation rec {
mv $out/share/LightTable/light $out/bin/light
- ln -s ${udev}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
+ ln -sf ${libudev.out}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
substituteInPlace $out/bin/light \
- --replace "/usr/lib/x86_64-linux-gnu" "${udev}/lib" \
+ --replace "/usr/lib/x86_64-linux-gnu" "${libudev.out}/lib" \
--replace "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
--replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
diff --git a/pkgs/applications/editors/music/tuxguitar/default.nix b/pkgs/applications/editors/music/tuxguitar/default.nix
index 768842a3875da..65ea62b33686a 100644
--- a/pkgs/applications/editors/music/tuxguitar/default.nix
+++ b/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
wrapProgram $out/bin/tuxguitar \
--set JAVA "${jdk}/bin/java" \
- --prefix LD_LIBRARY_PATH : "$out/lib/:${swt}/lib:${alsaLib}/lib" \
+ --prefix LD_LIBRARY_PATH : "$out/lib/:${swt}/lib:${alsaLib.out}/lib" \
--prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
'';
diff --git a/pkgs/applications/editors/sublime3/default.nix b/pkgs/applications/editors/sublime3/default.nix
index ad9fc056757f8..507dc611fd4fc 100644
--- a/pkgs/applications/editors/sublime3/default.nix
+++ b/pkgs/applications/editors/sublime3/default.nix
@@ -57,7 +57,7 @@ in let
--set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects}
# Without this, plugin_host crashes, even though it has the rpath
- wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.cc.cc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1:${openssl}/lib/libssl.so:${bzip2}/lib/libbz2.so
+ wrapProgram $out/plugin_host --prefix LD_PRELOAD : ${stdenv.cc.cc}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}/libgcc_s.so.1:${openssl.out}/lib/libssl.so:${bzip2.out}/lib/libbz2.so
'';
};
in stdenv.mkDerivation {
diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix
index e415239d76fb0..e51813459c6f5 100644
--- a/pkgs/applications/editors/texmacs/default.nix
+++ b/pkgs/applications/editors/texmacs/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
postFixup = ''
bin="$out/libexec/TeXmacs/bin/texmacs.bin"
rpath=$(patchelf --print-rpath "$bin")
- patchelf --set-rpath "$rpath:${zlib}/lib" "$bin"
+ patchelf --set-rpath "$rpath:${zlib.out}/lib" "$bin"
'';
meta = {
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index a41e1ad07d3c1..119125066bda0 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -70,7 +70,7 @@ let
# Help digiKam find libusb, otherwise gphoto2 support is disabled
cmakeFlags = [
- "-DLIBUSB_LIBRARIES=${libusb1}/lib"
+ "-DLIBUSB_LIBRARIES=${libusb1.out}/lib"
"-DLIBUSB_INCLUDE_DIR=${libusb1}/include/libusb-1.0"
"-DENABLE_BALOOSUPPORT=ON"
"-DENABLE_KDEPIMLIBSSUPPORT=ON"
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index 8602a9a04f853..39132bb9b6f87 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "0j5wxpqccnd0hl74z2vwv25n7qnik1n2mcm2jn0c0z7cjn4wsa9q";
};
+ outputs = [ "out" "doc" ];
+
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ xlibsWrapper imlib2 libjpeg libpng libXinerama curl libexif ];
@@ -17,7 +19,7 @@ stdenv.mkDerivation rec {
'';
postInstall = ''
- wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg}/bin" \
+ wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg.bin}/bin" \
--add-flags '--theme=feh'
'';
diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix
index 55e85fc5ec6bc..b09838656929a 100644
--- a/pkgs/applications/graphics/gimp/2.8.nix
+++ b/pkgs/applications/graphics/gimp/2.8.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
# "screenshot" needs this.
- NIX_LDFLAGS = "-rpath ${xorg.libX11}/lib"
+ NIX_LDFLAGS = "-rpath ${xorg.libX11.out}/lib"
+ stdenv.lib.optionalString stdenv.isDarwin " -lintl";
meta = {
diff --git a/pkgs/applications/graphics/seg3d/default.nix b/pkgs/applications/graphics/seg3d/default.nix
index 23a2d23b1ae16..d645a15b02eac 100644
--- a/pkgs/applications/graphics/seg3d/default.nix
+++ b/pkgs/applications/graphics/seg3d/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation {
patches = [ ./cstdio.patch ];
cmakeFlags = [
- "-DM_LIBRARY=${stdenv.glibc}/lib/libm.so"
- "-DDL_LIBRARY=${stdenv.glibc}/lib/libdl.so"
+ "-DM_LIBRARY=${stdenv.glibc.out}/lib/libm.so"
+ "-DDL_LIBRARY=${stdenv.glibc.out}/lib/libdl.so"
"-DBUILD_UTILS=1"
"-DBUILD_SEG3D=1"
"-DBUILD_DATAFLOW=0"
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index da8bbad33cad8..3238a3ba974d4 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/shotwell" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
--prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
'';
diff --git a/pkgs/applications/graphics/xfig/default.nix b/pkgs/applications/graphics/xfig/default.nix
index 9e53fe3efe2c6..ca1d5345fb6ac 100644
--- a/pkgs/applications/graphics/xfig/default.nix
+++ b/pkgs/applications/graphics/xfig/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
nativeBuildInputs = [ imake makeWrapper ];
- NIX_CFLAGS_COMPILE = "-I${libXpm}/include/X11";
+ NIX_CFLAGS_COMPILE = "-I${libXpm.dev}/include/X11";
patches =
let
diff --git a/pkgs/applications/misc/audio/soxr/default.nix b/pkgs/applications/misc/audio/soxr/default.nix
index 135ae47aa846e..941e1a393b158 100644
--- a/pkgs/applications/misc/audio/soxr/default.nix
+++ b/pkgs/applications/misc/audio/soxr/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0xf2w3piwz9gfr1xqyrj4k685q5dy53kq3igv663i4f4y4sg9rjl";
};
+ outputs = [ "out" "doc" ]; # headers are just two and very small
+
preConfigure = if stdenv.isDarwin then ''
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:"`pwd`/build/src
'' else ''
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index bae4c83fb2b38..7b789b3881de9 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -40,11 +40,11 @@ stdenv.mkDerivation rec {
installPhase = ''
export HOME=$TMPDIR/fakehome
export POPPLER_INC_DIR=${poppler_utils}/include/poppler
- export POPPLER_LIB_DIR=${poppler_utils}/lib
+ export POPPLER_LIB_DIR=${poppler_utils.out}/lib
export MAGICK_INC=${imagemagick}/include/ImageMagick
export MAGICK_LIB=${imagemagick}/lib
- export FC_INC_DIR=${fontconfig}/include/fontconfig
- export FC_LIB_DIR=${fontconfig}/lib
+ export FC_INC_DIR=${fontconfig.dev}/include/fontconfig
+ export FC_LIB_DIR=${fontconfig.lib}/lib
export PODOFO_INC_DIR=${podofo}/include/podofo
export PODOFO_LIB_DIR=${podofo}/lib
export SIP_BIN=${sip_4_16}/bin/sip
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
for a in $out/bin/*; do
wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
- --prefix PATH : ${poppler_utils}/bin
+ --prefix PATH : ${poppler_utils.out}/bin
done
'';
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index b0f89cc5ea036..910b24358b484 100644
--- a/pkgs/applications/misc/djvulibre/default.nix
+++ b/pkgs/applications/misc/djvulibre/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
};
+ outputs = [ "dev" "out" "bin" ];
+
buildInputs = [ libjpeg libtiff librsvg ] ++ libintlOrEmpty;
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index c398c3c43d00d..651c74b2d2176 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
postFixup = ''
wrapProgram "$out/bin/dunst" \
- --prefix PATH : '${dbus_daemon}/bin'
+ --prefix PATH : '${dbus_daemon.out}/bin'
'';
meta = {
diff --git a/pkgs/applications/misc/get_iplayer/default.nix b/pkgs/applications/misc/get_iplayer/default.nix
index 488a9a3732e21..e6ca8d207e893 100644
--- a/pkgs/applications/misc/get_iplayer/default.nix
+++ b/pkgs/applications/misc/get_iplayer/default.nix
@@ -17,7 +17,7 @@ buildPerlPackage {
installPhase = ''
mkdir -p $out/bin
cp get_iplayer $out/bin
- wrapProgram $out/bin/get_iplayer --suffix PATH : ${ffmpeg}/bin:${flvstreamer}/bin:${vlc}/bin:${rtmpdump}/bin --prefix PERL5LIB : $PERL5LIB
+ wrapProgram $out/bin/get_iplayer --suffix PATH : ${ffmpeg.bin}/bin:${flvstreamer}/bin:${vlc}/bin:${rtmpdump}/bin --prefix PERL5LIB : $PERL5LIB
'';
src = fetchurl {
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index 0b721b562b533..cfa38a118614d 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig gtk gettext ];
makeFlags = [ "PREFIX=$(out)" ]
- ++ optional withBuildColors "TPUT=${ncurses}/bin/tput"
+ ++ optional withBuildColors "TPUT=${ncurses.out}/bin/tput"
++ optional (!withBuildColors) "TPUT_AVAILABLE=0"
;
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index 1f78355ca3a1a..3e35b7bde4b84 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation {
${lib.optionalString bazaarSupport ''--prefix PATH : ${bazaar}/bin \''}
${lib.optionalString cvsSupport ''--prefix PATH : ${cvs}/bin \''}
${lib.optionalString cvsSupport ''--prefix PATH : ${cvsps}/bin \''}
- ${lib.optionalString subversionSupport ''--prefix PATH : ${subversion}/bin \''}
+ ${lib.optionalString subversionSupport ''--prefix PATH : ${subversion.out}/bin \''}
${lib.optionalString mercurialSupport ''--prefix PATH : ${mercurial}/bin \''}
${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils}
done
diff --git a/pkgs/applications/misc/kiwix/default.nix b/pkgs/applications/misc/kiwix/default.nix
index aa8492544dcc1..3de37fdbf207c 100644
--- a/pkgs/applications/misc/kiwix/default.nix
+++ b/pkgs/applications/misc/kiwix/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
make install
cp -r src/dependencies/xulrunner $out/lib/kiwix
- patchelf --set-interpreter ${glibc}/lib/ld-linux${optionalString (stdenv.system == "x86_64-linux") "-x86-64"}.so.2 $out/lib/kiwix/xulrunner/xulrunner
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux${optionalString (stdenv.system == "x86_64-linux") "-x86-64"}.so.2 $out/lib/kiwix/xulrunner/xulrunner
rm $out/bin/kiwix
makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
diff --git a/pkgs/applications/misc/monero/default.nix b/pkgs/applications/misc/monero/default.nix
index e7829be03647e..1fa5d1a28d57a 100644
--- a/pkgs/applications/misc/monero/default.nix
+++ b/pkgs/applications/misc/monero/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
checkTarget = "test-release"; # this would be the target
installPhase = ''
- installBin \
+ install -Dt "$out/bin/" \
src/bitmonerod \
src/connectivity_tool \
src/simpleminer \
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index 16a20015c6295..056edd801c074 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
mysql.lib paramiko pcre pexpect pkgconfig pycrypto python sqlite ];
preConfigure = ''
- substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "catchsegv" "${glibc}/bin/catchsegv"
+ substituteInPlace $(pwd)/frontend/linux/workbench/mysql-workbench.in --replace "catchsegv" "${glibc.bin}/bin/catchsegv"
'';
postInstall = ''
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
index 3e972f672cc25..25c9048809237 100644
--- a/pkgs/applications/misc/nut/default.nix
+++ b/pkgs/applications/misc/nut/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
- "$out/lib:${neon}/lib:${libusb}/lib:${avahi}/lib:${freeipmi}/lib"
+ "$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib"
'';
meta = {
diff --git a/pkgs/applications/misc/pdfmod/default.nix b/pkgs/applications/misc/pdfmod/default.nix
index 23781d63664c5..24a0a8c69675c 100644
--- a/pkgs/applications/misc/pdfmod/default.nix
+++ b/pkgs/applications/misc/pdfmod/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
--prefix LD_LIBRARY_PATH : ${gnome-sharp}/lib \
--prefix LD_LIBRARY_PATH : ${gtk-sharp.gtk}/lib \
--prefix LD_LIBRARY_PATH : ${gnome3.gconf}/lib \
- --prefix LD_LIBRARY_PATH : ${poppler}/lib
+ --prefix LD_LIBRARY_PATH : ${poppler.out}/lib
'';
dontStrip = true;
diff --git a/pkgs/applications/misc/pinfo/default.nix b/pkgs/applications/misc/pinfo/default.nix
index 658ff410d3790..222dddc0e8974 100644
--- a/pkgs/applications/misc/pinfo/default.nix
+++ b/pkgs/applications/misc/pinfo/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
buildInputs = [ autoreconfHook gettext texinfo ncurses readline ];
- configureFlags = [ "--with-curses=${ncurses}" "--with-readline=${readline}" ];
+ configureFlags = [ "--with-curses=${ncurses.dev}" "--with-readline=${readline}" ];
meta = with stdenv.lib; {
description = "A viewer for info files";
diff --git a/pkgs/applications/misc/roxterm/default.nix b/pkgs/applications/misc/roxterm/default.nix
index ad7de90cad631..93ee6470b7c3d 100644
--- a/pkgs/applications/misc/roxterm/default.nix
+++ b/pkgs/applications/misc/roxterm/default.nix
@@ -24,9 +24,9 @@ in stdenv.mkDerivation rec {
propagatedBuildInputs =
[ dbus_libs dbus_glib gdk_pixbuf gettext gsettings_desktop_schemas gtk2 gtk3 hicolor_icon_theme vte ];
- NIX_CFLAGS_COMPILE = [ "-I${dbus_glib}/include/dbus-1.0"
- "-I${dbus_libs}/include/dbus-1.0"
- "-I${dbus_libs}/lib/dbus-1.0/include" ];
+ NIX_CFLAGS_COMPILE = [ "-I${dbus_glib.dev}/include/dbus-1.0"
+ "-I${dbus_libs.dev}/include/dbus-1.0"
+ "-I${dbus_libs.lib}/lib/dbus-1.0/include" ];
# Fix up python path so the lockfile library is on it.
PYTHONPATH = stdenv.lib.makeSearchPath "lib/${pythonFull.libPrefix}/site-packages" [
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
buildPhase = ''
# Fix up the LD_LIBRARY_PATH so that expat is on it
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${expat}/lib"
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${expat.out}/lib"
python mscript.py configure --prefix="$out"
python mscript.py build
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index 63a8d6cf7897a..68dd69f385d9f 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -48,7 +48,7 @@ let
cp "${sweethome3dItem}/share/applications/"* $out/share/applications
makeWrapper ${jre}/bin/java $out/bin/$exec \
- --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
--add-flags "-jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar ${if stdenv.system == "x86_64-linux" then "-d64" else "-d32"}"
'';
diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix
index da038a6938136..61b47dcdd2ad3 100644
--- a/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/pkgs/applications/misc/sweethome3d/editors.nix
@@ -42,7 +42,7 @@ let
cp ${module}-${version}.jar $out/share/java/.
cp "${editorItem}/share/applications/"* $out/share/applications
makeWrapper ${jre}/bin/java $out/bin/$exec \
- --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
--add-flags "-jar $out/share/java/${module}-${version}.jar ${if stdenv.system == "x86_64-linux" then "-d64" else "-d32"}"
'';
diff --git a/pkgs/applications/misc/tilda/default.nix b/pkgs/applications/misc/tilda/default.nix
index bf99f0f5f6517..43b7312cda64e 100644
--- a/pkgs/applications/misc/tilda/default.nix
+++ b/pkgs/applications/misc/tilda/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig autoreconfHook gettext confuse vte gtk makeWrapper ];
- LD_LIBRARY_PATH = "${expat}/lib"; # ugly hack for xgettext to work during build
+ LD_LIBRARY_PATH = "${expat.out}/lib"; # ugly hack for xgettext to work during build
# The config locking scheme relies on the binary being called "tilda",
# (`pgrep -C tilda`), so a simple `wrapProgram` won't suffice:
diff --git a/pkgs/applications/misc/udevil/default.nix b/pkgs/applications/misc/udevil/default.nix
index 75c02d3ba6ddf..8ce683ec9088e 100644
--- a/pkgs/applications/misc/udevil/default.nix
+++ b/pkgs/applications/misc/udevil/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
--with-mount-prog=${utillinux}/bin/mount \
--with-umount-prog=${utillinux}/bin/umount \
--with-losetup-prog=${utillinux}/bin/losetup \
- --with-setfacl-prog=${acl}/bin/setfacl \
+ --with-setfacl-prog=${acl.bin}/bin/setfacl \
--sysconfdir=$prefix/etc
'';
preConfigure = ''
diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix
index ffba09e69f951..e861973b13cc2 100644
--- a/pkgs/applications/misc/xca/default.nix
+++ b/pkgs/applications/misc/xca/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram "$out/bin/xca" \
- --prefix LD_LIBRARY_PATH : "${qt4}/lib:${gcc.cc}/lib:${gcc.cc}/lib64:${openssl}/lib:${libtool}/lib"
+ --prefix LD_LIBRARY_PATH : \
+ "${gcc.cc.lib}/lib64:${stdenv.lib.makeLibraryPath [ qt4 gcc.cc openssl libtool ]}"
'';
buildInputs = [ openssl qt4 libtool gcc makeWrapper ];
diff --git a/pkgs/applications/misc/xneur/default.nix b/pkgs/applications/misc/xneur/default.nix
index cc08436fa0331..8e3165b75d26b 100644
--- a/pkgs/applications/misc/xneur/default.nix
+++ b/pkgs/applications/misc/xneur/default.nix
@@ -23,13 +23,13 @@ stdenv.mkDerivation rec {
sed -e 's@for imlib2_dir in@for imlib2_dir in ${imlib2} @' -i configure
sed -e 's@for xosd_dir in@for xosd_dir in ${xosd} @' -i configure
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/include/gtk-2.0"
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/lib/gtk-2.0/include"
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${cairo}/include/cairo"
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pango}/include/pango-1.0"
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${atk}/include/atk-1.0"
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gdk_pixbuf}/include/gdk-pixbuf-2.0"
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gdk_pixbuf}/lib/gdk-pixbuf-2.0/include"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk.dev}/include/gtk-2.0"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk.out}/lib/gtk-2.0/include"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${cairo.dev}/include/cairo"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pango.dev}/include/pango-1.0"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${atk.dev}/include/atk-1.0"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gdk_pixbuf.dev}/include/gdk-pixbuf-2.0"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gdk_pixbuf.out}/lib/gdk-pixbuf-2.0/include"
export NIX_LDFLAGS="$NIX_LDFLAGS -lnotify"
'';
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
index 3a88409999fce..62e7ee60cb3e4 100644
--- a/pkgs/applications/misc/zathura/core/default.nix
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
"PREFIX=$(out)"
"RSTTOMAN=${docutils}/bin/rst2man.py"
"VERBOSE=1"
- "TPUT=${ncurses}/bin/tput"
+ "TPUT=${ncurses.out}/bin/tput"
];
postInstall = ''
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 7bcc6242389d5..9fbc8959ad26d 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -8,7 +8,7 @@
, libusb1, pciutils, nss
, python, pythonPackages, perl, pkgconfig
-, nspr, udev, kerberos
+, nspr, libudev, kerberos
, utillinux, alsaLib
, bison, gperf
, glib, gtk, dbus_glib
@@ -112,7 +112,7 @@ let
buildInputs = defaultDependencies ++ [
which
python perl pkgconfig
- nspr nss udev
+ nspr nss libudev
utillinux alsaLib
bison gperf kerberos
glib gtk dbus_glib
@@ -147,7 +147,7 @@ let
}' chrome/utility/media_galleries/image_metadata_extractor.cc
''}
- sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${udev}/lib/\1!' \
+ sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${libudev.out}/lib/\1!' \
device/udev_linux/udev?_loader.cc
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix
index a0b354f0327c8..82b3bc3ea59c9 100644
--- a/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -44,6 +44,7 @@ let
phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
outputs = [ "flash" "widevine" ];
+ out = "flash"; # outputs TODO: is this a hack?
unpackCmd = let
chan = if upstream-info.channel == "dev" then "chrome-unstable"
@@ -63,7 +64,7 @@ let
'';
patchPhase = let
- rpaths = [ stdenv.cc.cc ];
+ rpaths = [ stdenv.cc.cc.lib ];
mkrpath = p: "${makeSearchPath "lib64" p}:${makeSearchPath "lib" p}";
in ''
for sofile in PepperFlash/libpepflashplayer.so \
diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix
index d79a5215ce218..8a8478d3867aa 100644
--- a/pkgs/applications/networking/browsers/dwb/default.nix
+++ b/pkgs/applications/networking/browsers/dwb/default.nix
@@ -18,10 +18,10 @@ stdenv.mkDerivation {
preFixup=''
wrapProgram "$out/bin/dwb" \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules:${dconf}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules:${dconf}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
wrapProgram "$out/bin/dwbem" \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules"
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/browsers/jumanji/default.nix b/pkgs/applications/networking/browsers/jumanji/default.nix
index 0e962f5fc1f66..ce9b944090728 100644
--- a/pkgs/applications/networking/browsers/jumanji/default.nix
+++ b/pkgs/applications/networking/browsers/jumanji/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
preFixup=''
wrapProgram "$out/bin/jumanji" \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
diff --git a/pkgs/applications/networking/browsers/luakit/default.nix b/pkgs/applications/networking/browsers/luakit/default.nix
index a3edaad37d40b..2777cb15fca93 100644
--- a/pkgs/applications/networking/browsers/luakit/default.nix
+++ b/pkgs/applications/networking/browsers/luakit/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
in ''
make DEVELOPMENT_PATHS=0 INSTALLDIR=$out DESTDIR=$out PREFIX=$out USE_GTK3=1 install
wrapProgram $out/bin/luakit \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/usr/share/:$out/share/:$GSETTINGS_SCHEMAS_PATH" \
--prefix XDG_CONFIG_DIRS : "$out/etc/xdg" \
--set LUA_PATH '"${luaKitPath};${luaPath};"' \
diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix
index 9eaf254b23b58..23ed0bc2c1ea0 100644
--- a/pkgs/applications/networking/browsers/midori/default.nix
+++ b/pkgs/applications/networking/browsers/midori/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram $out/bin/midori \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
}
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
index ba40925e1d1eb..f59de7db9f5c0 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
# !!! fix this
preBuild =
''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser}/include/xulrunner-*) -I${browser.nspr}/include/nspr"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser}/include/xulrunner-*) -I${browser.nspr.dev}/include/nspr"
echo $NIX_CFLAGS_COMPILE
'';
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
index 6fd953636a83c..f35e88ae89e61 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, rpm, cpio, mesa, xorg, cairo
, libpng, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl
-, dbus_glib, alsaLib, libpulseaudio, udev, pango
+, dbus_glib, alsaLib, libpulseaudio, libudev, pango
}:
with stdenv.lib;
@@ -36,7 +36,7 @@ let
alsaLib
libpulseaudio
dbus_glib
- udev
+ libudev
curl
pango
cairo
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index ab199ff97cdfe..de7240d3a83bd 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
postFixup = ''
oldRPATH=`patchelf --print-rpath $out/lib/opera/opera`
- patchelf --set-rpath $oldRPATH:${cups}/lib $out/lib/opera/opera
+ patchelf --set-rpath $oldRPATH:${cups.out}/lib $out/lib/opera/opera
# This file should normally require a gtk-update-icon-cache -q /usr/share/icons/hicolor command
# It have no reasons to exist in a redistribuable package
diff --git a/pkgs/applications/networking/browsers/surf/default.nix b/pkgs/applications/networking/browsers/surf/default.nix
index 7bbe84847f250..fcaaec63b9e69 100644
--- a/pkgs/applications/networking/browsers/surf/default.nix
+++ b/pkgs/applications/networking/browsers/surf/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/surf" \
- --prefix GIO_EXTRA_MODULES : ${glib_networking}/lib/gio/modules \
+ --prefix GIO_EXTRA_MODULES : ${glib_networking.out}/lib/gio/modules \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
diff --git a/pkgs/applications/networking/browsers/uzbl/default.nix b/pkgs/applications/networking/browsers/uzbl/default.nix
index 9e3b44f4083dd..0fb0db9989142 100644
--- a/pkgs/applications/networking/browsers/uzbl/default.nix
+++ b/pkgs/applications/networking/browsers/uzbl/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
preFixup = ''
for f in $out/bin/*; do
wrapProgram $f \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix PYTHONPATH : "$PYTHONPATH" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
done
diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix
index cfbaa908902d8..ddaaa68f60d4a 100644
--- a/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/pkgs/applications/networking/browsers/vimb/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/vimb" \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
diff --git a/pkgs/applications/networking/browsers/vimprobable2/default.nix b/pkgs/applications/networking/browsers/vimprobable2/default.nix
index 6f8eede9b3f81..45aa2a9c2d124 100644
--- a/pkgs/applications/networking/browsers/vimprobable2/default.nix
+++ b/pkgs/applications/networking/browsers/vimprobable2/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/vimprobable2" \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
diff --git a/pkgs/applications/networking/copy-com/default.nix b/pkgs/applications/networking/copy-com/default.nix
index 0ec2f5ac87a0b..21dc237397755 100644
--- a/pkgs/applications/networking/copy-com/default.nix
+++ b/pkgs/applications/networking/copy-com/default.nix
@@ -41,7 +41,7 @@ in stdenv.mkDerivation {
for binary in Copy{Agent,Console,Cmd}; do
binary="$out/${appdir}/$binary"
ln -sv "$binary" "$out/bin"
- patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} "$binary"
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/${interpreter} "$binary"
done
RPATH=${libPaths}:$out/${appdir}
diff --git a/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix b/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix
index a254535dd703c..99196cdf796b9 100644
--- a/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix
+++ b/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
'';
NIX_CFLAGS_COMPILE =
- "-I${libxml2}/include/libxml2 -I${json-c-0-11}/include/json-c";
+ "-I${libxml2.dev}/include/libxml2 -I${json-c-0-11}/include/json-c";
NIX_LDFLAGS = "-lsqlite3 -lcurl -lxml2 -lstfl -ljson";
diff --git a/pkgs/applications/networking/ike/default.nix b/pkgs/applications/networking/ike/default.nix
index 56341b64d6ce2..5ea0975e15f37 100644
--- a/pkgs/applications/networking/ike/default.nix
+++ b/pkgs/applications/networking/ike/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
installPhase = ''
make install
for file in "$out"/bin/* "$out"/sbin/*; do
- wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${openssl}/lib:${gcc.cc}/lib:${stdenv.glibc}/lib::${gcc.cc}/lib64:${stdenv.glibc}/lib64:${libedit}/lib:${qt4}/lib"
+ wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${openssl.out}/lib:${gcc.cc}/lib:${stdenv.glibc.out}/lib::${gcc.cc}/lib64:${stdenv.glibc.out}/lib64:${libedit}/lib:${qt4}/lib"
done
'';
diff --git a/pkgs/applications/networking/instant-messengers/blink/default.nix b/pkgs/applications/networking/instant-messengers/blink/default.nix
index 8076b27d1c542..d2a08b98c0760 100644
--- a/pkgs/applications/networking/instant-messengers/blink/default.nix
+++ b/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication rec {
postInstall = ''
wrapProgram $out/bin/blink \
- --prefix LD_LIBRARY_PATH ":" ${gnutls}/lib
+ --prefix LD_LIBRARY_PATH ":" ${gnutls.out}/lib
mkdir -p "$out/share/applications"
mkdir -p "$out/share/pixmaps"
cp "$desktopItem"/share/applications/* "$out/share/applications"
diff --git a/pkgs/applications/networking/instant-messengers/oneteam/default.nix b/pkgs/applications/networking/instant-messengers/oneteam/default.nix
index 2ab0930842bc0..bec367818e2ff 100644
--- a/pkgs/applications/networking/instant-messengers/oneteam/default.nix
+++ b/pkgs/applications/networking/instant-messengers/oneteam/default.nix
@@ -43,7 +43,7 @@ rec {
'' ["minInit" "doUnpack"];
setVars=a.noDepEntry ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
'';
cmakeBuildDir="cmake-build";
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 7e9e41ea0bfc4..e7266a93350be 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -43,11 +43,11 @@ stdenv.mkDerivation rec {
patches = [./pidgin-makefile.patch ./add-search-path.patch ];
configureFlags = [
- "--with-nspr-includes=${nspr}/include/nspr"
- "--with-nspr-libs=${nspr}/lib"
- "--with-nss-includes=${nss}/include/nss"
- "--with-nss-libs=${nss}/lib"
- "--with-ncurses-headers=${ncurses}/include"
+ "--with-nspr-includes=${nspr.dev}/include/nspr"
+ "--with-nspr-libs=${nspr.out}/lib"
+ "--with-nss-includes=${nss.dev}/include/nss"
+ "--with-nss-libs=${nss.out}/lib"
+ "--with-ncurses-headers=${ncurses.dev}/include"
"--disable-meanwhile"
"--disable-nm"
"--disable-tcl"
diff --git a/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix b/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
index c19b5ff31f9d1..17462cb75ad57 100644
--- a/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
postInstall = ''
substituteInPlace $out/bin/pybitmessage \
--replace "exec python2" "exec ${python}/bin/python" \
- --replace "/opt/openssl-compat-bitcoin/lib/" "${openssl}/lib/"
+ --replace "/opt/openssl-compat-bitcoin/lib/" "${openssl.out}/lib/"
wrapProgram $out/bin/pybitmessage \
--prefix PYTHONPATH : "$(toPythonPath $out):$PYTHONPATH"
'';
diff --git a/pkgs/applications/networking/instant-messengers/sflphone/default.nix b/pkgs/applications/networking/instant-messengers/sflphone/default.nix
index 8b259c90fe508..7322ff2bb345a 100644
--- a/pkgs/applications/networking/instant-messengers/sflphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/sflphone/default.nix
@@ -40,7 +40,7 @@ rec {
cd ..
'';
- configureFlags = "--with-expat --with-expat-inc=${expat}/include " +
+ configureFlags = "--with-expat --with-expat-inc=${expat.dev}/include " +
"--with-expat-lib=-lexpat --with-opus ";
buildInputs = [ libyaml alsaLib openssl libuuid pkgconfig libpulseaudio libsamplerate
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix
index 532d68ad66050..84ced8f62c6ee 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/kde/default.nix
@@ -11,11 +11,11 @@ let
call_ui = x : x // {
NIX_CFLAGS_COMPILE =
"-I${telepathy_glib}/include/telepathy-1.0"
- + " -I${dbus_glib}/include/dbus-1.0"
- + " -I${dbus_libs}/include/dbus-1.0";
+ + " -I${dbus_glib.dev}/include/dbus-1.0"
+ + " -I${dbus_libs.dev}/include/dbus-1.0";
};
telepathy_logger_qt = x : x // {
- NIX_CFLAGS_COMPILE = "-I${dbus_libs}/include/dbus-1.0";
+ NIX_CFLAGS_COMPILE = "-I${dbus_libs.dev}/include/dbus-1.0";
};
};
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
index 173dfe9c929f1..aaff39ccb44d1 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "18i00l8lnp5dghqmgmpxnn0is2a20pkisxy0sb78hnd2dz0z6xnl";
};
- NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
+ NIX_CFLAGS_COMPILE = "-I${dbus_glib.dev}/include/dbus-1.0 -I${dbus_libs.dev}/include/dbus-1.0";
buildInputs = [ dbus_glib libxml2 sqlite telepathy_glib pkgconfig intltool
gobjectIntrospection dbus_libs ];
diff --git a/pkgs/applications/networking/mailreaders/mailpile/default.nix b/pkgs/applications/networking/mailreaders/mailpile/default.nix
index 0ace6a01b3f32..5936ae6e878ec 100644
--- a/pkgs/applications/networking/mailreaders/mailpile/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -21,7 +21,7 @@ pythonPackages.buildPythonApplication rec {
postInstall = ''
wrapProgram $out/bin/mailpile \
- --prefix PATH ":" "${gnupg1orig}/bin:${openssl}/bin"
+ --prefix PATH ":" "${gnupg1orig}/bin:${openssl.bin}/bin"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 6c061940b26d2..0815254755500 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
wrapProgram "$f" \
--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
- --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules:${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules:${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
done
'';
diff --git a/pkgs/applications/networking/p2p/retroshare/0.6.nix b/pkgs/applications/networking/p2p/retroshare/0.6.nix
index 855ebdd059365..020d001705310 100644
--- a/pkgs/applications/networking/p2p/retroshare/0.6.nix
+++ b/pkgs/applications/networking/p2p/retroshare/0.6.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
sha256 = "189qndkfq9kgv3qi3wx8ivla4j8fxr4iv7c8y9rjrjaz8jwdkn5x";
};
- NIX_CFLAGS_COMPILE = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${libxml2}/include/libxml2 -I${sqlcipher}/include/sqlcipher";
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.dev}/lib/glib-2.0/include -I${libxml2.dev}/include/libxml2 -I${sqlcipher}/include/sqlcipher";
patchPhase = ''
# Fix build error
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index a139531b19a63..e7fe79d66a564 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
sha256 = "0l2n4pr1hq66q6qa073hrdx3s3d7iw54z8ay1zy82zhk2rwhsavp";
};
- NIX_CFLAGS_COMPILE = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${libxml2}/include/libxml2";
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.dev}/lib/glib-2.0/include -I${libxml2.dev}/include/libxml2";
patchPhase = ''
sed -i 's/UpnpString_get_String(es_event->PublisherUrl)/es_event->PublisherUrl/' \
diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index 525e154702320..fd060ad08801e 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -41,7 +41,7 @@ in stdenv.mkDerivation {
mkdir "$out/bin"
rm "$out/usr/bin/SpiderOakONE"
- patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/${interpreter} \
"$out/opt/SpiderOakONE/lib/SpiderOakONE"
RPATH=$out/opt/SpiderOakONE/lib:${ldpath}
diff --git a/pkgs/applications/science/astronomy/celestia/default.nix b/pkgs/applications/science/astronomy/celestia/default.nix
index 86b0ffbcf24c3..f2407e1a8333f 100644
--- a/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/pkgs/applications/science/astronomy/celestia/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
CPPFLAGS = "-DNDEBUG";
CFLAGS = "-O2 -fsigned-char";
CXXFLAGS = "-O2 -fsigned-char";
- GTK_CFLAGS = "-I${gtk2}/include/gtk-2.0 -I${gtk2}/lib/gtk-2.0/include -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${cairo}/include/cairo -I${pango}/include/pango-1.0 -I${gdk_pixbuf}/include/gdk-pixbuf-2.0 -I${atk}/include/atk-1.0 -I${gtkglext}/include/gtkglext-1.0 -I${gtkglext}/lib/gtkglext-1.0/include";
+ GTK_CFLAGS = "-I${gtk2.dev}/include/gtk-2.0 -I${gtk2.out}/lib/gtk-2.0/include -I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include -I${cairo.dev}/include/cairo -I${pango.dev}/include/pango-1.0 -I${gdk_pixbuf.dev}/include/gdk-pixbuf-2.0 -I${atk}/include/atk-1.0 -I${gtkglext}/include/gtkglext-1.0 -I${gtkglext}/lib/gtkglext-1.0/include";
GTK_LIBS = "-lgtk-x11-2.0 -lgtkglext-x11-1.0 -lcairo -lgdk_pixbuf-2.0 -lpango-1.0 -lgobject-2.0";
installPhase = ''make MKDIR_P="mkdir -p" install'';
diff --git a/pkgs/applications/science/electronics/tkgate/1.x.nix b/pkgs/applications/science/electronics/tkgate/1.x.nix
index e9849d0460c8a..c62ecdcd1e2a4 100644
--- a/pkgs/applications/science/electronics/tkgate/1.x.nix
+++ b/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -1,8 +1,8 @@
{ stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xproto, gccmakedep }:
let
- libiconvInc = stdenv.lib.optionalString stdenv.isLinux "${glibc}/include";
- libiconvLib = stdenv.lib.optionalString stdenv.isLinux "${glibc}/lib";
+ libiconvInc = stdenv.lib.optionalString stdenv.isLinux "${glibc.dev}/include";
+ libiconvLib = stdenv.lib.optionalString stdenv.isLinux "${glibc.out}/lib";
in
stdenv.mkDerivation rec {
name = "tkgate-1.8.7";
diff --git a/pkgs/applications/science/logic/hol/default.nix b/pkgs/applications/science/logic/hol/default.nix
index f8a57aebb6dcb..c7fb4ffbb978a 100644
--- a/pkgs/applications/science/logic/hol/default.nix
+++ b/pkgs/applications/science/logic/hol/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
buildCommand = ''
mkdir chroot-fontconfig
- cat ${fontconfig}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
+ cat ${fontconfig.out}/etc/fonts/fonts.conf > chroot-fontconfig/fonts.conf
sed -e 's@@@' -i chroot-fontconfig/fonts.conf
echo "${liberation_ttf}" >> chroot-fontconfig/fonts.conf
echo "" >> chroot-fontconfig/fonts.conf
diff --git a/pkgs/applications/science/logic/saw-tools/default.nix b/pkgs/applications/science/logic/saw-tools/default.nix
index eebe6ff0a06c8..1153c0b3cf5c0 100644
--- a/pkgs/applications/science/logic/saw-tools/default.nix
+++ b/pkgs/applications/science/logic/saw-tools/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
mv doc $out/share
# Hack around lack of libtinfo in NixOS
- ln -s ${ncurses}/lib/libncursesw.so.5 $out/lib/libtinfo.so.5
+ ln -s ${ncurses.out}/lib/libncursesw.so.5 $out/lib/libtinfo.so.5
ln -s ${stdenv.cc.libc}/lib/libpthread.so.0 $out/lib/libpthread.so.0
# Add a clang symlink for easy building with a suitable compiler.
diff --git a/pkgs/applications/science/logic/yices/default.nix b/pkgs/applications/science/logic/yices/default.nix
index 5daaa444c1272..f495ee257ff05 100644
--- a/pkgs/applications/science/logic/yices/default.nix
+++ b/pkgs/applications/science/logic/yices/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gmp, gperf, autoreconfHook }:
+{ stdenv, fetchurl, gmp-static, gperf, autoreconfHook }:
stdenv.mkDerivation rec {
name = "yices-${version}";
@@ -10,10 +10,10 @@ stdenv.mkDerivation rec {
sha256 = "1da70n0cah0dh3pk7fcrvjkszx9qmhc0csgl15jqa7bdh707k2zs";
};
- configureFlags = [ "--with-static-gmp=${gmp}/lib/libgmp.a"
- "--with-static-gmp-include-dir=${gmp}/include"
+ configureFlags = [ "--with-static-gmp=${gmp-static.out}/lib/libgmp.a"
+ "--with-static-gmp-include-dir=${gmp-static.dev}/include"
];
- buildInputs = [ gmp gperf autoreconfHook ];
+ buildInputs = [ gmp-static gperf autoreconfHook ];
meta = {
description = "A high-performance theorem prover and SMT solver";
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index e7a195659491b..2ca2cab3afd8c 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -48,7 +48,6 @@ stdenv.mkDerivation rec {
CXX=$(type -p g++)
FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran"
JAVA_HOME="${jdk}"
- LDFLAGS="-L${gfortran.cc}/lib"
RANLIB=$(type -p ranlib)
R_SHELL="${stdenv.shell}"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/search/recoll/default.nix b/pkgs/applications/search/recoll/default.nix
index c396870f9e5b1..253b97aff1e70 100644
--- a/pkgs/applications/search/recoll/default.nix
+++ b/pkgs/applications/search/recoll/default.nix
@@ -29,20 +29,20 @@ stdenv.mkDerivation rec {
substituteInPlace $f --replace antiword ${antiword}/bin/antiword
substituteInPlace $f --replace awk ${gawk}/bin/awk
substituteInPlace $f --replace catppt ${catdoc}/bin/catppt
- substituteInPlace $f --replace djvused ${djvulibre}/bin/djvused
- substituteInPlace $f --replace djvutxt ${djvulibre}/bin/djvutxt
+ substituteInPlace $f --replace djvused ${djvulibre.bin}/bin/djvused
+ substituteInPlace $f --replace djvutxt ${djvulibre.bin}/bin/djvutxt
substituteInPlace $f --replace egrep ${gnugrep}/bin/egrep
substituteInPlace $f --replace groff ${groff}/bin/groff
substituteInPlace $f --replace gunzip ${gzip}/bin/gunzip
- substituteInPlace $f --replace iconv ${libiconv}/bin/iconv
+ substituteInPlace $f --replace iconv ${libiconv.bin or libiconv}/bin/iconv
substituteInPlace $f --replace lyx ${lyx}/bin/lyx
- substituteInPlace $f --replace pdftotext ${poppler_utils}/bin/pdftotext
+ substituteInPlace $f --replace pdftotext ${poppler_utils.out}/bin/pdftotext
substituteInPlace $f --replace pstotext ${ghostscript}/bin/ps2ascii
substituteInPlace $f --replace sed ${gnused}/bin/sed
substituteInPlace $f --replace tar ${gnutar}/bin/tar
substituteInPlace $f --replace unzip ${unzip}/bin/unzip
substituteInPlace $f --replace xls2csv ${catdoc}/bin/xls2csv
- substituteInPlace $f --replace xsltproc ${libxslt}/bin/xsltproc
+ substituteInPlace $f --replace xsltproc ${libxslt.bin}/bin/xsltproc
substituteInPlace $f --replace unrtf ${unrtf}/bin/unrtf
substituteInPlace $f --replace untex ${untex}/bin/untex
substituteInPlace $f --replace wpd2html ${libwpd}/bin/wpd2html
diff --git a/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/pkgs/applications/version-management/git-and-tools/cgit/default.nix
index 49e1734fe02d0..d144d484ed394 100644
--- a/pkgs/applications/version-management/git-and-tools/cgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/cgit/default.nix
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
postPatch = ''
sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \
- -e 's|"bzip2"|"${bzip2}/bin/bzip2"|' \
- -e 's|"xz"|"${xz}/bin/xz"|' \
+ -e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \
+ -e 's|"xz"|"${xz.bin}/bin/xz"|' \
-i ui-snapshot.c
'';
diff --git a/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix b/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix
index 91fe1662efec8..f282fa6635b81 100644
--- a/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/svn2git-kde/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
buildPhase = ''
sed -i 's|/bin/cat|cat|' ./src/repository.cpp
qmake
- make CXXFLAGS='-I${apr}/include/apr-1 -I${subversion}/include/subversion-1 -DVER="\"${src.rev}\""'
+ make CXXFLAGS='-I${apr}/include/apr-1 -I${subversion.dev}/include/subversion-1 -DVER="\"${src.rev}\""'
'';
installPhase = ''
diff --git a/pkgs/applications/version-management/rabbitvcs/default.nix b/pkgs/applications/version-management/rabbitvcs/default.nix
index 58b29c10ae368..0f2f7646ac6af 100644
--- a/pkgs/applications/version-management/rabbitvcs/default.nix
+++ b/pkgs/applications/version-management/rabbitvcs/default.nix
@@ -17,7 +17,7 @@ python2Packages.buildPythonApplication rec {
sed -ie 's|if sys\.argv\[1\] == "install":|if False:|' ./setup.py
sed -ie "s|PREFIX = sys.prefix|PREFIX = \"$out\"|" ./setup.py
sed -ie 's|/usr/bin/meld|${meld}/bin/meld|' ./rabbitvcs/util/configspec/configspec.ini
- sed -ie 's|/usr/bin/svnadmin|${subversion}/bin/svnadmin|' ./rabbitvcs/ui/create.py
+ sed -ie 's|/usr/bin/svnadmin|${subversion.out}/bin/svnadmin|' ./rabbitvcs/ui/create.py
sed -ie "s|/usr/share/doc|$out/share/doc|" ./rabbitvcs/ui/about.py
sed -ie "s|gnome-open|xdg-open|" ./rabbitvcs/util/helper.py
'';
diff --git a/pkgs/applications/version-management/rapidsvn/default.nix b/pkgs/applications/version-management/rapidsvn/default.nix
index 843fe9ad3230d..9397aa8a1e19c 100644
--- a/pkgs/applications/version-management/rapidsvn/default.nix
+++ b/pkgs/applications/version-management/rapidsvn/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
buildInputs = [ wxGTK subversion apr aprutil python ];
- configureFlags = [ "--with-svn-include=${subversion}/include"
- "--with-svn-lib=${subversion}/lib" ];
+ configureFlags = [ "--with-svn-include=${subversion.dev}/include"
+ "--with-svn-lib=${subversion.out}/lib" ];
meta = {
description = "Multi-platform GUI front-end for the Subversion revision system";
diff --git a/pkgs/applications/version-management/redmine/bootstrap.nix b/pkgs/applications/version-management/redmine/bootstrap.nix
index 5971f2e9cddcc..82643f18a554b 100644
--- a/pkgs/applications/version-management/redmine/bootstrap.nix
+++ b/pkgs/applications/version-management/redmine/bootstrap.nix
@@ -32,8 +32,8 @@ in stdenv.mkDerivation rec {
bundle config --local build.nokogiri --use-system-libraries \
--with-iconv-dir=${libiconv} \
- --with-xslt-dir=${libxslt} \
- --with-xml2-dir=${libxml2} \
+ --with-xslt-dir=${libxslt.out} \
+ --with-xml2-dir=${libxml2.out} \
--with-pkg-config \
--with-pg-config=${postgresql}/bin/pg_config
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 08b07b64b68b0..da21c29e6f9ff 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -26,6 +26,9 @@ let
inherit sha256;
};
+ # Can't do separate $lib and $bin, as libs reference bins
+ outputs = [ "dev" "out" "man" ];
+
buildInputs = [ zlib apr aprutil sqlite ]
++ stdenv.lib.optional httpSupport serf
++ stdenv.lib.optional pythonBindings python
@@ -65,6 +68,12 @@ let
mkdir -p $out/share/bash-completion/completions
cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion
+
+ for f in $out/lib/*.la; do
+ substituteInPlace $f --replace "${expat.dev}/lib" "${expat.out}/lib"
+ substituteInPlace $f --replace "${zlib.dev}/lib" "${zlib.out}/lib"
+ substituteInPlace $f --replace "${sqlite.dev}/lib" "${sqlite.out}/lib"
+ done
'';
inherit perlBindings pythonBindings;
diff --git a/pkgs/applications/video/avxsynth/default.nix b/pkgs/applications/video/avxsynth/default.nix
index d8ec715a38cb6..06dcaf31b443f 100644
--- a/pkgs/applications/video/avxsynth/default.nix
+++ b/pkgs/applications/video/avxsynth/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
"--enable-subtitle"
"--enable-ffms2"
(enableFeature avxeditSupport "avxedit")
- "--with-jpeg=${libjpeg}/lib"
+ "--with-jpeg=${libjpeg.out}/lib"
];
nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 961471cd9b36c..e634a0caa3f4b 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
postPatch = stdenv.lib.optionalString (ffmpeg != null) ''
substituteInPlace converter_ffmpeg.cpp \
- --replace '"ffmpeg"' '"${ffmpeg}/bin/ffmpeg"' \
- --replace '"ffmpeg ' '"${ffmpeg}/bin/ffmpeg '
+ --replace '"ffmpeg"' '"${ffmpeg.bin}/bin/ffmpeg"' \
+ --replace '"ffmpeg ' '"${ffmpeg.bin}/bin/ffmpeg '
'';
configurePhase = ''
diff --git a/pkgs/applications/video/dvd-slideshow/default.nix b/pkgs/applications/video/dvd-slideshow/default.nix
index fe95c2c6d7d89..040a7a2e7a69e 100644
--- a/pkgs/applications/video/dvd-slideshow/default.nix
+++ b/pkgs/applications/video/dvd-slideshow/default.nix
@@ -4,7 +4,7 @@ let
wrapper = writeScript "dvd-slideshow.sh" ''
#!/bin/bash
# wrapper script for dvd-slideshow programs
- export PATH=${cdrtools}/bin:${dvdauthor}/bin:${ffmpeg}/bin:${imagemagick}/bin:${lame}/bin:${mjpegtools}/bin:${sox}/bin:${transcode}/bin:${vorbis-tools}/bin:$PATH
+ export PATH=${cdrtools}/bin:${dvdauthor}/bin:${ffmpeg.bin}/bin:${imagemagick}/bin:${lame}/bin:${mjpegtools}/bin:${sox}/bin:${transcode}/bin:${vorbis-tools}/bin:$PATH
dir=`dirname "$0"`
exe=`basename "$0"`
diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix
index f53ce93328bfb..0200b0c70f4e9 100644
--- a/pkgs/applications/video/gnash/default.nix
+++ b/pkgs/applications/video/gnash/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
for lib in $libs; do
echo -n "$lib " >> macros/libslist
done
- echo -n "${stdenv.glibc}/lib" >> macros/libslist
+ echo -n "${stdenv.glibc.out}/lib" >> macros/libslist
# Make sure to honor $TMPDIR, for chroot builds.
for file in configure gui/Makefile.in Makefile.in
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
preConfigure =
'' configureFlags=" \
- --with-sdl-incl=${SDL}/include/SDL \
+ --with-sdl-incl=${SDL.dev}/include/SDL \
--with-npapi-plugindir=$out/plugins \
--enable-media=gst \
--without-gconf
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index 7217f4746c8fd..22b47c532e5fc 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -34,9 +34,9 @@ python3Packages.buildPythonApplication rec {
preFixup = ''
wrapProgram $out/bin/kazam \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
- --prefix LD_LIBRARY_PATH ":" "${gtk3}/lib:${gst_all_1.gstreamer}/lib:${keybinder}/lib" \
+ --prefix LD_LIBRARY_PATH ":" "${gtk3.out}/lib:${gst_all_1.gstreamer}/lib:${keybinder}/lib" \
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \
- --prefix XDG_DATA_DIRS : "${gtk3}/share" \
+ --prefix XDG_DATA_DIRS : "${gtk3.out}/share" \
--set GST_REGISTRY "/tmp/kazam.gstreamer.registry";
'';
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index c2b3914f85026..bb3aeed26ca85 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -110,15 +110,9 @@ in stdenv.mkDerivation rec {
--prefix PATH ":" "${pythonFull}/bin" \
--prefix PATH ":" "${glxinfo}/bin" \
--prefix PATH ":" "${xdpyinfo}/bin" \
- --prefix LD_LIBRARY_PATH ":" "${curl}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${systemd}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${libmad}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${libcec}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${libcec_platform}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${libass}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${rtmpdump}/lib" \
- --prefix LD_LIBRARY_PATH ":" "${SDL2}/lib"
+ --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+ [ curl systemd libmad libvdpau libcec libcec_platform rtmpdump libass SDL2 ]
+ }"
done
'';
diff --git a/pkgs/applications/video/miro/default.nix b/pkgs/applications/video/miro/default.nix
index 66f249b8e4a50..07d60fe4764bc 100644
--- a/pkgs/applications/video/miro/default.nix
+++ b/pkgs/applications/video/miro/default.nix
@@ -33,7 +33,7 @@ buildPythonApplication rec {
sed -i -e 's|/usr/bin/||' -e 's|/usr||' \
-e 's/BUILD_TIME[^,]*/BUILD_TIME=0/' setup.py
- sed -i -e 's|default="/usr/bin/ffmpeg"|default="${ffmpeg}/bin/ffmpeg"|' \
+ sed -i -e 's|default="/usr/bin/ffmpeg"|default="${ffmpeg.bin}/bin/ffmpeg"|' \
plat/options.py
sed -i -e 's|/usr/share/miro/themes|'"$out/share/miro/themes"'|' \
@@ -64,7 +64,7 @@ buildPythonApplication rec {
mv "$out/bin/miro.real" "$out/bin/miro"
wrapProgram "$out/bin/miro" \
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \
- --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+ --prefix GIO_EXTRA_MODULES : "${glib_networking.out}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
'';
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 9a75a3ddfd404..2cf57d78ba0cc 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -143,8 +143,8 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional busMouse "--enable-busmouse"
;
- NIX_CFLAGS_COMPILE="-I${gtk}/include/gtk-2.0/ -I${libtool}/include/";
- NIX_LDFLAGS="-L${libtool}/lib";
+ NIX_CFLAGS_COMPILE="-I${gtk.dev}/include/gtk-2.0/ -I${libtool}/include/";
+ NIX_LDFLAGS="-L${libtool.lib}/lib";
meta = with stdenv.lib; {
description = "An open-source IA-32 (x86) PC emulator";
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 65bb6e61117c3..74d23efcabe23 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
buildInputs = [
makeWrapper go sqlite iproute bridge-utils devicemapper btrfs-progs
- iptables e2fsprogs systemd pkgconfig
+ iptables e2fsprogs systemd pkgconfig stdenv.glibc stdenv.glibc.static
];
dontStrip = true;
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
install -Dm755 ./bundles/${version}/dynbinary/docker-${version} $out/libexec/docker/docker
install -Dm755 ./bundles/${version}/dynbinary/dockerinit-${version} $out/libexec/docker/dockerinit
makeWrapper $out/libexec/docker/docker $out/bin/docker \
- --prefix PATH : "${iproute}/sbin:sbin:${iptables}/sbin:${e2fsprogs}/sbin:${xz}/bin:${utillinux}/bin:${optionalString enableLxc "${lxc}/bin"}"
+ --prefix PATH : "${iproute}/sbin:sbin:${iptables}/sbin:${e2fsprogs}/sbin:${xz.bin}/bin:${utillinux}/bin:${optionalString enableLxc "${lxc}/bin"}"
# systemd
install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
diff --git a/pkgs/applications/virtualization/openstack/keystone.nix b/pkgs/applications/virtualization/openstack/keystone.nix
index 61a366f7ab081..bbce75b5e51eb 100644
--- a/pkgs/applications/virtualization/openstack/keystone.nix
+++ b/pkgs/applications/virtualization/openstack/keystone.nix
@@ -33,7 +33,7 @@ pythonPackages.buildPythonApplication rec {
ldap ldappool webtest requests2 oslotest pep8 pymongo which
];
- makeWrapperArgs = ["--prefix PATH : '${openssl}/bin:$PATH'"];
+ makeWrapperArgs = ["--prefix PATH : '${openssl.bin}/bin:$PATH'"];
postInstall = ''
# install .ini files
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index c0fd8214b3171..2cbf68671c90e 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -81,14 +81,14 @@ in stdenv.mkDerivation {
-e 's@MKISOFS --version@MKISOFS -version@' \
-e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
-i configure
- ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2
- ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2
+ ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2
+ ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2
find . -type f -iname '*makefile*' -exec sed -i -e 's/depmod -a/:/g' {} +
sed -i -e '
- s@"libdbus-1\.so\.3"@"${dbus}/lib/libdbus-1.so.3"@g
- s@"libasound\.so\.2"@"${alsaLib}/lib/libasound.so.2"@g
+ s@"libdbus-1\.so\.3"@"${dbus.lib}/lib/libdbus-1.so.3"@g
+ s@"libasound\.so\.2"@"${alsaLib.out}/lib/libasound.so.2"@g
${optionalString pulseSupport ''
- s@"libpulse\.so\.0"@"${libpulseaudio}/lib/libpulse.so.0"@g
+ s@"libpulse\.so\.0"@"${libpulseaudio.out}/lib/libpulse.so.0"@g
''}
' src/VBox/Main/xml/Settings.cpp \
src/VBox/Devices/Audio/{alsa,pulse}_stubs.c \
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 57d9d28a773a1..ba32ff98b0da6 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -63,19 +63,19 @@ stdenv.mkDerivation {
for i in sbin/VBoxService bin/{VBoxClient,VBoxControl} lib/VBoxGuestAdditions/mount.vboxsf
do
${if stdenv.system == "i686-linux" then ''
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $i
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $i
''
else if stdenv.system == "x86_64-linux" then ''
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $i
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 $i
''
else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
}
- patchelf --set-rpath ${stdenv.cc.cc}/lib:${dbus}/lib:${libX11}/lib:${libXt}/lib:${libXext}/lib:${libXmu}/lib:${libXfixes}/lib:${libXrandr}/lib:${libXcursor}/lib $i
+ patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc dbus libX11 libXt libXext libXmu libXfixes libXrandr libXcursor ]} $i
done
for i in lib/VBoxOGL*.so
do
- patchelf --set-rpath $out/lib:${dbus}/lib:${libXcomposite}/lib:${libXdamage}/lib:${libXext}/lib:${libXfixes}/lib $i
+ patchelf --set-rpath $out/lib:${dbus.lib}/lib:${libXcomposite.out}/lib:${libXdamage.out}/lib:${libXext.out}/lib:${libXfixes.out}/lib $i
done
# FIXME: Virtualbox 4.3.22 moved VBoxClient-all (required by Guest Additions
diff --git a/pkgs/applications/virtualization/xen/generic.nix b/pkgs/applications/virtualization/xen/generic.nix
index c169519a8e549..c830fccb12015 100644
--- a/pkgs/applications/virtualization/xen/generic.nix
+++ b/pkgs/applications/virtualization/xen/generic.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation {
--replace /usr/bin/pkill ${procps}/bin/pkill
substituteInPlace tools/xenstat/Makefile \
- --replace /usr/include/curses.h ${ncurses}/include/curses.h
+ --replace /usr/include/curses.h ${ncurses.dev}/include/curses.h
substituteInPlace tools/qemu-xen-traditional/xen-hooks.mak \
--replace /usr/include/pci ${pciutils}/include/pci
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index 2991169a7025b..d4721c9920082 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -63,8 +63,8 @@ stdenv.mkDerivation rec {
#cmakeFlags = "-DGENERATE_MANPAGES=ON";
- LD_LIBRARY_PATH = "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib";
- GI_TYPELIB_PATH = "${pango}/lib/girepository-1.0";
+ LD_LIBRARY_PATH = "${stdenv.lib.makeLibraryPath [ cairo pango gobjectIntrospection ]}";
+ GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so";
LUA_PATH = "${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua";
@@ -73,8 +73,8 @@ stdenv.mkDerivation rec {
--prefix LUA_CPATH ";" '"${lgi}/lib/lua/${lua.luaversion}/?.so"' \
--prefix LUA_PATH ";" '"${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"' \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
- --prefix LD_LIBRARY_PATH : "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib" \
- --prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl}/bin:${alsaUtils}/bin:${findutils}/bin:${xterm}/bin"
+ --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH" \
+ --prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl.bin}/bin:${alsaUtils}/bin:${findutils}/bin:${xterm}/bin"
wrapProgram $out/bin/awesome-client \
--prefix PATH : "${which}/bin"
diff --git a/pkgs/applications/window-managers/fvwm/default.nix b/pkgs/applications/window-managers/fvwm/default.nix
index aded77a466da0..77263293847c4 100644
--- a/pkgs/applications/window-managers/fvwm/default.nix
+++ b/pkgs/applications/window-managers/fvwm/default.nix
@@ -1,7 +1,7 @@
{ gestures ? false
, stdenv, fetchurl, pkgconfig
, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama
-, libXpm, librsvg, libpng, fribidi, perl
+, libXpm, libXt, librsvg, libpng, fribidi, perl
, libstroke ? null
}:
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
buildInputs = [
pkgconfig cairo fontconfig freetype
- libXft libXcursor libXinerama libXpm
+ libXft libXcursor libXinerama libXpm libXt
librsvg libpng fribidi perl
] ++ stdenv.lib.optional gestures libstroke;
diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix
index f2f864506d37a..4060b9887f79a 100644
--- a/pkgs/applications/window-managers/qtile/default.nix
+++ b/pkgs/applications/window-managers/qtile/default.nix
@@ -24,9 +24,9 @@ buildPythonApplication rec {
postPatch = ''
substituteInPlace libqtile/manager.py --subst-var-by out $out
- substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${pkgs.glib}
- substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pkgs.pango}
- substituteInPlace libqtile/xcursors.py --subst-var-by xcb-cursor ${pkgs.xorg.xcbutilcursor}
+ substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${pkgs.glib.out}
+ substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pkgs.pango.out}
+ substituteInPlace libqtile/xcursors.py --subst-var-by xcb-cursor ${pkgs.xorg.xcbutilcursor.out}
'';
buildInputs = [ pkgs.pkgconfig pkgs.glib pkgs.xorg.libxcb pkgs.cairo pkgs.pango python27Packages.xcffib ];
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index a1d653fb6d0c4..8c72278474764 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
wayland mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
- mtdev libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva
+ mtdev libjpeg pam dbus libinput pango libunwind freerdp vaapi libva
libwebp wayland-protocols
];
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional (vaapi != null) "--enabe-vaapi-recorder"
++ stdenv.lib.optionals (xwayland != null) [
"--enable-xwayland"
- "--with-xserver-path=${xwayland}/bin/Xwayland"
+ "--with-xserver-path=${xwayland.out}/bin/Xwayland"
];
meta = with stdenv.lib; {
diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix
index a9a4d95d7d8fb..8b2167a8e74f6 100644
--- a/pkgs/build-support/buildenv/default.nix
+++ b/pkgs/build-support/buildenv/default.nix
@@ -27,7 +27,7 @@
, # The package outputs to include. By default, only the default
# output is included.
- outputsToLink ? []
+ extraOutputsToInstall ? []
, # Root the result in directory "$out${extraPrefix}", e.g. "/share".
extraPrefix ? ""
@@ -48,8 +48,14 @@ runCommand name
meta pathsToLink extraPrefix postBuild buildInputs;
pkgs = builtins.toJSON (map (drv: {
paths =
- [ drv ]
- ++ lib.concatMap (outputName: lib.optional (drv.${outputName}.outPath or null != null) drv.${outputName}) outputsToLink;
+ # First add the usual output(s): respect if user has chosen explicitly,
+ # and otherwise use `meta.outputsToInstall` (guaranteed to exist by stdenv).
+ (if (drv.outputUnspecified or false)
+ then map (outName: drv.${outName}) drv.meta.outputsToInstall
+ else [ drv ])
+ # Add any extra outputs specified by the caller of `buildEnv`.
+ ++ lib.filter (p: p!=null)
+ (builtins.map (outName: drv.${outName} or null) extraOutputsToInstall);
priority = drv.meta.priority or 5;
}) paths);
preferLocalBuild = true;
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index 673d9ec494cb9..894ea95b5fa02 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -1,7 +1,7 @@
#! @shell@ -e
path_backup="$PATH"
-if [ -n "@coreutils@" ]; then
- PATH="@coreutils@/bin:@gnugrep@/bin"
+if [ -n "@coreutils_bin@" ]; then
+ PATH="@coreutils_bin@/bin:@gnugrep_bin@/bin"
fi
if [ -n "$NIX_CC_WRAPPER_START_HOOK" ]; then
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 110f51891417f..6cdd047724455 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -27,6 +27,13 @@ let
ccVersion = (builtins.parseDrvName cc.name).version;
ccName = (builtins.parseDrvName cc.name).name;
+ libc_bin = if nativeLibc then null else libc.bin or libc;
+ libc_dev = if nativeLibc then null else libc.dev or libc;
+ libc_lib = if nativeLibc then null else libc.out or libc;
+ cc_solib = cc.lib or cc;
+ binutils_bin = if nativeTools then "" else binutils.bin or binutils;
+ # The wrapper scripts use 'cat' and 'grep', so we may need coreutils.
+ coreutils_bin = if nativeTools then "" else coreutils.bin or coreutils;
in
stdenv.mkDerivation {
@@ -36,15 +43,10 @@ stdenv.mkDerivation {
preferLocalBuild = true;
- inherit cc shell;
- libc = if nativeLibc then null else libc;
- binutils = if nativeTools then "" else binutils;
- # The wrapper scripts use 'cat' and 'grep', so we may need coreutils
- # and gnugrep.
- coreutils = if nativeTools then "" else coreutils;
- gnugrep = if nativeTools then "" else gnugrep;
+ inherit cc shell libc_bin libc_dev libc_lib binutils_bin coreutils_bin;
+ gnugrep_bin = if nativeTools then "" else gnugrep;
- passthru = { inherit nativeTools nativeLibc nativePrefix isGNU isClang; };
+ passthru = { inherit libc nativeTools nativeLibc nativePrefix isGNU isClang; };
buildCommand =
''
@@ -60,11 +62,11 @@ stdenv.mkDerivation {
''
+ optionalString (!nativeLibc) (if (!stdenv.isDarwin) then ''
- dynamicLinker="$libc/lib/$dynamicLinker"
+ dynamicLinker="${libc_lib}/lib/$dynamicLinker"
echo $dynamicLinker > $out/nix-support/dynamic-linker
- if [ -e $libc/lib/32/ld-linux.so.2 ]; then
- echo $libc/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
+ if [ -e ${libc_lib}/lib/32/ld-linux.so.2 ]; then
+ echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
fi
# The dynamic linker is passed in `ldflagsBefore' to allow
@@ -78,7 +80,7 @@ stdenv.mkDerivation {
'')
+ optionalString (!nativeLibc) ''
- # The "-B$libc/lib/" flag is a quick hack to force gcc to link
+ # The "-B${libc_lib}/lib/" flag is a quick hack to force gcc to link
# against the crt1.o from our own glibc, rather than the one in
# /usr/lib. (This is only an issue when using an `impure'
# compiler/linker, i.e., one that searches /usr/lib and so on.)
@@ -89,11 +91,11 @@ stdenv.mkDerivation {
# compile, because it uses "#include_next " to find the
# limits.h file in ../includes-fixed. To remedy the problem,
# another -idirafter is necessary to add that directory again.
- echo "-B$libc/lib/ -idirafter $libc/include -idirafter $cc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
+ echo "-B${libc_lib}/lib/ -idirafter ${libc_dev}/include -idirafter ${cc}/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
- echo "-L$libc/lib" > $out/nix-support/libc-ldflags
+ echo "-L${libc_lib}/lib" > $out/nix-support/libc-ldflags
- echo $libc > $out/nix-support/orig-libc
+ echo "${libc_lib}" > $out/nix-support/orig-libc
''
+ (if nativeTools then ''
@@ -102,23 +104,23 @@ stdenv.mkDerivation {
'' else ''
echo $cc > $out/nix-support/orig-cc
- # GCC shows $cc/lib in `gcc -print-search-dirs', but not
- # $cc/lib64 (even though it does actually search there...)..
+ # GCC shows ${cc_solib}/lib in `gcc -print-search-dirs', but not
+ # ${cc_solib}/lib64 (even though it does actually search there...)..
# This confuses libtool. So add it to the compiler tool search
# path explicitly.
- if [ -e "$cc/lib64" -a ! -L "$cc/lib64" ]; then
- ccLDFlags+=" -L$cc/lib64"
- ccCFlags+=" -B$cc/lib64"
+ if [ -e "${cc_solib}/lib64" -a ! -L "${cc_solib}/lib64" ]; then
+ ccLDFlags+=" -L${cc_solib}/lib64"
+ ccCFlags+=" -B${cc_solib}/lib64"
fi
- ccLDFlags+=" -L$cc/lib"
+ ccLDFlags+=" -L${cc_solib}/lib"
${optionalString cc.langVhdl or false ''
- ccLDFlags+=" -L${zlib}/lib"
+ ccLDFlags+=" -L${zlib.out}/lib"
''}
# Find the gcc libraries path (may work only without multilib).
${optionalString cc.langAda or false ''
- basePath=`echo $cc/lib/*/*/*`
+ basePath=`echo ${cc_solib}/lib/*/*/*`
ccCFlags+=" -B$basePath -I$basePath/adainclude"
gnatCFlags="-aI$basePath/adainclude -aO$basePath/adalib"
echo "$gnatCFlags" > $out/nix-support/gnat-cflags
@@ -134,13 +136,13 @@ stdenv.mkDerivation {
echo "$ccLDFlags" > $out/nix-support/cc-ldflags
echo "$ccCFlags" > $out/nix-support/cc-cflags
- ccPath="$cc/bin"
- ldPath="$binutils/bin"
+ ccPath="${cc}/bin"
+ ldPath="${binutils_bin}/bin"
# Propagate the wrapped cc so that if you install the wrapper,
# you get tools like gcov, the manpages, etc. as well (including
# for binutils and Glibc).
- echo $cc $binutils $libc > $out/nix-support/propagated-user-env-packages
+ echo ${cc} ${cc.man or ""} ${binutils_bin} ${libc_bin} > $out/nix-support/propagated-user-env-packages
echo ${toString extraPackages} > $out/nix-support/propagated-native-build-inputs
''
@@ -162,12 +164,12 @@ stdenv.mkDerivation {
wrap ld ${./ld-wrapper.sh} ''${ld:-$ldPath/ld}
- if [ -e $binutils/bin/ld.gold ]; then
- wrap ld.gold ${./ld-wrapper.sh} $binutils/bin/ld.gold
+ if [ -e ${binutils_bin}/bin/ld.gold ]; then
+ wrap ld.gold ${./ld-wrapper.sh} ${binutils_bin}/bin/ld.gold
fi
- if [ -e $binutils/bin/ld.bfd ]; then
- wrap ld.bfd ${./ld-wrapper.sh} $binutils/bin/ld.bfd
+ if [ -e ${binutils_bin}/bin/ld.bfd ]; then
+ wrap ld.bfd ${./ld-wrapper.sh} ${binutils_bin}/bin/ld.bfd
fi
export real_cc=cc
diff --git a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
index 012f826a111e0..0d74527dd8add 100644
--- a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
@@ -1,7 +1,7 @@
#! @shell@ -e
path_backup="$PATH"
-if [ -n "@coreutils@" ]; then
- PATH="@coreutils@/bin"
+if [ -n "@coreutils_bin@" ]; then
+ PATH="@coreutils_bin@/bin"
fi
if [ -n "$NIX_GNAT_WRAPPER_START_HOOK" ]; then
diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
index 449a864590456..28d73f046e68f 100644
--- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
@@ -1,7 +1,7 @@
#! @shell@ -e
path_backup="$PATH"
-if [ -n "@coreutils@" ]; then
- PATH="@coreutils@/bin"
+if [ -n "@coreutils_bin@" ]; then
+ PATH="@coreutils_bin@/bin"
fi
if [ -n "$NIX_LD_WRAPPER_START_HOOK" ]; then
diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh
index 35620483d2bc0..f4f7ab181d3e0 100644
--- a/pkgs/build-support/cc-wrapper/setup-hook.sh
+++ b/pkgs/build-support/cc-wrapper/setup-hook.sh
@@ -22,20 +22,20 @@ envHooks+=(addCVars)
# Note: these come *after* $out in the PATH (see setup.sh).
-if [ -n "@binutils@" ]; then
- addToSearchPath _PATH @binutils@/bin
-fi
-
if [ -n "@cc@" ]; then
addToSearchPath _PATH @cc@/bin
fi
-if [ -n "@libc@" ]; then
- addToSearchPath _PATH @libc@/bin
+if [ -n "@binutils_bin@" ]; then
+ addToSearchPath _PATH @binutils_bin@/bin
+fi
+
+if [ -n "@libc_bin@" ]; then
+ addToSearchPath _PATH @libc_bin@/bin
fi
-if [ -n "@coreutils@" ]; then
- addToSearchPath _PATH @coreutils@/bin
+if [ -n "@coreutils_bin@" ]; then
+ addToSearchPath _PATH @coreutils_bin@/bin
fi
if [ -z "$crossConfig" ]; then
diff --git a/pkgs/build-support/gcc-wrapper-old/builder.sh b/pkgs/build-support/gcc-wrapper-old/builder.sh
index 7bb487096145f..a8e8a370ec0d0 100644
--- a/pkgs/build-support/gcc-wrapper-old/builder.sh
+++ b/pkgs/build-support/gcc-wrapper-old/builder.sh
@@ -24,7 +24,7 @@ if test -z "$nativeLibc"; then
# compile, because it uses "#include_next " to find the
# limits.h file in ../includes-fixed. To remedy the problem,
# another -idirafter is necessary to add that directory again.
- echo "-B$libc/lib/ -idirafter $libc/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
+ echo "-B$libc/lib/ -idirafter $libc_dev/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
echo "-L$libc/lib" > $out/nix-support/libc-ldflags
@@ -39,9 +39,9 @@ if test -n "$nativeTools"; then
ldPath="$nativePrefix/bin"
else
if test -e "$gcc/lib64"; then
- gccLDFlags="$gccLDFlags -L$gcc/lib64"
+ gccLDFlags="$gccLDFlags -L$gcc_lib/lib64"
fi
- gccLDFlags="$gccLDFlags -L$gcc/lib"
+ gccLDFlags="$gccLDFlags -L$gcc_lib/lib"
if [ -n "$langVhdl" ]; then
gccLDFlags="$gccLDFlags -L$zlib/lib"
fi
@@ -95,6 +95,7 @@ doSubstitute() {
-e "s^@binutils@^$binutils^g" \
-e "s^@coreutils@^$coreutils^g" \
-e "s^@libc@^$libc^g" \
+ -e "s^@libc_bin@^$libc_bin^g" \
-e "s^@ld@^$ld^g" \
< "$src" > "$dst"
}
@@ -210,5 +211,5 @@ cp -p $utils $out/nix-support/utils.sh
# tools like gcov, the manpages, etc. as well (including for binutils
# and Glibc).
if test -z "$nativeTools"; then
- echo $gcc $binutils $libc > $out/nix-support/propagated-user-env-packages
+ echo $gcc $binutils $libc $libc_bin > $out/nix-support/propagated-user-env-packages
fi
diff --git a/pkgs/build-support/gcc-wrapper-old/default.nix b/pkgs/build-support/gcc-wrapper-old/default.nix
index 20f1bc97ad1b8..f44aaec5d9d77 100644
--- a/pkgs/build-support/gcc-wrapper-old/default.nix
+++ b/pkgs/build-support/gcc-wrapper-old/default.nix
@@ -41,7 +41,10 @@ stdenv.mkDerivation {
addFlags = ./add-flags;
inherit nativeTools nativeLibc nativePrefix gcc;
+ gcc_lib = gcc.lib or gcc;
libc = if nativeLibc then null else libc;
+ libc_dev = if nativeLibc then null else libc.dev or libc;
+ libc_bin = if nativeLibc then null else libc.bin or libc;
binutils = if nativeTools then null else binutils;
# The wrapper scripts use 'cat', so we may need coreutils
coreutils = if nativeTools then null else coreutils;
diff --git a/pkgs/build-support/gcc-wrapper-old/setup-hook.sh b/pkgs/build-support/gcc-wrapper-old/setup-hook.sh
index 298ade21d1f59..d8bdf858ae58c 100644
--- a/pkgs/build-support/gcc-wrapper-old/setup-hook.sh
+++ b/pkgs/build-support/gcc-wrapper-old/setup-hook.sh
@@ -25,7 +25,7 @@ if test -n "@binutils@"; then
fi
if test -n "@libc@"; then
- addToSearchPath PATH @libc@/bin
+ addToSearchPath PATH @libc_bin@/bin
fi
if test -n "@coreutils@"; then
diff --git a/pkgs/build-support/setup-hooks/compress-man-pages.sh b/pkgs/build-support/setup-hooks/compress-man-pages.sh
index 1dd9788419b84..f1d9cf3a3696d 100644
--- a/pkgs/build-support/setup-hooks/compress-man-pages.sh
+++ b/pkgs/build-support/setup-hooks/compress-man-pages.sh
@@ -3,6 +3,7 @@ fixupOutputHooks+=('if [ -z "$dontGzipMan" ]; then compressManPages "$prefix"; f
compressManPages() {
local dir="$1"
+ if [ ! -d "$dir/share/man" ]; then return; fi
echo "gzipping man pages in $dir"
GLOBIGNORE=.:..:*.gz:*.bz2
diff --git a/pkgs/build-support/setup-hooks/move-docs.sh b/pkgs/build-support/setup-hooks/move-docs.sh
index 57b71c15691d0..ef31dcdce2747 100644
--- a/pkgs/build-support/setup-hooks/move-docs.sh
+++ b/pkgs/build-support/setup-hooks/move-docs.sh
@@ -2,7 +2,7 @@
# $out/share/man to $man/share/man; and moves $out/share/doc to
# $man/share/doc.
-preFixupHooks+=(_moveDocs)
+preFixupHooks+=(_moveToShare)
_moveToShare() {
forceShare=${forceShare:=man doc info}
@@ -21,31 +21,3 @@ _moveToShare() {
done
}
-_moveToOutput() {
- local d="$1"
- local dst="$2"
- if [ -z "$dst" -a ! -e $dst/$d ]; then return; fi
- local output
- for output in $outputs; do
- if [ "${!output}" = "$dst" ]; then continue; fi
- if [ -d "${!output}/$d" ]; then
- echo "moving ${!output}/$d to $dst/$d"
- mkdir -p $dst/share
- mv ${!output}/$d $dst/$d
- break
- fi
- done
-}
-
-_moveDocs() {
- _moveToShare
- _moveToOutput share/man "$man"
- _moveToOutput share/info "$info"
- _moveToOutput share/doc "$doc"
- _moveToOutput share/gtk-doc "$doc"
-
- # Remove empty share directory.
- if [ -d "$out/share" ]; then
- rmdir $out/share 2> /dev/null || true
- fi
-}
diff --git a/pkgs/build-support/setup-hooks/multiple-outputs.sh b/pkgs/build-support/setup-hooks/multiple-outputs.sh
new file mode 100644
index 0000000000000..2cf08d42ae04b
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/multiple-outputs.sh
@@ -0,0 +1,177 @@
+# The base package for automatic multiple-output splitting. Used in stdenv as well.
+preConfigureHooks+=(_multioutConfig)
+preFixupHooks+=(_multioutDocs)
+preFixupHooks+=(_multioutDevs)
+postFixupHooks+=(_multioutPropagateDev)
+
+# Assign the first string containing nonempty variable to the variable named $1
+_assignFirst() {
+ local varName="$1"
+ local REMOVE=REMOVE # slightly hacky - we allow REMOVE (i.e. not a variable name)
+ shift
+ while [ $# -ge 1 ]; do
+ if [ -n "${!1}" ]; then eval "${varName}"="$1"; return; fi
+ shift
+ done
+ echo "Error: _assignFirst found no valid variant!"
+ return 1 # none found
+}
+# Same as _assignFirst, but only if "$1" = ""
+_overrideFirst() {
+ if [ -z "${!1}" ]; then
+ _assignFirst "$@"
+ fi
+}
+
+
+# Setup chains of sane default values with easy overridability.
+# The variables are global to be usable anywhere during the build.
+# Typical usage in package is defining outputBin = "dev";
+
+_overrideFirst outputDev "dev" "out"
+_overrideFirst outputBin "bin" "out"
+
+_overrideFirst outputInclude "$outputDev"
+
+# so-libs are often among the main things to keep, and so go to $out
+_overrideFirst outputLib "lib" "out"
+
+_overrideFirst outputDoc "doc" "out"
+_overrideFirst outputDocdev "docdev" REMOVE # documentation for developers
+# man and info pages are small and often useful to distribute with binaries
+_overrideFirst outputMan "man" "doc" "$outputBin"
+_overrideFirst outputInfo "info" "doc" "$outputMan"
+
+
+# Add standard flags to put files into the desired outputs.
+_multioutConfig() {
+ if [ "$outputs" = "out" ] || [ -z "${setOutputFlags-1}" ]; then return; fi;
+
+ configureFlags="\
+ --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
+ --includedir=${!outputInclude}/include --oldincludedir=${!outputInclude}/include \
+ --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
+ --docdir=${!outputDoc}/share/doc \
+ --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
+ --localedir=${!outputLib}/share/locale \
+ $configureFlags"
+
+ installFlags="\
+ pkgconfigdir=${!outputDev}/lib/pkgconfig \
+ m4datadir=${!outputDev}/share/aclocal aclocaldir=${!outputDev}/share/aclocal \
+ $installFlags"
+}
+
+# Add rpath prefixes to library paths, and avoid stdenv doing it for $out.
+_addRpathPrefix "${!outputLib}"
+NIX_NO_SELF_RPATH=1
+
+
+# Move subpaths that match pattern $1 from under any output/ to the $2 output/
+# Beware: only globbing patterns are accepted, e.g.: * ? {foo,bar}
+# A special target "REMOVE" is allowed: moveToOutput foo REMOVE
+moveToOutput() {
+ local patt="$1"
+ local dstOut="$2"
+ local output
+ for output in $outputs; do
+ if [ "${!output}" = "$dstOut" ]; then continue; fi
+ local srcPath
+ for srcPath in "${!output}"/$patt; do
+ if [ ! -e "$srcPath" ]; then continue; fi
+
+ if [ "$dstOut" = REMOVE ]; then
+ echo "Removing $srcPath"
+ rm -r "$srcPath"
+ else
+ local dstPath="$dstOut${srcPath#${!output}}"
+ echo "Moving $srcPath to $dstPath"
+
+ if [ -d "$dstPath" ] && [ -d "$srcPath" ]
+ then # attempt directory merge
+ # check the case of trying to move an empty directory
+ rmdir "$srcPath" --ignore-fail-on-non-empty
+ if [ -d "$srcPath" ]; then
+ mv -t "$dstPath" "$srcPath"/*
+ rmdir "$srcPath"
+ fi
+ else # usual move
+ mkdir -p "$(readlink -m "$dstPath/..")"
+ mv "$srcPath" "$dstPath"
+ fi
+ fi
+
+ # remove empty directories, printing iff at least one gets removed
+ local srcParent="$(readlink -m "$srcPath/..")"
+ if rmdir "$srcParent"; then
+ echo "Removing empty $srcParent/ and (possibly) its parents"
+ rmdir -p --ignore-fail-on-non-empty "$(readlink -m "$srcParent/..")" \
+ 2> /dev/null || true # doesn't ignore failure for some reason
+ fi
+ done
+ done
+}
+
+# Move documentation to the desired outputs.
+_multioutDocs() {
+ local REMOVE=REMOVE # slightly hacky - we expand ${!outputFoo}
+
+ moveToOutput share/info "${!outputInfo}"
+ moveToOutput share/doc "${!outputDoc}"
+ moveToOutput share/gtk-doc "${!outputDocdev}"
+
+ # the default outputMan is in $bin
+ moveToOutput share/man "${!outputMan}"
+ moveToOutput share/man/man3 "${!outputDocdev}"
+}
+
+# Move development-only stuff to the desired outputs.
+_multioutDevs() {
+ if [ "$outputs" = "out" ] || [ -z "${moveToDev-1}" ]; then return; fi;
+ moveToOutput include "${!outputInclude}"
+ # these files are sometimes provided even without using the corresponding tool
+ moveToOutput lib/pkgconfig "${!outputDev}"
+ moveToOutput share/pkgconfig "${!outputDev}"
+ moveToOutput lib/cmake "${!outputDev}"
+ moveToOutput share/aclocal "${!outputDev}"
+ # don't move *.la, as libtool needs them in the directory of the library
+
+ for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc; do
+ echo "Patching '$f' includedir to output ${!outputInclude}"
+ sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f"
+ done
+}
+
+# Make the first output (typically "dev") propagate other outputs needed for development.
+# Take the first, because that's what one gets when putting the package into buildInputs.
+# Note: during the build, probably only the "native" development packages are useful.
+# With current cross-building setup, all packages are "native" if not cross-building.
+_multioutPropagateDev() {
+ if [ "$outputs" = "out" ]; then return; fi;
+
+ local outputFirst
+ for outputFirst in $outputs; do
+ break
+ done
+
+ # Default value: propagate binaries, includes and libraries
+ if [ -z "${propagatedBuildOutputs+1}" ]; then
+ local po_dirty="$outputBin $outputInclude $outputLib"
+ set +o pipefail
+ propagatedBuildOutputs=`echo "$po_dirty" \
+ | tr -s ' ' '\n' | grep -v -F "$outputFirst" \
+ | sort -u | tr '\n' ' ' `
+ set -o pipefail
+ fi
+
+ # The variable was explicitly set to empty or we resolved it so
+ if [ -z "$propagatedBuildOutputs" ]; then
+ return
+ fi
+
+ mkdir -p "${!outputFirst}"/nix-support
+ for output in $propagatedBuildOutputs; do
+ echo -n " ${!output}" >> "${!outputFirst}"/nix-support/propagated-native-build-inputs
+ done
+}
+
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 774c1b700c695..e670e1ef2258d 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -40,9 +40,9 @@ rec {
mkdir -p $out/lib
# Copy what we need from Glibc.
- cp -p ${pkgs.stdenv.glibc}/lib/ld-linux*.so.? $out/lib
- cp -p ${pkgs.stdenv.glibc}/lib/libc.so.* $out/lib
- cp -p ${pkgs.stdenv.glibc}/lib/libm.so.* $out/lib
+ cp -p ${pkgs.stdenv.glibc.out}/lib/ld-linux*.so.? $out/lib
+ cp -p ${pkgs.stdenv.glibc.out}/lib/libc.so.* $out/lib
+ cp -p ${pkgs.stdenv.glibc.out}/lib/libm.so.* $out/lib
# Copy BusyBox.
cp -pd ${pkgs.busybox}/bin/* $out/bin
@@ -584,7 +584,7 @@ rec {
buildCommand = ''
${createRootFS}
- PATH=$PATH:${dpkg}/bin:${dpkg}/bin:${glibc}/bin:${lzma}/bin
+ PATH=$PATH:${dpkg}/bin:${dpkg}/bin:${glibc.bin}/bin:${lzma.bin}/bin
# Unpack the .debs. We do this to prevent pre-install scripts
# (which have lots of circular dependencies) from barfing.
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 56956280feac3..3ee2242adecdf 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -9,7 +9,10 @@ stdenv.mkDerivation rec {
sha256 = "03d6aqgvhcsyciwdhl50h9bwn53iivvd7rbnh8als2ia9jwm2026";
};
+ # keep developer docs separately (man2 and man3)
+ outputs = [ "out" "docdev" ];
makeFlags = [ "MANDIR=$(out)/share/man" ];
+ postFixup = ''moveToOutput share/man/man2 "$docdev" '';
meta = with stdenv.lib; {
description = "Linux development manual pages";
diff --git a/pkgs/data/documentation/std-man-pages/default.nix b/pkgs/data/documentation/std-man-pages/default.nix
index 3b45da914d25a..c438f839dbdaa 100644
--- a/pkgs/data/documentation/std-man-pages/default.nix
+++ b/pkgs/data/documentation/std-man-pages/default.nix
@@ -2,12 +2,14 @@
stdenv.mkDerivation rec {
name = "std-man-pages-4.4.0";
-
+
src = fetchurl {
url = mirror://gcc/libstdc++/doxygen/libstdc++-man.4.4.0.tar.bz2;
sha256 = "0153py77ll759jacq41dp2z2ksr08pdcfic0rwjd6pr84dk89y9v";
};
+ outputDocdev = "out";
+
installPhase = ''
mkdir -p $out/share/man
cp -R * $out/share/man
diff --git a/pkgs/data/documentation/stdman/default.nix b/pkgs/data/documentation/stdman/default.nix
index 33c002e980132..249e5b6841bf8 100644
--- a/pkgs/data/documentation/stdman/default.nix
+++ b/pkgs/data/documentation/stdman/default.nix
@@ -11,13 +11,15 @@ stdenv.mkDerivation rec {
sha256 = "09c5gjhcz97ghfrv9zkgfb1wckvmqnhbzga0xidbm1ir7640di8l";
};
+ outputDocdev = "out";
+
preConfigure = "
patchShebangs ./configure
patchShebangs ./do_install
";
buildInputs = [ curl ];
-
+
meta = with stdenv.lib; {
description = "Formatted C++11/14 stdlib man pages (cppreference)";
longDescription = "stdman is a tool that parses archived HTML
diff --git a/pkgs/data/misc/media-player-info/default.nix b/pkgs/data/misc/media-player-info/default.nix
index f31c7c503a291..9cfb89914b111 100644
--- a/pkgs/data/misc/media-player-info/default.nix
+++ b/pkgs/data/misc/media-player-info/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, python3, udev }:
+{ stdenv, fetchurl, pkgconfig, python3, udev, systemd }:
let
name = "media-player-info-22";
@@ -12,7 +12,7 @@ in
sha256 = "0di3gfx5z8c34yspzyllydr5snzg71r985kbqhrhb1il51qxgrvy";
};
- buildInputs = [ udev ];
+ buildInputs = [ udev systemd ];
nativeBuildInputs = [ pkgconfig python3 ];
postPatch = ''
diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix
index 5b51da58e6221..8ffd213306022 100644
--- a/pkgs/data/misc/tzdata/default.nix
+++ b/pkgs/data/misc/tzdata/default.nix
@@ -16,14 +16,16 @@ stdenv.mkDerivation rec {
];
sourceRoot = ".";
- outputs = [ "out" "lib" ];
+
+ outputs = [ "out" "man" "dev" ];
+ propagatedBuildOutputs = [];
makeFlags = [
"TOPDIR=$(out)"
"TZDIR=$(out)/share/zoneinfo"
"ETCDIR=$(TMPDIR)/etc"
- "LIBDIR=$(lib)/lib"
- "MANDIR=$(TMPDIR)/man"
+ "LIBDIR=$(dev)/lib"
+ "MANDIR=$(man)/man"
"AWK=awk"
"CFLAGS=-DHAVE_LINK=0"
];
@@ -34,8 +36,8 @@ stdenv.mkDerivation rec {
ln -s . $out/share/zoneinfo/posix
mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
- mkdir -p "$lib/include"
- cp tzfile.h "$lib/include/tzfile.h"
+ mkdir -p "$dev/include"
+ cp tzfile.h "$dev/include/tzfile.h"
'';
meta = {
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix
index c2124f0b29283..3df091fd48a7c 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, dbus, bullet, luajit, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg, dbus_libs, alsaLib, poppler, libraw, libspectre, xineLib, libwebp, curl, libinput }:
+{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, freetype, fontconfig, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, dbus, bullet, luajit, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg, dbus_libs, alsaLib, poppler, libraw, libspectre, xineLib, libwebp, curl, libinput, systemd }:
stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig openssl zlib freetype fontconfig fribidi SDL2 SDL mesa
giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base
gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto
- xorg.libX11 udev utillinux ];
+ xorg.libX11 udev utillinux systemd ];
propagatedBuildInputs = [ libxkbcommon python27Packages.dbus dbus libjpeg xorg.libXcomposite
xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
"--disable-tslib" "--with-systemdunitdir=$out/systemd/user"
"ac_ct_CXX=foo" ];
- NIX_CFLAGS_COMPILE = [ "-I${xorg.libXtst}" "-I${dbus_libs}/include/dbus-1.0" "-I${dbus_libs}/lib/dbus-1.0/include" ];
+ NIX_CFLAGS_COMPILE = [ "-I${xorg.libXtst}" "-I${dbus_libs.dev}/include/dbus-1.0" "-I${dbus_libs.lib}/lib/dbus-1.0/include" ];
patches = [ ./efl-elua.patch ];
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
index f31875bed91c3..50f2cd0813323 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
sha256 = "02r9gv3a4a705jf3h7c0bizn33c73wz0iw2500m7z291nrnmqkmj";
};
- buildInputs = [ dbus.libs libgcrypt pam python gtk GConf libgnome_keyring ];
+ buildInputs = [ dbus libgcrypt pam python gtk GConf libgnome_keyring ];
propagatedBuildInputs = [ glib libtasn1 ];
diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix
index a9bb87d4dddfc..100dfbf3acec5 100644
--- a/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar"
"--disable-libcryptui" ];
- NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0";
+ NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix
index 4c42c6c026d3c..48b45f28522e1 100644
--- a/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
gnome3.defaultIconTheme gnome3.gsettings_desktop_schemas
file libtool librsvg ];
- NIX_CFLAGS_COMPILE = [ "-I${dbus_glib}/include/dbus-1.0"
- "-I${dbus_libs}/include/dbus-1.0"
- "-I${dbus_libs}/lib/dbus-1.0/include" ];
+ NIX_CFLAGS_COMPILE = [ "-I${dbus_glib.dev}/include/dbus-1.0"
+ "-I${dbus_libs.dev}/include/dbus-1.0"
+ "-I${dbus_libs.lib}/lib/dbus-1.0/include" ];
preFixup = ''
for f in $out/bin/* $out/libexec/*; do
diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix
index 322dd3bedac6c..d50036a597e66 100644
--- a/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
gdk_pixbuf gnome3.defaultIconTheme librsvg which gnome_common
gcr avahi gnome3.gsettings_desktop_schemas gnome3.dconf ];
- NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0";
+ NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-3/3.18/core/folks/default.nix b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix
index 6e200bdb3188f..4385c6b6f75b8 100644
--- a/pkgs/desktops/gnome-3/3.18/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix
@@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
configureFlags = "--disable-fatal-warnings";
- NIX_CFLAGS_COMPILE = ["-I${nspr}/include/nspr" "-I${nss}/include/nss"
- "-I${dbus_glib}/include/dbus-1.0" "-I${dbus_libs}/include/dbus-1.0"];
+ NIX_CFLAGS_COMPILE = ["-I${nspr.dev}/include/nspr" "-I${nss.dev}/include/nss"
+ "-I${dbus_glib.dev}/include/dbus-1.0" "-I${dbus_libs.dev}/include/dbus-1.0"];
enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix
index 51b67afb01fd7..3749be2de27f7 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix
@@ -11,9 +11,9 @@ stdenv.mkDerivation rec {
};
preConfigure = ''
- substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X"
+ substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X"
substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session'
- substituteInPlace daemon/gdm-launch-environment.c --replace 'BINDIR "/dbus-launch' '"${dbus.tools}/bin/dbus-launch'
+ substituteInPlace daemon/gdm-launch-environment.c --replace 'BINDIR "/dbus-launch' '"${dbus.dbus-launch}'
substituteInPlace data/gdm.conf-custom.in --replace '#WaylandEnable=false' 'WaylandEnable=false'
sed 's/#Enable=true/Enable=true/' -i data/gdm.conf-custom.in
'';
diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
index 1db969651317c..a13370e5c9a9d 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
# Only needed to make it build
preConfigure = ''
- substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X"
+ substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X"
'';
configureFlags = [ "--sysconfdir=/etc"
diff --git a/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix
index 792e34c7b1480..ac53726bc537a 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ spidermonkey_24 ];
postInstall = ''
- sed 's|-lreadline|-L${readline}/lib -lreadline|g' -i $out/lib/libgjs.la
+ sed 's|-lreadline|-L${readline.out}/lib -lreadline|g' -i $out/lib/libgjs.la
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix
index 1d1f9d18c5662..51e3f6ab31332 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/gnome-dictionary" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+ --prefix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix
index d810fbb862b72..c6688fd30cd77 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix
@@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
inherit (import ./src.nix fetchurl) name src;
- NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
+ NIX_CFLAGS_COMPILE = "-I${dbus_glib.dev}/include/dbus-1.0 -I${dbus_libs.dev}/include/dbus-1.0";
enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix
index 763fc990bdab1..15d93793088bb 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/gnome-screenshot" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+ --prefix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix
index 716f92a072d46..6b7b28ad4000e 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/gnome-system-log" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+ --prefix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix
index 49ad40912c66b..e8f6498350627 100644
--- a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf
'';
- configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd"
- "--with-modules-path=${apacheHttpd_2_2}/modules"
+ configureFlags = [ "--with-httpd=${apacheHttpd_2_2.out}/bin/httpd"
+ "--with-modules-path=${apacheHttpd_2_2.out}/modules"
"--disable-bluetooth"
"--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ];
diff --git a/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix
index e8ddf7096e622..76d9118c4b956 100644
--- a/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix
index 5ccca36bcaad5..cbb52c9aaa129 100644
--- a/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
postInstall = ''
- substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses"
+ substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses.out}/lib -lncurses"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/default.nix b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix
index 334718403a0db..38850f0fe761b 100644
--- a/pkgs/desktops/gnome-3/3.18/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix
@@ -20,7 +20,7 @@ let baseAttrs = rec {
enableParallelBuilding = true;
postInstall = ''
- substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses"
+ substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses.out}/lib -lncurses"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix
index 19f340ac291e1..e7f833bf71723 100644
--- a/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
wrapProgram "$out/bin/gitg" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix
index 986d4058af92e..d0c6674ad9bde 100644
--- a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
preFixup = ''
wrapProgram "$out/bin/gnome-tweak-tool" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
- --suffix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+ --suffix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
'';
diff --git a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
index eeb2cee86cdd1..fd7ecbea01ffd 100644
--- a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
};
buildInputs = [ intltool autoreconfHook pkgconfig vala glib
- gtk3 gnome3.gnome_control_center dbus.libs
+ gtk3 gnome3.gnome_control_center dbus
clutter pango appstream-glib makeWrapper ];
preConfigure = "intltoolize -f";
diff --git a/pkgs/desktops/kde-4.14/kde-runtime.nix b/pkgs/desktops/kde-4.14/kde-runtime.nix
index 655555cd140ab..495ea242e0d0a 100644
--- a/pkgs/desktops/kde-4.14/kde-runtime.nix
+++ b/pkgs/desktops/kde-4.14/kde-runtime.nix
@@ -16,7 +16,7 @@ kde {
nativeBuildInputs = [ shared_mime_info ];
- NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
+ NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
passthru.propagatedUserEnvPackages = [ virtuoso ];
diff --git a/pkgs/desktops/kde-4.14/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.14/kdenetwork/kopete.nix
index 267c2b7821294..f5750d60045f3 100644
--- a/pkgs/desktops/kde-4.14/kdenetwork/kopete.nix
+++ b/pkgs/desktops/kde-4.14/kdenetwork/kopete.nix
@@ -9,6 +9,7 @@ kde {
patches = [
(fetchurl {
+ name = "kopete.patch";
url = "https://bugs.kde.org/attachment.cgi?id=91567";
sha256 = "0a44rjiqzn6v3sywm17d1741sygbvlfnbqadq7qbdj3amny014m1";
})
diff --git a/pkgs/desktops/kde-5/applications-15.12/kcalc.nix b/pkgs/desktops/kde-5/applications-15.12/kcalc.nix
index a1f0316825dae..e4c8e9d69253d 100644
--- a/pkgs/desktops/kde-5/applications-15.12/kcalc.nix
+++ b/pkgs/desktops/kde-5/applications-15.12/kcalc.nix
@@ -1,14 +1,14 @@
{ kdeApp
, lib
+, makeQtWrapper
, extra-cmake-modules
+, gmp
, kdoctools
-, makeQtWrapper
, kconfig
, kconfigwidgets
, kguiaddons
, kinit
, knotifications
-
}:
kdeApp {
@@ -20,6 +20,7 @@ kdeApp {
];
buildInputs = [
+ gmp
kconfig
kconfigwidgets
kguiaddons
diff --git a/pkgs/desktops/kde-5/applications-15.12/kde-app.nix b/pkgs/desktops/kde-5/applications-15.12/kde-app.nix
index 242f3d9c793d3..2f1fdc1d643c5 100644
--- a/pkgs/desktops/kde-5/applications-15.12/kde-app.nix
+++ b/pkgs/desktops/kde-5/applications-15.12/kde-app.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation (args // {
name = "${name}-${version}";
inherit src;
+ outputs = args.outputs or [ "dev" "out" ];
+
cmakeFlags =
(args.cmakeFlags or [])
++ [ "-DBUILD_TESTING=OFF" ]
diff --git a/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix b/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix
index 4b612ee3e3c28..e83794c60d818 100644
--- a/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix
+++ b/pkgs/desktops/kde-5/applications-15.12/kde-locale-4.nix
@@ -6,6 +6,8 @@ kdeApp (args // {
sname = "kde-l10n-${name}";
name = "kde-l10n-${name}-qt4";
+ outputs = [ "out" ];
+
nativeBuildInputs =
[ automoc4 cmake gettext perl ]
++ (args.nativeBuildInputs or []);
@@ -17,4 +19,9 @@ kdeApp (args // {
sed -e 's/add_subdirectory(5)//' -i CMakeLists.txt
${args.preConfigure or ""}
'';
+
+ preFixup = ''
+ propagatedBuildInputs=
+ propagatedNativeBuildInputs=
+ '';
})
diff --git a/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix b/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix
index 522fc542aeb2d..772ebe37e44f1 100644
--- a/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix
+++ b/pkgs/desktops/kde-5/applications-15.12/kde-locale-5.nix
@@ -6,6 +6,8 @@ kdeApp (args // {
sname = "kde-l10n-${name}";
name = "kde-l10n-${name}-qt5";
+ outputs = [ "out" ];
+
nativeBuildInputs =
[ cmake extra-cmake-modules gettext kdoctools ]
++ (args.nativeBuildInputs or []);
@@ -14,4 +16,9 @@ kdeApp (args // {
sed -e 's/add_subdirectory(4)//' -i CMakeLists.txt
${args.preConfigure or ""}
'';
+
+ preFixup = ''
+ propagatedBuildInputs=
+ propagatedNativeBuildInputs=
+ '';
})
diff --git a/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix b/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix
index a30b19774f2a3..389362deecc61 100644
--- a/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix
+++ b/pkgs/desktops/kde-5/applications-15.12/kdelibs/default.nix
@@ -2,16 +2,18 @@
, docbook_xml_dtd_42, docbook_xsl, flex, giflib, ilmbase
, libdbusmenu_qt, libjpeg, libxml2, libxslt, perl, phonon, pkgconfig
, polkit_qt4, qca2, qt4, shared_desktop_ontologies, shared_mime_info
-, soprano, strigi, udev, xz
+, soprano, strigi, udev, xz, pcre
, lib
}:
kdeApp {
name = "kdelibs";
+ outputs = [ "out" ];
+
buildInputs = [
attica attr avahi giflib libdbusmenu_qt libjpeg libxml2
- polkit_qt4 qca2 shared_desktop_ontologies udev xz
+ polkit_qt4 qca2 shared_desktop_ontologies udev xz pcre
];
propagatedBuildInputs = [ qt4 soprano phonon strigi ];
nativeBuildInputs = [
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix b/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix
index 879262c56a417..44cc99daf261b 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/breeze-icons.nix
@@ -6,5 +6,5 @@
kdeFramework {
name = "breeze-icons";
nativeBuildInputs = [ extra-cmake-modules ];
- propagatedUserEnvPkgs = [ qtsvg ];
+ buildInputs = [ qtsvg ];
}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/default.nix
index cd314e27cacbc..2c15f31a9c9e6 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/default.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/default.nix
@@ -29,6 +29,8 @@ let
name = "${name}-${version}";
inherit src;
+ outputs = args.outputs or [ "dev" "out" ];
+
cmakeFlags =
(args.cmakeFlags or [])
++ [ "-DBUILD_TESTING=OFF" ]
@@ -64,14 +66,14 @@ let
kdbusaddons = callPackage ./kdbusaddons.nix {};
kdeclarative = callPackage ./kdeclarative.nix {};
kded = callPackage ./kded.nix {};
- kdelibs4support = callPackage ./kdelibs4support.nix {};
+ kdelibs4support = callPackage ./kdelibs4support {};
kdesignerplugin = callPackage ./kdesignerplugin.nix {};
kdewebkit = callPackage ./kdewebkit.nix {};
kdesu = callPackage ./kdesu.nix {};
kdnssd = callPackage ./kdnssd.nix {};
kdoctools = callPackage ./kdoctools {};
kemoticons = callPackage ./kemoticons.nix {};
- kfilemetadata = callPackage ./kfilemetadata.nix {};
+ kfilemetadata = callPackage ./kfilemetadata {};
kglobalaccel = callPackage ./kglobalaccel.nix {};
kguiaddons = callPackage ./kguiaddons.nix {};
khtml = callPackage ./khtml.nix {};
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
deleted file mode 100644
index 9717716faf5b6..0000000000000
--- a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 3cc148e878b69fc3e0228f3e3bf1bbe689dad87c Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel
-Date: Fri, 20 Feb 2015 23:17:39 -0600
-Subject: [PATCH] extra-cmake-modules paths
-
----
- kde-modules/KDEInstallDirs.cmake | 37 ++++---------------------------------
- 1 file changed, 4 insertions(+), 33 deletions(-)
-
-diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake
-index b7cd34d..2f868ac 100644
---- a/kde-modules/KDEInstallDirs.cmake
-+++ b/kde-modules/KDEInstallDirs.cmake
-@@ -193,37 +193,8 @@
- # (To distribute this file outside of extra-cmake-modules, substitute the full
- # License text for the above reference.)
-
--# Figure out what the default install directory for libraries should be.
--# This is based on the logic in GNUInstallDirs, but simplified (the
--# GNUInstallDirs code deals with re-configuring, but that is dealt with
--# by the _define_* macros in this module).
-+# The default library directory on NixOS is *always* /lib.
- set(_LIBDIR_DEFAULT "lib")
--# Override this default 'lib' with 'lib64' iff:
--# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling
--# - we are NOT on debian
--# - we are on a 64 bits system
--# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
--# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
--# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
--# See http://wiki.debian.org/Multiarch
--if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
-- AND NOT CMAKE_CROSSCOMPILING)
-- if (EXISTS "/etc/debian_version") # is this a debian system ?
-- if(CMAKE_LIBRARY_ARCHITECTURE)
-- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
-- endif()
-- else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
-- if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
-- message(AUTHOR_WARNING
-- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. "
-- "Please enable at least one language before including KDEInstallDirs.")
-- else()
-- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
-- set(_LIBDIR_DEFAULT "lib64")
-- endif()
-- endif()
-- endif()
--endif()
-
- set(_gnu_install_dirs_vars
- BINDIR
-@@ -445,15 +416,15 @@ if(KDE_INSTALL_USE_QT_SYS_PATHS)
- "QtQuick2 imports"
- QML_INSTALL_DIR)
- else()
-- _define_relative(QTPLUGINDIR LIBDIR "plugins"
-+ _define_relative(QTPLUGINDIR LIBDIR "qt5/plugins"
- "Qt plugins"
- QT_PLUGIN_INSTALL_DIR)
-
-- _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "imports"
-+ _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "qt5/imports"
- "QtQuick1 imports"
- IMPORTS_INSTALL_DIR)
-
-- _define_relative(QMLDIR LIBDIR "qml"
-+ _define_relative(QMLDIR LIBDIR "qt5/qml"
- "QtQuick2 imports"
- QML_INSTALL_DIR)
- endif()
---
-2.3.0
-
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix
index 4e1b1aff3bd14..1c2ea70442d32 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/default.nix
@@ -1,9 +1,11 @@
-{ kdeFramework, lib, stdenv, cmake, pkgconfig, qttools }:
+{ kdeFramework, lib, copyPathsToStore, cmake, pkgconfig, qttools }:
kdeFramework {
name = "extra-cmake-modules";
- patches = [ ./0001-extra-cmake-modules-paths.patch ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+
+ outputs = [ "out" ]; # this package has no runtime components
setupHook = ./setup-hook.sh;
# It is OK to propagate these inputs as long as
@@ -11,8 +13,8 @@ kdeFramework {
# of some other derivation.
propagatedNativeBuildInputs = [ cmake pkgconfig qttools ];
- meta = {
- license = stdenv.lib.licenses.bsd2;
- maintainers = [ lib.maintainers.ttuegel ];
+ meta = with lib; {
+ license = licenses.bsd2;
+ maintainers = [ maintainers.ttuegel ];
};
}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/nix-lib-path.patch b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/nix-lib-path.patch
new file mode 100644
index 0000000000000..a74340a6dc969
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/nix-lib-path.patch
@@ -0,0 +1,37 @@
+Index: extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
+===================================================================
+--- extra-cmake-modules-5.18.0.orig/kde-modules/KDEInstallDirs.cmake
++++ extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
+@@ -200,32 +200,6 @@
+ # GNUInstallDirs code deals with re-configuring, but that is dealt with
+ # by the _define_* macros in this module).
+ set(_LIBDIR_DEFAULT "lib")
+-# Override this default 'lib' with 'lib64' iff:
+-# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling
+-# - we are NOT on debian
+-# - we are on a 64 bits system
+-# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
+-# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
+-# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
+-# See http://wiki.debian.org/Multiarch
+-if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
+- AND NOT CMAKE_CROSSCOMPILING)
+- if (EXISTS "/etc/debian_version") # is this a debian system ?
+- if(CMAKE_LIBRARY_ARCHITECTURE)
+- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+- endif()
+- else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
+- if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
+- message(AUTHOR_WARNING
+- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. "
+- "Please enable at least one language before including KDEInstallDirs.")
+- else()
+- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+- set(_LIBDIR_DEFAULT "lib64")
+- endif()
+- endif()
+- endif()
+-endif()
+
+ set(_gnu_install_dirs_vars
+ BINDIR
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/series b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/series
new file mode 100644
index 0000000000000..b4569e50a5f73
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/series
@@ -0,0 +1 @@
+nix-lib-path.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh
index a6fa6189240b0..56ed09f4ea59e 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh
+++ b/pkgs/desktops/kde-5/frameworks-5.19/extra-cmake-modules/setup-hook.sh
@@ -1,27 +1,81 @@
-addMimePkg() {
- local propagated
+_ecmSetXdgDirs() {
+ addToSearchPathOnce XDG_DATA_DIRS "$1/share"
+ addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg"
+ addToSearchPathOnce NIX_WRAP_XDG_CONFIG_DIRS "$1/etc/xdg"
+}
- if [[ -d "$1/share/mime" ]]; then
- propagated=
- for pkg in $propagatedBuildInputs; do
- if [[ "z$pkg" == "z$1" ]]; then
- propagated=1
- fi
- done
- if [[ -z $propagated ]]; then
- propagatedBuildInputs="$propagatedBuildInputs $1"
+_ecmPropagateSharedData() {
+ local sharedPaths=( \
+ "config.cfg" \
+ "doc" \
+ "kconf_update" \
+ "kservices5" \
+ "kservicetypes5" \
+ "kxmlgui5" \
+ "knotifications5" \
+ "icons" \
+ "sounds" \
+ "templates" \
+ "wallpapers" \
+ "applications" \
+ "desktop-directories" \
+ "mime" \
+ "info" \
+ "dbus-1" \
+ "interfaces" \
+ "services" \
+ "system-services" )
+ for dir in ${sharedPaths[@]}; do
+ if [ -d "$1/share/$dir" ]; then
+ addToSearchPathOnce NIX_WRAP_XDG_DATA_DIRS "$1/share"
+ propagateOnce propagatedUserEnvPkgs "$1"
+ break
fi
+ done
+}
- propagated=
- for pkg in $propagatedUserEnvPkgs; do
- if [[ "z$pkg" == "z$1" ]]; then
- propagated=1
- fi
- done
- if [[ -z $propagated ]]; then
- propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1"
- fi
- fi
+_ecmConfig() {
+ # Because we need to use absolute paths here, we must set *all* the paths.
+ cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}"
+ cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
+ cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
+ cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib"
+ cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec"
+ cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
+ cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins"
+ cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins"
+ cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports"
+ cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml"
+ cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
+ cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
+ cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share"
+ cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share"
+ cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML"
+ cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg"
+ cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update"
+ cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5"
+ cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5"
+ cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5"
+ cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5"
+ cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons"
+ cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
+ cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds"
+ cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates"
+ cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers"
+ cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications"
+ cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories"
+ cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages"
+ cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata"
+ cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man"
+ cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services"
+ cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc"
+ cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg"
+ cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart"
}
-envHooks+=(addMimePkg)
+envHooks+=(_ecmSetXdgDirs _ecmPropagateSharedData)
+preConfigureHooks+=(_ecmConfig)
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kauth/cmake-install-paths.patch b/pkgs/desktops/kde-5/frameworks-5.19/kauth/cmake-install-paths.patch
new file mode 100644
index 0000000000000..c66f5ecd008f8
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kauth/cmake-install-paths.patch
@@ -0,0 +1,17 @@
+Index: kauth-5.18.0/KF5AuthConfig.cmake.in
+===================================================================
+--- kauth-5.18.0.orig/KF5AuthConfig.cmake.in
++++ kauth-5.18.0/KF5AuthConfig.cmake.in
+@@ -4,9 +4,9 @@ set(KAUTH_STUB_FILES_DIR "@PACKAGE_KDE_I
+
+ set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@")
+ set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@")
+-set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@")
+-set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@")
+-set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
++set(KAUTH_POLICY_FILES_INSTALL_DIR "${KDE_INSTALL_DATADIR}/polkit-1/actions")
++set(KAUTH_HELPER_INSTALL_DIR "${KDE_INSTALL_LIBEXECDIR}")
++set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${KDE_INSTALL_LIBEXECDIR}")
+
+ find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@")
+
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix
index 2b000ff3c0417..1352d8c5821f5 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kauth/default.nix
@@ -1,4 +1,4 @@
-{ kdeFramework, lib
+{ kdeFramework, lib, copyPathsToStore
, extra-cmake-modules
, kcoreaddons
, polkit-qt
@@ -9,7 +9,7 @@ kdeFramework {
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ polkit-qt ];
propagatedBuildInputs = [ kcoreaddons ];
- patches = [ ./kauth-policy-install.patch ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
meta = {
maintainers = [ lib.maintainers.ttuegel ];
};
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kauth/series b/pkgs/desktops/kde-5/frameworks-5.19/kauth/series
new file mode 100644
index 0000000000000..d2689425c3876
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kauth/series
@@ -0,0 +1 @@
+cmake-install-paths.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/default.nix
new file mode 100644
index 0000000000000..843db83a99b23
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/default.nix
@@ -0,0 +1,36 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, docbook_xml_dtd_45, kauth
+, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons
+, kcrash, kdbusaddons, kded, kdesignerplugin, kdoctools, kemoticons
+, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels
+, kinit, knotifications, kparts, kservice, ktextwidgets
+, kunitconversion, kwidgetsaddons, kwindowsystem, kxmlgui
+, networkmanager, qtsvg, qtx11extras, xlibs
+}:
+
+# TODO: debug docbook detection
+
+kdeFramework {
+ name = "kdelibs4support";
+ outputs = [ "dev" "out" ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ setupHook = ./setup-hook.sh;
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kcompletion kconfig kded kservice kwidgetsaddons
+ kxmlgui networkmanager qtsvg qtx11extras xlibs.libSM
+ ];
+ propagatedBuildInputs = [
+ kauth karchive kconfigwidgets kcoreaddons kcrash kdbusaddons
+ kdesignerplugin kemoticons kglobalaccel kguiaddons ki18n kio
+ kiconthemes kitemmodels kinit knotifications kparts ktextwidgets
+ kunitconversion kwindowsystem
+ ];
+ cmakeFlags = [
+ "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
+ "-DDocBookXML4_DTD_VERSION=4.5"
+ ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch
new file mode 100644
index 0000000000000..eabb702544830
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch
@@ -0,0 +1,13 @@
+Index: kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp
+===================================================================
+--- kdelibs4support-5.18.0.orig/src/kdecore/kstandarddirs.cpp
++++ kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp
+@@ -292,7 +292,7 @@ static QString relativeInstallPath(const
+ return QFile::decodeName(ICON_INSTALL_DIR "/");
+ }
+ if (strcmp("include", type) == 0) {
+- return QFile::decodeName(INCLUDE_INSTALL_DIR "/");
++ return QFile::decodeName(qgetenv("NIX_KDE_INCLUDE_DIR"));
+ }
+ break;
+ case 'l':
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/series b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/series
new file mode 100644
index 0000000000000..9b08ab208774a
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/series
@@ -0,0 +1 @@
+nix-kde-include-dir.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/setup-hook.sh
new file mode 100644
index 0000000000000..21ac2e83b5dae
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdelibs4support/setup-hook.sh
@@ -0,0 +1 @@
+export NIX_KDE_INCLUDE_DIR="@dev@/include/" # trailing slash is required!
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix
index 138c3fc33b94b..f67c19f42395a 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kdoctools/default.nix
@@ -4,7 +4,6 @@
kdeFramework {
name = "kdoctools";
- setupHook = ./setup-hook.sh;
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ karchive ];
propagatedBuildInputs = [ ki18n ];
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/cmake-install-paths.patch b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/cmake-install-paths.patch
new file mode 100644
index 0000000000000..732f7b69c828d
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/cmake-install-paths.patch
@@ -0,0 +1,13 @@
+Index: kfilemetadata-5.18.0/src/CMakeLists.txt
+===================================================================
+--- kfilemetadata-5.18.0.orig/src/CMakeLists.txt
++++ kfilemetadata-5.18.0/src/CMakeLists.txt
+@@ -49,7 +49,7 @@ install(TARGETS KF5FileMetaData EXPORT K
+
+ install(EXPORT KF5FileMetaDataTargets
+ NAMESPACE KF5::
+- DESTINATION ${LIB_INSTALL_DIR}/cmake/KF5FileMetaData
++ DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF5FileMetaData
+ FILE KF5FileMetaDataTargets.cmake)
+
+ install(FILES
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/default.nix
new file mode 100644
index 0000000000000..9bb4831cf8da2
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/default.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules
+, attr, ebook_tools, exiv2, ffmpeg, karchive, ki18n, poppler, qtbase, taglib
+}:
+
+kdeFramework {
+ name = "kfilemetadata";
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ attr ebook_tools exiv2 ffmpeg karchive poppler taglib ];
+ propagatedBuildInputs = [ qtbase ki18n ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/series b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/series
new file mode 100644
index 0000000000000..d2689425c3876
--- /dev/null
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kfilemetadata/series
@@ -0,0 +1 @@
+cmake-install-paths.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix
index 03b7c7c2f51d4..3a27d85b9166e 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kservice/default.nix
@@ -4,11 +4,10 @@
kdeFramework {
name = "kservice";
- setupHook = ./setup-hook.sh;
- nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ propagatedNativeBuildInputs = [ extra-cmake-modules ];
+ nativeBuildInputs = [ kdoctools ];
buildInputs = [ kcrash kdbusaddons ];
propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ];
- propagatedUserEnvPkgs = [ kcoreaddons ];
patches = [
./0001-qdiriterator-follow-symlinks.patch
./0002-no-canonicalize-path.patch
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix b/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix
index 46e3cb37d1127..5ade5f63a8d04 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kwallet.nix
@@ -1,7 +1,7 @@
{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets
-, kcoreaddons, kdbusaddons, kdoctools, ki18n, kiconthemes, knotifications
-, kservice, kwidgetsaddons, kwindowsystem, libgcrypt, makeQtWrapper
-}:
+, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes
+, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt
+, makeQtWrapper }:
kdeFramework {
name = "kwallet";
diff --git a/pkgs/desktops/kde-5/plasma-5.5/default.nix b/pkgs/desktops/kde-5/plasma-5.5/default.nix
index c9fcbdd8e6a06..384fa6f6d272f 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/default.nix
@@ -26,7 +26,7 @@ let
name = "${name}-${version}";
inherit src;
- setupHook = args.setupHook or ./setup-hook.sh;
+ outputs = args.outputs or [ "dev" "out" ];
cmakeFlags =
(args.cmakeFlags or [])
@@ -48,8 +48,11 @@ let
breeze-qt4 = callPackage ./breeze-qt4.nix {};
breeze-qt5 = callPackage ./breeze-qt5.nix {};
breeze =
- let version = (builtins.parseDrvName breeze-qt5.name).version;
- in symlinkJoin "breeze-${version}" [ breeze-gtk breeze-qt4 breeze-qt5 ];
+ let
+ version = (builtins.parseDrvName breeze-qt5.name).version;
+ in
+ symlinkJoin "breeze-${version}"
+ (map (pkg: pkg.out or pkg) [ breeze-gtk breeze-qt4 breeze-qt5 ]);
kde-cli-tools = callPackage ./kde-cli-tools.nix {};
kde-gtk-config = callPackage ./kde-gtk-config {};
kdecoration = callPackage ./kdecoration.nix {};
diff --git a/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix b/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix
index 6b41599994d5f..ab8867520b380 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kde-gtk-config/default.nix
@@ -22,7 +22,7 @@ plasmaPackage {
];
propagatedBuildInputs = [ ki18n kio ];
cmakeFlags = [
- "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include"
- "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include"
+ "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
+ "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
];
}
diff --git a/pkgs/desktops/kde-5/plasma-5.5/kscreen.nix b/pkgs/desktops/kde-5/plasma-5.5/kscreen.nix
index 2cfd0df2e1d35..a521a79936281 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/kscreen.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/kscreen.nix
@@ -23,11 +23,6 @@ plasmaPackage {
qtdeclarative
qtgraphicaleffects
];
- propagatedUserEnvPkgs = [
- libkscreen # D-Bus service
- qtdeclarative # QML import
- qtgraphicaleffects # QML import
- ];
postInstall = ''
wrapQtProgram "$out/bin/kscreen-console"
'';
diff --git a/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix
index a73060ad1af17..5f27efc7f24ca 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-desktop/default.nix
@@ -60,9 +60,6 @@ plasmaPackage rec {
qtquickcontrols
qtx11extras
];
- # All propagatedBuildInputs should be present in the profile because
- # wrappers cannot be used here.
- propagatedUserEnvPkgs = propagatedBuildInputs;
patches = [
./0001-qt-5.5-QML-import-paths.patch
(substituteAll {
diff --git a/pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix
index afd8a18bbbd6a..7088f45d64e29 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-mediacenter.nix
@@ -17,7 +17,4 @@ plasmaPackage rec {
baloo kactivities kdeclarative kfilemetadata ki18n kio
plasma-framework
];
- # All propagatedBuildInputs should be present in the profile because
- # wrappers cannot be used here.
- propagatedUserEnvPkgs = propagatedBuildInputs;
}
diff --git a/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix
index 2d9364d446ebb..01c5c63ce0aa8 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/default.nix
@@ -11,7 +11,7 @@
, xprop, xrdb, xset, xsetroot, solid, qtquickcontrols
}:
-plasmaPackage rec {
+plasmaPackage {
name = "plasma-workspace";
nativeBuildInputs = [
@@ -20,10 +20,11 @@ plasmaPackage rec {
makeQtWrapper
];
buildInputs = [
- kcmutils kcrash kdbusaddons kdesu kdewebkit kjsembed knewstuff
- knotifyconfig kpackage ktextwidgets kwallet kwayland kxmlrpcclient
- libdbusmenu libSM libXcursor networkmanager-qt pam phonon
- qtscript wayland
+ dbus_tools kcmutils kconfig kcrash kdbusaddons kdesu kdewebkit
+ kinit kjsembed knewstuff knotifyconfig kpackage kservice
+ ktextwidgets kwallet kwayland kxmlrpcclient libdbusmenu libSM
+ libXcursor mkfontdir networkmanager-qt pam phonon qtscript qttools
+ socat wayland xmessage xprop xset xsetroot
];
propagatedBuildInputs = [
baloo kactivities kdeclarative kdelibs4support kglobalaccel
@@ -32,13 +33,31 @@ plasmaPackage rec {
];
patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
- inherit bash coreutils gnused gnugrep socat;
- inherit kconfig kinit kservice qttools;
- inherit dbus_tools mkfontdir xmessage xprop xrdb xset xsetroot;
+
postPatch = ''
- substituteAllInPlace startkde/startkde.cmake
+ substituteInPlace startkde/startkde.cmake \
+ --subst-var-by bash $(type -P bash) \
+ --subst-var-by sed $(type -P sed) \
+ --subst-var-by grep $(type -P grep) \
+ --subst-var-by socat $(type -P socat) \
+ --subst-var-by kcheckrunning $(type -P kcheckrunning) \
+ --subst-var-by xmessage $(type -P xmessage) \
+ --subst-var-by tr $(type -P tr) \
+ --subst-var-by qtpaths $(type -P qtpaths) \
+ --subst-var-by qdbus $(type -P qdbus) \
+ --subst-var-by dbus-launch $(type -P dbus-launch) \
+ --subst-var-by mkfontdir $(type -P mkfontdir) \
+ --subst-var-by xset $(type -P xset) \
+ --subst-var-by xsetroot $(type -P xsetroot) \
+ --subst-var-by xprop $(type -P xprop) \
+ --subst-var-by start_kdeinit_wrapper "${kinit.out}/lib/libexec/kf5/start_kdeinit_wrapper" \
+ --subst-var-by kwrapper5 $(type -P kwrapper5) \
+ --subst-var-by kdeinit5_shutdown $(type -P kdeinit5_shutdown) \
+ --subst-var-by kbuildsycoca5 $(type -P kbuildsycoca5) \
+ --subst-var-by kreadconfig5 $(type -P kreadconfig5) \
+ --subst-var out
substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \
- --replace kdostartupconfig5 $out/bin/kdostartupconfig5
+ --replace kdostartupconfig5 $out/bin/kdostartupconfig5
'';
postInstall = ''
diff --git a/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch
index 802c92da64d07..eea0ae4c199d2 100644
--- a/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch
+++ b/pkgs/desktops/kde-5/plasma-5.5/plasma-workspace/startkde.patch
@@ -1,10 +1,10 @@
-Index: plasma-workspace-5.5.1/startkde/startkde.cmake
+Index: plasma-workspace-5.5.5/startkde/startkde.cmake
===================================================================
---- plasma-workspace-5.5.1.orig/startkde/startkde.cmake
-+++ plasma-workspace-5.5.1/startkde/startkde.cmake
-@@ -1,8 +1,31 @@
+--- plasma-workspace-5.5.5.orig/startkde/startkde.cmake
++++ plasma-workspace-5.5.5/startkde/startkde.cmake
+@@ -1,8 +1,36 @@
-#!/bin/sh
-+#!@bash@/bin/bash
++#!@bash@
#
# DEFAULT KDE STARTUP SCRIPT ( @PROJECT_VERSION@ )
#
@@ -29,13 +29,18 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
+# in Trolltech.conf. A better solution would be to stop
+# Qt from doing this wackiness in the first place.
+if [ -e $HOME/.config/Trolltech.conf ]; then
-+ @gnused@/bin/sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf
++ @sed@ -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf
+fi
++
++# (NixOS) We run kbuildsycoca5 before starting the user session because things
++# may be missing or moved if they have run nixos-rebuild and it may not be
++# possible for them to start Konsole to run it manually!
++@kbuildsycoca5@
+
if test "x$1" = x--failsafe; then
KDE_FAILSAFE=1 # General failsafe flag
KWIN_COMPOSE=N # Disable KWin's compositing
-@@ -17,29 +40,16 @@ trap 'echo GOT SIGHUP' HUP
+@@ -17,29 +45,16 @@ trap 'echo GOT SIGHUP' HUP
# we have to unset this for Darwin since it will screw up KDE's dynamic-loading
unset DYLD_FORCE_FLAT_NAMESPACE
@@ -54,13 +59,13 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
-
# Check if a KDE session already is running and whether it's possible to connect to X
-kcheckrunning
-+@out@/bin/kcheckrunning
++@kcheckrunning@
kcheckrunning_result=$?
if test $kcheckrunning_result -eq 0 ; then
- echo "KDE seems to be already running on this display."
- xmessage -geometry 500x100 "KDE seems to be already running on this display." > /dev/null 2>/dev/null
+ echo "KDE seems to be already running on this display."
-+ @xmessage@/bin/xmessage -geometry 500x100 "KDE seems to be already running on this display."
++ @xmessage@ -geometry 500x100 "KDE seems to be already running on this display."
exit 1
elif test $kcheckrunning_result -eq 2 ; then
echo "\$DISPLAY is not set or cannot connect to the X server."
@@ -69,7 +74,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
fi
# Boot sequence:
-@@ -57,13 +67,8 @@ fi
+@@ -57,13 +72,8 @@ fi
# * Then ksmserver is started which takes control of the rest of the startup sequence
# We need to create config folder so we can write startupconfigkeys
@@ -80,12 +85,12 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
-fi
-
-mkdir -p $configDir
-+configDir=$(@qttools@/bin/qtpaths --writable-path GenericConfigLocation)
++configDir=$(@qtpaths@ --writable-path GenericConfigLocation)
+mkdir -p "$configDir"
#This is basically setting defaults so we can use them with kstartupconfig5
cat >$configDir/startupconfigkeys </dev/null 2>/dev/null; then
++if @qdbus@ >/dev/null 2>/dev/null; then
+ : # ok
+else
+ echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2
+ test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
-+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?"
++ @xmessage@ -geometry 500x100 "Could not start D-Bus. Can you call qdbus?"
+ exit 1
+fi
+
@@ -189,26 +194,26 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
;;
None)
;;
-@@ -201,8 +194,7 @@ fi
+@@ -201,8 +199,7 @@ fi
# For anything else (that doesn't set env vars, or that needs a window manager),
# better use the Autostart folder.
-# TODO: Use GenericConfigLocation once we depend on Qt 5.4
-scriptpath=`qtpaths --paths ConfigLocation | tr ':' '\n' | sed 's,$,/plasma-workspace,g'`
-+scriptpath=$(@qttools@/bin/qtpaths --paths GenericConfigLocation | tr ':' '\n' | @gnused@/bin/sed 's,$,/plasma-workspace,g')
++scriptpath=$(@qtpaths@ --paths GenericConfigLocation | tr ':' '\n' | @sed@ 's,$,/plasma-workspace,g')
# Add /env/ to the directory to locate the scripts to be sourced
for prefix in `echo $scriptpath`; do
-@@ -232,7 +224,7 @@ usr_odir=$HOME/.fonts/kde-override
+@@ -232,7 +229,7 @@ usr_odir=$HOME/.fonts/kde-override
usr_fdir=$HOME/.fonts
if test -n "$KDEDIRS"; then
- kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'`
-+ kdedirs_first=`echo "$KDEDIRS" | @gnused@/bin/sed -e 's/:.*//'`
++ kdedirs_first=`echo "$KDEDIRS" | @sed@ -e 's/:.*//'`
sys_odir=$kdedirs_first/share/fonts/override
sys_fdir=$kdedirs_first/share/fonts
else
-@@ -245,23 +237,13 @@ fi
+@@ -245,23 +242,13 @@ fi
# add the user's dirs to the font path, as they might simply have been made
# read-only by the administrator, for whatever reason.
@@ -216,10 +221,10 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
-test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir")
-test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir")
-test -d "$sys_fdir" && xset fp+ "$sys_fdir"
-+test -d "$sys_odir" && @xset@/bin/xset +fp "$sys_odir"
-+test -d "$usr_odir" && ( @mkfontdir@/bin/mkfontdir "$usr_odir" ; @xset@/bin/xset +fp "$usr_odir" )
-+test -d "$usr_fdir" && ( @mkfontdir@/bin/mkfontdir "$usr_fdir" ; @xset@/bin/xset fp+ "$usr_fdir" )
-+test -d "$sys_fdir" && @xset@/bin/xset fp+ "$sys_fdir"
++test -d "$sys_odir" && @xset@ +fp "$sys_odir"
++test -d "$usr_odir" && ( @mkfontdir@ "$usr_odir" ; @xset@ +fp "$usr_odir" )
++test -d "$usr_fdir" && ( @mkfontdir@ "$usr_fdir" ; @xset@ fp+ "$usr_fdir" )
++test -d "$sys_fdir" && @xset@ fp+ "$sys_fdir"
# Ask X11 to rebuild its font list.
-xset fp rehash
@@ -233,11 +238,11 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
-# so don't move this up.
-#
-xsetroot -cursor_name left_ptr
-+@xset@/bin/xset fp rehash
++@xset@ fp rehash
# Get Ghostscript to look into user's KDE fonts dir for additional Fontmap
if test -n "$GS_LIB" ; then
-@@ -274,26 +256,6 @@ fi
+@@ -274,26 +261,6 @@ fi
echo 'startkde: Starting up...' 1>&2
@@ -264,96 +269,88 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
# Mark that full KDE session is running (e.g. Konqueror preloading works only
# with full KDE running). The KDE_FULL_SESSION property can be detected by
# any X client connected to the same X session, even if not launched
-@@ -318,11 +280,11 @@ fi
+@@ -318,11 +285,11 @@ fi
#
KDE_FULL_SESSION=true
export KDE_FULL_SESSION
-xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true
-+@xprop@/bin/xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true
++@xprop@ -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true
KDE_SESSION_VERSION=5
export KDE_SESSION_VERSION
-xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5
-+@xprop@/bin/xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5
++@xprop@ -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5
KDE_SESSION_UID=`id -ru`
export KDE_SESSION_UID
-@@ -332,11 +294,11 @@ export XDG_CURRENT_DESKTOP
+@@ -332,11 +299,11 @@ export XDG_CURRENT_DESKTOP
# At this point all the environment is ready, let's send it to kwalletd if running
if test -n "$PAM_KWALLET_LOGIN" ; then
- env | socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN
-+ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN
++ env | @socat@ STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN
fi
# ...and also to kwalletd5
if test -n "$PAM_KWALLET5_LOGIN" ; then
- env | socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN
-+ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN
++ env | @socat@ STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN
fi
# At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
-@@ -349,21 +311,26 @@ if test $? -ne 0; then
+@@ -349,18 +316,18 @@ if test $? -ne 0; then
# Startup error
echo 'startkde: Could not sync environment to dbus.' 1>&2
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
- xmessage -geometry 500x100 "Could not sync environment to dbus."
-+ @xmessage@/bin/xmessage -geometry 500x100 "Could not sync environment to dbus."
++ @xmessage@ -geometry 500x100 "Could not sync environment to dbus."
exit 1
fi
# We set LD_BIND_NOW to increase the efficiency of kdeinit.
# kdeinit unsets this variable before loading applications.
-LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup
-+LD_BIND_NOW=true @kinit@/lib/libexec/kf5/start_kdeinit_wrapper --kded +kcminit_startup
++LD_BIND_NOW=true @start_kdeinit_wrapper@ --kded +kcminit_startup
if test $? -ne 0; then
# Startup error
echo 'startkde: Could not start kdeinit5. Check your installation.' 1>&2
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
- xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation."
-+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation."
++ @xmessage@ -geometry 500x100 "Could not start kdeinit5. Check your installation."
exit 1
fi
-+# (NixOS) We run kbuildsycoca5 before starting the user session because things
-+# may be missing or moved if they have run nixos-rebuild and it may not be
-+# possible for them to start Konsole to run it manually!
-+@kservice@/bin/kbuildsycoca5
-+
- # finally, give the session control to the session manager
- # see kdebase/ksmserver for the description of the rest of the startup sequence
- # if the KDEWM environment variable has been set, then it will be used as KDE's
@@ -379,27 +346,27 @@ test -n "$KDEWM" && KDEWM="--windowmanag
# lock now and do the rest of the KDE startup underneath the locker.
KSMSERVEROPTIONS=""
test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen"
-kwrapper5 @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS
-+@kinit@/bin/kwrapper5 @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS
++@kwrapper5@ @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS
if test $? -eq 255; then
# Startup error
echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
- xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."
-+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."
++ @xmessage@ -geometry 500x100 "Could not start ksmserver. Check your installation."
fi
-wait_drkonqi=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true`
-+wait_drkonqi=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true`
++wait_drkonqi=`@kreadconfig5@ --file startkderc --group WaitForDrKonqi --key Enabled --default true`
if test x"$wait_drkonqi"x = x"true"x ; then
# wait for remaining drkonqi instances with timeout (in seconds)
- wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
-+ wait_drkonqi_timeout=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
++ wait_drkonqi_timeout=`@kreadconfig5@ --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
wait_drkonqi_counter=0
- while $qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
-+ while @qttools@/bin/qdbus | @gnugrep@/bin/grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
++ while @qdbus@ | @grep@ "^[^w]*org.kde.drkonqi" > /dev/null ; do
sleep 5
wait_drkonqi_counter=$((wait_drkonqi_counter+5))
if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then
# ask remaining drkonqis to die in a graceful way
- $qdbus | grep 'org.kde.drkonqi-' | while read address ; do
- $qdbus "$address" "/MainApplication" "quit"
-+ @qttools@/bin/qdbus | @gnugrep@/bin/grep 'org.kde.drkonqi-' | while read address ; do
-+ @qttools@/bin/qdbus "$address" "/MainApplication" "quit"
++ @qdbus@ | @grep@ 'org.kde.drkonqi-' | while read address ; do
++ @qdbus@ "$address" "/MainApplication" "quit"
done
break
fi
@@ -362,14 +359,14 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake
# Clean up
-kdeinit5_shutdown
-+@kinit@/bin/kdeinit5_shutdown
++@kdeinit5_shutdown@
unset KDE_FULL_SESSION
-xprop -root -remove KDE_FULL_SESSION
-+@xprop@/bin/xprop -root -remove KDE_FULL_SESSION
++@xprop@ -root -remove KDE_FULL_SESSION
unset KDE_SESSION_VERSION
-xprop -root -remove KDE_SESSION_VERSION
-+@xprop@/bin/xprop -root -remove KDE_SESSION_VERSION
++@xprop@ -root -remove KDE_SESSION_VERSION
unset KDE_SESSION_UID
echo 'startkde: Done.' 1>&2
diff --git a/pkgs/desktops/xfce/core/exo.nix b/pkgs/desktops/xfce/core/exo.nix
index 83610a4e4a652..4d3f09105433c 100644
--- a/pkgs/desktops/xfce/core/exo.nix
+++ b/pkgs/desktops/xfce/core/exo.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4ui, libxfce4util }:
+{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4ui, libxfce4util
+, hicolor_icon_theme }:
stdenv.mkDerivation rec {
p_name = "exo";
@@ -11,9 +12,11 @@ stdenv.mkDerivation rec {
};
name = "${p_name}-${ver_maj}.${ver_min}";
- buildInputs = [ pkgconfig intltool URI glib gtk libxfce4ui libxfce4util ];
+ outputs = [ "dev" "out" "docdev" ];
+ # lib/xfce4/exo-1/exo-compose-mail-1 is a perl script :-/
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+ nativeBuildInputs = [ pkgconfig intltool ];
+ buildInputs = [ URI glib gtk libxfce4ui libxfce4util hicolor_icon_theme ];
meta = with stdenv.lib; {
homepage = "http://www.xfce.org/projects/${p_name}";
diff --git a/pkgs/desktops/xfce/core/garcon.nix b/pkgs/desktops/xfce/core/garcon.nix
index 8f8cfff76cd45..4fffc9e1ec9f8 100644
--- a/pkgs/desktops/xfce/core/garcon.nix
+++ b/pkgs/desktops/xfce/core/garcon.nix
@@ -1,22 +1,26 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, libxfce4ui, gtk }:
-
-stdenv.mkDerivation rec {
+let
p_name = "garcon";
ver_maj = "0.4";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0wm9pjbwq53s3n3nwvsyf0q8lbmhiy2ln3bn5ncihr9vf5cwhzbq";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
+
+ outputs = [ "dev" "out" ];
buildInputs = [ pkgconfig intltool glib libxfce4util gtk libxfce4ui ];
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/;
description = "Xfce menu support library";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
};
}
+
diff --git a/pkgs/desktops/xfce/core/libxfce4ui.nix b/pkgs/desktops/xfce/core/libxfce4ui.nix
index 2cb20febcb943..6bdeb50f83993 100644
--- a/pkgs/desktops/xfce/core/libxfce4ui.nix
+++ b/pkgs/desktops/xfce/core/libxfce4ui.nix
@@ -1,40 +1,38 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
-, libglade, libstartup_notification
+, libglade, libstartup_notification, hicolor_icon_theme
, withGtk3 ? false, gtk3
}:
-
-with { inherit (stdenv.lib) optional; };
-
-stdenv.mkDerivation rec {
+let
p_name = "libxfce4ui";
ver_maj = "4.12";
ver_min = "1";
+ inherit (stdenv.lib) optional;
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "3d619811bfbe7478bb984c16543d980cadd08586365a7bc25e59e3ca6384ff43";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
- #TODO: gladeui
- # Install into our own prefix instead.
- configureFlags = [
- "--with-libglade-module-path=$out/lib/libglade/2.0"
- ] ++ optional withGtk3 "--enable-gtk3";
+ outputs = [ "dev" "out" "docdev" ];
buildInputs =
[ pkgconfig intltool gtk libxfce4util xfconf libglade
- libstartup_notification
+ libstartup_notification hicolor_icon_theme
] ++ optional withGtk3 gtk3;
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+ #TODO: glade?
+ configureFlags = optional withGtk3 "--enable-gtk3";
enableParallelBuilding = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/;
description = "Basic GUI library for Xfce";
- license = stdenv.lib.licenses.lgpl2Plus;
- platforms = stdenv.lib.platforms.linux;
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
};
}
+
diff --git a/pkgs/desktops/xfce/core/libxfce4util.nix b/pkgs/desktops/xfce/core/libxfce4util.nix
index 6893d7cfb20b2..cab904f551070 100644
--- a/pkgs/desktops/xfce/core/libxfce4util.nix
+++ b/pkgs/desktops/xfce/core/libxfce4util.nix
@@ -1,15 +1,18 @@
{ stdenv, fetchurl, pkgconfig, glib, intltool }:
-
-stdenv.mkDerivation rec {
+let
p_name = "libxfce4util";
ver_maj = "4.12";
ver_min = "1";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "07c8r3xwx5is298zk77m3r784gmr5y4mh8bbca5zdjqk5vxdwsw7";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
+
+ outputs = [ "dev" "out" "docdev" ];
buildInputs = [ pkgconfig glib intltool ];
@@ -20,3 +23,4 @@ stdenv.mkDerivation rec {
platforms = stdenv.lib.platforms.linux;
};
}
+
diff --git a/pkgs/desktops/xfce/core/libxfcegui4.nix b/pkgs/desktops/xfce/core/libxfcegui4.nix
index 32a320c779bf5..d9e5cce25e852 100644
--- a/pkgs/desktops/xfce/core/libxfcegui4.nix
+++ b/pkgs/desktops/xfce/core/libxfcegui4.nix
@@ -1,31 +1,32 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk
-, libxfce4util, xfconf, libglade, libstartup_notification }:
-
-stdenv.mkDerivation rec {
+, libxfce4util, xfconf, libglade, libstartup_notification, hicolor_icon_theme }:
+let
p_name = "libxfcegui4";
ver_maj = "4.10";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
+
+ outputs = [ "dev" "out" "docdev" ];
#TODO: gladeui
# By default, libxfcegui4 tries to install into libglade's prefix.
# Install into our own prefix instead.
- preConfigure =
- ''
- configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
- '';
+ configureFlags = [
+ "--with-libglade-module-path=$(out)/lib/libglade/2.0"
+ ];
#NOTE: missing keyboard library support is OK according to the mailing-list
buildInputs =
[ pkgconfig intltool gtk libxfce4util xfconf libglade
- libstartup_notification
+ libstartup_notification hicolor_icon_theme
];
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
meta = {
homepage = http://www.xfce.org/;
diff --git a/pkgs/desktops/xfce/core/tumbler.nix b/pkgs/desktops/xfce/core/tumbler.nix
index 1fc895ea412ab..132003d3fc920 100644
--- a/pkgs/desktops/xfce/core/tumbler.nix
+++ b/pkgs/desktops/xfce/core/tumbler.nix
@@ -1,19 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, intltool, dbus_glib, gdk_pixbuf, curl, freetype,
-libgsf, poppler, bzip2 }:
-
-stdenv.mkDerivation rec {
+{ stdenv, fetchurl, pkgconfig, intltool, dbus_glib, gdk_pixbuf, curl, freetype
+, libgsf, poppler, bzip2 }:
+let
p_name = "tumbler";
ver_maj = "0.1";
ver_min = "31";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0wvip28gm2w061hn84zp2q4dv947ihylrppahn4cjspzff935zfh";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
- buildInputs = [ pkgconfig intltool dbus_glib gdk_pixbuf curl freetype
- poppler libgsf bzip2];
+ outputs = [ "dev" "out" "docdev" ];
+
+ buildInputs = [
+ pkgconfig intltool dbus_glib gdk_pixbuf curl freetype
+ poppler libgsf bzip2
+ ];
configureFlags = [
# Needs gst-tag
@@ -21,15 +26,16 @@ stdenv.mkDerivation rec {
# Needs libffmpegthumbnailer
# "--enable-ffmpeg-thumbnailer"
-
+
"--enable-odf-thumbnailer"
"--enable-poppler-thumbnailer"
];
- meta = {
+ meta = with stdenv.lib; {
homepage = http://git.xfce.org/xfce/tumbler/;
description = "A D-Bus thumbnailer service";
- platforms = stdenv.lib.platforms.linux;
- license = stdenv.lib.licenses.gpl2;
+ platforms = platforms.linux;
+ license = licenses.gpl2;
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-appfinder.nix b/pkgs/desktops/xfce/core/xfce4-appfinder.nix
index 25bd04f9ec400..d39708dd523fe 100644
--- a/pkgs/desktops/xfce/core/xfce4-appfinder.nix
+++ b/pkgs/desktops/xfce/core/xfce4-appfinder.nix
@@ -1,27 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk, libxfce4util
, libxfce4ui, garcon, xfconf }:
-
-stdenv.mkDerivation rec {
+let
p_name = "xfce4-appfinder";
ver_maj = "4.12";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0ry5hin8xhgnkmm9vs7jq8blk1cnbyr0s18nm1j6nsm7360abm1a";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs =
[ pkgconfig intltool glib gtk libxfce4util libxfce4ui garcon xfconf ];
enableParallelBuilding = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = http://docs.xfce.org/xfce/xfce4-appfinder/;
description = "Xfce application finder, a tool to locate and launch programs on your system";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-dev-tools.nix b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
index 5541011a50194..da7369decc46d 100644
--- a/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
+++ b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
@@ -1,15 +1,16 @@
{ stdenv, fetchurl, pkgconfig, glib, autoconf, automake, libtool, intltool }:
-
-stdenv.mkDerivation rec {
+let
p_name = "xfce4-dev-tools";
ver_maj = "4.12";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1jxmyp80pwbfgmqmwpjxs7z5dmm6pyf3qj62z20xy44izraadqz2";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs = [ pkgconfig glib ];
@@ -22,3 +23,4 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.gpl2Plus;
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-panel.nix b/pkgs/desktops/xfce/core/xfce4-panel.nix
index 0f9066876c66b..816bbc05735f2 100644
--- a/pkgs/desktops/xfce/core/xfce4-panel.nix
+++ b/pkgs/desktops/xfce/core/xfce4-panel.nix
@@ -1,49 +1,50 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
, libxfce4ui_gtk3, libwnck, exo, garcon, xfconf, libstartup_notification
-, makeWrapper, xfce4mixer
+, makeWrapper, xfce4mixer, hicolor_icon_theme
, withGtk3 ? false, gtk3
}:
-
-with { inherit (stdenv.lib) optional; };
-
-stdenv.mkDerivation rec {
+let
+ inherit (stdenv.lib) optional;
p_name = "xfce4-panel";
ver_maj = "4.12";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
patches = [ ./xfce4-panel-datadir.patch ];
patchFlags = "-p1";
- configureFlags = optional withGtk3 "--enable-gtk3";
+ outputs = [ "dev" "out" "docdev" ];
buildInputs =
[ pkgconfig intltool gtk libxfce4util exo libwnck
- garcon xfconf libstartup_notification makeWrapper
+ garcon xfconf libstartup_notification makeWrapper hicolor_icon_theme
] ++ xfce4mixer.gst_plugins
++ optional withGtk3 gtk3;
propagatedBuildInputs = [ (if withGtk3 then libxfce4ui_gtk3 else libxfce4ui) ];
+ configureFlags = optional withGtk3 "--enable-gtk3";
+
postInstall = ''
wrapProgram "$out/bin/xfce4-panel" \
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
'';
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
-
enableParallelBuilding = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/projects/xfce4-panel;
description = "Xfce panel";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-power-manager.nix b/pkgs/desktops/xfce/core/xfce4-power-manager.nix
index 9a3116463c63c..7695f906d317d 100644
--- a/pkgs/desktops/xfce/core/xfce4-power-manager.nix
+++ b/pkgs/desktops/xfce/core/xfce4-power-manager.nix
@@ -1,29 +1,29 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, upower, xfconf
-, libxfce4ui, libxfce4util, libnotify, xfce4panel }:
-
-stdenv.mkDerivation rec {
+, libxfce4ui, libxfce4util, libnotify, xfce4panel, hicolor_icon_theme }:
+let
p_name = "xfce4-power-manager";
ver_maj = "1.4";
ver_min = "4";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "01rvqy1cif4s8lkidb7hhmsz7d9f2fwcwvc51xycaj3qgsmch3n5";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
-
buildInputs =
[ pkgconfig intltool gtk dbus_glib upower xfconf libxfce4ui libxfce4util
- libnotify xfce4panel
+ libnotify xfce4panel hicolor_icon_theme
];
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
- meta = {
+ meta = with stdenv.lib; {
homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager;
description = "A power manager for the Xfce Desktop Environment";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-session.nix b/pkgs/desktops/xfce/core/xfce4-session.nix
index 7599826e8f02b..a0568b0dd3954 100644
--- a/pkgs/desktops/xfce/core/xfce4-session.nix
+++ b/pkgs/desktops/xfce/core/xfce4-session.nix
@@ -1,25 +1,26 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, gtk, polkit
, libxfce4util, libxfce4ui, xfce4panel, libwnck, dbus_glib, xfconf, libglade, xorg
+, hicolor_icon_theme
}:
-#TODO: gnome stuff: gconf (assistive?), keyring
-
-stdenv.mkDerivation rec {
+let
p_name = "xfce4-session";
ver_maj = "4.12";
ver_min = "1";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "97d7f2a2d0af7f3623b68d1f04091e02913b28f9555dab8b0d26c8a1299d08fd";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs =
[ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus_glib
- xfconf xfce4panel libglade xorg.iceauth
- polkit
- ];
+ xfconf xfce4panel libglade xorg.iceauth xorg.libSM
+ polkit hicolor_icon_theme
+ ]; #TODO: upower-glib, gconf (assistive?), gnome keyring
preBuild = ''
sed '/^PATH=/d' -i scripts/xflock4
@@ -28,13 +29,12 @@ stdenv.mkDerivation rec {
configureFlags = [ "--with-xsession-prefix=$(out)" ];
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
-
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/projects/xfce4-session;
description = "Session manager for Xfce";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-settings.nix b/pkgs/desktops/xfce/core/xfce4-settings.nix
index 4c2de64561d5c..f6f7c4c3a54b2 100644
--- a/pkgs/desktops/xfce/core/xfce4-settings.nix
+++ b/pkgs/desktops/xfce/core/xfce4-settings.nix
@@ -1,33 +1,33 @@
{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui
, libglade, xfconf, xorg, libwnck, libnotify, libxklavier, garcon, upower }:
-
-#TODO: optional packages
-stdenv.mkDerivation rec {
+let
p_name = "xfce4-settings";
ver_maj = "4.12";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
-
patches = [ ./xfce4-settings-default-icon-theme.patch ];
buildInputs =
[ pkgconfig intltool exo gtk libxfce4util libxfce4ui libglade upower
xfconf xorg.libXi xorg.libXcursor libwnck libnotify libxklavier garcon
- ];
+ ]; #TODO: optional packages
- configureFlags = "--enable-pluggable-dialogs --enable-sound-settings";
+ configureFlags = [ "--enable-pluggable-dialogs" "--enable-sound-settings" ];
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/projects/xfce4-settings;
description = "Settings manager for Xfce";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfconf.nix b/pkgs/desktops/xfce/core/xfconf.nix
index f12f96895cd92..13902fa4428c7 100644
--- a/pkgs/desktops/xfce/core/xfconf.nix
+++ b/pkgs/desktops/xfce/core/xfconf.nix
@@ -1,24 +1,28 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
-
-stdenv.mkDerivation rec {
+let
p_name = "xfconf";
ver_maj = "4.12";
ver_min = "0";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "0mmi0g30aln3x98y5p507g17pipq0dj0bwypshan8cq5hkmfl44r";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
+
+ outputs = [ "dev" "out" "docdev" ];
#TODO: no perl bingings yet (ExtUtils::Depends, ExtUtils::PkgConfig, Glib)
buildInputs = [ pkgconfig intltool glib libxfce4util ];
propagatedBuildInputs = [ dbus_glib ];
- meta = {
+ meta = with stdenv.lib; {
homepage = http://docs.xfce.org/xfce/xfconf/start;
description = "Simple client-server configuration storage and query system for Xfce";
- license = stdenv.lib.licenses.gpl2;
- platforms = stdenv.lib.platforms.linux;
+ license = licenses.gpl2;
+ platforms = platforms.linux;
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfdesktop.nix b/pkgs/desktops/xfce/core/xfdesktop.nix
index e5d04879008e7..8802862edddea 100644
--- a/pkgs/desktops/xfce/core/xfdesktop.nix
+++ b/pkgs/desktops/xfce/core/xfdesktop.nix
@@ -1,30 +1,32 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui
-, libwnck, xfconf, libglade, xfce4panel, thunar, exo, garcon, libnotify }:
-
-stdenv.mkDerivation rec {
+, libwnck, xfconf, libglade, xfce4panel, thunar, exo, garcon, libnotify
+, hicolor_icon_theme }:
+let
p_name = "xfdesktop";
ver_maj = "4.12";
ver_min = "3";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "a8a8d93744d842ca6ac1f9bd2c8789ee178937bca7e170e5239cbdbef30520ac";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs =
[ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck xfconf
- libglade xfce4panel thunar exo garcon libnotify
+ libglade xfce4panel thunar exo garcon libnotify hicolor_icon_theme
];
- preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
enableParallelBuilding = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/projects/xfdesktop;
description = "Xfce desktop manager";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/desktops/xfce/core/xfwm4.nix b/pkgs/desktops/xfce/core/xfwm4.nix
index dd18b1355f798..d861e5f2d5570 100644
--- a/pkgs/desktops/xfce/core/xfwm4.nix
+++ b/pkgs/desktops/xfce/core/xfwm4.nix
@@ -1,16 +1,17 @@
{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util
, libxfce4ui, xfconf, libwnck, libstartup_notification, xorg }:
-
-stdenv.mkDerivation rec {
+let
p_name = "xfwm4";
ver_maj = "4.12";
ver_min = "3";
+in
+stdenv.mkDerivation rec {
+ name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchurl {
url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
sha256 = "f4a988fbc4e0df7e8583c781d271559e56fd28696092f94ae052e9e6edb09eac";
};
- name = "${p_name}-${ver_maj}.${ver_min}";
buildInputs =
[ pkgconfig intltool gtk libglade libxfce4util libxfce4ui xfconf
@@ -20,11 +21,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.xfce.org/projects/xfwm4;
description = "Window manager for Xfce";
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.eelco ];
};
}
+
diff --git a/pkgs/development/compilers/gcc-arm-embedded/default.nix b/pkgs/development/compilers/gcc-arm-embedded/default.nix
index cdbfad7eb1fc7..1c549907c31d3 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/default.nix
@@ -33,8 +33,8 @@ stdenv.mkDerivation {
for f in $(find $out); do
if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then
- patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
- --set-rpath $out/lib:${gcc}/lib:${ncurses}/lib \
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux.so.2 \
+ --set-rpath $out/lib:${gcc.lib or gcc}/lib:${ncurses.out}/lib \
"$f" || true
fi
done
diff --git a/pkgs/development/compilers/gcc/4.6/builder.sh b/pkgs/development/compilers/gcc/4.6/builder.sh
index af2e97b1e4e55..af36ec33b70a9 100644
--- a/pkgs/development/compilers/gcc/4.6/builder.sh
+++ b/pkgs/development/compilers/gcc/4.6/builder.sh
@@ -8,9 +8,10 @@ mkdir $NIX_FIXINC_DUMMY
if test "$staticCompiler" = "1"; then
EXTRA_LDFLAGS="-static"
else
- EXTRA_LDFLAGS=""
+ EXTRA_LDFLAGS="-Wl,-rpath,$lib/lib"
fi
+
# GCC interprets empty paths as ".", which we don't want.
if test -z "$CPATH"; then unset CPATH; fi
if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi
@@ -29,7 +30,7 @@ if test "$noSysDirs" = "1"; then
# Use *real* header files, otherwise a limits.h is generated
# that does not include Glibc's limits.h (notably missing
# SSIZE_MAX, which breaks the build).
- export NIX_FIXINC_DUMMY=$(cat $NIX_CC/nix-support/orig-libc)/include
+ export NIX_FIXINC_DUMMY=$libc_dev/include
# The path to the Glibc binaries such as `crti.o'.
glibc_libdir="$(cat $NIX_CC/nix-support/orig-libc)/lib"
@@ -50,10 +51,10 @@ if test "$noSysDirs" = "1"; then
# bootstrap compiler are optimized and (optionally) contain
# debugging information (info "(gccinstall) Building").
if test -n "$dontStrip"; then
- extraFlags="-O2 -g $extraFlags"
+ extraFlags="-O2 -g $extraFlags"
else
- # Don't pass `-g' at all; this saves space while building.
- extraFlags="-O2 $extraFlags"
+ # Don't pass `-g' at all; this saves space while building.
+ extraFlags="-O2 $extraFlags"
fi
EXTRA_FLAGS="$extraFlags"
@@ -170,9 +171,8 @@ preConfigure() {
# Patch the configure script so it finds glibc headers. It's
# important for example in order not to get libssp built,
# because its functionality is in glibc already.
- glibc_headers="$(cat $NIX_CC/nix-support/orig-libc)/include"
sed -i \
- -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$glibc_headers", \
+ -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$libc_dev/include", \
gcc/configure
fi
@@ -206,6 +206,14 @@ preInstall() {
postInstall() {
+ # Move runtime libraries to $lib.
+ mkdir -p $lib/lib
+ ln -s lib $lib/lib64
+ mv -v $out/lib/lib*.so $out/lib/lib*.so.*[0-9] $out/lib/*.la $lib/lib/
+ for i in $lib/lib/*.la; do
+ substituteInPlace $i --replace $out $lib
+ done
+
# Remove precompiled headers for now. They are very big and
# probably not very useful yet.
find $out/include -name "*.gch" -exec rm -rf {} \; -prune
@@ -217,6 +225,7 @@ postInstall() {
# More dependencies with the previous gcc or some libs (gccbug stores the build command line)
rm -rf $out/bin/gccbug
+
# Take out the bootstrap-tools from the rpath, as it's not needed at all having $out
for i in $out/libexec/gcc/*/*/*; do
if PREV_RPATH=`patchelf --print-rpath $i`; then
@@ -225,7 +234,7 @@ postInstall() {
done
# Get rid of some "fixed" header files
- rm -rf $out/lib/gcc/*/*/include/root
+ rm -rfv $out/lib/gcc/*/*/include-fixed/{root,linux}
# Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks.
for i in $out/bin/*-gcc*; do
diff --git a/pkgs/development/compilers/gcc/4.6/default.nix b/pkgs/development/compilers/gcc/4.6/default.nix
index b3caad11b7167..bc968d1f66e31 100644
--- a/pkgs/development/compilers/gcc/4.6/default.nix
+++ b/pkgs/development/compilers/gcc/4.6/default.nix
@@ -170,7 +170,7 @@ let version = "4.6.4";
"-stage-final";
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
- bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
+ bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
in
@@ -182,13 +182,19 @@ stdenv.mkDerivation ({
builder = ./builder.sh;
- src = (import ./sources.nix) {
+ srcs = (import ./sources.nix) {
inherit fetchurl optional version;
inherit langC langCC langFortran langJava langAda langGo;
};
+ outputs = [ "out" "lib" ];
+
+ setOutputFlags = false;
+
inherit patches enableMultilib;
+ libc_dev = stdenv.cc.libc_dev;
+
postPatch =
if (stdenv.isGNU
|| (libcCross != null # e.g., building `gcc.crossDrv'
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index fd80f4ec8c5f1..09e3751580c51 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -197,7 +197,7 @@ let version = "4.8.5";
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
- bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
+ bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
in
@@ -209,8 +209,6 @@ stdenv.mkDerivation ({
builder = ../builder.sh;
- outputs = [ "out" "info" ];
-
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2";
@@ -218,6 +216,12 @@ stdenv.mkDerivation ({
inherit patches;
+ outputs = [ "out" "lib" "doc" ];
+ setOutputFlags = false;
+ NIX_NO_SELF_RPATH = true;
+
+ libc_dev = stdenv.cc.libc_dev;
+
postPatch =
if (stdenv.isGNU
|| (libcCross != null # e.g., building `gcc.crossDrv'
@@ -358,7 +362,7 @@ stdenv.mkDerivation ({
)
}
${if (stdenv ? glibc && cross == null)
- then " --with-native-system-header-dir=${stdenv.glibc}/include"
+ then " --with-native-system-header-dir=${stdenv.glibc.dev}/include"
else ""}
${if langAda then " --enable-libada" else ""}
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 9e4823966cf3a..d478196af518b 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -199,7 +199,7 @@ let version = "4.9.3";
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
- bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
+ bootstrap = cross == null;
in
@@ -211,8 +211,6 @@ stdenv.mkDerivation ({
builder = ../builder.sh;
- outputs = [ "out" "info" ];
-
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3";
@@ -220,6 +218,12 @@ stdenv.mkDerivation ({
inherit patches;
+ outputs = [ "out" "lib" "man" "info" ];
+ setOutputFlags = false;
+ NIX_NO_SELF_RPATH = true;
+
+ libc_dev = stdenv.cc.libc_dev;
+
postPatch =
if (stdenv.isGNU
|| (libcCross != null # e.g., building `gcc.crossDrv'
@@ -360,7 +364,7 @@ stdenv.mkDerivation ({
)
}
${if (stdenv ? glibc && cross == null)
- then " --with-native-system-header-dir=${stdenv.glibc}/include"
+ then " --with-native-system-header-dir=${stdenv.glibc.dev}/include"
else ""}
${if langAda then " --enable-libada" else ""}
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix
index 3b105143c0bf3..20c60eac3097f 100644
--- a/pkgs/development/compilers/gcc/5/default.nix
+++ b/pkgs/development/compilers/gcc/5/default.nix
@@ -34,6 +34,7 @@
, stripped ? true
, gnused ? null
, binutils ? null
+, cloog # unused; just for compat with gcc4, as we override the parameter on some places
}:
assert langJava -> zip != null && unzip != null
@@ -197,7 +198,7 @@ let version = "5.3.0";
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
- bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
+ bootstrap = cross == null;
in
@@ -209,8 +210,6 @@ stdenv.mkDerivation ({
builder = ../builder.sh;
- outputs = [ "out" "info" ];
-
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq";
@@ -218,6 +217,12 @@ stdenv.mkDerivation ({
inherit patches;
+ outputs = [ "out" "lib" "man" "info" ];
+ setOutputFlags = false;
+ NIX_NO_SELF_RPATH = true;
+
+ libc_dev = stdenv.cc.libc_dev;
+
postPatch =
if (stdenv.isGNU
|| (libcCross != null # e.g., building `gcc.crossDrv'
@@ -358,7 +363,7 @@ stdenv.mkDerivation ({
)
}
${if (stdenv ? glibc && cross == null)
- then " --with-native-system-header-dir=${stdenv.glibc}/include"
+ then " --with-native-system-header-dir=${stdenv.glibc.dev}/include"
else ""}
${if langAda then " --enable-libada" else ""}
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh
index 6d9e931387372..3190c5f5739f2 100644
--- a/pkgs/development/compilers/gcc/builder.sh
+++ b/pkgs/development/compilers/gcc/builder.sh
@@ -8,9 +8,10 @@ mkdir $NIX_FIXINC_DUMMY
if test "$staticCompiler" = "1"; then
EXTRA_LDFLAGS="-static"
else
- EXTRA_LDFLAGS=""
+ EXTRA_LDFLAGS="-Wl,-rpath,$lib/lib"
fi
+
# GCC interprets empty paths as ".", which we don't want.
if test -z "$CPATH"; then unset CPATH; fi
if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi
@@ -29,7 +30,7 @@ if test "$noSysDirs" = "1"; then
# Use *real* header files, otherwise a limits.h is generated
# that does not include Glibc's limits.h (notably missing
# SSIZE_MAX, which breaks the build).
- export NIX_FIXINC_DUMMY=$(cat $NIX_CC/nix-support/orig-libc)/include
+ export NIX_FIXINC_DUMMY=$libc_dev/include
# The path to the Glibc binaries such as `crti.o'.
glibc_libdir="$(cat $NIX_CC/nix-support/orig-libc)/lib"
@@ -171,9 +172,8 @@ preConfigure() {
# Patch the configure script so it finds glibc headers. It's
# important for example in order not to get libssp built,
# because its functionality is in glibc already.
- glibc_headers="$(cat $NIX_CC/nix-support/orig-libc)/include"
sed -i \
- -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$glibc_headers", \
+ -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$libc_dev/include", \
gcc/configure
fi
@@ -210,9 +210,15 @@ preInstall() {
postInstall() {
- # Remove precompiled headers for now. They are very big and
- # probably not very useful yet.
- find $out/include -name "*.gch" -exec rm -rf {} \; -prune
+ # Move runtime libraries to $lib.
+ moveToOutput "lib/lib*.so*" "$lib"
+ moveToOutput "lib/lib*.la" "$lib"
+ ln -s lib "$lib/lib64" # for *.la
+ moveToOutput "share/gcc-*/python" "$lib"
+
+ for i in "$lib"/lib/*.{la,py}; do
+ substituteInPlace "$i" --replace "$out" "$lib"
+ done
# Remove `fixincl' to prevent a retained dependency on the
# previous gcc.
@@ -221,15 +227,23 @@ postInstall() {
# More dependencies with the previous gcc or some libs (gccbug stores the build command line)
rm -rf $out/bin/gccbug
+
# Take out the bootstrap-tools from the rpath, as it's not needed at all having $out
- for i in $out/libexec/gcc/*/*/*; do
- if PREV_RPATH=`patchelf --print-rpath $i`; then
- patchelf --set-rpath `echo $PREV_RPATH | sed 's,:[^:]*bootstrap-tools/lib,,'` $i
- fi
+ for i in $(find "$out"/libexec/gcc/*/*/* -type f -a \! -name '*.la'); do
+ PREV_RPATH=`patchelf --print-rpath "$i"`
+ NEW_RPATH=`echo "$PREV_RPATH" | sed 's,:[^:]*bootstrap-tools/lib,,g'`
+ patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK
+ done
+
+ # For some reason the libs retain RPATH to $out
+ for i in "$lib"/lib/{libtsan,libasan,libubsan}.so.*.*.*; do
+ PREV_RPATH=`patchelf --print-rpath "$i"`
+ NEW_RPATH=`echo "$PREV_RPATH" | sed "s,:${out}[^:]*,,g"`
+ patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK
done
# Get rid of some "fixed" header files
- rm -rf $out/lib/gcc/*/*/include/root
+ rm -rfv $out/lib/gcc/*/*/include-fixed/{root,linux}
# Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks.
for i in $out/bin/*-gcc*; do
@@ -250,6 +264,9 @@ postInstall() {
paxmark r $out/libexec/gcc/*/*/{cc1,cc1plus}
eval "$postInstallGhdl"
+
+ # Two identical man pages are shipped (moving and compressing is done later)
+ ln -sf gcc.1 "$out"/share/man/man1/g++.1
}
genericBuild
diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
index 96ec4e6c114a0..3ad872518f9e5 100644
--- a/pkgs/development/compilers/ghc/6.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -40,14 +40,14 @@ stdenv.mkDerivation rec {
(if stdenv.isLinux then ''
find . -type f -perm -0100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${libedit}/lib:${ncurses}/lib:${gmp}/lib" {} \;
+ --set-rpath "${libedit}/lib:${ncurses.out}/lib:${gmp.out}/lib" {} \;
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
'' else "");
configurePhase = ''
- ./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
+ ./configure --prefix=$out --with-gmp-libraries=${gmp.out}/lib --with-gmp-includes=${gmp.dev or gmp}/include
'';
# Stripping combined with patchelf breaks the executables (they die
@@ -65,8 +65,8 @@ stdenv.mkDerivation rec {
(if stdenv.isDarwin then
''
mkdir -p $out/frameworks/GMP.framework/Versions/A
- ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
- ln -s ${gmp}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
+ ln -s ${gmp.out}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
+ ln -s ${gmp.out}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
# !!! fix this
mkdir -p $out/frameworks/GNUeditline.framework/Versions/A
ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
+
''
# bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
- sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp}/lib\",\2@" $out/lib/ghc-${version}/package.conf
+ sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp.out}/lib\",\2@" $out/lib/ghc-${version}/package.conf
# Sanity check, can ghc create executables?
cd $TMP
diff --git a/pkgs/development/compilers/ghc/6.10.4.nix b/pkgs/development/compilers/ghc/6.10.4.nix
index d8157673fbc39..d8d25ef8082c4 100644
--- a/pkgs/development/compilers/ghc/6.10.4.nix
+++ b/pkgs/development/compilers/ghc/6.10.4.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
buildInputs = [ghc libedit perl gmp];
configureFlags = [
- "--with-gmp-libraries=${gmp}/lib"
- "--with-gmp-includes=${gmp}/include"
+ "--with-gmp-libraries=${gmp.out}/lib"
+ "--with-gmp-includes=${gmp.dev}/include"
"--with-gcc=${stdenv.cc}/bin/gcc"
];
diff --git a/pkgs/development/compilers/ghc/6.12.3.nix b/pkgs/development/compilers/ghc/6.12.3.nix
index e480a6f837c3d..5c33a193c5013 100644
--- a/pkgs/development/compilers/ghc/6.12.3.nix
+++ b/pkgs/development/compilers/ghc/6.12.3.nix
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
buildInputs = [ghc perl gmp ncurses];
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
'';
preConfigure = ''
diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix
index 31df7f1fa355b..c03cfbaaaddac 100644
--- a/pkgs/development/compilers/ghc/7.0.4-binary.nix
+++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
# We have to patch the GMP paths for the integer-gmp package.
''
find . -name integer-gmp.buildinfo \
- -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
+ -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
'' + stdenv.lib.optionalString stdenv.isDarwin ''
find . -name base.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
stdenv.lib.optionalString stdenv.isLinux ''
find . -type f -perm -0100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
+ --set-rpath "${ncurses.out}/lib:${gmp.out}/lib" {} \;
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
for prog in ld ar gcc strip ranlib; do
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
configurePhase = ''
./configure --prefix=$out \
- --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
+ --with-gmp-libraries=${gmp.out}/lib --with-gmp-includes=${gmp}/include \
${stdenv.lib.optionalString stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"}
'';
diff --git a/pkgs/development/compilers/ghc/7.0.4.nix b/pkgs/development/compilers/ghc/7.0.4.nix
index 281e5ca66a2cd..9152210b420d5 100644
--- a/pkgs/development/compilers/ghc/7.0.4.nix
+++ b/pkgs/development/compilers/ghc/7.0.4.nix
@@ -14,10 +14,10 @@ stdenv.mkDerivation rec {
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
diff --git a/pkgs/development/compilers/ghc/7.10.2.nix b/pkgs/development/compilers/ghc/7.10.2.nix
index 87490842b3b67..d7f1e064030b4 100644
--- a/pkgs/development/compilers/ghc/7.10.2.nix
+++ b/pkgs/development/compilers/ghc/7.10.2.nix
@@ -6,10 +6,10 @@ let
inherit (bootPkgs) ghc;
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/cc"
- "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
+ "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
diff --git a/pkgs/development/compilers/ghc/7.10.3.nix b/pkgs/development/compilers/ghc/7.10.3.nix
index 53ba058def4d9..8d540fb3ad8aa 100644
--- a/pkgs/development/compilers/ghc/7.10.3.nix
+++ b/pkgs/development/compilers/ghc/7.10.3.nix
@@ -40,8 +40,8 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/cc"
- "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
- "--with-curses-includes=${ncurses}/include" "--with-curses-libraries=${ncurses}/lib"
+ "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
+ "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional stdenv.isDarwin [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
];
diff --git a/pkgs/development/compilers/ghc/7.2.2.nix b/pkgs/development/compilers/ghc/7.2.2.nix
index 7276f413967fa..a08745732f887 100644
--- a/pkgs/development/compilers/ghc/7.2.2.nix
+++ b/pkgs/development/compilers/ghc/7.2.2.nix
@@ -14,10 +14,10 @@ stdenv.mkDerivation rec {
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix
index 03dd4dcd35bbf..cf21a61b1b39c 100644
--- a/pkgs/development/compilers/ghc/7.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
# We have to patch the GMP paths for the integer-gmp package.
''
find . -name integer-gmp.buildinfo \
- -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
+ -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
'' + stdenv.lib.optionalString stdenv.isDarwin ''
find . -name base.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
@@ -61,10 +61,10 @@ stdenv.mkDerivation rec {
# find editline/gmp.
stdenv.lib.optionalString stdenv.isLinux ''
mkdir -p "$out/lib"
- ln -sv "${ncurses}/lib/libncurses.so" "$out/lib/libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5"
+ ln -sv "${ncurses.out}/lib/libncurses.so" "$out/lib/libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5"
find . -type f -perm -0100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "$out/lib:${gmp}/lib" {} \;
+ --set-rpath "$out/lib:${gmp.out}/lib" {} \;
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
for prog in ld ar gcc strip ranlib; do
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
configurePhase = ''
./configure --prefix=$out \
- --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
+ --with-gmp-libraries=${gmp.out}/lib --with-gmp-includes=${gmp}/include \
${stdenv.lib.optionalString stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"}
'';
diff --git a/pkgs/development/compilers/ghc/7.4.2.nix b/pkgs/development/compilers/ghc/7.4.2.nix
index b2abcb08ec3a5..bf48e50b6b73e 100644
--- a/pkgs/development/compilers/ghc/7.4.2.nix
+++ b/pkgs/development/compilers/ghc/7.4.2.nix
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
diff --git a/pkgs/development/compilers/ghc/7.6.3.nix b/pkgs/development/compilers/ghc/7.6.3.nix
index 366c0044a67ad..af9fd3f8d93c0 100644
--- a/pkgs/development/compilers/ghc/7.6.3.nix
+++ b/pkgs/development/compilers/ghc/7.6.3.nix
@@ -22,10 +22,10 @@ in stdenv.mkDerivation rec {
buildInputs = [ ghc perl gmp ncurses ];
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
diff --git a/pkgs/development/compilers/ghc/7.8.3.nix b/pkgs/development/compilers/ghc/7.8.3.nix
index 2e0f5ba07e4d0..706899a8f7ba0 100644
--- a/pkgs/development/compilers/ghc/7.8.3.nix
+++ b/pkgs/development/compilers/ghc/7.8.3.nix
@@ -14,10 +14,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
DYNAMIC_BY_DEFAULT = NO
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
diff --git a/pkgs/development/compilers/ghc/7.8.4.nix b/pkgs/development/compilers/ghc/7.8.4.nix
index 4323341dc4a49..cdcc2cf0e75eb 100644
--- a/pkgs/development/compilers/ghc/7.8.4.nix
+++ b/pkgs/development/compilers/ghc/7.8.4.nix
@@ -14,10 +14,10 @@ stdenv.mkDerivation (rec {
enableParallelBuilding = true;
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
DYNAMIC_BY_DEFAULT = NO
${stdenv.lib.optionalString stdenv.isDarwin ''
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
diff --git a/pkgs/development/compilers/ghc/8.0.1.nix b/pkgs/development/compilers/ghc/8.0.1.nix
index 00482d013c23f..10aa163918664 100644
--- a/pkgs/development/compilers/ghc/8.0.1.nix
+++ b/pkgs/development/compilers/ghc/8.0.1.nix
@@ -33,8 +33,8 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/cc"
- "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
- "--with-curses-includes=${ncurses}/include" "--with-curses-libraries=${ncurses}/lib"
+ "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp.out}/lib"
+ "--with-curses-includes=${ncurses}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional stdenv.isDarwin [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
];
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index 18e22f0100be9..0fc80a24eca08 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -43,8 +43,8 @@ in stdenv.mkDerivation rec {
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/cc"
- "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
- "--with-curses-includes=${ncurses}/include" "--with-curses-libraries=${ncurses}/lib"
+ "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
+ "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional stdenv.isDarwin [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
];
diff --git a/pkgs/development/compilers/ghc/nokinds.nix b/pkgs/development/compilers/ghc/nokinds.nix
index acaef9c5ab11f..ca0a78eb0b677 100644
--- a/pkgs/development/compilers/ghc/nokinds.nix
+++ b/pkgs/development/compilers/ghc/nokinds.nix
@@ -4,10 +4,10 @@ let
inherit (bootPkgs) ghc;
buildMK = ''
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
- libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
- libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
+ libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
+ libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
DYNAMIC_BY_DEFAULT = NO
SRC_HC_OPTS = -H64m -O -fasm
GhcLibHcOpts = -O -dcore-lint
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-gcc=${stdenv.cc}/bin/cc"
- "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
+ "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
];
enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix
index 77b3a15cb32ff..e18c3213a3c0d 100644
--- a/pkgs/development/compilers/ghcjs/default.nix
+++ b/pkgs/development/compilers/ghcjs/default.nix
@@ -117,13 +117,13 @@ in mkDerivation (rec {
# This is necessary due to: https://github.com/haskell/cabal/commit/af19fb2c2d231d8deff1cb24164a2bf7efb8905a
# Cabal otherwise fails to build: http://hydra.nixos.org/build/31824079/nixlog/1/raw
postInstall = ''
- PATH=$out/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${stdenv.cc}/lib64:$LD_LIBRARY_PATH \
+ PATH=$out/bin:$PATH LD_LIBRARY_PATH=${gmp.out}/lib:${stdenv.cc}/lib64:$LD_LIBRARY_PATH \
env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \
--dev \
--quick \
--with-cabal ${cabal-install}/bin/cabal \
- --with-gmp-includes ${gmp}/include \
- --with-gmp-libraries ${gmp}/lib
+ --with-gmp-includes ${gmp.dev}/include \
+ --with-gmp-libraries ${gmp.out}/lib
'';
passthru = let
ghcjsNodePkgs = pkgs.nodePackages.override {
diff --git a/pkgs/development/compilers/go/1.1.nix b/pkgs/development/compilers/go/1.1.nix
new file mode 100644
index 0000000000000..0c6d412641491
--- /dev/null
+++ b/pkgs/development/compilers/go/1.1.nix
@@ -0,0 +1,101 @@
+{ stdenv, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc
+, removeGodocExternals ? false }:
+
+let
+ loader386 = "${glibc.out}/lib/ld-linux.so.2";
+ loaderAmd64 = "${glibc.out}/lib/ld-linux-x86-64.so.2";
+ loaderArm = "${glibc.out}/lib/ld-linux.so.3";
+in
+
+stdenv.mkDerivation {
+ name = "go-1.1.2";
+
+ src = fetchurl {
+ url = http://go.googlecode.com/files/go1.1.2.src.tar.gz;
+ sha256 = "0w7bchhb4b053az3wjp6z342rs9lp9nxf4w2mnfd1b89d6sb7izz";
+ };
+
+ buildInputs = [ bison glibc bash makeWrapper ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
+
+ # I'm not sure what go wants from its 'src', but the go installation manual
+ # describes an installation keeping the src.
+ preUnpack = ''
+ mkdir -p $out/share
+ cd $out/share
+ '';
+
+ prePatch = ''
+ cd ..
+ if [ ! -d go ]; then
+ mv * go
+ fi
+ cd go
+
+ patchShebangs ./ # replace /bin/bash
+ # !!! substituteInPlace does not seems to be effective.
+ sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.3,${loaderArm},' src/cmd/5l/asm.c
+ sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/pkg/time/zoneinfo_unix.go
+ sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/pkg/net/lookup_unix.go
+
+ #sed -i -e 's,/bin/cat,${coreutils}/bin/cat,' \
+ # -e 's,/bin/echo,${coreutils}/bin/echo,' \
+ # src/pkg/exec/exec_test.go
+
+ # Disabling the 'os/http/net' tests (they want files not available in
+ # chroot builds)
+ rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
+ # The os test wants to read files in an existing path. Just it don't be /usr/bin.
+ sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
+ sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
+ # Disable the hostname test
+ sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
+ # ParseInLocation fails the test
+ sed -i '/TestParseInSydney/areturn' src/pkg/time/time_test.go
+ '' + stdenv.lib.optionalString removeGodocExternals ''
+ sed -i -e '/googleapi/d' -e '/javascript">$/,+6d' lib/godoc/godoc.html
+ '';
+
+ patches = [ ./cacert.patch ];
+
+ GOOS = "linux";
+ GOARCH = if stdenv.system == "i686-linux" then "386"
+ else if stdenv.system == "x86_64-linux" then "amd64"
+ else if stdenv.system == "armv5tel-linux" then "arm"
+ else throw "Unsupported system";
+ GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ export GOROOT="$(pwd)/"
+ export GOBIN="$out/bin"
+ export PATH="$GOBIN:$PATH"
+ cd ./src
+ ./all.bash
+ cd -
+
+ # Wrap the tools to define the location of the
+ # libraries.
+ for a in go gofmt godoc; do
+ wrapProgram "$out/bin/$a" \
+ --set "GOROOT" $out/share/go \
+ ${if stdenv.system == "armv5tel-linux" then "--set GOARM $GOARM" else ""}
+ done
+
+ # Copy the emacs configuration for Go files.
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp ./misc/emacs/* $out/share/emacs/site-lisp/
+ '';
+
+ meta = {
+ branch = "1.1";
+ homepage = http://golang.org/;
+ description = "The Go Programming language";
+ license = "BSD";
+ maintainers = with stdenv.lib.maintainers; [ pierron viric ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/development/compilers/go/1.2.nix b/pkgs/development/compilers/go/1.2.nix
new file mode 100644
index 0000000000000..0454ea96d892e
--- /dev/null
+++ b/pkgs/development/compilers/go/1.2.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc }:
+
+let
+ loader386 = "${glibc.out}/lib/ld-linux.so.2";
+ loaderAmd64 = "${glibc.out}/lib/ld-linux-x86-64.so.2";
+ loaderArm = "${glibc.out}/lib/ld-linux.so.3";
+in
+
+stdenv.mkDerivation {
+ name = "go-1.2.2";
+
+ src = fetchurl {
+ url = https://storage.googleapis.com/golang/go1.2.2.src.tar.gz;
+ sha1 = "3ce0ac4db434fc1546fec074841ff40dc48c1167";
+ };
+
+ buildInputs = [ bison glibc bash makeWrapper ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
+
+ # I'm not sure what go wants from its 'src', but the go installation manual
+ # describes an installation keeping the src.
+ preUnpack = ''
+ mkdir -p $out/share
+ cd $out/share
+ '';
+
+ prePatch = ''
+ cd ..
+ if [ ! -d go ]; then
+ mv * go
+ fi
+ cd go
+
+ patchShebangs ./ # replace /bin/bash
+ # !!! substituteInPlace does not seems to be effective.
+ sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.3,${loaderArm},' src/cmd/5l/asm.c
+ sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/pkg/time/zoneinfo_unix.go
+ sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/pkg/net/lookup_unix.go
+
+ #sed -i -e 's,/bin/cat,${coreutils}/bin/cat,' \
+ # -e 's,/bin/echo,${coreutils}/bin/echo,' \
+ # src/pkg/exec/exec_test.go
+
+ # Disabling the 'os/http/net' tests (they want files not available in
+ # chroot builds)
+ rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
+ # The os test wants to read files in an existing path. Just it don't be /usr/bin.
+ sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
+ sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
+ # Disable the hostname test
+ sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
+ # ParseInLocation fails the test
+ sed -i '/TestParseInSydney/areturn' src/pkg/time/time_test.go
+ '';
+
+ patches = [ ./cacert-1.2.patch ];
+
+ GOOS = "linux";
+ GOARCH = if stdenv.system == "i686-linux" then "386"
+ else if stdenv.system == "x86_64-linux" then "amd64"
+ else if stdenv.system == "armv5tel-linux" then "arm"
+ else throw "Unsupported system";
+ GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
+ GO386 = 387; # from Arch: don't assume sse2 on i686
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ export GOROOT="$(pwd)/"
+ export GOBIN="$out/bin"
+ export PATH="$GOBIN:$PATH"
+ cd ./src
+ ./all.bash
+ cd -
+
+ # Copy the emacs configuration for Go files.
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp ./misc/emacs/* $out/share/emacs/site-lisp/
+ '';
+
+ meta = {
+ branch = "1.2";
+ homepage = http://golang.org/;
+ description = "The Go Programming language";
+ license = "BSD";
+ maintainers = with stdenv.lib.maintainers; [ pierron viric ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/development/compilers/go/1.3.nix b/pkgs/development/compilers/go/1.3.nix
new file mode 100644
index 0000000000000..a9a3c10584b08
--- /dev/null
+++ b/pkgs/development/compilers/go/1.3.nix
@@ -0,0 +1,113 @@
+{ stdenv, lib, fetchurl, fetchhg, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc, perl }:
+
+let
+ loader386 = "${glibc.out}/lib/ld-linux.so.2";
+ loaderAmd64 = "${glibc.out}/lib/ld-linux-x86-64.so.2";
+ loaderArm = "${glibc.out}/lib/ld-linux.so.3";
+ srcs = {
+ golang = fetchurl {
+ url = https://storage.googleapis.com/golang/go1.3.3.src.tar.gz;
+ sha1 = "b54b7deb7b7afe9f5d9a3f5dd830c7dede35393a";
+ };
+ tools = fetchhg {
+ url = https://code.google.com/p/go.tools/;
+ rev = "e1c276c4e679";
+ sha256 = "0x62njflwkd99i2ixbksg6mjppl1wfg86f0g3swn350l1h0xzp76";
+ };
+ };
+in
+
+stdenv.mkDerivation {
+ name = "go-1.3.3";
+
+ src = srcs.golang;
+
+ # perl is used for testing go vet
+ buildInputs = [ bison bash makeWrapper perl ] ++ lib.optionals stdenv.isLinux [ glibc ] ;
+
+ # I'm not sure what go wants from its 'src', but the go installation manual
+ # describes an installation keeping the src.
+ preUnpack = ''
+ mkdir -p $out/share
+ cd $out/share
+ '';
+ postUnpack = ''
+ mkdir -p $out/share/go/src/pkg/code.google.com/p/
+ cp -rv --no-preserve=mode,ownership ${srcs.tools} $out/share/go/src/pkg/code.google.com/p/go.tools
+ '';
+
+ prePatch = ''
+ # Ensure that the source directory is named go
+ cd ..
+ if [ ! -d go ]; then
+ mv * go
+ fi
+ cd go
+ patchShebangs ./ # replace /bin/bash
+
+ # Disabling the 'os/http/net' tests (they want files not available in
+ # chroot builds)
+ rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
+ # !!! substituteInPlace does not seems to be effective.
+ # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
+ sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
+ sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
+ # Disable the unix socket test
+ sed -i '/TestShutdownUnix/areturn' src/pkg/net/net_test.go
+ # Disable the hostname test
+ sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
+ sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/pkg/net/lookup_unix.go
+ # ParseInLocation fails the test
+ sed -i '/TestParseInSydney/areturn' src/pkg/time/format_test.go
+ '' + lib.optionalString stdenv.isLinux ''
+ sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/pkg/time/zoneinfo_unix.go
+ sed -i 's,/lib/ld-linux.so.3,${loaderArm},' src/cmd/5l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
+ sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
+ '';
+
+ patches = [ ./cacert-1.2.patch ];
+
+ GOOS = if stdenv.isDarwin then "darwin" else "linux";
+ GOARCH = if stdenv.isDarwin then "amd64"
+ else if stdenv.system == "i686-linux" then "386"
+ else if stdenv.system == "x86_64-linux" then "amd64"
+ else if stdenv.system == "armv5tel-linux" then "arm"
+ else throw "Unsupported system";
+ GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
+ GO386 = 387; # from Arch: don't assume sse2 on i686
+ CGO_ENABLED = if stdenv.isDarwin then 0 else 1;
+
+ installPhase = ''
+ export CC=cc
+ mkdir -p "$out/bin"
+ unset GOPATH
+ export GOROOT="$(pwd)/"
+ export GOBIN="$out/bin"
+ export PATH="$GOBIN:$PATH"
+ cd ./src
+ ./all.bash
+ cd -
+
+ # Build extra tooling
+ # TODO: Fix godoc tests
+ TOOL_ROOT=code.google.com/p/go.tools/cmd
+ go install -v $TOOL_ROOT/cover $TOOL_ROOT/vet $TOOL_ROOT/godoc
+ go test -v $TOOL_ROOT/cover $TOOL_ROOT/vet # $TOOL_ROOT/godoc
+
+ # Copy the emacs configuration for Go files.
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp ./misc/emacs/* $out/share/emacs/site-lisp/
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ meta = {
+ branch = "1.3";
+ homepage = http://golang.org/;
+ description = "The Go Programming language";
+ license = "BSD";
+ maintainers = with stdenv.lib.maintainers; [ cstrahan ];
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/pkgs/development/compilers/go/1.4.nix b/pkgs/development/compilers/go/1.4.nix
index 2a1f437ffdf68..3a1f39eab2423 100644
--- a/pkgs/development/compilers/go/1.4.nix
+++ b/pkgs/development/compilers/go/1.4.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
# Find the loader dynamically
- LOADER="$(find ${libc}/lib -name ld-linux\* | head -n 1)"
+ LOADER="$(find ${libc.out or libc}/lib -name ld-linux\* | head -n 1)"
# Replace references to the loader
find src/cmd -name asm.c -exec sed -i "s,/lib/ld-linux.*\.so\.[0-9],$LOADER," {} \;
diff --git a/pkgs/development/compilers/go/default.nix b/pkgs/development/compilers/go/default.nix
new file mode 100644
index 0000000000000..c684d7d5ee5db
--- /dev/null
+++ b/pkgs/development/compilers/go/default.nix
@@ -0,0 +1,95 @@
+{ stdenv, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata}:
+
+let
+ loader386 = "${glibc.out}/lib/ld-linux.so.2";
+ loaderAmd64 = "${glibc.out}/lib/ld-linux-x86-64.so.2";
+ loaderArm = "${glibc.out}/lib/ld-linux.so.3";
+in
+
+stdenv.mkDerivation {
+ name = "go-1.0.3";
+
+ src = fetchurl {
+ url = http://go.googlecode.com/files/go1.0.3.src.tar.gz;
+ sha256 = "1pz31az3icwqfqfy3avms05jnqr0qrbrx9yqsclkdwbjs4rkbfkz";
+ };
+
+ buildInputs = [ bison glibc bash makeWrapper ];
+
+ # I'm not sure what go wants from its 'src', but the go installation manual
+ # describes an installation keeping the src.
+ preUnpack = ''
+ mkdir -p $out/share
+ cd $out/share
+ '';
+
+ prePatch = ''
+ cd ..
+ if [ ! -d go ]; then
+ mv * go
+ fi
+ cd go
+
+ patchShebangs ./ # replace /bin/bash
+ # !!! substituteInPlace does not seems to be effective.
+ sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
+ sed -i 's,/lib64/ld-linux-x86-64.so.3,${loaderArm},' src/cmd/5l/asm.c
+ sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/pkg/time/zoneinfo_unix.go
+
+ #sed -i -e 's,/bin/cat,${coreutils}/bin/cat,' \
+ # -e 's,/bin/echo,${coreutils}/bin/echo,' \
+ # src/pkg/exec/exec_test.go
+
+ # Disabling the 'os/http/net' tests (they want files not available in
+ # chroot builds)
+ rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
+ # The os test wants to read files in an existing path. Just it don't be /usr/bin.
+ sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
+ sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
+ # Disable the hostname test
+ sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
+ '';
+
+ patches = [ ./cacert.patch ./1_0-opt-error.patch ./1_0-gcc-bug.patch ];
+
+ GOOS = "linux";
+ GOARCH = if stdenv.system == "i686-linux" then "386"
+ else if stdenv.system == "x86_64-linux" then "amd64"
+ else if stdenv.system == "armv5tel-linux" then "arm"
+ else throw "Unsupported system";
+ GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ export GOROOT="$(pwd)/"
+ export GOBIN="$out/bin"
+ export PATH="$GOBIN:$PATH"
+ cd ./src
+ ./all.bash
+ cd -
+
+ # Wrap the tools to define the location of the
+ # libraries.
+ for a in go gofmt godoc; do
+ wrapProgram "$out/bin/$a" \
+ --set "GOROOT" $out/share/go \
+ ${if stdenv.system == "armv5tel-linux" then "--set GOARM $GOARM" else ""}
+ done
+
+ # Copy the emacs configuration for Go files.
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp ./misc/emacs/* $out/share/emacs/site-lisp/
+ '';
+
+ meta = {
+ branch = "1.0";
+ homepage = http://golang.org/;
+ description = "The Go Programming language";
+ license = "BSD";
+ maintainers = with stdenv.lib.maintainers; [ pierron viric ];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/development/compilers/llvm/3.7/llvm.nix b/pkgs/development/compilers/llvm/3.7/llvm.nix
index 393e889024bed..be527d873754a 100644
--- a/pkgs/development/compilers/llvm/3.7/llvm.nix
+++ b/pkgs/development/compilers/llvm/3.7/llvm.nix
@@ -56,6 +56,8 @@ in stdenv.mkDerivation rec {
"-DCAN_TARGET_i386=false"
];
+ NIX_LDFLAGS = "-lpthread"; # no idea what's the problem
+
postBuild = ''
rm -fR $out
diff --git a/pkgs/development/compilers/mentor/default.nix b/pkgs/development/compilers/mentor/default.nix
index 7ff013b234410..74905c6ffae41 100644
--- a/pkgs/development/compilers/mentor/default.nix
+++ b/pkgs/development/compilers/mentor/default.nix
@@ -34,7 +34,7 @@ let
# GDB needs ncurses
case "$file" in
- *gdb) patchelf --set-rpath "${ncurses}/lib" "$file";;
+ *gdb) patchelf --set-rpath "${ncurses.out}/lib" "$file";;
esac
done
diff --git a/pkgs/development/compilers/mkcl/default.nix b/pkgs/development/compilers/mkcl/default.nix
index f6ab05bd29ba4..af1ebd6a19678 100644
--- a/pkgs/development/compilers/mkcl/default.nix
+++ b/pkgs/development/compilers/mkcl/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ gmp ];
configureFlags = [
- "GMP_CFLAGS=-I${gmp}/include"
- "GMP_LDFLAGS=-L${gmp}/lib"
+ "GMP_CFLAGS=-I${gmp.dev}/include"
+ "GMP_LDFLAGS=-L${gmp.out}/lib"
];
postInstall = ''
diff --git a/pkgs/development/compilers/mlton/default.nix b/pkgs/development/compilers/mlton/default.nix
index 381941acc20e5..c4890c1ca886e 100644
--- a/pkgs/development/compilers/mlton/default.nix
+++ b/pkgs/development/compilers/mlton/default.nix
@@ -6,8 +6,8 @@ let
usr_prefix = if stdenv.isDarwin then "usr/local" else "usr";
dynamic_linker =
- if stdenv.isx86_64 then "${stdenv.glibc}/lib/ld-linux-x86-64.so.2"
- else "${stdenv.glibc}/lib/ld-linux.so.2";
+ if stdenv.isx86_64 then "${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2"
+ else "${stdenv.glibc.out}/lib/ld-linux.so.2";
in
stdenv.mkDerivation rec {
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
chmod u+x $(pwd)/../${usr_prefix}/bin/mlton
# So the builder runs the binary compiler with gmp.
- export LD_LIBRARY_PATH=${gmp}/lib:$LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH=${gmp.out}/lib:$LD_LIBRARY_PATH
'' + stdenv.lib.optionalString stdenv.isLinux ''
# Patch ELF interpreter.
@@ -92,10 +92,10 @@ stdenv.mkDerivation rec {
substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace '/${usr_prefix}/lib/mlton' $out/lib/mlton
# Path to libgmp.
- substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "-link-opt '-lm -lgmp'" "-link-opt '-lm -lgmp -L${gmp}/lib'"
+ substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "-link-opt '-lm -lgmp'" "-link-opt '-lm -lgmp -L${gmp.out}/lib'"
# Path to gmp.h.
- substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "-cc-opt '-O1 -fno-common'" "-cc-opt '-O1 -fno-common -I${gmp}/include'"
+ substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "-cc-opt '-O1 -fno-common'" "-cc-opt '-O1 -fno-common -I${gmp.dev}/include'"
# Path to the same cc used in the build; needed at runtime.
substituteInPlace $(pwd)/install/${usr_prefix}/bin/mlton --replace "gcc='gcc'" "gcc='"$(type -p cc)"'"
diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix
index a4dbfeac8342a..f81370992a65a 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
buildPhase = "sh build.sh";
installPhase =
''
- installBin bin/nim
+ install -Dt "$out/bin" bin/nim
substituteInPlace install.sh --replace '$1/nim' "$out"
sh install.sh $out
'';
diff --git a/pkgs/development/compilers/nvidia-cg-toolkit/default.nix b/pkgs/development/compilers/nvidia-cg-toolkit/default.nix
index 9c6d07c4681e9..ab71090b35802 100644
--- a/pkgs/development/compilers/nvidia-cg-toolkit/default.nix
+++ b/pkgs/development/compilers/nvidia-cg-toolkit/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
installPhase = ''
for b in cgc cgfxcat cginfo
do
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux*.so.? "bin/$b"
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux*.so.? "bin/$b"
done
# FIXME: cgfxcat and cginfo need more patchelf
mkdir -p "$out/bin/"
diff --git a/pkgs/development/compilers/opendylan/bin.nix b/pkgs/development/compilers/opendylan/bin.nix
index 4d18b8d328d60..492b1c4b33381 100644
--- a/pkgs/development/compilers/opendylan/bin.nix
+++ b/pkgs/development/compilers/opendylan/bin.nix
@@ -24,10 +24,10 @@ stdenv.mkDerivation {
interpreter="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
for a in "$out"/bin/*; do
patchelf --set-interpreter "$interpreter" "$a"
- patchelf --set-rpath "$out/lib:${boehmgc}/lib" "$a"
+ patchelf --set-rpath "$out/lib:${boehmgc.out}/lib" "$a"
done
for a in "$out"/lib/*.so; do
- patchelf --set-rpath "$out/lib:${boehmgc}/lib" "$a"
+ patchelf --set-rpath "$out/lib:${boehmgc.out}/lib" "$a"
done
sed -i -e "s|\-lgc|\-L${boehmgc}\/lib -lgc|" $out/lib/config.jam
wrapProgram $out/bin/dylan-compiler --suffix PATH : ${gcc}/bin
diff --git a/pkgs/development/compilers/openjdk/7.nix b/pkgs/development/compilers/openjdk/7.nix
index 97ffbf9f0993e..de803a5d90c51 100644
--- a/pkgs/development/compilers/openjdk/7.nix
+++ b/pkgs/development/compilers/openjdk/7.nix
@@ -106,9 +106,9 @@ let
makeFlags = [
"SORT=${coreutils}/bin/sort"
- "ALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
- "FREETYPE_HEADERS_PATH=${freetype}/include"
- "FREETYPE_LIB_PATH=${freetype}/lib"
+ "ALSA_INCLUDE=${alsaLib.dev}/include/alsa/version.h"
+ "FREETYPE_HEADERS_PATH=${freetype.dev}/include"
+ "FREETYPE_LIB_PATH=${freetype.out}/lib"
"MILESTONE=${update}"
"BUILD_NUMBER=b${build}"
"USRBIN_PATH="
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index 45bef9819aabf..7ba6b56a8f38c 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype
+{ stdenv, fetchurl, cpio, pkgconfig, file, which, unzip, zip, xorg, cups, freetype
, alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib
, setJavaClassPath
, minimal ? false
@@ -63,6 +63,7 @@ let
outputs = [ "out" "jre" ];
+ nativeBuildInputs = [ pkgconfig ];
buildInputs = [
cpio file which unzip zip
xorg.libX11 xorg.libXt xorg.libXext xorg.libXrender xorg.libXtst
@@ -93,7 +94,6 @@ let
'';
configureFlags = [
- "--with-freetype=${freetype}"
"--with-boot-jdk=${bootjdk.home}"
"--with-update-version=${update}"
"--with-build-number=${build}"
diff --git a/pkgs/development/compilers/openjdk/bootstrap.nix b/pkgs/development/compilers/openjdk/bootstrap.nix
index a9ca7673dfe99..48a22638813f7 100644
--- a/pkgs/development/compilers/openjdk/bootstrap.nix
+++ b/pkgs/development/compilers/openjdk/bootstrap.nix
@@ -40,13 +40,13 @@ let
LIBDIRS="$(find $out -name \*.so\* -exec dirname {} \; | sort | uniq | tr '\n' ':')"
for i in $out/bin/*; do
- patchelf --set-interpreter ${glibc}/lib/ld-linux*.so.2 $i || true
- patchelf --set-rpath "${glibc}/lib:$LIBDIRS" $i || true
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux*.so.2 $i || true
+ patchelf --set-rpath "${glibc.out}/lib:$LIBDIRS" $i || true
done
find $out -name \*.so\* | while read lib; do
- patchelf --set-interpreter ${glibc}/lib/ld-linux*.so.2 $lib || true
- patchelf --set-rpath "${glibc}/lib:${stdenv.cc.cc}/lib:$LIBDIRS" $lib || true
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux*.so.2 $lib || true
+ patchelf --set-rpath "${glibc.out}/lib:${stdenv.cc.cc.lib}/lib:$LIBDIRS" $lib || true
done
# Temporarily, while NixOS's OpenJDK bootstrap tarball doesn't have PaX markings:
diff --git a/pkgs/development/compilers/orc/default.nix b/pkgs/development/compilers/orc/default.nix
index d60ad0d11ec94..1488736a48087 100644
--- a/pkgs/development/compilers/orc/default.nix
+++ b/pkgs/development/compilers/orc/default.nix
@@ -8,20 +8,25 @@ stdenv.mkDerivation rec {
sha256 = "16ykgdrgxr6pfpy931p979cs68klvwmk3ii1k0a00wr4nn9x931k";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" ];
+ outputBin = "dev"; # compilation tools
+
+ postInstall = ''
+ sed "/^toolsdir=/ctoolsdir=$dev/bin" -i "$dev"/lib/pkgconfig/orc*.pc
+ '';
# building memcpy_speed.log
# ../test-driver: line 107: 4495 Segmentation fault "$@" > $log_file 2>&1
# FAIL: memcpy_speed
doCheck = false; # see https://bugzilla.gnome.org/show_bug.cgi?id=728129#c7
- meta = {
+ meta = with stdenv.lib; {
description = "The Oil Runtime Compiler";
homepage = "http://code.entropywave.com/orc/";
# The source code implementing the Marsenne Twister algorithm is licensed
# under the 3-clause BSD license. The rest is 2-clause BSD license.
- license = stdenv.lib.licenses.bsd3;
- platforms = stdenv.lib.platforms.unix;
- maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.fuuzetsu ];
};
}
diff --git a/pkgs/development/compilers/path64/default.nix b/pkgs/development/compilers/path64/default.nix
index d6112dcdfc482..694bdc8990fd7 100644
--- a/pkgs/development/compilers/path64/default.nix
+++ b/pkgs/development/compilers/path64/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
patchPhase = ''
sed -i s,/usr/bin/ld,$(type -P ld), src/driver/phases.c
- sed -i s,/lib64/ld-linux-x86-64.so.2,${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2, src/include/main_defs.h.in
+ sed -i s,/lib64/ld-linux-x86-64.so.2,${stdenv.cc.libc.out}/lib/ld-linux-x86-64.so.2, src/include/main_defs.h.in
'';
cmakeFlags = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
-DPATH64_ENABLE_PSCRUNTIME=OFF
-DPATH64_ENABLE_PROFILING=OFF -DPATH64_ENABLE_TARGETS=x8664
-DCMAKE_BUILD_TYPE=Debug -DPATH64_ENABLE_FORTRAN=OFF
- -DPSC_CRT_PATH=${stdenv.cc.libc}/lib
+ -DPSC_CRT_PATH=${stdenv.cc.libc.out}/lib
'';
makeFlags = "-j4";
diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix
index c94ba203c0ff9..076146095196a 100644
--- a/pkgs/development/compilers/ponyc/default.nix
+++ b/pkgs/development/compilers/ponyc/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
checkTarget = "test";
patchPhase = ''
- sed 's|/usr/lib/x86_64-linux-gnu/|${glibc}/lib/|g' -i src/libponyc/codegen/genexe.c
+ sed 's|/usr/lib/x86_64-linux-gnu/|${glibc.out}/lib/|g' -i src/libponyc/codegen/genexe.c
sed 's|/lib/x86_64-linux-gnu/|${stdenv.cc.cc}/lib/|g' -i src/libponyc/codegen/genexe.c
'';
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
'';
preCheck = ''
- export LIBRARY_PATH="$out/lib:${openssl}/lib:${pcre2}/lib"
+ export LIBRARY_PATH="$out/lib:${openssl.out}/lib:${pcre2}/lib"
'';
installPhase = ''
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
mv $out/bin/ponyc $out/bin/ponyc.wrapped
makeWrapper $out/bin/ponyc.wrapped $out/bin/ponyc \
--prefix LIBRARY_PATH : "$out/lib" \
- --prefix LIBRARY_PATH : "${openssl}/lib" \
+ --prefix LIBRARY_PATH : "${openssl.out}/lib" \
--prefix LIBRARY_PATH : "${pcre2}/lib"
'';
diff --git a/pkgs/development/compilers/rustc/generic.nix b/pkgs/development/compilers/rustc/generic.nix
index c0f15fbd116c5..177d403b4513e 100644
--- a/pkgs/development/compilers/rustc/generic.nix
+++ b/pkgs/development/compilers/rustc/generic.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, fetchgit, fetchzip, file, python2, tzdata, procps
-, llvmPackages_37, jemalloc, ncurses, darwin
+, llvmPackages_37, jemalloc, ncurses, darwin, binutils
, shortVersion, isRelease
, forceBundledLLVM ? false
@@ -114,8 +114,8 @@ with stdenv.lib; stdenv.mkDerivation {
mkdir -p "$out"
cp -r bin "$out/bin"
'' + optionalString stdenv.isLinux ''
- patchelf --interpreter "${stdenv.glibc}/lib/${stdenv.cc.dynamicLinker}" \
- --set-rpath "${stdenv.cc.cc}/lib/:${stdenv.cc.cc}/lib64/" \
+ patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
+ --set-rpath "${stdenv.cc.cc.lib}/lib/:${stdenv.cc.cc.lib}/lib64/" \
"$out/bin/rustc"
'';
};
@@ -123,7 +123,7 @@ with stdenv.lib; stdenv.mkDerivation {
configureFlags = configureFlags
++ [ "--enable-local-rust" "--local-rust-root=$snapshot" "--enable-rpath" ]
# ++ [ "--jemalloc-root=${jemalloc}/lib"
- ++ [ "--default-linker=${stdenv.cc}/bin/cc" "--default-ar=${stdenv.cc.binutils}/bin/ar" ]
+ ++ [ "--default-linker=${stdenv.cc}/bin/cc" "--default-ar=${binutils}/bin/ar" ]
++ optional (stdenv.cc.cc ? isClang) "--enable-clang"
++ optional (!forceBundledLLVM) "--llvm-root=${llvmShared}";
@@ -169,6 +169,7 @@ with stdenv.lib; stdenv.mkDerivation {
enableParallelBuilding = false; # missing files during linking, occasionally
outputs = [ "out" "doc" ];
+ setOutputFlags = false;
preCheck = "export TZDIR=${tzdata}/share/zoneinfo";
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index f1a52f5de91e0..fbadb9d743662 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
preConfigure = ''
configureFlagsArray+=("--elfinterp=$(cat $NIX_CC/nix-support/dynamic-linker)")
- configureFlagsArray+=("--crtprefix=${stdenv.glibc}/lib")
- configureFlagsArray+=("--sysincludepaths=${stdenv.glibc}/include:{B}/include")
- configureFlagsArray+=("--libpaths=${stdenv.glibc}/lib")
+ configureFlagsArray+=("--crtprefix=${stdenv.glibc.out}/lib")
+ configureFlagsArray+=("--sysincludepaths=${stdenv.glibc.dev}/include:{B}/include")
+ configureFlagsArray+=("--libpaths=${stdenv.glibc.out}/lib")
'';
doCheck = true;
diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix
index f99571c6a10bb..5fbfd8a96ac9b 100644
--- a/pkgs/development/compilers/urweb/default.nix
+++ b/pkgs/development/compilers/urweb/default.nix
@@ -22,12 +22,12 @@ stdenv.mkDerivation rec {
preConfigure = ''
export PGHEADER="${postgresql}/include/libpq-fe.h";
export MSHEADER="${mysql.lib}/include/mysql/mysql.h";
- export SQHEADER="${sqlite}/include/sqlite3.h";
+ export SQHEADER="${sqlite.dev}/include/sqlite3.h";
export CCARGS="-I$out/include \
-L${mysql.lib}/lib/mysql \
- -L${postgresql}/lib \
- -L${sqlite}/lib";
+ -L${postgresql.lib}/lib \
+ -L${sqlite.out}/lib";
'';
# Be sure to keep the statically linked libraries
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 6dbbd40a63056..89c839d49df47 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -220,8 +220,8 @@ self: super: {
else super.x509-system;
double-conversion = if !pkgs.stdenv.isDarwin
- then super.double-conversion
- else addBuildDepend (overrideCabal super.double-conversion (drv:
+ then addExtraLibrary super.double-conversion pkgs.stdenv.cc.cc.lib
+ else addExtraLibrary (overrideCabal super.double-conversion (drv:
{
postPatch = ''
substituteInPlace double-conversion.cabal --replace stdc++ c++
diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix
index a9854c7c49347..f71b557bc25d0 100644
--- a/pkgs/development/interpreters/elixir/default.nix
+++ b/pkgs/development/interpreters/elixir/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
b=$(basename $f)
if [ $b == "mix" ]; then continue; fi
wrapProgram $f \
- --prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${curl}/bin:${bash}/bin" \
+ --prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${curl.bin}/bin:${bash}/bin" \
--set CURL_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt
done
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index 5e2883f9fb3c8..847ae2997b85e 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -51,7 +51,7 @@
sed -i "$out/lib/pkgconfig/guile-2.0.pc" \
-e 's|-lunistring|-L${libunistring}/lib -lunistring|g ;
s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
- s|-lltdl|-L${libtool}/lib -lltdl|g'
+ s|-lltdl|-L${libtool.lib}/lib -lltdl|g'
'';
# make check doesn't work on darwin
diff --git a/pkgs/development/interpreters/love/0.8.nix b/pkgs/development/interpreters/love/0.8.nix
index fc1f01cb3730c..b12c2c405780e 100644
--- a/pkgs/development/interpreters/love/0.8.nix
+++ b/pkgs/development/interpreters/love/0.8.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
'';
NIX_CFLAGS_COMPILE = ''
- -I${SDL}/include/SDL
+ -I${SDL.dev}/include/SDL
-I${freetype}include/freetype2
'';
diff --git a/pkgs/development/interpreters/lua-5/expat.nix b/pkgs/development/interpreters/lua-5/expat.nix
index 0dbbaf8a16143..243abae331a63 100644
--- a/pkgs/development/interpreters/lua-5/expat.nix
+++ b/pkgs/development/interpreters/lua-5/expat.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
makeFlagsArray=(
LUA_LDIR="$out/share/lua/${lua5.luaversion}"
LUA_INC="-I${lua5}/include" LUA_CDIR="$out/lib/lua/${lua5.luaversion}"
- EXPAT_INC="-I${expat}/include");
+ EXPAT_INC="-I${expat.dev}/include");
'';
meta = {
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 8b5da0528523a..23ea2fd655288 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
'' + stdenv.lib.optionalString (stdenv.cc.libc != null)
''
substituteInPlace Makefile \
- --replace ldconfig ${stdenv.cc.libc}/sbin/ldconfig
+ --replace ldconfig ${stdenv.cc.libc.bin or stdenv.cc.libc}/bin/ldconfig
'';
configurePhase = false;
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 1a92f3aa00721..f8565b9637a5b 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -17,7 +17,8 @@ assert enableThreading -> (stdenv ? glibc);
let
libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr";
-
+ libcInc = libc.dev or libc;
+ libcLib = libc.out or libc;
common = { version, sha256 }: stdenv.mkDerivation rec {
name = "perl-${version}";
@@ -26,7 +27,9 @@ let
inherit sha256;
};
- outputs = [ "out" "man" ];
+ # TODO: Add a "dev" output containing the header files.
+ outputs = [ "out" "man" "docdev" ];
+ setOutputFlags = false;
patches =
[ # Do not look in /usr etc. for dependencies.
@@ -35,17 +38,11 @@ let
++ optional stdenv.isSunOS ./ld-shared.patch
++ optional stdenv.isDarwin [ ./cpp-precomp.patch ];
- # There's an annoying bug on sandboxed Darwin in Perl's Cwd.pm where it looks for pwd
- # in /bin/pwd and /usr/bin/pwd and then falls back on just "pwd" if it can't get them
- # while at the same time erasing the PATH environment variable so it unconditionally
- # fails. The code in question is guarded by a check for Mac OS, but the patch below
- # doesn't have any runtime effect on other platforms.
- postPatch = optional stdenv.isDarwin ''
+ postPatch = ''
pwd="$(type -P pwd)"
substituteInPlace dist/PathTools/Cwd.pm \
--replace "/bin/pwd" "$pwd"
'';
-
sandboxProfile = sandbox.allow "ipc-sysv-sem";
# Build a thread-safe Perl with a dynamic libperls.o. We need the
@@ -59,8 +56,8 @@ let
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
- "-Dlocincpth=${libc}/include"
- "-Dloclibpth=${libc}/lib"
+ "-Dlocincpth=${libcInc}/include"
+ "-Dloclibpth=${libcLib}/lib"
]
++ optional stdenv.isSunOS "-Dcc=gcc"
++ optional enableThreading "-Dusethreads";
@@ -74,10 +71,8 @@ let
preConfigure =
''
configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
-
- ${optionalString stdenv.isArm ''
- configureFlagsArray=(-Dldflags="-lm -lrt")
- ''}
+ '' + optionalString stdenv.isArm ''
+ configureFlagsArray=(-Dldflags="-lm -lrt")
'' + optionalString stdenv.isDarwin ''
substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
'' + optionalString (!enableThreading) ''
@@ -91,18 +86,26 @@ let
substituteInPlace dist/PathTools/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
'';
- # Inspired by nuke-references, which I can't depend on because it uses perl. Perhaps it should just use sed :)
- postInstall = ''
- self=$(echo $out | sed -n "s|^$NIX_STORE/\\([a-z0-9]\{32\}\\)-.*|\1|p")
-
- sed -i "/$self/b; s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "$out"/lib/perl5/*/*/Config.pm
- sed -i "/$self/b; s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "$out"/lib/perl5/*/*/Config_heavy.pl
- '';
-
setupHook = ./setup-hook.sh;
passthru.libPrefix = "lib/perl5/site_perl";
+ # TODO: it seems like absolute paths to some coreutils is required.
+ postInstall =
+ ''
+ # Remove dependency between "out" and "man" outputs.
+ rm "$out"/lib/perl5/*/*/.packlist
+
+ # Remove dependencies on glibc and gcc
+ sed "/ *libpth =>/c libpth => ' '," \
+ -i "$out"/lib/perl5/*/*/Config.pm
+ # TODO: removing those paths would be cleaner than overwriting with nonsense.
+ substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
+ --replace "${libcInc}" /no-such-path \
+ --replace "${stdenv.cc.cc or "/no-such-path"}" /no-such-path \
+ --replace "$man" /no-such-path
+ ''; # */
+
meta = {
homepage = https://www.perl.org/;
description = "The standard implementation of the Perl 5 programmming language";
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index ca984335fdcac..a618fd85d719e 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -30,7 +30,7 @@ let
# SAPI modules:
apxs2 = {
- configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
+ configureFlags = ["--with-apxs2=${apacheHttpd.dev}/bin/apxs"];
buildInputs = [apacheHttpd];
};
@@ -44,7 +44,13 @@ let
};
ldap = {
- configureFlags = ["--with-ldap=${openldap}"];
+ configureFlags = [
+ "--with-ldap"
+ "LDAP_DIR=${openldap.dev}"
+ "LDAP_INCDIR=${openldap.dev}/include"
+ "LDAP_LIBDIR=${openldap.out}/lib"
+ "--with-ldap-sasl=${cyrus_sasl.dev}"
+ ];
buildInputs = [openldap cyrus_sasl openssl];
};
@@ -69,7 +75,7 @@ let
libxml2 = {
configureFlags = [
- "--with-libxml-dir=${libxml2}"
+ "--with-libxml-dir=${libxml2.dev}"
];
buildInputs = [ libxml2 ];
};
@@ -148,7 +154,7 @@ let
};
openssl = {
- configureFlags = ["--with-openssl=${openssl}"];
+ configureFlags = ["--enable-openssl"];
buildInputs = [openssl];
};
diff --git a/pkgs/development/interpreters/pypy/default.nix b/pkgs/development/interpreters/pypy/default.nix
index 8abc1ac489cde..095e0b7db08e3 100644
--- a/pkgs/development/interpreters/pypy/default.nix
+++ b/pkgs/development/interpreters/pypy/default.nix
@@ -25,17 +25,17 @@ let
++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc
++ stdenv.lib.optional zlibSupport zlib;
- C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/include") buildInputs);
- LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
- LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib")
+ C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p.dev or p}/include") buildInputs);
+ LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p.lib or p.out or p}/lib") buildInputs);
+ LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p.lib or p.out or p}/lib")
(stdenv.lib.filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs));
preConfigure = ''
# hint pypy to find nix ncurses
substituteInPlace pypy/module/_minimal_curses/fficurses.py \
- --replace "/usr/include/ncurses/curses.h" "${ncurses}/include/curses.h" \
- --replace "ncurses/curses.h" "${ncurses}/include/curses.h" \
- --replace "ncurses/term.h" "${ncurses}/include/term.h" \
+ --replace "/usr/include/ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
+ --replace "ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
+ --replace "ncurses/term.h" "${ncurses.dev}/include/term.h" \
--replace "libraries=['curses']" "libraries=['ncurses']"
# tkinter hints
@@ -44,7 +44,7 @@ let
--replace "linklibs = ['tcl' + _ver, 'tk' + _ver]" "linklibs=['${tcl.libPrefix}', '${tk.libPrefix}']" \
--replace "libdirs = []" "libdirs = ['${tk}/lib', '${tcl}/lib']"
- sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite}/include'], library_dirs=['${sqlite}/lib']@" lib_pypy/_sqlite3_build.py
+ sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite.dev}/include'], library_dirs=['${sqlite.out}/lib']@" lib_pypy/_sqlite3_build.py
'';
buildPhase = ''
@@ -66,7 +66,7 @@ let
doCheck = true;
checkPhase = ''
- export TERMINFO="${ncurses}/share/terminfo/";
+ export TERMINFO="${ncurses.out}/share/terminfo/";
export TERM="xterm";
export HOME="$TMPDIR";
# disable shutils because it assumes gid 0 exists
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/2.6/default.nix
index 32974778168b5..96b44ddc17f38 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/2.6/default.nix
@@ -52,6 +52,10 @@ let
[ bzip2 openssl ]++ optionals includeModules [ db openssl ncurses gdbm readline xlibsWrapper tcl tk sqlite ]
++ optional zlibSupport zlib;
+ mkPaths = paths: {
+ C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p.dev or p}/include") paths);
+ LIBRARY_PATH = concatStringsSep ":" (map (p: "${p.lib or (p.out or p)}/lib") paths);
+ };
# Build the basic Python interpreter without modules that have
# external dependencies.
@@ -62,8 +66,7 @@ let
inherit majorVersion version src patches buildInputs preConfigure
configureFlags;
- C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
- LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+ inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
@@ -83,9 +86,9 @@ let
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion}
mv $out/share/man/man1/{python.1,python2.6.1}
ln -s $out/share/man/man1/{python2.6.1,python.1}
-
+
paxmark E $out/bin/python${majorVersion}
-
+
${ optionalString includeModules "$out/bin/python ./setup.py build_ext"}
'';
@@ -139,8 +142,7 @@ let
buildInputs = [ python ] ++ deps;
- C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
- LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+ inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
buildPhase =
''
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
index a2c059da06070..f1ae897ea4ac1 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -101,6 +101,11 @@ let
propagatedBuildInputs = optional stdenv.isDarwin configd;
+ mkPaths = paths: {
+ C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p.dev or p}/include") paths);
+ LIBRARY_PATH = concatStringsSep ":" (map (p: "${p.lib or (p.out or p)}/lib") paths);
+ };
+
# Build the basic Python interpreter without modules that have
# external dependencies.
python = stdenv.mkDerivation {
@@ -111,8 +116,7 @@ let
preConfigure configureFlags;
LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
- C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
- LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+ inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
DETERMINISTIC_BUILD = 1;
@@ -137,7 +141,9 @@ let
paxmark E $out/bin/python${majorVersion}
- ${ optionalString includeModules "$out/bin/python ./setup.py build_ext"}
+ ${optionalString includeModules "$out/bin/python ./setup.py build_ext"}
+
+ rm "$out"/lib/python*/plat-*/regen # refers to glibc.dev
'';
passthru = rec {
@@ -186,8 +192,7 @@ let
buildInputs = [ python ] ++ deps;
- C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
- LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
+ inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
# non-python gdbm has a libintl dependency on i686-cygwin, not on x86_64-cygwin
buildPhase = (if (stdenv.system == "i686-cygwin" && moduleName == "gdbm") then ''
diff --git a/pkgs/development/interpreters/python/3.2/default.nix b/pkgs/development/interpreters/python/3.2/default.nix
index f4103662316ec..c0b5d3401ddd3 100644
--- a/pkgs/development/interpreters/python/3.2/default.nix
+++ b/pkgs/development/interpreters/python/3.2/default.nix
@@ -44,8 +44,8 @@ stdenv.mkDerivation {
${optionalString stdenv.isDarwin ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
configureFlagsArray=( --enable-shared --with-threads --with-wide-unicode
- CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
- LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
+ CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
+ LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
)
'';
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/3.3/default.nix
index a8953f38245a0..a46ef7c056b2d 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/3.3/default.nix
@@ -46,8 +46,8 @@ stdenv.mkDerivation {
${optionalString stdenv.isDarwin ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
configureFlagsArray=( --enable-shared --with-threads
- CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
- LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
+ CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
+ LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
)
'';
diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix
index ecada35a26e8c..8d87c6abfbb4e 100644
--- a/pkgs/development/interpreters/python/3.4/default.nix
+++ b/pkgs/development/interpreters/python/3.4/default.nix
@@ -58,8 +58,8 @@ stdenv.mkDerivation {
''}
configureFlagsArray=( --enable-shared --with-threads
- CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
- LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
+ CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
+ LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
)
'';
diff --git a/pkgs/development/interpreters/python/3.5/default.nix b/pkgs/development/interpreters/python/3.5/default.nix
index 0f4b6e744acac..4bc39f4c2b3a7 100644
--- a/pkgs/development/interpreters/python/3.5/default.nix
+++ b/pkgs/development/interpreters/python/3.5/default.nix
@@ -58,8 +58,8 @@ stdenv.mkDerivation {
''}
configureFlagsArray=( --enable-shared --with-threads
- CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
- LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
+ CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
+ LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
)
'';
diff --git a/pkgs/development/interpreters/spidermonkey/1.8.0-rc1.nix b/pkgs/development/interpreters/spidermonkey/1.8.0-rc1.nix
index ecaed5077121e..99f66199d939d 100644
--- a/pkgs/development/interpreters/spidermonkey/1.8.0-rc1.nix
+++ b/pkgs/development/interpreters/spidermonkey/1.8.0-rc1.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
'';
preConfigure = ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
'';
makeFlags = "-f ${makefile} JS_DIST=\${out} BUILD_OPT=1 JS_READLINE=1 JS_THREADSAFE=1";
diff --git a/pkgs/development/interpreters/spidermonkey/17.0.nix b/pkgs/development/interpreters/spidermonkey/17.0.nix
index 7573b546164b0..5cc71b59d5123 100644
--- a/pkgs/development/interpreters/spidermonkey/17.0.nix
+++ b/pkgs/development/interpreters/spidermonkey/17.0.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij";
};
+ outputs = [ "dev" "out" "lib" ];
+
propagatedBuildInputs = [ nspr ];
buildInputs = [ pkgconfig perl python zip libffi readline ];
@@ -21,11 +23,14 @@ stdenv.mkDerivation rec {
'';
preConfigure = ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
export LIBXUL_DIST=$out
'';
+ setOutputFlags = false;
configureFlags = [
+ "--libdir=$(lib)/lib"
+ "--includedir=$(dev)/include"
"--enable-threadsafe"
"--with-system-nspr"
"--with-system-ffi"
@@ -49,7 +54,10 @@ stdenv.mkDerivation rec {
paxmark mr jsapi-tests/jsapi-tests
'';
- postInstall = ''rm "$out"/lib/*.a''; # halve the output size
+ postInstall = ''
+ rm "$lib"/lib/*.a # halve the output size
+ moveToOutput "bin/js*-config" "$dev" # break the cycle
+ '';
meta = with stdenv.lib; {
description = "Mozilla's JavaScript engine written in C/C++";
diff --git a/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix b/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix
index a036388f15eed..94f070d1a91d3 100644
--- a/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix
+++ b/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
preConfigure = ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
export LIBXUL_DIST=$out
'';
diff --git a/pkgs/development/interpreters/spidermonkey/24.2.nix b/pkgs/development/interpreters/spidermonkey/24.2.nix
index 3a9bd8ad7a462..5c4fc85081551 100644
--- a/pkgs/development/interpreters/spidermonkey/24.2.nix
+++ b/pkgs/development/interpreters/spidermonkey/24.2.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6";
};
+ outputs = [ "dev" "out" "lib" ];
+
propagatedBuildInputs = [ nspr ];
buildInputs = [ pkgconfig perl python zip libffi readline ];
@@ -21,11 +23,14 @@ stdenv.mkDerivation rec {
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
preConfigure = ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
export LIBXUL_DIST=$out
'';
+ setOutputFlags = false;
configureFlags = [
+ "--libdir=$(lib)/lib"
+ "--includedir=$(dev)/include"
"--enable-threadsafe"
"--with-system-nspr"
"--with-system-ffi"
@@ -40,6 +45,11 @@ stdenv.mkDerivation rec {
doCheck = true;
preCheck = "rm jit-test/tests/sunspider/check-date-format-tofte.js"; # https://bugzil.la/600522
+ postInstall = ''
+ rm "$lib"/lib/*.a # halve the output size
+ moveToOutput "bin/js*-config" "$dev" # break the cycle
+ '';
+
meta = with stdenv.lib; {
description = "Mozilla's JavaScript engine written in C/C++";
homepage = https://developer.mozilla.org/en/SpiderMonkey;
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 7ca594e9bc4a3..6c3920ff8aa86 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -27,7 +27,8 @@ stdenv.mkDerivation rec {
sha256 = "005d993xcac8236fpvd1iawkz4wqjybkpn8dbwaliqz5jfkidlyn";
};
- outputs = [ "out" "man" ];
+ outputs = [ "dev" "out" ];
+ outputBin = "dev"; # sdl-config
nativeBuildInputs = [ pkgconfig ];
@@ -58,7 +59,7 @@ stdenv.mkDerivation rec {
"--disable-osmesa-shared"
] ++ stdenv.lib.optionals (stdenv ? cross) ([
"--without-x"
- ] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib}/lib");
+ ] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib");
patches = [
# Fix window resizing issues, e.g. for xmonad
@@ -96,6 +97,8 @@ stdenv.mkDerivation rec {
})
];
+ postFixup = ''moveToOutput share/aclocal "$dev" '';
+
passthru = { inherit openglSupport; };
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 529c485930b3f..1c260c2ba911a 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -19,7 +19,7 @@ let
configureFlagsFun = attrs: ''
--disable-oss --disable-x11-shared
--disable-pulseaudio-shared --disable-alsa-shared
- ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""}
+ ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib.out}/lib" else ""}
${if (!x11Support) then "--without-x" else ""}
'';
in
diff --git a/pkgs/development/libraries/aalib/default.nix b/pkgs/development/libraries/aalib/default.nix
index d7dcbeba330b6..7ddb78d052e09 100644
--- a/pkgs/development/libraries/aalib/default.nix
+++ b/pkgs/development/libraries/aalib/default.nix
@@ -8,16 +8,30 @@ stdenv.mkDerivation {
sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv";
};
+ outputs = [ "dev" "out" "bin" "doc" ];
+ setOutputFlags = false; # Doesn't support all the flags
+
+ patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ];
+
# The fuloong2f is not supported by aalib still
preConfigure = ''
cp ${automake}/share/automake*/config.{sub,guess} .
+ configureFlagsArray+=(
+ "--bindir=$bin/bin"
+ "--includedir=$dev/include"
+ "--libdir=$out/lib"
+ )
'';
buildInputs = [ ncurses ];
configureFlags = "--without-x --with-ncurses=${ncurses}";
- patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ];
+ postInstall = ''
+ mkdir -p $dev/bin
+ mv $bin/bin/aalib-config $dev/bin/aalib-config
+ substituteInPlace $out/lib/libaa.la --replace "${ncurses.dev}/lib" "${ncurses.out}/lib"
+ '';
meta = {
description = "ASCII art graphics library";
diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix
index f6445874913a4..29b31a8b492c2 100644
--- a/pkgs/development/libraries/acl/default.nix
+++ b/pkgs/development/libraries/acl/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p";
};
+ outputs = [ "dev" "out" "bin" "doc" ];
+
nativeBuildInputs = [ gettext ];
buildInputs = [ attr ];
diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix
index c123740f5c12e..6f0956f1d1d17 100644
--- a/pkgs/development/libraries/apr-util/default.nix
+++ b/pkgs/development/libraries/apr-util/default.nix
@@ -22,6 +22,9 @@ stdenv.mkDerivation rec {
patches = optional stdenv.isFreeBSD ./include-static-dependencies.patch;
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+
buildInputs = optional stdenv.isFreeBSD autoreconfHook;
configureFlags = [ "--with-apr=${apr}" "--with-expat=${expat}" ]
@@ -42,7 +45,10 @@ stdenv.mkDerivation rec {
# Give apr1 access to sed for runtime invocations
postInstall = ''
- wrapProgram $out/bin/apu-1-config --prefix PATH : "${gnused}/bin"
+ for f in $out/lib/*.la $out/lib/apr-util-1/*.la; do
+ substituteInPlace $f --replace "${expat.dev}/lib" "${expat.out}/lib"
+ done
+ wrapProgram $dev/bin/apu-1-config --prefix PATH : "${gnused}/bin"
'';
enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 08fd1fe4d5f39..c6e505f43d231 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -10,6 +10,14 @@ stdenv.mkDerivation rec {
patches = stdenv.lib.optionals stdenv.isDarwin [ ./is-this-a-compiler-bug.patch ];
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+
+ preConfigure =
+ ''
+ configureFlagsArray+=("--with-installbuilddir=$dev/share/build")
+ '';
+
configureFlags =
# Including the Windows headers breaks unistd.h.
# Based on ftp://sourceware.org/pub/cygwin/release/libapr1/libapr1-1.3.8-2-src.tar.bz2
@@ -17,10 +25,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = http://apr.apache.org/;
description = "The Apache Portable Runtime library";
- platforms = stdenv.lib.platforms.all;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = platforms.all;
+ maintainers = [ maintainers.eelco ];
};
}
diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix
index 808de07c52fd2..e49569bc226ae 100644
--- a/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/pkgs/development/libraries/at-spi2-core/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "0afn4x04j5l352vj0dccb2hkpzg3l2vhr8h1yv89fpqmjkfnm8md";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" ];
buildInputs = [
python pkgconfig popt intltool dbus_glib
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index dcb90aa16cd18..14e2e71c0bd0b 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -12,6 +12,10 @@ stdenv.mkDerivation rec {
sha256 = "ce6c48d77bf951083029d5a396dd552d836fff3c1715d3a7022e917e46d0c92b";
};
+ enableParallelBuilding = true;
+
+ outputs = [ "dev" "out" ];
+
buildInputs = libintlOrEmpty;
nativeBuildInputs = [ pkgconfig perl ];
@@ -20,8 +24,6 @@ stdenv.mkDerivation rec {
#doCheck = true; # no checks in there (2.10.0)
- postInstall = "rm -rf $out/share/gtk-doc";
-
meta = {
description = "Accessibility toolkit";
diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix
index 3c69a7328b23b..2bb5b2d258070 100644
--- a/pkgs/development/libraries/attr/default.nix
+++ b/pkgs/development/libraries/attr/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0nd8y0m6awc9ahv0ciiwf8gy54c8d3j51pw9xg7f7cn579jjyxr5";
};
+ outputs = [ "dev" "out" "bin" "doc" ];
+
nativeBuildInputs = [ gettext ];
configureFlags = "MAKE=make MSGFMT=msgfmt MSGMERGE=msgmerge XGETTEXT=xgettext ECHO=echo SED=sed AWK=gawk";
diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix
index 158f4b227dd32..4839bedd8bb06 100644
--- a/pkgs/development/libraries/boehm-gc/default.nix
+++ b/pkgs/development/libraries/boehm-gc/default.nix
@@ -7,9 +7,10 @@ stdenv.mkDerivation rec {
url = http://www.hboehm.info/gc/gc_source/gc-7.2f.tar.gz;
sha256 = "119x7p1cqw40mpwj80xfq879l9m1dkc7vbc1f3bz3kvkf8bf6p16";
};
-
patches = if stdenv.isCygwin then [ ./cygwin.patch ] else null;
+ outputs = [ "dev" "out" "doc" ];
+
configureFlags =
[ "--enable-cplusplus" ]
++ lib.optional enableLargeConfig "--enable-large-config";
@@ -19,6 +20,12 @@ stdenv.mkDerivation rec {
# Don't run the native `strip' when cross-compiling.
dontStrip = stdenv ? cross;
+ postInstall =
+ ''
+ mkdir -p $out/share/doc
+ mv $out/share/gc $out/share/doc/gc
+ '';
+
meta = {
description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++";
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index b28668e7b3013..5b0c06bd6bb2a 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -64,8 +64,8 @@ let
] ++ optional (variant == "release") "debug-symbols=off";
nativeB2Flags = [
- "-sEXPAT_INCLUDE=${expat}/include"
- "-sEXPAT_LIBPATH=${expat}/lib"
+ "-sEXPAT_INCLUDE=${expat.dev}/include"
+ "-sEXPAT_LIBPATH=${expat.out}/lib"
] ++ optional (toolset != null) "toolset=${toolset}"
++ optional (mpi != null) "--user-config=user-config.jam";
nativeB2Args = concatStringsSep " " (genericB2Flags ++ nativeB2Flags);
@@ -148,7 +148,7 @@ stdenv.mkDerivation {
configureScript = "./bootstrap.sh";
configureFlags = commonConfigureFlags ++ [
- "--with-icu=${icu}"
+ "--with-icu=${icu.dev}"
"--with-python=${python.interpreter}"
] ++ optional (toolset != null) "--with-toolset=${toolset}";
@@ -159,6 +159,7 @@ stdenv.mkDerivation {
postFixup = fixup;
outputs = [ "out" "dev" "lib" ];
+ setOutputFlags = false;
crossAttrs = rec {
buildInputs = [ expat.crossDrv zlib.crossDrv bzip2.crossDrv ];
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 537107f3f6a8f..2e4821b307381 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -19,6 +19,9 @@ stdenv.mkDerivation rec {
sha256 = "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev"; # very small
+
nativeBuildInputs = [
pkgconfig
libiconv
@@ -29,12 +32,12 @@ stdenv.mkDerivation rec {
]);
propagatedBuildInputs =
- with xorg; [ xorg.xlibsWrapper fontconfig expat freetype pixman zlib libpng ]
+ with xorg; [ libXext fontconfig expat freetype pixman zlib libpng ]
++ optional (!stdenv.isDarwin) libXrender
++ optionals xcbSupport [ libxcb xcbutil ]
++ optional gobjectSupport glib
- ++ optionals glSupport [ mesa_noglu ]
- ;
+ ++ optional glSupport mesa_noglu
+ ; # TODO: maybe liblzo but what would it be for here?
configureFlags = if stdenv.isDarwin then [
"--disable-dependency-tracking"
@@ -50,29 +53,24 @@ stdenv.mkDerivation rec {
preConfigure =
# On FreeBSD, `-ldl' doesn't exist.
- (stdenv.lib.optionalString stdenv.isFreeBSD
+ stdenv.lib.optionalString stdenv.isFreeBSD
'' for i in "util/"*"/Makefile.in" boilerplate/Makefile.in
do
cat "$i" | sed -es/-ldl//g > t
mv t "$i"
done
- '')
- +
+ ''
+ +
''
# Work around broken `Requires.private' that prevents Freetype
# `-I' flags to be propagated.
sed -i "src/cairo.pc.in" \
- -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
+ -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype.dev}/include/freetype2 -I${freetype.dev}/include|g'
'';
enableParallelBuilding = true;
- # The default `--disable-gtk-doc' is ignored.
- postInstall = "rm -rf $out/share/gtk-doc"
- + stdenv.lib.optionalString stdenv.isDarwin (''
- #newline
- '' + glib.flattenInclude
- );
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin glib.flattenInclude;
meta = with stdenv.lib; {
description = "A 2D graphics library with support for multiple output devices";
diff --git a/pkgs/development/libraries/cogl/1.20.nix b/pkgs/development/libraries/cogl/1.20.nix
index 5eb12fe299891..ae202b0937773 100644
--- a/pkgs/development/libraries/cogl/1.20.nix
+++ b/pkgs/development/libraries/cogl/1.20.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
COGL_PANGO_DEP_CFLAGS
= stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport)
- "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo";
+ "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo";
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
diff --git a/pkgs/development/libraries/cogl/1.22.nix b/pkgs/development/libraries/cogl/1.22.nix
index ce4fda5bd4686..88bb670774906 100644
--- a/pkgs/development/libraries/cogl/1.22.nix
+++ b/pkgs/development/libraries/cogl/1.22.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
COGL_PANGO_DEP_CFLAGS
= stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport)
- "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo";
+ "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo";
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index a4a20fce023aa..e457020906650 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
COGL_PANGO_DEP_CFLAGS
= stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport)
- "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo";
+ "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo";
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix
index 059b0ab0042ae..21ad12869f9c8 100644
--- a/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g";
};
+ outputs = [ "dev" "bin" "out" "man" "docdev" ];
+
buildInputs =
[ openssl db gettext kerberos ]
++ lib.optional stdenv.isFreeBSD autoreconfHook
@@ -39,6 +41,12 @@ stdenv.mkDerivation rec {
installFlags = lib.optional stdenv.isDarwin [ "framedir=$(out)/Library/Frameworks/SASL2.framework" ];
+ postInstall = ''
+ for f in $out/lib/*.la $out/lib/sasl2/*.la; do
+ substituteInPlace $f --replace "${openssl.dev}/lib" "${openssl.out}/lib"
+ done
+ '';
+
meta = {
homepage = "http://cyrusimap.web.cmu.edu/";
description = "library for adding authentication support to connection-based protocols";
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 480dc61897bb5..59d227f0e8689 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -8,13 +8,14 @@ stdenv.mkDerivation rec {
sha256 = "1xi1v1msz75qs0s4lkyf1psrksdppa3hwkg0mznc6gpw5flg3hdz";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
nativeBuildInputs = [ pkgconfig gettext ];
buildInputs = [ expat libiconv ];
- propagatedBuildInputs = [ dbus.libs glib ];
+ propagatedBuildInputs = [ dbus glib ];
doCheck = true;
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 7f5e2f6311b27..83635d9739f18 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,5 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, autoreconfHook
-, expat, systemd, glib, dbus_glib, python
+{ stdenv, lib, fetchurl, pkgconfig, expat, systemd, glib, dbus_glib, python
, libX11 ? null, libICE ? null, libSM ? null, x11Support ? (stdenv.isLinux || stdenv.isDarwin) }:
assert x11Support -> libX11 != null
@@ -10,108 +9,77 @@ let
version = "1.8.20";
sha256 = "0fkh3d5r57a659hw9lqnw4v0bc5556vx54fsf7l9c732ci6byksw";
- inherit (stdenv) lib;
-
- buildInputsX = lib.optionals x11Support [ libX11 libICE libSM ];
-
- # also other parts than "libs" need this statically linked lib
- makeInternalLib = "(cd dbus && make libdbus-internal.la)";
-
- systemdOrEmpty = lib.optional stdenv.isLinux systemd;
-
- # A generic builder for individual parts (subdirs) of D-Bus
- dbus_drv = name: subdirs: merge: stdenv.mkDerivation (lib.mergeAttrsByFuncDefaultsClean [{
-
- name = "dbus-${name}-${version}";
+self = stdenv.mkDerivation {
+ name = "dbus-${version}";
src = fetchurl {
url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
inherit sha256;
};
- patches = [
- ./ignore-missing-includedirs.patch
- ./ucred-dirty-hack.patch
- ./no-create-dirs.patch
- ]
- ++ lib.optional (stdenv.isSunOS || stdenv.isLinux) ./implement-getgrouplist.patch
- ;
-
- # build only the specified subdirs
- postPatch = "sed '/SUBDIRS/s/=.*/=" + subdirs + "/' -i Makefile.am\n"
- # use already packaged libdbus instead of trying to build it again
- + lib.optionalString (name != "libs") ''
- for mfile in */Makefile.am; do
- sed 's,\$(top_builddir)/dbus/\(libdbus-[0-9]\),${libs}/lib/\1,g' -i "$mfile"
- done
- '';
-
- nativeBuildInputs = [ pkgconfig autoreconfHook ];
- propagatedBuildInputs = [ expat ];
-
- preAutoreconf = ''
- substituteInPlace tools/Makefile.am --replace 'install-localstatelibDATA:' 'disabled:'
+ patches = [ ./ignore-missing-includedirs.patch ]
+ ++ lib.optional stdenv.isSunOS ./implement-getgrouplist.patch;
+ postPatch = ''
+ substituteInPlace tools/Makefile.in \
+ --replace 'install-localstatelibDATA:' 'disabled:' \
+ --replace 'install-data-local:' 'disabled:' \
+ --replace 'installcheck-local:' 'disabled:'
+ substituteInPlace bus/Makefile.in \
+ --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
+ '' + /* cleanup of runtime references */ ''
+ substituteInPlace ./dbus/dbus-sysdeps-unix.c \
+ --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\""
+ substituteInPlace ./tools/dbus-launch.c \
+ --replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"'
'';
- preConfigure = ''
- patchShebangs .
- '';
+ outputs = [ "dev" "out" "lib" "doc" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ propagatedBuildInputs = [ expat ];
+ buildInputs = lib.optional stdenv.isLinux systemd
+ ++ lib.optionals x11Support [ libX11 libICE libSM ];
+ # ToDo: optional selinux?
configureFlags = [
"--localstatedir=/var"
"--sysconfdir=/etc"
"--with-session-socket-dir=/tmp"
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+ # this package installs nothing into those dirs and they create a dependency
+ "--datadir=/run/current-system/sw/share"
+ "--libexecdir=$(out)/libexec" # we don't need dbus-daemon-launch-helper
] ++ lib.optional (!x11Support) "--without-x";
- enableParallelBuilding = true;
-
- doCheck = true;
-
- installFlags = "sysconfdir=$(out)/etc";
-
- } merge ]);
-
- libs = dbus_drv "libs" "dbus" {
# Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
# (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
- NIX_CFLAGS_COMPILE = "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
- buildInputs = [ systemdOrEmpty ];
- meta.platforms = stdenv.lib.platforms.all;
- };
-
-
- attrs = rec {
- # If you change much fix indentation
+ # problems building without x11Support so disabled in that case for now
+ NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
+ NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed";
- # This package has been split because most applications only need dbus.lib
- # which serves as an interface to a *system-wide* daemon,
- # see e.g. http://en.wikipedia.org/wiki/D-Bus#Architecture .
+ enableParallelBuilding = true;
- inherit libs;
+ doCheck = true;
- tools = dbus_drv "tools" "tools bus" {
- preBuild = makeInternalLib;
- buildInputs = buildInputsX ++ systemdOrEmpty ++ [ libs ];
- NIX_CFLAGS_LINK =
- stdenv.lib.optionalString (!stdenv.isDarwin && !stdenv.isSunOS) "-Wl,--as-needed "
- + "-ldbus-1";
+ installFlags = "sysconfdir=$(out)/etc datadir=$(out)/share";
- # don't provide another dbus-1.pc (with incorrect include and link dirs),
- # also remove useless empty dirs
- postInstall = ''
- rm "$out"/lib/pkgconfig/dbus-1.pc
- rmdir --parents --ignore-fail-on-non-empty "$out"/{lib/pkgconfig,share/dbus-1/*}
+ # it's executed from $lib by absolute path
+ postFixup = ''
+ moveToOutput bin/dbus-launch "$lib"
+ ln -s "$lib/bin/dbus-launch" "$out/bin/"
'';
- meta.platforms = with stdenv.lib.platforms; allBut darwin;
- };
-
- daemon = tools;
+ passthru = {
+ dbus-launch = "${self.lib}/bin/dbus-launch";
+ daemon = self.out;
+ };
- docs = dbus_drv "docs" "doc" {
- postInstall = ''rm -r "$out/lib"'';
+ meta = with stdenv.lib; {
+ description = "Simple interprocess messaging system";
+ homepage = http://www.freedesktop.org/wiki/Software/dbus/;
+ license = licenses.gpl2Plus; # most is also under AFL-2.1
+ platforms = platforms.unix;
+ };
};
-};
-in attrs.libs // attrs
+in self
diff --git a/pkgs/development/libraries/dbus/no-create-dirs.patch b/pkgs/development/libraries/dbus/no-create-dirs.patch
deleted file mode 100644
index cf10d97759918..0000000000000
--- a/pkgs/development/libraries/dbus/no-create-dirs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/bus/Makefile.am b/bus/Makefile.am
-index 6cbc09a..be60bb8 100644
---- a/bus/Makefile.am
-+++ b/bus/Makefile.am
-@@ -212,7 +212,6 @@ clean-local:
- /bin/rm *.bb *.bbg *.da *.gcov || true
-
- install-data-hook:
-- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
- $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index cfd54b8..b6e28f9 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -74,7 +74,7 @@ CLEANFILES = \
-
- # create the /var/lib/dbus directory for dbus-uuidgen
- install-data-local:
-- $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus
-+ :
-
- installcheck-local:
-- test -d $(DESTDIR)$(localstatedir)/lib/dbus
-+ :
diff --git a/pkgs/development/libraries/dbus/ucred-dirty-hack.patch b/pkgs/development/libraries/dbus/ucred-dirty-hack.patch
deleted file mode 100644
index a07abcc15fb0e..0000000000000
--- a/pkgs/development/libraries/dbus/ucred-dirty-hack.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
-index b4ecc96..267984a 100644
---- a/dbus/dbus-sysdeps-unix.c
-+++ b/dbus/dbus-sysdeps-unix.c
-@@ -1635,6 +1635,13 @@ write_credentials_byte (int server_fd,
- }
- }
-
-+struct ucred
-+{
-+ pid_t pid; /* PID of sending process. */
-+ uid_t uid; /* UID of sending process. */
-+ gid_t gid; /* GID of sending process. */
-+};
-+
- /**
- * Reads a single byte which must be nul (an error occurs otherwise),
- * and reads unix credentials if available. Clears the credentials
diff --git a/pkgs/development/libraries/epoxy/default.nix b/pkgs/development/libraries/epoxy/default.nix
index daffae90b1273..009624096605f 100644
--- a/pkgs/development/libraries/epoxy/default.nix
+++ b/pkgs/development/libraries/epoxy/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
sha256 = "0dfkd4xbp7v5gwsf6qwaraz54yzizf3lj5ymyc0msjn0adq3j5yl";
};
+ outputs = [ "dev" "out" ];
+
nativeBuildInputs = [ autoreconfHook pkgconfig utilmacros python ];
buildInputs = [ mesa libX11 ];
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 96d46649d9168..774190278cb31 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -10,8 +10,13 @@ stdenv.mkDerivation rec {
patches = [ ./CVE-2015-1283.patch ];
+ outputs = [ "dev" "out" ]; # TODO: fix referrers
+ outputBin = "dev";
+
configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
+ outputMan = "dev"; # tiny page for a dev tool
+
meta = with stdenv.lib; {
homepage = http://www.libexpat.org/;
description = "A stream-oriented XML parser library written in C";
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index d8c488d2999f1..d50c20331e4a9 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -71,6 +71,10 @@ stdenv.mkDerivation rec {
patchPhase = ''patchShebangs .'';
+ outputs = [ "dev" "out" "bin" ]
+ ++ optional (reqMin "1.0") "doc" ; # just dev-doc
+ setOutputFlags = false; # doesn't accept all and stores configureFlags in libs!
+
configureFlags = [
# License
"--enable-gpl"
@@ -155,6 +159,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ postFixup = ''
+ moveToOutput bin "$bin"
+ moveToOutput share/ffmpeg/examples "$doc"
+ '';
+
/* Cross-compilation is untested, consider this an outline, more work
needs to be done to portions of the build to get it to work correctly */
crossAttrs = let
diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix
index dfa4541e34b73..a7a02521c69c2 100644
--- a/pkgs/development/libraries/fftw/default.nix
+++ b/pkgs/development/libraries/fftw/default.nix
@@ -14,6 +14,9 @@ stdenv.mkDerivation rec {
sha256 = "10h9mzjxnwlsjziah4lri85scc05rlajz39nqf3mbh4vja8dw34g";
};
+ outputs = [ "dev" "out" "doc" ]; # it's dev-doc only
+ outputBin = "dev"; # fftw-wisdom
+
configureFlags =
[ "--enable-shared" "--disable-static"
"--enable-threads"
diff --git a/pkgs/development/libraries/fontconfig/2.10.nix b/pkgs/development/libraries/fontconfig/2.10.nix
index 2951dbb44d4f4..fea9efde1cfd2 100644
--- a/pkgs/development/libraries/fontconfig/2.10.nix
+++ b/pkgs/development/libraries/fontconfig/2.10.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
}
;
+ outputs = [ "dev" "lib" "bin" "out" ]; # $out contains all the config
+
propagatedBuildInputs = [ freetype ];
buildInputs = [ pkgconfig expat ];
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index b03528de2d5db..6acf1ebce29c5 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
})
];
+ outputs = [ "dev" "lib" "bin" "out" ]; # $out contains all the config
+
propagatedBuildInputs = [ freetype ];
buildInputs = [ pkgconfig expat ];
@@ -65,7 +67,7 @@ stdenv.mkDerivation rec {
postInstall = ''
cd "$out/etc/fonts"
rm conf.d/{50-user,51-local}.conf
- "${libxslt}/bin/xsltproc" --stringparam fontDirectories "${fontbhttf}" \
+ "${libxslt.bin}/bin/xsltproc" --stringparam fontDirectories "${fontbhttf}" \
--stringparam fontconfig "$out" \
--stringparam fontconfigConfigVersion "${configVersion}" \
--path $out/share/xml/fontconfig \
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
index 1321948c3c818..b996cd228c77d 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
+++ b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
@@ -16,7 +16,7 @@ runCommand "fc-cache"
- ${fontconfig}/etc/fonts/fonts.conf
+ ${fontconfig.out}/etc/fonts/fonts.conf
$out
EOF
cat "$fontDirsPath" >> fonts.conf
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
index 2b02e0df7a04c..2d0a21ea9ddfe 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
@@ -8,9 +8,9 @@ runCommand "fonts.conf"
}
''
xsltproc --stringparam fontDirectories "$fontDirectories" \
- --stringparam fontconfig "${fontconfig}" \
+ --stringparam fontconfig "${fontconfig.out}" \
--stringparam fontconfigConfigVersion "${fontconfig.configVersion}" \
- --path ${fontconfig}/share/xml/fontconfig \
- ${./make-fonts-conf.xsl} ${fontconfig}/etc/fonts/fonts.conf \
+ --path ${fontconfig.out}/share/xml/fontconfig \
+ ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \
> $out
''
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 61d8cb582a01b..81e98056e90b2 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -35,12 +35,16 @@ stdenv.mkDerivation rec {
"0wcjf9hiymplgqm3szla633i417pb57vpzzs2dyl1dnmcxgqa2y8")
];
+ outputs = [ "dev" "out" ];
+
propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype
# dependence on harfbuzz is looser than the reverse dependence
buildInputs = [ pkgconfig which ]
# FreeType requires GNU Make, which is not part of stdenv on FreeBSD.
++ optional (!stdenv.isLinux) gnumake;
+ configureFlags = "--disable-static --bindir=$(dev)/bin";
+
# from Gentoo, see https://bugzilla.redhat.com/show_bug.cgi?id=506840
NIX_CFLAGS_COMPILE = "-fno-strict-aliasing";
# The asm for armel is written with the 'asm' keyword.
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 18562d1d12e32..756ebf8161990 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -13,12 +13,17 @@ stdenv.mkDerivation rec {
sha256 = "0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
setupHook = ./setup-hook.sh;
+ enableParallelBuilding = true;
+
# !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
- buildInputs = [ libX11 libintlOrEmpty ];
+ buildInputs = [ libX11 gobjectIntrospection ] ++ libintlOrEmpty;
- nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
+ nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ];
@@ -34,12 +39,11 @@ stdenv.mkDerivation rec {
# The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).
inherit (doCheck);
- postInstall = "rm -rf $out/share/gtk-doc";
-
- meta = {
+ meta = with stdenv.lib; {
description = "A library for image loading and manipulation";
homepage = http://library.gnome.org/devel/gdk-pixbuf/;
- maintainers = [ stdenv.lib.maintainers.eelco ];
- platforms = stdenv.lib.platforms.unix;
+ maintainers = [ maintainers.eelco ];
+ platforms = platforms.unix;
};
}
+
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index c96d241ee903f..940df56c03c37 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
sed -i -e "s/\(am_libgettextlib_la_OBJECTS = \)error.lo/\\1/" gettext-tools/gnulib-lib/Makefile.in
'';
- buildInputs = [ xz ] ++ lib.optional (!stdenv.isLinux) libiconv;
+ buildInputs = [ xz xz.bin libiconv ];
enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix
index fb380d60cf924..3cf429ab1d739 100644
--- a/pkgs/development/libraries/git2/default.nix
+++ b/pkgs/development/libraries/git2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, cmake, zlib, python, libssh2, openssl, http-parser, libiconv}:
+{ stdenv, fetchurl, pkgconfig, cmake, zlib, python, libssh2, openssl, http-parser, libiconv }:
stdenv.mkDerivation (rec {
version = "0.23.2";
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 6bb3c8c1e5a2e..fc4707aedb75b 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -13,10 +13,12 @@ stdenv.mkDerivation rec {
sha256 = "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym";
};
+ outputs = [ "dev" "out" ]; # to deal with propagatedBuildInputs
+
configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt";
preBuild = ''
- sed -e "s@${glib}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile)
+ sed -e "s@${glib.out}/lib/gio/modules@$out/lib/gio/modules@g" -i $(find . -name Makefile)
'';
nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 9dd927d55ced8..120d398bd44d6 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -31,12 +31,12 @@ let
# This is intended to be run in postInstall of any package
# which has $out/include/ containing just some disjunct directories.
flattenInclude = ''
- for dir in "$out"/include/*; do
- cp -r "$dir"/* "$out/include/"
+ for dir in "''${!outputInclude}"/include/*; do
+ cp -r "$dir"/* "''${!outputInclude}/include/"
rm -r "$dir"
ln -s . "$dir"
done
- ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true
+ ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true
'';
ver_maj = "2.46";
@@ -53,21 +53,22 @@ stdenv.mkDerivation rec {
patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch;
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
setupHook = ./setup-hook.sh;
- buildInputs = [ libelf ]
+ buildInputs = [ libelf setupHook pcre ]
++ optionals doCheck [ tzdata libxml2 desktop_file_utils shared_mime_info ];
nativeBuildInputs = [ pkgconfig gettext perl python ];
- propagatedBuildInputs = [ pcre zlib libffi libiconv ]
+ propagatedBuildInputs = [ zlib libffi libiconv ]
++ libintlOrEmpty;
- LIBELF_CFLAGS = optional stdenv.isFreeBSD "-I${libelf}";
- LIBELF_LIBS = optional stdenv.isFreeBSD "-L${libelf} -lelf";
-
- configureFlags =
- optional stdenv.isDarwin "--disable-compile-warnings"
+ # internal pcre would only add <200kB, but it's relatively common
+ configureFlags = [ "--with-pcre=system" ]
+ ++ optional stdenv.isDarwin "--disable-compile-warnings"
++ optional (stdenv.isFreeBSD || stdenv.isSunOS) "--with-libiconv=gnu"
++ optional stdenv.isSunOS "--disable-dtrace";
@@ -79,6 +80,9 @@ stdenv.mkDerivation rec {
sed -i -e 's|inotify.h|foobar-inotify.h|g' configure
'';
+ LIBELF_CFLAGS = optional stdenv.isFreeBSD "-I${libelf}";
+ LIBELF_LIBS = optional stdenv.isFreeBSD "-L${libelf} -lelf";
+
preBuild = optionalString stdenv.isDarwin
''
export MACOSX_DEPLOYMENT_TARGET=
@@ -87,6 +91,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
DETERMINISTIC_BUILD = 1;
+ postInstall = ''
+ moveToOutput "share/glib-2.0" "$dev"
+ substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev"
+ sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|"
+ '';
+
inherit doCheck;
preCheck = optionalString doCheck
'' export LD_LIBRARY_PATH="$NIX_BUILD_TOP/${name}/glib/.libs:$LD_LIBRARY_PATH"
@@ -95,7 +105,7 @@ stdenv.mkDerivation rec {
export XDG_RUNTIME_HOME="$TMP"
export HOME="$TMP"
export XDG_DATA_DIRS="${desktop_file_utils}/share:${shared_mime_info}/share"
- export G_TEST_DBUS_DAEMON="${dbus_daemon}/bin/dbus-daemon"
+ export G_TEST_DBUS_DAEMON="${dbus_daemon.out}/bin/dbus-daemon"
substituteInPlace gio/tests/desktop-files/home/applications/epiphany-weather-for-toronto-island-9c6a4e022b17686306243dada811d550d25eb1fb.desktop --replace "Exec=/bin/true" "Exec=${coreutils}/bin/true"
# Needs machine-id, comment the test
@@ -109,8 +119,6 @@ stdenv.mkDerivation rec {
sed -e '/g_subprocess_launcher_set_environ (launcher, envp);/a g_subprocess_launcher_setenv (launcher, "PATH", g_getenv("PATH"), TRUE);' -i gio/tests/gsubprocess.c
'';
- postInstall = ''rm -rvf $out/share/gtk-doc'';
-
passthru = {
gioModuleDir = "lib/gio/modules";
inherit flattenInclude;
diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh
index ca7e326bd02e3..c5cf293902cd4 100644
--- a/pkgs/development/libraries/glib/setup-hook.sh
+++ b/pkgs/development/libraries/glib/setup-hook.sh
@@ -1,5 +1,3 @@
-# Install gschemas, if any, in a package-specific directory
-installFlagsArray+=("gsettingsschemadir=$out/share/gsettings-schemas/$name/glib-2.0/schemas/")
make_glib_find_gsettings_schemas() {
# For packages that need gschemas of other packages (e.g. empathy)
@@ -7,17 +5,22 @@ make_glib_find_gsettings_schemas() {
addToSearchPath GSETTINGS_SCHEMAS_PATH "$1/share/gsettings-schemas/"*
fi
}
-
envHooks+=(make_glib_find_gsettings_schemas)
+# Install gschemas, if any, in a package-specific directory
+glibPreInstallPhase() {
+ installFlagsArray+=("gsettingsschemadir=${!outputLib}/share/gsettings-schemas/$name/glib-2.0/schemas/")
+}
+preInstallPhases+=(glibPreInstallPhase)
+
glibPreFixupPhase() {
# Move gschemas in case the install flag didn't help
- if [ -d "$out/share/glib-2.0/schemas" ]; then
- mkdir -p "$out/share/gsettings-schemas/$name/glib-2.0"
- mv "$out/share/glib-2.0/schemas" "$out/share/gsettings-schemas/$name/glib-2.0/"
+ if [ -d "${!outputLib}/share/glib-2.0/schemas" ]; then
+ mkdir -p "${!outputLib}/share/gsettings-schemas/$name/glib-2.0"
+ mv "${!outputLib}/share/glib-2.0/schemas" "${!outputLib}/share/gsettings-schemas/$name/glib-2.0/"
fi
- addToSearchPath GSETTINGS_SCHEMAS_PATH "$out/share/gsettings-schemas/$name"
+ addToSearchPath GSETTINGS_SCHEMAS_PATH "${!outputLib}/share/gsettings-schemas/$name"
}
+preFixupPhases+=(glibPreFixupPhase)
-preFixupPhases="$preFixupPhases glibPreFixupPhase"
diff --git a/pkgs/development/libraries/glibc/builder.sh b/pkgs/development/libraries/glibc/builder.sh
index d60b143a1ecab..85f27c7b3559f 100644
--- a/pkgs/development/libraries/glibc/builder.sh
+++ b/pkgs/development/libraries/glibc/builder.sh
@@ -12,8 +12,10 @@ postConfigure() {
export NIX_DONT_SET_RPATH=1
unset CFLAGS
-}
+ # Apparently --bindir is not respected.
+ makeFlagsArray+=("bindir=$bin/bin" "sbindir=$bin/sbin" "rootsbindir=$bin/sbin")
+}
postInstall() {
if test -n "$installLocales"; then
@@ -25,7 +27,7 @@ postInstall() {
if test -n "$linuxHeaders"; then
# Include the Linux kernel headers in Glibc, except the `scsi'
# subdirectory, which Glibc provides itself.
- (cd $out/include && \
+ (cd $dev/include && \
ln -sv $(ls -d $linuxHeaders/include/* | grep -v 'scsi$') .)
fi
@@ -41,6 +43,16 @@ postInstall() {
for i in $out/lib/*.a; do
strip -S "$i"
done
+ # Put libraries for static linking in a separate output. Note
+ # that libc_nonshared.a and libpthread_nonshared.a are required
+ # for dynamically-linked applications.
+ mkdir -p $static/lib
+ mv $out/lib/*.a $static/lib
+ mv $static/lib/lib*_nonshared.a $out/lib
+
+ # Work around a Nix bug: hard links across outputs cause a build failure.
+ cp $bin/bin/getconf $bin/bin/getconf_
+ mv $bin/bin/getconf_ $bin/bin/getconf
}
genericBuild
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 13d5adcd9b133..893f65c3e205f 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -112,6 +112,8 @@ stdenv.mkDerivation ({
installFlags = [ "sysconfdir=$(out)/etc" ];
+ outputs = [ "dev" "out" "bin" "static" ];
+
buildInputs = lib.optionals (cross != null) [ gccCross ]
++ lib.optionals withGd [ gd libpng ];
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix
index 2630cdb127f70..80fc2ce1e93d3 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc/default.nix
@@ -64,7 +64,7 @@ in
# To avoid a dependency on the build system 'bash'.
preFixup = ''
- rm $out/bin/{ldd,tzselect,catchsegv,xtrace}
+ rm $bin/bin/{ldd,tzselect,catchsegv,xtrace}
'';
}
else {}))
diff --git a/pkgs/development/libraries/glibc/info.nix b/pkgs/development/libraries/glibc/info.nix
index 1e60856430db1..84ec43e11a85f 100644
--- a/pkgs/development/libraries/glibc/info.nix
+++ b/pkgs/development/libraries/glibc/info.nix
@@ -8,6 +8,8 @@ build null {
inherit fetchurl stdenv lib;
+ outputs = [ "out" ];
+
configureFlags = [ "--enable-add-ons" ];
buildInputs = [ texinfo perl ];
diff --git a/pkgs/development/libraries/glibc/locales.nix b/pkgs/development/libraries/glibc/locales.nix
index 9607d7ecb2230..994390cf82901 100644
--- a/pkgs/development/libraries/glibc/locales.nix
+++ b/pkgs/development/libraries/glibc/locales.nix
@@ -18,6 +18,8 @@ build null {
builder = ./locales-builder.sh;
+ outputs = [ "out" ];
+
# Awful hack: `localedef' doesn't allow the path to `locale-archive'
# to be overriden, but you *can* specify a prefix, i.e. it will use
# //lib/locale/locale-archive. So we use
@@ -25,7 +27,7 @@ build null {
# $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive.
buildPhase =
''
- mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale"
+ mkdir -p $TMPDIR/"${stdenv.cc.libc.out}/lib/locale"
# Hack to allow building of the locales (needed since glibc-2.12)
sed -i -e 's,^$(rtld-prefix) $(common-objpfx)locale/localedef,localedef --prefix='$TMPDIR',' ../glibc-2*/localedata/Makefile
diff --git a/pkgs/development/libraries/glibc/multi.nix b/pkgs/development/libraries/glibc/multi.nix
index b5b4eabe9c74b..0d7bed99f22f0 100644
--- a/pkgs/development/libraries/glibc/multi.nix
+++ b/pkgs/development/libraries/glibc/multi.nix
@@ -3,32 +3,26 @@
let
nameVersion = builtins.parseDrvName glibc.name;
+ glibc64 = glibc;
in
runCommand "${nameVersion.name}-multi-${nameVersion.version}"
- { inherit glibc32;
- glibc64 = glibc;
- }
+ { outputs = [ "dev" "out" "bin" ]; } # TODO: no static version here (yet)
''
- mkdir -p $out
- ln -s $glibc64/* $out/
-
- rm $out/lib $out/lib64
- mkdir -p $out/lib
- ln -s $glibc64/lib/* $out/lib
- ln -s $glibc32/lib $out/lib/32
- ln -s lib $out/lib64
+ mkdir -p "$out/lib"
+ ln -s '${glibc64.out}'/lib/* "$out/lib"
+ ln -s '${glibc32.out}/lib' "$out/lib/32"
+ ln -s lib "$out/lib64"
# fixing ldd RLTDLIST
- rm $out/bin
- cp -rs $glibc64/bin $out
- chmod u+w $out/bin
- rm $out/bin/ldd
+ mkdir -p "$bin/bin"
+ cp -s '${glibc64.bin}'/bin/* "$bin/bin/"
+ rm "$bin/bin/ldd"
sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-linux-x86-64.so.2 $out/lib/32/ld-linux.so.2\"|g" \
- $glibc64/bin/ldd > $out/bin/ldd
- chmod 555 $out/bin/ldd
+ '${glibc64.bin}/bin/ldd' > "$bin/bin/ldd"
+ chmod +x "$bin/bin/ldd"
- rm $out/include
- cp -rs $glibc32/include $out
- chmod -R u+w $out/include
- cp -rsf $glibc64/include $out
+ mkdir "$dev"
+ cp -rs '${glibc32}'/include "$dev/"
+ chmod +w -R "$dev"
+ cp -rsf '${glibc64}'/include "$dev/"
''
diff --git a/pkgs/development/libraries/gmime/default.nix b/pkgs/development/libraries/gmime/default.nix
index 6564fc5118675..ee81aec07976d 100644
--- a/pkgs/development/libraries/gmime/default.nix
+++ b/pkgs/development/libraries/gmime/default.nix
@@ -8,9 +8,13 @@ stdenv.mkDerivation rec {
sha256 = "0rfzbgsh8ira5p76kdghygl5i3fvmmx4wbw5rp7f8ajc4vxp18g0";
};
+ outputs = [ "dev" "out" ];
+
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib zlib libgpgerror ];
+ enableParallelBuilding = true;
+
meta = {
homepage = http://spruce.sourceforge.net/gmime/;
description = "A C/C++ library for manipulating MIME messages";
diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix
index 7b393067ff525..0768df60a794e 100644
--- a/pkgs/development/libraries/gmp/5.1.x.nix
+++ b/pkgs/development/libraries/gmp/5.1.x.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m";
};
+ outputs = [ "out" "info" ];
+
nativeBuildInputs = [ m4 ];
patches = if stdenv.isDarwin then [ ./need-size-t.patch ] else null;
diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix
index 5025557458cd3..a7443c02c5b6c 100644
--- a/pkgs/development/libraries/gmp/6.x.nix
+++ b/pkgs/development/libraries/gmp/6.x.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, m4, cxx ? true, withStatic ? true }:
+{ stdenv, fetchurl, m4, cxx ? true, withStatic ? false }:
with { inherit (stdenv.lib) optional optionalString; };
-stdenv.mkDerivation rec {
+let self = stdenv.mkDerivation rec {
name = "gmp-6.1.0";
src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
@@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
sha256 = "1s3kddydvngqrpc6i1vbz39raya2jdcl042wi0ksbszgjjllk129";
};
+ #outputs TODO: split $cxx due to libstdc++ dependency; maybe port to gmp5;
+ # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added
+ # - see #5855 for related discussion
+ outputs = [ "dev" "out" "info" ];
+ passthru.static = self.out;
+
nativeBuildInputs = [ m4 ];
configureFlags =
@@ -69,4 +75,5 @@ stdenv.mkDerivation rec {
platforms = platforms.all;
maintainers = [ maintainers.simons ];
};
-}
+};
+ in self
diff --git a/pkgs/development/libraries/gnutls/generic.nix b/pkgs/development/libraries/gnutls/generic.nix
index e51b77eb5b07c..b54ea52b880bf 100644
--- a/pkgs/development/libraries/gnutls/generic.nix
+++ b/pkgs/development/libraries/gnutls/generic.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
inherit src patches postPatch;
- outputs = [ "out" "man" ];
+ outputs = [ "dev" "out" "bin" "man" "docdev" ];
+ outputInfo = "docdev";
configureFlags =
lib.optional stdenv.isLinux "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
@@ -34,8 +35,6 @@ stdenv.mkDerivation {
++ [ unbound ]
++ lib.optional guileBindings guile;
- # AutoreconfHook is temporary until the patch lands upstream to fix
- # header file generation with parallel building
nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs;
# XXX: Gnulib's `test-select' fails on FreeBSD:
@@ -45,9 +44,10 @@ stdenv.mkDerivation {
# Fixup broken libtool and pkgconfig files
preFixup = lib.optionalString (!stdenv.isDarwin) ''
sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \
- -e 's,-lz,-L${zlib}/lib -lz,' \
- -e 's,-lgmp,-L${gmp}/lib -lgmp,' \
- -i $out/lib/libgnutls.la $out/lib/pkgconfig/gnutls.pc
+ -e 's,-lz,-L${zlib.out}/lib -lz,' \
+ -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \
+ -e 's,-lgmp,-L${gmp.out}/lib -lgmp,' \
+ -i $out/lib/*.la "$dev/lib/pkgconfig/gnutls.pc"
'';
meta = with lib; {
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index e13ce337f3885..47ccb17e48459 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -19,20 +19,21 @@ stdenv.mkDerivation rec {
sha256 = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233";
};
- buildInputs = [ flex bison pkgconfig python ]
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+ outputMan = "dev"; # tiny pages
+
+ buildInputs = [ flex bison pkgconfig python setupHook/*move .gir*/ ]
++ libintlOrEmpty
++ stdenv.lib.optional stdenv.isDarwin cctools;
propagatedBuildInputs = [ libffi glib ];
- # The '--disable-tests' flag is no longer recognized, so can be safely removed
- # next time this package changes.
- configureFlags = [ "--disable-tests" ];
-
preConfigure = ''
sed 's|/usr/bin/env ||' -i tools/g-ir-tool-template.in
'';
- postInstall = "rm -rf $out/share/gtk-doc";
+ # outputs TODO: share/gobject-introspection-1.0/tests is needed during build
+ # by pygobject3 (and maybe others), but it's only searched in $out
setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/libraries/gobject-introspection/setup-hook.sh b/pkgs/development/libraries/gobject-introspection/setup-hook.sh
index d411ad69dc43f..583d8475ec3b4 100644
--- a/pkgs/development/libraries/gobject-introspection/setup-hook.sh
+++ b/pkgs/development/libraries/gobject-introspection/setup-hook.sh
@@ -12,3 +12,10 @@ make_gobject_introspection_find_gir_files() {
}
envHooks+=(make_gobject_introspection_find_gir_files)
+
+_multioutMoveGlibGir() {
+ moveToOutput share/gir-1.0 "${!outputDev}"
+}
+
+preFixupHooks+=(_multioutMoveGlibGir)
+
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 4572387e22521..c60311423233f 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
sha256 = "17892sclz3yg45wbyqqrzzpq3l0icbnfl28f101b3062g8cy97dh";
};
+ outputs = [ "dev" "out" "info" ];
+ outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
+
propagatedBuildInputs = [ libgpgerror glib libassuan pth ];
nativeBuildInputs = [ pkgconfig gnupg ];
@@ -25,11 +28,11 @@ stdenv.mkDerivation rec {
"--enable-fixed-path=${gpgStorePath}/bin"
];
- meta = {
+ meta = with stdenv.lib; {
homepage = "http://www.gnupg.org/related_software/gpgme";
description = "Library for making GnuPG easier to use";
- license = stdenv.lib.licenses.gpl2;
- platforms = stdenv.lib.platforms.unix;
- maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.fuuzetsu ];
};
}
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 81e5726fa946b..3118caffb11ab 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -1,4 +1,4 @@
-{ callPackage }:
+{ callPackage, libva-full }:
rec {
gstreamer = callPackage ./core { };
@@ -21,7 +21,10 @@ rec {
# (Non Linear Engine).
gst-editing-services = callPackage ./ges { inherit gnonlin; };
- gst-vaapi = callPackage ./vaapi { inherit gst-plugins-base gstreamer gst-plugins-bad; };
+ gst-vaapi = callPackage ./vaapi {
+ inherit gst-plugins-base gstreamer gst-plugins-bad;
+ libva = libva-full; # looks also for libva-{x11,wayland}
+ };
gst-validate = callPackage ./validate { inherit gst-plugins-base; };
}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
index dc39bddc232ff..191c1f6b0f2ce 100644
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
@@ -1,7 +1,7 @@
{ fetchurl, stdenv, pkgconfig, gst_plugins_base, aalib, cairo
, flac, libjpeg, zlib, speex, libpng, libdv, libcaca, libvpx
, libiec61883, libavc1394, taglib, libpulseaudio, gdk_pixbuf, orc
-, glib, gstreamer, bzip2, libsoup, libshout, libintlOrEmpty
+, glib, gstreamer, bzip2, libsoup, libshout, ncurses, libintlOrEmpty
, # Whether to build no plugins that have external dependencies
# (except the PulseAudio plugin).
minimalDeps ? false
@@ -34,6 +34,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ postInstall = ''
+ substituteInPlace $out/lib/gstreamer-0.10/libgstaasink.la \
+ --replace "${ncurses.dev}/lib" "${ncurses.out}/lib"
+ '';
+
meta = {
homepage = http://gstreamer.freedesktop.org;
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index 015aa4e07f5d4..bf061b4125b5a 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gst-plugins-base, bzip2, libva
+{ stdenv, fetchurl, pkgconfig, gst-plugins-base, bzip2, libva, wayland
, libdrm, udev, xorg, mesa, yasm, gstreamer, gst-plugins-bad, nasm
, libvpx
}:
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = with stdenv.lib; [ pkgconfig bzip2 ];
- buildInputs = with stdenv.lib; [ gstreamer gst-plugins-base gst-plugins-bad libva libdrm udev
- xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM xorg.libICE mesa nasm libvpx ];
+ buildInputs = [
+ gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev
+ xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM xorg.libICE mesa nasm libvpx
+ ];
preConfigure = "
export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0
diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix
index 8830e1425b68d..d4d4cddb40239 100644
--- a/pkgs/development/libraries/gtk+/2.x.nix
+++ b/pkgs/development/libraries/gtk+/2.x.nix
@@ -15,11 +15,16 @@ stdenv.mkDerivation rec {
sha256 = "1f1ifv1ijrda4jx831l24d3ww65v5gf56r464fi11n6k02bcah87";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (libintlOrEmpty != []) "-lintl";
- nativeBuildInputs = [ perl pkgconfig gettext ];
+ setupHook = ./setup-hook.sh;
+
+ nativeBuildInputs = [ setupHook perl pkgconfig gettext ];
propagatedBuildInputs = with xorg; with stdenv.lib;
[ glib cairo pango gdk_pixbuf atk ]
@@ -35,7 +40,9 @@ stdenv.mkDerivation rec {
then "--disable-glibtest --disable-introspection --disable-visibility"
else "--with-xinput=yes";
- postInstall = "rm -rf $out/share/gtk-doc";
+ postInstall = ''
+ moveToOutput share/gtk-2.0/demo "$docdev"
+ '';
passthru = {
gtkExeEnvPostBuild = ''
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index f738f76ca0294..a2da4c7b03391 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -1,12 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gettext, perl
, expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, gobjectIntrospection
-, xlibs, x11, wayland, libxkbcommon, epoxy
+, xorg, wayland, epoxy, json_glib, libxkbcommon, gmp
, xineramaSupport ? stdenv.isLinux
, cupsSupport ? stdenv.isLinux, cups ? null
, darwin
}:
-assert xineramaSupport -> xlibs.libXinerama != null;
assert cupsSupport -> cups != null;
with stdenv.lib;
@@ -24,17 +23,22 @@ stdenv.mkDerivation rec {
sha256 = "107aeb9a4244ce3c044becdd6dffc32d83202595181597180d4c736302a71852";
};
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+
nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ];
- buildInputs = [ libxkbcommon epoxy ];
- propagatedBuildInputs = with xlibs; with stdenv.lib;
- [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk libXrandr libXrender libXcomposite libXi libXcursor ]
+ buildInputs = [ libxkbcommon epoxy json_glib ];
+ propagatedBuildInputs = with xorg; with stdenv.lib;
+ [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk
+ libXrandr libXrender libXcomposite libXi libXcursor libSM libICE ]
++ optionals stdenv.isLinux [ wayland ]
++ optional stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit Cocoa ])
++ optional xineramaSupport libXinerama
++ optional cupsSupport cups;
+ #TODO: colord?
- NIX_LDFLAGS = if stdenv.isDarwin then "-lintl" else null;
+ NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
# demos fail to install, no idea where's the problem
preConfigure = "sed '/^SRC_SUBDIRS /s/demos//' -i Makefile.in";
@@ -49,7 +53,10 @@ stdenv.mkDerivation rec {
"--enable-quartz-backend"
];
- postInstall = "rm -rf $out/share/gtk-doc";
+ postInstall = ''
+ substituteInPlace "$out/lib/gtk-3.0/3.0.0/printbackends/libprintbackend-cups.la" \
+ --replace '-L${gmp.dev}/lib' '-L${gmp.out}/lib'
+ '';
passthru = {
gtkExeEnvPostBuild = ''
@@ -58,7 +65,7 @@ stdenv.mkDerivation rec {
''; # workaround for bug of nix-mode for Emacs */ '';
};
- meta = {
+ meta = with stdenv.lib; {
description = "A multi-platform toolkit for creating graphical user interfaces";
longDescription = ''
@@ -74,9 +81,9 @@ stdenv.mkDerivation rec {
homepage = http://www.gtk.org/;
- license = stdenv.lib.licenses.lgpl2Plus;
+ license = licenses.lgpl2Plus;
- maintainers = with stdenv.lib.maintainers; [ urkud raskin vcunat lethalman ];
- platforms = stdenv.lib.platforms.all;
+ maintainers = with maintainers; [ urkud raskin vcunat lethalman ];
+ platforms = platforms.all;
};
}
diff --git a/pkgs/development/libraries/gtk+/setup-hook.sh b/pkgs/development/libraries/gtk+/setup-hook.sh
new file mode 100644
index 0000000000000..c2b0ab502db7e
--- /dev/null
+++ b/pkgs/development/libraries/gtk+/setup-hook.sh
@@ -0,0 +1,10 @@
+fixupOutputHooks+=(_gtk2CleanComments)
+
+# Clean comments that link to generator of the file
+_gtk2CleanComments() {
+ local f="$prefix/lib/gtk-2.0/2.10.0/immodules.cache"
+ if [ -f "$f" ]; then
+ sed 's|Created by .*bin/gtk-query-|Created by bin/gtk-query-|' -i "$f"
+ fi
+}
+
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index 6145c8c494773..45f5217d3c91b 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
postInstall = ''
ln -sv ${libsoup}/include/*/libsoup $out/include
- ln -sv ${libxml2}/include/*/libxml $out/include
+ ln -sv ${libxml2.dev}/include/*/libxml $out/include
ln -sv ${gssdp}/include/*/libgssdp $out/include
'';
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index d2a958faed8bd..37403f50e2b10 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig intltool libtool ];
buildInputs =
- [ makeWrapper glib dbus.libs udev libgudev udisks2 libgcrypt
+ [ makeWrapper glib dbus udev libgudev udisks2 libgcrypt
libgphoto2 avahi libarchive fuse libcdio
libxml2 libxslt docbook_xsl samba libmtp
# ToDo: a ligther version of libsoup to have FTP/HTTP support?
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index d2546ebd496d7..2d84b1e73a829 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,38 +1,49 @@
{ stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty
-, icu, graphite2
+, icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one.
, withIcu ? false # recommended by upstream as default, but most don't needed and it's big
, withGraphite2 ? true # it is small and major distros do include it
}:
-# TODO: split non-icu and icu lib into different outputs?
-# (icu is a ~30 MB dependency, the rest is very small in comparison)
+let
+ version = "1.1.2";
+ inherit (stdenv.lib) optional optionals optionalString;
+in
-stdenv.mkDerivation rec {
- name = "harfbuzz-1.1.2";
+stdenv.mkDerivation {
+ name = "harfbuzz${optionalString withIcu "-icu"}-${version}";
src = fetchurl {
- url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
+ url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2";
sha256 = "07s6z3hbrb4rdfgzmln169wxz4nm5y7qbr02ik5c7drxpn85fb2a";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
configureFlags = [
( "--with-graphite2=" + (if withGraphite2 then "yes" else "no") ) # not auto-detected by default
( "--with-icu=" + (if withIcu then "yes" else "no") )
];
- buildInputs = [ pkgconfig glib freetype cairo ] # recommended by upstream
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib freetype cairo ] # recommended by upstream
++ libintlOrEmpty;
propagatedBuildInputs = []
- ++ stdenv.lib.optional withGraphite2 graphite2
- ++ stdenv.lib.optional withIcu icu
+ ++ optional withGraphite2 graphite2
+ ++ optionals withIcu [ icu harfbuzz ]
;
- meta = {
+ # Slightly hacky; some pkgs expect them in a single directory.
+ postInstall = optionalString withIcu ''
+ rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
+ ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
+ ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
+ '';
+
+ meta = with stdenv.lib; {
description = "An OpenType text shaping engine";
homepage = http://www.freedesktop.org/wiki/Software/HarfBuzz;
- maintainers = [ stdenv.lib.maintainers.eelco ];
- platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ maintainers = [ maintainers.eelco ];
+ platforms = with platforms; linux ++ darwin;
};
}
diff --git a/pkgs/development/libraries/hunspell/default.nix b/pkgs/development/libraries/hunspell/default.nix
index 98f6511f39172..0d0ff38fb47f3 100644
--- a/pkgs/development/libraries/hunspell/default.nix
+++ b/pkgs/development/libraries/hunspell/default.nix
@@ -8,8 +8,10 @@ stdenv.mkDerivation rec {
sha256 = "0v14ff9s37vkh45diaddndcrj0hmn67arh8xh8k79q9c1vgc1cm7";
};
- propagatedBuildInputs = [ ncurses readline ];
- configureFlags = "--with-ui --with-readline";
+ outputs = [ "dev" "out" "bin" "man" ];
+
+ buildInputs = [ ncurses readline ];
+ configureFlags = [ "--with-ui" "--with-readline" ];
meta = with stdenv.lib; {
homepage = http://hunspell.sourceforge.net;
diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix
index 224e9302baa65..d2604b03f74f8 100644
--- a/pkgs/development/libraries/icu/default.nix
+++ b/pkgs/development/libraries/icu/default.nix
@@ -13,6 +13,9 @@ stdenv.mkDerivation ({
sha256 = "05j86714qaj0lvhvyr2s1xncw6sk0h2dcghb3iiwykbkbh8fjr1s";
};
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+
makeFlags = stdenv.lib.optionalString stdenv.isDarwin
"CXXFLAGS=-headerpad_max_install_names";
@@ -37,6 +40,8 @@ stdenv.mkDerivation ({
sed -i 's/INSTALL_CMD=.*install/INSTALL_CMD=install/' $out/lib/icu/${version}/pkgdata.inc
'';
+ postFixup = ''moveToOutput lib/icu "$dev" '';
+
enableParallelBuilding = true;
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix
index 40d54ed400a3b..50bebca6b3128 100644
--- a/pkgs/development/libraries/jasper/default.nix
+++ b/pkgs/development/libraries/jasper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, xorg, libjpeg }:
+{ stdenv, fetchurl, unzip, libjpeg, autoreconfHook }:
stdenv.mkDerivation rec {
name = "jasper-1.900.1";
@@ -18,11 +18,16 @@ stdenv.mkDerivation rec {
./jasper-CVE-2014-9029.diff
];
- nativeBuildInputs = [unzip];
+ # newer reconf to recognize a multiout flag
+ nativeBuildInputs = [ unzip autoreconfHook ];
propagatedBuildInputs = [ libjpeg ];
configureFlags = "--enable-shared";
+ outputs = [ "dev" "out" "man" "bin" ];
+
+ enableParallelBuilding = true;
+
meta = {
homepage = https://www.ece.uvic.ca/~frodo/jasper/;
description = "JPEG2000 Library";
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index ad425f2a38123..d5e0694e0516f 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -9,11 +9,13 @@ stdenv.mkDerivation rec {
patches = [ ./unused-variable.patch ];
- buildInputs = [ autoreconfHook ]; # won't configure without it, no idea why
+ outputs = [ "dev" "out" ];
+
+ nativeBuildInputs = [ autoreconfHook ]; # won't configure without it, no idea why
# compatibility hack (for mypaint at least)
postInstall = ''
- ln -s json-c.pc "$out/lib/pkgconfig/json.pc"
+ ln -s json-c.pc "$dev/lib/pkgconfig/json.pc"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/attica.nix b/pkgs/development/libraries/kde-frameworks-5.19/attica.nix
new file mode 100644
index 0000000000000..98721876c1204
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/attica.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "attica";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/baloo.nix b/pkgs/development/libraries/kde-frameworks-5.19/baloo.nix
new file mode 100644
index 0000000000000..38c41d9271d86
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/baloo.nix
@@ -0,0 +1,25 @@
+{ kdeFramework, lib, extra-cmake-modules, kauth, kconfig
+, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n, kidletime
+, kio, lmdb, makeQtWrapper, qtbase, qtquick1, solid
+}:
+
+kdeFramework {
+ name = "baloo";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [
+ kconfig kcrash kdbusaddons lmdb qtquick1 solid
+ ];
+ propagatedBuildInputs = [
+ kauth kcoreaddons kfilemetadata ki18n kio kidletime qtbase
+ ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/baloo_file"
+ wrapQtProgram "$out/bin/baloo_file_extractor"
+ wrapQtProgram "$out/bin/balooctl"
+ wrapQtProgram "$out/bin/baloosearch"
+ wrapQtProgram "$out/bin/balooshow"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks-5.19/bluez-qt.nix
new file mode 100644
index 0000000000000..f981b0516f720
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/bluez-qt.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtdeclarative
+}:
+
+kdeFramework {
+ name = "bluez-qt";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtdeclarative ];
+ preConfigure = ''
+ substituteInPlace CMakeLists.txt \
+ --replace /lib/udev/rules.d "$out/lib/udev/rules.d"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks-5.19/breeze-icons.nix
new file mode 100644
index 0000000000000..44cc99daf261b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/breeze-icons.nix
@@ -0,0 +1,10 @@
+{ kdeFramework
+, extra-cmake-modules
+, qtsvg
+}:
+
+kdeFramework {
+ name = "breeze-icons";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtsvg ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/default.nix
new file mode 100644
index 0000000000000..bb96048d6ff56
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/default.nix
@@ -0,0 +1,114 @@
+# Maintainer's Notes:
+#
+# How To Update
+# 1. Edit the URL in ./manifest.sh
+# 2. Run ./manifest.sh
+# 3. Fix build errors.
+
+{ pkgs, debug ? false }:
+
+let
+
+ inherit (pkgs) lib makeSetupHook stdenv;
+
+ mirror = "mirror://kde";
+ srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; };
+
+ packages = self: with self; {
+ kdeFramework = args:
+ let
+ inherit (args) name;
+ inherit (srcs."${name}") src version;
+ in stdenv.mkDerivation (args // {
+ name = "${name}-${version}";
+ inherit src;
+
+ outputs = args.outputs or [ "dev" "out" ];
+
+ cmakeFlags =
+ (args.cmakeFlags or [])
+ ++ [ "-DBUILD_TESTING=OFF" ]
+ ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
+
+ meta = {
+ license = with lib.licenses; [
+ lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
+ ];
+ platforms = lib.platforms.linux;
+ homepage = "http://www.kde.org";
+ } // (args.meta or {});
+ });
+
+ attica = callPackage ./attica.nix {};
+ baloo = callPackage ./baloo.nix {};
+ bluez-qt = callPackage ./bluez-qt.nix {};
+ breeze-icons = callPackage ./breeze-icons.nix {};
+ extra-cmake-modules = callPackage ./extra-cmake-modules {};
+ frameworkintegration = callPackage ./frameworkintegration.nix {};
+ kactivities = callPackage ./kactivities.nix {};
+ kapidox = callPackage ./kapidox.nix {};
+ karchive = callPackage ./karchive.nix {};
+ kauth = callPackage ./kauth {};
+ kbookmarks = callPackage ./kbookmarks.nix {};
+ kcmutils = callPackage ./kcmutils {};
+ kcodecs = callPackage ./kcodecs.nix {};
+ kcompletion = callPackage ./kcompletion.nix {};
+ kconfig = callPackage ./kconfig.nix {};
+ kconfigwidgets = callPackage ./kconfigwidgets {};
+ kcoreaddons = callPackage ./kcoreaddons.nix {};
+ kcrash = callPackage ./kcrash.nix {};
+ kdbusaddons = callPackage ./kdbusaddons.nix {};
+ kdeclarative = callPackage ./kdeclarative.nix {};
+ kded = callPackage ./kded.nix {};
+ kdelibs4support = callPackage ./kdelibs4support {};
+ kdesignerplugin = callPackage ./kdesignerplugin.nix {};
+ kdewebkit = callPackage ./kdewebkit.nix {};
+ kdesu = callPackage ./kdesu.nix {};
+ kdnssd = callPackage ./kdnssd.nix {};
+ kdoctools = callPackage ./kdoctools {};
+ kemoticons = callPackage ./kemoticons.nix {};
+ kfilemetadata = callPackage ./kfilemetadata {};
+ kglobalaccel = callPackage ./kglobalaccel.nix {};
+ kguiaddons = callPackage ./kguiaddons.nix {};
+ khtml = callPackage ./khtml.nix {};
+ ki18n = callPackage ./ki18n.nix {};
+ kiconthemes = callPackage ./kiconthemes {};
+ kidletime = callPackage ./kidletime.nix {};
+ kimageformats = callPackage ./kimageformats.nix {};
+ kinit = callPackage ./kinit {};
+ kio = callPackage ./kio {};
+ kitemmodels = callPackage ./kitemmodels.nix {};
+ kitemviews = callPackage ./kitemviews.nix {};
+ kjobwidgets = callPackage ./kjobwidgets.nix {};
+ kjs = callPackage ./kjs.nix {};
+ kjsembed = callPackage ./kjsembed.nix {};
+ kmediaplayer = callPackage ./kmediaplayer.nix {};
+ knewstuff = callPackage ./knewstuff.nix {};
+ knotifications = callPackage ./knotifications.nix {};
+ knotifyconfig = callPackage ./knotifyconfig.nix {};
+ kpackage = callPackage ./kpackage {};
+ kparts = callPackage ./kparts.nix {};
+ kpeople = callPackage ./kpeople.nix {};
+ kplotting = callPackage ./kplotting.nix {};
+ kpty = callPackage ./kpty.nix {};
+ kross = callPackage ./kross.nix {};
+ krunner = callPackage ./krunner.nix {};
+ kservice = callPackage ./kservice {};
+ ktexteditor = callPackage ./ktexteditor {};
+ ktextwidgets = callPackage ./ktextwidgets.nix {};
+ kunitconversion = callPackage ./kunitconversion.nix {};
+ kwallet = callPackage ./kwallet.nix {};
+ kwidgetsaddons = callPackage ./kwidgetsaddons.nix {};
+ kwindowsystem = callPackage ./kwindowsystem.nix {};
+ kxmlgui = callPackage ./kxmlgui.nix {};
+ kxmlrpcclient = callPackage ./kxmlrpcclient.nix {};
+ modemmanager-qt = callPackage ./modemmanager-qt.nix {};
+ networkmanager-qt = callPackage ./networkmanager-qt.nix {};
+ oxygen-icons5 = callPackage ./oxygen-icons5.nix {};
+ plasma-framework = callPackage ./plasma-framework {};
+ solid = callPackage ./solid.nix {};
+ sonnet = callPackage ./sonnet.nix {};
+ threadweaver = callPackage ./threadweaver.nix {};
+ };
+
+in packages
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/default.nix
new file mode 100644
index 0000000000000..1c2ea70442d32
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/default.nix
@@ -0,0 +1,20 @@
+{ kdeFramework, lib, copyPathsToStore, cmake, pkgconfig, qttools }:
+
+kdeFramework {
+ name = "extra-cmake-modules";
+
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+
+ outputs = [ "out" ]; # this package has no runtime components
+ setupHook = ./setup-hook.sh;
+
+ # It is OK to propagate these inputs as long as
+ # extra-cmake-modules is never a propagated input
+ # of some other derivation.
+ propagatedNativeBuildInputs = [ cmake pkgconfig qttools ];
+
+ meta = with lib; {
+ license = licenses.bsd2;
+ maintainers = [ maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/nix-lib-path.patch b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/nix-lib-path.patch
new file mode 100644
index 0000000000000..a74340a6dc969
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/nix-lib-path.patch
@@ -0,0 +1,37 @@
+Index: extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
+===================================================================
+--- extra-cmake-modules-5.18.0.orig/kde-modules/KDEInstallDirs.cmake
++++ extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
+@@ -200,32 +200,6 @@
+ # GNUInstallDirs code deals with re-configuring, but that is dealt with
+ # by the _define_* macros in this module).
+ set(_LIBDIR_DEFAULT "lib")
+-# Override this default 'lib' with 'lib64' iff:
+-# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling
+-# - we are NOT on debian
+-# - we are on a 64 bits system
+-# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
+-# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
+-# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
+-# See http://wiki.debian.org/Multiarch
+-if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
+- AND NOT CMAKE_CROSSCOMPILING)
+- if (EXISTS "/etc/debian_version") # is this a debian system ?
+- if(CMAKE_LIBRARY_ARCHITECTURE)
+- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+- endif()
+- else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
+- if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
+- message(AUTHOR_WARNING
+- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. "
+- "Please enable at least one language before including KDEInstallDirs.")
+- else()
+- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+- set(_LIBDIR_DEFAULT "lib64")
+- endif()
+- endif()
+- endif()
+-endif()
+
+ set(_gnu_install_dirs_vars
+ BINDIR
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/series b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/series
new file mode 100644
index 0000000000000..b4569e50a5f73
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/series
@@ -0,0 +1 @@
+nix-lib-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/setup-hook.sh
new file mode 100644
index 0000000000000..56ed09f4ea59e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/extra-cmake-modules/setup-hook.sh
@@ -0,0 +1,81 @@
+_ecmSetXdgDirs() {
+ addToSearchPathOnce XDG_DATA_DIRS "$1/share"
+ addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg"
+ addToSearchPathOnce NIX_WRAP_XDG_CONFIG_DIRS "$1/etc/xdg"
+}
+
+_ecmPropagateSharedData() {
+ local sharedPaths=( \
+ "config.cfg" \
+ "doc" \
+ "kconf_update" \
+ "kservices5" \
+ "kservicetypes5" \
+ "kxmlgui5" \
+ "knotifications5" \
+ "icons" \
+ "sounds" \
+ "templates" \
+ "wallpapers" \
+ "applications" \
+ "desktop-directories" \
+ "mime" \
+ "info" \
+ "dbus-1" \
+ "interfaces" \
+ "services" \
+ "system-services" )
+ for dir in ${sharedPaths[@]}; do
+ if [ -d "$1/share/$dir" ]; then
+ addToSearchPathOnce NIX_WRAP_XDG_DATA_DIRS "$1/share"
+ propagateOnce propagatedUserEnvPkgs "$1"
+ break
+ fi
+ done
+}
+
+_ecmConfig() {
+ # Because we need to use absolute paths here, we must set *all* the paths.
+ cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}"
+ cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
+ cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
+ cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib"
+ cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec"
+ cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
+ cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins"
+ cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins"
+ cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports"
+ cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml"
+ cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
+ cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
+ cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share"
+ cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share"
+ cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML"
+ cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg"
+ cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update"
+ cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5"
+ cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5"
+ cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5"
+ cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5"
+ cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons"
+ cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
+ cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds"
+ cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates"
+ cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers"
+ cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications"
+ cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories"
+ cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages"
+ cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata"
+ cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man"
+ cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services"
+ cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc"
+ cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg"
+ cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart"
+}
+
+envHooks+=(_ecmSetXdgDirs _ecmPropagateSharedData)
+preConfigureHooks+=(_ecmConfig)
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/fetchsrcs.sh b/pkgs/development/libraries/kde-frameworks-5.19/fetchsrcs.sh
new file mode 100755
index 0000000000000..7937e6f8bed92
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/fetchsrcs.sh
@@ -0,0 +1,57 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils findutils gnused nix wget
+
+set -x
+
+# The trailing slash at the end is necessary!
+RELEASE_URL="http://download.kde.org/stable/frameworks/5.19/"
+EXTRA_WGET_ARGS='-A *.tar.xz'
+
+mkdir tmp; cd tmp
+
+rm -f ../srcs.csv
+
+wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS
+
+find . | while read src; do
+ if [[ -f "${src}" ]]; then
+ # Sanitize file name
+ filename=$(basename "$src" | tr '@' '_')
+ nameVersion="${filename%.tar.*}"
+ name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
+ version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
+ echo "$name,$version,$src,$filename" >>../srcs.csv
+ fi
+done
+
+cat >../srcs.nix <>../srcs.nix <>../srcs.nix
+
+rm -f ../srcs.csv
+
+cd ..
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks-5.19/frameworkintegration.nix
new file mode 100644
index 0000000000000..26987c385ad5d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/frameworkintegration.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kbookmarks, kcompletion
+, kconfig, kconfigwidgets, ki18n, kiconthemes, kio, knotifications
+, kwidgetsaddons, libXcursor, qtx11extras
+}:
+
+kdeFramework {
+ name = "frameworkintegration";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kbookmarks kcompletion kconfig knotifications kwidgetsaddons
+ libXcursor
+ ];
+ propagatedBuildInputs = [ kconfigwidgets ki18n kio kiconthemes qtx11extras ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kactivities.nix b/pkgs/development/libraries/kde-frameworks-5.19/kactivities.nix
new file mode 100644
index 0000000000000..3225098f43980
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kactivities.nix
@@ -0,0 +1,22 @@
+{ kdeFramework, lib, extra-cmake-modules, boost, kcmutils, kconfig
+, kcoreaddons, kdbusaddons, kdeclarative, kglobalaccel, ki18n
+, kio, kservice, kwindowsystem, kxmlgui, makeQtWrapper, qtdeclarative
+}:
+
+kdeFramework {
+ name = "kactivities";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [
+ boost kcmutils kconfig kcoreaddons kdbusaddons kservice
+ kxmlgui
+ ];
+ propagatedBuildInputs = [
+ kdeclarative kglobalaccel ki18n kio kwindowsystem qtdeclarative
+ ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kactivitymanagerd"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kapidox.nix b/pkgs/development/libraries/kde-frameworks-5.19/kapidox.nix
new file mode 100644
index 0000000000000..647be8f052c39
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kapidox.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, python
+}:
+
+kdeFramework {
+ name = "kapidox";
+ nativeBuildInputs = [ extra-cmake-modules python ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/karchive.nix b/pkgs/development/libraries/kde-frameworks-5.19/karchive.nix
new file mode 100644
index 0000000000000..a8d9a0003c3b8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/karchive.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "karchive";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kauth/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks-5.19/kauth/cmake-install-paths.patch
new file mode 100644
index 0000000000000..c66f5ecd008f8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kauth/cmake-install-paths.patch
@@ -0,0 +1,17 @@
+Index: kauth-5.18.0/KF5AuthConfig.cmake.in
+===================================================================
+--- kauth-5.18.0.orig/KF5AuthConfig.cmake.in
++++ kauth-5.18.0/KF5AuthConfig.cmake.in
+@@ -4,9 +4,9 @@ set(KAUTH_STUB_FILES_DIR "@PACKAGE_KDE_I
+
+ set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@")
+ set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@")
+-set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@")
+-set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@")
+-set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
++set(KAUTH_POLICY_FILES_INSTALL_DIR "${KDE_INSTALL_DATADIR}/polkit-1/actions")
++set(KAUTH_HELPER_INSTALL_DIR "${KDE_INSTALL_LIBEXECDIR}")
++set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${KDE_INSTALL_LIBEXECDIR}")
+
+ find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@")
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kauth/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kauth/default.nix
new file mode 100644
index 0000000000000..1352d8c5821f5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kauth/default.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules
+, kcoreaddons
+, polkit-qt
+}:
+
+kdeFramework {
+ name = "kauth";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ polkit-qt ];
+ propagatedBuildInputs = [ kcoreaddons ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kauth/series b/pkgs/development/libraries/kde-frameworks-5.19/kauth/series
new file mode 100644
index 0000000000000..d2689425c3876
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kauth/series
@@ -0,0 +1 @@
+cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks-5.19/kbookmarks.nix
new file mode 100644
index 0000000000000..1a469ab4db6da
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kbookmarks.nix
@@ -0,0 +1,25 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcodecs
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kiconthemes
+, kxmlgui
+}:
+
+kdeFramework {
+ name = "kbookmarks";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kcodecs
+ kconfig
+ kconfigwidgets
+ kcoreaddons
+ kiconthemes
+ kxmlgui
+ ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 0000000000000..0d861fa95012d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+From f14d2a275323a47104b33eb61c5b6910ae1a9f59 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Wed, 14 Oct 2015 06:43:53 -0500
+Subject: [PATCH] qdiriterator follow symlinks
+
+---
+ src/kpluginselector.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp
+index 9c3431d..d6b1ee2 100644
+--- a/src/kpluginselector.cpp
++++ b/src/kpluginselector.cpp
+@@ -305,7 +305,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
+ QStringList desktopFileNames;
+ const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, componentName + QStringLiteral("/kpartplugins"), QStandardPaths::LocateDirectory);
+ Q_FOREACH (const QString &dir, dirs) {
+- QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
++ QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+ while (it.hasNext()) {
+ desktopFileNames.append(it.next());
+ }
+--
+2.5.2
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/default.nix
new file mode 100644
index 0000000000000..dbbb783ac6152
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kcmutils/default.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfigwidgets
+, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews
+, kpackage, kservice, kxmlgui
+}:
+
+kdeFramework {
+ name = "kcmutils";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kcoreaddons kiconthemes kitemviews kpackage kxmlgui
+ ];
+ propagatedBuildInputs = [ kconfigwidgets kdeclarative ki18n kservice ];
+ patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcodecs.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcodecs.nix
new file mode 100644
index 0000000000000..53a69a69b69c4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kcodecs.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "kcodecs";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcompletion.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcompletion.nix
new file mode 100644
index 0000000000000..e393774f16a52
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kcompletion.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kwidgetsaddons
+}:
+
+kdeFramework {
+ name = "kcompletion";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kconfig kwidgetsaddons ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kconfig.nix b/pkgs/development/libraries/kde-frameworks-5.19/kconfig.nix
new file mode 100644
index 0000000000000..e132afe598866
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kconfig.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, makeQtWrapper
+}:
+
+kdeFramework {
+ name = "kconfig";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kreadconfig5"
+ wrapQtProgram "$out/bin/kwriteconfig5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 0000000000000..7a6c0ee90534f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+From 4f84780893d505b2d62a14633dd983baa8ec6e28 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Wed, 14 Oct 2015 06:47:01 -0500
+Subject: [PATCH] qdiriterator follow symlinks
+
+---
+ src/khelpclient.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/khelpclient.cpp b/src/khelpclient.cpp
+index 53a331e..80fbb01 100644
+--- a/src/khelpclient.cpp
++++ b/src/khelpclient.cpp
+@@ -48,7 +48,7 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname)
+ QString docPath;
+ const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
+ Q_FOREACH (const QString &dir, desktopDirs) {
+- QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
++ QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+ while (it.hasNext()) {
+ const QString desktopPath(it.next());
+ KDesktopFile desktopFile(desktopPath);
+--
+2.5.2
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/default.nix
new file mode 100644
index 0000000000000..0e14d06edd367
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kconfigwidgets/default.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kauth, kcodecs, kconfig
+, kdoctools, kguiaddons, ki18n, kwidgetsaddons, makeQtWrapper
+}:
+
+kdeFramework {
+ name = "kconfigwidgets";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [ kguiaddons ];
+ propagatedBuildInputs = [ kauth kconfig kcodecs ki18n kwidgetsaddons ];
+ patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/preparetips5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcoreaddons.nix
new file mode 100644
index 0000000000000..f3a1db7bd4841
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kcoreaddons.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, makeQtWrapper
+, extra-cmake-modules
+, shared_mime_info
+}:
+
+kdeFramework {
+ name = "kcoreaddons";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [ shared_mime_info ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/desktoptojson"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kcrash.nix b/pkgs/development/libraries/kde-frameworks-5.19/kcrash.nix
new file mode 100644
index 0000000000000..bbab78ccb4090
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kcrash.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, kwindowsystem
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kcrash";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kcoreaddons ];
+ propagatedBuildInputs = [ kwindowsystem qtx11extras ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdbusaddons.nix
new file mode 100644
index 0000000000000..d2ceab31d14bb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdbusaddons.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, makeQtWrapper
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kdbusaddons";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ propagatedBuildInputs = [ qtx11extras ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kquitapp5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdeclarative.nix
new file mode 100644
index 0000000000000..74d107466cfc4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdeclarative.nix
@@ -0,0 +1,22 @@
+{ kdeFramework, lib, extra-cmake-modules, epoxy, kconfig
+, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage
+, kwidgetsaddons, kwindowsystem, makeQtWrapper, pkgconfig
+, qtdeclarative
+}:
+
+kdeFramework {
+ name = "kdeclarative";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [
+ epoxy kguiaddons kiconthemes kwidgetsaddons
+ ];
+ propagatedBuildInputs = [
+ kconfig kglobalaccel ki18n kio kpackage kwindowsystem qtdeclarative
+ ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kpackagelauncherqml"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kded.nix b/pkgs/development/libraries/kde-frameworks-5.19/kded.nix
new file mode 100644
index 0000000000000..47ae2d68c68e4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kded.nix
@@ -0,0 +1,19 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kdoctools
+, kinit
+, kservice
+}:
+
+kdeFramework {
+ name = "kded";
+ buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons kinit kservice ];
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/default.nix
new file mode 100644
index 0000000000000..843db83a99b23
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/default.nix
@@ -0,0 +1,36 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, docbook_xml_dtd_45, kauth
+, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons
+, kcrash, kdbusaddons, kded, kdesignerplugin, kdoctools, kemoticons
+, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels
+, kinit, knotifications, kparts, kservice, ktextwidgets
+, kunitconversion, kwidgetsaddons, kwindowsystem, kxmlgui
+, networkmanager, qtsvg, qtx11extras, xlibs
+}:
+
+# TODO: debug docbook detection
+
+kdeFramework {
+ name = "kdelibs4support";
+ outputs = [ "dev" "out" ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ setupHook = ./setup-hook.sh;
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [
+ kcompletion kconfig kded kservice kwidgetsaddons
+ kxmlgui networkmanager qtsvg qtx11extras xlibs.libSM
+ ];
+ propagatedBuildInputs = [
+ kauth karchive kconfigwidgets kcoreaddons kcrash kdbusaddons
+ kdesignerplugin kemoticons kglobalaccel kguiaddons ki18n kio
+ kiconthemes kitemmodels kinit knotifications kparts ktextwidgets
+ kunitconversion kwindowsystem
+ ];
+ cmakeFlags = [
+ "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
+ "-DDocBookXML4_DTD_VERSION=4.5"
+ ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch
new file mode 100644
index 0000000000000..eabb702544830
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/nix-kde-include-dir.patch
@@ -0,0 +1,13 @@
+Index: kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp
+===================================================================
+--- kdelibs4support-5.18.0.orig/src/kdecore/kstandarddirs.cpp
++++ kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp
+@@ -292,7 +292,7 @@ static QString relativeInstallPath(const
+ return QFile::decodeName(ICON_INSTALL_DIR "/");
+ }
+ if (strcmp("include", type) == 0) {
+- return QFile::decodeName(INCLUDE_INSTALL_DIR "/");
++ return QFile::decodeName(qgetenv("NIX_KDE_INCLUDE_DIR"));
+ }
+ break;
+ case 'l':
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/series b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/series
new file mode 100644
index 0000000000000..9b08ab208774a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/series
@@ -0,0 +1 @@
+nix-kde-include-dir.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/setup-hook.sh
new file mode 100644
index 0000000000000..21ac2e83b5dae
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdelibs4support/setup-hook.sh
@@ -0,0 +1 @@
+export NIX_KDE_INCLUDE_DIR="@dev@/include/" # trailing slash is required!
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdesignerplugin.nix
new file mode 100644
index 0000000000000..cbc114ccca036
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdesignerplugin.nix
@@ -0,0 +1,34 @@
+{ kdeFramework, lib, makeQtWrapper
+, extra-cmake-modules
+, kcompletion
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kdewebkit
+, kdoctools
+, kiconthemes
+, kio
+, kitemviews
+, kplotting
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+, sonnet
+}:
+
+kdeFramework {
+ name = "kdesignerplugin";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [
+ kcompletion kconfig kconfigwidgets kcoreaddons kdewebkit
+ kiconthemes kitemviews kplotting ktextwidgets kwidgetsaddons
+ kxmlgui
+ ];
+ propagatedBuildInputs = [ kio sonnet ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kgendesignerplugin"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdesu.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdesu.nix
new file mode 100644
index 0000000000000..364fbd6a720bd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdesu.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n, kpty
+, kservice
+}:
+
+kdeFramework {
+ name = "kdesu";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kcoreaddons kservice ];
+ propagatedBuildInputs = [ ki18n kpty ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdewebkit.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdewebkit.nix
new file mode 100644
index 0000000000000..d361313d1d494
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdewebkit.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kio, kjobwidgets, kparts, kservice, kwallet, qtwebkit
+}:
+
+kdeFramework {
+ name = "kdewebkit";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kconfig kcoreaddons kjobwidgets kparts kservice kwallet ];
+ propagatedBuildInputs = [ ki18n kio qtwebkit ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdnssd.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdnssd.nix
new file mode 100644
index 0000000000000..f00432b0c9ce4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdnssd.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, avahi
+}:
+
+kdeFramework {
+ name = "kdnssd";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ avahi ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/default.nix
new file mode 100644
index 0000000000000..f67c19f42395a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/default.nix
@@ -0,0 +1,19 @@
+{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45
+, docbook5_xsl, karchive, ki18n, makeQtWrapper, perl, perlPackages
+}:
+
+kdeFramework {
+ name = "kdoctools";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ karchive ];
+ propagatedBuildInputs = [ ki18n ];
+ propagatedNativeBuildInputs = [ makeQtWrapper perl perlPackages.URI ];
+ cmakeFlags = [
+ "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
+ "-DDocBookXSL_DIR=${docbook5_xsl}/xml/xsl/docbook"
+ ];
+ patches = [ ./kdoctools-no-find-docbook-xml.patch ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch
new file mode 100644
index 0000000000000..4e3a33efab32b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kdoctools/kdoctools-no-find-docbook-xml.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5c4863c..f731775 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,7 +46,6 @@ set_package_properties(LibXml2 PROPERTIES
+ )
+
+
+-find_package(DocBookXML4 "4.5")
+
+ set_package_properties(DocBookXML4 PROPERTIES
+ TYPE REQUIRED
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kemoticons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kemoticons.nix
new file mode 100644
index 0000000000000..d165f84e3a2dd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kemoticons.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, karchive
+, kconfig
+, kcoreaddons
+, kservice
+}:
+
+kdeFramework {
+ name = "kemoticons";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ karchive kconfig kcoreaddons ];
+ propagatedBuildInputs = [ kservice ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/cmake-install-paths.patch
new file mode 100644
index 0000000000000..732f7b69c828d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/cmake-install-paths.patch
@@ -0,0 +1,13 @@
+Index: kfilemetadata-5.18.0/src/CMakeLists.txt
+===================================================================
+--- kfilemetadata-5.18.0.orig/src/CMakeLists.txt
++++ kfilemetadata-5.18.0/src/CMakeLists.txt
+@@ -49,7 +49,7 @@ install(TARGETS KF5FileMetaData EXPORT K
+
+ install(EXPORT KF5FileMetaDataTargets
+ NAMESPACE KF5::
+- DESTINATION ${LIB_INSTALL_DIR}/cmake/KF5FileMetaData
++ DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF5FileMetaData
+ FILE KF5FileMetaDataTargets.cmake)
+
+ install(FILES
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/default.nix
new file mode 100644
index 0000000000000..9bb4831cf8da2
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/default.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules
+, attr, ebook_tools, exiv2, ffmpeg, karchive, ki18n, poppler, qtbase, taglib
+}:
+
+kdeFramework {
+ name = "kfilemetadata";
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ attr ebook_tools exiv2 ffmpeg karchive poppler taglib ];
+ propagatedBuildInputs = [ qtbase ki18n ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/series b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/series
new file mode 100644
index 0000000000000..d2689425c3876
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kfilemetadata/series
@@ -0,0 +1 @@
+cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks-5.19/kglobalaccel.nix
new file mode 100644
index 0000000000000..c535b3590a388
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kglobalaccel.nix
@@ -0,0 +1,23 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kwindowsystem
+, makeQtWrapper
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kglobalaccel";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ];
+ propagatedBuildInputs = [ kwindowsystem qtx11extras ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kglobalaccel5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kguiaddons.nix
new file mode 100644
index 0000000000000..bc4e9ab11843a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kguiaddons.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kguiaddons";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtx11extras ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/khtml.nix b/pkgs/development/libraries/kde-frameworks-5.19/khtml.nix
new file mode 100644
index 0000000000000..d40df466ebbdc
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/khtml.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib, extra-cmake-modules, giflib, karchive
+, kcodecs, kglobalaccel, ki18n, kiconthemes, kio, kjs
+, knotifications, kparts, ktextwidgets, kwallet, kwidgetsaddons
+, kwindowsystem, kxmlgui, perl, phonon, qtx11extras, sonnet
+}:
+
+kdeFramework {
+ name = "khtml";
+ nativeBuildInputs = [ extra-cmake-modules perl ];
+ buildInputs = [
+ giflib karchive kiconthemes knotifications kwallet kwidgetsaddons
+ kxmlgui phonon
+ ];
+ propagatedBuildInputs = [
+ kcodecs kglobalaccel ki18n kio kjs kparts ktextwidgets
+ kwindowsystem qtx11extras sonnet
+ ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ki18n.nix b/pkgs/development/libraries/kde-frameworks-5.19/ki18n.nix
new file mode 100644
index 0000000000000..268006512e7c3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/ki18n.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, gettext
+, python
+, qtdeclarative
+, qtscript
+}:
+
+kdeFramework {
+ name = "ki18n";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtdeclarative qtscript ];
+ propagatedNativeBuildInputs = [ gettext python ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default-theme-breeze.patch b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default-theme-breeze.patch
new file mode 100644
index 0000000000000..5b3b15d5d5b5b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default-theme-breeze.patch
@@ -0,0 +1,13 @@
+Index: kiconthemes-5.17.0/src/kicontheme.cpp
+===================================================================
+--- kiconthemes-5.17.0.orig/src/kicontheme.cpp
++++ kiconthemes-5.17.0/src/kicontheme.cpp
+@@ -557,7 +557,7 @@ void KIconTheme::reconfigure()
+ // static
+ QString KIconTheme::defaultThemeName()
+ {
+- return QStringLiteral("oxygen");
++ return QStringLiteral("breeze");
+ }
+
+ void KIconTheme::assignIconsToContextMenu(ContextMenus type,
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default.nix
new file mode 100644
index 0000000000000..b78b25582bebd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/default.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, makeQtWrapper
+, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg
+}:
+
+kdeFramework {
+ name = "kiconthemes";
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [ kconfigwidgets kitemviews qtsvg ];
+ propagatedBuildInputs = [ breeze-icons ki18n ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kiconfinder5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/series b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/series
new file mode 100644
index 0000000000000..ab5cc8a3edb27
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kiconthemes/series
@@ -0,0 +1 @@
+default-theme-breeze.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kidletime.nix b/pkgs/development/libraries/kde-frameworks-5.19/kidletime.nix
new file mode 100644
index 0000000000000..fc0865600239f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kidletime.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtbase
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kidletime";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtx11extras ];
+ propagatedBuildInputs = [ qtbase ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kimageformats.nix b/pkgs/development/libraries/kde-frameworks-5.19/kimageformats.nix
new file mode 100644
index 0000000000000..49d66bbcc2c64
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kimageformats.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, ilmbase
+}:
+
+kdeFramework {
+ name = "kimageformats";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kinit/0001-kinit-libpath.patch b/pkgs/development/libraries/kde-frameworks-5.19/kinit/0001-kinit-libpath.patch
new file mode 100644
index 0000000000000..9c76079a382a8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kinit/0001-kinit-libpath.patch
@@ -0,0 +1,42 @@
+From 723c9b1268a04127647a1c20eebe9804150566dd Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Sat, 13 Jun 2015 08:57:55 -0500
+Subject: [PATCH] kinit libpath
+
+---
+ src/kdeinit/kinit.cpp | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp
+index 9e775b6..0ac5646 100644
+--- a/src/kdeinit/kinit.cpp
++++ b/src/kdeinit/kinit.cpp
+@@ -660,15 +660,17 @@ static pid_t launch(int argc, const char *_name, const char *args,
+ if (!libpath.isEmpty()) {
+ if (!l.load()) {
+ if (libpath_relative) {
+- // NB: Because Qt makes the actual dlopen() call, the
+- // RUNPATH of kdeinit is *not* respected - see
+- // https://sourceware.org/bugzilla/show_bug.cgi?id=13945
+- // - so we try hacking it in ourselves
+- QString install_lib_dir = QFile::decodeName(
+- CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/");
+- libpath = install_lib_dir + libpath;
+- l.setFileName(libpath);
++ // Use QT_PLUGIN_PATH to find shared library directories
++ // For KF5, the plugin path is /lib/qt5/plugins/, so kdeinit5
++ // shared libraries should be in /lib/qt5/plugins/../../
++ const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]"));
++ const QString up = QString::fromLocal8Bit("/../../");
++ const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts);
++ Q_FOREACH (const QString &path, paths) {
++ l.setFileName(path + up + libpath);
+ l.load();
++ if (l.isLoaded()) break;
++ }
+ }
+ }
+ if (!l.isLoaded()) {
+--
+2.4.2
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kinit/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kinit/default.nix
new file mode 100644
index 0000000000000..5f644d7c424e2
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kinit/default.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcrash
+, kdoctools, ki18n, kio, kservice, kwindowsystem, libcap
+, libcap_progs
+}:
+
+# TODO: setuid wrapper
+
+kdeFramework {
+ name = "kinit";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools libcap_progs ];
+ buildInputs = [ kconfig kcrash kservice libcap ];
+ propagatedBuildInputs = [ ki18n kio kwindowsystem ];
+ patches = [ ./0001-kinit-libpath.patch ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kio/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kio/default.nix
new file mode 100644
index 0000000000000..a2131ff338505
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kio/default.nix
@@ -0,0 +1,33 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, acl, karchive
+, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons
+, kdbusaddons, kdoctools, ki18n, kiconthemes, kitemviews
+, kjobwidgets, knotifications, kservice, ktextwidgets, kwallet
+, kwidgetsaddons, kwindowsystem, kxmlgui, makeQtWrapper
+, qtscript, qtx11extras, solid
+}:
+
+kdeFramework {
+ name = "kio";
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [
+ acl karchive kconfig kcoreaddons kdbusaddons kiconthemes
+ knotifications ktextwidgets kwallet kwidgetsaddons
+ qtscript
+ ];
+ propagatedBuildInputs = [
+ kbookmarks kcompletion kconfigwidgets ki18n kitemviews kjobwidgets
+ kservice kwindowsystem kxmlgui solid qtx11extras
+ ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kcookiejar5"
+ wrapQtProgram "$out/bin/ktelnetservice5"
+ wrapQtProgram "$out/bin/ktrash5"
+ wrapQtProgram "$out/bin/kmailservice5"
+ wrapQtProgram "$out/bin/protocoltojson"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks-5.19/kio/samba-search-path.patch
new file mode 100644
index 0000000000000..c9ad46b41bb76
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kio/samba-search-path.patch
@@ -0,0 +1,28 @@
+Index: kio-5.17.0/src/core/ksambashare.cpp
+===================================================================
+--- kio-5.17.0.orig/src/core/ksambashare.cpp
++++ kio-5.17.0/src/core/ksambashare.cpp
+@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate(
+
+ bool KSambaSharePrivate::isSambaInstalled()
+ {
+- if (QFile::exists(QStringLiteral("/usr/sbin/smbd"))
+- || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) {
+- return true;
++ const QByteArray pathEnv = qgetenv("PATH");
++ if (!pathEnv.isEmpty()) {
++ QLatin1Char pathSep(':');
++ QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts);
++ for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
++ it->append("/smbd");
++ if (QFile::exists(*it)) {
++ return true;
++ }
++ }
+ }
+
+- //qDebug() << "Samba is not installed!";
+-
+ return false;
+ }
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kio/series b/pkgs/development/libraries/kde-frameworks-5.19/kio/series
new file mode 100644
index 0000000000000..77ca154500474
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kio/series
@@ -0,0 +1 @@
+samba-search-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks-5.19/kitemmodels.nix
new file mode 100644
index 0000000000000..a9024d771cc33
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kitemmodels.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "kitemmodels";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kitemviews.nix b/pkgs/development/libraries/kde-frameworks-5.19/kitemviews.nix
new file mode 100644
index 0000000000000..931019ce495d7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kitemviews.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "kitemviews";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.19/kjobwidgets.nix
new file mode 100644
index 0000000000000..746edf12eea03
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kjobwidgets.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, kwidgetsaddons
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kjobwidgets";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kcoreaddons kwidgetsaddons ];
+ propagatedBuildInputs = [ qtx11extras ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kjs.nix b/pkgs/development/libraries/kde-frameworks-5.19/kjs.nix
new file mode 100644
index 0000000000000..768720f178c87
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kjs.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kdoctools
+, makeQtWrapper
+}:
+
+kdeFramework {
+ name = "kjs";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kjs5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kjsembed.nix b/pkgs/development/libraries/kde-frameworks-5.19/kjsembed.nix
new file mode 100644
index 0000000000000..22eef2d47bde6
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kjsembed.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kdoctools, ki18n, kjs
+, makeQtWrapper, qtsvg
+}:
+
+kdeFramework {
+ name = "kjsembed";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [ qtsvg ];
+ propagatedBuildInputs = [ ki18n kjs ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kjscmd5"
+ wrapQtProgram "$out/bin/kjsconsole"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks-5.19/kmediaplayer.nix
new file mode 100644
index 0000000000000..460458b22323a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kmediaplayer.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kparts
+, kxmlgui
+}:
+
+kdeFramework {
+ name = "kmediaplayer";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kxmlgui ];
+ propagatedBuildInputs = [ kparts ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/knewstuff.nix b/pkgs/development/libraries/kde-frameworks-5.19/knewstuff.nix
new file mode 100644
index 0000000000000..5bcd6f3014624
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/knewstuff.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, attica, karchive
+, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes, kio
+, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui
+}:
+
+kdeFramework {
+ name = "knewstuff";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ karchive kcompletion kconfig kcoreaddons kiconthemes
+ kitemviews ktextwidgets kwidgetsaddons
+ ];
+ propagatedBuildInputs = [ attica ki18n kio kservice kxmlgui ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/knotifications.nix b/pkgs/development/libraries/kde-frameworks-5.19/knotifications.nix
new file mode 100644
index 0000000000000..7e301dd0f2683
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/knotifications.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcodecs
+, kconfig
+, kcoreaddons
+, kwindowsystem
+, phonon
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "knotifications";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kcodecs kconfig kcoreaddons phonon
+ ];
+ propagatedBuildInputs = [ kwindowsystem qtx11extras ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks-5.19/knotifyconfig.nix
new file mode 100644
index 0000000000000..dd99d2d4f1e57
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/knotifyconfig.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
+, ki18n, kio, phonon
+}:
+
+kdeFramework {
+ name = "knotifyconfig";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ kcompletion kconfig phonon ];
+ propagatedBuildInputs = [ ki18n kio ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/allow-external-paths.patch b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/allow-external-paths.patch
new file mode 100644
index 0000000000000..e9d7444481480
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/allow-external-paths.patch
@@ -0,0 +1,13 @@
+Index: kpackage-5.18.0/src/kpackage/package.cpp
+===================================================================
+--- kpackage-5.18.0.orig/src/kpackage/package.cpp
++++ kpackage-5.18.0/src/kpackage/package.cpp
+@@ -808,7 +808,7 @@ PackagePrivate::PackagePrivate()
+ : QSharedData(),
+ fallbackPackage(0),
+ metadata(0),
+- externalPaths(false),
++ externalPaths(true),
+ valid(false),
+ checkedValid(false)
+ {
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/default.nix
new file mode 100644
index 0000000000000..aea1b0d31a0d9
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/default.nix
@@ -0,0 +1,23 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules
+, karchive
+, kconfig
+, kcoreaddons
+, kdoctools
+, ki18n
+, makeQtWrapper
+}:
+
+kdeFramework {
+ name = "kpackage";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [ karchive kconfig ];
+ propagatedBuildInputs = [ kcoreaddons ki18n ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ postInstall = ''
+ wrapQtProgram "$out/bin/kpackagetool5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch
new file mode 100644
index 0000000000000..ddbf17d00064c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/qdiriterator-follow-symlinks.patch
@@ -0,0 +1,26 @@
+Index: kpackage-5.18.0/src/kpackage/packageloader.cpp
+===================================================================
+--- kpackage-5.18.0.orig/src/kpackage/packageloader.cpp
++++ kpackage-5.18.0/src/kpackage/packageloader.cpp
+@@ -241,7 +241,7 @@ QList PackageLoader::li
+ } else {
+ //qDebug() << "Not cached";
+ // If there's no cache file, fall back to listing the directory
+- const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories;
++ const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks;
+ const QStringList nameFilters = QStringList(QStringLiteral("metadata.desktop")) << QStringLiteral("metadata.json");
+
+ QDirIterator it(plugindir, nameFilters, QDir::Files, flags);
+Index: kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp
+===================================================================
+--- kpackage-5.18.0.orig/src/kpackage/private/packagejobthread.cpp
++++ kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp
+@@ -146,7 +146,7 @@ bool indexDirectory(const QString& dir,
+
+ QJsonArray plugins;
+
+- QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories);
++ QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+ while (it.hasNext()) {
+ it.next();
+ const QString path = it.fileInfo().absoluteFilePath();
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpackage/series b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/series
new file mode 100644
index 0000000000000..9b7f076efc70e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kpackage/series
@@ -0,0 +1,2 @@
+allow-external-paths.patch
+qdiriterator-follow-symlinks.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kparts.nix b/pkgs/development/libraries/kde-frameworks-5.19/kparts.nix
new file mode 100644
index 0000000000000..1c3e0b2cbc519
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kparts.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kiconthemes, kio, kjobwidgets, knotifications, kservice
+, ktextwidgets, kwidgetsaddons, kxmlgui
+}:
+
+kdeFramework {
+ name = "kparts";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kconfig kcoreaddons kiconthemes kjobwidgets knotifications
+ kservice kwidgetsaddons
+ ];
+ propagatedBuildInputs = [ ki18n kio ktextwidgets kxmlgui ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpeople.nix b/pkgs/development/libraries/kde-frameworks-5.19/kpeople.nix
new file mode 100644
index 0000000000000..4c3877e7efd2f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kpeople.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n
+, kitemviews, kservice, kwidgetsaddons, qtdeclarative
+}:
+
+kdeFramework {
+ name = "kpeople";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kcoreaddons kitemviews kservice kwidgetsaddons
+ ];
+ propagatedBuildInputs = [ ki18n qtdeclarative ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kplotting.nix b/pkgs/development/libraries/kde-frameworks-5.19/kplotting.nix
new file mode 100644
index 0000000000000..c16f51b5ac3cd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kplotting.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "kplotting";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kpty.nix b/pkgs/development/libraries/kde-frameworks-5.19/kpty.nix
new file mode 100644
index 0000000000000..2e34e6f674cee
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kpty.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n }:
+
+kdeFramework {
+ name = "kpty";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ kcoreaddons ki18n ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kross.nix b/pkgs/development/libraries/kde-frameworks-5.19/kross.nix
new file mode 100644
index 0000000000000..7c6f079feaa7c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kross.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kcoreaddons
+, kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons
+, kxmlgui, qtscript
+}:
+
+kdeFramework {
+ name = "kross";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+ buildInputs = [ kcompletion kcoreaddons kxmlgui ];
+ propagatedBuildInputs = [ ki18n kiconthemes kio kparts kwidgetsaddons qtscript ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/krunner.nix b/pkgs/development/libraries/kde-frameworks-5.19/krunner.nix
new file mode 100644
index 0000000000000..12d2b54d0eb36
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/krunner.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kio, kservice, plasma-framework, qtquick1, solid
+, threadweaver
+}:
+
+kdeFramework {
+ name = "krunner";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kconfig kcoreaddons kservice qtquick1 solid threadweaver
+ ];
+ propagatedBuildInputs = [ ki18n kio plasma-framework ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 0000000000000..3d8397d8ee2df
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+From ae8919eb81abad369e4a26ffcd845b140983398d Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Wed, 14 Oct 2015 06:28:57 -0500
+Subject: [PATCH 1/2] qdiriterator follow symlinks
+
+---
+ src/sycoca/kbuildsycoca.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp
+index 1deae14..250baa8 100644
+--- a/src/sycoca/kbuildsycoca.cpp
++++ b/src/sycoca/kbuildsycoca.cpp
+@@ -208,7 +208,7 @@ bool KBuildSycoca::build()
+ QStringList relFiles;
+ const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory);
+ Q_FOREACH (const QString &dir, dirs) {
+- QDirIterator it(dir, QDirIterator::Subdirectories);
++ QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+ while (it.hasNext()) {
+ const QString filePath = it.next();
+ Q_ASSERT(filePath.startsWith(dir)); // due to the line below...
+--
+2.5.2
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kservice/0002-no-canonicalize-path.patch b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0002-no-canonicalize-path.patch
new file mode 100644
index 0000000000000..685c685261195
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kservice/0002-no-canonicalize-path.patch
@@ -0,0 +1,25 @@
+From 46d124da602d84b7611a7ff0ac0862168d451cdb Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel
+Date: Wed, 14 Oct 2015 06:31:29 -0500
+Subject: [PATCH 2/2] no canonicalize path
+
+---
+ src/sycoca/vfolder_menu.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/sycoca/vfolder_menu.cpp b/src/sycoca/vfolder_menu.cpp
+index d3e31c3..d15d743 100644
+--- a/src/sycoca/vfolder_menu.cpp
++++ b/src/sycoca/vfolder_menu.cpp
+@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString &_dir, const QString &baseDir, bool keepR
+ }
+
+ if (!relative) {
+- QString resolved = QDir(dir).canonicalPath();
++ QString resolved = QDir::cleanPath(dir);
+ if (!resolved.isEmpty()) {
+ dir = resolved;
+ }
+--
+2.5.2
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/kservice/default.nix
new file mode 100644
index 0000000000000..3a27d85b9166e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kservice/default.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem
+}:
+
+kdeFramework {
+ name = "kservice";
+ propagatedNativeBuildInputs = [ extra-cmake-modules ];
+ nativeBuildInputs = [ kdoctools ];
+ buildInputs = [ kcrash kdbusaddons ];
+ propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ];
+ patches = [
+ ./0001-qdiriterator-follow-symlinks.patch
+ ./0002-no-canonicalize-path.patch
+ ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/default.nix
new file mode 100644
index 0000000000000..b8df6a5f4c0d4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/default.nix
@@ -0,0 +1,22 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, makeQtWrapper, perl
+, karchive, kconfig, kguiaddons, kiconthemes, kparts
+, libgit2
+, qtscript, qtxmlpatterns
+, ki18n, kio, sonnet
+}:
+
+kdeFramework {
+ name = "ktexteditor";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper perl ];
+ buildInputs = [
+ karchive kconfig kguiaddons kiconthemes kparts
+ libgit2
+ qtscript qtxmlpatterns
+ ];
+ propagatedBuildInputs = [ ki18n kio sonnet ];
+ patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/no-qcoreapplication.patch b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/no-qcoreapplication.patch
new file mode 100644
index 0000000000000..19ab1e1e55138
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/no-qcoreapplication.patch
@@ -0,0 +1,36 @@
+Index: ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp
+===================================================================
+--- ktexteditor-5.18.0.orig/src/syntax/data/katehighlightingindexer.cpp
++++ ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp
+@@ -55,19 +55,16 @@ QStringList readListing(const QString &f
+
+ int main(int argc, char *argv[])
+ {
+- // get app instance
+- QCoreApplication app(argc, argv);
+-
+ // ensure enough arguments are passed
+- if (app.arguments().size() < 3)
++ if (argc < 3)
+ return 1;
+
+ // open schema
+ QXmlSchema schema;
+- if (!schema.load(QUrl::fromLocalFile(app.arguments().at(2))))
++ if (!schema.load(QUrl::fromLocalFile(QString::fromLocal8Bit(argv[2]))))
+ return 2;
+
+- const QString hlFilenamesListing = app.arguments().value(3);
++ const QString hlFilenamesListing = QString::fromLocal8Bit(argv[3]);
+ if (hlFilenamesListing.isEmpty()) {
+ return 1;
+ }
+@@ -152,7 +149,7 @@ int main(int argc, char *argv[])
+ return anyError;
+
+ // create outfile, after all has worked!
+- QFile outFile(app.arguments().at(1));
++ QFile outFile(QString::fromLocal8Bit(argv[1]));
+ if (!outFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
+ return 7;
+
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/series b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/series
new file mode 100644
index 0000000000000..46cd23829a2fd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/ktexteditor/series
@@ -0,0 +1 @@
+no-qcoreapplication.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.19/ktextwidgets.nix
new file mode 100644
index 0000000000000..e332d4ff9a832
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/ktextwidgets.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
+, kconfigwidgets, ki18n, kiconthemes, kservice, kwindowsystem
+, sonnet
+}:
+
+kdeFramework {
+ name = "ktextwidgets";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ kcompletion kconfig kconfigwidgets kiconthemes kservice
+ ];
+ propagatedBuildInputs = [ ki18n kwindowsystem sonnet ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks-5.19/kunitconversion.nix
new file mode 100644
index 0000000000000..3cf0f847d83d5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kunitconversion.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, ki18n }:
+
+kdeFramework {
+ name = "kunitconversion";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ ki18n ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kwallet.nix b/pkgs/development/libraries/kde-frameworks-5.19/kwallet.nix
new file mode 100644
index 0000000000000..5ade5f63a8d04
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kwallet.nix
@@ -0,0 +1,21 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets
+, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes
+, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt
+, makeQtWrapper }:
+
+kdeFramework {
+ name = "kwallet";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [
+ kconfig kconfigwidgets kcoreaddons kdbusaddons kiconthemes
+ knotifications kservice kwidgetsaddons libgcrypt
+ ];
+ propagatedBuildInputs = [ ki18n kwindowsystem ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/kwalletd5"
+ wrapQtProgram "$out/bin/kwallet-query"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks-5.19/kwidgetsaddons.nix
new file mode 100644
index 0000000000000..d95f44d3fecfd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kwidgetsaddons.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "kwidgetsaddons";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kwindowsystem.nix b/pkgs/development/libraries/kde-frameworks-5.19/kwindowsystem.nix
new file mode 100644
index 0000000000000..09ab1f2200de3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kwindowsystem.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+ name = "kwindowsystem";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ qtx11extras ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks-5.19/kxmlgui.nix
new file mode 100644
index 0000000000000..f081d5f9170e3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kxmlgui.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, extra-cmake-modules, attica, kconfig
+, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews
+, ktextwidgets, kwindowsystem, sonnet
+}:
+
+kdeFramework {
+ name = "kxmlgui";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [
+ attica kconfig kiconthemes kitemviews ktextwidgets
+ ];
+ propagatedBuildInputs = [
+ kconfigwidgets kglobalaccel ki18n kwindowsystem sonnet
+ ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks-5.19/kxmlrpcclient.nix
new file mode 100644
index 0000000000000..20a300b68bc87
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/kxmlrpcclient.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, ki18n, kio }:
+
+kdeFramework {
+ name = "kxmlrpcclient";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ ki18n kio ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.19/modemmanager-qt.nix
new file mode 100644
index 0000000000000..7d7f769d6a9be
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/modemmanager-qt.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, modemmanager
+}:
+
+kdeFramework {
+ name = "modemmanager-qt";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ modemmanager ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.19/networkmanager-qt.nix
new file mode 100644
index 0000000000000..333378bd14316
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/networkmanager-qt.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, networkmanager
+}:
+
+kdeFramework {
+ name = "networkmanager-qt";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ propagatedBuildInputs = [ networkmanager ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks-5.19/oxygen-icons5.nix
new file mode 100644
index 0000000000000..ee350f8e15367
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/oxygen-icons5.nix
@@ -0,0 +1,13 @@
+{ kdeFramework
+, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "oxygen-icons5";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ license = lib.licenses.lgpl3Plus;
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/plasma-framework/default.nix b/pkgs/development/libraries/kde-frameworks-5.19/plasma-framework/default.nix
new file mode 100644
index 0000000000000..d8846f7772318
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/plasma-framework/default.nix
@@ -0,0 +1,25 @@
+{ kdeFramework, lib, extra-cmake-modules, kactivities, karchive
+, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
+, kdoctools, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio
+, knotifications, kpackage, kservice, kwindowsystem, kxmlgui
+, makeQtWrapper, qtscript, qtx11extras
+}:
+
+kdeFramework {
+ name = "plasma-framework";
+ nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
+ buildInputs = [
+ karchive kconfig kconfigwidgets kcoreaddons kdbusaddons kguiaddons
+ kiconthemes knotifications kxmlgui qtscript
+ ];
+ propagatedBuildInputs = [
+ kactivities kdeclarative kglobalaccel ki18n kio kpackage kservice kwindowsystem
+ qtx11extras
+ ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/plasmapkg2"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/solid.nix b/pkgs/development/libraries/kde-frameworks-5.19/solid.nix
new file mode 100644
index 0000000000000..afd125e3c5973
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/solid.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, makeQtWrapper
+, qtdeclarative
+}:
+
+kdeFramework {
+ name = "solid";
+ nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
+ buildInputs = [ qtdeclarative ];
+ postInstall = ''
+ wrapQtProgram "$out/bin/solid-hardware5"
+ '';
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/sonnet.nix b/pkgs/development/libraries/kde-frameworks-5.19/sonnet.nix
new file mode 100644
index 0000000000000..943fe04a1c92c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/sonnet.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, hunspell
+}:
+
+kdeFramework {
+ name = "sonnet";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ buildInputs = [ hunspell ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/srcs.nix b/pkgs/development/libraries/kde-frameworks-5.19/srcs.nix
new file mode 100644
index 0000000000000..b86c0b71224d6
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/srcs.nix
@@ -0,0 +1,565 @@
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+ attica = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/attica-5.19.0.tar.xz";
+ sha256 = "0cbvjnv2fcqsxspiy5pzmnnzrpfamlsc9j927kd6gpzai1ckf1lv";
+ name = "attica-5.19.0.tar.xz";
+ };
+ };
+ baloo = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/baloo-5.19.0.tar.xz";
+ sha256 = "02yy0w13h5wxm74a87zi439f6yd9miid6rb54nia0pgvcka98svg";
+ name = "baloo-5.19.0.tar.xz";
+ };
+ };
+ bluez-qt = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/bluez-qt-5.19.0.tar.xz";
+ sha256 = "0609i7rzhnnnp4fqnwscwp6y646ji8kl2hw5sy7azc87yllisnyv";
+ name = "bluez-qt-5.19.0.tar.xz";
+ };
+ };
+ breeze-icons = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/breeze-icons-5.19.0.tar.xz";
+ sha256 = "0bwix0jl1dscqfb7ygn9drpd9ivfx4g15vz6h01mswvxa9lz1vj0";
+ name = "breeze-icons-5.19.0.tar.xz";
+ };
+ };
+ extra-cmake-modules = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/extra-cmake-modules-5.19.0.tar.xz";
+ sha256 = "1dl3hhbara7iswb5wsc5dp17ar3ljw5f0nrncl8vry9smaz2zl63";
+ name = "extra-cmake-modules-5.19.0.tar.xz";
+ };
+ };
+ frameworkintegration = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/frameworkintegration-5.19.0.tar.xz";
+ sha256 = "00la7p7wcyqpxyi73h4fjrmm9d2gqzdaljn4468xya4bfns5ijy3";
+ name = "frameworkintegration-5.19.0.tar.xz";
+ };
+ };
+ kactivities = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kactivities-5.19.0.tar.xz";
+ sha256 = "0yml1sbn3z4jd4vsfs25kqrl03pmlcgamzbgpw3248sabhyg7ks3";
+ name = "kactivities-5.19.0.tar.xz";
+ };
+ };
+ kapidox = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kapidox-5.19.0.tar.xz";
+ sha256 = "0a9731xrkd6mnqh72592rx6gfnxxdfd7xl8pdpgdn7qs3394k1yz";
+ name = "kapidox-5.19.0.tar.xz";
+ };
+ };
+ karchive = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/karchive-5.19.0.tar.xz";
+ sha256 = "043spmi7s2d1bj8d3wbgzbhisip6h92kqjhlvg8gyv0a7vy54ymv";
+ name = "karchive-5.19.0.tar.xz";
+ };
+ };
+ kauth = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kauth-5.19.0.tar.xz";
+ sha256 = "0fm9ih2hkh2rpmlf98yw8z1r5bn2qmpva2k7mrv6ijd5h767fxss";
+ name = "kauth-5.19.0.tar.xz";
+ };
+ };
+ kbookmarks = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kbookmarks-5.19.0.tar.xz";
+ sha256 = "0q418jpdc348nqgdavsmxxka4g8sldpdi9n89i1pllfmq10kw9sd";
+ name = "kbookmarks-5.19.0.tar.xz";
+ };
+ };
+ kcmutils = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kcmutils-5.19.0.tar.xz";
+ sha256 = "0qhdjb3zvqq9ycfgb52lz4flgipyplj5ksz8h8y71bbs4w6lazd8";
+ name = "kcmutils-5.19.0.tar.xz";
+ };
+ };
+ kcodecs = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kcodecs-5.19.0.tar.xz";
+ sha256 = "1rzp314fv9n5168j7nhv1c8fjaszpmgdx6javrx4w0hyrjdfkg66";
+ name = "kcodecs-5.19.0.tar.xz";
+ };
+ };
+ kcompletion = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kcompletion-5.19.0.tar.xz";
+ sha256 = "05n0y5kf3bcc4wgn6k0js5cravv1k93xxzrgapm21323qgvfagwd";
+ name = "kcompletion-5.19.0.tar.xz";
+ };
+ };
+ kconfig = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kconfig-5.19.0.tar.xz";
+ sha256 = "0nk5hfl8yh0kgaa7xi0cc05dl6nf7prvbvxv0i99207xh9dafdmm";
+ name = "kconfig-5.19.0.tar.xz";
+ };
+ };
+ kconfigwidgets = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kconfigwidgets-5.19.0.tar.xz";
+ sha256 = "1nld27chcjwjgwv76s2j77ifmca235yp10bm08rjmvnfn6778ypv";
+ name = "kconfigwidgets-5.19.0.tar.xz";
+ };
+ };
+ kcoreaddons = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kcoreaddons-5.19.0.tar.xz";
+ sha256 = "07sm0givfdx28p302fkynzsd3xkpn1hbs43d4rscyx18yxfsldcw";
+ name = "kcoreaddons-5.19.0.tar.xz";
+ };
+ };
+ kcrash = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kcrash-5.19.0.tar.xz";
+ sha256 = "1dy03gp1sj96wn0zfa0dpbvz8pz0ia1j7p1wcif3iqk55pjxdgyl";
+ name = "kcrash-5.19.0.tar.xz";
+ };
+ };
+ kdbusaddons = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdbusaddons-5.19.0.tar.xz";
+ sha256 = "1bb5aik0kl3kab5399drfjxrm8iysgkf813xgr0y4k64c9kwfp28";
+ name = "kdbusaddons-5.19.0.tar.xz";
+ };
+ };
+ kdeclarative = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdeclarative-5.19.0.tar.xz";
+ sha256 = "03g02zy7wjzmpvqzxx32z8ap7jyj9sf432g1d3csb0dcbx2ny52g";
+ name = "kdeclarative-5.19.0.tar.xz";
+ };
+ };
+ kded = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kded-5.19.0.tar.xz";
+ sha256 = "0nyvg0h2aqy7qr57bad6wyc2rmcv9nhdq0py4fxc3irb6516p9hz";
+ name = "kded-5.19.0.tar.xz";
+ };
+ };
+ kdelibs4support = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/kdelibs4support-5.19.0.tar.xz";
+ sha256 = "0iqnb2j6gfy8006arwv65vljfhxdnk6aia0zppngb481jnd9n2pn";
+ name = "kdelibs4support-5.19.0.tar.xz";
+ };
+ };
+ kdesignerplugin = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdesignerplugin-5.19.0.tar.xz";
+ sha256 = "11inmvyair796rx4842naf1dnxqvc6bqqzrv700ycvisad646ws5";
+ name = "kdesignerplugin-5.19.0.tar.xz";
+ };
+ };
+ kdesu = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdesu-5.19.0.tar.xz";
+ sha256 = "19w8m7ji61bpd368lzkwlizcwa1l968l568lksgm2mm9pnyjjhgz";
+ name = "kdesu-5.19.0.tar.xz";
+ };
+ };
+ kdewebkit = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdewebkit-5.19.0.tar.xz";
+ sha256 = "04b5qanhxggffnvmi28lspyi8kj4kq7mxhxndar9fmkzzgvy70hj";
+ name = "kdewebkit-5.19.0.tar.xz";
+ };
+ };
+ kdnssd = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdnssd-5.19.0.tar.xz";
+ sha256 = "15a8w2i29mrbhadw6y123mr0cc45ijabnwdfp3lbkd40lk8nq314";
+ name = "kdnssd-5.19.0.tar.xz";
+ };
+ };
+ kdoctools = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kdoctools-5.19.0.tar.xz";
+ sha256 = "06g77n9wxpiv4skc1kz794ppfb2mkmd3fgn6an5kr301xc76cnpn";
+ name = "kdoctools-5.19.0.tar.xz";
+ };
+ };
+ kemoticons = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kemoticons-5.19.0.tar.xz";
+ sha256 = "0fiix2sf2wrvmrpx8whdr1bzm7gbv7pvg02y47w5bl6s9gh176g5";
+ name = "kemoticons-5.19.0.tar.xz";
+ };
+ };
+ kfilemetadata = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kfilemetadata-5.19.0.tar.xz";
+ sha256 = "11j8if3xhp3xxwibwm6nxb4lh8wx40ni3zf5hki327pxv4vpq3qr";
+ name = "kfilemetadata-5.19.0.tar.xz";
+ };
+ };
+ kglobalaccel = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kglobalaccel-5.19.0.tar.xz";
+ sha256 = "021j98f7217m83aqxpamg0lzlaiskdaqsd9iabc8wrp1g0nkm05d";
+ name = "kglobalaccel-5.19.0.tar.xz";
+ };
+ };
+ kguiaddons = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kguiaddons-5.19.0.tar.xz";
+ sha256 = "019xaf7vpgifcw8wibli9d2b50brhgdaypsqknh6mqq8q9g06jhy";
+ name = "kguiaddons-5.19.0.tar.xz";
+ };
+ };
+ khtml = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/khtml-5.19.0.tar.xz";
+ sha256 = "0hqa54a9nxy954vy8gf52y89xd3ibz9b4jgh6w347b1alp1zn145";
+ name = "khtml-5.19.0.tar.xz";
+ };
+ };
+ ki18n = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/ki18n-5.19.0.tar.xz";
+ sha256 = "0v3arc20y5d8afm9zfrz1skd2xg3ng62cq1xvxiq645w6mxf7y05";
+ name = "ki18n-5.19.0.tar.xz";
+ };
+ };
+ kiconthemes = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kiconthemes-5.19.0.tar.xz";
+ sha256 = "0riicirgda3w2b30dzsa2lq9xrr4y04qwhxyzq1p8gn2x4pp3g3n";
+ name = "kiconthemes-5.19.0.tar.xz";
+ };
+ };
+ kidletime = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kidletime-5.19.0.tar.xz";
+ sha256 = "0jlbzqv36ddhfhk8xkkgw0xhq8s371z9ama1cyv2xq8kk4vjywc6";
+ name = "kidletime-5.19.0.tar.xz";
+ };
+ };
+ kimageformats = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kimageformats-5.19.0.tar.xz";
+ sha256 = "1ydizc6b0ncndazk62h8y249yfcx381pwzyivfpka1f69zfgyvv5";
+ name = "kimageformats-5.19.0.tar.xz";
+ };
+ };
+ kinit = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kinit-5.19.0.tar.xz";
+ sha256 = "03l7pijqdnnsfg6yz9p73p7xa86sldayggl6rc5hpkzmgyczcfzm";
+ name = "kinit-5.19.0.tar.xz";
+ };
+ };
+ kio = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kio-5.19.0.tar.xz";
+ sha256 = "0c7smp7cajivx53shy65mp9zcc51pha9iyvh37dggfflxy3xf9nv";
+ name = "kio-5.19.0.tar.xz";
+ };
+ };
+ kitemmodels = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kitemmodels-5.19.0.tar.xz";
+ sha256 = "0skmim986qnncbzd84vm1wp1fr41jn04af2dgckirsk23d35bln7";
+ name = "kitemmodels-5.19.0.tar.xz";
+ };
+ };
+ kitemviews = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kitemviews-5.19.0.tar.xz";
+ sha256 = "118zv46mvrfwbvl06bb1m8axv92wnp4pfs36hsxvnjl7gfjk5xjn";
+ name = "kitemviews-5.19.0.tar.xz";
+ };
+ };
+ kjobwidgets = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kjobwidgets-5.19.0.tar.xz";
+ sha256 = "1qzf8nzy8rxkdai9aj2lyrww90245v0p2q115xiz73bsg9rahmji";
+ name = "kjobwidgets-5.19.0.tar.xz";
+ };
+ };
+ kjs = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/kjs-5.19.0.tar.xz";
+ sha256 = "08m01762hb25vm020g3v37bh40cgvcfrj45ql135klx96x9imfaf";
+ name = "kjs-5.19.0.tar.xz";
+ };
+ };
+ kjsembed = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/kjsembed-5.19.0.tar.xz";
+ sha256 = "1wmkgy8jgm21y2cvcbv1fdv29dxxla8n6ws78kzzbbw4cgqwwl48";
+ name = "kjsembed-5.19.0.tar.xz";
+ };
+ };
+ kmediaplayer = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/kmediaplayer-5.19.0.tar.xz";
+ sha256 = "1vhqr2c7q8vwzdj29vpmfjfhyal8wp9ffirrnqc98vb6sffs85ay";
+ name = "kmediaplayer-5.19.0.tar.xz";
+ };
+ };
+ knewstuff = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/knewstuff-5.19.0.tar.xz";
+ sha256 = "12acd12vxk9z83zg3yz8lvmmb8737z9lzd4hs9a3jcs1z5k2nhb4";
+ name = "knewstuff-5.19.0.tar.xz";
+ };
+ };
+ knotifications = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/knotifications-5.19.0.tar.xz";
+ sha256 = "0grgm0ws16gp2j77nslqpl1jpxbi0m6g59zr7v1xnmzdk2j6n4av";
+ name = "knotifications-5.19.0.tar.xz";
+ };
+ };
+ knotifyconfig = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/knotifyconfig-5.19.0.tar.xz";
+ sha256 = "161brvryxzdkny7sf6icn1jpyi6rnw6jc808gdf5g41v50xpnxfj";
+ name = "knotifyconfig-5.19.0.tar.xz";
+ };
+ };
+ kpackage = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kpackage-5.19.0.tar.xz";
+ sha256 = "1km4sjgxfljp2pnjnzj48q3c574zvj7341a57n4ifhjwj37yzxdv";
+ name = "kpackage-5.19.0.tar.xz";
+ };
+ };
+ kparts = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kparts-5.19.0.tar.xz";
+ sha256 = "05g59x2mrqygawzcwgw3igl5n96l649h0kpzh37sfq4i8kg15g7l";
+ name = "kparts-5.19.0.tar.xz";
+ };
+ };
+ kpeople = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kpeople-5.19.0.tar.xz";
+ sha256 = "1ksf6g71li1xk4q98cvwkam8m8g32x2815kj1gfwbg4g6iw74w98";
+ name = "kpeople-5.19.0.tar.xz";
+ };
+ };
+ kplotting = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kplotting-5.19.0.tar.xz";
+ sha256 = "169x4m9ms8yhfha8zclnl8wrnfhfqshpwwg4b5bd046pcrkqmnqq";
+ name = "kplotting-5.19.0.tar.xz";
+ };
+ };
+ kpty = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kpty-5.19.0.tar.xz";
+ sha256 = "0289vzfjwppwqj9h03flzhwm18dnxz11hqhdhr9990x7rw6a4n03";
+ name = "kpty-5.19.0.tar.xz";
+ };
+ };
+ kross = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/kross-5.19.0.tar.xz";
+ sha256 = "1nv7mrhn7wa4bs2a164x42d3b37akyvhkxqs8cg5fqp4vr2wkw0p";
+ name = "kross-5.19.0.tar.xz";
+ };
+ };
+ krunner = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/portingAids/krunner-5.19.0.tar.xz";
+ sha256 = "054s8309lxi27gpbg7iygbcxsp0pwrzbzww3h8zp2a9yiic4s5mx";
+ name = "krunner-5.19.0.tar.xz";
+ };
+ };
+ kservice = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kservice-5.19.0.tar.xz";
+ sha256 = "02lbia26r2462nwksizaxjfkhxfqqs732dp495yx8bjc7wcv3srm";
+ name = "kservice-5.19.0.tar.xz";
+ };
+ };
+ ktexteditor = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/ktexteditor-5.19.0.tar.xz";
+ sha256 = "0v3l44w4k43ajs81i8386hszk3x7rajjlb6z3jb7q98vhp91b5dp";
+ name = "ktexteditor-5.19.0.tar.xz";
+ };
+ };
+ ktextwidgets = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/ktextwidgets-5.19.0.tar.xz";
+ sha256 = "1xydb76r6x1p10bkr2nlqg3md78jw8zvqad0h42dgvl4f5xvjknp";
+ name = "ktextwidgets-5.19.0.tar.xz";
+ };
+ };
+ kunitconversion = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kunitconversion-5.19.0.tar.xz";
+ sha256 = "11g1vhqkrb1k748drj7klkbb7jca3dybakcmcgqf53g8vxfih8kb";
+ name = "kunitconversion-5.19.0.tar.xz";
+ };
+ };
+ kwallet = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kwallet-5.19.0.tar.xz";
+ sha256 = "0z0c62fdfx9syrq6z7bk0ihac4yqyxpycll7h3mijj29km4jnpjm";
+ name = "kwallet-5.19.0.tar.xz";
+ };
+ };
+ kwidgetsaddons = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kwidgetsaddons-5.19.0.tar.xz";
+ sha256 = "0b85ng0dj5gpzifqmhyzgx61nb37vq7d0gvfpfazlcp5n27ywivm";
+ name = "kwidgetsaddons-5.19.0.tar.xz";
+ };
+ };
+ kwindowsystem = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kwindowsystem-5.19.0.tar.xz";
+ sha256 = "115xs34r74j9zcsw69glnh8w59iyh764n3gniawwrk23c6yb8fch";
+ name = "kwindowsystem-5.19.0.tar.xz";
+ };
+ };
+ kxmlgui = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kxmlgui-5.19.0.tar.xz";
+ sha256 = "1al2xifiyvl3zpva9nqap8gb6vqfgmf2fnhkmymm02rwg4yn4gah";
+ name = "kxmlgui-5.19.0.tar.xz";
+ };
+ };
+ kxmlrpcclient = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/kxmlrpcclient-5.19.0.tar.xz";
+ sha256 = "0lji7cxvh2lmjz42lx6ymz962gr4cyqfzksz0n5vgzfk5z0vq98g";
+ name = "kxmlrpcclient-5.19.0.tar.xz";
+ };
+ };
+ modemmanager-qt = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/modemmanager-qt-5.19.0.tar.xz";
+ sha256 = "05x9jicryjw9fj02arpya8xsh79rsnljnqjfpwbb7pi38f9i8v4w";
+ name = "modemmanager-qt-5.19.0.tar.xz";
+ };
+ };
+ networkmanager-qt = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/networkmanager-qt-5.19.0.tar.xz";
+ sha256 = "0wi0mkygzbvvyil1nyzc3ihgilvpx6j7caqaa9k38p85g93vsq13";
+ name = "networkmanager-qt-5.19.0.tar.xz";
+ };
+ };
+ oxygen-icons5 = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/oxygen-icons5-5.19.0.tar.xz";
+ sha256 = "09vfwcyidj3bl0qr4sq78bkc69zp9x8dwp8bsay5y05q8591dkg0";
+ name = "oxygen-icons5-5.19.0.tar.xz";
+ };
+ };
+ plasma-framework = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/plasma-framework-5.19.0.tar.xz";
+ sha256 = "1588r1jag0s9hhw4qq7mr2mcdd3d9az5ngb3z1l58xdhvfcc4497";
+ name = "plasma-framework-5.19.0.tar.xz";
+ };
+ };
+ solid = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/solid-5.19.0.tar.xz";
+ sha256 = "02bnvhscb55r6q5hkyh7rqi6zsc3r974y3x9shi8l0xbs78snkgz";
+ name = "solid-5.19.0.tar.xz";
+ };
+ };
+ sonnet = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/sonnet-5.19.0.tar.xz";
+ sha256 = "02ringh0wyiq1n19c200bcyf5x2w5jhw0pcxvfjzjai1sjig03x7";
+ name = "sonnet-5.19.0.tar.xz";
+ };
+ };
+ threadweaver = {
+ version = "5.19.0";
+ src = fetchurl {
+ url = "${mirror}/stable/frameworks/5.19/threadweaver-5.19.0.tar.xz";
+ sha256 = "1jm1sw7xq76s2ggghm6qqdn7452myy9n7p5zzdb01qbaw2y1x4pw";
+ name = "threadweaver-5.19.0.tar.xz";
+ };
+ };
+}
diff --git a/pkgs/development/libraries/kde-frameworks-5.19/threadweaver.nix b/pkgs/development/libraries/kde-frameworks-5.19/threadweaver.nix
new file mode 100644
index 0000000000000..52817921cc723
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks-5.19/threadweaver.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+ name = "threadweaver";
+ nativeBuildInputs = [ extra-cmake-modules ];
+ meta = {
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+}
diff --git a/pkgs/development/libraries/lame/default.nix b/pkgs/development/libraries/lame/default.nix
index f4ea47e633f9e..b324494faff74 100644
--- a/pkgs/development/libraries/lame/default.nix
+++ b/pkgs/development/libraries/lame/default.nix
@@ -32,6 +32,9 @@ stdenv.mkDerivation rec {
patches = [ ./gcc-4.9.patch ];
+ outputs = [ "out" "lib" "doc" ]; # a small single header
+ outputMan = "out";
+
nativeBuildInputs = [ ]
++ optional nasmSupport nasm;
diff --git a/pkgs/development/libraries/lcms/default.nix b/pkgs/development/libraries/lcms/default.nix
index c98a01f6f70f1..9365cf0b5f091 100644
--- a/pkgs/development/libraries/lcms/default.nix
+++ b/pkgs/development/libraries/lcms/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation {
sha256 = "1abkf8iphwyfs3z305z3qczm3z1i9idc1lz4gvfg92jnkz5k5bl0";
};
+ outputs = [ "dev" "out" "bin" "man" ];
+
meta = {
description = "Color management engine";
homepage = http://www.littlecms.com/;
diff --git a/pkgs/development/libraries/lcms2/default.nix b/pkgs/development/libraries/lcms2/default.nix
index db82c943d7c2b..7dea029491aa7 100644
--- a/pkgs/development/libraries/lcms2/default.nix
+++ b/pkgs/development/libraries/lcms2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libtiff, libjpeg, zlib}:
+{ stdenv, fetchurl, libtiff, libjpeg, zlib }:
stdenv.mkDerivation rec {
name = "lcms2-2.7";
@@ -8,13 +8,14 @@ stdenv.mkDerivation rec {
sha256 = "0lvaglcjsvnyglgj3cb3pjc22nq8fml1vlx5dmmmw66ywx526925";
};
+ outputs = [ "dev" "out" "bin" ];
+
propagatedBuildInputs = [ libtiff libjpeg zlib ];
- meta = {
+ meta = with stdenv.lib; {
description = "Color management engine";
homepage = http://www.littlecms.com/;
- license = stdenv.lib.licenses.mit;
- platforms = stdenv.lib.platforms.all;
- maintainers = [ stdenv.lib.maintainers.urkud ];
+ license = licenses.mit;
+ platforms = platforms.all;
};
}
diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix
index c0a6d4b6b1f12..776cd0f5b91ff 100644
--- a/pkgs/development/libraries/libao/default.nix
+++ b/pkgs/development/libraries/libao/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83";
};
+ outputs = [ "dev" "out" "doc" ];
+
buildInputs =
[ pkgconfig ] ++
lib.optional stdenv.isLinux (if usePulseAudio then libpulseaudio else alsaLib) ++
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index ff33043dbaeac..467dd87f43e94 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
preFixup = ''
sed -i $out/lib/libarchive.la \
- -e 's|-lcrypto|-L${openssl}/lib -lcrypto|' \
+ -e 's|-lcrypto|-L${openssl.out}/lib -lcrypto|' \
-e 's|-llzo2|-L${lzo}/lib -llzo2|'
'';
diff --git a/pkgs/development/libraries/libassuan/default.nix b/pkgs/development/libraries/libassuan/default.nix
index a9c83594179f3..f2f31963d6701 100644
--- a/pkgs/development/libraries/libassuan/default.nix
+++ b/pkgs/development/libraries/libassuan/default.nix
@@ -8,13 +8,16 @@ stdenv.mkDerivation rec {
sha256 = "086bbcdnvs48qq5g4iac7dpk76j0q3jrp16mchdvyx0b720xq1mv";
};
+ outputs = [ "dev" "out" "info" ];
+ outputBin = "dev"; # libassuan-config
+
buildInputs = [ libgpgerror pth ];
doCheck = true;
# Make sure includes are fixed for callers who don't use libassuan-config
postInstall = ''
- sed -i 's,#include ,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/assuan.h
+ sed -i 's,#include ,#include "${libgpgerror.dev}/include/gpg-error.h",g' $dev/include/assuan.h
'';
meta = {
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index 4d5563adab022..b84b852691fd6 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -7,10 +7,10 @@
, x264Support ? false, x264 ? null
, xvidSupport ? true, xvidcore ? null
, faacSupport ? false, faac ? null
-, vaapiSupport ? false, libva ? null # ToDo: it has huge closure
+, vaapiSupport ? true, libva ? null
, vdpauSupport ? true, libvdpau ? null
, freetypeSupport ? true, freetype ? null # it's small and almost everywhere
-, SDL # only for avplay in $tools, adds nontrivial closure to it
+, SDL # only for avplay in $bin, adds nontrivial closure to it
, enableGPL ? true # ToDo: some additional default stuff may need GPL
, enableUnfree ? faacSupport
}:
@@ -81,20 +81,18 @@ let
enableParallelBuilding = true;
- outputs = [ "out" "tools" ];
+ outputs = [ "dev" "out" "bin" ];
+ setOutputFlags = false;
# alltools to build smaller tools, incl. aviocat, ismindex, qt-faststart, etc.
buildFlags = "all alltools install-man";
postInstall = ''
- # move avplay to get rid of the SDL dependency in the main output
- mkdir -p "$tools/bin"
- mv "$out/bin/avplay" "$tools/bin"
-
+ moveToOutput bin "$bin"
# alltools target compiles an executable in tools/ for every C
# source file in tools/, so move those to $out
for tool in $(find tools -type f -executable); do
- mv "$tool" "$out/bin/"
+ mv "$tool" "$bin/bin/"
done
'';
diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix
index c3059642382a9..7a905d9c82a64 100644
--- a/pkgs/development/libraries/libcaca/default.nix
+++ b/pkgs/development/libraries/libcaca/default.nix
@@ -11,10 +11,17 @@ stdenv.mkDerivation rec {
sha256 = "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj";
};
+ outputs = [ "dev" "bin" "out" "man" ];
+
configureFlags = "--disable-x11 --disable-imlib2 --disable-doc";
propagatedBuildInputs = [ ncurses zlib ];
+ postInstall = ''
+ mkdir -p $dev/bin
+ mv $bin/bin/caca-config $dev/bin/caca-config
+ '';
+
meta = {
homepage = http://libcaca.zoy.org/;
description = "A graphics library that outputs text instead of pixels";
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index b441719d31cd0..8e3523a27e9fd 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
postInstall = ''
for f in $out/lib/*.la; do
- sed 's|-lltdl|-L${libtool}/lib -lltdl|' -i $f
+ sed 's|-lltdl|-L${libtool.lib}/lib -lltdl|' -i $f
done
'';
diff --git a/pkgs/development/libraries/libdbi-drivers/default.nix b/pkgs/development/libraries/libdbi-drivers/default.nix
index ccc0a19965499..f64174778b205 100644
--- a/pkgs/development/libraries/libdbi-drivers/default.nix
+++ b/pkgs/development/libraries/libdbi-drivers/default.nix
@@ -31,11 +31,11 @@ stdenv.mkDerivation rec {
] ++ optionals (postgresql != null) [
"--with-pgsql"
"--with-pgsql_incdir=${postgresql}/include"
- "--with-pgsql_libdir=${postgresql}/lib"
+ "--with-pgsql_libdir=${postgresql.lib}/lib"
] ++ optionals (sqlite != null) [
"--with-sqlite3"
- "--with-sqlite3-incdir=${sqlite}/include/sqlite"
- "--with-sqlite3-libdir=${sqlite}/lib/sqlite"
+ "--with-sqlite3-incdir=${sqlite.dev}/include/sqlite"
+ "--with-sqlite3-libdir=${sqlite.out}/lib/sqlite"
];
installFlags = [ "DESTDIR=\${out}" ];
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 154277f9cc66e..ad524ffeb0278 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "79cb8e988749794edfb2d777b298d5292eff353bbbb71ed813589e61d2bc2d76";
};
+ outputs = [ "dev" "out" ];
+
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libpthreadstubs libpciaccess ]
++ stdenv.lib.optional stdenv.isLinux udev;
diff --git a/pkgs/development/libraries/libedit/default.nix b/pkgs/development/libraries/libedit/default.nix
index 6e8d85cb88d92..7868c2cfd140f 100644
--- a/pkgs/development/libraries/libedit/default.nix
+++ b/pkgs/development/libraries/libedit/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
postInstall = ''
find $out/lib -type f | grep '\.\(la\|pc\)''$' | xargs sed -i \
- -e 's,-lncurses[a-z]*,-L${ncurses}/lib -lncursesw,g'
+ -e 's,-lncurses[a-z]*,-L${ncurses.out}/lib -lncursesw,g'
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix
index 048902f4fc493..623256bb6b7b2 100644
--- a/pkgs/development/libraries/libelf/default.nix
+++ b/pkgs/development/libraries/libelf/default.nix
@@ -1,6 +1,6 @@
{ fetchurl, stdenv, gettext, glibc }:
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
name = "libelf-0.8.13";
src = fetchurl {
@@ -15,6 +15,11 @@ stdenv.mkDerivation (rec {
nativeBuildInputs = [ glibc ];
};
+ # Libelf's custom NLS macros fail to determine the catalog file extension on
+ # Darwin, so disable NLS for now.
+ # FIXME: Eventually make Gettext a build input on all platforms.
+ configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-nls";
+
buildInputs = [ gettext ];
meta = {
@@ -28,12 +33,3 @@ stdenv.mkDerivation (rec {
maintainers = [ ];
};
}
-
-//
-
-# Libelf's custom NLS macros fail to determine the catalog file extension on
-# Darwin, so disable NLS for now.
-# FIXME: Eventually make Gettext a build input on all platforms.
-(if stdenv.isDarwin
- then { configureFlags = [ "--disable-nls" ]; }
- else { }))
diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix
index bddda9f3eadd2..b0b537ddb175f 100644
--- a/pkgs/development/libraries/libevent/default.nix
+++ b/pkgs/development/libraries/libevent/default.nix
@@ -8,14 +8,14 @@ stdenv.mkDerivation {
url = "mirror://sourceforge/levent/libevent-${version}-stable.tar.gz";
sha256 = "18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki";
};
+ postPatch = "patchShebangs event_rpcgen.py";
+
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ openssl python ] ++ stdenv.lib.optional stdenv.isCygwin findutils;
- patchPhase = ''
- patchShebangs event_rpcgen.py
- '';
-
meta = with stdenv.lib; {
description = "Event notification library";
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index 18387c904f83e..2b6571290dfb9 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
configureFlags = "--disable-ltdl-install "
+ "--with-ltdl-include=${libtool}/include "
- + "--with-ltdl-lib=${libtool}/lib "
+ + "--with-ltdl-lib=${libtool.lib}/lib "
+ "--enable-xpdf";
# Checks need to be run after "make install", otherwise plug-ins are not in
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index 5c981e664cb44..962f716c120a7 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -8,7 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh";
};
- patches = if stdenv.isCygwin then [ ./3.2.1-cygwin.patch ] else null;
+ patches = stdenv.lib.optional stdenv.isCygwin ./3.2.1-cygwin.patch;
+
+ outputs = [ "dev" "out" "doc" ];
buildInputs = stdenv.lib.optional doCheck dejagnu;
@@ -21,9 +23,13 @@ stdenv.mkDerivation rec {
dontStrip = stdenv ? cross; # Don't run the native `strip' when cross-compiling.
- # Install headers in the right place.
- postInstall = ''
- ln -s${if (stdenv.isFreeBSD || stdenv.isOpenBSD || stdenv.isDarwin) then "" else "r"}v "$out/lib/"libffi*/include "$out/include"
+ # Install headers and libs in the right places.
+ postFixup = ''
+ mkdir -p "$dev/"
+ mv "$out/lib/${name}/include" "$dev/include"
+ rmdir "$out/lib/${name}"
+ substituteInPlace "$dev/lib/pkgconfig/libffi.pc" \
+ --replace 'includedir=''${libdir}/libffi-3.2.1' "includedir=$dev"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libgcrypt/1.5.nix b/pkgs/development/libraries/libgcrypt/1.5.nix
index 990e73d0a63ee..d77946e5ec37a 100644
--- a/pkgs/development/libraries/libgcrypt/1.5.nix
+++ b/pkgs/development/libraries/libgcrypt/1.5.nix
@@ -17,9 +17,9 @@ stdenv.mkDerivation rec {
# Make sure libraries are correct for .pc and .la files
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
postInstall = ''
- sed -i 's,#include ,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h
+ sed -i 's,#include ,#include "${libgpgerror.dev}/include/gpg-error.h",g' $out/include/gcrypt.h
'' + stdenv.lib.optionalString enableCapabilities ''
- sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la
+ sed -i 's,\(-lcap\),-L${libcap.out}/lib \1,' $out/lib/libgcrypt.la
'';
doCheck = true;
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 835d6f0f5c29e..f36113090ce4b 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -10,16 +10,19 @@ stdenv.mkDerivation rec {
sha256 = "0959mwfzsxhallxdqlw359xg180ll2skxwyy35qawmfl89cbr7pl";
};
+ outputs = [ "dev" "out" "info" ];
+ outputBin = "dev";
+
buildInputs =
[ libgpgerror ]
++ lib.optional enableCapabilities libcap;
# Make sure libraries are correct for .pc and .la files
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
- postInstall = ''
- sed -i 's,#include ,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h
+ postFixup = ''
+ sed -i 's,#include ,#include "${libgpgerror.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h"
'' + stdenv.lib.optionalString enableCapabilities ''
- sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la
+ sed -i 's,\(-lcap\),-L${libcap.out}/lib \1,' $out/lib/libgcrypt.la
'';
# TODO: figure out why this is even necessary and why the missing dylib only crashes
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 26214bd8801be..9c4f3705b3ed0 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -10,6 +10,9 @@ stdenv.mkDerivation rec {
postPatch = "sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure";
+ outputs = [ "dev" "out" "info" ];
+ outputBin = "dev"; # deps want just the lib, most likely
+
# If architecture-dependent MO files aren't available, they're generated
# during build, so we need gettext for cross-builds.
crossAttrs.buildInputs = [ gettext ];
@@ -25,7 +28,7 @@ stdenv.mkDerivation rec {
doCheck = true;
- meta = {
+ meta = with stdenv.lib; {
homepage = "https://www.gnupg.org/related_software/libgpg-error/index.html";
description = "A small library that defines common error values for all GnuPG components";
@@ -36,9 +39,9 @@ stdenv.mkDerivation rec {
Daemon and possibly more in the future.
'';
- license = stdenv.lib.licenses.lgpl2Plus;
- platforms = stdenv.lib.platforms.all;
- maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+ license = licenses.lgpl2Plus;
+ platforms = platforms.all;
+ maintainers = [ maintainers.fuuzetsu ];
};
}
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index 2e3307b54bf5b..8901fef21fd02 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
configureFlags = "--disable-appliance --disable-daemon";
patches = [ ./libguestfs-syms.patch ];
- NIX_CFLAGS_COMPILE="-I${libxml2}/include/libxml2/";
+ NIX_CFLAGS_COMPILE="-I${libxml2.dev}/include/libxml2/";
postInstall = ''
for bin in $out/bin/*; do
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index c3c6c13c98fc9..b16dc83574149 100644
--- a/pkgs/development/libraries/libidn/default.nix
+++ b/pkgs/development/libraries/libidn/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "1xf4hphhahcjm2xwx147lfpsavjwv9l4c2gf6hx71zxywbz5lpds";
};
+ outputs = [ "dev" "out" "bin" "info" "docdev" ];
+
doCheck = ! stdenv.isDarwin;
buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv;
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 3660a652e79dc..79cf45a8005f5 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, nasm }:
+{ stdenv, fetchurl, nasm, autoreconfHook }:
stdenv.mkDerivation rec {
name = "libjpeg-turbo-1.4.2";
@@ -8,7 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "0gi349hp1x7mb98s4mf66sb2xay2kjjxj9ihrriw0yiy0k9va6sj";
};
- buildInputs = [ nasm ];
+ outputs = [ "dev" "out" "doc" "bin" ];
+
+ buildInputs = [ autoreconfHook nasm ];
+
+ enableParallelBuilding = true;
doCheck = true;
checkTarget = "test";
diff --git a/pkgs/development/libraries/libjpeg/default.nix b/pkgs/development/libraries/libjpeg/default.nix
index bf2ebb27f37f8..025be2009599b 100644
--- a/pkgs/development/libraries/libjpeg/default.nix
+++ b/pkgs/development/libraries/libjpeg/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation {
configureFlags = optional static "--enable-static --disable-shared";
+ outputs = [ "dev" "out" "man" "bin" ];
+
meta = {
homepage = http://www.ijg.org/;
description = "A library that implements the JPEG image file format";
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index f910741c446e4..8baf4a77c362e 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0abv0h9c3kbw4bq1b9270sg189jcjj3x3wa91bj836ynwg9m34wl";
};
+ outputs = [ "dev" "out" "doc" ];
+
preConfigure = ''
patchShebangs .
'';
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index 3ef4ba77c31c8..c681879453347 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "07j1p21rvbrrfpxngk8xswzkmjkh94bp1971xfjh1p0ja709qwzj";
};
- outputs = [ "out" "info" ];
+ outputs = [ "dev" "out" "docdev" ];
buildInputs = [ libgcrypt ];
diff --git a/pkgs/development/libraries/libmng/default.nix b/pkgs/development/libraries/libmng/default.nix
index 234f56863c099..b97ee6a4ced0b 100644
--- a/pkgs/development/libraries/libmng/default.nix
+++ b/pkgs/development/libraries/libmng/default.nix
@@ -8,13 +8,16 @@ stdenv.mkDerivation rec {
sha256 = "0l5wa3b9rr4zl49zbbjpapqyccqjwzkzw1ph3p4pk9p5h73h9317";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputMan= "docdev";
+
propagatedBuildInputs = [ zlib libpng libjpeg lcms2 ];
- meta = {
+ meta = with stdenv.lib; {
description = "Reference library for reading, displaying, writing and examining Multiple-Image Network Graphics";
homepage = http://www.libmng.com;
- license = stdenv.lib.licenses.zlib;
- maintainers = with stdenv.lib.maintainers; [ marcweber urkud ];
- hydraPlatforms = stdenv.lib.platforms.linux;
+ license = licenses.zlib;
+ maintainers = with maintainers; [ marcweber urkud ];
+ hydraPlatforms = platforms.linux;
};
}
diff --git a/pkgs/development/libraries/libmpc/default.nix b/pkgs/development/libraries/libmpc/default.nix
index 1e8ea0ffa1380..2a4600f52045c 100644
--- a/pkgs/development/libraries/libmpc/default.nix
+++ b/pkgs/development/libraries/libmpc/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
buildInputs = [ gmp mpfr ];
- CFLAGS = "-I${gmp}/include";
+ CFLAGS = "-I${gmp.dev}/include";
doCheck = true;
diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix
index 13b4050193367..671169b9ab3a9 100644
--- a/pkgs/development/libraries/libmtp/default.nix
+++ b/pkgs/development/libraries/libmtp/default.nix
@@ -3,17 +3,19 @@
stdenv.mkDerivation rec {
name = "libmtp-1.1.9";
- propagatedBuildInputs = [ libusb1 ];
- buildInputs = [ pkgconfig ];
-
- # tried to install files to /lib/udev, hopefully OK
- configureFlags = [ "--with-udev=$$out/lib/udev" ];
-
src = fetchurl {
url = "mirror://sourceforge/libmtp/${name}.tar.gz";
sha256 = "12dinqic0ljnhrwx3rc61jc7q24ybr0mckc2ya5kh1s1np0d7w93";
};
+ outputs = [ "dev" "bin" "out" ];
+
+ propagatedBuildInputs = [ libusb1 ];
+ buildInputs = [ pkgconfig ];
+
+ # tried to install files to /lib/udev, hopefully OK
+ configureFlags = [ "--with-udev=$$bin/lib/udev" ];
+
meta = {
homepage = http://libmtp.sourceforge.net;
description = "An implementation of Microsoft's Media Transfer Protocol";
diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix
index 479a187cf87c9..f62fb400199f0 100644
--- a/pkgs/development/libraries/liboauth/default.nix
+++ b/pkgs/development/libraries/liboauth/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
postInstall = ''
substituteInPlace $out/lib/liboauth.la \
- --replace "-lnss3" "-L${nss}/lib -lnss3"
+ --replace "-lnss3" "-L${nss.out}/lib -lnss3"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libogg/default.nix b/pkgs/development/libraries/libogg/default.nix
index 407e218065bb2..1aa4b8ad04532 100644
--- a/pkgs/development/libraries/libogg/default.nix
+++ b/pkgs/development/libraries/libogg/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "16z74q422jmprhyvy7c9x909li8cqzmvzyr8cgbm52xcsp6pqs1z";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" "doc" ];
meta = with stdenv.lib; {
homepage = http://xiph.org/ogg/;
diff --git a/pkgs/development/libraries/liboil/default.nix b/pkgs/development/libraries/liboil/default.nix
index 43b1f34709347..754e308ac15ba 100644
--- a/pkgs/development/libraries/liboil/default.nix
+++ b/pkgs/development/libraries/liboil/default.nix
@@ -8,10 +8,13 @@ stdenv.mkDerivation rec {
sha256 = "0sgwic99hxlb1av8cm0albzh8myb7r3lpcwxfm606l0bkc3h4pqh";
};
- buildInputs = [ pkgconfig ];
-
patches = [ ./x86_64-cpuid.patch ];
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev"; # oil-bugreport
+
+ nativeBuildInputs = [ pkgconfig ];
+
# fix "argb_paint_i386.c:53:Incorrect register `%rax' used with `l' suffix"
# errors
configureFlags = stdenv.lib.optional stdenv.isDarwin "--build=x86_64";
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
index 460aaa2b0eca0..b8951e66c8bdb 100644
--- a/pkgs/development/libraries/libopus/default.nix
+++ b/pkgs/development/libraries/libopus/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
sha256 = "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr";
};
+ outputs = [ "dev" "out" ];
+
configureFlags = stdenv.lib.optional fixedPoint "--enable-fixed-point"
++ stdenv.lib.optional withCustomModes "--enable-custom-modes";
diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix
index 7ae3d0e1d6827..01e90cb191324 100644
--- a/pkgs/development/libraries/libpng/12.nix
+++ b/pkgs/development/libraries/libpng/12.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "0zkra0b9lrpk2axassdgkqinmc2ba6b473sm52xbpyknaqs2fljy";
};
+ outputs = [ "dev" "out" "man" ];
+
propagatedBuildInputs = [ zlib ];
passthru = { inherit zlib; };
@@ -21,6 +23,8 @@ stdenv.mkDerivation rec {
configureFlags = "--enable-static";
+ postInstall = ''mv "$out/bin" "$dev/bin"'';
+
meta = with stdenv.lib; {
description = "The official reference implementation for the PNG file format";
homepage = http://www.libpng.org/pub/png/libpng.html;
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index 4e18dcb680f93..6faed97aaee28 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -18,13 +18,18 @@ in stdenv.mkDerivation rec {
url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz";
inherit sha256;
};
-
postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1";
+ outputs = [ "dev" "out" "man" ];
+
propagatedBuildInputs = [ zlib ];
+ preConfigure = "export bin=$dev";
+
doCheck = true;
+ postInstall = ''mv "$out/bin" "$dev/bin"'';
+
passthru = { inherit zlib; };
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix
index 7085236feb52c..0f08085063983 100644
--- a/pkgs/development/libraries/libproxy/default.nix
+++ b/pkgs/development/libraries/libproxy/default.nix
@@ -7,6 +7,8 @@ stdenv.mkDerivation rec {
sha256 = "0jw6454gxjykmbnbh544axi8hzz9gmm4jz1y5gw1hdqnakg36gyw";
};
+ outputs = [ "dev" "out" ]; # to deal with propagatedBuildInputs
+
nativeBuildInputs = [ pkgconfig cmake ];
propagatedBuildInputs = [ zlib ]
# now some optional deps, but many more are possible
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 9699d67d7b87a..82768cd350dd9 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "101ppan2q1h4pyp2zbn9b8sdwy2c7fk9rp91yykxz3afrvzbymq8";
};
+ outputs = [ "dev" "out" "docdev" ];
+
preBuild = ''
patchShebangs .
'';
diff --git a/pkgs/development/libraries/libraw/default.nix b/pkgs/development/libraries/libraw/default.nix
index 3d564fc00f8be..031886d345168 100644
--- a/pkgs/development/libraries/libraw/default.nix
+++ b/pkgs/development/libraries/libraw/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "043kckxjqanw8dl3m9f6kvsf0l20ywxmgxd1xb0slj6m8l4w4hz6";
};
- buildInputs = [ lcms2 jasper ] ;
+ buildInputs = [ lcms2 jasper ];
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index ea1910733e7d2..0768a21bf5436 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
NIX_CFLAGS_COMPILE
- = stdenv.lib.optionalString stdenv.isDarwin "-I${cairo}/include/cairo";
+ = stdenv.lib.optionalString stdenv.isDarwin "-I${cairo.dev}/include/cairo";
# It wants to add loaders and update the loaders.cache in gdk-pixbuf
# Patching the Makefiles to it creates rsvg specific loaders and the
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
# Merge gdkpixbuf and librsvg loaders
postInstall = ''
mv $GDK_PIXBUF/loaders.cache $GDK_PIXBUF/loaders.cache.tmp
- cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache.tmp > $GDK_PIXBUF/loaders.cache
+ cat ${gdk_pixbuf.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache.tmp > $GDK_PIXBUF/loaders.cache
rm $GDK_PIXBUF/loaders.cache.tmp
'';
}
diff --git a/pkgs/development/libraries/libsamplerate/default.nix b/pkgs/development/libraries/libsamplerate/default.nix
index 481d82c0c9ad3..f0ff549c71686 100644
--- a/pkgs/development/libraries/libsamplerate/default.nix
+++ b/pkgs/development/libraries/libsamplerate/default.nix
@@ -1,6 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
-, fftw, libsndfile
-}:
+{ stdenv, fetchurl, pkgconfig, libsndfile }:
stdenv.mkDerivation rec {
name = "libsamplerate-0.1.8";
@@ -11,12 +9,14 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ fftw libsndfile ];
+ buildInputs = [ libsndfile ];
# maybe interesting configure flags:
#--disable-fftw disable usage of FFTW
#--disable-cpu-clip disable tricky cpu specific clipper
+ outputs = [ "dev" "bin" "out" ];
+
postConfigure = stdenv.lib.optionalString stdenv.isDarwin
''
# need headers from the Carbon.framework in /System/Library/Frameworks to
diff --git a/pkgs/development/libraries/libsndfile/default.nix b/pkgs/development/libraries/libsndfile/default.nix
index 48a2999e7af9d..547c7647b7a8d 100644
--- a/pkgs/development/libraries/libsndfile/default.nix
+++ b/pkgs/development/libraries/libsndfile/default.nix
@@ -3,16 +3,20 @@
}:
stdenv.mkDerivation rec {
- name = "libsndfile-1.0.25";
+ name = "libsndfile-1.0.26";
src = fetchurl {
url = "http://www.mega-nerd.com/libsndfile/files/${name}.tar.gz";
- sha256 = "10j8mbb65xkyl0kfy0hpzpmrp0jkr12c7mfycqipxgka6ayns0ar";
+ sha256 = "14jhla289cj45946h0hq2an0a9g4wkwb3v4571bla6ixfvn20rfd";
};
buildInputs = [ pkgconfig flac libogg libvorbis ]
++ stdenv.lib.optional stdenv.isDarwin Carbon;
+ enableParallelBuilding = true;
+
+ outputs = [ "dev" "out" "bin" "doc" ];
+
# need headers from the Carbon.framework in /System/Library/Frameworks to
# compile this on darwin -- not sure how to handle
preConfigure = stdenv.lib.optionalString stdenv.isDarwin
diff --git a/pkgs/development/libraries/libsodium/default.nix b/pkgs/development/libraries/libsodium/default.nix
index 1490e15c361f3..e8b3bc1cebc9b 100644
--- a/pkgs/development/libraries/libsodium/default.nix
+++ b/pkgs/development/libraries/libsodium/default.nix
@@ -8,7 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "1gn45g956lyz8l6iq187yc6l627vyivyp8qc5dkr6dnhdnlqddvi";
};
- NIX_LDFLAGS = stdenv.lib.optionalString stdenv.cc.isGNU "-lssp";
+ outputs = [ "dev" "out" ];
+
+ enableParallelBuilding = true;
doCheck = true;
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index 3d10e6135055c..aa84c507c97a3 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -18,11 +18,13 @@ stdenv.mkDerivation {
patchShebangs libsoup/
'';
+ outputs = [ "dev" "out" ];
+
buildInputs = libintlOrEmpty ++ [ intltool python sqlite ];
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libxml2 gobjectIntrospection ]
++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring ];
- passthru.propagatedUserEnvPackages = [ glib_networking ];
+ passthru.propagatedUserEnvPackages = [ glib_networking.out ];
# glib_networking is a runtime dependency, not a compile-time dependency
configureFlags = "--disable-tls-check --enable-vala=no" + stdenv.lib.optionalString (!gnomeSupport) " --without-gnome";
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index 17538a6c3803a..adfd11d9b197c 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
sed -i 's,nacl/,sodium/,g' ./include/libssh/curve25519.h src/curve25519.c
'';
+ outputs = [ "dev" "out" ];
+
buildInputs = [ zlib openssl libsodium ];
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix
index 3268178433516..855e57c0550ae 100644
--- a/pkgs/development/libraries/libssh2/default.nix
+++ b/pkgs/development/libraries/libssh2/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "116mh112w48vv9k3f15ggp5kxw5sj4b88dzb5j69llsh7ba1ymp4";
};
+ outputs = [ "dev" "out" "docdev" ];
+
buildInputs = [ openssl zlib ];
crossAttrs = {
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index 1ae26c48fc21a..5ac8cc94d044b 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "1j8iixynchziw1y39lnibyl5h81m4p78w3i4f28q2vgwjgf801x4";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
buildInputs = [ perl texinfo ];
doCheck = true;
diff --git a/pkgs/development/libraries/libtheora/default.nix b/pkgs/development/libraries/libtheora/default.nix
index da590adae0623..129dface2d938 100644
--- a/pkgs/development/libraries/libtheora/default.nix
+++ b/pkgs/development/libraries/libtheora/default.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "0swiaj8987n995rc7hw0asvpwhhzpjiws8kr3s6r44bqqib2k5a0";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputDoc = "docdev";
+
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ libogg libvorbis ];
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index 2c559d221abe9..a506279c2a4af 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
sha256 = "136nf1rj9dp5jgv1p7z4dk0xy3wki1w0vfjbk82f645m0w4samsd";
};
- outputs = [ "out" "doc" "man" ];
+ outputs = [ "dev" "out" "bin" "doc" ];
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libtoxcore/new-api/default.nix b/pkgs/development/libraries/libtoxcore/new-api/default.nix
index 9702fbd02da30..eff8e2449a13a 100644
--- a/pkgs/development/libraries/libtoxcore/new-api/default.nix
+++ b/pkgs/development/libraries/libtoxcore/new-api/default.nix
@@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
- "--with-libsodium-headers=${libsodium}/include"
- "--with-libsodium-libs=${libsodium}/lib"
+ "--with-libsodium-headers=${libsodium.dev}/include"
+ "--with-libsodium-libs=${libsodium.out}/lib"
"--enable-ntox"
"--enable-daemon"
];
diff --git a/pkgs/development/libraries/libtoxcore/old-api/default.nix b/pkgs/development/libraries/libtoxcore/old-api/default.nix
index 471fafdad38b0..2fb5e93eab954 100644
--- a/pkgs/development/libraries/libtoxcore/old-api/default.nix
+++ b/pkgs/development/libraries/libtoxcore/old-api/default.nix
@@ -27,8 +27,8 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
- "--with-libsodium-headers=${libsodium}/include"
- "--with-libsodium-libs=${libsodium}/lib"
+ "--with-libsodium-headers=${libsodium.dev}/include"
+ "--with-libsodium-libs=${libsodium.out}/lib"
"--enable-ntox"
"--enable-daemon"
];
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 3fc8b50855901..da09e2fcbe25d 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
sed -i -e '/LIBLZMA/s:-lzma:-llzma:' configure
'';
+ outputs = [ "dev" "out" ];
+
propagatedBuildInputs = [ xz ];
NIX_CFLAGS_COMPILE = if stdenv.system == "x86_64-linux" then "-fPIC" else "";
@@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
postInstall = ''
find $out -name \*.la | while read file; do
- sed -i 's,-llzma,${xz}/lib/liblzma.la,' $file
+ sed -i 's,-llzma,${xz.out}/lib/liblzma.la,' $file
done
'';
diff --git a/pkgs/development/libraries/libusb/default.nix b/pkgs/development/libraries/libusb/default.nix
index 7aec64d596fc8..b1872779b707f 100644
--- a/pkgs/development/libraries/libusb/default.nix
+++ b/pkgs/development/libraries/libusb/default.nix
@@ -3,6 +3,9 @@
stdenv.mkDerivation {
name = "libusb-compat-0.1.5";
+ outputs = [ "dev" "out" ]; # get rid of propagating systemd closure
+ outputBin = "dev";
+
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ libusb1 ];
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 75d6bdb4cc6a8..fe920bba411fd 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, udev ? null, libobjc, IOKit }:
+{ stdenv, fetchurl, pkgconfig, libudev ? null, libobjc, IOKit }:
stdenv.mkDerivation rec {
name = "libusb-1.0.19";
@@ -8,15 +8,17 @@ stdenv.mkDerivation rec {
sha256 = "0h38p9rxfpg9vkrbyb120i1diq57qcln82h5fr7hvy82c20jql3c";
};
+ outputs = [ "dev" "out" ]; # get rid of propagating systemd closure
+
buildInputs = [ pkgconfig ];
propagatedBuildInputs =
- stdenv.lib.optional stdenv.isLinux udev ++
+ stdenv.lib.optional stdenv.isLinux libudev ++
stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
preFixup = stdenv.lib.optionalString stdenv.isLinux ''
- sed 's,-ludev,-L${udev}/lib -ludev,' -i $out/lib/libusb-1.0.la
+ sed 's,-ludev,-L${libudev.out}/lib -ludev,' -i $out/lib/libusb-1.0.la
'';
meta = {
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index 557d0f591553c..9e22aa1d37cf6 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -1,10 +1,9 @@
{ stdenv, lib, fetchurl, libX11, pkgconfig, libXext, libdrm, libXfixes, wayland, libffi
-, mesa_noglu ? null
+, mesa_noglu
+, minimal ? true, libva
}:
-let
- withMesa = mesa_noglu != null;
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
name = "libva-1.6.2";
src = fetchurl {
@@ -12,9 +11,15 @@ in stdenv.mkDerivation rec {
sha256 = "1l4bij21shqbfllbxicmqgmay4v509v9hpxyyia9wm7gvsfg05y4";
};
- buildInputs = [ libX11 libXext pkgconfig libdrm libXfixes wayland libffi mesa_noglu ];
+ outputs = [ "dev" "out" "bin" ];
- configureFlags = lib.optionals withMesa [
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ libdrm ]
+ ++ lib.optionals (!minimal) [ libva libX11 libXext libXfixes wayland libffi mesa_noglu ];
+ # TODO: share libs between minimal and !minimal - perhaps just symlink them
+
+ configureFlags = lib.optionals (!minimal) [
"--with-drivers-path=${mesa_noglu.driverLink}/lib/dri"
"--enable-glx"
];
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 446f2917fe710..3337a89dd1cec 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "857a01932609225b9a3a5bf222b85e39b55c08787d0ad427dbd9ec033d58d736";
};
+ outputs = [ "dev" "out" ];
+
buildInputs = with xorg; [ pkgconfig dri2proto libXext ];
propagatedBuildInputs = [ xorg.libX11 ];
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 875ef26933bea..1d1945af31944 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, fetchpatch
, pkgconfig, makeWrapper
, libxml2, gnutls, devicemapper, perl, python
-, iproute, iptables, readline, lvm2, utillinux, udev, libpciaccess, gettext
+, iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext
, libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng
, dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
, curl, libiconv, gmp, xen
@@ -24,14 +24,14 @@ stdenv.mkDerivation rec {
gettext libtasn1 libgcrypt yajl
libxslt xhtml1 perlPackages.XMLXPath curl libpcap
] ++ stdenv.lib.optionals stdenv.isLinux [
- libpciaccess devicemapper lvm2 utillinux udev libcap_ng
+ libpciaccess devicemapper lvm2 utillinux systemd.udev.lib libcap_ng
libnl numad numactl xen
] ++ stdenv.lib.optionals stdenv.isDarwin [
libiconv gmp
];
preConfigure = stdenv.lib.optionalString stdenv.isLinux ''
- PATH=${iproute}/sbin:${iptables}/sbin:${ebtables}/sbin:${lvm2}/sbin:${udev}/sbin:$PATH
+ PATH=${iproute}/sbin:${iptables}/sbin:${ebtables}/sbin:${lvm2}/sbin:${systemd.udev.bin}/bin:$PATH
substituteInPlace configure --replace 'as_dummy="/bin:/usr/bin:/usr/sbin"' 'as_dummy="${numad}/bin"'
'' + ''
PATH=${dnsmasq}/bin:$PATH
diff --git a/pkgs/development/libraries/libvorbis/default.nix b/pkgs/development/libraries/libvorbis/default.nix
index 68f1fe7208569..0022799c88fe4 100644
--- a/pkgs/development/libraries/libvorbis/default.nix
+++ b/pkgs/development/libraries/libvorbis/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "1lg1n3a6r41492r7in0fpvzc7909mc5ir9z0gd3qh2pz4yalmyal";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" "doc" ];
+
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ libogg ];
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
index 6a47566707860..5c593dd1f75ee 100644
--- a/pkgs/development/libraries/libvpx/default.nix
+++ b/pkgs/development/libraries/libvpx/default.nix
@@ -72,6 +72,9 @@ stdenv.mkDerivation rec {
patchPhase = ''patchShebangs .'';
+ outputs = [ "dev" "out" "bin" ];
+ setOutputFlags = false;
+
configureFlags = [
(enableFeature (vp8EncoderSupport || vp8DecoderSupport) "vp8")
(enableFeature vp8EncoderSupport "vp8-encoder")
@@ -146,6 +149,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ postInstall = ''moveToOutput bin "$bin" '';
+
crossAttrs = let
isCygwin = stdenv.cross.libc == "msvcrt";
isDarwin = stdenv.cross.libc == "libSystem";
diff --git a/pkgs/development/libraries/libvpx/git.nix b/pkgs/development/libraries/libvpx/git.nix
index 31b1c197e9ff0..064fb807a214e 100644
--- a/pkgs/development/libraries/libvpx/git.nix
+++ b/pkgs/development/libraries/libvpx/git.nix
@@ -73,6 +73,9 @@ stdenv.mkDerivation rec {
patchPhase = ''patchShebangs .'';
+ outputs = [ "dev" "out" "bin" ];
+ setOutputFlags = false;
+
configureFlags = [
(enableFeature (vp8EncoderSupport || vp8DecoderSupport) "vp8")
(enableFeature vp8EncoderSupport "vp8-encoder")
@@ -147,6 +150,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ postInstall = ''moveToOutput bin "$bin" '';
+
crossAttrs = let
isCygwin = stdenv.cross.libc == "msvcrt";
isDarwin = stdenv.cross.libc == "libSystem";
diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index 6c6c0812c43c3..a763af96667b8 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation {
sha256 = "d48ac9c7f50c0d563097f63d07bcc83744c7d92a1b4ef65e5faeab32b5ccb723";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
patches = [ ./install_introspection_to_prefix.patch ];
buildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/libwnck/default.nix b/pkgs/development/libraries/libwnck/default.nix
index 6a4479bdda38c..bb5258120494d 100644
--- a/pkgs/development/libraries/libwnck/default.nix
+++ b/pkgs/development/libraries/libwnck/default.nix
@@ -12,6 +12,9 @@ stdenv.mkDerivation rec {
sha256 = "17isfjvrzgj5znld2a7zsk9vd39q9wnsysnw5jr8iz410z935xw3";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
buildInputs = [ pkgconfig gtk intltool xorg.libX11 xorg.libXres ];
# ?another optional: startup-notification
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
index ea74bea152c2e..2bf7bbaabb319 100644
--- a/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "176ii5dn2wh74q48sd8ac37ljlvgvp5f506glr96z6ibfhj7igch";
};
+ outputs = [ "dev" "out" ];
+
buildInputs = [ pkgconfig yacc flex xkeyboard_config libxcb ];
configureFlags = ''
diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix
index d69276a070bba..f074b31bb6820 100644
--- a/pkgs/development/libraries/libxklavier/default.nix
+++ b/pkgs/development/libraries/libxklavier/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
sha256 = "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b";
};
+ outputs = [ "dev" "out" "docdev" ];
+
# TODO: enable xmodmap support, needs xmodmap DB
propagatedBuildInputs = with xorg; [ libX11 libXi xkeyboard_config libxml2 libICE glib libxkbfile isocodes ];
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index cac8f10d37aa3..f7e175373e120 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -1,10 +1,6 @@
-{ stdenv, fetchurl, zlib, xz, python ? null, pythonSupport ? true, findXMLCatalogs }:
+{ stdenv, fetchurl, zlib, xz, python, findXMLCatalogs }:
-assert pythonSupport -> python != null;
-
-#TODO: share most stuff between python and non-python builds, perhaps via multiple-output
-
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
name = "libxml2-${version}";
version = "2.9.3";
@@ -13,9 +9,10 @@ stdenv.mkDerivation (rec {
sha256 = "0bd17g6znn2r98gzpjppsqjg33iraky4px923j3k8kdl8qgy7sad";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" "bin" "doc" "py" ];
+ propagatedBuildOutputs = "out bin py";
- buildInputs = stdenv.lib.optional pythonSupport python
+ buildInputs = [ python ]
# Libxml2 has an optional dependency on liblzma. However, on impure
# platforms, it may end up using that from /usr/lib, and thus lack a
# RUNPATH for that, leading to undefined references for its users.
@@ -23,10 +20,21 @@ stdenv.mkDerivation (rec {
propagatedBuildInputs = [ zlib findXMLCatalogs ];
- passthru = { inherit pythonSupport version; };
+ configureFlags = "--with-python=${python}";
enableParallelBuilding = true;
+ preInstall = ''substituteInPlace python/libxml2mod.la --replace "${python}" "$py"'';
+ installFlags = ''pythondir="$(py)/lib/${python.libPrefix}/site-packages"'';
+
+ postFixup = ''
+ moveToOutput bin/xml2-config "$dev"
+ moveToOutput lib/xml2Conf.sh "$dev"
+ moveToOutput share/man/man1 "$bin"
+ '';
+
+ passthru = { inherit version; pythonSupport = true; };
+
meta = {
homepage = http://xmlsoft.org/;
description = "An XML parsing library for C";
@@ -34,14 +42,4 @@ stdenv.mkDerivation (rec {
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
-
-} // stdenv.lib.optionalAttrs pythonSupport {
- configureFlags = "--with-python=${python}";
-
- # this is a pair of ugly hacks to make python stuff install into the right place
- preInstall = ''substituteInPlace python/libxml2mod.la --replace "${python}" "$out"'';
- installFlags = ''pythondir="$(out)/lib/${python.libPrefix}/site-packages"'';
-
-} // stdenv.lib.optionalAttrs (!pythonSupport) {
- configureFlags = "--with-python=no"; # otherwise build impurity bites us
-})
+}
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index 9aa70ea047169..0eda42879ece8 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -17,14 +17,13 @@ stdenv.mkDerivation rec {
})
];
- outputs = [ "out" "doc" ];
+ outputs = [ "dev" "out" "bin" "doc" ];
buildInputs = [ libxml2 ];
propagatedBuildInputs = [ findXMLCatalogs ];
configureFlags = [
- "--with-libxml-prefix=${libxml2}"
"--without-python"
"--without-crypto"
"--without-debug"
@@ -32,11 +31,17 @@ stdenv.mkDerivation rec {
"--without-debugger"
];
- meta = {
+ postFixup = ''
+ moveToOutput bin/xslt-config "$dev"
+ moveToOutput lib/xsltConf.sh "$dev"
+ moveToOutput share/man/man1 "$bin"
+ '';
+
+ meta = with stdenv.lib; {
homepage = http://xmlsoft.org/XSLT/;
description = "A C library and tools to do XSL transformations";
license = "bsd";
- platforms = stdenv.lib.platforms.unix;
- maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.eelco ];
};
}
diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix
index de82bd0243e9e..f535b19bd0eba 100644
--- a/pkgs/development/libraries/mailcore2/default.nix
+++ b/pkgs/development/libraries/mailcore2/default.nix
@@ -23,9 +23,10 @@ stdenv.mkDerivation rec {
substituteInPlace CMakeLists.txt \
--replace "tidy/tidy.h" "tidy.h" \
--replace "/usr/include/tidy" "${libtidy}/include" \
- --replace "/usr/include/libxml2" "${libxml2}/include/libxml2"
+ --replace "/usr/include/libxml2" "${libxml2.dev}/include/libxml2"
substituteInPlace src/core/basetypes/MCHTMLCleaner.cpp \
--replace buffio.h tidybuffio.h
+>>>>>>> master
'';
cmakeFlags = [
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 1c2257998e863..ad6bf8ba31902 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, flex, bison, autoreconfHook, substituteAll
-, python, libxml2Python, file, expat, makedepend, pythonPackages
-, libdrm, xorg, wayland, udev, llvmPackages, libffi, libomxil-bellagio
+{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, autoreconfHook, substituteAll
+, file, expat, libdrm, xorg, wayland, libudev, llvmPackages, libffi, libomxil-bellagio
, libvdpau, libelf, libva
, grsecEnabled
, enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt
@@ -21,12 +20,13 @@ else
- libOSMesa is in $osmesa (~4 MB)
*/
+with { inherit (stdenv.lib) optional optionalString; };
+
let
version = "11.1.2";
# this is the default search path for DRI drivers
- driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
+ driverLink = "/run/opengl-driver" + optionalString stdenv.isi686 "-32";
in
-with { inherit (stdenv.lib) optional optionals optionalString; };
stdenv.mkDerivation {
name = "mesa-noglu-${version}";
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
] ++ optional stdenv.isLinux
(substituteAll {
src = ./dlopen-absolute-paths.diff;
- inherit udev;
+ libudev = libudev.out;
});
postPatch = ''
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
--replace _EGL_DRIVER_SEARCH_DIR '"${driverLink}"'
'';
- outputs = ["out" "drivers" "osmesa"];
+ outputs = [ "dev" "out" "drivers" "osmesa" ];
configureFlags = [
"--sysconfdir=/etc"
@@ -103,17 +103,17 @@ stdenv.mkDerivation {
] ++ optional enableTextureFloats "--enable-texture-float"
++ optional grsecEnabled "--enable-glx-rts"; # slight performance degradation, enable only for grsec
- nativeBuildInputs = [ pkgconfig python makedepend file flex bison pythonPackages.Mako ];
+ nativeBuildInputs = [ pkgconfig file ];
propagatedBuildInputs = with xorg; [ libXdamage libXxf86vm ]
- ++ optionals stdenv.isLinux [ libdrm ];
+ ++ optional stdenv.isLinux libdrm;
buildInputs = with xorg; [
- autoreconfHook intltool expat libxml2Python llvmPackages.llvm
+ autoreconfHook intltool expat llvmPackages.llvm
glproto dri2proto dri3proto presentproto
libX11 libXext libxcb libXt libXfixes libxshmfence
libffi wayland libvdpau libelf libXvMC /* libomxil-bellagio libva */
- ] ++ optional stdenv.isLinux udev;
+ ] ++ optional stdenv.isLinux libudev;
enableParallelBuilding = true;
doCheck = false;
@@ -133,41 +133,42 @@ stdenv.mkDerivation {
$out/lib/vdpau \
$out/lib/libxatracker*
- mkdir -p {$osmesa,$drivers}/lib/pkgconfig
+ mkdir -p {$osmesa,$drivers}/lib/
mv -t $osmesa/lib/ \
$out/lib/libOSMesa*
- mv -t $drivers/lib/pkgconfig/ \
- $out/lib/pkgconfig/xatracker.pc
-
- mv -t $osmesa/lib/pkgconfig/ \
- $out/lib/pkgconfig/osmesa.pc
-
'' + /* now fix references in .la files */ ''
sed "/^libdir=/s,$out,$osmesa," -i \
$osmesa/lib/libOSMesa*.la
- '' + /* work around bug #529, but maybe $drivers should also be patchelf-ed */ ''
- find $drivers/ $osmesa/ -type f -executable -print0 | xargs -0 strip -S || true
+ '' + /* set the default search path for DRI drivers; used e.g. by X server */ ''
+ substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}"
+ '' + /* move vdpau drivers to $drivers/lib, so they are found */ ''
+ mv "$drivers"/lib/vdpau/* "$drivers"/lib/ && rmdir "$drivers"/lib/vdpau
+ '';
+ #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM */
- '' + /* add RPATH so the drivers can find the moved libgallium and libdricore9 */ ''
+ postFixup =
+ # add RPATH so the drivers can find the moved libgallium and libdricore9
+ # moved here to avoid problems with stripping patchelfed files
+ ''
for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do
if [[ ! -L "$lib" ]]; then
patchelf --set-rpath "$(patchelf --print-rpath $lib):$drivers/lib" "$lib"
fi
done
- '' + /* set the default search path for DRI drivers; used e.g. by X server */ ''
- substituteInPlace "$out/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}"
'';
- #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM
+ # ToDo + /* check $out doesn't depend on llvm */ ''
+ # builder failures are ignored for some reason
+ # grep -qv '${llvmPackages.llvm}' -R "$out"
passthru = { inherit libdrm version driverLink; };
- meta = {
+ meta = with stdenv.lib; {
description = "An open source implementation of OpenGL";
homepage = http://www.mesa3d.org/;
- license = "bsd";
- platforms = stdenv.lib.platforms.mesaPlatforms;
- maintainers = with stdenv.lib.maintainers; [ eduarrrd simons vcunat ];
+ license = licenses.mit; # X11 variant, in most files
+ platforms = platforms.mesaPlatforms;
+ maintainers = with maintainers; [ eduarrrd simons vcunat ];
};
}
diff --git a/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff b/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff
index a4bb6a72b1381..9a52265722391 100644
--- a/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff
+++ b/pkgs/development/libraries/mesa/dlopen-absolute-paths.diff
@@ -16,7 +16,7 @@ index 4fdf3c2..69ea22d 100644
do {
for (version = 1; version >= 0; version--) {
- snprintf(name, sizeof(name), "libudev.so.%d", version);
-+ snprintf(name, sizeof(name), "@udev@/lib/libudev.so.%d", version);
++ snprintf(name, sizeof(name), "@libudev@/lib/libudev.so.%d", version);
udev_handle = dlopen(name, flags);
if (udev_handle)
return udev_handle;
diff --git a/pkgs/development/libraries/mpfr/default.nix b/pkgs/development/libraries/mpfr/default.nix
index 581f956b0afd6..8a964af01c80a 100644
--- a/pkgs/development/libraries/mpfr/default.nix
+++ b/pkgs/development/libraries/mpfr/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
patches = [ ./upstream.patch ];
+ outputs = [ "dev" "out" "doc" ];
+
# mpfr.h requires gmp.h
propagatedBuildInputs = [ gmp ];
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 8817e2c5523ba..edd2636059609 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
# gcc-5.patch should be removed after 5.9
patches = [ ./clang.patch ./gcc-5.patch ];
+ outputs = [ "dev" "out" "man" ];
+ setOutputFlags = false; # some aren't supported
+
configureFlags = [
"--with-shared"
"--without-debug"
@@ -33,9 +36,15 @@ stdenv.mkDerivation rec {
buildInputs = lib.optional (mouseSupport && stdenv.isLinux) gpm;
preConfigure = ''
- configureFlagsArray+=("--includedir=$out/include")
- export PKG_CONFIG_LIBDIR="$out/lib/pkgconfig"
+ export PKG_CONFIG_LIBDIR="$dev/lib/pkgconfig"
mkdir -p "$PKG_CONFIG_LIBDIR"
+ configureFlagsArray+=(
+ "--libdir=$out/lib"
+ "--includedir=$dev/include"
+ "--bindir=$dev/bin"
+ "--mandir=$man/share/man"
+ "--with-pkg-config-libdir=$PKG_CONFIG_LIBDIR"
+ )
''
+ lib.optionalString stdenv.isSunOS ''
sed -i -e '/-D__EXTENSIONS__/ s/-D_XOPEN_SOURCE=\$cf_XOPEN_SOURCE//' \
@@ -55,44 +64,52 @@ stdenv.mkDerivation rec {
# When building a wide-character (Unicode) build, create backward
# compatibility links from the the "normal" libraries to the
# wide-character libraries (e.g. libncurses.so to libncursesw.so).
- postInstall = ''
+ postFixup = ''
# Determine what suffixes our libraries have
suffix="$(awk -F': ' 'f{print $3; f=0} /default library suffix/{f=1}' config.log)"
- libs="$(ls $out/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")"
+ libs="$(ls $dev/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")"
suffixes="$(echo "$suffix" | awk '{for (i=1; i < length($0); i++) {x=substr($0, i+1, length($0)-i); print x}}')"
# Get the path to the config util
- cfg=$(basename $out/bin/ncurses*-config)
+ cfg=$(basename $dev/bin/ncurses*-config)
# symlink the full suffixed include directory
- ln -svf . $out/include/ncurses$suffix
+ ln -svf . $dev/include/ncurses$suffix
for newsuffix in $suffixes ""; do
# Create a non-abi versioned config util links
- ln -svf $cfg $out/bin/ncurses$newsuffix-config
+ ln -svf $cfg $dev/bin/ncurses$newsuffix-config
# Allow for end users who #include
- ln -svf . $out/include/ncurses$newsuffix
+ ln -svf . $dev/include/ncurses$newsuffix
- for lib in $libs; do
+ for library in $libs; do
for dylibtype in so dll dylib; do
- if [ -e "$out/lib/lib''${lib}$suffix.$dylibtype" ]; then
- ln -svf lib''${lib}$suffix.$dylibtype $out/lib/lib$lib$newsuffix.$dylibtype
- ln -svf lib''${lib}$suffix.$dylibtype.${abiVersion} $out/lib/lib$lib$newsuffix.$dylibtype.${abiVersion}
+ if [ -e "$out/lib/lib''${library}$suffix.$dylibtype" ]; then
+ ln -svf lib''${library}$suffix.$dylibtype $out/lib/lib$library$newsuffix.$dylibtype
+ ln -svf lib''${library}$suffix.$dylibtype.${abiVersion} $out/lib/lib$library$newsuffix.$dylibtype.${abiVersion}
fi
done
for statictype in a dll.a la; do
- if [ -e "$out/lib/lib''${lib}$suffix.$statictype" ]; then
- ln -svf lib''${lib}$suffix.$statictype $out/lib/lib$lib$newsuffix.$statictype
+ if [ -e "$out/lib/lib''${library}$suffix.$statictype" ]; then
+ ln -svf lib''${library}$suffix.$statictype $out/lib/lib$library$newsuffix.$statictype
fi
done
- ln -svf ''${lib}$suffix.pc $out/lib/pkgconfig/$lib$newsuffix.pc
+ ln -svf ''${library}$suffix.pc $dev/lib/pkgconfig/$library$newsuffix.pc
done
done
+
+ # move some utilities to $bin
+ # these programs are used at runtime and don't really belong in $dev
+ moveToOutput "bin/clear" "$out"
+ moveToOutput "bin/reset" "$out"
+ moveToOutput "bin/tabs" "$out"
+ moveToOutput "bin/tput" "$out"
+ moveToOutput "bin/tset" "$out"
'';
preFixup = ''
- rm $out/lib/*.a
+ rm "$out"/lib/*.a
'';
meta = {
diff --git a/pkgs/development/libraries/nettle/generic.nix b/pkgs/development/libraries/nettle/generic.nix
index 3c439eb404cc3..1bfb739712f40 100644
--- a/pkgs/development/libraries/nettle/generic.nix
+++ b/pkgs/development/libraries/nettle/generic.nix
@@ -9,6 +9,9 @@ stdenv.mkDerivation (rec {
inherit src;
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+
buildInputs = [ gnum4 ];
propagatedBuildInputs = [ gmp ];
@@ -61,5 +64,5 @@ stdenv.lib.optionalAttrs stdenv.isSunOS {
# /usr/include/mp.h from OpenSolaris. See
#
# for details.
- configureFlags = [ "--with-include-path=${gmp}/include" ];
+ configureFlags = [ "--with-include-path=${gmp.dev}/include" ];
})
diff --git a/pkgs/development/libraries/newt/default.nix b/pkgs/development/libraries/newt/default.nix
index f5f72c006c73e..8a4b793cad797 100644
--- a/pkgs/development/libraries/newt/default.nix
+++ b/pkgs/development/libraries/newt/default.nix
@@ -14,16 +14,18 @@ stdenv.mkDerivation rec {
buildInputs = [ slang popt ];
+ NIX_LDFLAGS = "-lncurses";
+
crossAttrs = {
makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
};
- meta = {
+ meta = with stdenv.lib; {
homepage = https://fedorahosted.org/newt/;
description = "Library for color text mode, widget based user interfaces";
- license = stdenv.lib.licenses.lgpl2;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.viric ];
+ license = licenses.lgpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.viric ];
};
}
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 230c22258e2ec..726b5d7b29afe 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -10,6 +10,9 @@ stdenv.mkDerivation {
sha256 = "1pk98bmc5xzbl62q5wf2d6mryf0v95z6rsmxz27nclwiaqg0mcg0";
};
+ outputs = [ "dev" "out" ];
+ outputBin = "dev";
+
preConfigure = ''
cd nspr
'';
@@ -21,6 +24,7 @@ stdenv.mkDerivation {
postInstall = ''
find $out -name "*.a" -delete
+ moveToOutput share "$dev" # just aclocal
'';
enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index e8be72999527f..fc5bffe6b7408 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -1,6 +1,4 @@
-{ stdenv, fetchurl, nspr, perl, zlib, sqlite
-, includeTools ? false
-}:
+{ stdenv, fetchurl, nspr, perl, zlib, sqlite }:
let
@@ -46,15 +44,18 @@ in stdenv.mkDerivation rec {
INSTALL_TARGET
'';
+ outputs = [ "dev" "out" "tools" ];
+
preConfigure = "cd nss";
makeFlags = [
- "NSPR_INCLUDE_DIR=${nspr}/include/nspr"
- "NSPR_LIB_DIR=${nspr}/lib"
+ "NSPR_INCLUDE_DIR=${nspr.dev}/include/nspr"
+ "NSPR_LIB_DIR=${nspr.out}/lib"
"NSDISTMODE=copy"
"BUILD_OPT=1"
"SOURCE_PREFIX=\$(out)"
"NSS_ENABLE_ECC=1"
+ "USE_SYSTEM_ZLIB=1"
"NSS_USE_SYSTEM_SQLITE=1"
] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1";
@@ -77,8 +78,11 @@ in stdenv.mkDerivation rec {
libfile="$out/lib/lib$libname.so"
LD_LIBRARY_PATH=$out/lib $out/bin/shlibsign -v -i "$libfile"
done
- '' + stdenv.lib.optionalString (!includeTools) ''
- find $out/bin -type f \( -name nss-config -o -delete \)
+
+ moveToOutput bin "$tools"
+ moveToOutput bin/nss-config "$dev"
+ moveToOutput lib/libcrmf.a "$dev" # needed by firefox, for example
+ rm "$out"/lib/*.a
'';
meta = {
diff --git a/pkgs/development/libraries/nss_wrapper/default.nix b/pkgs/development/libraries/nss_wrapper/default.nix
index 278834190bbf2..a81d95e6b9871 100644
--- a/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/pkgs/development/libraries/nss_wrapper/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0bysdijvi9n0jk74iklbfhbp0kvv81a727lcfd5q03q2hkzjfm18";
};
- buildInputs = [ cmake pkgconfig ];
+ buildInputs = [ cmake pkgconfig (stdenv.cc.libc.out or null) ];
+ # outputs TODO: missing glibc.out might become a general problem
meta = with stdenv.lib; {
description = "A wrapper for the user, group and hosts NSS API";
diff --git a/pkgs/development/libraries/opendkim/default.nix b/pkgs/development/libraries/opendkim/default.nix
index e89cd880df13b..7f4b5ba2e3282 100644
--- a/pkgs/development/libraries/opendkim/default.nix
+++ b/pkgs/development/libraries/opendkim/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram $out/sbin/opendkim-genkey \
- --prefix PATH : ${openssl}/bin
+ --prefix PATH : ${openssl.bin}/bin
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index c4f8ef0ee6616..cc5a26a557d5d 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0044p20hx07fwgw2mbwj1fkx04615hhs1qyx4mawj2bhqvrnppnp";
};
- outputs = [ "out" "man" ];
+ # TODO: separate "out" and "bin"
+ outputs = [ "dev" "out" "man" "docdev" ];
buildInputs = [ openssl cyrus_sasl db groff ];
@@ -19,12 +20,10 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl"
++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
- dontPatchELF = 1; # !!!
-
# Fixup broken libtool
preFixup = ''
- sed -e 's,-lsasl2,-L${cyrus_sasl}/lib -lsasl2,' \
- -e 's,-lssl,-L${openssl}/lib -lssl,' \
+ sed -e 's,-lsasl2,-L${cyrus_sasl.out}/lib -lsasl2,' \
+ -e 's,-lssl,-L${openssl.out}/lib -lssl,' \
-i $out/lib/libldap.la -i $out/lib/libldap_r.la
'';
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 081f71b498e18..1e0f419c5f73c 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -16,8 +16,6 @@ let
inherit sha256;
};
- outputs = [ "out" "man" ];
-
patches =
[ ./use-etc-ssl-certs.patch ]
++ optional stdenv.isCygwin ./1.0.1-cygwin64.patch
@@ -25,6 +23,9 @@ let
(versionOlder version "1.0.2" && (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem")))
./darwin-arch.patch;
+ outputs = [ "dev" "out" "man" "bin" ];
+ setOutputFlags = false;
+
nativeBuildInputs = [ perl ];
buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
@@ -44,9 +45,7 @@ let
"-DUSE_CRYPTODEV_DIGESTS"
];
- makeFlags = [
- "MANDIR=$(out)/share/man"
- ];
+ makeFlags = [ "MANDIR=$(man)/share/man" ];
# Parallel building is broken in OpenSSL.
enableParallelBuilding = false;
@@ -58,14 +57,20 @@ let
rm "$out/lib/"*.a
fi
+ mkdir -p $bin
+ mv $out/bin $bin/
+
+ mkdir $dev
+ mv $out/include $dev/
+
# remove dependency on Perl at runtime
- rm -r $out/etc/ssl/misc $out/bin/c_rehash
+ rm -r $out/etc/ssl/misc
rmdir $out/etc/ssl/{certs,private}
'';
postFixup = ''
- # Check to make sure we don't depend on perl
+ # Check to make sure the main output doesn't depend on perl
if grep -r '${perl}' $out; then
echo "Found an erroneous dependency on perl ^^^" >&2
exit 1
diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index eefed304134f3..f2a9bdc123097 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -8,6 +8,9 @@ stdenv.mkDerivation rec {
sha256 = "1i3a1wdpagm0p3y1bwaz5x5rjhcpqbcrnhkcp10p259vkxk72wz5";
};
+ outputs = [ "dev" "out" "docdev" ];
+ outputBin = "dev";
+
buildInputs = [ pkgconfig libffi libtasn1 libiconv ];
configureFlags = [
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index bb619c7fda5f5..c4456035cca23 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, xlibsWrapper, glib, cairo, libpng, harfbuzz
-, fontconfig, freetype, libintlOrEmpty, gobjectIntrospection
+{ stdenv, fetchurl, pkgconfig, libXft, cairo, harfbuzz
+, libintlOrEmpty, gobjectIntrospection
}:
with stdenv.lib;
@@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
sha256 = "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k";
};
- buildInputs = with stdenv.lib; [ gobjectIntrospection ]
- ++ optional stdenv.isDarwin fontconfig;
- nativeBuildInputs = [ pkgconfig ];
+ outputs = [ "dev" "out" "bin" "docdev" ];
- propagatedBuildInputs = [ xlibsWrapper glib cairo libpng fontconfig freetype harfbuzz ] ++ libintlOrEmpty;
+ buildInputs = [ gobjectIntrospection ];
+ nativeBuildInputs = [ pkgconfig ];
+ propagatedBuildInputs = [ cairo harfbuzz libXft ] ++ libintlOrEmpty;
enableParallelBuilding = true;
@@ -33,8 +33,6 @@ stdenv.mkDerivation rec {
configureFlags = optional stdenv.isDarwin "--without-x";
- postInstall = "rm -rf $out/share/gtk-doc";
-
meta = with stdenv.lib; {
description = "A library for laying out and rendering of text, with an emphasis on internationalization";
diff --git a/pkgs/development/libraries/pcre/CVE-2016-1283.patch b/pkgs/development/libraries/pcre/CVE-2016-1283.patch
new file mode 100644
index 0000000000000..2c2dad29e9295
--- /dev/null
+++ b/pkgs/development/libraries/pcre/CVE-2016-1283.patch
@@ -0,0 +1,18 @@
+Index: pcre_compile.c
+===================================================================
+--- a/pcre_compile.c (revision 1635)
++++ b/pcre_compile.c (revision 1636)
+@@ -7311,7 +7311,12 @@
+ so far in order to get the number. If the name is not found, leave
+ the value of recno as 0 for a forward reference. */
+
+- else
++ /* This patch (removing "else") fixes a problem when a reference is
++ to multiple identically named nested groups from within the nest.
++ Once again, it is not the "proper" fix, and it results in an
++ over-allocation of memory. */
++
++ /* else */
+ {
+ ng = cd->named_groups;
+ for (i = 0; i < cd->names_found; i++, ng++)
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index afeffae3e5fa9..8bce1512d138a 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -1,43 +1,50 @@
-{ stdenv, lib, fetchurl, unicodeSupport ? true, cplusplusSupport ? true
-, windows ? null
+{ stdenv, fetchurl
+, windows ? null, variant ? null, pcre
, withCharSize ? 8
}:
with stdenv.lib;
-assert withCharSize != 8 -> !cplusplusSupport;
+assert elem variant [ null "cpp" "pcre16" "pcre32" ];
let
- charFlags = if withCharSize == 8 then [ ]
- else if withCharSize == 16 then [ "--enable-pcre16" "--disable-pcre8" ]
- else if withCharSize == 32 then [ "--enable-pcre32" "--disable-pcre8" ]
- else abort "Invalid character size";
+ version = "8.38";
+ pname = if (variant == null) then "pcre"
+ else if (variant == "cpp") then "pcre-cpp"
+ else variant;
in stdenv.mkDerivation rec {
- name = "pcre${lib.optionalString (withCharSize != 8) (toString withCharSize)}-8.38";
- # FIXME: add "version" attribute and use it in URL
+ name = "${pname}-${version}";
src = fetchurl {
- url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.bz2";
+ url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${version}.tar.bz2";
sha256 = "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r";
};
- patches =
- [ ];
+ patches = [
+ ./CVE-2016-1283.patch
+ ];
- outputs = [ "out" "doc" "man" ];
+ outputs = [ "dev" "out" "bin" "doc" "man" ];
- # FIXME: Refactor into list!
- configureFlags = ''
- --enable-jit
- ${lib.optionalString unicodeSupport "--enable-unicode-properties"}
- ${lib.optionalString (!cplusplusSupport) "--disable-cpp"}
- '' + lib.optionalString (charFlags != []) " ${toString charFlags}";
+ configureFlags = [
+ "--enable-jit"
+ "--enable-unicode-properties"
+ "--disable-cpp"
+ ]
+ ++ optional (variant != null) "--enable-${variant}";
doCheck = with stdenv; !(isCygwin || isFreeBSD);
# XXX: test failure on Cygwin
# we are running out of stack on both freeBSDs on Hydra
+ postFixup = ''
+ moveToOutput bin/pcre-config "$dev"
+ ''
+ + optionalString (variant != null) ''
+ ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.so.*.*.*
+ '';
+
crossAttrs = optionalAttrs (stdenv.cross.libc == "msvcrt") {
buildInputs = [ windows.mingw_w64_pthreads.crossDrv ];
};
diff --git a/pkgs/development/libraries/pdf2xml/default.nix b/pkgs/development/libraries/pdf2xml/default.nix
index c7c5aff24558e..4ebb0cbcc2607 100644
--- a/pkgs/development/libraries/pdf2xml/default.nix
+++ b/pkgs/development/libraries/pdf2xml/default.nix
@@ -16,8 +16,8 @@ stdenv.mkDerivation {
preBuild = ''
cp Makefile.linux Makefile
- sed -i 's|/usr/include/libxml2|${libxml2}/include/libxml2|' Makefile
- sed -i 's|-lxml2|-lxml2 -L${libxml2}/lib|' Makefile
+ sed -i 's|/usr/include/libxml2|${libxml2.dev}/include/libxml2|' Makefile
+ sed -i 's|-lxml2|-lxml2 -L${libxml2.out}/lib|' Makefile
sed -i 's|XPDF = xpdf_3.01|XPDF = ${libxpdf}/lib|' Makefile
mkdir exe
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index cdeaa0cb1d96a..5744460008fd0 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
sha256 = "109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71";
};
+ outputs = [ "dev" "out" "bin" ]; # small man pages in $bin
+
buildInputs =
[ pkgconfig glib expat pam intltool spidermonkey gobjectIntrospection ]
++ [ libxslt docbook_xsl docbook_xml_dtd_412 ] # man pages
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 92777f001695c..ebcdcc2b3efdf 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
inherit sha256;
};
- outputs = [ "out" ] ++ lib.optional (!minimal) "doc";
+ outputs = [ "dev" "out" ];
patches = [ ./datadir_env.patch ];
diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix
index 46d5128140151..5d8c2430ab9f9 100644
--- a/pkgs/development/libraries/portaudio/default.nix
+++ b/pkgs/development/libraries/portaudio/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
make install
# fixup .pc file to find alsa library
- sed -i "s|-lasound|-L${alsaLib}/lib -lasound|" "$out/lib/pkgconfig/"*.pc
+ sed -i "s|-lasound|-L${alsaLib.out}/lib -lasound|" "$out/lib/pkgconfig/"*.pc
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix
index 08d8f141deb0b..40fa63d75caf9 100644
--- a/pkgs/development/libraries/qt-3/default.nix
+++ b/pkgs/development/libraries/qt-3/default.nix
@@ -49,9 +49,9 @@ stdenv.mkDerivation {
${if cursorSupport then "-L${libXcursor}/lib -I${libXcursor}/include" else ""}
${if mysqlSupport then "-qt-sql-mysql -L${mysql.lib}/lib/mysql -I${mysql.lib}/include/mysql" else ""}
${if xftSupport then "-xft
- -L${libXft}/lib -I${libXft}/include
- -L${libXft.freetype}/lib -I${libXft.freetype}/include
- -L${libXft.fontconfig}/lib -I${libXft.fontconfig}/include" else "-no-xft"}
+ -L${libXft.out}/lib -I${libXft.dev}/include
+ -L${libXft.freetype.out}/lib -I${libXft.freetype.dev}/include
+ -L${libXft.fontconfig.lib}/lib -I${libXft.fontconfig.dev}/include" else "-no-xft"}
";
patches = [
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 17e0485b29fe0..788fb87414023 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -53,19 +53,24 @@ stdenv.mkDerivation rec {
./libressl.patch
(substituteAll {
src = ./dlopen-absolute-paths.diff;
- inherit cups icu libXfixes;
- glibc = stdenv.cc.libc;
+ cups = if cups != null then cups.out else null;
+ icu = icu.out;
+ libXfixes = libXfixes.out;
+ glibc = stdenv.cc.libc.out;
openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
})
] ++ stdenv.lib.optional gtkStyle (substituteAll {
src = ./dlopen-gtkstyle.diff;
# substituteAll ignores env vars starting with capital letter
- gconf = GConf;
- inherit gnome_vfs libgnomeui gtk;
+ gconf = GConf.out;
+ gtk = gtk.out;
+ libgnomeui = libgnomeui.out;
+ gnome_vfs = gnome_vfs.out;
})
++ stdenv.lib.optional flashplayerFix (substituteAll {
src = ./dlopen-webkit-nsplugin.diff;
- inherit gtk gdk_pixbuf;
+ gtk = gtk.out;
+ gdk_pixbuf = gdk_pixbuf.out;
})
++ [(fetchpatch {
name = "fix-medium-font.patch";
@@ -113,7 +118,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs =
[ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
- libSM zlib libpng openssl dbus.libs freetype fontconfig glib ]
+ libSM zlib libpng openssl dbus freetype fontconfig glib ]
# Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
++ optional mesaSupported mesa_glu
++ optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib
@@ -131,7 +136,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = false;
NIX_CFLAGS_COMPILE = optionalString (stdenv.isFreeBSD || stdenv.isDarwin)
- "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
+ "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
NIX_LDFLAGS = optionalString (stdenv.isFreeBSD || stdenv.isDarwin)
"-lglib-2.0";
diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix
index 9b1324d11373f..df2fb8ad18622 100644
--- a/pkgs/development/libraries/qt-5/5.4/default.nix
+++ b/pkgs/development/libraries/qt-5/5.4/default.nix
@@ -37,21 +37,19 @@ let
inherit src;
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
+ nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig ];
NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true;
dontAddPrefix = args.dontAddPrefix or true;
dontFixLibtool = args.dontFixLibtool or true;
configureScript = args.configureScript or "qmake";
+ outputs = args.outputs or [ "dev" "out" ];
+ setOutputFlags = false;
+
enableParallelBuilding = args.enableParallelBuilding or true;
- meta = {
- homepage = http://qt-project.org;
- description = "A cross-platform application framework for C++";
- license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
- maintainers = with maintainers; [ bbenoist qknight ttuegel ];
- platforms = platforms.linux;
- } // (args.meta or {});
+ meta = self.qtbase.meta // (args.meta or {});
});
addPackages = self: with self;
@@ -110,7 +108,10 @@ let
];
makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh;
+ fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh;
};
-in makeScope pkgs.newScope addPackages
+ self = makeScope pkgs.newScope addPackages;
+
+in self
diff --git a/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh
new file mode 100644
index 0000000000000..7ca3e33b613c2
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh
@@ -0,0 +1,5 @@
+fixQtModuleCMakeConfig() {
+ local module="$1"
+ sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \
+ -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake"
+}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix
index 36bd3822bf730..0585601db765a 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper
+{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig
, srcs
, xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi
@@ -14,8 +14,7 @@
, mysql ? null, postgresql ? null
# options
-, mesaSupported, mesa, mesa_glu
-, buildDocs ? false
+, mesaSupported, mesa
, buildExamples ? false
, buildTests ? false
, developerBuild ? false
@@ -37,6 +36,8 @@ stdenv.mkDerivation {
sourceRoot = "qt-everywhere-opensource-src-${version}";
+ outputs = [ "dev" "out" ];
+
postUnpack = ''
mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase
'';
@@ -60,27 +61,27 @@ stdenv.mkDerivation {
sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in"
substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \
- --replace "@glibc@" "${stdenv.cc.libc}"
+ --replace "@glibc@" "${stdenv.cc.libc.out}"
substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \
- --replace "@glibc@" "${stdenv.cc.libc}"
+ --replace "@glibc@" "${stdenv.cc.libc.out}"
substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \
- --replace "@libXcursor@" "${libXcursor}"
+ --replace "@libXcursor@" "${libXcursor.out}"
substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \
- --replace "@openssl@" "${openssl}"
+ --replace "@openssl@" "${openssl.out}"
substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \
- --replace "@dbus_libs@" "${dbus}"
+ --replace "@dbus_libs@" "${dbus.lib}"
substituteInPlace \
qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \
- --replace "@libX11@" "${libX11}"
+ --replace "@libX11@" "${libX11.out}"
''
+ lib.optionalString gtkStyle ''
- substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk}"
+ substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk.out}"
substituteInPlace qtbase/src/widgets/styles/qgtkstyle_p.cpp \
- --replace "@gtk@" "${gtk}" \
+ --replace "@gtk@" "${gtk.out}" \
--replace "@gnome_vfs@" "${gnome_vfs}" \
--replace "@libgnomeui@" "${libgnomeui}" \
--replace "@gconf@" "${GConf}"
@@ -88,16 +89,40 @@ stdenv.mkDerivation {
+ lib.optionalString mesaSupported ''
substituteInPlace \
qtbase/src/plugins/platforms/xcb/qglxintegration.cpp \
- --replace "@mesa@" "${mesa}"
- substituteInPlace qtbase/mkspecs/common/linux.conf --replace "@mesa@" "${mesa}"
+ --replace "@mesa_lib@" "${mesa.out}"
+ substituteInPlace qtbase/mkspecs/common/linux.conf \
+ --replace "@mesa_lib@" "${mesa.out}" \
+ --replace "@mesa_inc@" "${mesa.dev}"
'';
+ setOutputFlags = false;
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH"
export MAKEFLAGS=-j$NIX_BUILD_CORES
- export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml"
- export configureFlags+=" -docdir $out/share/doc/qt5"
+ _multioutQtDevs() {
+ # We cannot simply set these paths in configureFlags because libQtCore retains
+ # references to the paths it was built with.
+ moveToOutput "bin" "$dev"
+ moveToOutput "include" "$dev"
+ moveToOutput "mkspecs" "$dev"
+
+ # The destination directory must exist or moveToOutput will do nothing
+ mkdir -p "$dev/share"
+ moveToOutput "share/doc" "$dev"
+
+ mkdir -p "$dev/lib"
+ lndir -silent "$out/lib" "$dev/lib"
+ if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi
+ if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi
+ }
+ preFixupHooks+=(_multioutQtDevs)
+
+ configureFlags+="\
+ -plugindir $out/lib/qt5/plugins \
+ -importdir $out/lib/qt5/imports \
+ -qmldir $out/lib/qt5/qml \
+ -docdir $out/share/doc/qt5"
'';
prefixKey = "-prefix ";
@@ -172,40 +197,46 @@ stdenv.mkDerivation {
# PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag
# if dependency paths contain the string "pq", which can occur in the hash.
# To prevent these failures, we need to override PostgreSQL detection.
- PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql}/lib -lpq";
+ PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq";
propagatedBuildInputs = [
xlibs.libXcomposite libX11 libxcb libXext libXrender libXi
- fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre
+ fontconfig freetype openssl dbus glib udev libxml2 libxslt pcre
zlib libjpeg libpng libtiff sqlite icu
xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon
]
- # Qt doesn't directly need GLU (just GL), but many apps use, it's small and
- # doesn't remain a runtime-dep if not used
- ++ lib.optionals mesaSupported [ mesa mesa_glu ]
- ++ lib.optional (cups != null) cups
- ++ lib.optional (mysql != null) mysql.lib
- ++ lib.optional (postgresql != null) postgresql
- ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf];
+ ++ lib.optional mesaSupported mesa;
buildInputs =
[ bison flex gperf ruby ]
- ++ lib.optional developerBuild gdb;
-
- nativeBuildInputs = [ python perl pkgconfig ];
+ ++ lib.optional developerBuild gdb
+ ++ lib.optional (cups != null) cups
+ ++ lib.optional (mysql != null) mysql.lib
+ ++ lib.optional (postgresql != null) postgresql
+ ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf];
- propagatedNativeBuildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ];
# freetype-2.5.4 changed signedness of some struct fields
NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
- postInstall =
+ postFixup =
''
# Don't retain build-time dependencies like gdb and ruby.
- sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri
- ''
- + lib.optionalString buildDocs ''
- make docs && make install_docs
+ sed '/QMAKE_DEFAULT_.*DIRS/ d' -i "$dev/mkspecs/qconfig.pri"
+
+ fixQtModuleCMakeConfig "Concurrent"
+ fixQtModuleCMakeConfig "Core"
+ fixQtModuleCMakeConfig "DBus"
+ fixQtModuleCMakeConfig "Gui"
+ fixQtModuleCMakeConfig "Network"
+ fixQtModuleCMakeConfig "OpenGL"
+ fixQtModuleCMakeConfig "OpenGLExtensions"
+ fixQtModuleCMakeConfig "PrintSupport"
+ fixQtModuleCMakeConfig "Sql"
+ fixQtModuleCMakeConfig "Test"
+ fixQtModuleCMakeConfig "Widgets"
+ fixQtModuleCMakeConfig "Xml"
'';
inherit lndir;
@@ -214,9 +245,9 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
meta = with lib; {
- homepage = http://qt-project.org;
+ homepage = http://www.qt.io;
description = "A cross-platform application framework for C++";
- license = "GPL/LGPL";
+ license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
maintainers = with maintainers; [ bbenoist qknight ttuegel ];
platforms = platforms.linux;
};
diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch
index d6e08cd24106c..d5c4c2b97cb60 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch
+++ b/pkgs/development/libraries/qt-5/5.4/qtbase/dlopen-gl.patch
@@ -10,7 +10,7 @@ Index: qt-everywhere-opensource-src-5.4.2/qtbase/src/plugins/platforms/xcb/qglxi
QLibrary lib(QLatin1String("GL"));
+ if (!lib.load()) {
+ // Fallback to Mesa driver
-+ lib.setFileName(QLatin1String("@mesa@/lib/libGL"));
++ lib.setFileName(QLatin1String("@mesa_lib@/lib/libGL"));
+ }
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch b/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch
index 10115e8144ad3..56ee0a411d4d8 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch
+++ b/pkgs/development/libraries/qt-5/5.4/qtbase/mkspecs-libgl.patch
@@ -8,8 +8,8 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf
QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-+QMAKE_INCDIR_OPENGL = @mesa@/include
-+QMAKE_LIBDIR_OPENGL = @mesa@/lib
++QMAKE_INCDIR_OPENGL = @mesa_inc@/include
++QMAKE_LIBDIR_OPENGL = @mesa_lib@/lib
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh
index b86b6df28ac89..c44cd2234d76a 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh
+++ b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh
@@ -1,45 +1,26 @@
if [[ -z "$QMAKE" ]]; then
-linkDependencyDir() {
+_qtLinkDependencyDir() {
@lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2"
if [[ -n "$NIX_QT_SUBMODULE" ]]; then
find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs"
fi
}
-addQtModule() {
- if [[ -d "$1/mkspecs" ]]; then
+_qtLinkModule() {
+ if [ -d "$1/mkspecs" ]; then
# $1 is a Qt module
- linkDependencyDir "$1" mkspecs
+ _qtLinkDependencyDir "$1" mkspecs
for dir in bin include lib share; do
- if [[ -d "$1/$dir" ]]; then
- linkDependencyDir "$1" "$dir"
+ if [ -d "$1/$dir" ]; then
+ _qtLinkDependencyDir "$1" "$dir"
fi
done
fi
}
-propagateRuntimeDeps() {
- local propagated
- for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do
- if [[ -d "$1/$dir" ]]; then
- propagated=
- for pkg in $propagatedBuildInputs; do
- if [[ "z$pkg" == "z$1" ]]; then
- propagated=1
- break
- fi
- done
- if [[ -z $propagated ]]; then
- propagatedBuildInputs="$propagatedBuildInputs $1"
- fi
- break
- fi
- done
-}
-
-rmQtModules() {
+_qtRmModules() {
cat "$out/nix-support/qt-inputs" | while read file; do
if [[ -h "$out/$file" ]]; then
rm "$out/$file"
@@ -55,14 +36,65 @@ rmQtModules() {
rm "$out/nix-support/qt-inputs"
}
-rmQMake() {
+addToSearchPathOnceWithCustomDelimiter() {
+ local delim="$1"
+ local search="$2"
+ local target="$3"
+ local dirs
+ local exported
+ IFS="$delim" read -a dirs <<< "${!search}"
+ for dir in ${dirs[@]}; do
+ if [ "z$dir" == "z$target" ]; then exported=1; fi
+ done
+ if [ -z $exported ]; then
+ eval "export ${search}=\"${!search}${!search:+$delim}$target\""
+ fi
+}
+
+addToSearchPathOnce() {
+ addToSearchPathOnceWithCustomDelimiter ':' "$@"
+}
+
+propagateOnce() {
+ addToSearchPathOnceWithCustomDelimiter ' ' "$@"
+}
+
+_qtPropagateRuntimeDependencies() {
+ for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
+ if [ -d "$1/$dir" ]; then
+ propagateOnce propagatedBuildInputs "$1"
+ break
+ fi
+ done
+ addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins"
+ addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports"
+ addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml"
+}
+
+_qtRmQmake() {
rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf"
}
-setQMakePath() {
+_qtSetQmakePath() {
export PATH="$qtOut/bin${PATH:+:}$PATH"
}
+_qtMultioutModuleDevs() {
+ # We cannot simply set these paths in configureFlags because libQtCore retains
+ # references to the paths it was built with.
+ moveToOutput "bin" "${!outputDev}"
+ moveToOutput "include" "${!outputDev}"
+
+ # The destination directory must exist or moveToOutput will do nothing
+ mkdir -p "${!outputDev}/share"
+ moveToOutput "share/doc" "${!outputDev}"
+}
+
+_qtMultioutDevs() {
+ # This is necessary whether the package is a Qt module or not
+ moveToOutput "mkspecs" "${!outputDev}"
+}
+
qtOut=""
if [[ -z "$NIX_QT_SUBMODULE" ]]; then
qtOut=`mktemp -d`
@@ -72,7 +104,7 @@ fi
mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share"
-cp "@out@/bin/qmake" "$qtOut/bin"
+cp "@dev@/bin/qmake" "$qtOut/bin"
cat >"$qtOut/bin/qt.conf" <isLoaded()) {
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
-+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1);
if (!udevLibrary->load()) {
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
-+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0);
if (!udevLibrary->load()) {
qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
return false;
diff --git a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix
index fa7383fc1e767..2c9575f122e78 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix
@@ -1,7 +1,16 @@
-{ qtSubmodule, qtbase }:
+{ qtSubmodule, qtbase, substituteAll, libudev }:
qtSubmodule {
name = "qtserialport";
qtInputs = [ qtbase ];
- patches = [ ./0001-dlopen-serialport-udev.patch ];
+
+ patches = [
+ (substituteAll {
+ src = ./0001-dlopen-serialport-udev.patch;
+ libudev = libudev.out;
+ })
+ ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "SerialPort"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix
index b9ccac7cf9331..a460d6da4c2ad 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtsvg";
qtInputs = [ qtbase ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "Svg"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qttools.nix b/pkgs/development/libraries/qt-5/5.4/qttools.nix
index 65edc45081283..16887c4265a81 100644
--- a/pkgs/development/libraries/qt-5/5.4/qttools.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qttools.nix
@@ -3,4 +3,13 @@
qtSubmodule {
name = "qttools";
qtInputs = [ qtbase ];
+ postFixup = ''
+ moveToOutput "bin/qdbus" "$out"
+ moveToOutput "bin/qtpaths" "$out"
+
+ fixQtModuleCMakeConfig "Designer"
+ fixQtModuleCMakeConfig "Help"
+ fixQtModuleCMakeConfig "LinguistTools"
+ fixQtModuleCMakeConfig "UiTools"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch
index f3b9d407bd726..1c360cd81aa2d 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch
+++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/0003-dlopen-webkit-udev.patch
@@ -16,13 +16,13 @@ index 60ff317..da8ac69 100644
{
m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint);
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1);
-+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1);
m_loaded = m_libUdev.load();
if (resolveMethods())
return true;
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0);
-+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0);
m_loaded = m_libUdev.load();
return resolveMethods();
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix
index 596c02d39afb1..7ed3017b95a3d 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix
@@ -1,6 +1,6 @@
{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtmultimedia, qtsensors
, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
-, sqlite, udev
+, sqlite, libudev
, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby
, substituteAll
, flashplayerFix ? false
@@ -18,16 +18,21 @@ qtSubmodule {
patches =
let dlopen-webkit-nsplugin = substituteAll {
src = ./0001-dlopen-webkit-nsplugin.patch;
- inherit gtk gdk_pixbuf;
+ gtk = gtk.out;
+ gdk_pixbuf = gdk_pixbuf.out;
};
dlopen-webkit-gtk = substituteAll {
src = ./0002-dlopen-webkit-gtk.patch;
- inherit gtk;
+ gtk = gtk.out;
};
dlopen-webkit-udev = substituteAll {
src = ./0003-dlopen-webkit-udev.patch;
- inherit udev;
+ udev = libudev.out;
};
in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
++ [ dlopen-webkit-udev ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "WebKit"
+ fixQtModuleCMakeConfig "WebKitWidgets"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix
index fbdfbbcf0dbed..c0d0f9e7d714e 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtwebsockets";
qtInputs = [ qtbase qtdeclarative ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "WebSockets"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix
index a765161e2d7ea..db92f1353627d 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtx11extras";
qtInputs = [ qtbase ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "X11Extras"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix
index 9a8ddbba2bd24..3b22132e4c38e 100644
--- a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix
+++ b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtxmlpatterns";
qtInputs = [ qtbase ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "XmlPatterns"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix
index 9b1324d11373f..955d57350c294 100644
--- a/pkgs/development/libraries/qt-5/5.5/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/default.nix
@@ -1,15 +1,20 @@
-# Maintainer's Notes:
-#
-# Minor updates:
-# 1. Edit ./fetchsrcs.sh to point to the updated URL.
-# 2. Run ./fetchsrcs.sh.
-# 3. Build and enjoy.
-#
-# Major updates:
-# We prefer not to immediately overwrite older versions with major updates, so
-# make a copy of this directory first. After copying, be sure to delete ./tmp
-# if it exists. Then follow the minor update instructions. Be sure to check if
-# any new components have been added and package them as necessary.
+/*
+
+# Minor Updates
+
+1. Edit ./fetchsrcs.sh to point to the updated URL.
+2. Run ./fetchsrcs.sh.
+3. Build and enjoy.
+
+# Major Updates
+
+1. Make a copy of this directory. (We like to keep the old version around
+ for a short time after major updates.)
+2. Delete the tmp/ subdirectory of the copy.
+3. Follow the minor update instructions above.
+4. Package any new Qt modules, if necessary.
+
+*/
{ pkgs
@@ -37,21 +42,19 @@ let
inherit src;
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
+ nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig ];
NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true;
dontAddPrefix = args.dontAddPrefix or true;
dontFixLibtool = args.dontFixLibtool or true;
configureScript = args.configureScript or "qmake";
+ outputs = args.outputs or [ "dev" "out" ];
+ setOutputFlags = args.setOutputFlags or false;
+
enableParallelBuilding = args.enableParallelBuilding or true;
- meta = {
- homepage = http://qt-project.org;
- description = "A cross-platform application framework for C++";
- license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
- maintainers = with maintainers; [ bbenoist qknight ttuegel ];
- platforms = platforms.linux;
- } // (args.meta or {});
+ meta = self.qtbase.meta // (args.meta or {});
});
addPackages = self: with self;
@@ -61,6 +64,7 @@ let
qtbase = callPackage ./qtbase {
mesa = pkgs.mesa_noglu;
+ harfbuzz = pkgs.harfbuzz-icu;
cups = if stdenv.isLinux then pkgs.cups else null;
# GNOME dependencies are not used unless gtkStyle == true
inherit (pkgs.gnome) libgnomeui GConf gnome_vfs;
@@ -110,7 +114,10 @@ let
];
makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh;
+ fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh;
};
-in makeScope pkgs.newScope addPackages
+ self = makeScope pkgs.newScope addPackages;
+
+in self
diff --git a/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh
new file mode 100644
index 0000000000000..7ca3e33b613c2
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh
@@ -0,0 +1,5 @@
+fixQtModuleCMakeConfig() {
+ local module="$1"
+ sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \
+ -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake"
+}
diff --git a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh
index d61665455bf45..f29bbb73639ba 100644
--- a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh
+++ b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh
@@ -1,11 +1,3 @@
-addQtDependency() {
- addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins"
- addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports"
- addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml"
- addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg"
- addToSearchPath XDG_DATA_DIRS "$1/share"
-}
-
wrapQtProgram() {
local prog="$1"
shift
@@ -13,8 +5,8 @@ wrapQtProgram() {
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
- --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \
- --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \
+ --prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \
+ --prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \
"$@"
}
@@ -27,16 +19,16 @@ makeQtWrapper() {
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
- --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \
- --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \
+ --prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \
+ --prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \
"$@"
}
# cannot use addToSearchPath because these directories may not exist yet
-export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins"
-export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports"
-export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml"
-export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}$out/etc/xdg"
-export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share"
-
-envHooks+=(addQtDependency)
+export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins"
+export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports"
+export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml"
+export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg"
+export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputLib}/share"
+export NIX_WRAP_XDG_CONFIG_DIRS="$NIX_WRAP_XDG_CONFIG_DIRS${NIX_WRAP_XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg"
+export NIX_WRAP_XDG_DATA_DIRS="$NIX_WRAP_XDG_DATA_DIRS${NIX_WRAP_XDG_DATA_DIRS:+:}${!outputLib}/share"
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
index ffa0a95be2c08..35410d55e66d4 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
@@ -1,10 +1,11 @@
-{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper
+{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig
, srcs
, xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi
, xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilwm, libxkbcommon
-, fontconfig, freetype, openssl, dbus, glib, udev, libxml2, libxslt, pcre16
-, zlib, libjpeg, libpng, libtiff, sqlite, icu, harfbuzz
+, fontconfig, freetype, harfbuzz
+, openssl, dbus, glib, udev, libxml2, libxslt, pcre16
+, zlib, libjpeg, libpng, libtiff, sqlite, icu
, coreutils, bison, flex, gdb, gperf, lndir, ruby
, python, perl, pkgconfig
@@ -14,8 +15,7 @@
, mysql ? null, postgresql ? null
# options
-, mesaSupported, mesa, mesa_glu
-, buildDocs ? false
+, mesaSupported, mesa
, buildExamples ? false
, buildTests ? false
, developerBuild ? false
@@ -43,6 +43,8 @@ stdenv.mkDerivation {
sourceRoot = "qt-everywhere-opensource-src-${version}";
+ outputs = [ "dev" "out" ];
+
postUnpack = ''
mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase
'';
@@ -70,44 +72,68 @@ stdenv.mkDerivation {
sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in"
substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \
- --replace "@glibc@" "${stdenv.cc.libc}"
+ --replace "@glibc@" "${stdenv.cc.libc.out}"
substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \
- --replace "@glibc@" "${stdenv.cc.libc}"
+ --replace "@glibc@" "${stdenv.cc.libc.out}"
substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \
- --replace "@libXcursor@" "${libXcursor}"
+ --replace "@libXcursor@" "${libXcursor.out}"
substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \
- --replace "@openssl@" "${openssl}"
+ --replace "@openssl@" "${openssl.out}"
substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \
- --replace "@dbus_libs@" "${dbus}"
+ --replace "@dbus_libs@" "${dbus.lib}"
substituteInPlace \
qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \
- --replace "@libX11@" "${libX11}"
+ --replace "@libX11@" "${libX11.out}"
''
+ lib.optionalString gtkStyle ''
- substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk}"
+ substituteInPlace qtbase/src/widgets/styles/qgtk2painter.cpp --replace "@gtk@" "${gtk.out}"
substituteInPlace qtbase/src/widgets/styles/qgtkstyle_p.cpp \
- --replace "@gtk@" "${gtk}" \
- --replace "@gnome_vfs@" "${gnome_vfs}" \
- --replace "@libgnomeui@" "${libgnomeui}" \
- --replace "@gconf@" "${GConf}"
+ --replace "@gtk@" "${gtk.out}" \
+ --replace "@gnome_vfs@" "${gnome_vfs.out}" \
+ --replace "@libgnomeui@" "${libgnomeui.out}" \
+ --replace "@gconf@" "${GConf.out}"
''
+ lib.optionalString mesaSupported ''
substituteInPlace \
qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp \
- --replace "@mesa@" "${mesa}"
- substituteInPlace qtbase/mkspecs/common/linux.conf --replace "@mesa@" "${mesa}"
+ --replace "@mesa_lib@" "${mesa.out}"
+ substituteInPlace qtbase/mkspecs/common/linux.conf \
+ --replace "@mesa_lib@" "${mesa.out}" \
+ --replace "@mesa_inc@" "${mesa.dev}"
'';
+ setOutputFlags = false;
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH"
export MAKEFLAGS=-j$NIX_BUILD_CORES
- export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml"
- export configureFlags+=" -docdir $out/share/doc/qt5"
+ _multioutQtDevs() {
+ # We cannot simply set these paths in configureFlags because libQtCore retains
+ # references to the paths it was built with.
+ moveToOutput "bin" "$dev"
+ moveToOutput "include" "$dev"
+ moveToOutput "mkspecs" "$dev"
+
+ # The destination directory must exist or moveToOutput will do nothing
+ mkdir -p "$dev/share"
+ moveToOutput "share/doc" "$dev"
+
+ mkdir -p "$dev/lib"
+ lndir -silent "$out/lib" "$dev/lib"
+ if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi
+ if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi
+ }
+ preFixupHooks+=(_multioutQtDevs)
+
+ configureFlags+="\
+ -plugindir $out/lib/qt5/plugins \
+ -importdir $out/lib/qt5/imports \
+ -qmldir $out/lib/qt5/qml \
+ -docdir $out/share/doc/qt5"
'';
prefixKey = "-prefix ";
@@ -184,40 +210,53 @@ stdenv.mkDerivation {
# PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag
# if dependency paths contain the string "pq", which can occur in the hash.
# To prevent these failures, we need to override PostgreSQL detection.
- PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql}/lib -lpq";
+ PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq";
propagatedBuildInputs = [
+ dbus glib libxml2 libxslt openssl pcre16 sqlite udev zlib
+
+ # Image formats
+ libjpeg libpng libtiff
+
+ # Text rendering
+ fontconfig freetype harfbuzz icu
+
+ # X11 libs
xlibs.libXcomposite libX11 libxcb libXext libXrender libXi
- fontconfig freetype openssl dbus.libs glib udev libxml2 libxslt pcre16
- zlib libjpeg libpng libtiff sqlite icu harfbuzz
xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon
]
- # Qt doesn't directly need GLU (just GL), but many apps use, it's small and
- # doesn't remain a runtime-dep if not used
- ++ lib.optionals mesaSupported [ mesa mesa_glu ]
- ++ lib.optional (cups != null) cups
- ++ lib.optional (mysql != null) mysql.lib
- ++ lib.optional (postgresql != null) postgresql
- ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf];
+ ++ lib.optional mesaSupported mesa;
buildInputs =
[ bison flex gperf ruby ]
- ++ lib.optional developerBuild gdb;
-
- nativeBuildInputs = [ python perl pkgconfig ];
+ ++ lib.optional developerBuild gdb
+ ++ lib.optional (cups != null) cups
+ ++ lib.optional (mysql != null) mysql.lib
+ ++ lib.optional (postgresql != null) postgresql
+ ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf];
- propagatedNativeBuildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ];
# freetype-2.5.4 changed signedness of some struct fields
NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
- postInstall =
+ postFixup =
''
# Don't retain build-time dependencies like gdb and ruby.
- sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri
- ''
- + lib.optionalString buildDocs ''
- make docs && make install_docs
+ sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri
+
+ fixQtModuleCMakeConfig "Concurrent"
+ fixQtModuleCMakeConfig "Core"
+ fixQtModuleCMakeConfig "DBus"
+ fixQtModuleCMakeConfig "Gui"
+ fixQtModuleCMakeConfig "Network"
+ fixQtModuleCMakeConfig "OpenGL"
+ fixQtModuleCMakeConfig "OpenGLExtensions"
+ fixQtModuleCMakeConfig "PrintSupport"
+ fixQtModuleCMakeConfig "Sql"
+ fixQtModuleCMakeConfig "Test"
+ fixQtModuleCMakeConfig "Widgets"
+ fixQtModuleCMakeConfig "Xml"
'';
inherit lndir;
@@ -226,9 +265,9 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
meta = with lib; {
- homepage = http://qt-project.org;
+ homepage = http://www.qt.io;
description = "A cross-platform application framework for C++";
- license = "GPL/LGPL";
+ license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
maintainers = with maintainers; [ bbenoist qknight ttuegel ];
platforms = platforms.linux;
};
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch b/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch
index 14411a95f3ac2..59f510ac54dab 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/dlopen-gl.patch
@@ -10,7 +10,7 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_in
QLibrary lib(QLatin1String("GL"));
+ if (!lib.load()) {
+ // Fallback to Mesa driver
-+ lib.setFileName(QLatin1String("@mesa@/lib/libGL"));
++ lib.setFileName(QLatin1String("@mesa_lib@/lib/libGL"));
+ }
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch b/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch
index 10115e8144ad3..56ee0a411d4d8 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/mkspecs-libgl.patch
@@ -8,8 +8,8 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/common/linux.conf
QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-+QMAKE_INCDIR_OPENGL = @mesa@/include
-+QMAKE_LIBDIR_OPENGL = @mesa@/lib
++QMAKE_INCDIR_OPENGL = @mesa_inc@/include
++QMAKE_LIBDIR_OPENGL = @mesa_lib@/lib
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh
index b86b6df28ac89..9cf1ef9ccb614 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh
@@ -1,45 +1,26 @@
if [[ -z "$QMAKE" ]]; then
-linkDependencyDir() {
+_qtLinkDependencyDir() {
@lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2"
if [[ -n "$NIX_QT_SUBMODULE" ]]; then
find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs"
fi
}
-addQtModule() {
- if [[ -d "$1/mkspecs" ]]; then
+_qtLinkModule() {
+ if [ -d "$1/mkspecs" ]; then
# $1 is a Qt module
- linkDependencyDir "$1" mkspecs
+ _qtLinkDependencyDir "$1" mkspecs
for dir in bin include lib share; do
- if [[ -d "$1/$dir" ]]; then
- linkDependencyDir "$1" "$dir"
+ if [ -d "$1/$dir" ]; then
+ _qtLinkDependencyDir "$1" "$dir"
fi
done
fi
}
-propagateRuntimeDeps() {
- local propagated
- for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do
- if [[ -d "$1/$dir" ]]; then
- propagated=
- for pkg in $propagatedBuildInputs; do
- if [[ "z$pkg" == "z$1" ]]; then
- propagated=1
- break
- fi
- done
- if [[ -z $propagated ]]; then
- propagatedBuildInputs="$propagatedBuildInputs $1"
- fi
- break
- fi
- done
-}
-
-rmQtModules() {
+_qtRmModules() {
cat "$out/nix-support/qt-inputs" | while read file; do
if [[ -h "$out/$file" ]]; then
rm "$out/$file"
@@ -55,14 +36,66 @@ rmQtModules() {
rm "$out/nix-support/qt-inputs"
}
-rmQMake() {
+addToSearchPathOnceWithCustomDelimiter() {
+ local delim="$1"
+ local search="$2"
+ local target="$3"
+ local dirs
+ local exported
+ IFS="$delim" read -a dirs <<< "${!search}"
+ for dir in ${dirs[@]}; do
+ if [ "z$dir" == "z$target" ]; then exported=1; fi
+ done
+ if [ -z $exported ]; then
+ eval "export ${search}=\"${!search}${!search:+$delim}$target\""
+ fi
+}
+
+addToSearchPathOnce() {
+ addToSearchPathOnceWithCustomDelimiter ':' "$@"
+}
+
+propagateOnce() {
+ addToSearchPathOnceWithCustomDelimiter ' ' "$@"
+}
+
+_qtPropagateRuntimeDependencies() {
+ for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do
+ if [ -d "$1/$dir" ]; then
+ propagateOnce propagatedBuildInputs "$1"
+ propagateOnce propagatedUserEnvPkgs "$1"
+ break
+ fi
+ done
+ addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins"
+ addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports"
+ addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml"
+}
+
+_qtRmQmake() {
rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf"
}
-setQMakePath() {
+_qtSetQmakePath() {
export PATH="$qtOut/bin${PATH:+:}$PATH"
}
+_qtMultioutModuleDevs() {
+ # We cannot simply set these paths in configureFlags because libQtCore retains
+ # references to the paths it was built with.
+ moveToOutput "bin" "${!outputDev}"
+ moveToOutput "include" "${!outputDev}"
+
+ # The destination directory must exist or moveToOutput will do nothing
+ mkdir -p "${!outputDev}/share"
+ moveToOutput "share/doc" "${!outputDev}"
+}
+
+_qtMultioutDevs() {
+ # This is necessary whether the package is a Qt module or not
+ moveToOutput "mkspecs" "${!outputDev}"
+}
+
qtOut=""
if [[ -z "$NIX_QT_SUBMODULE" ]]; then
qtOut=`mktemp -d`
@@ -72,7 +105,7 @@ fi
mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share"
-cp "@out@/bin/qmake" "$qtOut/bin"
+cp "@dev@/bin/qmake" "$qtOut/bin"
cat >"$qtOut/bin/qt.conf" <isLoaded()) {
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
-+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1);
if (!udevLibrary->load()) {
- udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
-+ udevLibrary->setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
++ udevLibrary->setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0);
if (!udevLibrary->load()) {
qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
return false;
diff --git a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix
index fa7383fc1e767..3f409f9c0e084 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix
@@ -1,7 +1,15 @@
-{ qtSubmodule, qtbase }:
+{ qtSubmodule, qtbase, substituteAll, libudev }:
qtSubmodule {
name = "qtserialport";
qtInputs = [ qtbase ];
- patches = [ ./0001-dlopen-serialport-udev.patch ];
+ patches = [
+ (substituteAll {
+ src = ./0001-dlopen-serialport-udev.patch;
+ libudev = libudev.out;
+ })
+ ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "SerialPort"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix
index b9ccac7cf9331..a460d6da4c2ad 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtsvg";
qtInputs = [ qtbase ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "Svg"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qttools.nix b/pkgs/development/libraries/qt-5/5.5/qttools.nix
index 65edc45081283..1472691c52547 100644
--- a/pkgs/development/libraries/qt-5/5.5/qttools.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qttools.nix
@@ -3,4 +3,14 @@
qtSubmodule {
name = "qttools";
qtInputs = [ qtbase ];
+ postFixup = ''
+ moveToOutput "bin/qdbus" "$out"
+ moveToOutput "bin/qtpaths" "$out"
+
+ fixQtModuleCMakeConfig "Designer"
+ fixQtModuleCMakeConfig "Help"
+ fixQtModuleCMakeConfig "LinguistTools"
+ fixQtModuleCMakeConfig "UiPlugin"
+ fixQtModuleCMakeConfig "UiTools"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch b/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch
index f3b9d407bd726..1c360cd81aa2d 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch
+++ b/pkgs/development/libraries/qt-5/5.5/qtwebkit/0003-dlopen-webkit-udev.patch
@@ -16,13 +16,13 @@ index 60ff317..da8ac69 100644
{
m_libUdev.setLoadHints(QLibrary::ResolveAllSymbolsHint);
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 1);
-+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 1);
++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 1);
m_loaded = m_libUdev.load();
if (resolveMethods())
return true;
- m_libUdev.setFileNameAndVersion(QStringLiteral("udev"), 0);
-+ m_libUdev.setFileNameAndVersion(QStringLiteral("@udev@/lib/libudev"), 0);
++ m_libUdev.setFileNameAndVersion(QStringLiteral("@libudev@/lib/libudev"), 0);
m_loaded = m_libUdev.load();
return resolveMethods();
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix
index 596c02d39afb1..b441a2448d769 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix
@@ -1,6 +1,6 @@
{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtmultimedia, qtsensors
, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
-, sqlite, udev
+, sqlite, libudev
, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby
, substituteAll
, flashplayerFix ? false
@@ -18,16 +18,21 @@ qtSubmodule {
patches =
let dlopen-webkit-nsplugin = substituteAll {
src = ./0001-dlopen-webkit-nsplugin.patch;
- inherit gtk gdk_pixbuf;
+ gtk = gtk.out;
+ gdk_pixbuf = gdk_pixbuf.out;
};
dlopen-webkit-gtk = substituteAll {
src = ./0002-dlopen-webkit-gtk.patch;
- inherit gtk;
+ gtk = gtk.out;
};
dlopen-webkit-udev = substituteAll {
src = ./0003-dlopen-webkit-udev.patch;
- inherit udev;
+ libudev = libudev.out;
};
in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
++ [ dlopen-webkit-udev ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "WebKit"
+ fixQtModuleCMakeConfig "WebKitWidgets"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix
index fbdfbbcf0dbed..c0d0f9e7d714e 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtwebsockets";
qtInputs = [ qtbase qtdeclarative ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "WebSockets"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix
index a765161e2d7ea..db92f1353627d 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtx11extras";
qtInputs = [ qtbase ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "X11Extras"
+ '';
}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix
index 9a8ddbba2bd24..3b22132e4c38e 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix
@@ -3,4 +3,7 @@
qtSubmodule {
name = "qtxmlpatterns";
qtInputs = [ qtbase ];
+ postFixup = ''
+ fixQtModuleCMakeConfig "XmlPatterns"
+ '';
}
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 947b06021cd21..32fff70ebfbaa 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
buildInputs = [ zlib perl ];
+ NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";
+
postPatch = ''
patchShebangs .
'';
diff --git a/pkgs/development/libraries/readline/6.3.nix b/pkgs/development/libraries/readline/6.3.nix
index f770fabb35d34..11d4271b168b6 100644
--- a/pkgs/development/libraries/readline/6.3.nix
+++ b/pkgs/development/libraries/readline/6.3.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn";
};
+ outputs = [ "dev" "out" "doc" ];
+
propagatedBuildInputs = [ncurses];
patchFlags = "-p0";
diff --git a/pkgs/development/libraries/schroedinger/default.nix b/pkgs/development/libraries/schroedinger/default.nix
index 33f5ba867d6a1..2df7d05189425 100644
--- a/pkgs/development/libraries/schroedinger/default.nix
+++ b/pkgs/development/libraries/schroedinger/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, orc, pkgconfig}:
+{ stdenv, fetchurl, orc, pkgconfig }:
stdenv.mkDerivation {
name = "schroedinger-1.0.11";
@@ -11,16 +11,12 @@ stdenv.mkDerivation {
sha256 = "04prr667l4sn4zx256v1z36a0nnkxfdqyln48rbwlamr6l3jlmqy";
};
- buildInputs = [orc pkgconfig];
+ outputs = [ "dev" "out" "docdev" ];
- # The test suite is known not to build against Orc >0.4.16 in Schroedinger 1.0.11.
- # A fix is in upstream, so test when pulling 1.0.12 if this is still needed. See:
- # http://www.mail-archive.com/schrodinger-devel@lists.sourceforge.net/msg00415.html
- preBuild = ''
- substituteInPlace Makefile \
- --replace "SUBDIRS = schroedinger doc tools testsuite" "SUBDIRS = schroedinger doc tools" \
- --replace "DIST_SUBDIRS = schroedinger doc tools testsuite" "DIST_SUBDIRS = schroedinger doc tools"
- '';
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ orc ];
+
+ doCheck = true;
meta = with stdenv.lib; {
homepage = "http://diracvideo.org/";
diff --git a/pkgs/development/libraries/scmccid/default.nix b/pkgs/development/libraries/scmccid/default.nix
index 7dcde2a09a8c5..f88bd64f597be 100644
--- a/pkgs/development/libraries/scmccid/default.nix
+++ b/pkgs/development/libraries/scmccid/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [ patchelf ];
installPhase = ''
- RPATH=${libusb}/lib:${stdenv.cc.libc}/lib
+ RPATH=${libusb.out}/lib:${stdenv.cc.libc.out}/lib
for a in proprietary/*/Contents/Linux/*.so*; do
if ! test -L $a; then
diff --git a/pkgs/development/libraries/slang/default.nix b/pkgs/development/libraries/slang/default.nix
index bf1f38fbb83d7..e83718673aaea 100644
--- a/pkgs/development/libraries/slang/default.nix
+++ b/pkgs/development/libraries/slang/default.nix
@@ -7,20 +7,29 @@ stdenv.mkDerivation rec {
sha256 = "0aqd2cjabj6nhd4r3dc4vhqif2bf3dmqnrn2gj0xm4gqyfd177jy";
};
+ outputs = [ "dev" "out" "doc" ];
+
# Fix some wrong hardcoded paths
preConfigure = ''
- sed -i -e "s|/usr/lib/terminfo|${ncurses}/lib/terminfo|" configure
- sed -i -e "s|/usr/lib/terminfo|${ncurses}/lib/terminfo|" src/sltermin.c
+ sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" configure
+ sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" src/sltermin.c
sed -i -e "s|/bin/ln|ln|" src/Makefile.in
+ sed -i -e "s|-ltermcap|-lncurses|" ./configure
'';
configureFlags = "--with-png=${libpng} --with-z=${zlib} --with-pcre=${pcre} --with-readline=${readline}";
- buildInputs = [ncurses pcre libpng zlib readline];
+ buildInputs = [ pcre libpng zlib readline ];
+ propagatedBuildInputs = [ ncurses ];
+
+ postInstall = ''
+ find "$out"/lib/ -name '*.so' -exec chmod +x "{}" \;
+ sed '/^Libs:/s/$/ -lncurses/' -i "$dev"/lib/pkgconfig/slang.pc
+ '';
- meta = {
+ meta = with stdenv.lib; {
description = "A multi-platform programmer's library designed to allow a developer to create robust software";
homepage = http://www.jedsoft.org/slang/;
- license = stdenv.lib.licenses.gpl2Plus;
- platforms = stdenv.lib.platforms.unix;
- maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.fuuzetsu ];
};
}
diff --git a/pkgs/development/libraries/smpeg/default.nix b/pkgs/development/libraries/smpeg/default.nix
index c2473ae2c5db5..2f300abebbf16 100644
--- a/pkgs/development/libraries/smpeg/default.nix
+++ b/pkgs/development/libraries/smpeg/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/smpeg-config \
--prefix PATH ":" "${pkgconfig}/bin" \
- --prefix PKG_CONFIG_PATH ":" "${SDL}/lib/pkgconfig"
+ --prefix PKG_CONFIG_PATH ":" "${SDL.dev}/lib/pkgconfig"
'';
meta = {
diff --git a/pkgs/development/libraries/socket_wrapper/default.nix b/pkgs/development/libraries/socket_wrapper/default.nix
index 0c6f40c8b1430..bff4f393d1dbe 100644
--- a/pkgs/development/libraries/socket_wrapper/default.nix
+++ b/pkgs/development/libraries/socket_wrapper/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ (stdenv.cc.libc.out or null) ];
meta = with stdenv.lib; {
description = "a library passing all socket communications through unix sockets";
diff --git a/pkgs/development/libraries/speex/default.nix b/pkgs/development/libraries/speex/default.nix
index 9a1c00e63b9d3..8e3cf899e40b4 100644
--- a/pkgs/development/libraries/speex/default.nix
+++ b/pkgs/development/libraries/speex/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
name = "speex-1.2rc2";
-
+
src = fetchurl {
url = "http://downloads.us.xiph.org/releases/speex/${name}.tar.gz";
sha256 = "14g8ph39inkrif749lzjm089g7kwk0hymq1a3i9ch5gz8xr7r8na";
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
postPatch = ''
sed -i '/AC_CONFIG_MACRO_DIR/i PKG_PROG_PKG_CONFIG' configure.ac
'';
-
+
+ outputs = [ "dev" "out" "doc" ];
+
nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ fftw speexdsp ];
diff --git a/pkgs/development/libraries/speexdsp/default.nix b/pkgs/development/libraries/speexdsp/default.nix
index 7112afbea8a29..56b1900837ac6 100644
--- a/pkgs/development/libraries/speexdsp/default.nix
+++ b/pkgs/development/libraries/speexdsp/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
patches = [ ./build-fix.patch ];
postPatch = "sed '3i#include ' -i ./include/speex/speexdsp_config_types.h.in";
+ outputs = [ "dev" "out" "doc" ];
+
nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ fftw ];
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 24be2c2a9c85d..feb5e5d30407a 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation {
sha1 = "c4b4dcd735a4daf5a2e2bb90f374484c8d4dad29";
};
+ outputs = [ "dev" "out" "bin" ];
+
buildInputs = lib.optionals interactive [ readline ncurses ];
configureFlags = [ "--enable-threadsafe" ];
diff --git a/pkgs/development/libraries/tokyo-cabinet/default.nix b/pkgs/development/libraries/tokyo-cabinet/default.nix
index 0b210a589d417..b8969588b3c55 100644
--- a/pkgs/development/libraries/tokyo-cabinet/default.nix
+++ b/pkgs/development/libraries/tokyo-cabinet/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
postInstall =
'' sed -i "$out/lib/pkgconfig/tokyocabinet.pc" \
- -e 's|-lz|-L${zlib}/lib -lz|g;
- s|-lbz2|-L${bzip2}/lib -lbz2|g'
+ -e 's|-lz|-L${zlib.out}/lib -lz|g;
+ s|-lbz2|-L${bzip2.out}/lib -lbz2|g'
'';
meta = {
diff --git a/pkgs/development/libraries/uid_wrapper/default.nix b/pkgs/development/libraries/uid_wrapper/default.nix
index 35d7f53173fb5..0675ec68b4e8a 100644
--- a/pkgs/development/libraries/uid_wrapper/default.nix
+++ b/pkgs/development/libraries/uid_wrapper/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ (stdenv.cc.libc.out or null) ];
meta = with stdenv.lib; {
description = "a wrapper for the user, group and hosts NSS API";
diff --git a/pkgs/development/libraries/webkitgtk/2.4.nix b/pkgs/development/libraries/webkitgtk/2.4.nix
index e8f0a3d4da7e8..cc7644f742d5c 100644
--- a/pkgs/development/libraries/webkitgtk/2.4.nix
+++ b/pkgs/development/libraries/webkitgtk/2.4.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchurl, perl, python, ruby, bison, gperf, flex
, pkgconfig, which, gettext, gobjectIntrospection
, gtk2, gtk3, wayland, libwebp, enchant, sqlite
-, libxml2, libsoup, libsecret, libxslt, harfbuzz
+, libxml2, libsoup, libsecret, libxslt, harfbuzz, xorg
, gst-plugins-base
, withGtk2 ? false
, enableIntrospection ? !stdenv.isDarwin
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk2 libwebp enchant
libxml2 libxslt
- gst-plugins-base sqlite
+ gst-plugins-base sqlite xorg.libXt
] ++ optionals enableCredentialStorage [
libsecret
] ++ (if stdenv.isDarwin then [
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 1abfcbb6c860e..cf22eb3aaddee 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -2,7 +2,7 @@
, pkgconfig, gettext, gobjectIntrospection, libnotify
, gtk2, gtk3, wayland, libwebp, enchant
, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
-, enableGeoLocation ? false, geoclue2, sqlite
+, enableGeoLocation ? false, geoclue2, sqlite, xorg
, enableCredentialStorage ? !stdenv.isDarwin
, gst-plugins-base, readline, libedit
}:
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk2 libwebp enchant libnotify
libxml2 libxslt harfbuzz libpthreadstubs
- gst-plugins-base
+ gst-plugins-base xorg.libXt
] ++ optionals enableCredentialStorage [
libsecret
] ++ (if stdenv.isDarwin then [
diff --git a/pkgs/development/libraries/wildmidi/default.nix b/pkgs/development/libraries/wildmidi/default.nix
index 8660d15e06a38..4dec0555ae9fe 100644
--- a/pkgs/development/libraries/wildmidi/default.nix
+++ b/pkgs/development/libraries/wildmidi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
- buildInputs = [ alsaLib ];
+ buildInputs = [ alsaLib stdenv.cc.libc/*couldn't find libm*/ ];
preConfigure = ''
substituteInPlace CMakeLists.txt \
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index 50220c227f7c8..e023665f07017 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -33,10 +33,10 @@ stdenv.mkDerivation rec {
# These variables are used by configure to find some dependencies.
SEARCH_INCLUDE =
- "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include";
+ "${libXinerama.dev}/include ${libSM.dev}/include ${libXxf86vm.dev}/include";
SEARCH_LIB =
- "${libXinerama}/lib ${libSM}/lib ${libXxf86vm}/lib "
- + optionalString withMesa "${mesa}/lib ";
+ "${libXinerama.out}/lib ${libSM.out}/lib ${libXxf86vm.out}/lib "
+ + optionalString withMesa "${mesa.out}/lib ";
# Work around a bug in configure.
NIX_CFLAGS_COMPILE = [ "-DHAVE_X11_XLIB_H=1" "-lX11" "-lcairo" ];
diff --git a/pkgs/development/libraries/x264/default.nix b/pkgs/development/libraries/x264/default.nix
index 3c24234349392..754b76de06174 100644
--- a/pkgs/development/libraries/x264/default.nix
+++ b/pkgs/development/libraries/x264/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
sed -i s,/bin/bash,${stdenv.shell}, configure version.sh
'';
+ outputs = [ "out" "lib" ]; # leaving 52 kB of headers
+
configureFlags = [ "--enable-shared" ]
++ stdenv.lib.optional (!stdenv.isi686) "--enable-pic"
++ stdenv.lib.optional (enable10bit) "--bit-depth=10";
diff --git a/pkgs/development/libraries/x265/default.nix b/pkgs/development/libraries/x265/default.nix
index 736c350bc0688..c41dc12bd2f1e 100644
--- a/pkgs/development/libraries/x265/default.nix
+++ b/pkgs/development/libraries/x265/default.nix
@@ -49,6 +49,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake yasm ];
+ NIX_LDFLAGS = "-L${stdenv.cc.libc.out}/lib"; #outputs TODO: this is strange
+
meta = with stdenv.lib; {
description = "Library for encoding h.265/HEVC video streams";
homepage = http://x265.org;
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 7a6f480215c73..59713bb8d205e 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -2,7 +2,7 @@
let version = "1.2.8"; in
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
name = "zlib-${version}";
src = fetchurl {
@@ -20,15 +20,31 @@ stdenv.mkDerivation (rec {
--replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
'';
- configureFlags = if static then "" else "--shared";
+ outputs = [ "dev" "out" "static" ];
+ setOutputFlags = false;
+ outputDoc = "dev"; # single tiny man3 page
+
preConfigure = ''
if test -n "$crossConfig"; then
export CC=$crossConfig-gcc
- configureFlags=${if static then "" else "--shared"}
fi
'';
+ configureFlags = stdenv.lib.optional (!static) "--shared";
+
+ postInstall = ''
+ moveToOutput lib/libz.a "$static"
+ ''
+ # jww (2015-01-06): Sometimes this library install as a .so, even on
+ # Darwin; others time it installs as a .dylib. I haven't yet figured out
+ # what causes this difference.
+ + stdenv.lib.optionalString stdenv.isDarwin ''
+ for file in $out/lib/*.so* $out/lib/*.dylib* ; do
+ install_name_tool -id "$file" $file
+ done
+ '';
+
# As zlib takes part in the stdenv building, we don't want references
# to the bootstrap-tools libgcc (as uses to happen on arm/mips)
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc "
@@ -58,13 +74,5 @@ stdenv.mkDerivation (rec {
license = licenses.zlib;
platforms = platforms.all;
};
-} // (if stdenv.isDarwin then {
- postInstall = ''
- # jww (2015-01-06): Sometimes this library install as a .so, even on
- # Darwin; others time it installs as a .dylib. I haven't yet figured out
- # what causes this difference.
- for file in $out/lib/*.so* $out/lib/*.dylib* ; do
- install_name_tool -id "$file" $file
- done
- '';
-} else {}))
+}
+
diff --git a/pkgs/development/mobile/androidenv/androidndk.nix b/pkgs/development/mobile/androidenv/androidndk.nix
index 595c98f76aaa2..0ae5fc3b5403f 100644
--- a/pkgs/development/mobile/androidenv/androidndk.nix
+++ b/pkgs/development/mobile/androidenv/androidndk.nix
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
find $out \( \
\( -type f -a -name "*.so*" \) -o \
\( -type f -a -perm -0100 \) \
- \) -exec patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-*so.? \
- --set-rpath ${zlib}/lib:${ncurses}/lib {} \;
+ \) -exec patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-*so.? \
+ --set-rpath ${stdenv.lib.makeLibraryPath [ zlib ncurses ]} {} \;
# fix ineffective PROGDIR / MYNDKDIR determination
for i in ndk-build ndk-gdb ndk-gdb-py
do
diff --git a/pkgs/development/mobile/androidenv/androidndk_r8e.nix b/pkgs/development/mobile/androidenv/androidndk_r8e.nix
index 90994ae708e50..428cef49a2d14 100644
--- a/pkgs/development/mobile/androidenv/androidndk_r8e.nix
+++ b/pkgs/development/mobile/androidenv/androidndk_r8e.nix
@@ -54,8 +54,8 @@ stdenv.mkDerivation rec {
find $out \( \
\( -type f -a -name "*.so*" \) -o \
\( -type f -a -perm -0100 \) \
- \) -exec patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-*so.? \
- --set-rpath ${zlib}/lib:${ncurses}/lib {} \;
+ \) -exec patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-*so.? \
+ --set-rpath ${zlib.out}/lib:${ncurses.out}/lib {} \;
# fix ineffective PROGDIR / MYNDKDIR determination
for i in ndk-build ndk-gdb ndk-gdb-py
do
diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index 01ba759f4f697..aa009cb301a33 100644
--- a/pkgs/development/mobile/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
@@ -7,6 +7,8 @@
}:
{ platformVersions, abiVersions, useGoogleAPIs, useExtraSupportLibs ? false, useGooglePlayServices ? false }:
+with { inherit (stdenv.lib) makeLibraryPath; };
+
stdenv.mkDerivation rec {
name = "android-sdk-${version}";
version = "24.4";
@@ -39,7 +41,7 @@ stdenv.mkDerivation rec {
for i in emulator emulator-arm emulator-mips emulator-x86 mksdcard
do
- patchelf --set-interpreter ${stdenv_32bit.cc.libc}/lib/ld-linux.so.2 $i
+ patchelf --set-interpreter ${stdenv_32bit.cc.libc.out}/lib/ld-linux.so.2 $i
patchelf --set-rpath ${stdenv_32bit.cc.cc}/lib $i
done
@@ -48,7 +50,7 @@ stdenv.mkDerivation rec {
for i in emulator64-arm emulator64-mips emulator64-x86
do
- patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $i
+ patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-linux-x86-64.so.2 $i
patchelf --set-rpath ${stdenv.cc.cc}/lib64 $i
done
''}
@@ -58,7 +60,7 @@ stdenv.mkDerivation rec {
wrapProgram `pwd`/android \
--prefix PATH : ${jdk}/bin \
- --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
+ --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ glib gtk libXtst ]}
wrapProgram `pwd`/uiautomatorviewer \
--prefix PATH : ${jdk}/bin \
@@ -74,7 +76,7 @@ stdenv.mkDerivation rec {
do
wrapProgram `pwd`/$i \
--prefix PATH : ${file}/bin \
- --suffix LD_LIBRARY_PATH : `pwd`/lib:${libX11_32bit}/lib:${libxcb_32bit}/lib:${libXau_32bit}/lib:${libXdmcp_32bit}/lib:${libXext_32bit}/lib:${mesa_32bit}/lib
+ --suffix LD_LIBRARY_PATH : `pwd`/lib:${makeLibraryPath [ libX11_32bit libxcb_32bit libXau_32bit libXdmcp_32bit libXext_32bit mesa_32bit ]}
done
${stdenv.lib.optionalString (stdenv.system == "x86_64-linux") ''
@@ -82,7 +84,7 @@ stdenv.mkDerivation rec {
do
wrapProgram `pwd`/$i \
--prefix PATH : ${file}/bin \
- --suffix LD_LIBRARY_PATH : `pwd`/lib:${libX11}/lib:${libxcb}/lib:${libXau}/lib:${libXdmcp}/lib:${libXext}/lib:${mesa}/lib:${alsaLib}/lib
+ --suffix LD_LIBRARY_PATH : `pwd`/lib:${makeLibraryPath [ libX11 libxcb libXau libXdmcp libXext mesa alsaLib ]}
done
''}
''}
@@ -94,11 +96,11 @@ stdenv.mkDerivation rec {
# The monitor requires some more patching
cd lib/monitor-x86
- patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux.so.2 monitor
- patchelf --set-rpath ${libX11}/lib:${libXext}/lib:${libXrender}/lib:${freetype}/lib:${fontconfig}/lib libcairo-swt.so
+ patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-linux.so.2 monitor
+ patchelf --set-rpath ${makeLibraryPath [ libX11 libXext libXrender freetype fontconfig ]} libcairo-swt.so
wrapProgram `pwd`/monitor \
- --prefix LD_LIBRARY_PATH : ${gtk}/lib:${atk}/lib:${stdenv.cc.cc}/lib:${libXtst}/lib
+ --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ gtk atk stdenv.cc.cc libXtst ]}
cd ../..
''
@@ -107,11 +109,11 @@ stdenv.mkDerivation rec {
# The monitor requires some more patching
cd lib/monitor-x86_64
- patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 monitor
- patchelf --set-rpath ${libX11}/lib:${libXext}/lib:${libXrender}/lib:${freetype}/lib:${fontconfig}/lib libcairo-swt.so
+ patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-linux-x86-64.so.2 monitor
+ patchelf --set-rpath ${makeLibraryPath [ libX11 libXext libXrender freetype fontconfig ]} libcairo-swt.so
wrapProgram `pwd`/monitor \
- --prefix LD_LIBRARY_PATH : ${gtk}/lib:${atk}/lib:${stdenv.cc.cc}/lib::${libXtst}/lib
+ --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ gtk atk stdenv.cc.cc libXtst ]}
cd ../..
''
diff --git a/pkgs/development/mobile/androidenv/build-tools.nix b/pkgs/development/mobile/androidenv/build-tools.nix
index 2918acd8c15e8..1f4bf6e4cfdf6 100644
--- a/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/pkgs/development/mobile/androidenv/build-tools.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
# Patch the interpreter
for i in aapt aidl bcc_compat dexdump llvm-rs-cc
do
- patchelf --set-interpreter ${stdenv_32bit.cc.libc}/lib/ld-linux.so.2 $i
+ patchelf --set-interpreter ${stdenv_32bit.cc.libc.out}/lib/ld-linux.so.2 $i
done
# These binaries need to find libstdc++ and libgcc_s
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
# These binaries also need zlib in addition to libstdc++
for i in arm-linux-androideabi-ld i686-linux-android-ld mipsel-linux-android-ld split-select zipalign
do
- patchelf --set-interpreter ${stdenv_32bit.cc.libc}/lib/ld-linux.so.2 $i
+ patchelf --set-interpreter ${stdenv_32bit.cc.libc.out}/lib/ld-linux.so.2 $i
patchelf --set-rpath ${stdenv_32bit.cc.cc}/lib:${zlib_32bit}/lib:`pwd`/lib $i
done
diff --git a/pkgs/development/mobile/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix
index 1243ba429a39a..1654b13d13b1a 100644
--- a/pkgs/development/mobile/androidenv/platform-tools.nix
+++ b/pkgs/development/mobile/androidenv/platform-tools.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
''
for i in adb dmtracedump fastboot hprof-conv sqlite3
do
- patchelf --set-interpreter ${stdenv_32bit.cc.libc}/lib/ld-linux.so.2 $i
+ patchelf --set-interpreter ${stdenv_32bit.cc.libc.out}/lib/ld-linux.so.2 $i
patchelf --set-rpath ${stdenv_32bit.cc.cc}/lib:`pwd`/lib $i
done
diff --git a/pkgs/development/mobile/flashtool/default.nix b/pkgs/development/mobile/flashtool/default.nix
index d22eeb6c21383..b33fc13224a39 100644
--- a/pkgs/development/mobile/flashtool/default.nix
+++ b/pkgs/development/mobile/flashtool/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
buildPhase = ''
ln -s ${platformTools}/platform-tools/adb x10flasher_lib/adb.linux
ln -s ${platformTools}/platform-tools/fastboot x10flasher_lib/fastboot.linux
- ln -s ${libusb1}/lib/libusb-1.0.so.0 ./x10flasher_lib/linux/lib32/libusbx-1.0.so
+ ln -s ${libusb1.out}/lib/libusb-1.0.so.0 ./x10flasher_lib/linux/lib32/libusbx-1.0.so
chmod +x x10flasher_lib/unyaffs.linux.x86 x10flasher_lib/bin2elf x10flasher_lib/bin2sin
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" x10flasher_lib/unyaffs.linux.x86
diff --git a/pkgs/development/ocaml-modules/camlzip/default.nix b/pkgs/development/ocaml-modules/camlzip/default.nix
index de800a295bcae..d392b5f789c1a 100644
--- a/pkgs/development/ocaml-modules/camlzip/default.nix
+++ b/pkgs/development/ocaml-modules/camlzip/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
postPatch = ''
substitute ${./META} META --subst-var-by VERSION "${version}"
substituteInPlace Makefile \
- --subst-var-by ZLIB_LIBDIR "${zlib}/lib" \
+ --subst-var-by ZLIB_LIBDIR "${zlib.out}/lib" \
--subst-var-by ZLIB_INCLUDE "${zlib}/include"
'';
diff --git a/pkgs/development/ocaml-modules/expat/default.nix b/pkgs/development/ocaml-modules/expat/default.nix
index f4837bd047f50..b6ee0d192e339 100644
--- a/pkgs/development/ocaml-modules/expat/default.nix
+++ b/pkgs/development/ocaml-modules/expat/default.nix
@@ -28,8 +28,8 @@ stdenv.mkDerivation {
postPatch = ''
substituteInPlace "unittest.ml" \
--replace "/home/maas/xml-samples/REC-xml-19980210.xml.txt" "${testcase}"
- substituteInPlace Makefile --replace "EXPAT_LIBDIR=/usr/local/lib" "EXPAT_LIBDIR=${expat}/lib" \
- substituteInPlace Makefile --replace "EXPAT_INCDIR=/usr/local/include" "EXPAT_INCDIR=${expat}/include" \
+ substituteInPlace Makefile --replace "EXPAT_LIBDIR=/usr/local/lib" "EXPAT_LIBDIR=${expat.out}/lib" \
+ substituteInPlace Makefile --replace "EXPAT_INCDIR=/usr/local/include" "EXPAT_INCDIR=${expat.dev}/include" \
'';
configurePhase = "true"; # Skip configure
diff --git a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
index 20362a51a7be3..9314481cbcfe8 100644
--- a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
+++ b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
@@ -12,7 +12,7 @@ buildPerlPackage rec {
cat > config.in <catdir( $sqlite_base, 'lib' );
+- $sqlite_inc = File::Spec->catdir( $sqlite_base, 'include' );
+- }
+- if ( $sqlite_local = (grep(/USE_LOCAL_SQLITE=.*/, @ARGV))[0] ) {
+- $sqlite_local =~ /=(.*)/;
+- $sqlite_local = "$1" ? 1 : 0;
+- if ( $sqlite_local ) {
+- # Keep these from making into CFLAGS/LDFLAGS
+- undef $sqlite_lib;
+- undef $sqlite_inc;
+- }
+- }
++my ($sqlite_local, $sqlite_lib, $sqlite_inc);
++if ( 1 ) {
++ $sqlite_lib = '@sqlite_out@/lib';
++ $sqlite_inc = '@sqlite_dev@/include';
+
+ # Now check for a compatible sqlite3
+ unless ( $sqlite_local ) {
diff --git a/pkgs/development/perl-modules/generic/builder.sh b/pkgs/development/perl-modules/generic/builder.sh
index 7c51bf1b59179..9ee8be87c028d 100644
--- a/pkgs/development/perl-modules/generic/builder.sh
+++ b/pkgs/development/perl-modules/generic/builder.sh
@@ -28,6 +28,7 @@ preConfigure() {
perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags
}
+
postFixup() {
# If a user installs a Perl package, she probably also wants its
# dependencies in the user environment (since Perl modules don't
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index 6cd4134cc9c41..91a004a7f686f 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -1,13 +1,15 @@
perl:
-{ buildInputs ? [], ... } @ attrs:
+{ buildInputs ? [], name, ... } @ attrs:
perl.stdenv.mkDerivation (
{
+ outputs = [ "out" "docdev" ];
+
doCheck = true;
-
+
checkTarget = "test";
-
+
# Prevent CPAN downloads.
PERL_AUTOINSTALL = "--skipdeps";
@@ -23,7 +25,7 @@ perl.stdenv.mkDerivation (
attrs
//
{
- name = "perl-" + attrs.name;
+ name = "perl-" + name;
builder = ./builder.sh;
buildInputs = buildInputs ++ [ perl ];
}
diff --git a/pkgs/development/python-modules/pygobject/default.nix b/pkgs/development/python-modules/pygobject/default.nix
index 6f71393304079..897210a4046c9 100644
--- a/pkgs/development/python-modules/pygobject/default.nix
+++ b/pkgs/development/python-modules/pygobject/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv";
};
- outputs = [ "out" "doc" ];
+ outputs = [ "out" "docdev" ];
configureFlags = "--disable-introspection";
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 68e9fc6b45854..7a7b603b449b3 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -2311,7 +2311,7 @@ let
xml2 = old.xml2.overrideDerivation (attrs: {
preConfigure = ''
- export LIBXML_INCDIR=${pkgs.libxml2}/include/libxml2
+ export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
patchShebangs configure
'';
});
@@ -2383,7 +2383,7 @@ let
});
devEMF = old.devEMF.overrideDerivation (attrs: {
- NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft}/lib -lXft";
+ NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
});
slfm = old.slfm.overrideDerivation (attrs: {
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 05be9090c84a3..24699ad690407 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -76,8 +76,8 @@ in
ncursesw = attrs: {
buildInputs = [ ncurses ];
buildFlags = [
- "--with-cflags=-I${ncurses}/include"
- "--with-ldflags=-L${ncurses}/lib"
+ "--with-cflags=-I${ncurses.dev}/include"
+ "--with-ldflags=-L${ncurses.out}/lib"
];
};
@@ -85,12 +85,12 @@ in
buildFlags = [
"--use-system-libraries"
"--with-zlib-dir=${zlib}"
- "--with-xml2-lib=${libxml2}/lib"
- "--with-xml2-include=${libxml2}/include/libxml2"
- "--with-xslt-lib=${libxslt}/lib"
- "--with-xslt-include=${libxslt}/include"
- "--with-exslt-lib=${libxslt}/lib"
- "--with-exslt-include=${libxslt}/include"
+ "--with-xml2-lib=${libxml2.out}/lib"
+ "--with-xml2-include=${libxml2.dev}/include/libxml2"
+ "--with-xslt-lib=${libxslt.out}/lib"
+ "--with-xslt-include=${libxslt.dev}/include"
+ "--with-exslt-lib=${libxslt.out}/lib"
+ "--with-exslt-include=${libxslt.dev}/include"
] ++ lib.optional stdenv.isDarwin "--with-iconv-dir=${libiconv}";
};
@@ -118,8 +118,8 @@ in
sqlite3 = attrs: {
buildFlags = [
- "--with-sqlite3-include=${sqlite}/include"
- "--with-sqlite3-lib=${sqlite}/lib"
+ "--with-sqlite3-include=${sqlite.dev}/include"
+ "--with-sqlite3-lib=${sqlite.out}/lib"
];
};
diff --git a/pkgs/development/tools/build-managers/cargo/snapshot.nix b/pkgs/development/tools/build-managers/cargo/snapshot.nix
index 4a779cc456e95..c01ba2b53860e 100644
--- a/pkgs/development/tools/build-managers/cargo/snapshot.nix
+++ b/pkgs/development/tools/build-managers/cargo/snapshot.nix
@@ -48,8 +48,8 @@ stdenv.mkDerivation {
mkdir -p "$out"
./install.sh "--prefix=$out"
'' + (if stdenv.isLinux then ''
- patchelf --interpreter "${stdenv.glibc}/lib/${stdenv.cc.dynamicLinker}" \
- --set-rpath "${stdenv.cc.cc}/lib/:${stdenv.cc.cc}/lib64/:${zlib}/lib" \
+ patchelf --interpreter "${stdenv.glibc.out}/lib/${stdenv.cc.dynamicLinker}" \
+ --set-rpath "${stdenv.cc.cc}/lib/:${stdenv.cc.cc}/lib64/:${zlib.out}/lib" \
"$out/bin/cargo"
'' else "") + postInstall;
}
diff --git a/pkgs/development/tools/build-managers/cmake/2.8.nix b/pkgs/development/tools/build-managers/cmake/2.8.nix
index 60a941a66375f..80fdce59607be 100644
--- a/pkgs/development/tools/build-managers/cmake/2.8.nix
+++ b/pkgs/development/tools/build-managers/cmake/2.8.nix
@@ -47,8 +47,9 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = optional wantPS ps;
- CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":" buildInputs;
-
+ CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":"
+ (concatMap (p: [ p p.out ]) buildInputs);
+
configureFlags =
"--docdir=/share/doc/${name} --mandir=/share/man --system-libs"
+ stdenv.lib.optionalString useQt4 " --qt-gui";
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index c8ed91b96fb0d..9d0ff6e1f1746 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl
+{ stdenv, fetchurl, pkgconfig
, bzip2, curl, expat, libarchive, xz, zlib
, useNcurses ? false, ncurses, useQt4 ? false, qt4
, wantPS ? false, ps ? null
@@ -25,26 +25,34 @@ stdenv.mkDerivation rec {
sha256 = "1yl0z422gr7zfc638chifv343vx0ig5gasvrh7nzf7b15488qgxp";
};
- enableParallelBuilding = true;
-
patches =
# Don't search in non-Nix locations such as /usr, but do search in
# Nixpkgs' Glibc.
optional (stdenv ? glibc) ./search-path-3.2.patch
++ optional stdenv.isCygwin ./3.2.2-cygwin.patch;
+ outputs = [ "out" "doc" ];
+ setOutputFlags = false;
+
+ setupHook = ./setup-hook.sh;
+
buildInputs =
- [ bzip2 curl expat libarchive xz zlib ]
+ [ setupHook pkgconfig bzip2 curl expat libarchive xz zlib ]
++ optional useNcurses ncurses
++ optional useQt4 qt4;
propagatedBuildInputs = optional wantPS ps;
- CMAKE_PREFIX_PATH = stdenv.lib.concatStringsSep ":" buildInputs;
-
+ preConfigure = with stdenv; optionalString (stdenv ? glibc)
+ ''
+ fixCmakeFiles .
+ substituteInPlace Modules/Platform/UnixPaths.cmake \
+ --subst-var-by glibc_bin ${glibc.bin or glibc} \
+ --subst-var-by glibc_dev ${glibc.dev or glibc} \
+ --subst-var-by glibc_lib ${glibc.out or glibc}
+ '';
configureFlags =
[ "--docdir=/share/doc/${name}"
- "--mandir=/share/man"
"--no-system-jsoncpp"
]
++ optional (!stdenv.isCygwin) "--system-libs"
@@ -52,22 +60,18 @@ stdenv.mkDerivation rec {
++ ["--"]
++ optional (!useNcurses) "-DBUILD_CursesDialog=OFF";
- setupHook = ./setup-hook.sh;
-
dontUseCmakeConfigure = true;
- preConfigure = optionalString (stdenv ? glibc)
- ''
- source $setupHook
- fixCmakeFiles .
- substituteInPlace Modules/Platform/UnixPaths.cmake \
- --subst-var-by glibc ${stdenv.glibc}
- '';
+ enableParallelBuilding = true;
+
+ preInstall = ''mkdir "$doc" '';
+
+ postInstall = ''moveToOutput "share/cmake-*/Help" "$doc" '';
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.cmake.org/;
description = "Cross-Platform Makefile Generator";
- platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.all;
- maintainers = with stdenv.lib.maintainers; [ urkud mornfall ttuegel ];
+ platforms = if useQt4 then qt4.meta.platforms else platforms.all;
+ maintainers = with maintainers; [ urkud mornfall ttuegel ];
};
}
diff --git a/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch b/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch
index b0447e7060712..0a2d4ad43ab7d 100644
--- a/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch
+++ b/pkgs/development/tools/build-managers/cmake/search-path-3.2.patch
@@ -53,21 +53,21 @@ index 20ee1d1..39834e6 100644
-
-list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
- /usr/pkg/bin
-+ "@glibc@"
++ "@glibc_bin@"
)
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
-+ "@glibc@/lib"
++ "@glibc_lib@/lib"
)
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include
-+ "@glibc@/include"
++ "@glibc_dev@/include"
)
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
- /usr/include
-+ "@glibc@/include"
++ "@glibc_dev@/include"
)
# Enable use of lib64 search path variants by default.
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 670376efdcab8..b14e9984bc3c4 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -13,7 +13,7 @@ fixCmakeFiles() {
}
cmakeConfigurePhase() {
- eval "$preConfigure"
+ runHook preConfigure
if [ -z "$dontFixCmake" ]; then
fixCmakeFiles .
@@ -53,10 +53,11 @@ cmakeConfigurePhase() {
cmake ${cmakeDir:-.} $cmakeFlags "${cmakeFlagsArray[@]}"
- eval "$postConfigure"
+ runHook postConfigure
}
if [ -z "$dontUseCmakeConfigure" -a -z "$configurePhase" ]; then
+ setOutputFlags=
configurePhase=cmakeConfigurePhase
fi
diff --git a/pkgs/development/tools/build-managers/gnumake/4.1/default.nix b/pkgs/development/tools/build-managers/gnumake/4.1/default.nix
index 9ac2010701828..de6f96ce99f6c 100644
--- a/pkgs/development/tools/build-managers/gnumake/4.1/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/4.1/default.nix
@@ -22,6 +22,8 @@ stdenv.mkDerivation {
./no-tty-name.patch
];
+ outputs = [ "out" "doc" ];
+
meta = {
homepage = http://www.gnu.org/software/make/;
description = "A tool to control the generation of non-source files from sources";
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index 0b16723866bfa..7373d8584c234 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -3,14 +3,14 @@
stdenv.mkDerivation rec {
name = "doxygen-1.8.11";
-
+
src = fetchurl {
url = "ftp://ftp.stack.nl/pub/users/dimitri/${name}.src.tar.gz";
sha256 = "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35";
};
nativeBuildInputs = [ cmake ];
-
+
buildInputs =
[ perl python flex bison ]
++ stdenv.lib.optional (qt4 != null) qt4
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices libiconv ];
cmakeFlags =
+ [ "-DICONV_INCLUDE_DIR=${libiconv}/include" ] ++
stdenv.lib.optional (qt4 != null) "-Dbuild_wizard=YES";
NIX_CFLAGS_COMPILE =
diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix
index bb70b1ad3641e..b080be846cd99 100644
--- a/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "0hpxcij9xx9ny3gs9p0iz4r8zslw8wqymbyababiyl7603a6x90y";
};
+ outputDocdev = "out";
+
# maybe there is a better way to pass the needed dtd and xsl files
# "-//OASIS//DTD DocBook XML V4.1.2//EN" and "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl"
preConfigure = ''
diff --git a/pkgs/development/tools/misc/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index bba50b3208920..d2ddcabc0b1eb 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
sha256 = "0sfmmy19k9z0j3f738fyk6ljf6b66410cvd5zzyplxi2683j10qs";
};
+ outputs = [ "dev" "bin" "lib" "out" "man" "info" ];
+
nativeBuildInputs = [ which pkgconfig perl ];
buildInputs = [ guile libxml2 ];
@@ -20,6 +22,17 @@ stdenv.mkDerivation rec {
substituteInPlace pkg/libopts/mklibsrc.sh --replace /tmp $TMPDIR
'';
+ postInstall = ''
+ mkdir -p $dev/bin
+ mv $bin/bin/autoopts-config $dev/bin
+
+ for f in $lib/lib/autogen/tpl-config.tlib $out/share/autogen/tpl-config.tlib; do
+ sed -e "s|$dev/include|/no-such-autogen-include-path|" -i $f
+ sed -e "s|$bin/bin|/no-such-autogen-bin-path|" -i $f
+ sed -e "s|$lib/lib|/no-such-autogen-lib-path|" -i $f
+ done
+ '';
+
#doCheck = true; # 2 tests fail because of missing /dev/tty
meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 9bcb87dd789e3..80b5643aad141 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
./fix-update-symbol-version.patch
];
- outputs = [ "out" "info" ];
+ outputs = (optional (cross == null) "dev") ++ [ "out" "info" ];
nativeBuildInputs = [ bison ];
buildInputs = [ zlib ];
@@ -75,6 +75,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ postFixup = optionalString (cross == null) "ln -s $out/bin $dev/bin"; # tools needed for development
+
meta = with stdenv.lib; {
description = "Tools for manipulating binaries (linker, assembler, etc.)";
longDescription = ''
diff --git a/pkgs/development/tools/misc/binutils/pt-pax-flags-20121023.patch b/pkgs/development/tools/misc/binutils/pt-pax-flags-20121023.patch
new file mode 100644
index 0000000000000..bb0785fe192ec
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/pt-pax-flags-20121023.patch
@@ -0,0 +1,1786 @@
+--- binutils-2.23/bfd/elf-bfd.h
++++ binutils-2.23/bfd/elf-bfd.h
+@@ -1577,6 +1577,9 @@ struct elf_obj_tdata
+ /* Segment flags for the PT_GNU_STACK segment. */
+ unsigned int stack_flags;
+
++ /* Segment flags for the PT_PAX_FLAGS segment. */
++ unsigned int pax_flags;
++
+ /* Symbol version definitions in external objects. */
+ Elf_Internal_Verdef *verdef;
+
+--- binutils-2.23/bfd/elf.c
++++ binutils-2.23/bfd/elf.c
+@@ -1158,6 +1158,7 @@ get_segment_type (unsigned int p_type)
+ case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
+ case PT_GNU_STACK: pt = "STACK"; break;
+ case PT_GNU_RELRO: pt = "RELRO"; break;
++ case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break;
+ default: pt = NULL; break;
+ }
+ return pt;
+@@ -2477,6 +2478,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int hdr_index)
+ case PT_GNU_RELRO:
+ return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "relro");
+
++ case PT_PAX_FLAGS:
++ return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "pax_flags");
++
+ default:
+ /* Check for any processor-specific program segment types. */
+ bed = get_elf_backend_data (abfd);
+@@ -3551,6 +3555,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
+ ++segs;
+ }
+
++ {
++ /* We need a PT_PAX_FLAGS segment. */
++ ++segs;
++ }
++
+ for (s = abfd->sections; s != NULL; s = s->next)
+ {
+ if ((s->flags & SEC_LOAD) != 0
+@@ -4153,6 +4162,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
+ }
+ }
+
++ {
++ amt = sizeof (struct elf_segment_map);
++ m = bfd_zalloc (abfd, amt);
++ if (m == NULL)
++ goto error_return;
++ m->next = NULL;
++ m->p_type = PT_PAX_FLAGS;
++ m->p_flags = elf_tdata (abfd)->pax_flags;
++ m->p_flags_valid = 1;
++
++ *pm = m;
++ pm = &m->next;
++ }
++
+ free (sections);
+ elf_tdata (abfd)->segment_map = mfirst;
+ }
+@@ -5417,7 +5440,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
+ 6. PT_TLS segment includes only SHF_TLS sections.
+ 7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments.
+ 8. PT_DYNAMIC should not contain empty sections at the beginning
+- (with the possible exception of .dynamic). */
++ (with the possible exception of .dynamic).
++ 9. PT_PAX_FLAGS segments do not include any sections. */
+ #define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed) \
+ ((((segment->p_paddr \
+ ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \
+@@ -5425,6 +5449,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
+ && (section->flags & SEC_ALLOC) != 0) \
+ || IS_NOTE (segment, section)) \
+ && segment->p_type != PT_GNU_STACK \
++ && segment->p_type != PT_PAX_FLAGS \
+ && (segment->p_type != PT_TLS \
+ || (section->flags & SEC_THREAD_LOCAL)) \
+ && (segment->p_type == PT_LOAD \
+--- binutils-2.23/bfd/elflink.c
++++ binutils-2.23/bfd/elflink.c
+@@ -5545,16 +5545,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
+ return TRUE;
+
+ bed = get_elf_backend_data (output_bfd);
++
++ elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC;
++ if (info->execheap)
++ elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT;
++ else if (info->noexecheap)
++ elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
++
+ if (info->execstack)
+- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
++ {
++ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
++ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
++ }
+ else if (info->noexecstack)
+- elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
++ {
++ elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
++ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
++ }
+ else
+ {
+ bfd *inputobj;
+ asection *notesec = NULL;
+ int exec = 0;
+
++ elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
+ for (inputobj = info->input_bfds;
+ inputobj;
+ inputobj = inputobj->link_next)
+@@ -5567,7 +5581,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
+ if (s)
+ {
+ if (s->flags & SEC_CODE)
+- exec = PF_X;
++ {
++ elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP;
++ elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
++ exec = PF_X;
++ }
+ notesec = s;
+ }
+ else if (bed->default_execstack)
+--- binutils-2.23/binutils/readelf.c
++++ binutils-2.23/binutils/readelf.c
+@@ -2740,6 +2740,7 @@ get_segment_type (unsigned long p_type)
+ return "GNU_EH_FRAME";
+ case PT_GNU_STACK: return "GNU_STACK";
+ case PT_GNU_RELRO: return "GNU_RELRO";
++ case PT_PAX_FLAGS: return "PAX_FLAGS";
+
+ default:
+ if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
+--- binutils-2.23/include/bfdlink.h
++++ binutils-2.23/include/bfdlink.h
+@@ -322,6 +322,14 @@ struct bfd_link_info
+ /* TRUE if PT_GNU_RELRO segment should be created. */
+ unsigned int relro: 1;
+
++ /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT
++ flags. */
++ unsigned int execheap: 1;
++
++ /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT
++ flags. */
++ unsigned int noexecheap: 1;
++
+ /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
+ should be created. */
+ unsigned int eh_frame_hdr: 1;
+--- binutils-2.23/include/elf/common.h
++++ binutils-2.23/include/elf/common.h
+@@ -429,6 +429,7 @@
+ #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
+ #define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
+ #define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
++#define PT_PAX_FLAGS (PT_LOOS + 0x5041580) /* PaX flags */
+
+ /* Program segment permissions, in program header p_flags field. */
+
+@@ -439,6 +440,21 @@
+ #define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
+ #define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */
+
++/* Flags to control PaX behavior. */
++
++#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */
++#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */
++#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */
++#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */
++#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */
++#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */
++#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */
++#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */
++#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */
++#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */
++#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */
++#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */
++
+ /* Values for section header, sh_type field. */
+
+ #define SHT_NULL 0 /* Section header table entry unused */
+--- binutils-2.23/ld/emultempl/elf32.em
++++ binutils-2.23/ld/emultempl/elf32.em
+@@ -2285,6 +2285,16 @@ fragment <:
++[a-f0-9]+ <.text>:
+ [ ]*[a-f0-9]+: 0b 60 80 02 00 24 \[MMI\] addl r12=32,r1;;
+ [ ]*[a-f0-9]+: c0 c0 04 00 48 00 addl r12=24,r1
+ [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;;
+--- binutils-2.23/ld/testsuite/ld-ia64/merge2.d
++++ binutils-2.23/ld/testsuite/ld-ia64/merge2.d
+@@ -4,7 +4,7 @@
+ #objdump: -d
+
+ #...
+-0+1e0 <.text>:
++[a-f0-9]+ <.text>:
+ [ ]*[a-f0-9]+: 0b 60 80 02 00 24 \[MMI\] addl r12=32,r1;;
+ [ ]*[a-f0-9]+: c0 c0 04 00 48 00 addl r12=24,r1
+ [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;;
+--- binutils-2.23/ld/testsuite/ld-ia64/merge3.d
++++ binutils-2.23/ld/testsuite/ld-ia64/merge3.d
+@@ -4,7 +4,7 @@
+ #objdump: -d
+
+ #...
+-0+210 <.text>:
++[a-f0-9]+ <.text>:
+ [ ]*[a-f0-9]+: 0b 60 80 02 00 24 \[MMI\] addl r12=32,r1;;
+ [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1
+ [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;;
+--- binutils-2.23/ld/testsuite/ld-ia64/merge4.d
++++ binutils-2.23/ld/testsuite/ld-ia64/merge4.d
+@@ -4,7 +4,7 @@
+ #objdump: -d
+
+ #...
+-0+240 <.text>:
++[a-f0-9]+ <.text>:
+ [ ]*[a-f0-9]+: 0b 60 80 02 00 24 \[MMI\] addl r12=32,r1;;
+ [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1
+ [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;;
+--- binutils-2.23/ld/testsuite/ld-ia64/merge5.d
++++ binutils-2.23/ld/testsuite/ld-ia64/merge5.d
+@@ -4,7 +4,7 @@
+ #objdump: -d
+
+ #...
+-0+270 <.text>:
++[a-f0-9]+ <.text>:
+ [ ]*[a-f0-9]+: 0b 60 80 02 00 24 \[MMI\] addl r12=32,r1;;
+ [ ]*[a-f0-9]+: c0 40 05 00 48 00 addl r12=40,r1
+ [ ]*[a-f0-9]+: 00 00 04 00 nop.i 0x0;;
+--- binutils-2.23/ld/testsuite/ld-ia64/tlsbin.rd
++++ binutils-2.23/ld/testsuite/ld-ia64/tlsbin.rd
+@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
+
+ Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+- +PHDR +0x0+40 0x40+40 0x40+40 0x0+188 0x0+188 R E 0x8
+- +INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
++ +PHDR +0x0+40 0x40+40 0x40+40 (0x[0-9a-f]+) \1 R E 0x8
++ +INTERP +0x0+([0-9a-f]+) (0x40+\1) \2 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
+ .*Requesting program interpreter.*
+ +LOAD +0x0+ 0x40+ 0x40+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ R E 0x10000
+ +LOAD +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000
+ +DYNAMIC +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+150 0x0+150 RW +0x8
+ +TLS +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+60 0x0+a0 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ +IA_64_UNWIND .* R +0x8
+ #...
+
+--- binutils-2.23/ld/testsuite/ld-ia64/tlspic.rd
++++ binutils-2.23/ld/testsuite/ld-ia64/tlspic.rd
+@@ -40,6 +40,7 @@ Program Headers:
+ +LOAD +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000
+ +DYNAMIC +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+140 0x0+140 RW +0x8
+ +TLS +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+60 0x0+80 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ +IA_64_UNWIND +0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+18 0x0+18 R +0x8
+ #...
+
+--- binutils-2.23/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
++++ binutils-2.23/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
+@@ -8,9 +8,9 @@
+ .*: +file format.*
+
+ Disassembly of section \.text:
+-004000b0 <[^>]*> 3c1c0043 lui gp,0x43
+-004000b4 <[^>]*> 279c9ff0 addiu gp,gp,-24592
+-004000b8 <[^>]*> afbc0008 sw gp,8\(sp\)
++004000d0 <[^>]*> 3c1c0043 lui gp,0x43
++004000d4 <[^>]*> 279c9ff0 addiu gp,gp,-24592
++004000d8 <[^>]*> afbc0008 sw gp,8\(sp\)
+ #...
+ 00408d60 <[^>]*> 3c1c0043 lui gp,0x43
+ 00408d64 <[^>]*> 279c2c98 addiu gp,gp,11416
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is DYN \(Shared object file\)
+ Entry point .*
+-There are 5 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -9,6 +9,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+00000 * 0x0+00000 [^ ]+ * [^ ]+ * R E * 0x.*
+ * LOAD * [^ ]+ * 0x0+10000 * 0x0+10000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+00400 * 0x0+00400 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -18,3 +19,4 @@ Program Headers:
+ *0*2 * \.data \.got *
+ *0*3 * \.dynamic *
+ *0*4 *
++ *0*5 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is EXEC \(Executable file\)
+ Entry point 0x44000
+-There are 8 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -13,6 +13,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -25,3 +26,4 @@ Program Headers:
+ *0*5 *\.got \.data *
+ *0*6 *\.dynamic *
+ *0*7 *
++ *0*8 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is EXEC \(Executable file\)
+ Entry point 0x44000
+-There are 8 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -13,6 +13,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -25,3 +26,4 @@ Program Headers:
+ *0*5 * \.got \.data \.bss *
+ *0*6 * \.dynamic *
+ *0*7 *
++ *0*8 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is EXEC \(Executable file\)
+ Entry point 0x44000
+-There are 8 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -13,6 +13,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -25,3 +26,4 @@ Program Headers:
+ *0*5 * \.got \.data \.bss *
+ *0*6 * \.dynamic *
+ *0*7 *
++ *0*8 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is EXEC \(Executable file\)
+ Entry point 0x44000
+-There are 8 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -13,6 +13,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -25,3 +26,4 @@ Program Headers:
+ *0*5 * \.got \.data \.bss *
+ *0*6 * \.dynamic *
+ *0*7 *
++ *0*8 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is EXEC \(Executable file\)
+ Entry point 0x44000
+-There are 7 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -12,6 +12,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -23,3 +24,4 @@ Program Headers:
+ *0*4 * \.got \.data \.bss *
+ *0*5 * \.dynamic *
+ *0*6 *
++ *0*7 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd
++++ binutils-2.23/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd
+@@ -1,7 +1,7 @@
+
+ Elf file type is EXEC \(Executable file\)
+ Entry point 0x44000
+-There are 8 program headers, starting at offset .*
++There are [0-9] program headers, starting at offset .*
+
+ Program Headers:
+ * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
+@@ -13,6 +13,7 @@ Program Headers:
+ * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW * 0x.*
+ * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
++ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ * NULL * .*
+
+ *Section to Segment mapping:
+@@ -25,3 +26,4 @@ Program Headers:
+ *0*5 * \.got \.data \.bss *
+ *0*6 * \.dynamic *
+ *0*7 *
++ *0*8 *
+--- binutils-2.23/ld/testsuite/ld-mips-elf/tlsbin-o32.d
++++ binutils-2.23/ld/testsuite/ld-mips-elf/tlsbin-o32.d
+@@ -2,42 +2,42 @@
+
+ Disassembly of section .text:
+
+-004000d0 <__start>:
+- 4000d0: 3c1c0fc0 lui gp,0xfc0
+- 4000d4: 279c7f30 addiu gp,gp,32560
+- 4000d8: 0399e021 addu gp,gp,t9
+- 4000dc: 27bdfff0 addiu sp,sp,-16
+- 4000e0: afbe0008 sw s8,8\(sp\)
+- 4000e4: 03a0f021 move s8,sp
+- 4000e8: afbc0000 sw gp,0\(sp\)
+- 4000ec: 8f998018 lw t9,-32744\(gp\)
+- 4000f0: 27848028 addiu a0,gp,-32728
+- 4000f4: 0320f809 jalr t9
+- 4000f8: 00000000 nop
+- 4000fc: 8fdc0000 lw gp,0\(s8\)
+- 400100: 00000000 nop
+- 400104: 8f998018 lw t9,-32744\(gp\)
+- 400108: 27848020 addiu a0,gp,-32736
+- 40010c: 0320f809 jalr t9
+- 400110: 00000000 nop
+- 400114: 8fdc0000 lw gp,0\(s8\)
+- 400118: 00401021 move v0,v0
+- 40011c: 3c030000 lui v1,0x0
+- 400120: 24638000 addiu v1,v1,-32768
+- 400124: 00621821 addu v1,v1,v0
+- 400128: 7c02283b rdhwr v0,\$5
+- 40012c: 8f83801c lw v1,-32740\(gp\)
+- 400130: 00000000 nop
+- 400134: 00621821 addu v1,v1,v0
+- 400138: 7c02283b rdhwr v0,\$5
+- 40013c: 3c030000 lui v1,0x0
+- 400140: 24639004 addiu v1,v1,-28668
+- 400144: 00621821 addu v1,v1,v0
+- 400148: 03c0e821 move sp,s8
+- 40014c: 8fbe0008 lw s8,8\(sp\)
+- 400150: 03e00008 jr ra
+- 400154: 27bd0010 addiu sp,sp,16
++00400[0-9a-f]{3} <__start>:
++ 400[0-9a-f]{3}: 3c1c0fc0 lui gp,0xfc0
++ 400[0-9a-f]{3}: 279c7f30 addiu gp,gp,32560
++ 400[0-9a-f]{3}: 0399e021 addu gp,gp,t9
++ 400[0-9a-f]{3}: 27bdfff0 addiu sp,sp,-16
++ 400[0-9a-f]{3}: afbe0008 sw s8,8\(sp\)
++ 400[0-9a-f]{3}: 03a0f021 move s8,sp
++ 400[0-9a-f]{3}: afbc0000 sw gp,0\(sp\)
++ 400[0-9a-f]{3}: 8f998018 lw t9,-32744\(gp\)
++ 400[0-9a-f]{3}: 27848028 addiu a0,gp,-32728
++ 400[0-9a-f]{3}: 0320f809 jalr t9
++ 400[0-9a-f]{3}: 00000000 nop
++ 400[0-9a-f]{3}: 8fdc0000 lw gp,0\(s8\)
++ 400[0-9a-f]{3}: 00000000 nop
++ 400[0-9a-f]{3}: 8f998018 lw t9,-32744\(gp\)
++ 400[0-9a-f]{3}: 27848020 addiu a0,gp,-32736
++ 400[0-9a-f]{3}: 0320f809 jalr t9
++ 400[0-9a-f]{3}: 00000000 nop
++ 400[0-9a-f]{3}: 8fdc0000 lw gp,0\(s8\)
++ 400[0-9a-f]{3}: 00401021 move v0,v0
++ 400[0-9a-f]{3}: 3c030000 lui v1,0x0
++ 400[0-9a-f]{3}: 24638000 addiu v1,v1,-32768
++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0
++ 400[0-9a-f]{3}: 7c02283b rdhwr v0,\$5
++ 400[0-9a-f]{3}: 8f83801c lw v1,-32740\(gp\)
++ 400[0-9a-f]{3}: 00000000 nop
++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0
++ 400[0-9a-f]{3}: 7c02283b rdhwr v0,\$5
++ 400[0-9a-f]{3}: 3c030000 lui v1,0x0
++ 400[0-9a-f]{3}: 24639004 addiu v1,v1,-28668
++ 400[0-9a-f]{3}: 00621821 addu v1,v1,v0
++ 400[0-9a-f]{3}: 03c0e821 move sp,s8
++ 400[0-9a-f]{3}: 8fbe0008 lw s8,8\(sp\)
++ 400[0-9a-f]{3}: 03e00008 jr ra
++ 400[0-9a-f]{3}: 27bd0010 addiu sp,sp,16
+
+-00400158 <__tls_get_addr>:
+- 400158: 03e00008 jr ra
+- 40015c: 00000000 nop
++00400[0-9a-f]{3} <__tls_get_addr>:
++ 400[0-9a-f]{3}: 03e00008 jr ra
++ 400[0-9a-f]{3}: 00000000 nop
+--- binutils-2.23/ld/testsuite/ld-powerpc/tls.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tls.d
+@@ -9,45 +9,45 @@
+
+ Disassembly of section \.text:
+
+-0+100000e8 <_start>:
+- 100000e8: 3c 6d 00 00 addis r3,r13,0
+- 100000ec: 60 00 00 00 nop
+- 100000f0: 38 63 90 78 addi r3,r3,-28552
+- 100000f4: 3c 6d 00 00 addis r3,r13,0
+- 100000f8: 60 00 00 00 nop
+- 100000fc: 38 63 10 00 addi r3,r3,4096
+- 10000100: 3c 6d 00 00 addis r3,r13,0
+- 10000104: 60 00 00 00 nop
+- 10000108: 38 63 90 40 addi r3,r3,-28608
+- 1000010c: 3c 6d 00 00 addis r3,r13,0
+- 10000110: 60 00 00 00 nop
+- 10000114: 38 63 10 00 addi r3,r3,4096
+- 10000118: 39 23 80 48 addi r9,r3,-32696
+- 1000011c: 3d 23 00 00 addis r9,r3,0
+- 10000120: 81 49 80 50 lwz r10,-32688\(r9\)
+- 10000124: e9 22 80 10 ld r9,-32752\(r2\)
+- 10000128: 7d 49 18 2a ldx r10,r9,r3
+- 1000012c: 3d 2d 00 00 addis r9,r13,0
+- 10000130: a1 49 90 60 lhz r10,-28576\(r9\)
+- 10000134: 89 4d 90 68 lbz r10,-28568\(r13\)
+- 10000138: 3d 2d 00 00 addis r9,r13,0
+- 1000013c: 99 49 90 70 stb r10,-28560\(r9\)
+- 10000140: 3c 6d 00 00 addis r3,r13,0
+- 10000144: 60 00 00 00 nop
+- 10000148: 38 63 90 00 addi r3,r3,-28672
+- 1000014c: 3c 6d 00 00 addis r3,r13,0
+- 10000150: 60 00 00 00 nop
+- 10000154: 38 63 10 00 addi r3,r3,4096
+- 10000158: f9 43 80 08 std r10,-32760\(r3\)
+- 1000015c: 3d 23 00 00 addis r9,r3,0
+- 10000160: 91 49 80 10 stw r10,-32752\(r9\)
+- 10000164: e9 22 80 08 ld r9,-32760\(r2\)
+- 10000168: 7d 49 19 2a stdx r10,r9,r3
+- 1000016c: 3d 2d 00 00 addis r9,r13,0
+- 10000170: b1 49 90 60 sth r10,-28576\(r9\)
+- 10000174: e9 4d 90 2a lwa r10,-28632\(r13\)
+- 10000178: 3d 2d 00 00 addis r9,r13,0
+- 1000017c: a9 49 90 30 lha r10,-28624\(r9\)
++0+10000[0-9a-f]{3} <_start>:
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 78 addi r3,r3,-28552
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 40 addi r3,r3,-28608
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 10000[0-9a-f]{3}: 39 23 80 48 addi r9,r3,-32696
++ 10000[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0
++ 10000[0-9a-f]{3}: 81 49 80 50 lwz r10,-32688\(r9\)
++ 10000[0-9a-f]{3}: e9 22 80 10 ld r9,-32752\(r2\)
++ 10000[0-9a-f]{3}: 7d 49 18 2a ldx r10,r9,r3
++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0
++ 10000[0-9a-f]{3}: a1 49 90 60 lhz r10,-28576\(r9\)
++ 10000[0-9a-f]{3}: 89 4d 90 68 lbz r10,-28568\(r13\)
++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0
++ 10000[0-9a-f]{3}: 99 49 90 70 stb r10,-28560\(r9\)
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 10000[0-9a-f]{3}: f9 43 80 08 std r10,-32760\(r3\)
++ 10000[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0
++ 10000[0-9a-f]{3}: 91 49 80 10 stw r10,-32752\(r9\)
++ 10000[0-9a-f]{3}: e9 22 80 08 ld r9,-32760\(r2\)
++ 10000[0-9a-f]{3}: 7d 49 19 2a stdx r10,r9,r3
++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0
++ 10000[0-9a-f]{3}: b1 49 90 60 sth r10,-28576\(r9\)
++ 10000[0-9a-f]{3}: e9 4d 90 2a lwa r10,-28632\(r13\)
++ 10000[0-9a-f]{3}: 3d 2d 00 00 addis r9,r13,0
++ 10000[0-9a-f]{3}: a9 49 90 30 lha r10,-28624\(r9\)
+
+-0+10000180 <\.__tls_get_addr>:
+- 10000180: 4e 80 00 20 blr
++0+10000[0-9a-f]{3} <\.__tls_get_addr>:
++ 10000[0-9a-f]{3}: 4e 80 00 20 blr
+--- binutils-2.23/ld/testsuite/ld-powerpc/tls.g
++++ binutils-2.23/ld/testsuite/ld-powerpc/tls.g
+@@ -8,5 +8,5 @@
+ .*: +file format elf64-powerpc
+
+ Contents of section \.got:
+- 100101e0 00000000 100181e0 ffffffff ffff8018 .*
+- 100101f0 ffffffff ffff8058 .*
++ 10010([0-9a-f]{3}) 00000000 10018\1 ffffffff ffff8018 .*
++ 10010[0-9a-f]{3} ffffffff ffff8058 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tls32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tls32.d
+@@ -9,42 +9,42 @@
+
+ Disassembly of section \.text:
+
+-0+1800094 <_start>:
+- 1800094: 3c 62 00 00 addis r3,r2,0
+- 1800098: 38 63 90 3c addi r3,r3,-28612
+- 180009c: 3c 62 00 00 addis r3,r2,0
+- 18000a0: 38 63 10 00 addi r3,r3,4096
+- 18000a4: 3c 62 00 00 addis r3,r2,0
+- 18000a8: 38 63 90 20 addi r3,r3,-28640
+- 18000ac: 3c 62 00 00 addis r3,r2,0
+- 18000b0: 38 63 10 00 addi r3,r3,4096
+- 18000b4: 39 23 80 24 addi r9,r3,-32732
+- 18000b8: 3d 23 00 00 addis r9,r3,0
+- 18000bc: 81 49 80 28 lwz r10,-32728\(r9\)
+- 18000c0: 3d 22 00 00 addis r9,r2,0
+- 18000c4: a1 49 90 30 lhz r10,-28624\(r9\)
+- 18000c8: 89 42 90 34 lbz r10,-28620\(r2\)
+- 18000cc: 3d 22 00 00 addis r9,r2,0
+- 18000d0: 99 49 90 38 stb r10,-28616\(r9\)
+- 18000d4: 3c 62 00 00 addis r3,r2,0
+- 18000d8: 38 63 90 00 addi r3,r3,-28672
+- 18000dc: 3c 62 00 00 addis r3,r2,0
+- 18000e0: 38 63 10 00 addi r3,r3,4096
+- 18000e4: 91 43 80 04 stw r10,-32764\(r3\)
+- 18000e8: 3d 23 00 00 addis r9,r3,0
+- 18000ec: 91 49 80 08 stw r10,-32760\(r9\)
+- 18000f0: 3d 22 00 00 addis r9,r2,0
+- 18000f4: b1 49 90 30 sth r10,-28624\(r9\)
+- 18000f8: a1 42 90 14 lhz r10,-28652\(r2\)
+- 18000fc: 3d 22 00 00 addis r9,r2,0
+- 1800100: a9 49 90 18 lha r10,-28648\(r9\)
++0+1800[0-9a-f]{3} <_start>:
++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0
++ 1800[0-9a-f]{3}: 38 63 90 3c addi r3,r3,-28612
++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0
++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0
++ 1800[0-9a-f]{3}: 38 63 90 20 addi r3,r3,-28640
++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0
++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 1800[0-9a-f]{3}: 39 23 80 24 addi r9,r3,-32732
++ 1800[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0
++ 1800[0-9a-f]{3}: 81 49 80 28 lwz r10,-32728\(r9\)
++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0
++ 1800[0-9a-f]{3}: a1 49 90 30 lhz r10,-28624\(r9\)
++ 1800[0-9a-f]{3}: 89 42 90 34 lbz r10,-28620\(r2\)
++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0
++ 1800[0-9a-f]{3}: 99 49 90 38 stb r10,-28616\(r9\)
++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0
++ 1800[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672
++ 1800[0-9a-f]{3}: 3c 62 00 00 addis r3,r2,0
++ 1800[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 1800[0-9a-f]{3}: 91 43 80 04 stw r10,-32764\(r3\)
++ 1800[0-9a-f]{3}: 3d 23 00 00 addis r9,r3,0
++ 1800[0-9a-f]{3}: 91 49 80 08 stw r10,-32760\(r9\)
++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0
++ 1800[0-9a-f]{3}: b1 49 90 30 sth r10,-28624\(r9\)
++ 1800[0-9a-f]{3}: a1 42 90 14 lhz r10,-28652\(r2\)
++ 1800[0-9a-f]{3}: 3d 22 00 00 addis r9,r2,0
++ 1800[0-9a-f]{3}: a9 49 90 18 lha r10,-28648\(r9\)
+
+-0+1800104 <__tls_get_addr>:
+- 1800104: 4e 80 00 20 blr
++0+1800[0-9a-f]{3} <__tls_get_addr>:
++ 1800[0-9a-f]{3}: 4e 80 00 20 blr
+ Disassembly of section \.got:
+
+-0+1810128 <_GLOBAL_OFFSET_TABLE_-0x4>:
+- 1810128: 4e 80 00 21 blrl
++0+1810[0-9a-f]{3} <_GLOBAL_OFFSET_TABLE_-0x4>:
++ 1810[0-9a-f]{3}: 4e 80 00 21 blrl
+
+-0+181012c <_GLOBAL_OFFSET_TABLE_>:
++0+1810[0-9a-f]{3} <_GLOBAL_OFFSET_TABLE_>:
+ \.\.\.
+--- binutils-2.23/ld/testsuite/ld-powerpc/tls32.g
++++ binutils-2.23/ld/testsuite/ld-powerpc/tls32.g
+@@ -8,4 +8,4 @@
+ .*: +file format elf32-powerpc
+
+ Contents of section \.got:
+- 1810128 4e800021 00000000 00000000 00000000 .*
++ 18101[0-9a-f]{2} 4e800021 00000000 00000000 00000000 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tls32.t
++++ binutils-2.23/ld/testsuite/ld-powerpc/tls32.t
+@@ -8,5 +8,5 @@
+ .*: +file format elf32-powerpc
+
+ Contents of section \.tdata:
+- 1810108 12345678 23456789 3456789a 456789ab .*
+- 1810118 56789abc 6789abcd 789abcde 00c0ffee .*
++ 18101[0-9a-f]{2} 12345678 23456789 3456789a 456789ab .*
++ 18101[0-9a-f]{2} 56789abc 6789abcd 789abcde 00c0ffee .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsexe32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsexe32.d
+@@ -44,4 +44,4 @@ Disassembly of section \.got:
+ .*: 4e 80 00 21 blrl
+
+ .* <_GLOBAL_OFFSET_TABLE_>:
+-.*: 01 81 02 b8 00 00 00 00 00 00 00 00 .*
++.*: 01 81 02 [bd]8 00 00 00 00 00 00 00 00 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsexe32.g
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsexe32.g
+@@ -8,4 +8,4 @@
+
+ Contents of section \.got:
+ .* 00000000 00000000 00000000 4e800021 .*
+-.* 018102b8 00000000 00000000 .*
++.* 018102[bd]8 00000000 00000000 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsexe32.r
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsexe32.r
+@@ -33,13 +33,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
+
+ Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+- +PHDR +0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4
+- +INTERP +0x0000f4 0x018000f4 0x018000f4 0x00011 0x00011 R +0x1
++ +PHDR +0x000034 0x01800034 0x01800034 (0x000[0-9a-f]{2}) \1 R E 0x4
++ +INTERP +0x000([0-9a-f]{3}) 0x01800\1 0x01800\1 0x00011 0x00011 R +0x1
+ +\[Requesting program interpreter: .*\]
+ +LOAD .* R E 0x10000
+ +LOAD .* RWE 0x10000
+ +DYNAMIC .* RW +0x4
+ +TLS .* 0x0001c 0x00038 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections\.\.\.
+@@ -49,6 +50,7 @@ Program Headers:
+ +03 +\.tdata \.dynamic \.got \.plt
+ +04 +\.dynamic
+ +05 +\.tdata \.tbss
++ +06 +
+
+ Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
+ Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsmark.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsmark.d
+@@ -9,29 +9,29 @@
+
+ Disassembly of section \.text:
+
+-0+100000e8 <_start>:
+- 100000e8: 48 00 00 18 b 10000100 <_start\+0x18>
+- 100000ec: 60 00 00 00 nop
+- 100000f0: 38 63 90 00 addi r3,r3,-28672
+- 100000f4: e8 83 00 00 ld r4,0\(r3\)
+- 100000f8: 3c 6d 00 00 addis r3,r13,0
+- 100000fc: 48 00 00 0c b 10000108 <_start\+0x20>
+- 10000100: 3c 6d 00 00 addis r3,r13,0
+- 10000104: 4b ff ff e8 b 100000ec <_start\+0x4>
+- 10000108: 60 00 00 00 nop
+- 1000010c: 38 63 10 00 addi r3,r3,4096
+- 10000110: e8 83 80 00 ld r4,-32768\(r3\)
+- 10000114: 3c 6d 00 00 addis r3,r13,0
+- 10000118: 48 00 00 0c b 10000124 <_start\+0x3c>
+- 1000011c: 3c 6d 00 00 addis r3,r13,0
+- 10000120: 48 00 00 14 b 10000134 <_start\+0x4c>
+- 10000124: 60 00 00 00 nop
+- 10000128: 38 63 90 04 addi r3,r3,-28668
+- 1000012c: e8 a3 00 00 ld r5,0\(r3\)
+- 10000130: 4b ff ff ec b 1000011c <_start\+0x34>
+- 10000134: 60 00 00 00 nop
+- 10000138: 38 63 10 00 addi r3,r3,4096
+- 1000013c: e8 a3 80 04 ld r5,-32764\(r3\)
++0+10000[0-9a-f]{3} <_start>:
++ 10000[0-9a-f]{3}: 48 00 00 18 b 10000[0-9a-f]{3} <_start\+0x18>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 00 addi r3,r3,-28672
++ 10000[0-9a-f]{3}: e8 83 00 00 ld r4,0\(r3\)
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 48 00 00 0c b 10000[0-9a-f]{3} <_start\+0x20>
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 4b ff ff e8 b 10000[0-9a-f]{3} <_start\+0x4>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 10000[0-9a-f]{3}: e8 83 80 00 ld r4,-32768\(r3\)
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 48 00 00 0c b 10000[0-9a-f]{3} <_start\+0x3c>
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 48 00 00 14 b 10000[0-9a-f]{3} <_start\+0x4c>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 04 addi r3,r3,-28668
++ 10000[0-9a-f]{3}: e8 a3 00 00 ld r5,0\(r3\)
++ 10000[0-9a-f]{3}: 4b ff ff ec b 10000[0-9a-f]{3} <_start\+0x34>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 10 00 addi r3,r3,4096
++ 10000[0-9a-f]{3}: e8 a3 80 04 ld r5,-32764\(r3\)
+
+-0+10000140 <\.__tls_get_addr>:
+- 10000140: 4e 80 00 20 blr
++0+10000[0-9a-f]{3} <\.__tls_get_addr>:
++ 10000[0-9a-f]{3}: 4e 80 00 20 blr
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsmark32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsmark32.d
+@@ -9,17 +9,17 @@
+
+ Disassembly of section \.text:
+
+-0+1800094 <_start>:
+- 1800094: 48 00 00 14 b 18000a8 <_start\+0x14>
+- 1800098: 38 63 90 00 addi r3,r3,-28672
+- 180009c: 80 83 00 00 lwz r4,0\(r3\)
+- 18000a0: 3c 62 00 00 addis r3,r2,0
+- 18000a4: 48 00 00 0c b 18000b0 <_start\+0x1c>
+- 18000a8: 3c 62 00 00 addis r3,r2,0
+- 18000ac: 4b ff ff ec b 1800098 <_start\+0x4>
+- 18000b0: 38 63 10 00 addi r3,r3,4096
+- 18000b4: 80 83 80 00 lwz r4,-32768\(r3\)
++0+18000[0-9a-f]{2} <_start>:
++ 18000[0-9a-f]{2}: 48 00 00 14 b 18000[0-9a-f]{2} <_start\+0x14>
++ 18000[0-9a-f]{2}: 38 63 90 00 addi r3,r3,-28672
++ 18000[0-9a-f]{2}: 80 83 00 00 lwz r4,0\(r3\)
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 48 00 00 0c b 18000[0-9a-f]{2} <_start\+0x1c>
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 4b ff ff ec b 18000[0-9a-f]{2} <_start\+0x4>
++ 18000[0-9a-f]{2}: 38 63 10 00 addi r3,r3,4096
++ 18000[0-9a-f]{2}: 80 83 80 00 lwz r4,-32768\(r3\)
+
+-0+18000b8 <__tls_get_addr>:
+- 18000b8: 4e 80 00 20 blr
+-#pass
+\ No newline at end of file
++0+18000[0-9a-f]{2} <__tls_get_addr>:
++ 18000[0-9a-f]{2}: 4e 80 00 20 blr
++#pass
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt1.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt1.d
+@@ -9,17 +9,17 @@
+
+ Disassembly of section \.text:
+
+-0+100000e8 <\.__tls_get_addr>:
+- 100000e8: 4e 80 00 20 blr
++0+10000[0-9a-f]{3} <\.__tls_get_addr>:
++ 10000[0-9a-f]{3}: 4e 80 00 20 blr
+
+ Disassembly of section \.no_opt1:
+
+-0+100000ec <\.no_opt1>:
+- 100000ec: 38 62 80 08 addi r3,r2,-32760
+- 100000f0: 2c 24 00 00 cmpdi r4,0
+- 100000f4: 41 82 00 10 beq- .*
+- 100000f8: 4b ff ff f1 bl 100000e8 <\.__tls_get_addr>
+- 100000fc: 60 00 00 00 nop
+- 10000100: 48 00 00 0c b .*
+- 10000104: 4b ff ff e5 bl 100000e8 <\.__tls_get_addr>
+- 10000108: 60 00 00 00 nop
++0+10000[0-9a-f]{3} <\.no_opt1>:
++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760
++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0
++ 10000[0-9a-f]{3}: 41 82 00 10 beq- .*
++ 10000[0-9a-f]{3}: 4b ff ff f1 bl 10000[0-9a-f]{3} <\.__tls_get_addr>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 48 00 00 0c b .*
++ 10000[0-9a-f]{3}: 4b ff ff e5 bl 10000[0-9a-f]{3} <\.__tls_get_addr>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt1_32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt1_32.d
+@@ -9,16 +9,16 @@
+
+ Disassembly of section \.text:
+
+-0+1800094 <__tls_get_addr>:
+- 1800094: 4e 80 00 20 blr
++0+18000[0-9a-f]{2} <__tls_get_addr>:
++ 18000[0-9a-f]{2}: 4e 80 00 20 blr
+
+ Disassembly of section \.no_opt1:
+
+-0+1800098 <\.no_opt1>:
+- 1800098: 38 6d ff f4 addi r3,r13,-12
+- 180009c: 2c 04 00 00 cmpwi r4,0
+- 18000a0: 41 82 00 0c beq- .*
+- 18000a4: 4b ff ff f1 bl 1800094 <__tls_get_addr>
+- 18000a8: 48 00 00 08 b .*
+- 18000ac: 4b ff ff e9 bl 1800094 <__tls_get_addr>
++0+18000[0-9a-f]{2} <\.no_opt1>:
++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12
++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0
++ 18000[0-9a-f]{2}: 41 82 00 0c beq- .*
++ 18000[0-9a-f]{2}: 4b ff ff f1 bl 18000[0-9a-f]{2} <__tls_get_addr>
++ 18000[0-9a-f]{2}: 48 00 00 08 b .*
++ 18000[0-9a-f]{2}: 4b ff ff e9 bl 18000[0-9a-f]{2} <__tls_get_addr>
+ #pass
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt2.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt2.d
+@@ -9,15 +9,15 @@
+
+ Disassembly of section \.text:
+
+-0+100000e8 <\.__tls_get_addr>:
+- 100000e8: 4e 80 00 20 blr
++0+10000[0-9a-f]{3} <\.__tls_get_addr>:
++ 10000[0-9a-f]{3}: 4e 80 00 20 blr
+
+ Disassembly of section \.no_opt2:
+
+-0+100000ec <\.no_opt2>:
+- 100000ec: 38 62 80 08 addi r3,r2,-32760
+- 100000f0: 2c 24 00 00 cmpdi r4,0
+- 100000f4: 41 82 00 08 beq- .*
+- 100000f8: 38 62 80 08 addi r3,r2,-32760
+- 100000fc: 4b ff ff ed bl 100000e8 <\.__tls_get_addr>
+- 10000100: 60 00 00 00 nop
++0+10000[0-9a-f]{3} <\.no_opt2>:
++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760
++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0
++ 10000[0-9a-f]{3}: 41 82 00 08 beq- .*
++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760
++ 10000[0-9a-f]{3}: 4b ff ff ed bl 10000[0-9a-f]{3} <\.__tls_get_addr>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt2_32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt2_32.d
+@@ -9,15 +9,15 @@
+
+ Disassembly of section \.text:
+
+-0+1800094 <__tls_get_addr>:
+- 1800094: 4e 80 00 20 blr
++0+18000[0-9a-f]{2} <__tls_get_addr>:
++ 18000[0-9a-f]{2}: 4e 80 00 20 blr
+
+ Disassembly of section \.no_opt2:
+
+-0+1800098 <\.no_opt2>:
+- 1800098: 38 6d ff f4 addi r3,r13,-12
+- 180009c: 2c 04 00 00 cmpwi r4,0
+- 18000a0: 41 82 00 08 beq- .*
+- 18000a4: 38 6d ff f4 addi r3,r13,-12
+- 18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr>
++0+18000[0-9a-f]{2} <\.no_opt2>:
++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12
++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0
++ 18000[0-9a-f]{2}: 41 82 00 08 beq- .*
++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12
++ 18000[0-9a-f]{2}: 4b ff ff ed bl 18000[0-9a-f]{2} <__tls_get_addr>
+ #pass
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt3.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt3.d
+@@ -9,18 +9,18 @@
+
+ Disassembly of section \.text:
+
+-00000000100000e8 <\.__tls_get_addr>:
+- 100000e8: 4e 80 00 20 blr
++0000000010000[0-9a-f]{3} <\.__tls_get_addr>:
++ 10000[0-9a-f]{3}: 4e 80 00 20 blr
+
+ Disassembly of section \.no_opt3:
+
+-00000000100000ec <\.no_opt3>:
+- 100000ec: 38 62 80 08 addi r3,r2,-32760
+- 100000f0: 48 00 00 0c b .*
+- 100000f4: 38 62 80 18 addi r3,r2,-32744
+- 100000f8: 48 00 00 10 b .*
+- 100000fc: 4b ff ff ed bl 100000e8 <\.__tls_get_addr>
+- 10000100: 60 00 00 00 nop
+- 10000104: 48 00 00 0c b .*
+- 10000108: 4b ff ff e1 bl 100000e8 <\.__tls_get_addr>
+- 1000010c: 60 00 00 00 nop
++0000000010000[0-9a-f]{3} <\.no_opt3>:
++ 10000[0-9a-f]{3}: 38 62 80 08 addi r3,r2,-32760
++ 10000[0-9a-f]{3}: 48 00 00 0c b .*
++ 10000[0-9a-f]{3}: 38 62 80 18 addi r3,r2,-32744
++ 10000[0-9a-f]{3}: 48 00 00 10 b .*
++ 10000[0-9a-f]{3}: 4b ff ff ed bl 10000[0-9a-f]{3} <\.__tls_get_addr>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 48 00 00 0c b .*
++ 10000[0-9a-f]{3}: 4b ff ff e1 bl 10000[0-9a-f]{3} <\.__tls_get_addr>
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt3_32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt3_32.d
+@@ -9,17 +9,17 @@
+
+ Disassembly of section \.text:
+
+-0+1800094 <__tls_get_addr>:
+- 1800094: 4e 80 00 20 blr
++0+18000[0-9a-f]{2} <__tls_get_addr>:
++ 18000[0-9a-f]{2}: 4e 80 00 20 blr
+
+ Disassembly of section \.no_opt3:
+
+-0+1800098 <\.no_opt3>:
+- 1800098: 38 6d ff ec addi r3,r13,-20
+- 180009c: 48 00 00 0c b .*
+- 18000a0: 38 6d ff f4 addi r3,r13,-12
+- 18000a4: 48 00 00 0c b .*
+- 18000a8: 4b ff ff ed bl 1800094 <__tls_get_addr>
+- 18000ac: 48 00 00 08 b .*
+- 18000b0: 4b ff ff e5 bl 1800094 <__tls_get_addr>
++0+18000[0-9a-f]{2} <\.no_opt3>:
++ 18000[0-9a-f]{2}: 38 6d ff ec addi r3,r13,-20
++ 18000[0-9a-f]{2}: 48 00 00 0c b .*
++ 18000[0-9a-f]{2}: 38 6d ff f4 addi r3,r13,-12
++ 18000[0-9a-f]{2}: 48 00 00 0c b .*
++ 18000[0-9a-f]{2}: 4b ff ff ed bl 18000[0-9a-f]{2} <__tls_get_addr>
++ 18000[0-9a-f]{2}: 48 00 00 08 b .*
++ 18000[0-9a-f]{2}: 4b ff ff e5 bl 18000[0-9a-f]{2} <__tls_get_addr>
+ #pass
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt4.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt4.d
+@@ -9,40 +9,40 @@
+
+ Disassembly of section \.text:
+
+-0+100000e8 <\.__tls_get_addr>:
+- 100000e8: 4e 80 00 20 blr
++0+10000[0-9a-f]{3} <\.__tls_get_addr>:
++ 10000[0-9a-f]{3}: 4e 80 00 20 blr
+
+ Disassembly of section \.opt1:
+
+-0+100000ec <\.opt1>:
+- 100000ec: 3c 6d 00 00 addis r3,r13,0
+- 100000f0: 2c 24 00 00 cmpdi r4,0
+- 100000f4: 41 82 00 10 beq- .*
+- 100000f8: 60 00 00 00 nop
+- 100000fc: 38 63 90 10 addi r3,r3,-28656
+- 10000100: 48 00 00 0c b .*
+- 10000104: 60 00 00 00 nop
+- 10000108: 38 63 90 10 addi r3,r3,-28656
++0+10000[0-9a-f]{3} <\.opt1>:
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0
++ 10000[0-9a-f]{3}: 41 82 00 10 beq- .*
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656
++ 10000[0-9a-f]{3}: 48 00 00 0c b .*
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656
+
+ Disassembly of section \.opt2:
+
+-0+1000010c <\.opt2>:
+- 1000010c: 3c 6d 00 00 addis r3,r13,0
+- 10000110: 2c 24 00 00 cmpdi r4,0
+- 10000114: 41 82 00 08 beq- .*
+- 10000118: 3c 6d 00 00 addis r3,r13,0
+- 1000011c: 60 00 00 00 nop
+- 10000120: 38 63 90 10 addi r3,r3,-28656
++0+10000[0-9a-f]{3} <\.opt2>:
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 2c 24 00 00 cmpdi r4,0
++ 10000[0-9a-f]{3}: 41 82 00 08 beq- .*
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656
+
+ Disassembly of section \.opt3:
+
+-0+10000124 <\.opt3>:
+- 10000124: 3c 6d 00 00 addis r3,r13,0
+- 10000128: 48 00 00 0c b .*
+- 1000012c: 3c 6d 00 00 addis r3,r13,0
+- 10000130: 48 00 00 10 b .*
+- 10000134: 60 00 00 00 nop
+- 10000138: 38 63 90 10 addi r3,r3,-28656
+- 1000013c: 48 00 00 0c b .*
+- 10000140: 60 00 00 00 nop
+- 10000144: 38 63 90 08 addi r3,r3,-28664
++0+10000[0-9a-f]{3} <\.opt3>:
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 48 00 00 0c b .*
++ 10000[0-9a-f]{3}: 3c 6d 00 00 addis r3,r13,0
++ 10000[0-9a-f]{3}: 48 00 00 10 b .*
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 10 addi r3,r3,-28656
++ 10000[0-9a-f]{3}: 48 00 00 0c b .*
++ 10000[0-9a-f]{3}: 60 00 00 00 nop
++ 10000[0-9a-f]{3}: 38 63 90 08 addi r3,r3,-28664
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsopt4_32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsopt4_32.d
+@@ -9,36 +9,36 @@
+
+ Disassembly of section \.text:
+
+-0+1800094 <__tls_get_addr>:
+- 1800094: 4e 80 00 20 blr
++0+18000[0-9a-f]{2} <__tls_get_addr>:
++ 18000[0-9a-f]{2}: 4e 80 00 20 blr
+
+ Disassembly of section \.opt1:
+
+-0+1800098 <\.opt1>:
+- 1800098: 3c 62 00 00 addis r3,r2,0
+- 180009c: 2c 04 00 00 cmpwi r4,0
+- 18000a0: 41 82 00 0c beq- .*
+- 18000a4: 38 63 90 10 addi r3,r3,-28656
+- 18000a8: 48 00 00 08 b .*
+- 18000ac: 38 63 90 10 addi r3,r3,-28656
++0+18000[0-9a-f]{2} <\.opt1>:
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0
++ 18000[0-9a-f]{2}: 41 82 00 0c beq- .*
++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656
++ 18000[0-9a-f]{2}: 48 00 00 08 b .*
++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656
+
+ Disassembly of section \.opt2:
+
+-0+18000b0 <\.opt2>:
+- 18000b0: 3c 62 00 00 addis r3,r2,0
+- 18000b4: 2c 04 00 00 cmpwi r4,0
+- 18000b8: 41 82 00 08 beq- .*
+- 18000bc: 3c 62 00 00 addis r3,r2,0
+- 18000c0: 38 63 90 10 addi r3,r3,-28656
++0+18000[0-9a-f]{2} <\.opt2>:
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 2c 04 00 00 cmpwi r4,0
++ 18000[0-9a-f]{2}: 41 82 00 08 beq- .*
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656
+
+ Disassembly of section \.opt3:
+
+-0+18000c4 <\.opt3>:
+- 18000c4: 3c 62 00 00 addis r3,r2,0
+- 18000c8: 48 00 00 0c b .*
+- 18000cc: 3c 62 00 00 addis r3,r2,0
+- 18000d0: 48 00 00 0c b .*
+- 18000d4: 38 63 90 10 addi r3,r3,-28656
+- 18000d8: 48 00 00 08 b .*
+- 18000dc: 38 63 90 08 addi r3,r3,-28664
++0+18000[0-9a-f]{2} <\.opt3>:
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 48 00 00 0c b .*
++ 18000[0-9a-f]{2}: 3c 62 00 00 addis r3,r2,0
++ 18000[0-9a-f]{2}: 48 00 00 0c b .*
++ 18000[0-9a-f]{2}: 38 63 90 10 addi r3,r3,-28656
++ 18000[0-9a-f]{2}: 48 00 00 08 b .*
++ 18000[0-9a-f]{2}: 38 63 90 08 addi r3,r3,-28664
+ #pass
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsso32.d
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsso32.d
+@@ -42,5 +42,5 @@ Disassembly of section \.got:
+ #...
+ .*: 4e 80 00 21 blrl
+ .* <_GLOBAL_OFFSET_TABLE_>:
+-.*: 00 01 03 ec .*
++.*: 00 01 [0-9a-f]{2} [0-9a-f]{2} .*
+ #pass
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsso32.g
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsso32.g
+@@ -9,5 +9,5 @@
+ Contents of section \.got:
+ .* 00000000 00000000 00000000 00000000 .*
+ .* 00000000 00000000 00000000 00000000 .*
+-.* 00000000 4e800021 000103ec 00000000 .*
++.* 00000000 4e800021 00010[0-9a-f]{3} 00000000 .*
+ .* 00000000 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlsso32.r
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlsso32.r
+@@ -35,6 +35,7 @@ Program Headers:
+ +LOAD .* RWE 0x10000
+ +DYNAMIC .* RW +0x4
+ +TLS .* 0x0+1c 0x0+38 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections\.\.\.
+@@ -42,6 +43,7 @@ Program Headers:
+ +01 +\.tdata \.dynamic \.got \.plt
+ +02 +\.dynamic
+ +03 +\.tdata \.tbss
++ +04 +
+
+ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
+ Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
+@@ -52,9 +54,9 @@ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
+ [0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0
+ [0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0
+ [0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0
+-[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +\.tdata \+ 103e4
+-[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +\.tdata \+ 103e8
+-[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +\.tdata \+ 103e8
++[0-9a-f ]+R_PPC_TPREL16 +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
++[0-9a-f ]+R_PPC_TPREL16_HA +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
++[0-9a-f ]+R_PPC_TPREL16_LO +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
+ [0-9a-f ]+R_PPC_DTPMOD32 +0
+ [0-9a-f ]+R_PPC_DTPREL32 +0
+ [0-9a-f ]+R_PPC_DTPMOD32 +0
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlstoc.g
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlstoc.g
+@@ -8,8 +8,8 @@
+ .*: +file format elf64-powerpc
+
+ Contents of section \.got:
+- 100101a0 00000000 00000001 00000000 00000000 .*
+- 100101b0 00000000 00000001 00000000 00000000 .*
+- 100101c0 00000000 00000001 00000000 00000000 .*
+- 100101d0 00000000 00000001 00000000 00000000 .*
+- 100101e0 ffffffff ffff8060 00000000 00000000 .*
++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .*
++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .*
++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .*
++ 10010[0-9a-f]{3} 00000000 00000001 00000000 00000000 .*
++ 10010[0-9a-f]{3} ffffffff ffff8060 00000000 00000000 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlstoc.t
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlstoc.t
+@@ -8,7 +8,7 @@
+ .*: +file format elf64-powerpc
+
+ Contents of section \.tdata:
+- 10010148 00c0ffee 00000000 12345678 9abcdef0 .*
+- 10010158 23456789 abcdef01 3456789a bcdef012 .*
+- 10010168 456789ab cdef0123 56789abc def01234 .*
+- 10010178 6789abcd ef012345 789abcde f0123456 .*
++ 10010180 00c0ffee 00000000 12345678 9abcdef0 .*
++ 10010190 23456789 abcdef01 3456789a bcdef012 .*
++ 100101a0 456789ab cdef0123 56789abc def01234 .*
++ 100101b0 6789abcd ef012345 789abcde f0123456 .*
+--- binutils-2.23/ld/testsuite/ld-powerpc/tlstocso.g
++++ binutils-2.23/ld/testsuite/ld-powerpc/tlstocso.g
+@@ -7,7 +7,7 @@
+ .*: +file format elf64-powerpc
+
+ Contents of section \.got:
+-.* 00000000 000186c0 00000000 00000000 .*
++.* 00000000 000186f8 00000000 00000000 .*
+ .* 00000000 00000000 00000000 00000000 .*
+ .* 00000000 00000000 00000000 00000000 .*
+ .* 00000000 00000000 00000000 00000000 .*
+--- binutils-2.23/ld/testsuite/ld-s390/tlsbin.rd
++++ binutils-2.23/ld/testsuite/ld-s390/tlsbin.rd
+@@ -36,6 +36,7 @@ There are [0-9]+ program headers, starting at offset [0-9]+
+ +LOAD .* RW +0x1000
+ +DYNAMIC .* RW +0x4
+ +TLS .* 0x0+60 0x0+a0 R +0x20
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections...
+@@ -52,6 +53,7 @@ Program Headers:
+ +03 +.tdata .dynamic .got *
+ +04 +.dynamic *
+ +05 +.tdata .tbss *
++ +06 +
+
+ Relocation section '.rela.dyn' at offset .* contains 4 entries:
+ Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-s390/tlsbin_64.rd
++++ binutils-2.23/ld/testsuite/ld-s390/tlsbin_64.rd
+@@ -36,6 +36,7 @@ There are [0-9]+ program headers, starting at offset [0-9]+
+ +LOAD .* RW +0x1000
+ +DYNAMIC .* RW +0x8
+ +TLS .* 0x0+60 0x0+a0 R +0x20
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections...
+@@ -52,6 +53,7 @@ Program Headers:
+ +03 +.tdata .dynamic .got *
+ +04 +.dynamic *
+ +05 +.tdata .tbss *
++ +06 +
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-s390/tlspic.rd
++++ binutils-2.23/ld/testsuite/ld-s390/tlspic.rd
+@@ -39,6 +39,7 @@ Program Headers:
+ +LOAD .* RW +0x1000
+ +DYNAMIC .* RW +0x4
+ +TLS .* 0x0+60 0x0+80 R +0x20
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections...
+@@ -46,6 +47,7 @@ Program Headers:
+ +01 +.tdata .dynamic .got
+ +02 +.dynamic
+ +03 +.tdata .tbss
++ +04 +
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+ Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-s390/tlspic_64.rd
++++ binutils-2.23/ld/testsuite/ld-s390/tlspic_64.rd
+@@ -39,6 +39,7 @@ Program Headers:
+ +LOAD .* RW +0x1000
+ +DYNAMIC .* RW +0x8
+ +TLS .* 0x0+60 0x0+80 R +0x20
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections...
+@@ -46,6 +47,7 @@ Program Headers:
+ +01 +.tdata .dynamic .got *
+ +02 +.dynamic *
+ +03 +.tdata .tbss *
++ +04 +
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-scripts/empty-aligned.d
++++ binutils-2.23/ld/testsuite/ld-scripts/empty-aligned.d
+@@ -8,7 +8,9 @@
+ Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg +Align
+ +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ [RWE ]+ +0x[0-9a-f]+
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections\.\.\.
+ +00 +.text
++ +01 +
+--- binutils-2.23/ld/testsuite/ld-sh/tlsbin-2.d
++++ binutils-2.23/ld/testsuite/ld-sh/tlsbin-2.d
+@@ -44,6 +44,7 @@ Program Headers:
+ +LOAD.*
+ +DYNAMIC.*
+ +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+18 0x0+28 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections\.\.\.
+@@ -53,6 +54,7 @@ Program Headers:
+ +03 +\.tdata \.dynamic \.got *
+ +04 +\.dynamic *
+ +05 +\.tdata \.tbss *
++ +06 +
+
+ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+ Offset +Info +Type +Sym\.Value +Sym\. Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-sh/tlspic-2.d
++++ binutils-2.23/ld/testsuite/ld-sh/tlspic-2.d
+@@ -32,7 +32,7 @@ Key to Flags:
+
+ Elf file type is DYN \(Shared object file\)
+ Entry point 0x[0-9a-f]+
+-There are 4 program headers, starting at offset [0-9]+
++There are [0-9] program headers, starting at offset [0-9]+
+
+ Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+@@ -40,6 +40,7 @@ Program Headers:
+ +LOAD.*
+ +DYNAMIC.*
+ +TLS .* 0x0+18 0x0+20 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections\.\.\.
+@@ -47,6 +48,7 @@ Program Headers:
+ +01 +\.tdata \.dynamic \.got *
+ +02 +\.dynamic *
+ +03 +\.tdata \.tbss *
++ +04 +
+
+ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 10 entries:
+ Offset +Info +Type +Sym\.Value +Sym\. Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-sparc/gotop32.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/gotop32.rd
+@@ -31,6 +31,7 @@ Program Headers:
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x10000
+ +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+2000 0x0+2000 RW +0x10000
+ +DYNAMIC +0x0+2000 0x0+12000 0x0+12000 0x0+70 0x0+70 RW +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/gotop64.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/gotop64.rd
+@@ -31,6 +31,7 @@ Program Headers:
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000
+ +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+2000 0x0+2000 RW +0x100000
+ +DYNAMIC +0x0+2000 0x0+102000 0x0+102000 0x0+e0 0x0+e0 RW +0x8
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/tlssunbin32.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/tlssunbin32.rd
+@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
+
+ Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+- +PHDR +0x0+34 0x0+10034 0x0+10034 0x0+c0 0x0+c0 R E 0x4
+- +INTERP +0x0+f4 0x0+100f4 0x0+100f4 0x0+11 0x0+11 R +0x1
++ +PHDR +0x0+34 0x0+10034 0x0+10034 (0x[0-9a-f]+) \1 R E 0x4
++ +INTERP +(0x[0-9a-f]+ ){3}0x0+11 0x0+11 R +0x1
+ .*Requesting program interpreter.*
+ +LOAD .* R E 0x10000
+ +LOAD .* RW +0x10000
+ +DYNAMIC .* RW +0x4
+ +TLS .* 0x0+1060 0x0+10a0 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/tlssunbin64.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/tlssunbin64.rd
+@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
+
+ Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+- +PHDR +0x0+40 0x0+100040 0x0+100040 0x0+150 0x0+150 R E 0x8
+- +INTERP +0x0+190 0x0+100190 0x0+100190 0x0+19 0x0+19 R +0x1
++ +PHDR +0x0+40 0x0+100040 0x0+100040 (0x[0-9a-f]+) \1 R E 0x8
++ +INTERP +0x0+([0-9a-f]+) (0x0+10+\1) \2 0x0+19 0x0+19 R +0x1
+ .*Requesting program interpreter.*
+ +LOAD .* R E 0x100000
+ +LOAD .* RW +0x100000
+ +DYNAMIC .* RW +0x8
+ +TLS .* 0x0+60 0x0+a0 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/tlssunnopic32.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/tlssunnopic32.rd
+@@ -32,6 +32,7 @@ Program Headers:
+ +LOAD .* RW +0x10000
+ +DYNAMIC .* RW +0x4
+ +TLS .* 0x0+ 0x0+24 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 12 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/tlssunnopic64.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/tlssunnopic64.rd
+@@ -32,6 +32,7 @@ Program Headers:
+ +LOAD .* RW +0x100000
+ +DYNAMIC .* RW +0x8
+ +TLS .* 0x0+ 0x0+24 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/tlssunpic32.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/tlssunpic32.rd
+@@ -36,6 +36,7 @@ Program Headers:
+ +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+184 0x0+184 RWE 0x10000
+ +DYNAMIC +0x0+2060 0x0+12060 0x0+12060 0x0+98 0x0+98 RW +0x4
+ +TLS +0x0+2000 0x0+12000 0x0+12000 0x0+60 0x0+80 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+--- binutils-2.23/ld/testsuite/ld-sparc/tlssunpic64.rd
++++ binutils-2.23/ld/testsuite/ld-sparc/tlssunpic64.rd
+@@ -36,6 +36,7 @@ Program Headers:
+ +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+3a0 0x0+3a0 RWE 0x100000
+ +DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8
+ +TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x4
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+ #...
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+--- binutils-2.23/ld/testsuite/ld-x86-64/tlsgdesc.rd
++++ binutils-2.23/ld/testsuite/ld-x86-64/tlsgdesc.rd
+@@ -36,12 +36,14 @@ Program Headers:
+ +LOAD.*
+ +LOAD.*
+ +DYNAMIC.*
++ +PAX_FLAGS.*
+
+ Section to Segment mapping:
+ +Segment Sections...
+ +00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
+ +01 +.dynamic .got .got.plt *
+ +02 +.dynamic *
++ +03 +
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+--- binutils-2.23/ld/testsuite/ld-x86-64/tlspic.rd
++++ binutils-2.23/ld/testsuite/ld-x86-64/tlspic.rd
+@@ -40,6 +40,7 @@ Program Headers:
+ +LOAD +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+244 0x0+244 RW +0x200000
+ +DYNAMIC +0x0+1210 0x0+201210 0x0+201210 0x0+130 0x0+130 RW +0x8
+ +TLS +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+60 0x0+80 R +0x1
++ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
+
+ Section to Segment mapping:
+ +Segment Sections...
+@@ -47,6 +48,7 @@ Program Headers:
+ +01 +.tdata .dynamic .got .got.plt *
+ +02 +.dynamic *
+ +03 +.tdata .tbss *
++ +04 +
+
+ Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
diff --git a/pkgs/development/tools/misc/drush/default.nix b/pkgs/development/tools/misc/drush/default.nix
index cb534d511eaf5..72bbe50422cae 100644
--- a/pkgs/development/tools/misc/drush/default.nix
+++ b/pkgs/development/tools/misc/drush/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
mkdir -p "$out"
cp -r . "$out/src"
mkdir "$out/bin"
- wrapProgram "$out/src/drush" --prefix PATH : "${which}/bin:${php}/bin:${bash}/bin:${coreutils}/bin:${ncurses}/bin"
+ wrapProgram "$out/src/drush" --prefix PATH : "${which}/bin:${php}/bin:${bash}/bin:${coreutils}/bin:${ncurses.out}/bin"
ln -s "$out/src/drush" "$out/bin/drush"
'';
}
diff --git a/pkgs/development/tools/misc/eggdbus/default.nix b/pkgs/development/tools/misc/eggdbus/default.nix
index 97031a533fae9..9f04e28372225 100644
--- a/pkgs/development/tools/misc/eggdbus/default.nix
+++ b/pkgs/development/tools/misc/eggdbus/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "118hj63ac65zlg71kydv4607qcg1qpdlql4kvhnwnnhar421jnq4";
};
- buildInputs = [ pkgconfig glib dbus.libs dbus_glib ];
+ buildInputs = [ pkgconfig glib dbus dbus_glib ];
meta = {
homepage = http://hal.freedesktop.org/releases/;
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 5fdccc9acadd6..e6b81ca7eb178 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-ltdl-include=${libtool}/include"
- "--with-ltdl-lib=${libtool}/lib"
+ "--with-ltdl-lib=${libtool.lib}/lib"
"--with-ncurses=${ncurses}"
"--with-sqlite3=${sqlite}"
"--with-exuberant-ctags=${ctags}/bin/ctags"
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 5d27b469680b0..27ec2772e0953 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "1qq61k6lp1fp75xs398yzi6wvbx232l7xbyn3p13cnh27mflvgg3";
};
+ outputs = [ "out" "lib" ];
+
propagatedNativeBuildInputs = [ m4 ];
nativeBuildInputs = [ perl help2man ];
@@ -43,4 +45,3 @@ stdenv.mkDerivation rec {
maintainers = [ ];
};
}
-
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index 7154166c25163..77a1f26616822 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
setupHook = [ ./setup-hook.sh ];
+ #doCheck = true; # problems when loading libc.so.6
+
meta = {
homepage = http://nixos.org/patchelf.html;
license = "GPL";
diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix
index d7246d22ca734..d0e63469987be 100644
--- a/pkgs/development/tools/misc/pkgconfig/default.nix
+++ b/pkgs/development/tools/misc/pkgconfig/default.nix
@@ -1,6 +1,9 @@
-{stdenv, fetchurl, automake, libiconv, vanilla ? false}:
+{stdenv, fetchurl, automake, libiconv, vanilla ? false }:
-stdenv.mkDerivation (rec {
+let
+ inherit (stdenv.lib) optional;
+in
+stdenv.mkDerivation rec {
name = "pkg-config-0.29";
setupHook = ./setup-hook.sh;
@@ -12,17 +15,19 @@ stdenv.mkDerivation (rec {
];
sha256 = "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68";
};
+ # Process Requires.private properly, see
+ # http://bugs.freedesktop.org/show_bug.cgi?id=4738.
+ patches = optional (!vanilla) ./requires-private.patch
+ ++ optional stdenv.isCygwin ./2.36.3-not-win32.patch;
+ preConfigure = stdenv.lib.optionalString (stdenv.system == "mips64el-linux")
+ ''cp -v ${automake}/share/automake*/config.{sub,guess} .'';
buildInputs = stdenv.lib.optional (stdenv.isCygwin || stdenv.isDarwin || stdenv.isSunOS) libiconv;
configureFlags = [ "--with-internal-glib" ]
++ stdenv.lib.optional (stdenv.isSunOS) [ "--with-libiconv=gnu" "--with-system-library-path" "--with-system-include-path" "CFLAGS=-DENABLE_NLS" ];
- patches = (if vanilla then [] else [
- # Process Requires.private properly, see
- # http://bugs.freedesktop.org/show_bug.cgi?id=4738.
- ./requires-private.patch
- ]) ++ stdenv.lib.optional stdenv.isCygwin ./2.36.3-not-win32.patch;
+ postInstall = ''rm "$out"/bin/*-pkg-config''; # clean the duplicate file
meta = {
description = "A tool that allows packages to find out information about other packages";
@@ -30,9 +35,5 @@ stdenv.mkDerivation (rec {
platforms = stdenv.lib.platforms.all;
};
-} // (if stdenv.system == "mips64el-linux" then
- {
- preConfigure = ''
- cp -v ${automake}/share/automake*/config.{sub,guess} .
- '';
- } else {}))
+}
+
diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix
index 99582e0f8a3d7..d01a2f9cdd066 100644
--- a/pkgs/development/tools/misc/texinfo/5.2.nix
+++ b/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal";
};
- buildInputs = [ perl xz ]
+ buildInputs = [ perl xz.bin ]
++ optional interactive ncurses
++ optional doCheck procps; # for tests
diff --git a/pkgs/development/tools/node-webkit/nw11.nix b/pkgs/development/tools/node-webkit/nw11.nix
index ed3b99aad0096..2fe1ddf42d439 100644
--- a/pkgs/development/tools/node-webkit/nw11.nix
+++ b/pkgs/development/tools/node-webkit/nw11.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig
-, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, udev, libcap
+, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, libudev, libcap
, libnotify}:
let
bits = if stdenv.system == "x86_64-linux" then "x64"
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot
- ln -s ${udev}/lib/libudev.so $out/share/node-webkit/libudev.so.0
+ ln -s ${libudev.out}/lib/libudev.so $out/share/node-webkit/libudev.so.0
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot
diff --git a/pkgs/development/tools/node-webkit/nw12.nix b/pkgs/development/tools/node-webkit/nw12.nix
index 7492acb136782..4cacc75d77768 100644
--- a/pkgs/development/tools/node-webkit/nw12.nix
+++ b/pkgs/development/tools/node-webkit/nw12.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig
-, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, udev, libcap
+, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, libudev, libcap
, libnotify}:
let
bits = if stdenv.system == "x86_64-linux" then "x64"
@@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nwjc
- ln -s ${udev}/lib/libudev.so $out/share/nwjs/libudev.so.0
+ ln -s ${libudev.out}/lib/libudev.so $out/share/nwjs/libudev.so.0
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nwjc
diff --git a/pkgs/development/tools/node-webkit/nw9.nix b/pkgs/development/tools/node-webkit/nw9.nix
index 213b94102b0d7..d8601865c6d14 100644
--- a/pkgs/development/tools/node-webkit/nw9.nix
+++ b/pkgs/development/tools/node-webkit/nw9.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig
-, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, udev}:
+, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, libudev }:
let
bits = if stdenv.system == "x86_64-linux" then "x64"
else "ia32";
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot
- ln -s ${udev}/lib/libudev.so $out/share/node-webkit/libudev.so.0
+ ln -s ${libudev.out}/lib/libudev.so $out/share/node-webkit/libudev.so.0
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot
diff --git a/pkgs/development/tools/phantomjs/default.nix b/pkgs/development/tools/phantomjs/default.nix
index 77bc1e5a885fd..8b6b655b6a56b 100644
--- a/pkgs/development/tools/phantomjs/default.nix
+++ b/pkgs/development/tools/phantomjs/default.nix
@@ -1,6 +1,9 @@
-{ stdenv, fetchurl, freetype, fontconfig, openssl, unzip }:
+{ stdenv, lib, fetchurl, freetype, fontconfig, openssl, unzip }:
-assert stdenv.lib.elem stdenv.system [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+let
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+in
+assert lib.elem stdenv.system platforms;
stdenv.mkDerivation rec {
name = "phantomjs-1.9.8";
@@ -27,12 +30,12 @@ stdenv.mkDerivation rec {
sha256 = "0j0aq8dgzmb210xdrh0v3d4nblskl3zsckl8bzf1a603wcx085cg";
};
- buildInputs = if stdenv.isDarwin then [ unzip ] else [];
+ buildInputs = lib.optional stdenv.isDarwin unzip;
- buildPhase = if stdenv.isDarwin then "" else ''
+ buildPhase = lib.optionalString (!stdenv.isDarwin) ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${freetype}/lib:${fontconfig}/lib:${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib:${openssl}/lib" \
+ --set-rpath "${stdenv.lib.makeLibraryPath [ freetype fontconfig stdenv.cc.cc stdenv.cc.cc openssl ]}" \
bin/phantomjs
'';
@@ -60,9 +63,9 @@ stdenv.mkDerivation rec {
'';
homepage = http://phantomjs.org/;
- license = stdenv.lib.licenses.bsd3;
+ license = lib.licenses.bsd3;
- maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
- platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" ];
+ maintainers = [ lib.maintainers.bluescreen303 ];
+ inherit platforms;
};
}
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index a2dd9d9784b81..dd6d75771a32f 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin
mv chromedriver $out/bin
- patchelf --set-interpreter ${glibc}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver
wrapProgram "$out/bin/chromedriver" \
- --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.cc}/nix-support/orig-cc)/lib64:${cairo}/lib:${fontconfig}/lib:${freetype}/lib:${gdk_pixbuf}/lib:${glib}/lib:${gtk}/lib:${libX11}/lib:${nspr}/lib:${nss}/lib:${pango}/lib:${libXrender}/lib:${gconf}/lib:${libXext}/lib:${libXi}/lib:\$LD_LIBRARY_PATH"
+ --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.cc}/nix-support/orig-cc)/lib64:${stdenv.lib.makeLibraryPath [ cairo fontconfig freetype gdk_pixbuf glib gtk libX11 nspr nss pango libXrender gconf libXext libXi ]}:\$LD_LIBRARY_PATH"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/selenium/server/default.nix b/pkgs/development/tools/selenium/server/default.nix
index 2efd85f840101..66d9668fe82d6 100644
--- a/pkgs/development/tools/selenium/server/default.nix
+++ b/pkgs/development/tools/selenium/server/default.nix
@@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
${jdk}/bin/jar xf $src launchers/launcher-linux-amd64
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${gcc.cc}/lib/:${gcc.cc}/lib64:${xorg.libX11}/lib" \
+ --set-rpath "${gcc.cc}/lib/:${gcc.cc}/lib64:${xorg.libX11.out}/lib" \
launchers/launcher-linux-${arch}
${jdk}/bin/jar uf $src launchers/launcher-linux-${arch}
'';
diff --git a/pkgs/development/tools/sslmate/default.nix b/pkgs/development/tools/sslmate/default.nix
index 72af189845145..8def4b6a66577 100644
--- a/pkgs/development/tools/sslmate/default.nix
+++ b/pkgs/development/tools/sslmate/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
JSONPP
TermReadKey
]}" \
- --prefix PATH : "${openssl}/bin"
+ --prefix PATH : "${openssl.bin}/bin"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index c113dcbfb7b1e..2284c25cf6615 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
# curl: curl, curl-config
rm opt/vagrant/embedded/bin/{curl,curl-config}
- ln -s ${curl}/bin/curl opt/vagrant/embedded/bin
+ ln -s ${curl.bin}/bin/curl opt/vagrant/embedded/bin
ln -s ${curl}/bin/curl-config opt/vagrant/embedded/bin
# libarchive: bsdtar, bsdcpio
@@ -61,8 +61,8 @@ stdenv.mkDerivation rec {
# openssl: c_rehash, openssl
rm opt/vagrant/embedded/bin/{c_rehash,openssl}
- ln -s ${openssl}/bin/c_rehash opt/vagrant/embedded/bin
- ln -s ${openssl}/bin/openssl opt/vagrant/embedded/bin
+ ln -s ${openssl.bin}/bin/c_rehash opt/vagrant/embedded/bin
+ ln -s ${openssl.bin}/bin/openssl opt/vagrant/embedded/bin
# ruby: erb, gem, irb, rake, rdoc, ri, ruby
rm opt/vagrant/embedded/bin/{erb,gem,irb,rake,rdoc,ri,ruby}
@@ -80,14 +80,14 @@ stdenv.mkDerivation rec {
# libxml: xml2-config, xmlcatalog, xmllint
rm opt/vagrant/embedded/bin/{xml2-config,xmlcatalog,xmllint}
- ln -s ${libxml2}/bin/xml2-config opt/vagrant/embedded/bin
- ln -s ${libxml2}/bin/xmlcatalog opt/vagrant/embedded/bin
- ln -s ${libxml2}/bin/xmllint opt/vagrant/embedded/bin
+ ln -s ${libxml2.dev}/bin/xml2-config opt/vagrant/embedded/bin
+ ln -s ${libxml2.bin}/bin/xmlcatalog opt/vagrant/embedded/bin
+ ln -s ${libxml2.bin}/bin/xmllint opt/vagrant/embedded/bin
# libxslt: xslt-config, xsltproc
rm opt/vagrant/embedded/bin/{xslt-config,xsltproc}
- ln -s ${libxslt}/bin/xslt-config opt/vagrant/embedded/bin
- ln -s ${libxslt}/bin/xsltproc opt/vagrant/embedded/bin
+ ln -s ${libxslt.dev}/bin/xslt-config opt/vagrant/embedded/bin
+ ln -s ${libxslt.bin}/bin/xsltproc opt/vagrant/embedded/bin
mkdir -p "$out"
cp -r opt "$out"
diff --git a/pkgs/development/web/nodejs/v4.nix b/pkgs/development/web/nodejs/v4.nix
index 629864b6e0b54..ccb5281736777 100644
--- a/pkgs/development/web/nodejs/v4.nix
+++ b/pkgs/development/web/nodejs/v4.nix
@@ -43,13 +43,14 @@ in stdenv.mkDerivation {
patches = stdenv.lib.optionals stdenv.isDarwin [ ./no-xcode.patch ];
+ buildInputs = [ python zlib libuv openssl python ]
+ ++ optionals stdenv.isLinux [ utillinux http-parser ];
+ nativeBuildInputs = [ pkgconfig ]
+ ++ optional stdenv.isDarwin libtool;
+
postFixup = ''
sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' $out/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
'';
-
- buildInputs = [ python which zlib libuv openssl python ]
- ++ optionals stdenv.isLinux [ utillinux http-parser ]
- ++ optionals stdenv.isDarwin [ pkgconfig openssl libtool ];
setupHook = ./setup-hook.sh;
enableParallelBuilding = true;
diff --git a/pkgs/games/beret/default.nix b/pkgs/games/beret/default.nix
index e2e4f5af977ad..81bdbed46e94f 100644
--- a/pkgs/games/beret/default.nix
+++ b/pkgs/games/beret/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
buildInputs = [ SDL SDL_image SDL_ttf SDL_mixer ];
- NIX_CFLAGS_COMPILE = "-I${SDL}/include/SDL";
+ NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL";
NIX_CFLAGS_LINK = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin
"-framework CoreFoundation -framework OpenGL -framework Cocoa";
diff --git a/pkgs/games/bitsnbots/default.nix b/pkgs/games/bitsnbots/default.nix
index 57cd67fbb7baf..82e5ddb06d4d8 100644
--- a/pkgs/games/bitsnbots/default.nix
+++ b/pkgs/games/bitsnbots/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
makefile = "Makefile.linux";
- NIX_CFLAGS_COMPILE = "-I${SDL}/include/SDL";
+ NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL";
NIX_LDFLAGS = "-lGL";
diff --git a/pkgs/games/extremetuxracer/default.nix b/pkgs/games/extremetuxracer/default.nix
index af80467c960d3..f2417428880cc 100644
--- a/pkgs/games/extremetuxracer/default.nix
+++ b/pkgs/games/extremetuxracer/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--with-tcl=${tcl}/lib" ];
preConfigure = ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL}/include/SDL"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL.dev}/include/SDL"
'';
meta = {
diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix
index 86da7686eefd0..42d80f86e8280 100644
--- a/pkgs/games/gemrb/default.nix
+++ b/pkgs/games/gemrb/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
# TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional
# Necessary to find libdl.
- CMAKE_LIBRARY_PATH = "${stdenv.cc.libc}/lib";
+ CMAKE_LIBRARY_PATH = "${stdenv.cc.libc.out}/lib";
# Can't have -werror because of the Vorbis header files.
cmakeFlags = "-DDISABLE_WERROR=ON -DCMAKE_VERBOSE_MAKEFILE=ON";
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index 8d601e29d0b03..7d0f59a4e0d0f 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -26,11 +26,11 @@ stdenv.mkDerivation rec {
-rpath ${SDL_mixer}/lib
-rpath ${SDL_net}/lib
-rpath ${SDL_ttf}/lib
- -rpath ${SDL}/lib
- -rpath ${libpng}/lib
+ -rpath ${SDL.out}/lib
+ -rpath ${libpng.out}/lib
-rpath ${lua5_1}/lib
-rpath ${mesa}/lib
- -rpath ${zlib}/lib
+ -rpath ${zlib.out}/lib
"
'';
diff --git a/pkgs/games/liquidwar/default.nix b/pkgs/games/liquidwar/default.nix
index ce346459201d4..f97c0ec412fc4 100644
--- a/pkgs/games/liquidwar/default.nix
+++ b/pkgs/games/liquidwar/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
];
# To avoid problems finding SDL_types.h.
- configureFlags = [ "CFLAGS=-I${SDL}/include/SDL" ];
+ configureFlags = [ "CFLAGS=-I${SDL.dev}/include/SDL" ];
meta = with stdenv.lib; {
description = "Quick tactics game";
diff --git a/pkgs/games/micropolis/default.nix b/pkgs/games/micropolis/default.nix
index 55a02e08003d4..a294128969c5d 100644
--- a/pkgs/games/micropolis/default.nix
+++ b/pkgs/games/micropolis/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
preConfigure =
''
cd src
- sed -i "s@^CFLAGS.*\$@&\nCFLAGS += -I${libXpm}/include/X11@" tk/makefile
+ sed -i "s@^CFLAGS.*\$@&\nCFLAGS += -I${libXpm.dev}/include/X11@" tk/makefile
sed -i "s@^INCLUDES.*\$@&\n\t-I$PWD/tcl \\\\@" sim/makefile
'';
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index ecd468eaf5828..1b201daa371b5 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -25,7 +25,7 @@ in stdenv.mkDerivation {
cmakeFlags = [
"-DENABLE_FREETYPE=1"
"-DENABLE_GETTEXT=1"
- "-DCURL_INCLUDE_DIR=${curl}/include/curl"
+ "-DCURL_INCLUDE_DIR=${curl.dev}/include/curl"
"-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht"
];
diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix
index e40dec3c23fcc..0bfebd510c940 100644
--- a/pkgs/games/nexuiz/default.nix
+++ b/pkgs/games/nexuiz/default.nix
@@ -36,14 +36,14 @@ in stdenv.mkDerivation {
'';
NIX_LDFLAGS = ''
- -rpath ${zlib}/lib
- -rpath ${curl}/lib
- -rpath ${libjpeg}/lib
- -rpath ${libpng}/lib
- -rpath ${libvorbis}/lib
- -rpath ${libtheora}/lib
- -rpath ${libogg}/lib
- -rpath ${libmodplug}/lib
+ -rpath ${zlib.out}/lib
+ -rpath ${curl.out}/lib
+ -rpath ${libjpeg.out}/lib
+ -rpath ${libpng.out}/lib
+ -rpath ${libvorbis.out}/lib
+ -rpath ${libtheora.out}/lib
+ -rpath ${libogg.out}/lib
+ -rpath ${libmodplug.out}/lib
'';
buildPhase = ''
diff --git a/pkgs/games/oilrush/default.nix b/pkgs/games/oilrush/default.nix
index d75f02c5e941e..ec9c928b7982f 100644
--- a/pkgs/games/oilrush/default.nix
+++ b/pkgs/games/oilrush/default.nix
@@ -1,6 +1,8 @@
{ stdenv, config, fetchurl, libX11, libXext, libXinerama, libXrandr
, libXrender, fontconfig, freetype, openal }:
+with { inherit (stdenv.lib) makeLibraryPath; };
+
stdenv.mkDerivation {
name = "oilrush";
src =
@@ -25,25 +27,25 @@ stdenv.mkDerivation {
do
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
done
- patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib:${libX11}/lib:${libXext}/lib:${libXrender}/lib:${fontconfig}/lib:${freetype}/lib\
+ patchelf --set-rpath ${stdenv.cc.cc}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXrender fontconfig freetype ]}\
launcher_$arch
patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib\
libNetwork_$arch.so
patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib\
libQtCoreUnigine_$arch.so.4
- patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib:${libX11}/lib:${libXext}/lib:${libXrender}/lib:${fontconfig}/lib:${freetype}/lib\
+ patchelf --set-rpath ${stdenv.cc.cc}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXrender fontconfig freetype ]}\
libQtGuiUnigine_$arch.so.4
patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib\
libQtNetworkUnigine_$arch.so.4
- patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib:${libX11}/lib:${libXext}/lib:${libXrender}/lib:${fontconfig}/lib:${freetype}/lib\
+ patchelf --set-rpath ${stdenv.cc.cc}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXrender fontconfig freetype ]}\
libQtWebKitUnigine_$arch.so.4
patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib\
libQtXmlUnigine_$arch.so.4
patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib\
libRakNet_$arch.so
- patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib:${libX11}/lib:${libXext}/lib:${libXinerama}/lib:${libXrandr}/lib\
+ patchelf --set-rpath ${stdenv.cc.cc}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXinerama libXrandr ]}\
libUnigine_$arch.so
- patchelf --set-rpath ${stdenv.cc.cc}/lib64:${stdenv.cc.cc}/lib:${libX11}/lib:${libXext}/lib:${libXinerama}/lib:${libXrandr}/lib\
+ patchelf --set-rpath ${stdenv.cc.cc}/lib64:${makeLibraryPath [ stdenv.cc.cc libX11 libXext libXinerama libXrandr ]}\
OilRush_$arch
'';
installPhase = ''
@@ -53,7 +55,7 @@ stdenv.mkDerivation {
mkdir -p "$out/bin"
cat << EOF > "$out/bin/oilrush"
#! /bin/sh
- LD_LIBRARY_PATH=.:${openal}/lib:\$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=.:${makeLibraryPath [ openal ]}:\$LD_LIBRARY_PATH
cd "$out/opt/oilrush"
exec ./launcher_$arch.sh "\$@"
EOF
diff --git a/pkgs/games/openarena/default.nix b/pkgs/games/openarena/default.nix
index 1926afaeb3b64..1e396318bbbd0 100644
--- a/pkgs/games/openarena/default.nix
+++ b/pkgs/games/openarena/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
installPhase = let
gameDir = "$out/openarena-$version";
interpreter = "$(< \"$NIX_CC/nix-support/dynamic-linker\")";
+ libPath = stdenv.lib.makeLibraryPath [ SDL libogg libvorbis ];
in ''
mkdir -pv $out/bin
cd $out
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
${if stdenv.system == "x86_64-linux" then ''
patchelf --set-interpreter "${interpreter}" "${gameDir}/openarena.x86_64"
makeWrapper "${gameDir}/openarena.x86_64" "$out/bin/openarena" \
- --prefix LD_LIBRARY_PATH : "${SDL}/lib:${libogg}/lib:${libvorbis}/lib"
+ --prefix LD_LIBRARY_PATH : "${libPath}"
'' else ''
patchelf --set-interpreter "${interpreter}" "${gameDir}/openarena.i386"
makeWrapper "${gameDir}/openarena.i386" "$out/bin/openarena" \
- --prefix LD_LIBRARY_PATH : "${SDL}/lib:${libogg}/lib:${libvorbis}/lib"
+ --prefix LD_LIBRARY_PATH : "${libPath}"
''}
'';
diff --git a/pkgs/games/openlierox/default.nix b/pkgs/games/openlierox/default.nix
index 2dc4dece75f38..04b74b4214fa3 100644
--- a/pkgs/games/openlierox/default.nix
+++ b/pkgs/games/openlierox/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
sha256 = "1k35xppfqi3qfysv81xq3hj4qdy9j2ciinbkfdcmwclcsf3nh94z";
};
- NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2";
+ NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
# The breakpad fails to build on x86_64, and it's only to report bugs upstream
cmakeFlags = [ "-DBREAKPAD=0" ];
diff --git a/pkgs/games/planetaryannihilation/default.nix b/pkgs/games/planetaryannihilation/default.nix
index ed682e7bed93d..cf968c08287e2 100644
--- a/pkgs/games/planetaryannihilation/default.nix
+++ b/pkgs/games/planetaryannihilation/default.nix
@@ -34,12 +34,12 @@ stdenv.mkDerivation {
ln -s ${systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/PA"
- patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc xorg.libXdamage xorg.libXfixes gtk glib stdenv.glibc "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome3.gconf gdk_pixbuf xorg.libXrender ]}:{stdenv.cc.cc}/lib64:${stdenv.glibc}/lib64" "$out/host/CoherentUI_Host"
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib xorg.libXdamage xorg.libXfixes gtk glib stdenv.glibc.out "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome3.gconf gdk_pixbuf xorg.libXrender ]}:{stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" "$out/host/CoherentUI_Host"
- wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc stdenv.glibc xorg.libX11 xorg.libXcursor gtk glib curl "$out" ]}:${stdenv.cc.cc}/lib64:${stdenv.glibc}/lib64"
+ wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.glibc.out xorg.libX11 xorg.libXcursor gtk glib curl "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64"
for f in $out/lib/*; do
- patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc curl xorg.libX11 stdenv.glibc xorg.libXcursor "$out" ]}:${stdenv.cc.cc}/lib64:${stdenv.glibc}/lib64" $f
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib curl xorg.libX11 stdenv.glibc.out xorg.libXcursor "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" $f
done
'';
diff --git a/pkgs/games/quantumminigolf/default.nix b/pkgs/games/quantumminigolf/default.nix
index 940351790166d..1b07550779655 100644
--- a/pkgs/games/quantumminigolf/default.nix
+++ b/pkgs/games/quantumminigolf/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
inherit (s) url sha256;
};
preBuild = ''
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL}/include/SDL"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL.dev}/include/SDL"
sed -re 's@"(gfx|fonts|tracks)/@"'"$out"'/share/quantumminigolf/\1/@g' -i *.cpp
'';
diff --git a/pkgs/games/rili/default.nix b/pkgs/games/rili/default.nix
index 7d12733284537..e0e6de6b8efe9 100644
--- a/pkgs/games/rili/default.nix
+++ b/pkgs/games/rili/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
patches = [ ./moderinze_cpp.patch ];
- CPPFLAGS = "-I${SDL}/include -I${SDL}/include/SDL -I${SDL_mixer}/include";
+ CPPFLAGS = "-I${SDL.dev}/include -I${SDL.dev}/include/SDL -I${SDL_mixer}/include";
buildInputs = [ SDL SDL_mixer autoreconfHook ];
diff --git a/pkgs/games/sdlmame/default.nix b/pkgs/games/sdlmame/default.nix
index 15b7f87ed10f9..5e52a92e621a4 100644
--- a/pkgs/games/sdlmame/default.nix
+++ b/pkgs/games/sdlmame/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
installPhase = ''
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${alsaLib}/lib:${qt48}/lib:${SDL}/lib:${fontconfig}/lib:${freetype}/lib:${SDL_ttf}/lib:${xorg.libX11}/lib:${xorg.libXinerama}/lib:${stdenv.cc.cc}/lib" \
+ --set-rpath "${stdenv.lib.makeLibraryPath [ alsaLib qt48 SDL fontconfig freetype SDL_ttf xorg.libX11 xorg.libXinerama stdenv.cc.cc ]}" \
share/sdlmame/sdlmame
mkdir -p "$out/bin"
diff --git a/pkgs/games/tibia/default.nix b/pkgs/games/tibia/default.nix
index c1f533276d6e9..1af750f462a9f 100644
--- a/pkgs/games/tibia/default.nix
+++ b/pkgs/games/tibia/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
mkdir -pv $out/res
cp -r * $out/res
- patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux.so.2 \
--set-rpath ${stdenv.cc.cc}/lib:${libX11}/lib:${mesa}/lib \
"$out/res/Tibia"
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
cat << EOF > "$out/bin/Tibia"
#!${stdenv.shell}
cd $out/res
- ${glibc}/lib/ld-linux.so.2 --library-path \$LD_LIBRARY_PATH ./Tibia "\$@"
+ ${glibc.out}/lib/ld-linux.so.2 --library-path \$LD_LIBRARY_PATH ./Tibia "\$@"
EOF
chmod +x $out/bin/Tibia
diff --git a/pkgs/games/trackballs/default.nix b/pkgs/games/trackballs/default.nix
index 22d8c944fa8bf..7cf741f2faba1 100644
--- a/pkgs/games/trackballs/default.nix
+++ b/pkgs/games/trackballs/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
postUnpack = optionalString debug
"mkdir -p $out/src; cp -R * $out/src ; cd $out/src";
- NIX_CFLAGS_COMPILE = "-iquote ${SDL}/include/SDL";
+ NIX_CFLAGS_COMPILE = "-iquote ${SDL.dev}/include/SDL";
configureFlags = optionalString debug "--enable-debug";
patchPhase = ''
diff --git a/pkgs/games/ue4demos/default.nix b/pkgs/games/ue4demos/default.nix
index ed2ea23d41580..026f974ff9325 100644
--- a/pkgs/games/ue4demos/default.nix
+++ b/pkgs/games/ue4demos/default.nix
@@ -20,7 +20,7 @@ let
cd $out
unzip $src
- interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
+ interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
binary=$(find . -executable -type f)
patchelf \
--set-interpreter $interpreter \
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index 3eabaa090bb06..5027abedcf4f4 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
# The fpc is not properly wrapped to add -rpath. I add this manually.
# I even do a trick on lib/lib64 for libgcc, that I expect it will work.
preBuild = ''
- export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${SDL}/lib -rpath ${SDL_image}/lib -rpath ${libpng}/lib -rpath ${freetype}/lib -rpath ${portaudio}/lib -rpath ${ffmpeg}/lib -rpath ${zlib}/lib -rpath ${sqlite}/lib -rpath ${libX11}/lib -rpath ${pcre}/lib -rpath ${lua}/lib -rpath ${stdenv.cc.cc}/lib64 -rpath ${stdenv.cc.cc}/lib"
+ export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${SDL.out}/lib -rpath ${SDL_image}/lib -rpath ${libpng.out}/lib -rpath ${freetype.out}/lib -rpath ${portaudio}/lib -rpath ${ffmpeg.out}/lib -rpath ${zlib.out}/lib -rpath ${sqlite.out}/lib -rpath ${libX11.out}/lib -rpath ${pcre.out}/lib -rpath ${lua}/lib -rpath ${stdenv.cc.cc.out}/lib64 -rpath ${stdenv.cc.cc.out}/lib"
sed -i 414,424d Makefile
'';
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index b525e3cb0f894..9f2dfbab2ecdc 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
cp -rv basewsw libs $dest
# Since 1.03 some modules are _always_ downloaded from server, thus
makeWrapper $dest/warsow $out/bin/warsow \
- --suffix-each LD_LIBRARY_PATH ':' "${freetype}/lib"
+ --suffix-each LD_LIBRARY_PATH ':' "${freetype.out}/lib"
makeWrapper $dest/wsw_server $out/bin/wsw_server
makeWrapper $dest/wswtv_server $out/bin/wswtv_server
'';
diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix
index 7fb7c11694fd6..e45bbb20d3a71 100644
--- a/pkgs/games/xonotic/default.nix
+++ b/pkgs/games/xonotic/default.nix
@@ -32,9 +32,9 @@ stdenv.mkDerivation rec {
#'';
NIX_LDFLAGS = ''
- -rpath ${zlib}/lib
- -rpath ${libvorbis}/lib
- -rpath ${curl}/lib
+ -rpath ${zlib.out}/lib
+ -rpath ${libvorbis.out}/lib
+ -rpath ${curl.out}/lib
'';
buildPhase = ''
diff --git a/pkgs/games/xsokoban/default.nix b/pkgs/games/xsokoban/default.nix
index e6686a658a90e..502771e18ee60 100644
--- a/pkgs/games/xsokoban/default.nix
+++ b/pkgs/games/xsokoban/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
sed -e 's/getline/my_getline/' -i score.c
- export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libXpm}/include/X11"
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libXpm.dev}/include/X11"
for i in $NIX_CFLAGS_COMPILE; do echo $i; ls ''${i#-I}; done
chmod a+rw config.h
cat >>config.h < "$out/nix-support/propagated-build-inputs"
- echo "$propagatedNativeBuildInputs" > "$out/nix-support/propagated-native-build-inputs"
}
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index bb9e73d31cd3d..7ba97cf35b045 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -2347,6 +2347,21 @@ let
meta.platforms = stdenv.lib.platforms.unix;
}) // {inherit dri2proto dri3proto renderproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ;};
+ # TODO:
+ # With the current state of ./generate-expr-from-tarballs.pl,
+ # this will get overwritten when next invoked.
+ # Could add a special case to ./generate-expr-from-tarballs.pl,
+ # or perhaps there's a cleaner solution.
+ #xquartz = (mkDerivation "xquartz" {
+ # name = "xorg-server-1.14.6";
+ # builder = ./builder.sh;
+ # src = fetchurl {
+ # url = mirror://xorg/individual/xserver/xorg-server-1.14.6.tar.bz2;
+ # sha256 = "0c57vp1z0p38dj5gfipkmlw6bvbz1mrr0sb3sbghdxxdyq4kzcz8";
+ # };
+ # buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ];
+ #}) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;};
+
xorgsgmldoctools = (mkDerivation "xorgsgmldoctools" {
name = "xorg-sgml-doctools-1.11";
builder = ./builder.sh;
diff --git a/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch b/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch
new file mode 100644
index 0000000000000..fe079eeb42a75
--- /dev/null
+++ b/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch
@@ -0,0 +1,13 @@
+diff --git a/imake.c b/imake.c
+index c20cd4a..ec2589b 100644
+--- a/imake.c
++++ b/imake.c
+@@ -959,7 +959,7 @@ get_libc_version(FILE *inFile)
+ {
+ char aout[4096], *tmpdir;
+ FILE *fp;
+- const char *format = "%s -o %s -x c -";
++ const char *format = "f=$(mktemp imakeXXXXXX.c); cat > $f; %s $f -o %s";
+ char *cc;
+ int len;
+ char *command;
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 7bd179067cd0f..a0405ec077f32 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -48,7 +48,7 @@ in
imake = attrs: attrs // {
inherit (xorg) xorgcffiles;
x11BuildHook = ./imake.sh;
- patches = [./imake.patch];
+ patches = [./imake.patch ./imake-cc-wrapper-uberhack.patch];
setupHook = if stdenv.isDarwin then ./darwin-imake-setup-hook.sh else null;
CFLAGS = [ "-DIMAKE_COMPILETIME_CPP=\\\"${if stdenv.isDarwin
then "${args.tradcpp}/bin/cpp"
@@ -73,7 +73,7 @@ in
libxcb = attrs : attrs // {
nativeBuildInputs = [ args.python ];
configureFlags = "--enable-xkb --enable-xinput";
- outputs = [ "out" "doc" "man" ];
+ outputs = [ "dev" "out" "doc" ];
};
xcbproto = attrs : attrs // {
@@ -81,6 +81,7 @@ in
};
libX11 = attrs: attrs // {
+ outputs = [ "dev" "out" "man" ];
preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
'';
@@ -90,7 +91,6 @@ in
rm -rf $out/share/doc
'';
CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
- outputs = [ "out" "man" ];
};
libAppleWM = attrs: attrs // {
@@ -100,7 +100,16 @@ in
'';
};
+ libXau = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ };
+
+ libXdmcp = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ };
+
libXfont = attrs: attrs // {
+ outputs = [ "dev" "out" ];
propagatedBuildInputs = [ args.freetype ]; # propagate link reqs. like bzip2
# prevents "misaligned_stack_error_entering_dyld_stub_binder"
configureFlags = lib.optionals isDarwin [
@@ -109,14 +118,10 @@ in
};
libXxf86vm = attrs: attrs // {
+ outputs = [ "dev" "out" ];
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
- libXrandr = attrs: attrs // {
- preConfigure = setMalloc0ReturnsNullCrossCompiling;
- propagatedBuildInputs = [xorg.libXrender];
- };
-
# Propagate some build inputs because of header file dependencies.
# Note: most of these are in Requires.private, so maybe builder.sh
# should propagate them automatically.
@@ -126,7 +131,7 @@ in
'';
propagatedBuildInputs = [ xorg.libSM ];
CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
- outputs = [ "out" "doc" "man" ];
+ outputs = [ "dev" "out" "docdev" ];
};
# See https://bugs.freedesktop.org/show_bug.cgi?id=47792
@@ -139,44 +144,106 @@ in
propagatedBuildInputs = [ xorg.fixesproto ];
};
+ libICE = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ };
+
libXcomposite = attrs: attrs // {
+ outputs = [ "dev" "out" ];
propagatedBuildInputs = [ xorg.libXfixes ];
};
libXaw = attrs: attrs // {
+ outputs = [ "dev" "out" "docdev" ];
propagatedBuildInputs = [ xorg.libXmu ];
};
+ libXcursor = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ };
+
+ libXdamage = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ };
+
libXft = attrs: attrs // {
+ outputs = [ "dev" "out" ];
propagatedBuildInputs = [ xorg.libXrender args.freetype args.fontconfig ];
preConfigure = setMalloc0ReturnsNullCrossCompiling;
# the include files need ft2build.h, and Requires.private isn't enough for us
postInstall = ''
- sed "/^Requires:/s/$/, freetype2/" -i "$out/lib/pkgconfig/xft.pc"
+ sed "/^Requires:/s/$/, freetype2/" -i "$dev/lib/pkgconfig/xft.pc"
'';
};
libXext = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
propagatedBuildInputs = [ xorg.xproto xorg.libXau ];
preConfigure = setMalloc0ReturnsNullCrossCompiling;
};
- libSM = attrs: attrs
- // { propagatedBuildInputs = [ xorg.libICE ]; };
+ libXfixes = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ };
+
+ libXi = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ };
+
+ libXinerama = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ };
+
+ libXmu = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ buildFlags = ''BITMAP_DEFINES=-DBITMAPDIR=\"/no-such-path\"'';
+ };
+
+ libXrandr = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ preConfigure = setMalloc0ReturnsNullCrossCompiling;
+ propagatedBuildInputs = [xorg.libXrender];
+ };
+
+ libSM = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ propagatedBuildInputs = [ xorg.libICE ];
+ };
- libXrender = attrs: attrs
- // { preConfigure = setMalloc0ReturnsNullCrossCompiling; };
+ libXrender = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ preConfigure = setMalloc0ReturnsNullCrossCompiling;
+ };
- libXvMC = attrs: attrs
- // { buildInputs = attrs.buildInputs ++ [xorg.renderproto]; };
+ libXres = attrs: attrs // {
+ outputs = [ "dev" "out" "docdev" ];
+ };
+
+ libXv = attrs: attrs // {
+ outputs = [ "dev" "out" "docdev" ];
+ };
+
+ libXvMC = attrs: attrs // {
+ outputs = [ "dev" "out" "doc" ];
+ buildInputs = attrs.buildInputs ++ [xorg.renderproto];
+ };
libXpm = attrs: attrs // {
+ outputs = [ "dev" "out" "bin" ]; # tiny man in $bin
patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in";
};
libXpresent = attrs: attrs
// { buildInputs = with xorg; attrs.buildInputs ++ [ libXext libXfixes libXrandr ]; };
+ libxkbfile = attrs: attrs // {
+ outputs = [ "dev" "out" ]; # mainly to avoid propagation
+ };
+
+ libxshmfence = attrs: attrs // {
+ outputs = [ "dev" "out" ]; # mainly to avoid propagation
+ };
+
setxkbmap = attrs: attrs // {
postInstall =
''
@@ -193,10 +260,30 @@ in
buildInputs = attrs.buildInputs ++ [ args.freetype args.fontconfig ];
};
+ xcbutil = attrs: attrs // {
+ outputs = [ "dev" "out" ];
+ };
+
xcbutilcursor = attrs: attrs // {
meta.maintainers = [ stdenv.lib.maintainers.lovek323 ];
};
+ xcbutilimage = attrs: attrs // {
+ outputs = [ "dev" "out" ]; # mainly to get rid of propagating others
+ };
+
+ xcbutilkeysyms = attrs: attrs // {
+ outputs = [ "dev" "out" ]; # mainly to get rid of propagating others
+ };
+
+ xcbutilrenderutil = attrs: attrs // {
+ outputs = [ "dev" "out" ]; # mainly to get rid of propagating others
+ };
+
+ xcbutilwm = attrs: attrs // {
+ outputs = [ "dev" "out" ]; # mainly to get rid of propagating others
+ };
+
xf86inputevdev = attrs: attrs // {
preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
installFlags = "sdkdir=\${out}/include/xorg";
@@ -280,7 +367,7 @@ in
version = (builtins.parseDrvName attrs.name).version;
commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
commonPropagatedBuildInputs = [
- args.zlib args.mesa args.dbus.libs
+ args.zlib args.mesa args.dbus
xf86bigfontproto glproto xf86driproto
compositeproto scrnsaverproto resourceproto
xf86dgaproto
@@ -307,6 +394,7 @@ in
in
if (!isDarwin)
then {
+ outputs = [ "dev" "out" ];
buildInputs = [ makeWrapper ] ++ commonBuildInputs;
propagatedBuildInputs = [ libpciaccess ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
args.udev
@@ -329,6 +417,12 @@ in
--set XKB_BINDIR "${xorg.xkbcomp}/bin" \
--set XORG_DRI_DRIVER_PATH ${args.mesa}/lib/dri \
--add-flags "-xkbdir ${xorg.xkeyboardconfig}/share/X11/xkb"
+ ( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others
+ cd "$dev"
+ for f in include/xorg/*.h; do
+ sed "1i#line 1 \"${attrs.name}/$f\"" -i "$f"
+ done
+ )
'';
passthru.version = version; # needed by virtualbox guest additions
} else {
@@ -402,7 +496,7 @@ in
stdenv = if isDarwin then args.clangStdenv else stdenv;
buildInputs = attrs.buildInputs ++ lib.optional isDarwin args.bootstrap_cmds;
configureFlags = [
- "--with-xserver=${xorg.xorgserver}/bin/X"
+ "--with-xserver=${xorg.xorgserver.out}/bin/X"
] ++ lib.optionals isDarwin [
"--with-bundle-id-prefix=org.nixos.xquartz"
"--with-launchdaemons-dir=\${out}/LaunchDaemons"
diff --git a/pkgs/servers/x11/xquartz/default.nix b/pkgs/servers/x11/xquartz/default.nix
index 920b66147f26f..db0c446617af6 100644
--- a/pkgs/servers/x11/xquartz/default.nix
+++ b/pkgs/servers/x11/xquartz/default.nix
@@ -159,7 +159,7 @@ in stdenv.mkDerivation {
--replace "@ENCODINGSDIR@" "${xorg.encodings}/share/fonts/X11/encodings" \
--replace "@MKFONTDIR@" "${xorg.mkfontdir}/bin/mkfontdir" \
--replace "@MKFONTSCALE@" "${xorg.mkfontscale}/bin/mkfontscale" \
- --replace "@FC_CACHE@" "${fontconfig}/bin/fc-cache" \
+ --replace "@FC_CACHE@" "${fontconfig.bin}/bin/fc-cache" \
--replace "@FONTCONFIG_FILE@" "$fontsConfPath"
cp ${./xinitrc} $out/etc/X11/xinit/xinitrc
diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix
index 60504ecaa9bc4..2fa229692eb3c 100644
--- a/pkgs/shells/bash/default.nix
+++ b/pkgs/shells/bash/default.nix
@@ -9,6 +9,8 @@ let
shortName = "bash43";
baseConfigureFlags = if interactive then "--with-installed-readline" else "--disable-readline";
sha256 = "1m14s1f61mf6bijfibcjm9y6pkyvz6gibyl8p4hxq90fisi8gimg";
+
+ inherit (stdenv.lib) optional optionalString;
in
stdenv.mkDerivation rec {
@@ -19,7 +21,12 @@ stdenv.mkDerivation rec {
inherit sha256;
};
- outputs = [ "out" "doc" ];
+ outputs = if (!interactive) # conditional to avoid mass rebuild ATM
+ then [ "out" "doc" ]
+ else [ "out" "doc" "info" ];
+
+ # the man pages are small and useful enough
+ outputMan = if interactive then "out" else null;
NIX_CFLAGS_COMPILE = ''
-DSYS_BASHRC="/etc/bashrc"
@@ -41,17 +48,17 @@ stdenv.mkDerivation rec {
};
in
import ./bash-4.3-patches.nix patch)
- ++ stdenv.lib.optional stdenv.isCygwin ./cygwin-bash-4.3.33-1.src.patch;
+ ++ optional stdenv.isCygwin ./cygwin-bash-4.3.33-1.src.patch;
crossAttrs = {
configureFlags = baseConfigureFlags +
" bash_cv_job_control_missing=nomissing bash_cv_sys_named_pipes=nomissing" +
- stdenv.lib.optionalString stdenv.isCygwin ''
+ optionalString stdenv.isCygwin ''
--without-libintl-prefix --without-libiconv-prefix
--with-installed-readline
bash_cv_dev_stdin=present
bash_cv_dev_fd=standard
- bash_cv_termcap_lib=libncurses
+ bash_cv_termcap_lib=libncurses
'';
};
@@ -59,20 +66,29 @@ stdenv.mkDerivation rec {
# Note: Bison is needed because the patches above modify parse.y.
nativeBuildInputs = [bison]
- ++ stdenv.lib.optional (texinfo != null) texinfo
- ++ stdenv.lib.optional interactive readline
- ++ stdenv.lib.optional stdenv.isDarwin binutils;
+ ++ optional (texinfo != null) texinfo
+ ++ optional interactive readline
+ ++ optional stdenv.isDarwin binutils;
# Bash randomly fails to build because of a recursive invocation to
# build `version.h'.
enableParallelBuilding = false;
postInstall = ''
- # Add an `sh' -> `bash' symlink.
ln -s bash "$out/bin/sh"
'';
- meta = {
+ postFixup = if interactive
+ then ''
+ substituteInPlace "$out/bin/bashbug" \
+ --replace '${stdenv.shell}' "$out/bin/bash"
+ ''
+ # most space is taken by locale data
+ else ''
+ rm -r "$out/share" "$out/bin/bashbug"
+ '';
+
+ meta = with stdenv.lib; {
homepage = http://www.gnu.org/software/bash/;
description =
"GNU Bourne-Again Shell, the de facto standard shell on Linux" +
@@ -89,11 +105,11 @@ stdenv.mkDerivation rec {
Bash without modification.
'';
- license = stdenv.lib.licenses.gpl3Plus;
+ license = licenses.gpl3Plus;
- platforms = stdenv.lib.platforms.all;
+ platforms = platforms.all;
- maintainers = [ stdenv.lib.maintainers.simons ];
+ maintainers = [ maintainers.simons ];
};
passthru = {
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 63f5dbd05ddb5..6b4a91e90142d 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
-i "$out/share/fish/functions/alias.fish" \
"$out/share/fish/functions/prompt_pwd.fish"
substituteInPlace "$out/share/fish/functions/fish_default_key_bindings.fish" \
- --replace "clear;" "${ncurses}/bin/clear;"
+ --replace "clear;" "${ncurses.out}/bin/clear;"
'' + stdenv.lib.optionalString stdenv.isLinux ''
substituteInPlace "$out/share/fish/functions/__fish_print_help.fish" \
--replace "| ul" "| ${utillinux}/bin/ul"
diff --git a/pkgs/stdenv/common-path.nix b/pkgs/stdenv/common-path.nix
index cff6fd0a3eed1..da468d56a2cda 100644
--- a/pkgs/stdenv/common-path.nix
+++ b/pkgs/stdenv/common-path.nix
@@ -7,9 +7,9 @@
pkgs.gawk
pkgs.gnutar
pkgs.gzip
- pkgs.bzip2
+ pkgs.bzip2.bin
pkgs.gnumake
pkgs.bash
pkgs.patch
- pkgs.xz
+ pkgs.xz.bin
]
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index 52f8f007b001f..22e86c461fa92 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -178,7 +178,7 @@ in rec {
allowedRequisites =
[ bootstrapTools ] ++
- (with pkgs; [ xz libcxx libcxxabi icu ]) ++
+ (with pkgs; [ xz.bin xz.out libcxx libcxxabi icu.out ]) ++
(with pkgs.darwin; [ dyld Libsystem CF locale ]);
overrides = persistent1;
@@ -214,7 +214,7 @@ in rec {
allowedRequisites =
[ bootstrapTools ] ++
- (with pkgs; [ icu bash libcxx libcxxabi ]) ++
+ (with pkgs; [ xz.bin xz.out icu.out bash libcxx libcxxabi ]) ++
(with pkgs.darwin; [ dyld Libsystem locale ]);
overrides = persistent2;
@@ -297,9 +297,11 @@ in rec {
};
allowedRequisites = (with pkgs; [
- xz libcxx libcxxabi icu gmp gnumake findutils bzip2 llvm zlib libffi
- coreutils ed diffutils gnutar gzip ncurses gnused bash gawk
- gnugrep llvmPackages.clang-unwrapped patch pcre binutils-raw binutils gettext
+ xz.out xz.bin libcxx libcxxabi icu.out gmp.out gnumake findutils bzip2.out
+ bzip2.bin llvm zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar
+ gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
+ gnugrep llvmPackages.clang-unwrapped patch pcre.out binutils-raw.out
+ binutils-raw.dev binutils gettext
]) ++ (with pkgs.darwin; [
dyld Libsystem CF cctools libiconv locale
]);
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index b0025351b0494..561dcc7fdfda1 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -30,9 +30,9 @@ rec {
cp -rL ${darwin.Libsystem}/include $out
chmod -R u+w $out/include
- cp -rL ${icu}/include* $out/include
+ cp -rL ${icu.dev}/include* $out/include
cp -rL ${libiconv}/include/* $out/include
- cp -rL ${gnugrep.pcre}/include/* $out/include
+ cp -rL ${gnugrep.pcre.dev}/include/* $out/include
mv $out/include $out/include-Libsystem
# Copy coreutils, bash, etc.
@@ -49,23 +49,23 @@ rec {
cp -d ${gawk}/bin/awk $out/bin
cp ${gnutar}/bin/tar $out/bin
cp ${gzip}/bin/gzip $out/bin
- cp ${bzip2}/bin/bzip2 $out/bin
+ cp ${bzip2.bin}/bin/bzip2 $out/bin
cp -d ${gnumake}/bin/* $out/bin
cp -d ${patch}/bin/* $out/bin
- cp -d ${xz}/bin/xz $out/bin
+ cp -d ${xz.bin}/bin/xz $out/bin
# This used to be in-nixpkgs, but now is in the bundle
# because I can't be bothered to make it partially static
- cp ${curl}/bin/curl $out/bin
- cp -d ${curl}/lib/libcurl*.dylib $out/lib
- cp -d ${libssh2}/lib/libssh*.dylib $out/lib
- cp -d ${openssl}/lib/*.dylib $out/lib
+ cp ${curl.bin}/bin/curl $out/bin
+ cp -d ${curl.out}/lib/libcurl*.dylib $out/lib
+ cp -d ${libssh2.out}/lib/libssh*.dylib $out/lib
+ cp -d ${openssl.out}/lib/*.dylib $out/lib
- cp -d ${gnugrep.pcre}/lib/libpcre*.dylib $out/lib
- cp -d ${libiconv}/lib/lib*.dylib $out/lib
+ cp -d ${gnugrep.pcre.out}/lib/libpcre*.dylib $out/lib
+ cp -d ${libiconv.lib or libiconv}/lib/lib*.dylib $out/lib
cp -d ${gettext}/lib/libintl*.dylib $out/lib
chmod +x $out/lib/libintl*.dylib
- cp -d ${ncurses}/lib/libncurses*.dylib $out/lib
+ cp -d ${ncurses.out}/lib/libncurses*.dylib $out/lib
# Copy what we need of clang
cp -d ${llvmPackages.clang-unwrapped}/bin/clang $out/bin
@@ -80,10 +80,10 @@ rec {
mkdir $out/include
cp -rd ${libcxx}/include/c++ $out/include
- cp -d ${icu}/lib/libicu*.dylib $out/lib
- cp -d ${zlib}/lib/libz.* $out/lib
- cp -d ${gmpxx}/lib/libgmp*.* $out/lib
- cp -d ${xz}/lib/liblzma*.* $out/lib
+ cp -d ${icu.out}/lib/libicu*.dylib $out/lib
+ cp -d ${zlib.out}/lib/libz.* $out/lib
+ cp -d ${gmpxx.out}/lib/libgmp*.* $out/lib
+ cp -d ${xz.out}/lib/liblzma*.* $out/lib
# Copy binutils.
for i in as ld ar ranlib nm strip otool install_name_tool dsymutil; do
@@ -138,7 +138,7 @@ rec {
cp ${stdenv.shell} $out/on-server/sh
cp ${cpio}/bin/cpio $out/on-server
cp ${coreutils_}/bin/mkdir $out/on-server
- cp ${bzip2}/bin/bzip2 $out/on-server
+ cp ${bzip2.bin}/bin/bzip2 $out/on-server
chmod u+w $out/on-server/*
strip $out/on-server/*
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 6dc2553db3860..547541d28246e 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -82,6 +82,7 @@ let
../../build-support/setup-hooks/compress-man-pages.sh
../../build-support/setup-hooks/strip.sh
../../build-support/setup-hooks/patch-shebangs.sh
+ ../../build-support/setup-hooks/multiple-outputs.sh
../../build-support/setup-hooks/move-sbin.sh
../../build-support/setup-hooks/move-lib64.sh
../../build-support/setup-hooks/set-source-date-epoch-to-latest.sh
@@ -219,12 +220,25 @@ let
# The meta attribute is passed in the resulting attribute set,
# but it's not part of the actual derivation, i.e., it's not
# passed to the builder and is not a dependency. But since we
- # include it in the result, it *is* available to nix-env for
- # queries. We also a meta.position attribute here to
- # identify the source location of the package.
- meta = meta // (if pos' != null then {
- position = pos'.file + ":" + toString pos'.line;
- } else {});
+ # include it in the result, it *is* available to nix-env for queries.
+ meta = { }
+ # If the packager hasn't specified `outputsToInstall`, choose a default,
+ # namely `p.bin or p.out or p`;
+ # if he has specified it, it will be overridden below in `// meta`.
+ # Note: This default probably shouldn't be globally configurable.
+ # Services and users should specify outputs explicitly,
+ # unless they are comfortable with this default.
+ // { outputsToInstall =
+ let
+ outs = outputs'; # the value passed to derivation primitive
+ hasOutput = out: builtins.elem out outs;
+ in [( lib.findFirst hasOutput null (["bin" "out"] ++ outs) )];
+ }
+ // meta
+ # Fill `meta.position` to identify the source location of the package.
+ // lib.optionalAttrs (pos' != null)
+ { position = pos'.file + ":" + toString pos'.line; }
+ ;
inherit passthru;
} //
# Pass through extra attributes that are not inputs, but
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index cca4648d2375c..9399ff7a76437 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -174,12 +174,21 @@ ensureDir() {
}
-installBin() {
- mkdir -p $out/bin
- cp "$@" $out/bin
+# Add $1/lib* into rpaths.
+# The function is used in multiple-outputs.sh hook,
+# so it is defined here but tried after the hook.
+_addRpathPrefix() {
+ if [ "$NIX_NO_SELF_RPATH" != 1 ]; then
+ export NIX_LDFLAGS="-rpath $1/lib $NIX_LDFLAGS"
+ if [ -n "$NIX_LIB64_IN_SELF_RPATH" ]; then
+ export NIX_LDFLAGS="-rpath $1/lib64 $NIX_LDFLAGS"
+ fi
+ if [ -n "$NIX_LIB32_IN_SELF_RPATH" ]; then
+ export NIX_LDFLAGS="-rpath $1/lib32 $NIX_LDFLAGS"
+ fi
+ fi
}
-
# Return success if the specified file is an ELF object.
isELF() {
local fn="$1"
@@ -312,16 +321,7 @@ for i in $crossPkgs; do
done
-# Add the output as an rpath.
-if [ "$NIX_NO_SELF_RPATH" != 1 ]; then
- export NIX_LDFLAGS="-rpath $out/lib $NIX_LDFLAGS"
- if [ -n "$NIX_LIB64_IN_SELF_RPATH" ]; then
- export NIX_LDFLAGS="-rpath $out/lib64 $NIX_LDFLAGS"
- fi
- if [ -n "$NIX_LIB32_IN_SELF_RPATH" ]; then
- export NIX_LDFLAGS="-rpath $out/lib32 $NIX_LDFLAGS"
- fi
-fi
+_addRpathPrefix "$out"
# Set the TZ (timezone) environment variable, otherwise commands like
@@ -643,7 +643,7 @@ configurePhase() {
done
fi
- if [ -z "$dontAddPrefix" ]; then
+ if [ -z "$dontAddPrefix" -a -n "$prefix" ]; then
configureFlags="${prefixKey:---prefix=}$prefix $configureFlags"
fi
@@ -708,7 +708,9 @@ checkPhase() {
installPhase() {
runHook preInstall
- mkdir -p "$prefix"
+ if [ -n "$prefix" ]; then
+ mkdir -p "$prefix"
+ fi
installTargets=${installTargets:-install}
echo "install flags: $installTargets $makeFlags ${makeFlagsArray[@]} $installFlags ${installFlagsArray[@]}"
@@ -737,24 +739,29 @@ fixupPhase() {
prefix=${!output} runHook fixupOutput
done
+
+ # Propagate build inputs and setup hook into the development output.
+
if [ -n "$propagatedBuildInputs" ]; then
- mkdir -p "$out/nix-support"
- echo "$propagatedBuildInputs" > "$out/nix-support/propagated-build-inputs"
+ mkdir -p "${!outputDev}/nix-support"
+ echo "$propagatedBuildInputs" > "${!outputDev}/nix-support/propagated-build-inputs"
fi
if [ -n "$propagatedNativeBuildInputs" ]; then
- mkdir -p "$out/nix-support"
- echo "$propagatedNativeBuildInputs" > "$out/nix-support/propagated-native-build-inputs"
+ mkdir -p "${!outputDev}/nix-support"
+ echo "$propagatedNativeBuildInputs" > "${!outputDev}/nix-support/propagated-native-build-inputs"
fi
- if [ -n "$propagatedUserEnvPkgs" ]; then
- mkdir -p "$out/nix-support"
- echo "$propagatedUserEnvPkgs" > "$out/nix-support/propagated-user-env-packages"
+ if [ -n "$setupHook" ]; then
+ mkdir -p "${!outputDev}/nix-support"
+ substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook"
fi
- if [ -n "$setupHook" ]; then
- mkdir -p "$out/nix-support"
- substituteAll "$setupHook" "$out/nix-support/setup-hook"
+ # Propagate user-env packages into the output with binaries, TODO?
+
+ if [ -n "$propagatedUserEnvPkgs" ]; then
+ mkdir -p "${!outputBin}/nix-support"
+ echo "$propagatedUserEnvPkgs" > "${!outputBin}/nix-support/propagated-user-env-packages"
fi
runHook postFixup
diff --git a/pkgs/stdenv/linux/bootstrap/i686.nix b/pkgs/stdenv/linux/bootstrap/i686.nix
index e02bb1e83d34c..cf484fd925330 100644
--- a/pkgs/stdenv/linux/bootstrap/i686.nix
+++ b/pkgs/stdenv/linux/bootstrap/i686.nix
@@ -1,12 +1,12 @@
{
busybox = import {
- url = http://tarballs.nixos.org/stdenv-linux/i686/8d66a51a872af1ab58edc68a2ebddcc79958b563/busybox;
- sha256 = "9278001d11bb0359d0cc1b30bd5c9823f0b9c65db127d6dfcc1f6bbc000d15a0";
+ url = http://tarballs.nixos.org/stdenv-linux/i686/4907fc9e8d0d82b28b3c56e3a478a2882f1d700f/busybox;
+ sha256 = "ef4c1be6c7ae57e4f654efd90ae2d2e204d6769364c46469fa9ff3761195cba1";
executable = true;
};
bootstrapTools = import {
- url = http://tarballs.nixos.org/stdenv-linux/i686/8d66a51a872af1ab58edc68a2ebddcc79958b563/bootstrap-tools.tar.xz;
- sha256 = "6bc27ce9b08adcca0298f5fe80fe67f5bbb2dffdd1d8666fd44cb76ace198a25";
+ url = http://tarballs.nixos.org/stdenv-linux/i686/4907fc9e8d0d82b28b3c56e3a478a2882f1d700f/bootstrap-tools.tar.xz;
+ sha256 = "cf920d26d94335f5cb46e247455d0e5389765d16a2b8fc233b792a655b5b58aa";
};
}
diff --git a/pkgs/stdenv/linux/bootstrap/x86_64.nix b/pkgs/stdenv/linux/bootstrap/x86_64.nix
index df803dae032bc..69d08c5e981ad 100644
--- a/pkgs/stdenv/linux/bootstrap/x86_64.nix
+++ b/pkgs/stdenv/linux/bootstrap/x86_64.nix
@@ -3,7 +3,7 @@
{
bootstrapTools = import {
- url = http://tarballs.nixos.org/stdenv-linux/x86_64/8d66a51a872af1ab58edc68a2ebddcc79958b563/bootstrap-tools.tar.xz;
- sha256 = "325230b74d3d98f62ddcb595543887d09cd8421745a4eda229d2a87a1f1ed336";
+ url = http://tarballs.nixos.org/stdenv-linux/x86_64/4907fc9e8d0d82b28b3c56e3a478a2882f1d700f/bootstrap-tools.tar.xz;
+ sha256 = "abe3f0727dd771a60b7922892d308da1bc7b082afc13440880862f0c8823c09f";
};
}
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index f0b6ce7c9f3d6..fbadfa80fe152 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -287,11 +287,13 @@ rec {
shellPackage = stage4.pkgs.bash;
};
+ /* outputs TODO
allowedRequisites = with stage4.pkgs;
[ gzip bzip2 xz bash binutils coreutils diffutils findutils gawk
glibc gnumake gnused gnutar gnugrep gnupatch patchelf attr acl
paxctl zlib pcre linuxHeaders ed gcc gcc.cc libsigsegv
];
+ */
overrides = pkgs: {
gcc = cc;
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
index 3adb00693f758..d6e024c625839 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
@@ -130,20 +130,20 @@ rec {
mkdir -p $out/bin $out/lib $out/libexec
# Copy what we need of Glibc.
- cp -d ${glibc}/lib/ld-*.so* $out/lib
- cp -d ${glibc}/lib/libc*.so* $out/lib
- cp -d ${glibc}/lib/libc_nonshared.a $out/lib
- cp -d ${glibc}/lib/libm*.so* $out/lib
- cp -d ${glibc}/lib/libdl*.so* $out/lib
- cp -d ${glibc}/lib/librt*.so* $out/lib
- cp -d ${glibc}/lib/libpthread*.so* $out/lib
- cp -d ${glibc}/lib/libnsl*.so* $out/lib
- cp -d ${glibc}/lib/libutil*.so* $out/lib
- cp -d ${glibc}/lib/libnss*.so* $out/lib
- cp -d ${glibc}/lib/libresolv*.so* $out/lib
- cp -d ${glibc}/lib/crt?.o $out/lib
+ cp -d ${glibc.out}/lib/ld-*.so* $out/lib
+ cp -d ${glibc.out}/lib/libc*.so* $out/lib
+ cp -d ${glibc.out}/lib/libc_nonshared.a $out/lib
+ cp -d ${glibc.out}/lib/libm*.so* $out/lib
+ cp -d ${glibc.out}/lib/libdl*.so* $out/lib
+ cp -d ${glibc.out}/lib/librt*.so* $out/lib
+ cp -d ${glibc.out}/lib/libpthread*.so* $out/lib
+ cp -d ${glibc.out}/lib/libnsl*.so* $out/lib
+ cp -d ${glibc.out}/lib/libutil*.so* $out/lib
+ cp -d ${glibc.out}/lib/libnss*.so* $out/lib
+ cp -d ${glibc.out}/lib/libresolv*.so* $out/lib
+ cp -d ${glibc.out}/lib/crt?.o $out/lib
- cp -rL ${glibc}/include $out
+ cp -rL ${glibc.dev}/include $out
chmod -R u+w $out/include
# Hopefully we won't need these.
@@ -166,7 +166,7 @@ rec {
cp -d ${gawk}/bin/awk $out/bin
cp ${gnutar}/bin/tar $out/bin
cp ${gzip}/bin/gzip $out/bin
- cp ${bzip2}/bin/bzip2 $out/bin
+ cp ${bzip2.bin}/bin/bzip2 $out/bin
cp -d ${gnumake}/bin/* $out/bin
cp -d ${patch}/bin/* $out/bin
cp ${patchelf}/bin/* $out/bin
@@ -199,9 +199,9 @@ rec {
rm -rf $out/include/c++/*/ext/parallel
cp -d ${gmpxx}/lib/libgmp*.so* $out/lib
- cp -d ${mpfr}/lib/libmpfr*.so* $out/lib
+ cp -d ${mpfr.out}/lib/libmpfr*.so* $out/lib
cp -d ${libmpc}/lib/libmpc*.so* $out/lib
- cp -d ${zlib}/lib/libz.so* $out/lib
+ cp -d ${zlib.out}/lib/libz.so* $out/lib
cp -d ${libelf}/lib/libelf.so* $out/lib
# TBD: Why are these needed for cross but not native tools?
@@ -213,7 +213,7 @@ rec {
for i in as ld ar ranlib nm strip readelf objdump; do
cp ${binutils}/bin/$i $out/bin
done
- cp -d ${binutils}/lib/lib*.so* $out/lib
+ cp -d ${binutils.out}/lib/lib*.so* $out/lib
chmod -R u+w $out
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 68456942d40f7..118eef57ffe39 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -37,20 +37,20 @@ rec {
mkdir -p $out/bin $out/lib $out/libexec
# Copy what we need of Glibc.
- cp -d ${glibc}/lib/ld*.so* $out/lib
- cp -d ${glibc}/lib/libc*.so* $out/lib
- cp -d ${glibc}/lib/libc_nonshared.a $out/lib
- cp -d ${glibc}/lib/libm*.so* $out/lib
- cp -d ${glibc}/lib/libdl*.so* $out/lib
- cp -d ${glibc}/lib/librt*.so* $out/lib
- cp -d ${glibc}/lib/libpthread*.so* $out/lib
- cp -d ${glibc}/lib/libnsl*.so* $out/lib
- cp -d ${glibc}/lib/libutil*.so* $out/lib
- cp -d ${glibc}/lib/libnss*.so* $out/lib
- cp -d ${glibc}/lib/libresolv*.so* $out/lib
- cp -d ${glibc}/lib/crt?.o $out/lib
-
- cp -rL ${glibc}/include $out
+ cp -d ${glibc.out}/lib/ld*.so* $out/lib
+ cp -d ${glibc.out}/lib/libc*.so* $out/lib
+ cp -d ${glibc.out}/lib/libc_nonshared.a $out/lib
+ cp -d ${glibc.out}/lib/libm*.so* $out/lib
+ cp -d ${glibc.out}/lib/libdl*.so* $out/lib
+ cp -d ${glibc.out}/lib/librt*.so* $out/lib
+ cp -d ${glibc.out}/lib/libpthread*.so* $out/lib
+ cp -d ${glibc.out}/lib/libnsl*.so* $out/lib
+ cp -d ${glibc.out}/lib/libutil*.so* $out/lib
+ cp -d ${glibc.out}/lib/libnss*.so* $out/lib
+ cp -d ${glibc.out}/lib/libresolv*.so* $out/lib
+ cp -d ${glibc.out}/lib/crt?.o $out/lib
+
+ cp -rL ${glibc.dev}/include $out
chmod -R u+w "$out"
# glibc can contain linker scripts: find them, copy their deps,
@@ -81,12 +81,12 @@ rec {
cp -d ${gawk}/bin/awk $out/bin
cp ${gnutar}/bin/tar $out/bin
cp ${gzip}/bin/gzip $out/bin
- cp ${bzip2}/bin/bzip2 $out/bin
+ cp ${bzip2.bin}/bin/bzip2 $out/bin
cp -d ${gnumake}/bin/* $out/bin
cp -d ${patch}/bin/* $out/bin
cp ${patchelf}/bin/* $out/bin
- cp -d ${gnugrep.pcre}/lib/libpcre*.so* $out/lib # needed by grep
+ cp -d ${gnugrep.pcre.out}/lib/libpcre*.so* $out/lib # needed by grep
# Copy what we need of GCC.
cp -d ${gcc.cc}/bin/gcc $out/bin
@@ -112,16 +112,16 @@ rec {
rm -rf $out/include/c++/*/ext/parallel
cp -d ${gmpxx}/lib/libgmp*.so* $out/lib
- cp -d ${mpfr}/lib/libmpfr*.so* $out/lib
+ cp -d ${mpfr.out}/lib/libmpfr*.so* $out/lib
cp -d ${libmpc}/lib/libmpc*.so* $out/lib
- cp -d ${zlib}/lib/libz.so* $out/lib
+ cp -d ${zlib.out}/lib/libz.so* $out/lib
cp -d ${libelf}/lib/libelf.so* $out/lib
# Copy binutils.
for i in as ld ar ranlib nm strip readelf objdump; do
cp ${binutils}/bin/$i $out/bin
done
- cp -d ${binutils}/lib/lib*.so* $out/lib
+ cp -d ${binutils.out}/lib/lib*.so* $out/lib
chmod -R u+w $out
diff --git a/pkgs/test/openftd/default.nix b/pkgs/test/openftd/default.nix
index 91042fe059115..13b6b01f32599 100644
--- a/pkgs/test/openftd/default.nix
+++ b/pkgs/test/openftd/default.nix
@@ -45,5 +45,5 @@ stdenv.mkDerivation {
glib gtk pkgconfig dbus_glib realCurl pcre libsexy libgnomeui gtkspell libnotify libgtkhtml
];
- configureFlags="--with-libcurl-libraries=${curl}/lib --with-libcurl-headers=${curl}/include --with-pcre_libraries=${pcre}/lib --with-pcre_headers=${pcre}/include";
+ configureFlags="--with-libcurl-libraries=${curl.out}/lib --with-libcurl-headers=${curl.dev}/include --with-pcre_libraries=${pcre.out}/lib --with-pcre_headers=${pcre.dev}/include";
}
diff --git a/pkgs/tools/X11/xlaunch/default.nix b/pkgs/tools/X11/xlaunch/default.nix
index 06dfd28b7399c..ccf998951a341 100644
--- a/pkgs/tools/X11/xlaunch/default.nix
+++ b/pkgs/tools/X11/xlaunch/default.nix
@@ -45,7 +45,7 @@ EOF
else
RESET_OPTION=\"-noreset\"
fi;
- XCMD=\"\$(egrep \"^Environment=\" /etc/systemd/system/display-manager.service | sed -e \"s/Environment=/ export /\" | sed -e '\\''s/#.*//'\\'' ; echo export _XARGS_=\\\$\\( grep xserver_arguments \\\$SLIM_CFGFILE \\| sed -e s/xserver_arguments// \\| sed -e s/:0/:\${_display}/ \\| sed -e s/vt7/vt\$((7+_display))/ \\) ; echo ${xorgserver}/bin/X \\\$_XARGS_ \$RESET_OPTION )\"
+ XCMD=\"\$(egrep \"^Environment=\" /etc/systemd/system/display-manager.service | sed -e \"s/Environment=/ export /\" | sed -e '\\''s/#.*//'\\'' ; echo export _XARGS_=\\\$\\( grep xserver_arguments \\\$SLIM_CFGFILE \\| sed -e s/xserver_arguments// \\| sed -e s/:0/:\${_display}/ \\| sed -e s/vt7/vt\$((7+_display))/ \\) ; echo ${xorgserver.out}/bin/X \\\$_XARGS_ \$RESET_OPTION )\"
PRE_XCMD=\"\$(egrep \"^ExecStartPre=\" /etc/systemd/system/display-manager.service | sed -e \"\s/ExecStartPre=//\")\"
echo \"\$PRE_XCMD\"
echo \"\$PRE_XCMD\" | bash
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index b0c79342d42a6..ae869cfb1c4f6 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -48,7 +48,7 @@ buildPythonApplication rec {
--set XKB_BINDIR "${xkbcomp}/bin" \
--set FONTCONFIG_FILE "${fontsConf}" \
--prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \
- --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+ --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
'';
preCheck = "exit 0";
@@ -57,7 +57,7 @@ buildPythonApplication rec {
#postFixup = ''
# sed -i '2iexport XKB_BINDIR="${xkbcomp}/bin"' $out/bin/xpra
# sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra
- # sed -i '4iexport PATH=${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
+ # sed -i '4iexport PATH=${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
#'';
diff --git a/pkgs/tools/X11/xpra/gtk3.nix b/pkgs/tools/X11/xpra/gtk3.nix
index 7fd24a510d5db..f30c0751c3f26 100644
--- a/pkgs/tools/X11/xpra/gtk3.nix
+++ b/pkgs/tools/X11/xpra/gtk3.nix
@@ -54,7 +54,7 @@ buildPythonApplication rec {
--set XKB_BINDIR "${xkbcomp}/bin" \
--set FONTCONFIG_FILE "${fontsConf}" \
--prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib \
- --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+ --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
'';
preCheck = "exit 0";
@@ -64,7 +64,7 @@ buildPythonApplication rec {
#postFixup = ''
# sed -i '2iexport XKB_BINDIR="${xkbcomp}/bin"' $out/bin/xpra
# sed -i '3iexport FONTCONFIG_FILE="${fontsConf}"' $out/bin/xpra
- # sed -i '4iexport PATH=${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
+ # sed -i '4iexport PATH=${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin\${PATH:+:}\$PATH' $out/bin/xpra
#'';
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index fddb9505c9841..657d08026e4a8 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
# Fix broken .la files
preFixup = ''
- sed 's,-lgpg-error,-L${libgpgerror}/lib -lgpg-error,' -i $out/lib/*.la
+ sed 's,-lgpg-error,-L${libgpgerror.out}/lib -lgpg-error,' -i $out/lib/*.la
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 71b43bf2de9ae..36d3ebd9816fb 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoreconfHook }:
+{ stdenv, fetchurl, autoreconfHook, acl }:
stdenv.mkDerivation rec {
name = "gnutar-${version}";
@@ -24,7 +24,11 @@ stdenv.mkDerivation rec {
substituteInPlace src/system.c --replace '_(' 'N_('
'';
- buildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
+ outputs = [ "out" "info" ];
+
+ buildInputs = [ ]
+ ++ stdenv.lib.optional stdenv.isLinux acl
+ ++ stdenv.lib.optional stdenv.isDarwin autoreconfHook;
# May have some issues with root compilation because the bootstrap tool
# cannot be used as a login shell for now.
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index 768c7afd7eb74..f2fdc71dc86cb 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
- installBin unrar
+ install -Dt "$out/bin" unrar
mkdir -p $out/share/doc/unrar
cp acknow.txt license.txt \
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 4532d6424116e..0079270e29faa 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -128,7 +128,7 @@ in buildPythonApplication rec {
}' beets/ui/commands.py
'' + optionalString enableBadfiles ''
sed -i -e '/self\.run_command(\[/ {
- s,"flac","${flac}/bin/flac",
+ s,"flac","${flac.bin}/bin/flac",
s,"mp3val","${mp3val}/bin/mp3val",
}' beetsplug/badfiles.py
'' + optionalString enableReplaygain ''
diff --git a/pkgs/tools/audio/qastools/default.nix b/pkgs/tools/audio/qastools/default.nix
index 920f6913d090b..3743b38a2103b 100644
--- a/pkgs/tools/audio/qastools/default.nix
+++ b/pkgs/tools/audio/qastools/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
cmakeFlags = [
"-DCMAKE_INSALL_PREFIX=$out"
- "-DALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
+ "-DALSA_INCLUDE=${alsaLib.dev}/include/alsa/version.h"
];
meta = with stdenv.lib; {
diff --git a/pkgs/tools/backup/store-backup/default.nix b/pkgs/tools/backup/store-backup/default.nix
index 93a7f9e1e39f7..9329cd23e83f8 100644
--- a/pkgs/tools/backup/store-backup/default.nix
+++ b/pkgs/tools/backup/store-backup/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
for p in $out/bin/*
do wrapProgram "$p" \
--prefix PERL5LIB ":" "${perlPackages.DBFile}/lib/perl5/site_perl" \
- --prefix PATH ":" "${which}/bin:${bzip2}/bin"
+ --prefix PATH ":" "${which}/bin:${bzip2.bin}/bin"
done
patchShebangs $out
diff --git a/pkgs/tools/bluetooth/obex-data-server/default.nix b/pkgs/tools/bluetooth/obex-data-server/default.nix
index 53e854c34ebc6..15167ee57b134 100644
--- a/pkgs/tools/bluetooth/obex-data-server/default.nix
+++ b/pkgs/tools/bluetooth/obex-data-server/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
addToSearchPath PKG_CONFIG_PATH ${openobex}/lib64/pkgconfig
- export PKG_CONFIG_PATH="${dbus_libs}/lib/pkgconfig:$PKG_CONFIG_PATH"
+ export PKG_CONFIG_PATH="${dbus_libs.dev}/lib/pkgconfig:$PKG_CONFIG_PATH"
'';
meta = {
diff --git a/pkgs/tools/bluetooth/obexd/default.nix b/pkgs/tools/bluetooth/obexd/default.nix
index f900a81caa0e8..a3486569b5180 100644
--- a/pkgs/tools/bluetooth/obexd/default.nix
+++ b/pkgs/tools/bluetooth/obexd/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "1i20dnibvnq9lnkkhajr5xx3kxlwf9q5c4jm19kyb0q1klzgzlb8";
};
- buildInputs = [ glib dbus.libs openobex bluez libical ];
+ buildInputs = [ glib dbus openobex bluez libical ];
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index 66ff5612dd4aa..a165ab2b157bb 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -41,6 +41,8 @@ in stdenv.mkDerivation {
postInstall = "";
};
+ outputs = [ "dev" "bin" "static" ] ++ stdenv.lib.optional sharedLibrary "out";
+
preBuild = stdenv.lib.optionalString sharedLibrary ''
make -f ${if stdenv.isDarwin then "Makefile-libbz2_dylib" else "Makefile-libbz2_so"}
'';
@@ -61,12 +63,15 @@ in stdenv.mkDerivation {
)
'');
- installFlags = [ "PREFIX=$(out)" ];
+ installFlags = [ "PREFIX=$(bin)" ];
postInstall = ''
- rm $out/bin/bunzip2* $out/bin/bzcat*
- ln -s bzip2 $out/bin/bunzip2
- ln -s bzip2 $out/bin/bzcat
+ rm $bin/bin/bunzip2* $bin/bin/bzcat*
+ ln -s bzip2 $bin/bin/bunzip2
+ ln -s bzip2 $bin/bin/bzcat
+
+ mkdir "$static"
+ mv "$bin/lib" "$static/"
'';
postPatch = ''
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index 6772e21cb0cb5..009246b69a088 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, xz }:
stdenv.mkDerivation rec {
name = "gzip-1.6";
@@ -8,8 +8,12 @@ stdenv.mkDerivation rec {
sha256 = "0ivqnbhiwd12q8hp3qw6rpsrpw2jg5y2mymk8cn22lsx90dfvprp";
};
+ outputs = [ "out" "man" "info" ];
+
enableParallelBuilding = true;
+ buildInputs = [ xz.bin ];
+
preConfigure = if stdenv.isCygwin then ''
sed -i lib/fpending.h -e 's,include ,,'
'' else null;
diff --git a/pkgs/tools/compression/kzipmix/default.nix b/pkgs/tools/compression/kzipmix/default.nix
index f768189040b5b..6fcff7b292802 100644
--- a/pkgs/tools/compression/kzipmix/default.nix
+++ b/pkgs/tools/compression/kzipmix/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
mkdir -p $out/bin
cp kzip zipmix $out/bin
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $out/bin/kzip
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $out/bin/zipmix
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/kzip
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/zipmix
'';
meta = {
diff --git a/pkgs/tools/compression/pxz/default.nix b/pkgs/tools/compression/pxz/default.nix
index 07c3e205a982e..f6424b5e88037 100644
--- a/pkgs/tools/compression/pxz/default.nix
+++ b/pkgs/tools/compression/pxz/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
gcc -o pxz pxz.c -llzma \
-fopenmp -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 \
-DPXZ_BUILD_DATE=\"nixpkgs\" \
- -DXZ_BINARY=\"${xz}/bin/xz\" \
+ -DXZ_BINARY=\"${xz.bin}/bin/xz\" \
-DPXZ_VERSION=\"${version}\"
'';
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 5f5ee28ca0636..5d6a8634b1baa 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "1da071wyx921pyx3zkxlnbpp14p6km98pnp66mg1arwi9dxgbxbg";
};
+ outputs = [ "dev" "out" "bin" "man" "doc" ];
+
doCheck = true;
# In stdenv-linux, prevent a dependency on bootstrap-tools.
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index a53e93960aef4..c091158bff635 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -8,7 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "1m72lk90b5i3h9qnmss6aygrzyn8x2avy3hyaq2fb0jglkrkz6ar";
};
- buildInputs = [ pkgconfig libuuid ];
+ outputs = [ "bin" "out" "man" ];
+ outputDev = "bin"; # just for *.pc
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libuuid ];
crossAttrs = {
preConfigure = ''
@@ -16,14 +20,19 @@ stdenv.mkDerivation rec {
'';
};
- # libuuid, libblkid, uuidd and fsck are in util-linux-ng (the "libuuid" dependency).
- configureFlags = "--enable-elf-shlibs --disable-libuuid --disable-libblkid --disable-uuidd --disable-fsck --enable-symlink-install";
-
- enableParallelBuilding = true;
+ configureFlags = [
+ "--enable-elf-shlibs" "--enable-symlink-install" "--enable-relative-symlinks"
+ # libuuid, libblkid, uuidd and fsck are in util-linux-ng (the "libuuid" dependency).
+ "--disable-libuuid" "--disable-uuidd" "--disable-libblkid" "--disable-fsck"
+ ];
- preInstall = "installFlagsArray=('LN=ln -s')";
+ # hacky way to make it install *.pc
+ postInstall = ''
+ make install-libs
+ rm "$out"/lib/*.a
+ '';
- postInstall = "make install-libs";
+ enableParallelBuilding = true;
meta = {
homepage = http://e2fsprogs.sourceforge.net/;
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index d3b3b716ffa08..7a8501b7a891b 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -1,9 +1,9 @@
{ stdenv, fetchurl, buildPythonApplication, pykickstart, pyparted, pyblock
, libselinux, cryptsetup, multipath_tools, lsof, utillinux
-, useNixUdev ? true, udev ? null
+, useNixUdev ? true, libudev ? null
}:
-assert useNixUdev -> udev != null;
+assert useNixUdev -> libudev != null;
buildPythonApplication rec {
name = "blivet-${version}";
@@ -21,21 +21,21 @@ buildPythonApplication rec {
sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
blivet/devicelibs/mpath.py blivet/devices.py
sed -i -e '/"wipefs"/ {
- s|wipefs|${utillinux}/sbin/wipefs|
+ s|wipefs|${utillinux.bin}/sbin/wipefs|
s/-f/--force/
}' blivet/formats/__init__.py
sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
- sed -i -r -e 's|"(u?mount)"|"${utillinux}/bin/\1"|' blivet/util.py
+ sed -i -r -e 's|"(u?mount)"|"${utillinux.bin}/bin/\1"|' blivet/util.py
sed -i '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py
'' + stdenv.lib.optionalString useNixUdev ''
sed -i -e '/find_library/,/find_library/ {
- c libudev = "${udev}/lib/libudev.so.1"
+ c libudev = "${libudev.out}/lib/libudev.so.1"
}' blivet/pyudev.py
'';
propagatedBuildInputs = [
pykickstart pyparted pyblock libselinux cryptsetup
- ] ++ stdenv.lib.optional useNixUdev udev;
+ ] ++ stdenv.lib.optional useNixUdev libudev;
# tests are currently _heavily_ broken upstream
doCheck = false;
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 1d98381689529..bdf0a5c4323d5 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -12,7 +12,7 @@ let
inherit stdenv fetchurl buildPythonApplication;
inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
inherit useNixUdev;
- inherit (pkgs) lsof utillinux udev;
+ inherit (pkgs) lsof utillinux libudev;
libselinux = pkgs.libselinux.override { enablePython = true; };
};
@@ -29,12 +29,12 @@ let
lvm2 = import ./lvm2.nix {
inherit stdenv fetchurl;
- inherit (pkgs) pkgconfig utillinux udev coreutils;
+ inherit (pkgs) pkgconfig utillinux libudev systemd coreutils;
};
multipath_tools = import ./multipath-tools.nix {
inherit stdenv fetchurl lvm2;
- inherit (pkgs) readline udev libaio gzip;
+ inherit (pkgs) readline systemd libaio gzip;
};
parted = import ./parted.nix {
diff --git a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
index 9e2b0c9007947..b92c40ba99e62 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
+{ stdenv, fetchurl, pkgconfig, libudev, systemd, utillinux, coreutils }:
let
v = "2.02.106";
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
configureFlags =
"--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
- buildInputs = [ pkgconfig udev ];
+ buildInputs = [ pkgconfig libudev ];
preConfigure =
''
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
--replace /usr/bin/tr ${coreutils}/bin/tr
substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
--replace /usr/sbin/lvm $out/sbin/lvm \
- --replace /usr/bin/udevadm ${udev}/bin/udevadm
+ --replace /usr/bin/udevadm ${systemd.udev.bin}/bin/udevadm
sed -i /DEFAULT_SYS_DIR/d Makefile.in
sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
postInstall =
''
substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
- --replace $out/sbin/blkid ${utillinux}/sbin/blkid
+ --replace $out/sbin/blkid ${utillinux.bin}/sbin/blkid
# Systemd stuff
mkdir -p $out/etc/systemd/system $out/lib/systemd/system-generators
diff --git a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
index 90722d74ace15..b78605504bf88 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lvm2, libaio, gzip, readline, udev }:
+{ stdenv, fetchurl, lvm2, libaio, gzip, readline, systemd }:
stdenv.mkDerivation rec {
name = "multipath-tools-0.4.9";
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
- substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
- substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${udev}/lib/udev/scsi_id
+ substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id
+ substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id
'';
meta = {
diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix
index fba066d0f4cb4..3337141821770 100644
--- a/pkgs/tools/filesystems/svnfs/default.nix
+++ b/pkgs/tools/filesystems/svnfs/default.nix
@@ -12,10 +12,10 @@ stdenv.mkDerivation {
# why is this required?
preConfigure=''
- export LD_LIBRARY_PATH=${subversion}/lib
+ export LD_LIBRARY_PATH=${subversion.out}/lib
'';
- NIX_CFLAGS_COMPILE="-I ${subversion}/include/subversion-1";
+ NIX_CFLAGS_COMPILE="-I ${subversion.dev}/include/subversion-1";
NIX_LDFLAGS="-lsvn_client-1";
meta = {
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index de61809a1aea9..e30f67af3e951 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
buildInputs = [ gettext libuuid readline ];
- outputs = [ "out" "lib" ];
+ outputs = [ "dev" "out" "bin" ]; # TODO: review xfs
preConfigure = ''
NIX_LDFLAGS="$(echo $NIX_LDFLAGS | sed "s,$out,$lib,g")"
@@ -39,8 +39,6 @@ stdenv.mkDerivation rec {
"XGETTEXT=xgettext"
"--disable-lib64"
"--enable-readline"
- "--includedir=$(lib)/include"
- "--libdir=$(lib)/lib"
];
installFlags = [ "install-dev" ];
diff --git a/pkgs/tools/filesystems/xtreemfs/default.nix b/pkgs/tools/filesystems/xtreemfs/default.nix
index 8f090c2978135..556cb674212d9 100644
--- a/pkgs/tools/filesystems/xtreemfs/default.nix
+++ b/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
--replace "/usr/local" "${valgrind}"
substituteInPlace cpp/CMakeLists.txt \
- --replace '"/lib64" "/usr/lib64"' '"${attr}/lib" "${fuse}/lib"'
+ --replace '"/lib64" "/usr/lib64"' '"${attr.out}/lib" "${fuse}/lib"'
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${fuse}/include"
export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -L${fuse}/lib"
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index f32f180f1d6e0..966b3df8b175e 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
${patchelf}/bin/patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- --set-rpath "${zlib}/lib:${p.gcclib}" \
+ --set-rpath "${zlib.out}/lib:${p.gcclib}" \
$out/bin/yandex-disk
'';
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index 8a9df4982a3e5..2b78f1fba4056 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/gnuplot \
--prefix PATH : '${gnused}/bin' \
--prefix PATH : '${coreutils}/bin' \
- --prefix PATH : '${fontconfig}/bin' \
+ --prefix PATH : '${fontconfig.bin}/bin' \
--run '. ${./set-gdfontpath-from-fontconfig.sh}'
'';
diff --git a/pkgs/tools/graphics/graphviz/2.0.nix b/pkgs/tools/graphics/graphviz/2.0.nix
index 04fff8053819a..02b700111de3e 100644
--- a/pkgs/tools/graphics/graphviz/2.0.nix
+++ b/pkgs/tools/graphics/graphviz/2.0.nix
@@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
configureFlags =
[ "--with-pngincludedir=${libpng}/include"
- "--with-pnglibdir=${libpng}/lib"
+ "--with-pnglibdir=${libpng.out}/lib"
"--with-jpegincludedir=${libjpeg}/include"
- "--with-jpeglibdir=${libjpeg}/lib"
+ "--with-jpeglibdir=${libjpeg.out}/lib"
"--with-expatincludedir=${expat}/include"
- "--with-expatlibdir=${expat}/lib"
+ "--with-expatlibdir=${expat.out}/lib"
]
++ stdenv.lib.optional (xlibsWrapper == null) "--without-x";
diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix
index 2743bd78aa7c9..8da3ea0a17499 100644
--- a/pkgs/tools/graphics/graphviz/2.32.nix
+++ b/pkgs/tools/graphics/graphviz/2.32.nix
@@ -17,15 +17,15 @@ stdenv.mkDerivation rec {
] ++ stdenv.lib.optionals (xorg != null) [ xorg.xlibsWrapper xorg.libXrender ]
++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
- CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo}/include/cairo";
+ CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo.dev}/include/cairo";
configureFlags =
[ "--with-pngincludedir=${libpng}/include"
- "--with-pnglibdir=${libpng}/lib"
+ "--with-pnglibdir=${libpng.out}/lib"
"--with-jpegincludedir=${libjpeg}/include"
- "--with-jpeglibdir=${libjpeg}/lib"
+ "--with-jpeglibdir=${libjpeg.out}/lib"
"--with-expatincludedir=${expat}/include"
- "--with-expatlibdir=${expat}/lib"
+ "--with-expatlibdir=${expat.out}/lib"
"--with-cgraph=no"
"--with-sparse=no"
]
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 66f36a6f63c9b..ce620cf301775 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
+{ stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat
, yacc, libtool, fontconfig, pango, gd, xorg, gts, libdevil, gettext, cairo
, flex
}:
@@ -22,21 +22,14 @@ stdenv.mkDerivation rec {
buildInputs =
[ pkgconfig libpng libjpeg expat yacc libtool fontconfig gd gts libdevil flex pango
- ] ++ stdenv.lib.optionals (xorg != null) [ xorg.xlibsWrapper xorg.libXrender libXaw ]
+ ] ++ stdenv.lib.optionals (xorg != null)
+ (with xorg; [ xlibsWrapper libXrender libXaw libXpm ])
++ stdenv.lib.optional (stdenv.system == "x86_64-darwin") gettext;
CPPFLAGS = stdenv.lib.optionalString (xorg != null && stdenv.system == "x86_64-darwin")
- "-I${cairo}/include/cairo";
+ "-I${cairo.dev}/include/cairo";
- configureFlags =
- [ "--with-pngincludedir=${libpng}/include"
- "--with-pnglibdir=${libpng}/lib"
- "--with-jpegincludedir=${libjpeg}/include"
- "--with-jpeglibdir=${libjpeg}/lib"
- "--with-expatincludedir=${expat}/include"
- "--with-expatlibdir=${expat}/lib"
- ]
- ++ stdenv.lib.optional (xorg == null) "--without-x";
+ configureFlags = stdenv.lib.optional (xorg == null) "--without-x";
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
for foo in cmd/dot/Makefile.in cmd/edgepaint/Makefile.in \
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index dfbd7c4e5e066..2fb1c9325c03f 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
substituteInPlace jhead.c \
--replace "\" Compiled: \"__DATE__" "" \
- --replace "jpegtran -trim" "${libjpeg}/bin/jpegtran -trim"
+ --replace "jpegtran -trim" "${libjpeg.bin}/bin/jpegtran -trim"
'';
installPhase = ''
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index 3b9f4e64d07da..4a52434d379a9 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
cp config.mk.in config.mk
echo "STATICLIB_TOO = n" >> config.mk
substituteInPlace "config.mk" \
- --replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff}/lib/libtiff.so" \
+ --replace "TIFFLIB = NONE" "TIFFLIB = ${libtiff.out}/lib/libtiff.so" \
--replace "TIFFHDR_DIR =" "TIFFHDR_DIR = ${libtiff}/include"
'';
diff --git a/pkgs/tools/graphics/pdfread/default.nix b/pkgs/tools/graphics/pdfread/default.nix
index 69ab7f27e3434..a4184fd9514b3 100644
--- a/pkgs/tools/graphics/pdfread/default.nix
+++ b/pkgs/tools/graphics/pdfread/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
cp -R *.py pylrs $PYDIR
wrapProgram $out/bin/pdfread.py --prefix PYTHONPATH : $PYTHONPATH:${pillow}/$LIBSUFFIX/PIL:$PYDIR \
- --prefix PATH : ${ghostscript}/bin:${pngnq}/bin:${djvulibre}/bin:${unrar}/bin:${optipng}/bin
+ --prefix PATH : ${ghostscript}/bin:${pngnq}/bin:${djvulibre.bin}/bin:${unrar}/bin:${optipng}/bin
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/pngcheck/default.nix b/pkgs/tools/graphics/pngcheck/default.nix
index 160badaf668bf..d288e7018e604 100644
--- a/pkgs/tools/graphics/pngcheck/default.nix
+++ b/pkgs/tools/graphics/pngcheck/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
# '';
makefile = "Makefile.unx";
- makeFlags = "ZPATH=${zlib}/lib";
+ makeFlags = "ZPATH=${zlib.out}/lib";
buildInputs = [ zlib ];
diff --git a/pkgs/tools/graphics/pngout/default.nix b/pkgs/tools/graphics/pngout/default.nix
index 471823ed9235b..afc1a2519fe10 100644
--- a/pkgs/tools/graphics/pngout/default.nix
+++ b/pkgs/tools/graphics/pngout/default.nix
@@ -18,9 +18,9 @@ stdenv.mkDerivation {
cp ${folder}/pngout $out/bin
${if stdenv.system == "i686-linux" then ''
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $out/bin/pngout
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/bin/pngout
'' else if stdenv.system == "x86_64-linux" then ''
- patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/pngout
+ patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/pngout
'' else ""}
'';
diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix
index d84989d4372b3..6da565b292f94 100644
--- a/pkgs/tools/graphics/quirc/default.nix
+++ b/pkgs/tools/graphics/quirc/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
src = fetchgit {
inherit (s) url sha256 rev;
};
- NIX_CFLAGS_COMPILE="-I${SDL}/include/SDL";
+ NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL";
configurePhase = ''
sed -e 's/-[og] root//g' -i Makefile
'';
diff --git a/pkgs/tools/inputmethods/m17n-db/default.nix b/pkgs/tools/inputmethods/m17n-db/default.nix
index fbe7188ef9ac9..944d6de1084ae 100644
--- a/pkgs/tools/inputmethods/m17n-db/default.nix
+++ b/pkgs/tools/inputmethods/m17n-db/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, gettext}:
+{ stdenv, fetchurl, gettext }:
stdenv.mkDerivation rec {
name = "m17n-db-1.7.0";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
buildInputs = [ gettext ];
configureFlags = stdenv.lib.optional (stdenv ? glibc)
- "--with-charmaps=${stdenv.glibc}/share/i18n/charmaps"
+ "--with-charmaps=${stdenv.glibc.out}/share/i18n/charmaps"
;
meta = {
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 3bd5a9cbc5894..377e2d62eef6f 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl, gmp ? null
+{ lib, stdenv, fetchurl, perl, xz, gmp ? null
, aclSupport ? false, acl ? null
, selinuxSupport? false, libselinux ? null, libsepol ? null
, autoconf, automake114x, texinfo
@@ -27,9 +27,11 @@ let
sed '2i echo Skipping cp sparse test && exit 0' -i ./tests/cp/sparse.sh
'';
+ outputs = [ "out" "info" ];
+
+ nativeBuildInputs = [ perl xz.bin ];
configureFlags = optionalString stdenv.isSunOS "ac_cv_func_inotify_init=no";
- nativeBuildInputs = [ perl ];
buildInputs = [ gmp ]
++ optional aclSupport acl
++ optionals stdenv.isCygwin [ autoconf automake114x texinfo ] # due to patch
diff --git a/pkgs/tools/misc/debian-devscripts/default.nix b/pkgs/tools/misc/debian-devscripts/default.nix
index 51b9a1e847e6c..617cd5f554813 100644
--- a/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/pkgs/tools/misc/debian-devscripts/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
-e "s@/usr/(s|)bin/sendmail@${sendmailPath}@g" \
-e "s@/usr/bin/diff@${diffutils}/bin/diff@g" \
-e "s@/usr/bin/gpgv(2|)@${gnupg}/bin/gpgv2@g" \
- -e "s@(command -v|/usr/bin/)curl@${curl}/bin/curl@g" \
+ -e "s@(command -v|/usr/bin/)curl@${curl.bin}/bin/curl@g" \
-i {} +
sed -e "s@/usr/share/sgml/[^ ]*/manpages/docbook.xsl@${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl@" -i scripts/Makefile
sed -r \
diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index e18b115df87c0..c6bca6e9d8f66 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
postPatch = ''
substituteInPlace Makefile.bsd --replace /bin/echo echo
substituteInPlace entr.c --replace /bin/cat ${coreutils}/bin/cat
- substituteInPlace entr.c --replace /usr/bin/clear ${ncurses}/bin/clear
+ substituteInPlace entr.c --replace /usr/bin/clear ${ncurses.out}/bin/clear
substituteInPlace entr.1 --replace /bin/cat cat
substituteInPlace entr.1 --replace /usr/bin/clear clear
'';
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index b6ab3985f2398..1271aa8c98638 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
doCheck = !stdenv.isDarwin;
+ outputs = [ "out" "info" ];
+
crossAttrs = {
# http://osdir.com/ml/bug-findutils-gnu/2009-08/msg00026.html
configureFlags = [ "gl_cv_func_wcwidth_works=yes" ];
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index 8e52adc76991d..ae1df626fe5da 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -98,6 +98,9 @@ stdenv.mkDerivation rec {
postInstall = ''
paxmark pms $out/sbin/grub-{probe,bios-setup}
+
+ # Avoid a runtime reference to gcc
+ sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/kde-gtk-config/default.nix b/pkgs/tools/misc/kde-gtk-config/default.nix
index 809d0c65c6ece..bf868790de2d3 100644
--- a/pkgs/tools/misc/kde-gtk-config/default.nix
+++ b/pkgs/tools/misc/kde-gtk-config/default.nix
@@ -22,8 +22,8 @@ stdenv.mkDerivation {
];
cmakeFlags = ''
- -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include
- -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include
+ -DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include
+ -DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include
-DGTK2_INCLUDE_DIRS=${gtk2}/include/gtk-2.0
-DKDE4_LIBEXEC_INSTALL_DIR=lib/kde4/libexec
'';
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index b79f43cfbc35c..77fcb186ef1de 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
--wine-path=${wine_custom} \
--gpg-exec=${gnupg}/bin/gpg2 \
--bash-interp=${bash}/bin/bash \
- --downloader=${curl}/bin/curl
+ --downloader=${curl.bin}/bin/curl
$configureFlags
'';
diff --git a/pkgs/tools/misc/plowshare/default.nix b/pkgs/tools/misc/plowshare/default.nix
index 40540ad1c20db..a1a12a82471d5 100644
--- a/pkgs/tools/misc/plowshare/default.nix
+++ b/pkgs/tools/misc/plowshare/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
make PREFIX="$out" install
for fn in plow{del,down,list,up}; do
- wrapProgram "$out/bin/$fn" --prefix PATH : "${curl}/bin:${spidermonkey}/bin"
+ wrapProgram "$out/bin/$fn" --prefix PATH : "${curl.bin}/bin:${spidermonkey.out}/bin"
done
'';
diff --git a/pkgs/tools/misc/profile-cleaner/default.nix b/pkgs/tools/misc/profile-cleaner/default.nix
index 55c44770c3e17..2c1f3d77def3f 100644
--- a/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/pkgs/tools/misc/profile-cleaner/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
installPhase = ''
PREFIX=\"\" DESTDIR=$out make install
wrapProgram $out/bin/profile-cleaner \
- --prefix PATH : "${parallel}/bin:${sqlite}/bin"
+ --prefix PATH : "${parallel}/bin:${sqlite.bin}/bin"
'';
meta = {
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 4c60e790238e6..0d2982c022f9d 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -1,5 +1,12 @@
-{ stdenv, fetchurl, makeWrapper, dpkg, patchelf, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, udev }:
+{ stdenv, fetchurl, makeWrapper
+, dpkg, patchelf
+, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, libudev }:
+let
+ inherit (stdenv) lib;
+ LD_LIBRARY_PATH = lib.makeLibraryPath
+ [ glib gtk2 gdk_pixbuf alsaLib nss nspr GConf cups libgcrypt dbus ];
+in
stdenv.mkDerivation rec {
version = "2.6.0";
name = "staruml-${version}";
@@ -16,13 +23,13 @@ stdenv.mkDerivation rec {
buildInputs = [ dpkg ];
nativeBuildInputs = [ makeWrapper ];
-
+
unpackPhase = ''
mkdir pkg
dpkg-deb -x $src pkg
sourceRoot=pkg
'';
-
+
installPhase = ''
mkdir $out
mv opt/staruml $out/bin
@@ -30,14 +37,14 @@ stdenv.mkDerivation rec {
${patchelf}/bin/patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
$out/bin/StarUML
-
+
mkdir -p $out/lib
-
+
ln -s ${stdenv.cc.cc}/lib/libstdc++.so.6 $out/lib/
- ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
+ ln -s ${libudev.out}/lib/libudev.so.1 $out/lib/libudev.so.0
wrapProgram $out/bin/StarUML \
- --prefix LD_LIBRARY_PATH : $out/lib:${glib}/lib:${gtk2}/lib:${gdk_pixbuf}/lib/:${alsaLib}/lib/:${nss}/lib/:${nspr}/lib/:${GConf}/lib/:${cups}/lib/:${libgcrypt}/lib/:${dbus}/lib/
+ --prefix LD_LIBRARY_PATH : $out/lib:${LD_LIBRARY_PATH}
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index e3adbfe3887d3..75b3cb160671e 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -19,7 +19,7 @@ python2Packages.buildPythonApplication rec {
src = ./nix-paths.patch;
df = "${coreutils}/bin/df";
python = "${python2}/bin/${python2.executable}";
- libc = "${stdenv.cc.libc}/lib/libc.so.6";
+ libc = "${stdenv.cc.libc.out}/lib/libc.so.6";
})
# Apply https://github.com/JaviMerino/trash-cli/commit/4f45a37a3
diff --git a/pkgs/tools/misc/xdummy/default.nix b/pkgs/tools/misc/xdummy/default.nix
index 30aba19930c70..1f4dbc8633270 100644
--- a/pkgs/tools/misc/xdummy/default.nix
+++ b/pkgs/tools/misc/xdummy/default.nix
@@ -18,7 +18,7 @@ let
EndSection
Section "Files"
- ModulePath "${xorg.xorgserver}/lib/xorg/modules"
+ ModulePath "${xorg.xorgserver.out}/lib/xorg/modules"
ModulePath "${xorg.xf86videodummy}/lib/xorg/modules"
XkbDir "${xkeyboard_config}/share/X11/xkb"
FontPath "${xorg.fontadobe75dpi}/lib/X11/fonts/75dpi"
@@ -75,7 +75,7 @@ let
in writeScriptBin "xdummy" ''
#!${stdenv.shell}
export XKB_BINDIR="${xorg.xkbcomp}/bin"
- exec ${xorg.xorgserver}/bin/Xorg \
+ exec ${xorg.xorgserver.out}/bin/Xorg \
-noreset \
-logfile /dev/null \
"$@" \
diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix
index 162fb73b3f00e..f1cf044243496 100644
--- a/pkgs/tools/misc/xvfb-run/default.nix
+++ b/pkgs/tools/misc/xvfb-run/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation {
wrapProgram $out/bin/xvfb-run \
--set XKB_BINDIR "${xkbcomp}/bin" \
--set FONTCONFIG_FILE "${fontsConf}" \
- --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+ --prefix PATH : ${getopt}/bin:${xorgserver.out}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
'';
}
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index fa3fd2281daad..a10fd37da2814 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -23,7 +23,7 @@ buildPythonApplication rec {
# Ensure ffmpeg is available in $PATH for post-processing & transcoding support.
postInstall = stdenv.lib.optionalString (ffmpeg != null)
- ''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg}/bin"'';
+ ''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg.bin}/bin"'';
# Requires network
doCheck = false;
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 2ccfbb816fba2..32cf5750c6a49 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -11,13 +11,13 @@ stdenv.mkDerivation {
buildInputs = [ which python27 nodejs ] ++
# for flock
- stdenv.lib.optional stdenv.isLinux [ utillinux ];
+ stdenv.lib.optional stdenv.isLinux utillinux;
buildPhase =
stdenv.lib.optionalString stdenv.isArm "Seccomp_NO=1 "
+ "bash do";
installPhase = ''
- installBin cjdroute makekeys privatetopublic publictoip6
+ install -Dt "$out/bin/" cjdroute makekeys privatetopublic publictoip6
sed -i 's,/usr/bin/env node,'$(type -P node), \
$(find contrib -name "*.js")
sed -i 's,/usr/bin/env python,'$(type -P python), \
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index c59ea619942d7..6008afa278728 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
sha256 = "13z9gba3q2ybp50z0gdkzhwcx9m0i7qkvm278yz4pql2jfml7inx";
};
+ outputs = [ "dev" "out" "bin" "man" "docdev" ];
+
nativeBuildInputs = [ pkgconfig perl ];
# Zlib and OpenSSL must be propagated because `libcurl.la' contains
@@ -62,6 +64,11 @@ stdenv.mkDerivation rec {
CXX = "g++";
CXXCPP = "g++ -E";
+ postInstall = ''
+ moveToOutput bin/curl-config "$dev"
+ sed '/^dependency_libs/s|${libssh2.dev}|${libssh2.out}|' -i "$out"/lib/*.la
+ '';
+
crossAttrs = {
# We should refer to the cross built openssl
# For the 'urandom', maybe it should be a cross-system option
diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix
index 2b41f8ca1d3cf..59d97a4a18b62 100644
--- a/pkgs/tools/networking/easyrsa/default.nix
+++ b/pkgs/tools/networking/easyrsa/default.nix
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
install -D -m755 easyrsa3/easyrsa $out/bin/easyrsa
substituteInPlace $out/bin/easyrsa \
--subst-var out \
- --subst-var-by openssl ${openssl}/bin/openssl
+ --subst-var-by openssl ${openssl.bin}/bin/openssl
# Helper utility
cat > $out/bin/easyrsa-init <> $@
+ echo '#include "version.h"' >> $@
+ echo 'const char *version_string = "@VERSION@";' >> $@
+- echo 'const char *compilation_string = "'$(COMPILE)'";' \
++ echo 'const char *compilation_string = 0;' \
+ | $(ESCAPEQUOTE) >> $@
+- echo 'const char *link_string = "'$(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+- $(AM_LDFLAGS) $(LDFLAGS) $(LIBS) $(wget_LDADD)'";' \
++ echo 'const char *link_string = 0;' \
+ | $(ESCAPEQUOTE) >> $@
+
+ css.c: $(srcdir)/css.l
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 9f5f777a239b3..e05a65d6967e2 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
buildInputs = [ openssl lzo zlib gcc iproute ];
installPhase = ''
- installBin zerotier-one
+ install -Dt "$out/bin/" zerotier-one
ln -s $out/bin/zerotier-one $out/bin/zerotier-idtool
ln -s $out/bin/zerotier-one $out/bin/zerotier-cli
'';
diff --git a/pkgs/tools/package-management/checkinstall/default.nix b/pkgs/tools/package-management/checkinstall/default.nix
index dc3373c3b6fcf..8ab9001573a24 100644
--- a/pkgs/tools/package-management/checkinstall/default.nix
+++ b/pkgs/tools/package-management/checkinstall/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation {
substituteInPlace checkinstallrc-dist --replace /usr/local $out
substituteInPlace installwatch/create-localdecls \
- --replace /usr/include/unistd.h ${stdenv.glibc}/include/unistd.h
+ --replace /usr/include/unistd.h ${stdenv.glibc.dev}/include/unistd.h
'';
postInstall =
diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index e70659aff00f7..aa109ab80fe3e 100644
--- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -36,8 +36,8 @@ in rec {
nix-prefetch-cvs = mkPrefetchScript "cvs" ../../../build-support/fetchcvs/nix-prefetch-cvs [cvs];
nix-prefetch-git = mkPrefetchScript "git" ../../../build-support/fetchgit/nix-prefetch-git [git coreutils];
nix-prefetch-hg = mkPrefetchScript "hg" ../../../build-support/fetchhg/nix-prefetch-hg [mercurial];
- nix-prefetch-svn = mkPrefetchScript "svn" ../../../build-support/fetchsvn/nix-prefetch-svn [subversion];
- nix-prefetch-zip = mkPrefetchScript "zip" ../../../build-support/fetchzip/nix-prefetch-zip [unzip curl];
+ nix-prefetch-svn = mkPrefetchScript "svn" ../../../build-support/fetchsvn/nix-prefetch-svn [subversion.out];
+ nix-prefetch-zip = mkPrefetchScript "zip" ../../../build-support/fetchzip/nix-prefetch-zip [unzip curl.bin];
nix-prefetch-scripts = buildEnv {
name = "nix-prefetch-scripts";
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 608fb31df783f..16078906bc2b5 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -9,7 +9,7 @@ let
common = { name, src }: stdenv.mkDerivation rec {
inherit name src;
- outputs = [ "out" "doc" ];
+ outputs = [ "out" "man" "doc" ];
nativeBuildInputs = [ perl pkgconfig ];
@@ -22,8 +22,8 @@ let
# would end up using the wrong bzip2 when cross-compiling.
# XXX: The right thing would be to reinstate `--with-bzip2' in Nix.
postUnpack =
- '' export CPATH="${bzip2}/include"
- export LIBRARY_PATH="${bzip2}/lib"
+ '' export CPATH="${bzip2.dev}/include"
+ export LIBRARY_PATH="${bzip2.out}/lib"
export CXXFLAGS="-Wno-error=reserved-user-defined-literal"
'';
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
new file mode 100644
index 0000000000000..88bd8f4603758
--- /dev/null
+++ b/pkgs/tools/package-management/nix/unstable.nix
@@ -0,0 +1,76 @@
+{ lib, stdenv, fetchurl, perl, curl, bzip2, sqlite, openssl ? null
+, pkgconfig, boehmgc, perlPackages, libsodium
+, storeDir ? "/nix/store"
+, stateDir ? "/nix/var"
+}:
+
+stdenv.mkDerivation rec {
+ name = "nix-1.9pre4100_4bbcfaf";
+
+ src = fetchurl {
+ url = "http://hydra.nixos.org/build/21565942/download/4/${name}.tar.xz";
+ sha256 = "1jcy0n8mi17k5vk89vammfh74lvsgnm4gjsk23cq1shspjnbbgxs";
+ };
+
+ nativeBuildInputs = [ perl pkgconfig ];
+
+ buildInputs = [ curl openssl sqlite ] ++ lib.optional stdenv.isLinux libsodium;
+
+ propagatedBuildInputs = [ boehmgc ];
+
+ # Note: bzip2 is not passed as a build input, because the unpack phase
+ # would end up using the wrong bzip2 when cross-compiling.
+ # XXX: The right thing would be to reinstate `--with-bzip2' in Nix.
+ postUnpack =
+ '' export CPATH="${bzip2.dev}/include"
+ export LIBRARY_PATH="${bzip2.out}/lib"
+ export CXXFLAGS="-Wno-error=reserved-user-defined-literal"
+ '';
+
+ configureFlags =
+ ''
+ --with-store-dir=${storeDir} --localstatedir=${stateDir} --sysconfdir=/etc
+ --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
+ --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
+ --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
+ --disable-init-state
+ --enable-gc
+ '';
+
+ makeFlags = "profiledir=$(out)/etc/profile.d";
+
+ installFlags = "sysconfdir=$(out)/etc";
+
+ doInstallCheck = true;
+
+ crossAttrs = {
+ postUnpack =
+ '' export CPATH="${bzip2.crossDrv}/include"
+ export NIX_CROSS_LDFLAGS="-L${bzip2.crossDrv}/lib -rpath-link ${bzip2.crossDrv}/lib $NIX_CROSS_LDFLAGS"
+ '';
+
+ configureFlags =
+ ''
+ --with-store-dir=${storeDir} --localstatedir=${stateDir}
+ --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
+ --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
+ --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
+ --disable-init-state
+ --enable-gc
+ '' + stdenv.lib.optionalString (
+ stdenv.cross ? nix && stdenv.cross.nix ? system
+ ) ''--with-system=${stdenv.cross.nix.system}'';
+
+ doInstallCheck = false;
+ };
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "The Nix Deployment System";
+ homepage = http://nixos.org/;
+ license = stdenv.lib.licenses.lgpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index 7b5281220fab0..24346fb0eb70a 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
# Note: we don't add elfutils to buildInputs, since it provides a
# bad `ld' and other stuff.
- NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${elfutils}/include";
+ NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${elfutils}/include";
NIX_CFLAGS_LINK = "-L${elfutils}/lib";
diff --git a/pkgs/tools/security/chntpw/default.nix b/pkgs/tools/security/chntpw/default.nix
index 814fb0ea0ecc5..1f999e9d726d0 100644
--- a/pkgs/tools/security/chntpw/default.nix
+++ b/pkgs/tools/security/chntpw/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
sha256 = "1k1cxsj0221dpsqi5yibq2hr7n8xywnicl8yyaicn91y8h2hkqln";
};
- buildInputs = [ unzip ];
+ buildInputs = [ unzip ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ stdenv.glibc.out stdenv.glibc.static ];
patches = [
./00-chntpw-build-arch-autodetect.patch
diff --git a/pkgs/tools/security/modsecurity/default.nix b/pkgs/tools/security/modsecurity/default.nix
index 2f3101cffea8c..09754f53a9edd 100644
--- a/pkgs/tools/security/modsecurity/default.nix
+++ b/pkgs/tools/security/modsecurity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl
+{ stdenv, lib, fetchurl, pkgconfig
, curl, apacheHttpd, pcre, apr, aprutil, libxml2 }:
with lib;
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "e2bbf789966c1f80094d88d9085a81bde082b2054f8e38e0db571ca49208f434";
};
+ nativeBuildInputs = [ pkgconfig ];
buildInputs = [ curl apacheHttpd pcre apr aprutil libxml2 ];
configureFlags = [
"--enable-standalone-module"
diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix
index 15937a6792e69..a565c3b96e14e 100644
--- a/pkgs/tools/security/mpw/default.nix
+++ b/pkgs/tools/security/mpw/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
patchShebangs .
'';
- NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2";
+ NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
buildInputs = [ autoconf automake openssl libxml2 ];
diff --git a/pkgs/tools/security/prey/default.nix b/pkgs/tools/security/prey/default.nix
index b36c11cf9345b..f9bd6ea50e8d9 100644
--- a/pkgs/tools/security/prey/default.nix
+++ b/pkgs/tools/security/prey/default.nix
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
cp -R . $out
cp -R ${modulesSrc}/* $out/modules/
wrapProgram "$out/prey.sh" \
- --prefix PATH ":" "${xawtv}/bin:${imagemagick}/bin:${curl}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
+ --prefix PATH ":" "${xawtv}/bin:${imagemagick}/bin:${curl.bin}/bin:${scrot}/bin:${inetutils}/bin:${coreutils}/bin" \
--set CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt"
'';
diff --git a/pkgs/tools/security/thc-hydra/default.nix b/pkgs/tools/security/thc-hydra/default.nix
index c06636dc36777..a06754cb58d21 100644
--- a/pkgs/tools/security/thc-hydra/default.nix
+++ b/pkgs/tools/security/thc-hydra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, libidn, ncurses, pcre, libssh, postgresql92 }:
+{ stdenv, fetchurl, pkgconfig, openssl, libidn, ncurses, pcre, libssh, postgresql92 }:
with stdenv.lib;
@@ -12,10 +12,11 @@ stdenv.mkDerivation rec {
};
preConfigure = ''
- substituteInPlace configure --replace "\$LIBDIRS" "${openssl}/lib ${pcre}/lib ${libssh}/lib ${postgresql92}/lib"
- substituteInPlace configure --replace "\$INCDIRS" "${openssl}/include ${pcre}/include ${libssh}/include ${postgresql92}/include"
+ substituteInPlace configure --replace "\$LIBDIRS" "${openssl.out}/lib ${pcre.out}/lib ${libssh.out}/lib ${postgresql92.lib}/lib"
+ substituteInPlace configure --replace "\$INCDIRS" "${openssl.dev}/include ${pcre.dev}/include ${libssh.dev}/include ${postgresql92}/include"
'';
+ nativeBuildInputs = [ pkgconfig ];
buildInputs = [ openssl libidn ncurses pcre libssh ];
meta = {
diff --git a/pkgs/tools/security/tor/tor-arm.nix b/pkgs/tools/security/tor/tor-arm.nix
index 6c4d61d825f94..365379c8f6a8d 100644
--- a/pkgs/tools/security/tor/tor-arm.nix
+++ b/pkgs/tools/security/tor/tor-arm.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
for i in $(cd $out/bin && ls); do
wrapProgram $out/bin/$i \
--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pythonPackages.curses}):$out/libexec:$PYTHONPATH" \
- --set TERMINFO "${ncurses}/share/terminfo" \
+ --set TERMINFO "${ncurses.out}/share/terminfo" \
--set TERM "xterm"
done
'';
diff --git a/pkgs/tools/security/trousers/default.nix b/pkgs/tools/security/trousers/default.nix
index e910241113b98..d57aa8c63a92f 100644
--- a/pkgs/tools/security/trousers/default.nix
+++ b/pkgs/tools/security/trousers/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
# Fix broken libtool file
preFixup = stdenv.lib.optionalString (!stdenv.isDarwin) ''
- sed 's,-lcrypto,-L${openssl}/lib -lcrypto,' -i $out/lib/libtspi.la
+ sed 's,-lcrypto,-L${openssl.out}/lib -lcrypto,' -i $out/lib/libtspi.la
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
index 264dbf1eb2795..0b034819651dc 100644
--- a/pkgs/tools/system/gptfdisk/default.nix
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
substituteInPlace Makefile.mac --replace \
" -I/opt/local/include -I /usr/local/include -I/opt/local/include" ""
substituteInPlace Makefile.mac --replace \
- "/opt/local/lib/libncurses.a" "${ncurses}/lib/libncurses.dylib"
+ "/opt/local/lib/libncurses.a" "${ncurses.out}/lib/libncurses.dylib"
'';
buildPhase = stdenv.lib.optionalString stdenv.isDarwin "make -f Makefile.mac";
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index 1b15fbbb62814..0ee32a49c07bf 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-ssl-incl-dir=${openssl}/include"
- "--with-ssl-lib-dir=${openssl}/lib"
+ "--with-ssl-lib-dir=${openssl.out}/lib"
] ++ stdenv.lib.optionals (! usePAM) [ "--without-pam" ];
meta = {
diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh
index 2434889581ed3..15fcdcf6c9ddc 100644
--- a/pkgs/tools/system/plan9port/builder.sh
+++ b/pkgs/tools/system/plan9port/builder.sh
@@ -5,8 +5,8 @@ export PLAN9_TARGET=$PLAN9
configurePhase()
{
- echo CFLAGS=\"-I${fontconfig}/include -I${libXt}/include\" > LOCAL.config
- echo X11=\"${libXt}/include\" >> LOCAL.config
+ echo CFLAGS=\"-I${fontconfig_dev}/include -I${libXt_dev}/include\" > LOCAL.config
+ echo X11=\"${libXt_dev}/include\" >> LOCAL.config
for f in `grep -l -r /usr/local/plan9`; do
sed "s,/usr/local/plan9,${PLAN9},g" -i $f
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index 3a78cb2baf637..70f792953b856 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
};
- inherit libXt;
- inherit fontconfig;
+ libXt_dev = libXt.dev;
+ fontconfig_dev = fontconfig.dev;
}
diff --git a/pkgs/tools/system/storebrowse/default.nix b/pkgs/tools/system/storebrowse/default.nix
index 041dd96e1ca81..aa510a28c231b 100644
--- a/pkgs/tools/system/storebrowse/default.nix
+++ b/pkgs/tools/system/storebrowse/default.nix
@@ -28,9 +28,9 @@ stdenv.mkDerivation rec {
GOSQLITE=$GOPATH/src/code.google.com/p/gosqlite
mkdir -p $GOSQLITE
cp -R $srcGoSqlite/* $GOSQLITE/
- export CGO_CFLAGS=-I${sqlite}/include
- export CGO_LDFLAGS=-L${sqlite}/lib
- go build -ldflags "-r ${sqlite}/lib" -o storebrowse
+ export CGO_CFLAGS=-I${sqlite.dev}/include
+ export CGO_LDFLAGS=-L${sqlite.out}/lib
+ go build -ldflags "-r ${sqlite.out}/lib" -o storebrowse
'';
installPhase = ''
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index 4fcc0680ada65..d98f05c6aabb5 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, eventlog, pkgconfig, glib, python, systemd, perl
-, riemann_c_client, protobufc, yacc }:
+, riemann_c_client, protobufc, pcre, yacc }:
stdenv.mkDerivation rec {
name = "syslog-ng-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0qc21mwajk6xrra3gqy2nvaza5gq62psamq4ayphj7lqabdglizg";
};
- buildInputs = [ eventlog pkgconfig glib python systemd perl riemann_c_client protobufc yacc ];
+ buildInputs = [ eventlog pkgconfig glib python systemd perl riemann_c_client protobufc yacc pcre ];
configureFlags = [
"--enable-dynamic-linking"
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 9fe9adaedadb3..dd28d5b2b1dad 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
patchPhase = ''sed -e 's/upstartconfdir = \/etc\/init/upstartconfdir = $(out)\/etc\/init/' -i data/Makefile.am'';
preConfigure = ''
- export PKG_CONFIG_PATH="${dbus_libs}/lib/pkgconfig:$PKG_CONFIG_PATH"
+ export PKG_CONFIG_PATH="${dbus_libs.dev}/lib/pkgconfig:$PKG_CONFIG_PATH"
./autogen.sh #--prefix="$out"
'';
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index f8413b9a0d0f3..70a3bdeb7984e 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, coreutils ? null }:
+{ stdenv, fetchurl, xz, coreutils ? null }:
stdenv.mkDerivation rec {
name = "diffutils-3.3";
@@ -8,8 +8,10 @@ stdenv.mkDerivation rec {
sha256 = "1761vymxbp4wb5rzjvabhdkskk95pghnn67464byvzb5mfl8jpm2";
};
+ outputs = [ "out" "info" ];
+
/* If no explicit coreutils is given, use the one from stdenv. */
- nativeBuildInputs = [ coreutils ];
+ nativeBuildInputs = [ xz.bin coreutils ];
meta = {
homepage = http://www.gnu.org/software/diffutils/diffutils.html;
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index e2856b7acaa4b..8578960b98753 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -1,6 +1,9 @@
-{ stdenv, fetchurl, libsigsegv, readline, readlineSupport ? false
+{ stdenv, fetchurl, xz, libsigsegv, readline, interactive ? false
, locale ? null }:
+let
+ inherit (stdenv.lib) optional;
+in
stdenv.mkDerivation rec {
name = "gawk-4.1.3";
@@ -9,6 +12,9 @@ stdenv.mkDerivation rec {
sha256 = "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3";
};
+ # When we do build separate interactive version, it makes sense to always include man.
+ outputs = [ "out" "info" ] ++ stdenv.lib.optional (!interactive) "man";
+
doCheck = !(
stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1
|| stdenv.isDarwin # XXX: `locale' segfaults
@@ -16,18 +22,17 @@ stdenv.mkDerivation rec {
|| stdenv.isFreeBSD
);
- buildInputs = stdenv.lib.optional (stdenv.system != "x86_64-cygwin") libsigsegv
- ++ stdenv.lib.optional readlineSupport readline
+ buildInputs = [ xz.bin ]
+ ++ stdenv.lib.optional (stdenv.system != "x86_64-cygwin") libsigsegv
+ ++ stdenv.lib.optional interactive readline
++ stdenv.lib.optional stdenv.isDarwin locale;
configureFlags = stdenv.lib.optional (stdenv.system != "x86_64-cygwin") "--with-libsigsegv-prefix=${libsigsegv}"
- ++ stdenv.lib.optional readlineSupport "--with-readline=${readline}"
- # only darwin where reported, seems OK on non-chrooted Fedora (don't rebuild stdenv)
- ++ stdenv.lib.optional (!readlineSupport && stdenv.isDarwin) "--without-readline";
+ ++ [(if interactive then "--with-readline=${readline}" else "--without-readline")];
postInstall = "rm $out/bin/gawk-*";
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.gnu.org/software/gawk/;
description = "GNU implementation of the Awk programming language";
@@ -45,8 +50,11 @@ stdenv.mkDerivation rec {
lines of code.
'';
- license = stdenv.lib.licenses.gpl3Plus;
+ license = licenses.gpl3Plus;
+
+ platforms = platforms.unix;
maintainers = [ ];
};
}
+
diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix
index 8ef67674cd21e..d618f842a4a5b 100644
--- a/pkgs/tools/text/gnugrep/default.nix
+++ b/pkgs/tools/text/gnugrep/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation {
# Perl is needed for testing
nativeBuildInputs = [ perl ];
+ outputs = [ "out" "info" ]; # the man pages are rather small
+
buildInputs = [ pcre libiconv ];
# cygwin: FAIL: multibyte-white-space
@@ -38,7 +40,7 @@ stdenv.mkDerivation {
chmod +x $out/bin/egrep $out/bin/fgrep
'';
- meta = {
+ meta = with stdenv.lib; {
homepage = http://www.gnu.org/software/grep/;
description = "GNU implementation of the Unix grep command";
@@ -48,10 +50,10 @@ stdenv.mkDerivation {
prints the matching lines.
'';
- license = stdenv.lib.licenses.gpl3Plus;
+ license = licenses.gpl3Plus;
- maintainers = [ stdenv.lib.maintainers.eelco ];
- platforms = stdenv.lib.platforms.all;
+ maintainers = [ maintainers.eelco ];
+ platforms = platforms.all;
};
passthru = {inherit pcre;};
diff --git a/pkgs/tools/text/gnused/default.nix b/pkgs/tools/text/gnused/default.nix
index b1c5910029dd7..037c2f17a63ba 100644
--- a/pkgs/tools/text/gnused/default.nix
+++ b/pkgs/tools/text/gnused/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "gnused-4.2.2";
@@ -8,6 +8,8 @@ stdenv.mkDerivation {
sha256 = "f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7";
};
+ outputs = [ "out" "info" ];
+
meta = {
homepage = http://www.gnu.org/software/sed/;
description = "GNU sed, a batch stream editor";
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index 039bff8c655a9..e08c10fd9ed2e 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
postInstall = ''
# Remove example output with (random?) colors to
# avoid non-determinism in the output
- rm $out/share/doc/${name}/examples/hdtbl/*color*ps
+ rm $doc/share/doc/examples/hdtbl/*color*ps
# Remove creation date
- find $out/share/doc/${name} -type f -print0 | xargs -0 sed -i -e 's/%%CreationDate: .*//'
+ find $doc/share/doc/ -type f -print0 | xargs -0 sed -i -e 's/%%CreationDate: .*//'
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/text/multitran/data/default.nix b/pkgs/tools/text/multitran/data/default.nix
index d0e39add665ab..57a375d2a17b5 100644
--- a/pkgs/tools/text/multitran/data/default.nix
+++ b/pkgs/tools/text/multitran/data/default.nix
@@ -3,7 +3,7 @@
# This package requires a locale ru_RU.cp1251 locale entry.
# Waiting for a better idea, I created it modifying a store file using:
# localedef -f CP1251 -i ru_RU ru_RU.CP1251
-# The store file mentioned is in "${glibc}/lib/locale/locale-archive"
+# The store file mentioned is in "${glibc.out}/lib/locale/locale-archive"
stdenv.mkDerivation {
name = "multitran-data-0.3";
diff --git a/pkgs/tools/text/xidel/default.nix b/pkgs/tools/text/xidel/default.nix
index 89adcc75b1951..000584a50e109 100644
--- a/pkgs/tools/text/xidel/default.nix
+++ b/pkgs/tools/text/xidel/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p "$out/bin"
cp -a usr/* "$out/"
- interpreter="$(echo ${stdenv.glibc}/lib/ld-linux*)"
+ interpreter="$(echo ${stdenv.glibc.out}/lib/ld-linux*)"
patchelf --set-interpreter "$interpreter" "$out/bin/xidel"
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [stdenv.glibc]}" "$out/bin/xidel"
'';
diff --git a/pkgs/tools/typesetting/asciidoc/default.nix b/pkgs/tools/typesetting/asciidoc/default.nix
index b26582a6cc716..7c393c5241514 100644
--- a/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/pkgs/tools/typesetting/asciidoc/default.nix
@@ -237,12 +237,12 @@ stdenv.mkDerivation rec {
# We can remove PATH= when those impurities are fixed.
sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook5_xsl}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${tetex}/bin:${coreutils}/bin:${gnused}/bin')|" \
-e "s|^ASCIIDOC =.*|ASCIIDOC = '$out/bin/asciidoc'|" \
- -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt}/bin/xsltproc'|" \
+ -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \
-e "s|^DBLATEX =.*|DBLATEX = '${dblatexFull}/bin/dblatex'|" \
-e "s|^FOP =.*|FOP = '${fop}/bin/fop'|" \
-e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \
-e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \
- -e "s|^XMLLINT =.*|XMLLINT = '${libxml2}/bin/xmllint'|" \
+ -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \
-e "s|^EPUBCHECK =.*|EPUBCHECK = 'nixpkgs_is_missing_epubcheck'|" \
-i a2x.py
'' + ''
diff --git a/pkgs/tools/typesetting/djvu2pdf/default.nix b/pkgs/tools/typesetting/djvu2pdf/default.nix
index 512efe497fa0f..a426356a09f53 100644
--- a/pkgs/tools/typesetting/djvu2pdf/default.nix
+++ b/pkgs/tools/typesetting/djvu2pdf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin
cp -p djvu2pdf $out/bin
- wrapProgram $out/bin/djvu2pdf --prefix PATH : ${ghostscript}/bin:${djvulibre}/bin:${which}/bin
+ wrapProgram $out/bin/djvu2pdf --prefix PATH : ${ghostscript}/bin:${djvulibre.bin}/bin:${which}/bin
mkdir -p $out/man/man1
cp -p djvu2pdf.1.gz $out/man/man1
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 408ef8ae263c0..18f9c99ee2406 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -37,16 +37,16 @@ stdenv.mkDerivation rec {
sed -i 's|self.install_layout == "deb"|False|' setup.py
'' + stdenv.lib.optionalString enableAllFeatures ''
for file in $(find -name "*.py"); do
- sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt}/bin/xsltproc|g' \
- -e 's|Popen(\["xsltproc|Popen(\["${libxslt}/bin/xsltproc|g' \
+ sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt.bin}/bin/xsltproc|g' \
+ -e 's|Popen(\["xsltproc|Popen(\["${libxslt.bin}/bin/xsltproc|g' \
-e 's|cmd = \["texindy|cmd = ["nixpkgs_is_missing_texindy|g' \
-e 's|cmd = "epstopdf|cmd = "${tex}/bin/epstopdf|g' \
-e 's|cmd = \["makeindex|cmd = ["${tex}/bin/makeindex|g' \
-e 's|doc.program = "pdflatex"|doc.program = "${tex}/bin/pdflatex"|g' \
-e 's|self.program = "latex"|self.program = "${tex}/bin/latex"|g' \
-e 's|Popen("pdflatex|Popen("${tex}/bin/pdflatex|g' \
- -e 's|"fc-match"|"${fontconfig}/bin/fc-match"|g' \
- -e 's|"fc-list"|"${fontconfig}/bin/fc-list"|g' \
+ -e 's|"fc-match"|"${fontconfig.bin}/bin/fc-match"|g' \
+ -e 's|"fc-list"|"${fontconfig.bin}/bin/fc-list"|g' \
-e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \
-e 's|cmd = "fig2dev|cmd = "${transfig}/bin/fig2dev|g' \
-e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \
diff --git a/pkgs/tools/typesetting/tex/texlive-new/bin.nix b/pkgs/tools/typesetting/tex/texlive-new/bin.nix
index 431f3926a13e7..f833cc2f82b13 100644
--- a/pkgs/tools/typesetting/tex/texlive-new/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive-new/bin.nix
@@ -99,7 +99,8 @@ core = stdenv.mkDerivation rec {
cp ../texk/texlive/linked_scripts/scripts.lst "$out/share/texmf-dist/scripts/texlive/"
'' + /* doc location identical with individual TeX pkgs */ ''
mkdir -p "$doc/doc"
- mv "$out"/share/{man,info} "$doc"/doc
+ mv "$doc"/share/{man,info} "$doc"/doc
+ rmdir "$doc"/share
'' + cleanBrokenLinks;
setupHook = ./setup-hook.sh; # TODO: maybe texmf-nix -> texmf (and all references)
diff --git a/pkgs/tools/typesetting/tex/texlive/aggregate.nix b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
index 56b093f921d11..550870b0a6a99 100644
--- a/pkgs/tools/typesetting/tex/texlive/aggregate.nix
+++ b/pkgs/tools/typesetting/tex/texlive/aggregate.nix
@@ -66,7 +66,7 @@ rec {
# did the same thing in texLive, but couldn't get it to carry to the
# binaries installed by texLiveFull
for prog in $out/bin/*; do
- wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
+ wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler.out}/lib"
done
'' ) [ "minInit" "defEnsureDir" "addInputs" ];
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 74b3829cf89f5..48a5ae8d6499b 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -30,7 +30,7 @@ rec {
setupHook = ./setup-hook.sh;
doMainBuild = fullDepEntry ( stdenv.lib.optionalString stdenv.isDarwin ''
- export DYLD_LIBRARY_PATH="${poppler}/lib"
+ export DYLD_LIBRARY_PATH="${poppler.out}/lib"
'' + ''
mkdir -p $out
mkdir -p $out/nix-support
@@ -54,7 +54,7 @@ rec {
# sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . )
sed -e '1i\#include \n\#include ' -i $( find libs/teckit -name '*.cpp' -o -name '*.c' )
- NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu}/include/layout";
+ NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu.dev}/include/layout";
./Build --prefix="$out" --datadir="$out/share" --mandir="$out/share/man" --infodir="$out/share/info" \
${args.lib.concatStringsSep " " configureFlags}
@@ -106,7 +106,7 @@ rec {
PATH=$PATH:$out/bin mktexlsr $out/share/texmf*
'' + stdenv.lib.optionalString stdenv.isDarwin ''
for prog in $out/bin/*; do
- wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler}/lib"
+ wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler.out}/lib"
done
'' ) [ "minInit" "defEnsureDir" "doUnpack" "doMakeInstall" "promoteLibexec" "patchShebangsInterim"];
@@ -119,7 +119,7 @@ rec {
"patchShebangsInterimLibexec" "patchShebangsInterimTexmfDist"
"patchShebangsInterimShareTexmfDist"];
- buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11 libICE xproto
+ buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11.out libICE xproto
freetype t1lib gd libXaw icu ghostscript ed libXt libXpm libXmu libXext
xextproto perl libSM ruby expat curl libjpeg python fontconfig xz pkgconfig
poppler libpaper graphite2 lesstif zziplib harfbuzz texinfo potrace gmp mpfr
diff --git a/pkgs/tools/typesetting/xmlto/default.nix b/pkgs/tools/typesetting/xmlto/default.nix
index 49fe7dc681fe9..f99c14720760d 100644
--- a/pkgs/tools/typesetting/xmlto/default.nix
+++ b/pkgs/tools/typesetting/xmlto/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram "$out/bin/xmlto" \
- --prefix PATH : "${libxslt}/bin:${libxml2}/bin:${getopt}/bin"
+ --prefix PATH : "${libxslt.bin}/bin:${libxml2.bin}/bin:${getopt}/bin"
# `w3m' is needed for HTML to text conversions.
substituteInPlace "$out/share/xmlto/format/docbook/txt" \
diff --git a/pkgs/tools/virtualization/aws/default.nix b/pkgs/tools/virtualization/aws/default.nix
index 123dbf647f0d7..efce0c92b78f0 100644
--- a/pkgs/tools/virtualization/aws/default.nix
+++ b/pkgs/tools/virtualization/aws/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
installPhase =
''
mkdir -p $out/bin
- sed 's|\[curl|[${curl}/bin/curl|g' $src > $out/bin/aws
+ sed 's|\[curl|[${curl.bin}/bin/curl|g' $src > $out/bin/aws
chmod +x $out/bin/aws
'';
diff --git a/pkgs/tools/virtualization/ec2-ami-tools/default.nix b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
index dee14db46bcf7..6ccce4684ad5a 100644
--- a/pkgs/tools/virtualization/ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
for i in $out/bin/*; do
wrapProgram $i \
--set EC2_HOME $out \
- --prefix PATH : ${ruby}/bin:${openssl}/bin
+ --prefix PATH : ${ruby}/bin:${openssl.bin}/bin
done
sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/ec2/platform/base/pipeline.rb
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b4d1ee65b6cfb..10b6778c062b5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1581,7 +1581,7 @@ in
};
gawkInteractive = appendToName "interactive"
- (gawk.override { readlineSupport = true; });
+ (gawk.override { interactive = true; });
gawp = goPackages.gawp.bin // { outputs = [ "bin" ]; };
@@ -3807,7 +3807,7 @@ in
xflux = callPackage ../tools/misc/xflux { };
xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
- libxfs = self.xfsprogs.lib;
+ libxfs = self.xfsprogs.dev; # outputs TODO
xml2 = callPackage ../tools/text/xml/xml2 { };
@@ -6596,8 +6596,8 @@ in
dbus-sharp-glib-2_0 = callPackage ../development/libraries/dbus-sharp-glib { };
# Should we deprecate these? Currently there are many references.
- dbus_tools = self.dbus.tools;
- dbus_libs = self.dbus.libs;
+ dbus_tools = self.dbus.out;
+ dbus_libs = self.dbus;
dbus_daemon = self.dbus.daemon;
dee = callPackage ../development/libraries/dee { };
@@ -6883,7 +6883,7 @@ in
gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { }; # required by older GHC versions
gmp5 = callPackage ../development/libraries/gmp/5.1.x.nix { };
gmp6 = callPackage ../development/libraries/gmp/6.x.nix { };
- gmp = self.gmp5;
+ gmp = self.gmp6;
gmpxx = appendToName "with-cxx" (gmp.override { cxx = true; });
#GMP ex-satellite, so better keep it near gmp
@@ -7012,6 +7012,7 @@ in
ace = callPackage ../development/libraries/ace { };
atk = callPackage ../development/libraries/atk { };
+
atkmm = callPackage ../development/libraries/atkmm { };
pixman = callPackage ../development/libraries/pixman { };
@@ -7020,6 +7021,8 @@ in
glSupport = config.cairo.gl or (stdenv.isLinux &&
!stdenv.isArm && !stdenv.isMips);
};
+
+
cairomm = callPackage ../development/libraries/cairomm { };
pango = callPackage ../development/libraries/pango { };
@@ -8005,6 +8008,7 @@ in
});
libva = callPackage ../development/libraries/libva { };
+ libva-full = libva.override { minimal = false; };
libvdpau = callPackage ../development/libraries/libvdpau { };
@@ -8057,14 +8061,18 @@ in
libxmi = callPackage ../development/libraries/libxmi { };
- libxml2 = callPackage ../development/libraries/libxml2 {
- pythonSupport = false;
+ libxml2 = callPackage ../development/libraries/libxml2 { };
+ libxml2Python = pkgs.buildEnv { # slightly hacky
+ name = "libxml2+py-${self.libxml2.version}";
+ paths = with self.libxml2; [ dev bin py ];
+ inherit (self.libxml2) passthru;
+ # the hook to find catalogs is hidden by buildEnv
+ postBuild = ''
+ mkdir "$out/nix-support"
+ cp '${self.libxml2.dev}/nix-support/propagated-native-build-inputs' "$out/nix-support/"
+ '';
};
- libxml2Python = lowPrio (self.libxml2.override {
- pythonSupport = true;
- });
-
libxmlxx = callPackage ../development/libraries/libxmlxx { };
libxmp = callPackage ../development/libraries/libxmp { };
@@ -8154,7 +8162,7 @@ in
);
mesa = mesaDarwinOr (buildEnv {
name = "mesa-${mesa_noglu.version}";
- paths = [ mesa_noglu mesa_glu ];
+ paths = [ mesa_noglu.dev mesa_noglu.out mesa_glu ];
});
meterbridge = callPackage ../applications/audio/meterbridge { };
@@ -8267,13 +8275,10 @@ in
nspr = callPackage ../development/libraries/nspr { };
nss = lowPrio (callPackage ../development/libraries/nss { });
+ nssTools = nss.tools;
nss_wrapper = callPackage ../development/libraries/nss_wrapper { };
- nssTools = callPackage ../development/libraries/nss {
- includeTools = true;
- };
-
ntk = callPackage ../development/libraries/audio/ntk { };
ntrack = callPackage ../development/libraries/ntrack { };
@@ -8399,17 +8404,10 @@ in
vtk = vtkWithQt4;
};
- pcre = callPackage ../development/libraries/pcre {
- unicodeSupport = config.pcre.unicode or true;
- };
- pcre16 = pcre.override {
- cplusplusSupport = false;
- withCharSize = 16;
- };
- pcre32 = pcre.override {
- cplusplusSupport = false;
- withCharSize = 32;
- };
+ pcre = callPackage ../development/libraries/pcre { };
+ pcre16 = self.pcre.override { variant = "pcre16"; };
+ # pcre32 seems unused
+ pcre-cpp = self.pcre.override { variant = "cpp"; };
pcre2 = callPackage ../development/libraries/pcre2 { };
@@ -8814,7 +8812,7 @@ in
sqlite-amalgamation = callPackage ../development/libraries/sqlite-amalgamation { };
- sqlite-interactive = appendToName "interactive" (sqlite.override { interactive = true; });
+ sqlite-interactive = appendToName "interactive" (sqlite.override { interactive = true; }).bin;
sqlcipher = lowPrio (callPackage ../development/libraries/sqlcipher {
readline = null;
@@ -8971,9 +8969,13 @@ in
inherit (pythonPackages) gyp;
};
- vaapiIntel = callPackage ../development/libraries/vaapi-intel { };
+ vaapiIntel = callPackage ../development/libraries/vaapi-intel {
+ libva = libva-full; # also wants libva-{x11,drm,wayland}
+ };
- vaapiVdpau = callPackage ../development/libraries/vaapi-vdpau { };
+ vaapiVdpau = callPackage ../development/libraries/vaapi-vdpau {
+ libva = libva-full; # needs libva-{x11,glx}
+ };
vamp = callPackage ../development/libraries/audio/vamp { };
@@ -9676,7 +9678,6 @@ in
# Backwards compatibility.
mod_dnssd = pkgs.apacheHttpdPackages.mod_dnssd;
- mod_evasive = pkgs.apacheHttpdPackages.mod_evasive;
mod_fastcgi = pkgs.apacheHttpdPackages.mod_fastcgi;
mod_python = pkgs.apacheHttpdPackages.mod_python;
mod_wsgi = pkgs.apacheHttpdPackages.mod_wsgi;
@@ -11013,7 +11014,12 @@ in
systemd = callPackage ../os-specific/linux/systemd {
linuxHeaders = linuxHeaders_3_18;
- };
+ utillinux = utillinuxMinimal; # break the cyclic dependency
+ }
+ // {
+ udev.bin = systemd; # ${systemd.udev.bin}/bin/udevadm
+ udev.lib = libudev.out; # ${systemd.udev.lib}/lib/libudev.*
+ };
# standalone cryptsetup generator for systemd
systemd-cryptsetup-generator = callPackage ../os-specific/linux/systemd/cryptsetup-generator.nix { };
@@ -11070,7 +11076,11 @@ in
cross = assert crossSystem != null; crossSystem;
});
- udev = pkgs.systemd;
+ # This hacky alias covers most use cases without mass-replace (build inputs)
+ # and causes an *evaluation* error if "${udev}" is attempted.
+ udev = [ libudev.dev libudev.out ];
+ libudev = callPackage ../os-specific/linux/systemd/libudev.nix { };
+
eudev = callPackage ../os-specific/linux/eudev {};
# libudev.so.0
@@ -12483,9 +12493,7 @@ in
inherit (gnome3) gitg;
- giv = callPackage ../applications/graphics/giv {
- pcre = pcre.override { unicodeSupport = true; };
- };
+ giv = callPackage ../applications/graphics/giv { };
gmrun = callPackage ../applications/misc/gmrun {};
@@ -14170,6 +14178,7 @@ in
vlc = callPackage ../applications/video/vlc {
ffmpeg = ffmpeg_2;
+ libva = libva-full; # also wants libva-x11
};
vlc_qt5 = qt5.vlc;
@@ -15822,7 +15831,9 @@ in
why3 = callPackage ../applications/science/logic/why3 {};
- yices = callPackage ../applications/science/logic/yices {};
+ yices = callPackage ../applications/science/logic/yices {
+ gmp-static = gmp.override { withStatic = true; };
+ };
z3 = callPackage ../applications/science/logic/z3 {};
z3_opt = callPackage ../applications/science/logic/z3_opt {};
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index e58df1f42c33f..abd4a81234162 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -103,7 +103,7 @@ let
makeFlagsArray=(
LUA_LDIR="$out/share/lua/${lua.luaversion}"
LUA_INC="-I${lua}/include" LUA_CDIR="$out/lib/lua/${lua.luaversion}"
- EXPAT_INC="-I${expat}/include");
+ EXPAT_INC="-I${expat.dev}/include");
'';
meta = {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 2ac89b9dfa078..7ba988fbc9c45 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -1982,7 +1982,7 @@ let self = _self // overrides; _self = with self; {
# Don't build a private copy of bzip2.
BUILD_BZIP2 = false;
- BZIP2_LIB = "${pkgs.bzip2}/lib";
+ BZIP2_LIB = "${pkgs.bzip2.out}/lib";
BZIP2_INCLUDE = "${pkgs.bzip2}/include";
meta = {
@@ -2413,8 +2413,8 @@ let self = _self // overrides; _self = with self; {
sha256 = "0f5gdprcql4kwzgxl2s6ngcfg1jl45lzcqh7dkv5bkwlwmxa9rsi";
};
buildInputs = [ DevelChecklib TestRequires pkgs.gmp ];
- NIX_CFLAGS_COMPILE = "-I${pkgs.gmp}/include";
- NIX_CFLAGS_LINK = "-L${pkgs.gmp}/lib -lgmp";
+ NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+ NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
};
CryptEksblowfish = buildPerlPackage rec {
@@ -2534,7 +2534,7 @@ let self = _self // overrides; _self = with self; {
sha256 = "b66fab514edf97fc32f58da257582704a210c2b35e297d5c31b7fa2ffd08e908";
};
NIX_CFLAGS_COMPILE = "-I${pkgs.openssl}/include";
- NIX_CFLAGS_LINK = "-L${pkgs.openssl}/lib -lcrypto";
+ NIX_CFLAGS_LINK = "-L${pkgs.openssl.out}/lib -lcrypto";
meta = with stdenv.lib; {
homepage = https://metacpan.org/release/Crypt-OpenSSL-AES;
description = "Perl wrapper around OpenSSL's AES library";
@@ -2551,7 +2551,7 @@ let self = _self // overrides; _self = with self; {
sha256 = "18vg2bqyhc0ahfdh5dkbgph5nh92qcz5vi99jq8aam4h86if78bk";
};
NIX_CFLAGS_COMPILE = "-I${pkgs.openssl}/include";
- NIX_CFLAGS_LINK = "-L${pkgs.openssl}/lib -lcrypto";
+ NIX_CFLAGS_LINK = "-L${pkgs.openssl.out}/lib -lcrypto";
};
CryptOpenSSLRandom = buildPerlPackage rec {
@@ -2561,7 +2561,7 @@ let self = _self // overrides; _self = with self; {
sha256 = "12pirh1pj8lpvzcwj2if9i6dbr6a7s9g1zc7gzbd3v87d6mx0rdf";
};
NIX_CFLAGS_COMPILE = "-I${pkgs.openssl}/include";
- NIX_CFLAGS_LINK = "-L${pkgs.openssl}/lib -lcrypto";
+ NIX_CFLAGS_LINK = "-L${pkgs.openssl.out}/lib -lcrypto";
};
CryptOpenSSLRSA = buildPerlPackage rec {
@@ -2572,7 +2572,7 @@ let self = _self // overrides; _self = with self; {
};
propagatedBuildInputs = [ CryptOpenSSLRandom ];
NIX_CFLAGS_COMPILE = "-I${pkgs.openssl}/include";
- NIX_CFLAGS_LINK = "-L${pkgs.openssl}/lib -lcrypto";
+ NIX_CFLAGS_LINK = "-L${pkgs.openssl.out}/lib -lcrypto";
};
CryptSSLeay = buildPerlPackage rec {
@@ -2581,7 +2581,7 @@ let self = _self // overrides; _self = with self; {
url = "mirror://cpan/authors/id/N/NA/NANIS/${name}.tar.gz";
sha256 = "1s7zm6ph37kg8jzaxnhi4ff4snxl7mi5h14arxbri0kp6s0lzlzm";
};
- makeMakerFlags = "--libpath=${pkgs.openssl}/lib --incpath=${pkgs.openssl}/include";
+ makeMakerFlags = "--libpath=${pkgs.openssl.out}/lib --incpath=${pkgs.openssl}/include";
buildInputs = [ PathClass TryTiny ];
};
@@ -5241,7 +5241,7 @@ let self = _self // overrides; _self = with self; {
# tests fail
doCheck = false;
- makeMakerFlags = "--lib_png_path=${pkgs.libpng} --lib_jpeg_path=${pkgs.libjpeg} --lib_zlib_path=${pkgs.zlib} --lib_ft_path=${pkgs.freetype} --lib_fontconfig_path=${pkgs.fontconfig} --lib_xpm_path=${pkgs.xorg.libXpm}";
+ makeMakerFlags = "--lib_png_path=${pkgs.libpng.out} --lib_jpeg_path=${pkgs.libjpeg.out} --lib_zlib_path=${pkgs.zlib.out} --lib_ft_path=${pkgs.freetype.out} --lib_fontconfig_path=${pkgs.fontconfig.lib} --lib_xpm_path=${pkgs.xorg.libXpm.out}";
};
GDSecurityImage = buildPerlPackage {
@@ -6540,7 +6540,7 @@ let self = _self // overrides; _self = with self; {
};
buildInputs = [ ApacheTest ExtUtilsXSBuilder mod_perl2 pkgs.apacheHttpd pkgs.apr pkgs.aprutil ];
propagatedBuildInputs = [ mod_perl2 ];
- makeMakerFlags = "--with-apache2-src=${pkgs.apacheHttpd} --with-apache2-apxs=${pkgs.apacheHttpd}/bin/apxs --with-apache2-httpd=${pkgs.apacheHttpd}/bin/httpd --with-apr-config=${pkgs.apr}/bin/apr-1-config --with-apu-config=${pkgs.aprutil}/bin/apu-1-config";
+ makeMakerFlags = "--with-apache2-src=${pkgs.apacheHttpd} --with-apache2-apxs=${pkgs.apacheHttpd}/bin/apxs --with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd --with-apr-config=${pkgs.apr}/bin/apr-1-config --with-apu-config=${pkgs.aprutil}/bin/apu-1-config";
preConfigure = ''
# override broken prereq check
substituteInPlace configure --replace "prereq_check=\"\$PERL \$PERL_OPTS build/version_check.pl\"" "prereq_check=\"echo\""
@@ -7211,8 +7211,8 @@ let self = _self // overrides; _self = with self; {
};
buildInputs = [ pkgs.gmp ];
doCheck = false;
- NIX_CFLAGS_COMPILE = "-I${pkgs.gmp}/include";
- NIX_CFLAGS_LINK = "-L${pkgs.gmp}/lib -lgmp";
+ NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+ NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
};
MathBigRat = buildPerlPackage rec {
@@ -9014,8 +9014,14 @@ let self = _self // overrides; _self = with self; {
sha256 = "1x6jjmhvsdq488k6wdg58ajnr4dmbcbk7imyv0aybkhj1ygw7ahv";
};
buildInputs = [ pkgs.openssl ];
- OPENSSL_PREFIX = pkgs.openssl;
doCheck = false; # Test performs network access.
+ preConfigure = ''
+ mkdir openssl
+ ln -s ${pkgs.openssl.out}/lib openssl
+ ln -s ${pkgs.openssl.bin}/bin openssl
+ ln -s ${pkgs.openssl.dev}/include openssl
+ export OPENSSL_PREFIX=$(realpath openssl)
+ '';
meta = {
description = "Perl extension for using OpenSSL";
license = "SSLeay";
@@ -10455,6 +10461,7 @@ let self = _self // overrides; _self = with self; {
url = "mirror://cpan/authors/id/U/UM/UMEMOTO/${name}.tar.gz";
sha256 = "1ads4k4vvq6pnxkdw0s8gaj03w4h9snxyw7zyikfzd20fy76yx6s";
};
+ setOutputFlags = false;
buildInputs = [ pkgs.which ];
};
@@ -11405,7 +11412,7 @@ let self = _self // overrides; _self = with self; {
preConfigure =
''
substituteInPlace Makefile.PL --replace '$Config{libpth}' \
- "'${pkgs.ncurses}/lib'"
+ "'${pkgs.ncurses.out}/lib'"
'';
# Tests don't work because they require /dev/tty.
@@ -13011,7 +13018,7 @@ let self = _self // overrides; _self = with self; {
url = "http://search.cpan.org/CPAN/authors/id/S/SR/SREZIC/${name}.tar.gz";
sha256 = "10fsvyr56gm59chc8b70n6bvhd3lh9c05sp8m4arcahid0rpgbwa";
};
- makeMakerFlags = "X11LIB=${pkgs.xorg.libX11}/lib";
+ makeMakerFlags = "X11LIB=${pkgs.xorg.libX11.out}/lib";
buildInputs = with pkgs; [ xorg.libX11 libpng ];
configurePhase = ''
perl Makefile.PL PREFIX=$out $makeMakerFlags
@@ -13456,7 +13463,7 @@ let self = _self // overrides; _self = with self; {
};
buildInputs = [ pkgs.xorg.libXext pkgs.xorg.libXScrnSaver pkgs.xorg.libX11 ];
propagatedBuildInputs = [ InlineC ];
- patchPhase = ''sed -ie 's,-L/usr/X11R6/lib/,-L${pkgs.xorg.libX11}/lib/ -L${pkgs.xorg.libXext}/lib/ -L${pkgs.xorg.libXScrnSaver}/lib/,' IdleTime.pm'';
+ patchPhase = ''sed -ie 's,-L/usr/X11R6/lib/,-L${pkgs.xorg.libX11.out}/lib/ -L${pkgs.xorg.libXext.out}/lib/ -L${pkgs.xorg.libXScrnSaver}/lib/,' IdleTime.pm'';
meta = {
description = "Get the idle time of X11";
};
@@ -13597,7 +13604,7 @@ let self = _self // overrides; _self = with self; {
patchPhase = if stdenv.isCygwin then ''
sed -i"" -e "s@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. \$Config{_exe};@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. (\$^O eq 'cygwin' ? \"\" : \$Config{_exe});@" inc/Devel/CheckLib.pm
'' else null;
- makeMakerFlags = "EXPATLIBPATH=${pkgs.expat}/lib EXPATINCPATH=${pkgs.expat}/include";
+ makeMakerFlags = "EXPATLIBPATH=${pkgs.expat.out}/lib EXPATINCPATH=${pkgs.expat.dev}/include";
};
XMLXPath = buildPerlPackage {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f7c33d97bbd7e..a8e3e93c3025b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -307,7 +307,7 @@ in modules // {
doCheck = false;
patchPhase = ''
- substituteInPlace acme_tiny.py --replace "openssl" "${pkgs.openssl}/bin/openssl"
+ substituteInPlace acme_tiny.py --replace "openssl" "${pkgs.openssl.bin}/bin/openssl"
substituteInPlace letsencrypt/le_util.py --replace '"sw_vers"' '"/usr/bin/sw_vers"'
'';
@@ -614,7 +614,7 @@ in modules // {
mkdir -p $out/share
cp -r extra/themes $out/share
wrapProgram $out/bin/alot \
- --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib:${pkgs.file}/lib:${pkgs.gpgme}/lib
+ --prefix LD_LIBRARY_PATH : '${pkgs.lib.makeLibraryPath [ pkgs.notmuch pkgs.file pkgs.gpgme ]}'
'';
meta = {
@@ -2835,10 +2835,9 @@ in modules // {
postPatch = ''
# Hardcode cairo library path
- # FIXME: for closure-size branch all pkgs.foo should be replaced with pkgs.foo.lib
- substituteInPlace cairocffi/__init__.py --subst-var-by cairo ${pkgs.cairo}
- substituteInPlace cairocffi/__init__.py --subst-var-by glib ${pkgs.glib}
- substituteInPlace cairocffi/__init__.py --subst-var-by gdk_pixbuf ${pkgs.gdk_pixbuf}
+ substituteInPlace cairocffi/__init__.py --subst-var-by cairo ${pkgs.cairo.out}
+ substituteInPlace cairocffi/__init__.py --subst-var-by glib ${pkgs.glib.out}
+ substituteInPlace cairocffi/__init__.py --subst-var-by gdk_pixbuf ${pkgs.gdk_pixbuf.out}
'';
meta = {
@@ -6044,7 +6043,7 @@ in modules // {
preFixup = ''
wrapProgram $out/bin/gtimelog \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
- --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3}/lib" \
+ --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3.out}/lib" \
'';
@@ -7400,7 +7399,7 @@ in modules // {
preConfigure = ''
cat > site.cfg << END
[samplerate]
- library_dirs=${pkgs.libsamplerate}/lib
+ library_dirs=${pkgs.libsamplerate.out}/lib
include_dirs=${pkgs.libsamplerate}/include
END
'';
@@ -12531,7 +12530,7 @@ in modules // {
patchPhase = optionalString stdenv.isLinux ''
substituteInPlace monotonic.py --replace \
- "ctypes.util.find_library('c')" "'${stdenv.glibc}/lib/libc.so.6'"
+ "ctypes.util.find_library('c')" "'${stdenv.glibc.out}/lib/libc.so.6'"
'';
};
@@ -15723,7 +15722,7 @@ in modules // {
};
prePatch = ''
- substituteInPlace soundfile.py --replace "'sndfile'" "'${pkgs.libsndfile}/lib/libsndfile.so'"
+ substituteInPlace soundfile.py --replace "'sndfile'" "'${pkgs.libsndfile.out}/lib/libsndfile.so'"
'';
# https://github.com/bastibe/PySoundFile/issues/157
@@ -15786,13 +15785,15 @@ in modules // {
++ optionals (isPyPy) [ pkgs.tk pkgs.xorg.libX11 ];
# NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
- preConfigure = ''
+ preConfigure = let
+ libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
+ in ''
sed -i "setup.py" \
- -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = _lib_include("${pkgs.freetype}")|g ;
- s|^JPEG_ROOT =.*$|JPEG_ROOT = _lib_include("${pkgs.libjpeg}")|g ;
- s|^ZLIB_ROOT =.*$|ZLIB_ROOT = _lib_include("${pkgs.zlib}")|g ;
+ -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude pkgs.freetype}|g ;
+ s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude pkgs.libjpeg}|g ;
+ s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude pkgs.zlib}|g ;
s|^LCMS_ROOT =.*$|LCMS_ROOT = _lib_include("${pkgs.libwebp}")|g ;
- s|^TIFF_ROOT =.*$|TIFF_ROOT = _lib_include("${pkgs.libtiff}")|g ;
+ s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude pkgs.libtiff}|g ;
s|^TCL_ROOT=.*$|TCL_ROOT = _lib_include("${pkgs.tcl}")|g ;'
''
# Remove impurities
@@ -16449,7 +16450,7 @@ in modules // {
preConfigure = ''
substituteInPlace setup.py \
--replace '"/usr/include"' '"${pkgs.gdb}/include"' \
- --replace '"/usr/lib"' '"${pkgs.binutils}/lib"'
+ --replace '"/usr/lib"' '"${pkgs.binutils.out}/lib"'
'';
meta = {
@@ -16863,11 +16864,11 @@ in modules // {
doCheck = false;
preConfigure = ''
- export LDFLAGS="-L${pkgs.fftw}/lib -L${pkgs.fftwFloat}/lib -L${pkgs.fftwLongDouble}/lib"
+ export LDFLAGS="-L${pkgs.fftw.out}/lib -L${pkgs.fftwFloat.out}/lib -L${pkgs.fftwLongDouble.out}/lib"
export CFLAGS="-I${pkgs.fftw}/include -I${pkgs.fftwFloat}/include -I${pkgs.fftwLongDouble}/include"
'';
#+ optionalString isDarwin ''
- # export DYLD_LIBRARY_PATH="${pkgs.fftw}/lib"
+ # export DYLD_LIBRARY_PATH="${pkgs.fftw.out}/lib"
#'';
meta = {
@@ -17616,7 +17617,7 @@ in modules // {
postPatch = ''
sed -i -e '/udev_library_name/,/^ *libudev/ {
- s|CDLL([^,]*|CDLL("${pkgs.udev}/lib/libudev.so.1"|p; d
+ s|CDLL([^,]*|CDLL("${pkgs.libudev.out}/lib/libudev.so.1"|p; d
}' pyudev/_libudev.py
'';
@@ -18065,8 +18066,8 @@ in modules // {
patchPhase = ''
substituteInPlace "setup.cfg" \
- --replace "/usr/local/include" "${pkgs.sqlite}/include" \
- --replace "/usr/local/lib" "${pkgs.sqlite}/lib"
+ --replace "/usr/local/include" "${pkgs.sqlite.dev}/include" \
+ --replace "/usr/local/lib" "${pkgs.sqlite.out}/lib"
'';
# error: invalid command 'test'
@@ -18122,9 +18123,11 @@ in modules // {
cd Source
python setup.py backport
python setup.py configure \
- --apr-inc-dir=${pkgs.apr}/include/apr-1 \
- --apu-inc-dir=${pkgs.aprutil}/include/apr-1 \
- --apr-lib-dir=${pkgs.apr}/lib \
+ --apr-inc-dir=${pkgs.apr.dev}/include \
+ --apu-inc-dir=${pkgs.aprutil.dev}/include \
+ --apr-lib-dir=${pkgs.apr.out}/lib \
+ --svn-lib-dir=${pkgs.subversion.out}/lib \
+ --svn-bin-dir=${pkgs.subversion.out}/bin \
--svn-root-dir=${pkgs.subversion}
'' + (if !stdenv.isDarwin then "" else ''
sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
@@ -18434,7 +18437,7 @@ in modules // {
reportlab =
- let freetype = overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; });
+ let freetype = overrideDerivation pkgs.freetype (args: { dontDisableStatic = true; });
in buildPythonPackage rec {
name = "reportlab-3.2.0";
@@ -19648,7 +19651,7 @@ in modules // {
patchPhase = ''
cp "${x_ignore_nofocus}/cpp/linux-specific/"* .
- substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${pkgs.xorg.libX11}/lib/libX11.so.6"
+ substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${pkgs.xorg.libX11.out}/lib/libX11.so.6"
gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
gcc -shared \
-Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
@@ -21258,7 +21261,7 @@ in modules // {
# I don't know why I need to add these libraries. Shouldn't they
# be part of wxPython?
postInstall = ''
- libspaths=${pkgs.xorg.libSM}/lib:${pkgs.xorg.libXScrnSaver}/lib
+ libspaths=${with pkgs.xorg; pkgs.lib.makeLibraryPath [ libSM libXScrnSaver ]}
wrapProgram $out/bin/taskcoach.py \
--prefix LD_LIBRARY_PATH : $libspaths
'';
@@ -24017,7 +24020,7 @@ in modules // {
# Fix the USB backend library lookup
postPatch = ''
- libusb=${pkgs.libusb1}/lib/libusb-1.0.so
+ libusb=${pkgs.libusb1.out}/lib/libusb-1.0.so
test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
sed -i -e "s|libname = .*|libname = \"$libusb\"|" usb/backend/libusb1.py
'';
@@ -24188,7 +24191,7 @@ in modules // {
mock
];
- LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
+ LD_LIBRARY_PATH = "${pkgs.cairo.out}/lib";
meta = {
description = "Graphite-web, without the interface. Just the rendering HTTP API";
@@ -25798,7 +25801,7 @@ in modules // {
patchPhase = ''
# Hardcode cairo library path
- sed -e 's,ffi\.dlopen(,&"${pkgs.xorg.libxcb}/lib/" + ,' -i xcffib/__init__.py
+ sed -e 's,ffi\.dlopen(,&"${pkgs.xorg.libxcb.out}/lib/" + ,' -i xcffib/__init__.py
'';
propagatedBuildInputs = [ self.cffi self.six ];