mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-27 13:57:10 +03:00
Merge branch 'staging', containing closure-size #7701
This commit is contained in:
commit
39ebb01d6e
@ -12,6 +12,7 @@
|
|||||||
<xi:include href="introduction.xml" />
|
<xi:include href="introduction.xml" />
|
||||||
<xi:include href="quick-start.xml" />
|
<xi:include href="quick-start.xml" />
|
||||||
<xi:include href="stdenv.xml" />
|
<xi:include href="stdenv.xml" />
|
||||||
|
<xi:include href="multiple-output.xml" />
|
||||||
<xi:include href="configuration.xml" />
|
<xi:include href="configuration.xml" />
|
||||||
<xi:include href="functions.xml" />
|
<xi:include href="functions.xml" />
|
||||||
<xi:include href="meta.xml" />
|
<xi:include href="meta.xml" />
|
||||||
|
91
doc/multiple-output.xml
Normal file
91
doc/multiple-output.xml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE chapter [
|
||||||
|
<!ENTITY ndash "–"> <!-- @vcunat likes to use this one ;-) -->
|
||||||
|
]>
|
||||||
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xml:id="chap-multiple-output">
|
||||||
|
|
||||||
|
<title>Multiple-output packages</title>
|
||||||
|
|
||||||
|
<section><title>Introduction</title>
|
||||||
|
<para>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.</para>
|
||||||
|
<para>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.</para>
|
||||||
|
<note><para>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.</para></note>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section><title>Installing a split package</title>
|
||||||
|
<para>When installing a package via <varname>systemPackages</varname> or <command>nix-env</command> you have several options:</para>
|
||||||
|
<warning><para>Currently <command>nix-env</command> almost always installs all outputs until https://github.com/NixOS/nix/pull/815 gets merged.</para></warning>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The <varname>outputs</varname> attribute contains a list of output names.</para></listitem>
|
||||||
|
<listitem><para>You can let it use the default outputs. These are handled by <varname>meta.outputsToInstall</varname> attribute that contains a list of output names.</para>
|
||||||
|
<para>TODO: more about tweaking the attribute, etc.</para></listitem>
|
||||||
|
<listitem><para>NixOS provides configuration option <varname>environment.extraOutputsToInstall</varname> that allows adding extra outputs of <varname>environment.systemPackages</varname> atop the default ones. It's mainly meant for documentation and debug symbols, and it's also modified by specific options.</para>
|
||||||
|
<note><para>At this moment there is no similar configurability for packages installed by <command>nix-env</command>. You can still use approach from <xref linkend="sec-modify-via-packageOverrides" /> to override <varname>meta.outputsToInstall</varname> attributes, but that's a rather inconvenient way.</para></note>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section><title>Using a split package</title>
|
||||||
|
<para>In the Nix language the individual outputs can be reached explicitly as attributes, e.g. <varname>coreutils.info</varname>, but the typical case is just using packages as build inputs.</para>
|
||||||
|
<para>When a multiple-output derivation gets into a build input of another derivation, the first output is added (<varname>.dev</varname> by convention) and also <varname>propagatedBuildOutputs</varname> of that package which by default contain <varname>$outputBin</varname> and <varname>$outputLib</varname>. (See <xref linkend="multiple-output-file-type-groups" />.)</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section><title>Writing a split derivation</title>
|
||||||
|
<para>Here you find how to write a derivation that produces multiple outputs.</para>
|
||||||
|
<para>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 <<filename>nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh</filename>>; it's relatively well-readable. The whole machinery is triggered by defining the <varname>outputs</varname> attribute to contain the list of desired output names (strings).</para>
|
||||||
|
<programlisting>outputs = [ "dev" "out" "bin" "doc" ];</programlisting>
|
||||||
|
<para>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 <varname>dev</varname>; typically you also want to have the main <varname>out</varname> output, as it catches any files that didn't get elsewhere.</para>
|
||||||
|
|
||||||
|
<note><para>There is a special handling of the <varname>debug</varname> output, described at <xref linkend="stdenv-separateDebugInfo" />.</para></note>
|
||||||
|
|
||||||
|
<section xml:id="multiple-output-file-type-groups">
|
||||||
|
<title>File type groups</title>
|
||||||
|
<para>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 <varname>outputFoo</varname> 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.</para>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputDev</varname></term><listitem><para>
|
||||||
|
is for development-only files. These include C(++) headers, pkg-config, cmake and aclocal files. They go to <varname>dev</varname> or <varname>out</varname> by default.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputBin</varname></term><listitem><para>
|
||||||
|
is meant for user-facing binaries, typically residing in bin/. They go to <varname>bin</varname> or <varname>out</varname> by default.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputLib</varname></term><listitem><para>
|
||||||
|
is meant for libraries, typically residing in <filename>lib/</filename> and <filename>libexec/</filename>. They go to <varname>lib</varname> or <varname>out</varname> by default.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputDoc</varname></term><listitem><para>
|
||||||
|
is for user documentation, typically residing in <filename>share/doc/</filename>. It goes to <varname>doc</varname> or <varname>out</varname> by default.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputDocdev</varname></term><listitem><para>
|
||||||
|
is for <emphasis>developer</emphasis> documentation. Currently we count gtk-doc and man3 pages in there. It goes to <varname>docdev</varname> or is removed (!) by default. This is because e.g. gtk-doc tends to be rather large and completely unused by nixpkgs users.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputMan</varname></term><listitem><para>
|
||||||
|
is for man pages (except for section 3). They go to <varname>man</varname> or <varname>doc</varname> or <varname>$outputBin</varname> by default.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
<varlistentry><term><varname>
|
||||||
|
$outputInfo</varname></term><listitem><para>
|
||||||
|
is for info pages. They go to <varname>info</varname> or <varname>doc</varname> or <varname>$outputMan</varname> by default.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section><title>Common caveats</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>Some configure scripts don't like some of the parameters passed by default by the framework, e.g. <literal>--docdir=/foo/bar</literal>. You can disable this by setting <literal>setOutputFlags = false;</literal>.</para></listitem>
|
||||||
|
<listitem><para>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.)</para></listitem>
|
||||||
|
<listitem><para>Most of split packages contain their core functionality in libraries. These libraries tend to refer to various kind of data that typically gets into <varname>out</varname>, e.g. locale strings, so there is often no advantage in separating the libraries into <varname>lib</varname>, as keeping them in <varname>out</varname> is easier.</para></listitem>
|
||||||
|
<listitem><para>Some packages have hidden assumptions on install paths, which complicates splitting.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section><!--Writing a split derivation-->
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
@ -956,7 +956,7 @@ following:
|
|||||||
phase.</para></listitem>
|
phase.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry xml:id="stdenv-separateDebugInfo">
|
||||||
<term><varname>separateDebugInfo</varname></term>
|
<term><varname>separateDebugInfo</varname></term>
|
||||||
<listitem><para>If set to <literal>true</literal>, the standard
|
<listitem><para>If set to <literal>true</literal>, the standard
|
||||||
environment will enable debug information in C/C++ builds. After
|
environment will enable debug information in C/C++ builds. After
|
||||||
|
@ -129,7 +129,7 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
outputsList = map outputToAttrListElement outputs;
|
outputsList = map outputToAttrListElement outputs;
|
||||||
in commonAttrs.${drv.outputName};
|
in commonAttrs // { outputUnspecified = true; };
|
||||||
|
|
||||||
|
|
||||||
/* Strip a derivation of all non-essential attributes, returning
|
/* Strip a derivation of all non-essential attributes, returning
|
||||||
|
@ -98,7 +98,9 @@ rec {
|
|||||||
makeLibraryPath [ pkgs.openssl pkgs.zlib ]
|
makeLibraryPath [ pkgs.openssl pkgs.zlib ]
|
||||||
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r/lib:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/lib"
|
=> "/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
|
/* Construct a binary search path (such as $PATH) containing the
|
||||||
binaries for a set of packages.
|
binaries for a set of packages.
|
||||||
|
@ -44,7 +44,7 @@ let
|
|||||||
echo "for hints about the offending path)."
|
echo "for hints about the offending path)."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
${libxslt}/bin/xsltproc \
|
${libxslt.bin}/bin/xsltproc \
|
||||||
--stringparam revision '${revision}' \
|
--stringparam revision '${revision}' \
|
||||||
-o $out ${./options-to-docbook.xsl} $optionsXML
|
-o $out ${./options-to-docbook.xsl} $optionsXML
|
||||||
'';
|
'';
|
||||||
|
@ -38,7 +38,7 @@ with lib;
|
|||||||
# environment.pathsToLink, and we can't have both.
|
# environment.pathsToLink, and we can't have both.
|
||||||
#environment.pathsToLink = [ "/lib/debug/.build-id" ];
|
#environment.pathsToLink = [ "/lib/debug/.build-id" ];
|
||||||
|
|
||||||
environment.outputsToLink =
|
environment.extraOutputsToInstall =
|
||||||
optional config.environment.enableDebugInfo "debug";
|
optional config.environment.enableDebugInfo "debug";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -236,7 +236,7 @@ with lib;
|
|||||||
# Versioned fontconfig > 2.10. Take shared fonts.conf from fontconfig.
|
# Versioned fontconfig > 2.10. Take shared fonts.conf from fontconfig.
|
||||||
# Otherwise specify only font directories.
|
# Otherwise specify only font directories.
|
||||||
environment.etc."fonts/${pkgs.fontconfig.configVersion}/fonts.conf".source =
|
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 =
|
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/00-nixos.conf".text =
|
||||||
let
|
let
|
||||||
|
@ -148,7 +148,7 @@ in
|
|||||||
"protocols".source = pkgs.iana_etc + "/etc/protocols";
|
"protocols".source = pkgs.iana_etc + "/etc/protocols";
|
||||||
|
|
||||||
# /etc/rpc: RPC program numbers.
|
# /etc/rpc: RPC program numbers.
|
||||||
"rpc".source = pkgs.glibc + "/etc/rpc";
|
"rpc".source = pkgs.glibc.out + "/etc/rpc";
|
||||||
|
|
||||||
# /etc/hosts: Hostname-to-IP mappings.
|
# /etc/hosts: Hostname-to-IP mappings.
|
||||||
"hosts".text =
|
"hosts".text =
|
||||||
|
@ -26,7 +26,7 @@ let
|
|||||||
# are built with PulseAudio support (like KDE).
|
# are built with PulseAudio support (like KDE).
|
||||||
clientConf = writeText "client.conf" ''
|
clientConf = writeText "client.conf" ''
|
||||||
autospawn=${if nonSystemWide then "yes" else "no"}
|
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
|
# Write an /etc/asound.conf that causes all ALSA applications to
|
||||||
@ -130,11 +130,11 @@ in {
|
|||||||
source = clientConf;
|
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 {
|
(mkIf cfg.enable {
|
||||||
environment.systemPackages = [ cfg.package ];
|
environment.systemPackages = [ cfg.package.out ];
|
||||||
|
|
||||||
environment.etc = singleton {
|
environment.etc = singleton {
|
||||||
target = "asound.conf";
|
target = "asound.conf";
|
||||||
@ -195,7 +195,7 @@ in {
|
|||||||
environment.PULSE_RUNTIME_PATH = stateDir;
|
environment.PULSE_RUNTIME_PATH = stateDir;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "notify";
|
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";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -73,11 +73,11 @@ in
|
|||||||
description = "List of directories to be symlinked in <filename>/run/current-system/sw</filename>.";
|
description = "List of directories to be symlinked in <filename>/run/current-system/sw</filename>.";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputsToLink = mkOption {
|
extraOutputsToInstall = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [ ];
|
||||||
example = [ "doc" ];
|
example = [ "doc" "info" "docdev" ];
|
||||||
description = "List of package outputs to be symlinked into <filename>/run/current-system/sw</filename>.";
|
description = "List of additional package outputs to be symlinked into <filename>/run/current-system/sw</filename>.";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -123,9 +123,10 @@ in
|
|||||||
system.path = pkgs.buildEnv {
|
system.path = pkgs.buildEnv {
|
||||||
name = "system-path";
|
name = "system-path";
|
||||||
paths = config.environment.systemPackages;
|
paths = config.environment.systemPackages;
|
||||||
inherit (config.environment) pathsToLink outputsToLink;
|
inherit (config.environment) pathsToLink extraOutputsToInstall;
|
||||||
ignoreCollisions = true;
|
ignoreCollisions = true;
|
||||||
# !!! Hacky, should modularise.
|
# !!! Hacky, should modularise.
|
||||||
|
# outputs TODO: note that the tools will often not be linked by default
|
||||||
postBuild =
|
postBuild =
|
||||||
''
|
''
|
||||||
if [ -x $out/bin/update-mime-database -a -w $out/share/mime ]; then
|
if [ -x $out/bin/update-mime-database -a -w $out/share/mime ]; then
|
||||||
|
@ -78,7 +78,7 @@ let cfg = config.system.autoUpgrade; in
|
|||||||
HOME = "/root";
|
HOME = "/root";
|
||||||
};
|
};
|
||||||
|
|
||||||
path = [ pkgs.gnutar pkgs.xz config.nix.package ];
|
path = [ pkgs.gnutar pkgs.xz.bin config.nix.package ];
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch ${toString cfg.flags}
|
${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch ${toString cfg.flags}
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
# Tools to create / manipulate filesystems.
|
# Tools to create / manipulate filesystems.
|
||||||
pkgs.ntfsprogs # for resizing NTFS partitions
|
pkgs.ntfsprogs # for resizing NTFS partitions
|
||||||
pkgs.dosfstools
|
pkgs.dosfstools
|
||||||
pkgs.xfsprogs
|
pkgs.xfsprogs.bin
|
||||||
pkgs.jfsutils
|
pkgs.jfsutils
|
||||||
pkgs.f2fs-tools
|
pkgs.f2fs-tools
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ with lib;
|
|||||||
|
|
||||||
environment.pathsToLink = [ "/share/man" ];
|
environment.pathsToLink = [ "/share/man" ];
|
||||||
|
|
||||||
environment.outputsToLink = [ "man" ];
|
environment.extraOutputsToInstall = [ "man" ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -89,8 +89,8 @@ in
|
|||||||
nameValuePair "xfs_quota-${name}" {
|
nameValuePair "xfs_quota-${name}" {
|
||||||
description = "Setup xfs_quota for project ${name}";
|
description = "Setup xfs_quota for project ${name}";
|
||||||
script = ''
|
script = ''
|
||||||
${pkgs.xfsprogs}/bin/xfs_quota -x -c 'project -s ${name}' ${opts.fileSystem}
|
${pkgs.xfsprogs.bin}/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 'limit -p ${limitOptions opts} ${name}' ${opts.fileSystem}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
@ -28,9 +28,9 @@ with lib;
|
|||||||
capability setuid,
|
capability setuid,
|
||||||
network inet raw,
|
network inet raw,
|
||||||
|
|
||||||
${pkgs.glibc}/lib/*.so mr,
|
${pkgs.glibc.out}/lib/*.so mr,
|
||||||
${pkgs.libcap}/lib/libcap.so* mr,
|
${pkgs.libcap.out}/lib/libcap.so* mr,
|
||||||
${pkgs.attr}/lib/libattr.so* mr,
|
${pkgs.attr.out}/lib/libattr.so* mr,
|
||||||
|
|
||||||
${pkgs.iputils}/bin/ping mixr,
|
${pkgs.iputils}/bin/ping mixr,
|
||||||
/var/setuid-wrappers/ping.real r,
|
/var/setuid-wrappers/ping.real r,
|
||||||
|
@ -59,9 +59,9 @@ in
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
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.restartTriggers = [ config.system.path ];
|
||||||
systemd.services.polkit.unitConfig.X-StopIfChanged = false;
|
systemd.services.polkit.unitConfig.X-StopIfChanged = false;
|
||||||
@ -79,7 +79,7 @@ in
|
|||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
''; #TODO: validation on compilation (at least against typos)
|
''; #TODO: validation on compilation (at least against typos)
|
||||||
|
|
||||||
services.dbus.packages = [ pkgs.polkit ];
|
services.dbus.packages = [ pkgs.polkit.out ];
|
||||||
|
|
||||||
security.pam.services.polkit-1 = {};
|
security.pam.services.polkit-1 = {};
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ in
|
|||||||
owner = "root";
|
owner = "root";
|
||||||
group = "root";
|
group = "root";
|
||||||
setuid = true;
|
setuid = true;
|
||||||
source = "${pkgs.polkit}/lib/polkit-1/polkit-agent-helper-1";
|
source = "${pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -8,12 +8,12 @@ let
|
|||||||
|
|
||||||
setuidWrapper = pkgs.stdenv.mkDerivation {
|
setuidWrapper = pkgs.stdenv.mkDerivation {
|
||||||
name = "setuid-wrapper";
|
name = "setuid-wrapper";
|
||||||
buildCommand = ''
|
unpackPhase = "true";
|
||||||
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp ${./setuid-wrapper.c} setuid-wrapper.c
|
cp ${./setuid-wrapper.c} setuid-wrapper.c
|
||||||
gcc -Wall -O2 -DWRAPPER_DIR=\"${wrapperDir}\" \
|
gcc -Wall -O2 -DWRAPPER_DIR=\"${wrapperDir}\" \
|
||||||
setuid-wrapper.c -o $out/bin/setuid-wrapper
|
setuid-wrapper.c -o $out/bin/setuid-wrapper
|
||||||
strip -S $out/bin/setuid-wrapper
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -161,11 +161,11 @@ in {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
postStart = ''
|
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
|
sleep 10
|
||||||
done
|
done
|
||||||
while true ; do
|
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' ||
|
if [[ !("$index" =~ 'Please wait while Jenkins is restarting' ||
|
||||||
"$index" =~ 'Please wait while Jenkins is getting ready to work') ]]; then
|
"$index" =~ 'Please wait while Jenkins is getting ready to work') ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -87,7 +87,7 @@ in
|
|||||||
mkdir -p ${cfg.dataDir}
|
mkdir -p ${cfg.dataDir}
|
||||||
chown -R ${cfg.user}:${cfg.group} ${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 =
|
users.extraUsers.openldap =
|
||||||
|
@ -37,7 +37,7 @@ in
|
|||||||
|
|
||||||
services.dbus.packages = [ gnome3.gvfs ];
|
services.dbus.packages = [ gnome3.gvfs ];
|
||||||
|
|
||||||
services.udev.packages = [ pkgs.libmtp ];
|
services.udev.packages = [ pkgs.libmtp.bin ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ let
|
|||||||
run_progs=$(grep -v '^[[:space:]]*#' $out/* | grep 'RUN+="[^/$]' |
|
run_progs=$(grep -v '^[[:space:]]*#' $out/* | grep 'RUN+="[^/$]' |
|
||||||
sed -e 's/.*RUN+="\([^ "]*\)[ "].*/\1/' | uniq)
|
sed -e 's/.*RUN+="\([^ "]*\)[ "].*/\1/' | uniq)
|
||||||
for i in $import_progs $run_progs; do
|
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 "FAIL"
|
||||||
echo "$i is called in udev rules but not installed by udev"
|
echo "$i is called in udev rules but not installed by udev"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -51,7 +51,7 @@ in
|
|||||||
|
|
||||||
systemd.services.upower =
|
systemd.services.upower =
|
||||||
{ description = "Power Management Daemon";
|
{ description = "Power Management Daemon";
|
||||||
path = [ pkgs.glib ]; # needed for gdbus
|
path = [ pkgs.glib.out ]; # needed for gdbus
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ Type = "dbus";
|
{ Type = "dbus";
|
||||||
BusName = "org.freedesktop.UPower";
|
BusName = "org.freedesktop.UPower";
|
||||||
|
@ -65,7 +65,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
postStart = ''
|
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;
|
sleep 1;
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
@ -358,7 +358,7 @@ in
|
|||||||
systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ];
|
systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ];
|
||||||
|
|
||||||
systemd.services.nix-daemon =
|
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 ];
|
++ optionals cfg.distributedBuilds [ pkgs.gzip ];
|
||||||
|
|
||||||
environment = cfg.envVars
|
environment = cfg.envVars
|
||||||
|
@ -97,7 +97,7 @@ in
|
|||||||
|
|
||||||
transcoders = mkOption {
|
transcoders = mkOption {
|
||||||
type = types.listOf types.path;
|
type = types.listOf types.path;
|
||||||
default = [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
|
default = [ "${pkgs.ffmpeg.bin}/bin/ffmpeg" ];
|
||||||
description = ''
|
description = ''
|
||||||
List of paths to transcoder executables that should be accessible
|
List of paths to transcoder executables that should be accessible
|
||||||
from Subsonic. Symlinks will be created to each executable inside
|
from Subsonic. Symlinks will be created to each executable inside
|
||||||
|
@ -38,7 +38,7 @@ in
|
|||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
preStart = "mkdir -p ${cfg.svnBaseDir}";
|
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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ in {
|
|||||||
after = [ "network.target" "docker.service" "influxdb.service" ];
|
after = [ "network.target" "docker.service" "influxdb.service" ];
|
||||||
|
|
||||||
postStart = mkBefore ''
|
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;
|
sleep 1;
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
@ -509,7 +509,7 @@ in {
|
|||||||
};
|
};
|
||||||
in "${aenv}/${pkgs.python.sitePackages}";
|
in "${aenv}/${pkgs.python.sitePackages}";
|
||||||
GRAPHITE_API_CONFIG = graphiteApiConfig;
|
GRAPHITE_API_CONFIG = graphiteApiConfig;
|
||||||
LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
|
LD_LIBRARY_PATH = "${pkgs.cairo.out}/lib";
|
||||||
};
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = ''
|
ExecStart = ''
|
||||||
|
@ -151,7 +151,7 @@ in
|
|||||||
/etc/group r,
|
/etc/group r,
|
||||||
${config.environment.etc."nsswitch.conf".source} r,
|
${config.environment.etc."nsswitch.conf".source} r,
|
||||||
|
|
||||||
${pkgs.glibc}/lib/*.so mr,
|
${pkgs.glibc.out}/lib/*.so mr,
|
||||||
${pkgs.tzdata}/share/zoneinfo/** r,
|
${pkgs.tzdata}/share/zoneinfo/** r,
|
||||||
|
|
||||||
network inet stream,
|
network inet stream,
|
||||||
@ -159,12 +159,12 @@ in
|
|||||||
network inet dgram,
|
network inet dgram,
|
||||||
network inet6 dgram,
|
network inet6 dgram,
|
||||||
|
|
||||||
${pkgs.gcc.cc}/lib/libssp.so.* mr,
|
${pkgs.gcc.cc.lib}/lib/libssp.so.* mr,
|
||||||
${pkgs.libsodium}/lib/libsodium.so.* mr,
|
${pkgs.libsodium.out}/lib/libsodium.so.* mr,
|
||||||
${pkgs.systemd}/lib/libsystemd.so.* mr,
|
${pkgs.systemd}/lib/libsystemd.so.* mr,
|
||||||
${pkgs.xz}/lib/liblzma.so.* mr,
|
${pkgs.xz.out}/lib/liblzma.so.* mr,
|
||||||
${pkgs.libgcrypt}/lib/libgcrypt.so.* mr,
|
${pkgs.libgcrypt.out}/lib/libgcrypt.so.* mr,
|
||||||
${pkgs.libgpgerror}/lib/libgpg-error.so.* mr,
|
${pkgs.libgpgerror.out}/lib/libgpg-error.so.* mr,
|
||||||
${pkgs.libcap}/lib/libcap.so.* mr,
|
${pkgs.libcap}/lib/libcap.so.* mr,
|
||||||
${pkgs.lz4}/lib/liblz4.so.* mr,
|
${pkgs.lz4}/lib/liblz4.so.* mr,
|
||||||
${pkgs.attr}/lib/libattr.so.* mr,
|
${pkgs.attr}/lib/libattr.so.* mr,
|
||||||
|
@ -8,7 +8,7 @@ let
|
|||||||
|
|
||||||
homeDir = "/var/lib/i2pd";
|
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";
|
toYesNo = b: if b then "yes" else "no";
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ in
|
|||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
path = [ config.nix.package pkgs.bzip2 ];
|
path = [ config.nix.package pkgs.bzip2.bin ];
|
||||||
environment.NIX_REMOTE = "daemon";
|
environment.NIX_REMOTE = "daemon";
|
||||||
environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
|
environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
|
||||||
|
|
||||||
|
@ -14,21 +14,21 @@ let
|
|||||||
additionalBackends = pkgs.runCommand "additional-cups-backends" { }
|
additionalBackends = pkgs.runCommand "additional-cups-backends" { }
|
||||||
''
|
''
|
||||||
mkdir -p $out
|
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
|
mkdir -p $out/lib/cups/backend
|
||||||
ln -sv ${pkgs.samba}/bin/smbspool $out/lib/cups/backend/smb
|
ln -sv ${pkgs.samba}/bin/smbspool $out/lib/cups/backend/smb
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Provide support for printing via HTTPS.
|
# 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
|
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
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Here we can enable additional backends, filters, etc. that are not
|
# 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
|
# 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
|
# here and add the additional programs. The ServerBin directive in
|
||||||
# cupsd.conf tells cupsd to use this tree.
|
# cupsd.conf tells cupsd to use this tree.
|
||||||
bindir = pkgs.buildEnv {
|
bindir = pkgs.buildEnv {
|
||||||
|
@ -148,7 +148,7 @@ in {
|
|||||||
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
|
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
|
||||||
'';
|
'';
|
||||||
postStart = mkBefore ''
|
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
|
sleep 1
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
@ -121,7 +121,7 @@ in
|
|||||||
|
|
||||||
security.setuidOwners = singleton
|
security.setuidOwners = singleton
|
||||||
{ program = "dbus-daemon-launch-helper";
|
{ 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";
|
owner = "root";
|
||||||
group = "messagebus";
|
group = "messagebus";
|
||||||
setuid = true;
|
setuid = true;
|
||||||
|
@ -64,14 +64,14 @@ in
|
|||||||
restartTriggers = [ config.environment.etc.hosts.source config.environment.etc."nsswitch.conf".source ];
|
restartTriggers = [ config.environment.etc.hosts.source config.environment.etc."nsswitch.conf".source ];
|
||||||
|
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
{ ExecStart = "@${pkgs.glibc}/sbin/nscd nscd -f ${cfgFile}";
|
{ ExecStart = "@${pkgs.glibc.bin}/sbin/nscd nscd -f ${cfgFile}";
|
||||||
Type = "forking";
|
Type = "forking";
|
||||||
PIDFile = "/run/nscd/nscd.pid";
|
PIDFile = "/run/nscd/nscd.pid";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
ExecReload =
|
ExecReload =
|
||||||
[ "${pkgs.glibc}/sbin/nscd --invalidate passwd"
|
[ "${pkgs.glibc.bin}/sbin/nscd --invalidate passwd"
|
||||||
"${pkgs.glibc}/sbin/nscd --invalidate group"
|
"${pkgs.glibc.bin}/sbin/nscd --invalidate group"
|
||||||
"${pkgs.glibc}/sbin/nscd --invalidate hosts"
|
"${pkgs.glibc.bin}/sbin/nscd --invalidate hosts"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ in
|
|||||||
# its pid. So wait until it's ready.
|
# its pid. So wait until it's ready.
|
||||||
postStart =
|
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
|
sleep 0.2
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
@ -113,21 +113,21 @@ in
|
|||||||
#include <abstractions/base>
|
#include <abstractions/base>
|
||||||
#include <abstractions/nameservice>
|
#include <abstractions/nameservice>
|
||||||
|
|
||||||
${pkgs.glibc}/lib/*.so mr,
|
${pkgs.glibc.out}/lib/*.so mr,
|
||||||
${pkgs.libevent}/lib/libevent*.so* mr,
|
${pkgs.libevent.out}/lib/libevent*.so* mr,
|
||||||
${pkgs.curl}/lib/libcurl*.so* mr,
|
${pkgs.curl.out}/lib/libcurl*.so* mr,
|
||||||
${pkgs.openssl}/lib/libssl*.so* mr,
|
${pkgs.openssl.out}/lib/libssl*.so* mr,
|
||||||
${pkgs.openssl}/lib/libcrypto*.so* mr,
|
${pkgs.openssl.out}/lib/libcrypto*.so* mr,
|
||||||
${pkgs.zlib}/lib/libz*.so* mr,
|
${pkgs.zlib.out}/lib/libz*.so* mr,
|
||||||
${pkgs.libssh2}/lib/libssh2*.so* mr,
|
${pkgs.libssh2.out}/lib/libssh2*.so* mr,
|
||||||
${pkgs.systemd}/lib/libsystemd*.so* mr,
|
${pkgs.systemd}/lib/libsystemd*.so* mr,
|
||||||
${pkgs.xz}/lib/liblzma*.so* mr,
|
${pkgs.xz.out}/lib/liblzma*.so* mr,
|
||||||
${pkgs.libgcrypt}/lib/libgcrypt*.so* mr,
|
${pkgs.libgcrypt.out}/lib/libgcrypt*.so* mr,
|
||||||
${pkgs.libgpgerror}/lib/libgpg-error*.so* mr,
|
${pkgs.libgpgerror.out}/lib/libgpg-error*.so* mr,
|
||||||
${pkgs.libnghttp2}/lib/libnghttp2*.so* mr,
|
${pkgs.libnghttp2.out}/lib/libnghttp2*.so* mr,
|
||||||
${pkgs.c-ares}/lib/libcares*.so* mr,
|
${pkgs.c-ares.out}/lib/libcares*.so* mr,
|
||||||
${pkgs.libcap}/lib/libcap*.so* mr,
|
${pkgs.libcap.out}/lib/libcap*.so* mr,
|
||||||
${pkgs.attr}/lib/libattr*.so* mr,
|
${pkgs.attr.out}/lib/libattr*.so* mr,
|
||||||
${pkgs.lz4}/lib/liblz4*.so* mr,
|
${pkgs.lz4}/lib/liblz4*.so* mr,
|
||||||
|
|
||||||
@{PROC}/sys/kernel/random/uuid r,
|
@{PROC}/sys/kernel/random/uuid r,
|
||||||
|
@ -6,13 +6,13 @@ let
|
|||||||
|
|
||||||
mainCfg = config.services.httpd;
|
mainCfg = config.services.httpd;
|
||||||
|
|
||||||
httpd = mainCfg.package;
|
httpd = mainCfg.package.out;
|
||||||
|
|
||||||
version24 = !versionOlder httpd.version "2.4";
|
version24 = !versionOlder httpd.version "2.4";
|
||||||
|
|
||||||
httpdConf = mainCfg.configFile;
|
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;
|
getPort = cfg: if cfg.port != 0 then cfg.port else if cfg.enableSSL then 443 else 80;
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ let
|
|||||||
|
|
||||||
'version' => '${config.package.version}',
|
'version' => '${config.package.version}',
|
||||||
|
|
||||||
'openssl' => '${pkgs.openssl}/bin/openssl'
|
'openssl' => '${pkgs.openssl.bin}/bin/openssl'
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ in {
|
|||||||
"${pkgs.diffutils}"
|
"${pkgs.diffutils}"
|
||||||
] ++
|
] ++
|
||||||
(if config.mercurial then ["${pkgs.mercurial}"] else []) ++
|
(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 []);
|
(if config.git then ["${pkgs.git}"] else []);
|
||||||
|
|
||||||
startupScript = pkgs.writeScript "activatePhabricator" ''
|
startupScript = pkgs.writeScript "activatePhabricator" ''
|
||||||
|
@ -166,7 +166,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules"
|
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" ];
|
"${gnome3.gvfs}/lib/gio/modules" ];
|
||||||
environment.systemPackages = gnome3.corePackages ++ cfg.sessionPath
|
environment.systemPackages = gnome3.corePackages ++ cfg.sessionPath
|
||||||
++ (removePackagesByName gnome3.optionalPackages config.environment.gnome3.excludePackages);
|
++ (removePackagesByName gnome3.optionalPackages config.environment.gnome3.excludePackages);
|
||||||
|
@ -62,13 +62,13 @@ in
|
|||||||
${config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
|
${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 {
|
security.setuidOwners = singleton {
|
||||||
program = "kcheckpass";
|
program = "kcheckpass";
|
||||||
source = "${kde5.plasma-workspace}/lib/libexec/kcheckpass";
|
source = "${kde5.plasma-workspace.out}/lib/libexec/kcheckpass";
|
||||||
owner = "root";
|
owner = "root";
|
||||||
group = "root";
|
group = "root";
|
||||||
setuid = true;
|
setuid = true;
|
||||||
@ -171,12 +171,12 @@ in
|
|||||||
|
|
||||||
# Enable GTK applications to load SVG icons
|
# Enable GTK applications to load SVG icons
|
||||||
environment.variables = mkIf (lib.hasAttr "breeze-icons" kde5) {
|
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) ];
|
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.
|
# Enable helpful DBus services.
|
||||||
services.udisks2.enable = true;
|
services.udisks2.enable = true;
|
||||||
|
@ -45,7 +45,7 @@ let
|
|||||||
|
|
||||||
${optionalString cfg.startDbusSession ''
|
${optionalString cfg.startDbusSession ''
|
||||||
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
|
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
|
fi
|
||||||
''}
|
''}
|
||||||
|
|
||||||
@ -55,11 +55,11 @@ let
|
|||||||
# Start PulseAudio if enabled.
|
# Start PulseAudio if enabled.
|
||||||
${optionalString (config.hardware.pulseaudio.enable) ''
|
${optionalString (config.hardware.pulseaudio.enable) ''
|
||||||
${optionalString (!config.hardware.pulseaudio.systemWide)
|
${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.
|
# 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
|
# Tell systemd about our $DISPLAY. This is needed by the
|
||||||
@ -275,7 +275,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
services.xserver.displayManager.xserverBin = "${xorg.xorgserver}/bin/X";
|
services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X";
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -24,9 +24,9 @@ let
|
|||||||
# This wrapper ensures that we actually get themes
|
# This wrapper ensures that we actually get themes
|
||||||
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
|
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
|
||||||
$out/greeter \
|
$out/greeter \
|
||||||
--prefix PATH : "${pkgs.glibc}/bin" \
|
--prefix PATH : "${pkgs.glibc.bin}/bin" \
|
||||||
--set GDK_PIXBUF_MODULE_FILE "${pkgs.gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
|
--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}" \
|
--set GTK_PATH "${theme}:${pkgs.gtk3.out}" \
|
||||||
--set GTK_EXE_PREFIX "${theme}" \
|
--set GTK_EXE_PREFIX "${theme}" \
|
||||||
--set GTK_DATA_PREFIX "${theme}" \
|
--set GTK_DATA_PREFIX "${theme}" \
|
||||||
--set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
|
--set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
|
||||||
|
@ -48,7 +48,7 @@ let
|
|||||||
[XDisplay]
|
[XDisplay]
|
||||||
MinimumVT=${toString xcfg.tty}
|
MinimumVT=${toString xcfg.tty}
|
||||||
ServerPath=${xserverWrapper}
|
ServerPath=${xserverWrapper}
|
||||||
XephyrPath=${pkgs.xorg.xorgserver}/bin/Xephyr
|
XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr
|
||||||
SessionCommand=${dmcfg.session.script}
|
SessionCommand=${dmcfg.session.script}
|
||||||
SessionDir=${dmcfg.session.desktops}
|
SessionDir=${dmcfg.session.desktops}
|
||||||
XauthPath=${pkgs.xorg.xauth}/bin/xauth
|
XauthPath=${pkgs.xorg.xauth}/bin/xauth
|
||||||
|
@ -41,7 +41,7 @@ with lib;
|
|||||||
{ description = "Terminal Server";
|
{ description = "Terminal Server";
|
||||||
|
|
||||||
path =
|
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
|
pkgs.nettools pkgs.shadow pkgs.procps pkgs.utillinux pkgs.bash
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ in
|
|||||||
services.xserver.windowManager.session = singleton
|
services.xserver.windowManager.session = singleton
|
||||||
{ name = "metacity";
|
{ name = "metacity";
|
||||||
start = ''
|
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.
|
# !!! Hack: load the schemas for Metacity.
|
||||||
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
|
GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
|
||||||
--makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas # */
|
--makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas # */
|
||||||
|
@ -456,7 +456,7 @@ in
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
[ xorg.xorgserver
|
[ xorg.xorgserver.out
|
||||||
xorg.xrandr
|
xorg.xrandr
|
||||||
xorg.xrdb
|
xorg.xrdb
|
||||||
xorg.setxkbmap
|
xorg.setxkbmap
|
||||||
@ -494,7 +494,7 @@ in
|
|||||||
XKB_BINDIR = "${xorg.xkbcomp}/bin"; # Needed for the Xkb extension.
|
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.
|
XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
|
||||||
LD_LIBRARY_PATH = concatStringsSep ":" (
|
LD_LIBRARY_PATH = concatStringsSep ":" (
|
||||||
[ "${xorg.libX11}/lib" "${xorg.libXext}/lib" ]
|
[ "${xorg.libX11.out}/lib" "${xorg.libXext.out}/lib" ]
|
||||||
++ concatLists (catAttrs "libPath" cfg.drivers));
|
++ concatLists (catAttrs "libPath" cfg.drivers));
|
||||||
} // cfg.displayManager.job.environment;
|
} // cfg.displayManager.job.environment;
|
||||||
|
|
||||||
@ -525,7 +525,7 @@ in
|
|||||||
|
|
||||||
services.xserver.modules =
|
services.xserver.modules =
|
||||||
concatLists (catAttrs "modules" cfg.drivers) ++
|
concatLists (catAttrs "modules" cfg.drivers) ++
|
||||||
[ xorg.xorgserver
|
[ xorg.xorgserver.out
|
||||||
xorg.xf86inputevdev
|
xorg.xf86inputevdev
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -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.coreutils pkgs.gnugrep pkgs.findutils
|
||||||
pkgs.glibc # needed for getent
|
pkgs.glibc # needed for getent
|
||||||
pkgs.shadow
|
pkgs.shadow
|
||||||
|
@ -436,9 +436,9 @@ in
|
|||||||
${optionalString luks.yubikeySupport ''
|
${optionalString luks.yubikeySupport ''
|
||||||
copy_bin_and_libs ${pkgs.ykpers}/bin/ykchalresp
|
copy_bin_and_libs ${pkgs.ykpers}/bin/ykchalresp
|
||||||
copy_bin_and_libs ${pkgs.ykpers}/bin/ykinfo
|
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
|
strip -s pbkdf2-sha512
|
||||||
copy_bin_and_libs pbkdf2-sha512
|
copy_bin_and_libs pbkdf2-sha512
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ let
|
|||||||
${config.boot.initrd.extraUtilsCommands}
|
${config.boot.initrd.extraUtilsCommands}
|
||||||
|
|
||||||
# Copy ld manually since it isn't detected correctly
|
# 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
|
# Copy all of the needed libraries for the binaries
|
||||||
for BIN in $(find $out/{bin,sbin} -type f); do
|
for BIN in $(find $out/{bin,sbin} -type f); do
|
||||||
|
@ -7,11 +7,14 @@ let
|
|||||||
kernel = config.boot.kernelPackages.kernel;
|
kernel = config.boot.kernelPackages.kernel;
|
||||||
activateConfiguration = config.system.activationScripts.script;
|
activateConfiguration = config.system.activationScripts.script;
|
||||||
|
|
||||||
readonlyMountpoint = pkgs.runCommand "readonly-mountpoint" {} ''
|
readonlyMountpoint = pkgs.stdenv.mkDerivation {
|
||||||
mkdir -p $out/bin
|
name = "readonly-mountpoint";
|
||||||
cc -O3 ${./readonly-mountpoint.c} -o $out/bin/readonly-mountpoint
|
unpackPhase = "true";
|
||||||
strip -s $out/bin/readonly-mountpoint
|
installPhase = ''
|
||||||
'';
|
mkdir -p $out/bin
|
||||||
|
cc -O3 ${./readonly-mountpoint.c} -o $out/bin/readonly-mountpoint
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
bootStage2 = pkgs.substituteAll {
|
bootStage2 = pkgs.substituteAll {
|
||||||
src = ./stage-2-init.sh;
|
src = ./stage-2-init.sh;
|
||||||
|
@ -18,9 +18,9 @@
|
|||||||
|
|
||||||
boot.initrd.postDeviceCommands = ''
|
boot.initrd.postDeviceCommands = ''
|
||||||
# Hacky!!! fuse hard-codes the path to mount
|
# Hacky!!! fuse hard-codes the path to mount
|
||||||
mkdir -p /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
|
ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
|
||||||
ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}/bin
|
ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@ in
|
|||||||
{
|
{
|
||||||
config = mkIf (any (fs: fs == "xfs") config.boot.supportedFilesystems) {
|
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.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
|
||||||
|
|
||||||
boot.initrd.extraUtilsCommands = mkIf inInitrd
|
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.
|
# Trick just to set 'sh' after the extraUtils nuke-refs.
|
||||||
|
@ -66,7 +66,7 @@ in
|
|||||||
|
|
||||||
services.xserver.displayManager.sessionCommands =
|
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
|
${kernel.virtualboxGuestAdditions}/bin/VBoxClient-all
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import ./make-test.nix ({ pkgs, ... } : {
|
|||||||
services.cadvisor.storageDriver = "influxdb";
|
services.cadvisor.storageDriver = "influxdb";
|
||||||
services.influxdb.enable = true;
|
services.influxdb.enable = true;
|
||||||
systemd.services.influxdb.postStart = mkAfter ''
|
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"}'
|
-d '{"name": "root"}'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -108,8 +108,8 @@ let
|
|||||||
$machine->waitUntilSucceeds("cat /proc/swaps | grep -q /dev");
|
$machine->waitUntilSucceeds("cat /proc/swaps | grep -q /dev");
|
||||||
|
|
||||||
# Check whether the channel works.
|
# Check whether the channel works.
|
||||||
$machine->succeed("nix-env -iA nixos.coreutils >&2");
|
$machine->succeed("nix-env -iA nixos.procps >&2");
|
||||||
$machine->succeed("type -tP ls | tee /dev/stderr") =~ /.nix-profile/
|
$machine->succeed("type -tP ps | tee /dev/stderr") =~ /.nix-profile/
|
||||||
or die "nix-env failed";
|
or die "nix-env failed";
|
||||||
|
|
||||||
# We need to a writable nix-store on next boot.
|
# We need to a writable nix-store on next boot.
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec{
|
|||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-boost-libdir=${boost.lib}/lib"
|
"--with-boost-libdir=${boost.lib}/lib"
|
||||||
"--with-libcurl-headers=${curl}/include"
|
"--with-libcurl-headers=${curl.dev}/include"
|
||||||
] ++ optionals withGui [ "--with-gui=qt4" ];
|
] ++ optionals withGui [ "--with-gui=qt4" ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
|||||||
# have to do that ourself.
|
# have to do that ourself.
|
||||||
patchPhase = ''
|
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
|
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/
|
patchShebangs ./tools/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "19fr674mw844zmkp1476yigkcnmb6zyn78av64ccdwi3p68i00rf";
|
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 */ ''
|
preConfigure = /* we prefer system-wide libs */ ''
|
||||||
mv lib-src lib-src-rm
|
mv lib-src lib-src-rm
|
||||||
mkdir lib-src
|
mkdir lib-src
|
||||||
|
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
cp -r . "$out/libexec/baudline/"
|
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
|
for prog in "$out"/libexec/baudline/baudline*; do
|
||||||
patchelf --interpreter "$interpreter" "$prog"
|
patchelf --interpreter "$interpreter" "$prog"
|
||||||
ln -sr "$prog" "$out/bin/"
|
ln -sr "$prog" "$out/bin/"
|
||||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
|||||||
postFixup = ''
|
postFixup = ''
|
||||||
for executable in $(cd $out/bin && ls); do
|
for executable in $(cd $out/bin && ls); do
|
||||||
wrapProgram $out/bin/$executable \
|
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
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -8,12 +8,12 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "4773c0099dba767d963fd92143263be338c48702172e8754b9bc5103efe1c56c";
|
sha256 = "4773c0099dba767d963fd92143263be338c48702172e8754b9bc5103efe1c56c";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
buildInputs = [ libogg ];
|
buildInputs = [ libogg ];
|
||||||
|
|
||||||
#doCheck = true; # takes lots of time
|
#doCheck = true; # takes lots of time
|
||||||
|
|
||||||
|
outputs = [ "dev" "out" "bin" "doc" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://xiph.org/flac/;
|
homepage = http://xiph.org/flac/;
|
||||||
description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
|
description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
|
||||||
|
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
patchelf \
|
patchelf \
|
||||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
--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;
|
dontPatchELF = true;
|
||||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild=''
|
preBuild=''
|
||||||
export CPATH=${zlib}/lib
|
export CPATH=${zlib.out}/lib
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [ SDL alsaLib autoconf automake libjack2 perl zlib zziplib ];
|
buildInputs = [ SDL alsaLib autoconf automake libjack2 perl zlib zziplib ];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl, freetype
|
{ fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl, freetype
|
||||||
, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf
|
, 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";
|
assert stdenv.system == "x86_64-linux";
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ let
|
|||||||
nss
|
nss
|
||||||
pango
|
pango
|
||||||
stdenv.cc.cc
|
stdenv.cc.cc
|
||||||
udev
|
libudev
|
||||||
xorg.libX11
|
xorg.libX11
|
||||||
xorg.libXcomposite
|
xorg.libXcomposite
|
||||||
xorg.libXcursor
|
xorg.libXcursor
|
||||||
@ -68,10 +68,10 @@ stdenv.mkDerivation {
|
|||||||
# Work around Spotify referring to a specific minor version of
|
# Work around Spotify referring to a specific minor version of
|
||||||
# OpenSSL.
|
# OpenSSL.
|
||||||
|
|
||||||
ln -s ${openssl}/lib/libssl.so $libdir/libssl.so.1.0.0
|
ln -s ${openssl.out}/lib/libssl.so $libdir/libssl.so.1.0.0
|
||||||
ln -s ${openssl}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
|
ln -s ${openssl.out}/lib/libcrypto.so $libdir/libcrypto.so.1.0.0
|
||||||
ln -s ${nspr}/lib/libnspr4.so $libdir/libnspr4.so
|
ln -s ${nspr.out}/lib/libnspr4.so $libdir/libnspr4.so
|
||||||
ln -s ${nspr}/lib/libplc4.so $libdir/libplc4.so
|
ln -s ${nspr.out}/lib/libplc4.so $libdir/libplc4.so
|
||||||
|
|
||||||
rpath="$out/share/spotify:$libdir"
|
rpath="$out/share/spotify:$libdir"
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
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
|
sed -e "s#PREFIX = /usr/local#PREFIX = $out#" -i Makefile
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
preConfigure = "cd src";
|
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; {
|
meta = with stdenv.lib; {
|
||||||
description = "high quality software synthesizer based on ZynAddSubFX";
|
description = "high quality software synthesizer based on ZynAddSubFX";
|
||||||
|
@ -72,7 +72,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
nativeBuildInputs = [ lndir makeQtWrapper ];
|
nativeBuildInputs = [ lndir makeQtWrapper ];
|
||||||
buildInputs = [ unwrapped ] ++ themes;
|
buildInputs = [ unwrapped ] ++ themes;
|
||||||
inherit themes;
|
themes = map (pkg: pkg.out or pkg) themes;
|
||||||
inherit unwrapped;
|
inherit unwrapped;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@ -81,7 +81,7 @@ stdenv.mkDerivation {
|
|||||||
mkdir -p "$out/share/sddm"
|
mkdir -p "$out/share/sddm"
|
||||||
for pkg in $unwrapped $themes; do
|
for pkg in $unwrapped $themes; do
|
||||||
local sddmDir="$pkg/share/sddm"
|
local sddmDir="$pkg/share/sddm"
|
||||||
if [[ -d "$sddmDir" ]]; then
|
if [ -d "$sddmDir" ]; then
|
||||||
lndir -silent "$sddmDir" "$out/share/sddm"
|
lndir -silent "$sddmDir" "$out/share/sddm"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
|
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
|
||||||
, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs }:
|
, fontconfig, freetype, pam, dbus_libs, makeWrapper }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "slim-1.3.6";
|
name = "slim-1.3.6";
|
||||||
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ cmake pkgconfig libjpeg libpng fontconfig freetype
|
[ 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
|
xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, buildEnv, gtk, glib, gdk_pixbuf, alsaLib, nss, nspr, gconf
|
{ 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
|
let
|
||||||
bracketsEnv = buildEnv {
|
bracketsEnv = buildEnv {
|
||||||
name = "env-brackets";
|
name = "env-brackets";
|
||||||
paths = [
|
paths = [
|
||||||
gtk glib gdk_pixbuf stdenv.cc.cc alsaLib nss nspr gconf cups libgcrypt_1_5
|
gtk glib gdk_pixbuf stdenv.cc.cc alsaLib nss nspr gconf cups libgcrypt_1_5
|
||||||
dbus udev
|
dbus libudev.out
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
|
|||||||
rmdir $out/usr
|
rmdir $out/usr
|
||||||
ln -sf $out/opt/brackets/brackets $out/bin/brackets
|
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)" \
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
--set-rpath "${bracketsEnv}/lib:${bracketsEnv}/lib64" \
|
--set-rpath "${bracketsEnv}/lib:${bracketsEnv}/lib64" \
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
patches = [ ./writable-projects.patch ];
|
patches = [ ./writable-projects.patch ];
|
||||||
preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
|
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" ]
|
configureFlags = [ "--enable-pch=no" ]
|
||||||
++ optional contribPlugins "--with-contrib-plugins";
|
++ optional contribPlugins "--with-contrib-plugins";
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, makeDesktopItem, makeWrapper
|
{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
|
||||||
, freetype, fontconfig, libX11, libXext, libXrender, zlib
|
, freetype, fontconfig, libX11, libXext, libXrender, zlib
|
||||||
, glib, gtk, libXtst, jdk
|
, glib, gtk, libXtst, jdk
|
||||||
, webkitgtk2 ? null # for internal web browser
|
, webkitgtk2 ? null # for internal web browser
|
||||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||||||
substituteInPlace src/ebjs.c --replace \"edbrowse-js\" \"$out/bin/edbrowse-js\"
|
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)";
|
makeFlags = "-C src prefix=$(out)";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
|
@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
|
|||||||
"--with-gif=no" "--with-tiff=no" ];
|
"--with-gif=no" "--with-tiff=no" ];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
|
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
|
||||||
"-I${cairo}/include/cairo";
|
"-I${cairo.dev}/include/cairo";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/share/emacs/site-lisp/
|
mkdir -p $out/share/emacs/site-lisp/
|
||||||
|
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"LDFLAGS=-L${ncurses}/lib"
|
"LDFLAGS=-L${ncurses.out}/lib"
|
||||||
"--with-xml2=yes"
|
"--with-xml2=yes"
|
||||||
"--with-gnutls=yes"
|
"--with-gnutls=yes"
|
||||||
"--with-mac"
|
"--with-mac"
|
||||||
@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
CFLAGS = "-O3";
|
CFLAGS = "-O3";
|
||||||
LDFLAGS = "-O3 -L${ncurses}/lib";
|
LDFLAGS = "-O3 -L${ncurses.out}/lib";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/share/emacs/site-lisp/
|
mkdir -p $out/share/emacs/site-lisp/
|
||||||
|
@ -10,10 +10,11 @@ stdenv.mkDerivation rec {
|
|||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace Makefile \
|
substituteInPlace Makefile \
|
||||||
--replace "/usr/local" "$out" \
|
--replace "/usr/local" "$out" \
|
||||||
--replace "CFLAGS = " "CFLAGS = -I${ncurses}/include " \
|
--replace "CFLAGS = " "CFLAGS = -I${ncurses.dev}/include " \
|
||||||
--replace "LDFLAGS = " "LDFLAGS = -L${ncurses}/lib " \
|
--replace "LDFLAGS = " "LDFLAGS = -L${ncurses.out}/lib " \
|
||||||
--replace "-lcurses" "-lncurses"
|
--replace "-lcurses" "-lncurses"
|
||||||
'';
|
'';
|
||||||
|
buildInputs = [ ncurses ];
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
mkdir -p $out/man/man1
|
mkdir -p $out/man/man1
|
||||||
|
@ -37,7 +37,7 @@ with stdenv; lib.makeOverridable mkDerivation rec {
|
|||||||
truncate --size=$size $fname
|
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
|
if [ "${stdenv.system}" == "x86_64-linux" ]; then
|
||||||
target_size=$(get_file_size bin/fsnotifier64)
|
target_size=$(get_file_size bin/fsnotifier64)
|
||||||
patchelf --set-interpreter "$interpreter" bin/fsnotifier64
|
patchelf --set-interpreter "$interpreter" bin/fsnotifier64
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchurl, buildEnv, zlib, glib, alsaLib, makeDesktopItem
|
{ stdenv, fetchurl, buildEnv, zlib, glib, alsaLib, makeDesktopItem
|
||||||
, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
|
, 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
|
let
|
||||||
@ -45,9 +45,9 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
mv $out/share/LightTable/light $out/bin/light
|
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 \
|
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 "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
|
||||||
--replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
|
--replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
wrapProgram $out/bin/tuxguitar \
|
wrapProgram $out/bin/tuxguitar \
|
||||||
--set JAVA "${jdk}/bin/java" \
|
--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"
|
--prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ in let
|
|||||||
--set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects}
|
--set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects}
|
||||||
|
|
||||||
# Without this, plugin_host crashes, even though it has the rpath
|
# 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 {
|
in stdenv.mkDerivation {
|
||||||
|
@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
|
|||||||
postFixup = ''
|
postFixup = ''
|
||||||
bin="$out/libexec/TeXmacs/bin/texmacs.bin"
|
bin="$out/libexec/TeXmacs/bin/texmacs.bin"
|
||||||
rpath=$(patchelf --print-rpath "$bin")
|
rpath=$(patchelf --print-rpath "$bin")
|
||||||
patchelf --set-rpath "$rpath:${zlib}/lib" "$bin"
|
patchelf --set-rpath "$rpath:${zlib.out}/lib" "$bin"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -70,7 +70,7 @@ let
|
|||||||
|
|
||||||
# Help digiKam find libusb, otherwise gphoto2 support is disabled
|
# Help digiKam find libusb, otherwise gphoto2 support is disabled
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DLIBUSB_LIBRARIES=${libusb1}/lib"
|
"-DLIBUSB_LIBRARIES=${libusb1.out}/lib"
|
||||||
"-DLIBUSB_INCLUDE_DIR=${libusb1}/include/libusb-1.0"
|
"-DLIBUSB_INCLUDE_DIR=${libusb1}/include/libusb-1.0"
|
||||||
"-DENABLE_BALOOSUPPORT=ON"
|
"-DENABLE_BALOOSUPPORT=ON"
|
||||||
"-DENABLE_KDEPIMLIBSSUPPORT=ON"
|
"-DENABLE_KDEPIMLIBSSUPPORT=ON"
|
||||||
|
@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0j5wxpqccnd0hl74z2vwv25n7qnik1n2mcm2jn0c0z7cjn4wsa9q";
|
sha256 = "0j5wxpqccnd0hl74z2vwv25n7qnik1n2mcm2jn0c0z7cjn4wsa9q";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
buildInputs = [ xlibsWrapper imlib2 libjpeg libpng libXinerama curl libexif ];
|
buildInputs = [ xlibsWrapper imlib2 libjpeg libpng libXinerama curl libexif ];
|
||||||
|
|
||||||
@ -17,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg}/bin" \
|
wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg.bin}/bin" \
|
||||||
--add-flags '--theme=feh'
|
--add-flags '--theme=feh'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
# "screenshot" needs this.
|
# "screenshot" needs this.
|
||||||
NIX_LDFLAGS = "-rpath ${xorg.libX11}/lib"
|
NIX_LDFLAGS = "-rpath ${xorg.libX11.out}/lib"
|
||||||
+ stdenv.lib.optionalString stdenv.isDarwin " -lintl";
|
+ stdenv.lib.optionalString stdenv.isDarwin " -lintl";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -13,8 +13,8 @@ stdenv.mkDerivation {
|
|||||||
patches = [ ./cstdio.patch ];
|
patches = [ ./cstdio.patch ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DM_LIBRARY=${stdenv.glibc}/lib/libm.so"
|
"-DM_LIBRARY=${stdenv.glibc.out}/lib/libm.so"
|
||||||
"-DDL_LIBRARY=${stdenv.glibc}/lib/libdl.so"
|
"-DDL_LIBRARY=${stdenv.glibc.out}/lib/libdl.so"
|
||||||
"-DBUILD_UTILS=1"
|
"-DBUILD_UTILS=1"
|
||||||
"-DBUILD_SEG3D=1"
|
"-DBUILD_SEG3D=1"
|
||||||
"-DBUILD_DATAFLOW=0"
|
"-DBUILD_DATAFLOW=0"
|
||||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||||||
preFixup = ''
|
preFixup = ''
|
||||||
wrapProgram "$out/bin/shotwell" \
|
wrapProgram "$out/bin/shotwell" \
|
||||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
--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"
|
--prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
nativeBuildInputs = [ imake makeWrapper ];
|
nativeBuildInputs = [ imake makeWrapper ];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-I${libXpm}/include/X11";
|
NIX_CFLAGS_COMPILE = "-I${libXpm.dev}/include/X11";
|
||||||
|
|
||||||
patches =
|
patches =
|
||||||
let
|
let
|
||||||
|
@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0xf2w3piwz9gfr1xqyrj4k685q5dy53kq3igv663i4f4y4sg9rjl";
|
sha256 = "0xf2w3piwz9gfr1xqyrj4k685q5dy53kq3igv663i4f4y4sg9rjl";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ]; # headers are just two and very small
|
||||||
|
|
||||||
preConfigure = if stdenv.isDarwin then ''
|
preConfigure = if stdenv.isDarwin then ''
|
||||||
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:"`pwd`/build/src
|
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:"`pwd`/build/src
|
||||||
'' else ''
|
'' else ''
|
||||||
|
@ -40,11 +40,11 @@ stdenv.mkDerivation rec {
|
|||||||
installPhase = ''
|
installPhase = ''
|
||||||
export HOME=$TMPDIR/fakehome
|
export HOME=$TMPDIR/fakehome
|
||||||
export POPPLER_INC_DIR=${poppler_utils}/include/poppler
|
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_INC=${imagemagick}/include/ImageMagick
|
||||||
export MAGICK_LIB=${imagemagick}/lib
|
export MAGICK_LIB=${imagemagick}/lib
|
||||||
export FC_INC_DIR=${fontconfig}/include/fontconfig
|
export FC_INC_DIR=${fontconfig.dev}/include/fontconfig
|
||||||
export FC_LIB_DIR=${fontconfig}/lib
|
export FC_LIB_DIR=${fontconfig.lib}/lib
|
||||||
export PODOFO_INC_DIR=${podofo}/include/podofo
|
export PODOFO_INC_DIR=${podofo}/include/podofo
|
||||||
export PODOFO_LIB_DIR=${podofo}/lib
|
export PODOFO_LIB_DIR=${podofo}/lib
|
||||||
export SIP_BIN=${sip_4_16}/bin/sip
|
export SIP_BIN=${sip_4_16}/bin/sip
|
||||||
@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
for a in $out/bin/*; do
|
for a in $out/bin/*; do
|
||||||
wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
|
wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
|
||||||
--prefix PATH : ${poppler_utils}/bin
|
--prefix PATH : ${poppler_utils.out}/bin
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
|
sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
outputs = [ "dev" "out" "bin" ];
|
||||||
|
|
||||||
buildInputs = [ libjpeg libtiff librsvg ] ++ libintlOrEmpty;
|
buildInputs = [ libjpeg libtiff librsvg ] ++ libintlOrEmpty;
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
|
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
|
||||||
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
wrapProgram "$out/bin/dunst" \
|
wrapProgram "$out/bin/dunst" \
|
||||||
--prefix PATH : '${dbus_daemon}/bin'
|
--prefix PATH : '${dbus_daemon.out}/bin'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -17,7 +17,7 @@ buildPerlPackage {
|
|||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp get_iplayer $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 {
|
src = fetchurl {
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ pkgconfig gtk gettext ];
|
buildInputs = [ pkgconfig gtk gettext ];
|
||||||
|
|
||||||
makeFlags = [ "PREFIX=$(out)" ]
|
makeFlags = [ "PREFIX=$(out)" ]
|
||||||
++ optional withBuildColors "TPUT=${ncurses}/bin/tput"
|
++ optional withBuildColors "TPUT=${ncurses.out}/bin/tput"
|
||||||
++ optional (!withBuildColors) "TPUT_AVAILABLE=0"
|
++ optional (!withBuildColors) "TPUT_AVAILABLE=0"
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ stdenv.mkDerivation {
|
|||||||
${lib.optionalString bazaarSupport ''--prefix PATH : ${bazaar}/bin \''}
|
${lib.optionalString bazaarSupport ''--prefix PATH : ${bazaar}/bin \''}
|
||||||
${lib.optionalString cvsSupport ''--prefix PATH : ${cvs}/bin \''}
|
${lib.optionalString cvsSupport ''--prefix PATH : ${cvs}/bin \''}
|
||||||
${lib.optionalString cvsSupport ''--prefix PATH : ${cvsps}/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.optionalString mercurialSupport ''--prefix PATH : ${mercurial}/bin \''}
|
||||||
${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils}
|
${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils}
|
||||||
done
|
done
|
||||||
|
@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
|
|||||||
make install
|
make install
|
||||||
cp -r src/dependencies/xulrunner $out/lib/kiwix
|
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
|
rm $out/bin/kiwix
|
||||||
makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
|
makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
|
||||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation {
|
|||||||
checkTarget = "test-release"; # this would be the target
|
checkTarget = "test-release"; # this would be the target
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
installBin \
|
install -Dt "$out/bin/" \
|
||||||
src/bitmonerod \
|
src/bitmonerod \
|
||||||
src/connectivity_tool \
|
src/connectivity_tool \
|
||||||
src/simpleminer \
|
src/simpleminer \
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
mysql.lib paramiko pcre pexpect pkgconfig pycrypto python sqlite ];
|
mysql.lib paramiko pcre pexpect pkgconfig pycrypto python sqlite ];
|
||||||
|
|
||||||
preConfigure = ''
|
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 = ''
|
postInstall = ''
|
||||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
|
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 = {
|
meta = {
|
||||||
|
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
|
|||||||
--prefix LD_LIBRARY_PATH : ${gnome-sharp}/lib \
|
--prefix LD_LIBRARY_PATH : ${gnome-sharp}/lib \
|
||||||
--prefix LD_LIBRARY_PATH : ${gtk-sharp.gtk}/lib \
|
--prefix LD_LIBRARY_PATH : ${gtk-sharp.gtk}/lib \
|
||||||
--prefix LD_LIBRARY_PATH : ${gnome3.gconf}/lib \
|
--prefix LD_LIBRARY_PATH : ${gnome3.gconf}/lib \
|
||||||
--prefix LD_LIBRARY_PATH : ${poppler}/lib
|
--prefix LD_LIBRARY_PATH : ${poppler.out}/lib
|
||||||
'';
|
'';
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user