Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2018-08-30 12:25:43 +02:00
commit 19c68fe28c
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
198 changed files with 4778 additions and 3619 deletions

View file

@ -1,5 +1,6 @@
<chapter xmlns="http://docbook.org/ns/docbook" <chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="chap-functions"> xml:id="chap-functions">
<title>Functions reference</title> <title>Functions reference</title>
<para> <para>
@ -444,6 +445,7 @@ merge:"diff3"
<filename>./bin/start.sh</filename> -- relative paths are supported. <filename>./bin/start.sh</filename> -- relative paths are supported.
</para> </para>
</section> </section>
<xi:include href="shell.section.xml" />
<section xml:id="sec-pkgs-dockerTools"> <section xml:id="sec-pkgs-dockerTools">
<title>pkgs.dockerTools</title> <title>pkgs.dockerTools</title>
@ -521,7 +523,8 @@ merge:"diff3"
<callout arearefs='ex-dockerTools-buildImage-2'> <callout arearefs='ex-dockerTools-buildImage-2'>
<para> <para>
<varname>tag</varname> specifies the tag of the resulting image. By <varname>tag</varname> specifies the tag of the resulting image. By
default it's <literal>null</literal>, which indicates that the nix output hash will be used as tag. default it's <literal>null</literal>, which indicates that the nix output
hash will be used as tag.
</para> </para>
</callout> </callout>
<callout arearefs='ex-dockerTools-buildImage-3'> <callout arearefs='ex-dockerTools-buildImage-3'>
@ -667,12 +670,12 @@ merge:"diff3"
<para> <para>
<varname>imageDigest</varname> specifies the digest of the image to be <varname>imageDigest</varname> specifies the digest of the image to be
downloaded. Skopeo can be used to get the digest of an image, with its downloaded. Skopeo can be used to get the digest of an image, with its
<varname>inspect</varname> subcommand. Since a given <varname>imageName</varname> <varname>inspect</varname> subcommand. Since a given
may transparently refer to a manifest list of images which support <varname>imageName</varname> may transparently refer to a manifest list
multiple architectures and/or operating systems, supply the `--override-os` of images which support multiple architectures and/or operating systems,
and `--override-arch` arguments to specify exactly which image you supply the `--override-os` and `--override-arch` arguments to specify
want. By default it will match the OS and architecture of the host the exactly which image you want. By default it will match the OS and
command is run on. architecture of the host the command is run on.
<programlisting> <programlisting>
$ nix-shell --packages skopeo jq --command "skopeo --override-os linux --override-arch x86_64 inspect docker://docker.io/nixos/nix:1.11 | jq -r '.Digest'" $ nix-shell --packages skopeo jq --command "skopeo --override-os linux --override-arch x86_64 inspect docker://docker.io/nixos/nix:1.11 | jq -r '.Digest'"
sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b
@ -695,16 +698,16 @@ merge:"diff3"
</para> </para>
</callout> </callout>
<callout arearefs='ex-dockerTools-pullImage-5'> <callout arearefs='ex-dockerTools-pullImage-5'>
<para> <para>
<varname>os</varname>, if specified, is the operating system of the fetched image. <varname>os</varname>, if specified, is the operating system of the
By default it's <literal>linux</literal>. fetched image. By default it's <literal>linux</literal>.
</para> </para>
</callout> </callout>
<callout arearefs='ex-dockerTools-pullImage-6'> <callout arearefs='ex-dockerTools-pullImage-6'>
<para> <para>
<varname>arch</varname>, if specified, is the cpu architecture of the fetched image. <varname>arch</varname>, if specified, is the cpu architecture of the
By default it's <literal>x86_64</literal>. fetched image. By default it's <literal>x86_64</literal>.
</para> </para>
</callout> </callout>
</calloutlist> </calloutlist>
</section> </section>

View file

@ -16,18 +16,17 @@ stdenv.mkDerivation {
} }
</programlisting> </programlisting>
Note that <varname>jdk</varname> is an alias for the OpenJDK (self-built Note that <varname>jdk</varname> is an alias for the OpenJDK (self-built
where available, or pre-built via Zulu). where available, or pre-built via Zulu). Platforms with OpenJDK not (yet) in
Platforms with OpenJDK not (yet) in Nixpkgs (<literal>Aarch32</literal>, Nixpkgs (<literal>Aarch32</literal>, <literal>Aarch64</literal>) point to the
<literal>Aarch64</literal>) point to the (unfree) (unfree) <literal>oraclejdk</literal>.
<literal>oraclejdk</literal>. </para>
</para>
<para> <para>
JAR files that are intended to be used by other packages should be installed JAR files that are intended to be used by other packages should be installed
in <filename>$out/share/java</filename>. JDKs have a stdenv setup hook in <filename>$out/share/java</filename>. JDKs have a stdenv setup hook that
that add any JARs in the <filename>share/java</filename> directories of the add any JARs in the <filename>share/java</filename> directories of the build
build inputs to the <envar>CLASSPATH</envar> environment variable. For inputs to the <envar>CLASSPATH</envar> environment variable. For instance, if
instance, if the package <literal>libfoo</literal> installs a JAR named the package <literal>libfoo</literal> installs a JAR named
<filename>foo.jar</filename> in its <filename>share/java</filename> <filename>foo.jar</filename> in its <filename>share/java</filename>
directory, and another package declares the attribute directory, and another package declares the attribute
<programlisting> <programlisting>
@ -61,18 +60,17 @@ installPhase =
<literal>${jre}/bin/java</literal> instead of <literal>${jre}/bin/java</literal> instead of
<literal>${jdk}/bin/java</literal>, you prevent your package from depending <literal>${jdk}/bin/java</literal>, you prevent your package from depending
on the JDK at runtime. on the JDK at runtime.
</para> </para>
<para> <para>
Note all JDKs passthru <literal>home</literal>, so if your application Note all JDKs passthru <literal>home</literal>, so if your application
requires environment variables like <envar>JAVA_HOME</envar> being set, that requires environment variables like <envar>JAVA_HOME</envar> being set, that
can be done in a generic fashion with the <literal>--set</literal> argument can be done in a generic fashion with the <literal>--set</literal> argument
of <literal>makeWrapper</literal>: of <literal>makeWrapper</literal>:
<programlisting> <programlisting>
--set JAVA_HOME ${jdk.home} --set JAVA_HOME ${jdk.home}
</programlisting> </programlisting>
</para> </para>
<para> <para>
It is possible to use a different Java compiler than <command>javac</command> It is possible to use a different Java compiler than <command>javac</command>

View file

@ -709,40 +709,50 @@ overrides = super: self: rec {
<title>Citrix Receiver</title> <title>Citrix Receiver</title>
<para> <para>
The <link xlink:href="https://www.citrix.com/products/receiver/">Citrix Receiver</link> is a remote The <link xlink:href="https://www.citrix.com/products/receiver/">Citrix
desktop viewer which provides access to Receiver</link> is a remote desktop viewer which provides access to
<link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations. <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link>
installations.
</para> </para>
<section xml:id="sec-citrix-base"> <section xml:id="sec-citrix-base">
<title>Basic usage</title> <title>Basic usage</title>
<para> <para>
The tarball archive needs to be downloaded manually as the licenses agreements of the vendor The tarball archive needs to be downloaded manually as the licenses
need to be accepted first. This is available at the agreements of the vendor need to be accepted first. This is available at
<link xlink:href="https://www.citrix.com/downloads/citrix-receiver/">download page at citrix.com</link>. the
Then run <literal>nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz</literal>. <link xlink:href="https://www.citrix.com/downloads/citrix-receiver/">download
With the archive available in the store the package can be built and installed with Nix. page at citrix.com</link>. Then run <literal>nix-prefetch-url
file://$PWD/linuxx64-$version.tar.gz</literal>. With the archive available
in the store the package can be built and installed with Nix.
</para> </para>
<para> <para>
<emphasis>Note: it's recommended to install <literal>Citrix Receiver</literal> using <emphasis>Note: it's recommended to install <literal>Citrix
<literal>nix-env -i</literal> or globally to ensure that the <literal>.desktop</literal> files Receiver</literal> using <literal>nix-env -i</literal> or globally to
are installed properly into <literal>$XDG_CONFIG_DIRS</literal>. Otherwise it won't ensure that the <literal>.desktop</literal> files are installed properly
be possible to open <literal>.ica</literal> files into <literal>$XDG_CONFIG_DIRS</literal>. Otherwise it won't be possible to
automatically from the browser to start a Citrix connection.</emphasis> open <literal>.ica</literal> files automatically from the browser to start
a Citrix connection.</emphasis>
</para> </para>
</section> </section>
<section xml:id="sec-citrix-custom-certs"> <section xml:id="sec-citrix-custom-certs">
<title>Custom certificates</title> <title>Custom certificates</title>
<para> <para>
The <literal>Citrix Receiver</literal> in <literal>nixpkgs</literal> trusts several certificates The <literal>Citrix Receiver</literal> in <literal>nixpkgs</literal> trusts
<link xlink:href="https://curl.haxx.se/docs/caextract.html">from the Mozilla database</link> by default. several certificates
However several companies using Citrix might require their own corporate certificate. On distros with imperative <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the
Mozilla database</link> by default. However several companies using Citrix
might require their own corporate certificate. On distros with imperative
packaging these certs can be stored easily in packaging these certs can be stored easily in
<link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>, <link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>,
however this directory is a store path in <literal>nixpkgs</literal>. In order to work around this issue the package provides a simple however this directory is a store path in <literal>nixpkgs</literal>. In
mechanism to add custom certificates without rebuilding the entire package using <literal>symlinkJoin</literal>: order to work around this issue the package provides a simple mechanism to
add custom certificates without rebuilding the entire package using
<literal>symlinkJoin</literal>:
<programlisting> <programlisting>
<![CDATA[with import <nixpkgs> { config.allowUnfree = true; }; <![CDATA[with import <nixpkgs> { config.allowUnfree = true; };
let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in

View file

@ -29,7 +29,6 @@
} }
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
On darwin libraries are linked using absolute paths, libraries are On darwin libraries are linked using absolute paths, libraries are
@ -47,19 +46,19 @@
} }
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Even if the libraries are linked using absolute paths and resolved via Even if the libraries are linked using absolute paths and resolved via
their <literal>install_name</literal> correctly, tests can sometimes fail their <literal>install_name</literal> correctly, tests can sometimes fail
to run binaries. This happens because the <varname>checkPhase</varname> to run binaries. This happens because the <varname>checkPhase</varname>
runs before the libraries are installed. runs before the libraries are installed.
</para> </para>
<para> <para>
This can usually be solved by running the tests after the This can usually be solved by running the tests after the
<varname>installPhase</varname> or alternatively by using <varname>installPhase</varname> or alternatively by using
<varname>DYLD_LIBRARY_PATH</varname>. More information about this variable <varname>DYLD_LIBRARY_PATH</varname>. More information about this variable
can be found in the <citerefentry><refentrytitle>dyld</refentrytitle> can be found in the <citerefentry>
<refentrytitle>dyld</refentrytitle>
<manvolnum>1</manvolnum></citerefentry> manpage. <manvolnum>1</manvolnum></citerefentry> manpage.
</para> </para>
<programlisting> <programlisting>
@ -77,7 +76,6 @@
} }
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Some packages assume xcode is available and use <command>xcrun</command> Some packages assume xcode is available and use <command>xcrun</command>

View file

@ -6,18 +6,20 @@
<title>Reviewing contributions</title> <title>Reviewing contributions</title>
<warning> <warning>
<para> <para>
The following section is a draft, and the policy for reviewing is still being The following section is a draft, and the policy for reviewing is still
discussed in issues such as <link being discussed in issues such as
<link
xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166 xlink:href="https://github.com/NixOS/nixpkgs/issues/11166">#11166
</link> and <link </link> and
<link
xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836 xlink:href="https://github.com/NixOS/nixpkgs/issues/20836">#20836
</link>. </link>.
</para> </para>
</warning> </warning>
<para> <para>
The nixpkgs project receives a fairly high number of contributions via The nixpkgs project receives a fairly high number of contributions via GitHub
GitHub pull-requests. Reviewing and approving these is an important task and pull-requests. Reviewing and approving these is an important task and a way
a way to contribute to the project. to contribute to the project.
</para> </para>
<para> <para>
The high change rate of nixpkgs makes any pull request that remains open for The high change rate of nixpkgs makes any pull request that remains open for
@ -40,10 +42,10 @@
to respect every community member and their work. to respect every community member and their work.
</para> </para>
<para> <para>
GitHub provides reactions as a simple and quick way to provide GitHub provides reactions as a simple and quick way to provide feedback to
feedback to pull-requests or any comments. The thumb-down reaction should be pull-requests or any comments. The thumb-down reaction should be used with
used with care and if possible accompanied with some explanation so the care and if possible accompanied with some explanation so the submitter has
submitter has directions to improve their contribution. directions to improve their contribution.
</para> </para>
<para> <para>
Pull-request reviews should include a list of what has been reviewed in a Pull-request reviews should include a list of what has been reviewed in a
@ -117,8 +119,8 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
License can change with version updates, so it should be checked to match License can change with version updates, so it should be checked to
the upstream license. match the upstream license.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
@ -143,8 +145,8 @@
<listitem> <listitem>
<para> <para>
Pull-requests are often targeted to the master or staging branch, and Pull-requests are often targeted to the master or staging branch, and
building the pull-request locally when it is submitted can trigger building the pull-request locally when it is submitted can trigger many
many source builds. source builds.
</para> </para>
<para> <para>
It is possible to rebase the changes on nixos-unstable or It is possible to rebase the changes on nixos-unstable or
@ -605,11 +607,12 @@ policy.
--> -->
<para> <para>
In a case a contributor leaves definitively the Nix community, he In a case a contributor leaves definitively the Nix community, he should
should create an issue or post on <link create an issue or post on
<link
xlink:href="https://discourse.nixos.org">Discourse</link> with xlink:href="https://discourse.nixos.org">Discourse</link> with
references of packages and modules he maintains so the references of packages and modules he maintains so the maintainership can be
maintainership can be taken over by other contributors. taken over by other contributors.
</para> </para>
</section> </section>
</chapter> </chapter>

View file

@ -36,7 +36,7 @@ in rec {
cygwin = filterDoubles predicates.isCygwin; cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin; darwin = filterDoubles predicates.isDarwin;
freebsd = filterDoubles predicates.isFreeBSD; freebsd = filterDoubles predicates.isFreeBSD;
# Should be better, but MinGW is unclear, and HURD is bit-rotted. # Should be better, but MinGW is unclear.
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }); gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; });
illumos = filterDoubles predicates.isSunOS; illumos = filterDoubles predicates.isSunOS;
linux = filterDoubles predicates.isLinux; linux = filterDoubles predicates.isLinux;

View file

@ -20,7 +20,7 @@ in rec {
cygwin = [ patterns.isCygwin ]; cygwin = [ patterns.isCygwin ];
darwin = [ patterns.isDarwin ]; darwin = [ patterns.isDarwin ];
freebsd = [ patterns.isFreeBSD ]; freebsd = [ patterns.isFreeBSD ];
# Should be better, but MinGW is unclear, and HURD is bit-rotted. # Should be better, but MinGW is unclear.
gnu = [ gnu = [
{ kernel = parse.kernels.linux; abi = abis.gnu; } { kernel = parse.kernels.linux; abi = abis.gnu; }
{ kernel = parse.kernels.linux; abi = abis.gnueabi; } { kernel = parse.kernels.linux; abi = abis.gnueabi; }

View file

@ -27,14 +27,13 @@ rec {
isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; }; isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; }; isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
isUnix = [ isBSD isDarwin isLinux isSunOS isHurd isCygwin ]; isUnix = [ isBSD isDarwin isLinux isSunOS isCygwin ];
isMacOS = { kernel = kernels.macos; }; isMacOS = { kernel = kernels.macos; };
isiOS = { kernel = kernels.ios; }; isiOS = { kernel = kernels.ios; };
isLinux = { kernel = kernels.linux; }; isLinux = { kernel = kernels.linux; };
isSunOS = { kernel = kernels.solaris; }; isSunOS = { kernel = kernels.solaris; };
isFreeBSD = { kernel = kernels.freebsd; }; isFreeBSD = { kernel = kernels.freebsd; };
isHurd = { kernel = kernels.hurd; };
isNetBSD = { kernel = kernels.netbsd; }; isNetBSD = { kernel = kernels.netbsd; };
isOpenBSD = { kernel = kernels.openbsd; }; isOpenBSD = { kernel = kernels.openbsd; };
isWindows = { kernel = kernels.windows; }; isWindows = { kernel = kernels.windows; };

View file

@ -172,7 +172,6 @@ rec {
macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; }; macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; };
ios = { execFormat = macho; families = { inherit darwin; }; }; ios = { execFormat = macho; families = { inherit darwin; }; };
freebsd = { execFormat = elf; families = { inherit bsd; }; }; freebsd = { execFormat = elf; families = { inherit bsd; }; };
hurd = { execFormat = elf; families = { }; };
linux = { execFormat = elf; families = { }; }; linux = { execFormat = elf; families = { }; };
netbsd = { execFormat = elf; families = { inherit bsd; }; }; netbsd = { execFormat = elf; families = { inherit bsd; }; };
none = { execFormat = unknown; families = { }; }; none = { execFormat = unknown; families = { }; };
@ -259,8 +258,6 @@ rec {
"2" = # We only do 2-part hacks for things Nix already supports "2" = # We only do 2-part hacks for things Nix already supports
if elemAt l 1 == "cygwin" if elemAt l 1 == "cygwin"
then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; } then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; }
else if elemAt l 1 == "gnu"
then { cpu = elemAt l 0; kernel = "hurd"; abi = "gnu"; }
else { cpu = elemAt l 0; kernel = elemAt l 1; }; else { cpu = elemAt l 0; kernel = elemAt l 1; };
"3" = # Awkwards hacks, beware! "3" = # Awkwards hacks, beware!
if elemAt l 1 == "apple" if elemAt l 1 == "apple"

View file

@ -22,7 +22,7 @@ in with lib.systems.doubles; lib.runTests {
cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]); cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]);
darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]); darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]);
freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]); freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]);
gnu = assertTrue (mseteq gnu (linux /* ++ hurd ++ kfreebsd ++ ... */)); gnu = assertTrue (mseteq gnu (linux /* ++ kfreebsd ++ ... */));
illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]); illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]);
linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]); linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]);
netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]); netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]);

View file

@ -425,6 +425,11 @@
github = "Baughn"; github = "Baughn";
name = "Svein Ove Aas"; name = "Svein Ove Aas";
}; };
bb010g = {
email = "me@bb010g.com";
github = "bb010g";
name = "Brayden Banks";
};
bbarker = { bbarker = {
email = "brandon.barker@gmail.com"; email = "brandon.barker@gmail.com";
github = "bbarker"; github = "bbarker";
@ -827,6 +832,11 @@
github = "couchemar"; github = "couchemar";
name = "Andrey Pavlov"; name = "Andrey Pavlov";
}; };
countingsort = {
email = "niclas@countingsort.com";
github = "countingsort";
name = "Niclas Meyer";
};
cpages = { cpages = {
email = "page@ruiec.cat"; email = "page@ruiec.cat";
github = "cpages"; github = "cpages";
@ -3695,6 +3705,11 @@
github = "siddharthist"; github = "siddharthist";
name = "Langston Barrett"; name = "Langston Barrett";
}; };
siers = {
email = "veinbahs+nixpkgs@gmail.com";
github = "siers";
name = "Raitis Veinbahs";
};
sifmelcara = { sifmelcara = {
email = "ming@culpring.com"; email = "ming@culpring.com";
github = "sifmelcara"; github = "sifmelcara";

View file

@ -470,6 +470,13 @@ inherit (pkgs.nixos {
The module option <option>nix.useSandbox</option> is now defaulted to <literal>true</literal>. The module option <option>nix.useSandbox</option> is now defaulted to <literal>true</literal>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The config activation script of <literal>nixos-rebuild</literal> now
<link xlink:href="https://www.freedesktop.org/software/systemd/man/systemctl.html#Manager%20Lifecycle%20Commands">reloads</link>
all user units for each authenticated user.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View file

@ -80,7 +80,7 @@ in
default = ""; default = "";
description = '' description = ''
Shell script code called during shell initialisation. Shell script code called during shell initialisation.
This code is asumed to be shell-independent, which means you should This code is assumed to be shell-independent, which means you should
stick to pure sh without sh word split. stick to pure sh without sh word split.
''; '';
type = types.lines; type = types.lines;
@ -90,7 +90,7 @@ in
default = ""; default = "";
description = '' description = ''
Shell script code called during login shell initialisation. Shell script code called during login shell initialisation.
This code is asumed to be shell-independent, which means you should This code is assumed to be shell-independent, which means you should
stick to pure sh without sh word split. stick to pure sh without sh word split.
''; '';
type = types.lines; type = types.lines;
@ -100,7 +100,7 @@ in
default = ""; default = "";
description = '' description = ''
Shell script code called during interactive shell initialisation. Shell script code called during interactive shell initialisation.
This code is asumed to be shell-independent, which means you should This code is assumed to be shell-independent, which means you should
stick to pure sh without sh word split. stick to pure sh without sh word split.
''; '';
type = types.lines; type = types.lines;

View file

@ -7,6 +7,63 @@
with lib; with lib;
let let
/**
* Given a list of `options`, concats the result of mapping each options
* to a menuentry for use in grub.
*
* * defaults: {name, image, params, initrd}
* * options: [ option... ]
* * option: {name, params, class}
*/
menuBuilderGrub2 =
defaults: options: lib.concatStrings
(
map
(option: ''
menuentry '${defaults.name} ${
# Name appended to menuentry defaults to params if no specific name given.
option.name or (if option ? params then "(${option.params})" else "")
}' ${if option ? class then " --class ${option.class}" else ""} {
linux ${defaults.image} ${defaults.params} ${
option.params or ""
}
initrd ${defaults.initrd}
}
'')
options
)
;
/**
* Given a `config`, builds the default options.
*/
buildMenuGrub2 = config:
buildMenuAdditionalParamsGrub2 config ""
;
/**
* Given a `config` and params to add to `params`, build a set of default options.
* Use this one when creating a variant (e.g. hidpi)
*/
buildMenuAdditionalParamsGrub2 = config: additional:
let
finalCfg = {
name = "NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}";
params = "init=${config.system.build.toplevel}/init ${additional} ${toString config.boot.kernelParams}";
image = "/boot/bzImage";
initrd = "/boot/initrd";
};
in
menuBuilderGrub2
finalCfg
[
{ class = "installer"; }
{ class = "nomodeset"; params = "nomodeset"; }
{ class = "copytoram"; params = "copytoram"; }
{ class = "debug"; params = "debug"; }
]
;
# Timeout in syslinux is in units of 1/10 of a second. # Timeout in syslinux is in units of 1/10 of a second.
# 0 is used to disable timeouts. # 0 is used to disable timeouts.
syslinuxTimeout = if config.boot.loader.timeout == null then syslinuxTimeout = if config.boot.loader.timeout == null then
@ -36,6 +93,28 @@ let
UI vesamenu.c32 UI vesamenu.c32
MENU TITLE NixOS MENU TITLE NixOS
MENU BACKGROUND /isolinux/background.png MENU BACKGROUND /isolinux/background.png
MENU RESOLUTION 800 600
MENU CLEAR
MENU ROWS 6
MENU CMDLINEROW -4
MENU TIMEOUTROW -3
MENU TABMSGROW -2
MENU HELPMSGROW -1
MENU HELPMSGENDROW -1
MENU MARGIN 0
# FG:AARRGGBB BG:AARRGGBB shadow
MENU COLOR BORDER 30;44 #00000000 #00000000 none
MENU COLOR SCREEN 37;40 #FF000000 #00E2E8FF none
MENU COLOR TABMSG 31;40 #80000000 #00000000 none
MENU COLOR TIMEOUT 1;37;40 #FF000000 #00000000 none
MENU COLOR TIMEOUT_MSG 37;40 #FF000000 #00000000 none
MENU COLOR CMDMARK 1;36;40 #FF000000 #00000000 none
MENU COLOR CMDLINE 37;40 #FF000000 #00000000 none
MENU COLOR TITLE 1;36;44 #00000000 #00000000 none
MENU COLOR UNSEL 37;44 #FF000000 #00000000 none
MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
DEFAULT boot DEFAULT boot
LABEL boot LABEL boot
@ -76,49 +155,167 @@ let
isolinuxCfg = concatStringsSep "\n" isolinuxCfg = concatStringsSep "\n"
([ baseIsolinuxCfg ] ++ optional config.boot.loader.grub.memtest86.enable isolinuxMemtest86Entry); ([ baseIsolinuxCfg ] ++ optional config.boot.loader.grub.memtest86.enable isolinuxMemtest86Entry);
# Setup instructions for rEFInd.
refind =
if targetArch == "x64" then
''
# Adds rEFInd to the ISO.
cp -v ${pkgs.refind}/share/refind/refind_x64.efi $out/EFI/boot/
''
else
"# No refind for ia32"
;
grubMenuCfg = ''
#
# Menu configuration
#
insmod gfxterm
insmod png
set gfxpayload=keep
# Fonts can be loaded?
# (This font is assumed to always be provided as a fallback by NixOS)
if loadfont (hd0)/EFI/boot/unicode.pf2; then
# Use graphical term, it can be either with background image or a theme.
# input is "console", while output is "gfxterm".
# This enables "serial" input and output only when possible.
# Otherwise the failure mode is to not even enable gfxterm.
if test "\$with_serial" == "yes"; then
terminal_output gfxterm serial
terminal_input console serial
else
terminal_output gfxterm
terminal_input console
fi
else
# Sets colors for the non-graphical term.
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
${ # When there is a theme configured, use it, otherwise use the background image.
if (!isNull config.isoImage.grubTheme) then ''
# Sets theme.
set theme=(hd0)/EFI/boot/grub-theme/theme.txt
# Load theme fonts
$(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (hd0)/EFI/boot/grub-theme/%P\n")
'' else ''
if background_image (hd0)/EFI/boot/efi-background.png; then
# Black background means transparent background when there
# is a background image set... This seems undocumented :(
set color_normal=black/black
set color_highlight=white/blue
else
# Falls back again to proper colors.
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
''}
'';
# The EFI boot image. # The EFI boot image.
# Notes about grub:
# * Yes, the grubMenuCfg has to be repeated in all submenus. Otherwise you
# will get white-on-black console-like text on sub-menus. *sigh*
efiDir = pkgs.runCommand "efi-directory" {} '' efiDir = pkgs.runCommand "efi-directory" {} ''
mkdir -p $out/EFI/boot mkdir -p $out/EFI/boot/
cp -v ${pkgs.systemd}/lib/systemd/boot/efi/systemd-boot${targetArch}.efi $out/EFI/boot/boot${targetArch}.efi
mkdir -p $out/loader/entries
cat << EOF > $out/loader/entries/nixos-iso.conf MODULES="fat iso9660 part_gpt part_msdos \
title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} normal boot linux configfile loopback chain halt \
linux /boot/${config.system.boot.loader.kernelFile} efifwsetup efi_gop efi_uga \
initrd /boot/${config.system.boot.loader.initrdFile} ls search search_label search_fs_uuid search_fs_file \
options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} gfxmenu gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
exfat ext2 ntfs btrfs hfsplus udf \
videoinfo png \
echo serial \
"
# Make our own efi program, we can't rely on "grub-install" since it seems to
# probe for devices, even with --skip-fs-probe.
${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/bootx64.efi -p /EFI/boot -O x86_64-efi \
$MODULES
cp ${pkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/
cat <<EOF > $out/EFI/boot/grub.cfg
# If you want to use serial for "terminal_*" commands, you need to set one up:
# Example manual configuration:
# → serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
# This uses the defaults, and makes the serial terminal available.
set with_serial=no
if serial; then set with_serial=yes ;fi
export with_serial
clear
set timeout=10
${grubMenuCfg}
#
# Menu entries
#
${buildMenuGrub2 config}
submenu "HiDPI, Quirks and Accessibility" --class hidpi --class submenu {
${grubMenuCfg}
submenu "Suggests resolution @720p" --class hidpi-720p {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "video=1280x720@60"}
}
submenu "Suggests resolution @1080p" --class hidpi-1080p {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "video=1920x1080@60"}
}
# Some laptop and convertibles have the panel installed in an
# inconvenient way, rotated away from the keyboard.
# Those entries makes it easier to use the installer.
submenu "" {return}
submenu "Rotate framebuffer Clockwise" --class rotate-90cw {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "fbcon=rotate:1"}
}
submenu "Rotate framebuffer Upside-Down" --class rotate-180 {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "fbcon=rotate:2"}
}
submenu "Rotate framebuffer Counter-Clockwise" --class rotate-90ccw {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "fbcon=rotate:3"}
}
# As a proof of concept, mainly. (Not sure it has accessibility merits.)
submenu "" {return}
submenu "Use black on white" --class accessibility-blakconwhite {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "vt.default_red=0xFF,0xBC,0x4F,0xB4,0x56,0xBC,0x4F,0x00,0xA1,0xCF,0x84,0xCA,0x8D,0xB4,0x84,0x68 vt.default_grn=0xFF,0x55,0xBA,0xBA,0x4D,0x4D,0xB3,0x00,0xA0,0x8F,0xB3,0xCA,0x88,0x93,0xA4,0x68 vt.default_blu=0xFF,0x58,0x5F,0x58,0xC5,0xBD,0xC5,0x00,0xA8,0xBB,0xAB,0x97,0xBD,0xC7,0xC5,0x68"}
}
# Serial access is a must!
submenu "" {return}
submenu "Serial console=ttyS0,115200n8" --class serial {
${grubMenuCfg}
${buildMenuAdditionalParamsGrub2 config "console=ttyS0,115200n8"}
}
}
menuentry 'rEFInd' --class refind {
# UUID is hard-coded in the derivation.
search --set=root --no-floppy --fs-uuid 1234-5678
chainloader (\$root)/EFI/boot/refind_x64.efi
}
menuentry 'Firmware Setup' --class settings {
fwsetup
clear
echo ""
echo "If you see this message, your EFI system doesn't support this feature."
echo ""
}
menuentry 'Shutdown' --class shutdown {
halt
}
EOF EOF
# A variant to boot with 'nomodeset' ${refind}
cat << EOF > $out/loader/entries/nixos-iso-nomodeset.conf
title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
version nomodeset
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset
EOF
# A variant to boot with 'copytoram'
cat << EOF > $out/loader/entries/nixos-iso-copytoram.conf
title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel}
version copytoram
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram
EOF
# A variant to boot with verbose logging to the console
cat << EOF > $out/loader/entries/nixos-iso-debug.conf
title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug)
linux /boot/${config.system.boot.loader.kernelFile}
initrd /boot/${config.system.boot.loader.initrdFile}
options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
EOF
cat << EOF > $out/loader/loader.conf
default nixos-iso
timeout ${builtins.toString config.boot.loader.timeout}
EOF
''; '';
efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; } efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; }
@ -234,13 +431,31 @@ in
''; '';
}; };
isoImage.splashImage = mkOption { isoImage.efiSplashImage = mkOption {
default = pkgs.fetchurl { default = pkgs.fetchurl {
url = https://raw.githubusercontent.com/NixOS/nixos-artwork/5729ab16c6a5793c10a2913b5a1b3f59b91c36ee/ideas/grub-splash/grub-nixos-1.png; url = https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png;
sha256 = "43fd8ad5decf6c23c87e9026170a13588c2eba249d9013cb9f888da5e2002217"; sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
}; };
description = '' description = ''
The splash image to use in the bootloader. The splash image to use in the EFI bootloader.
'';
};
isoImage.splashImage = mkOption {
default = pkgs.fetchurl {
url = https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png;
sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
};
description = ''
The splash image to use in the legacy-boot bootloader.
'';
};
isoImage.grubTheme = mkOption {
default = pkgs.nixos-grub2-theme;
type = types.nullOr (types.either types.path types.package);
description = ''
The grub2 theme used for UEFI boot.
''; '';
}; };
@ -358,6 +573,9 @@ in
{ source = "${pkgs.syslinux}/share/syslinux"; { source = "${pkgs.syslinux}/share/syslinux";
target = "/isolinux"; target = "/isolinux";
} }
{ source = config.isoImage.efiSplashImage;
target = "/EFI/boot/efi-background.png";
}
{ source = config.isoImage.splashImage; { source = config.isoImage.splashImage;
target = "/isolinux/background.png"; target = "/isolinux/background.png";
} }
@ -371,13 +589,14 @@ in
{ source = "${efiDir}/EFI"; { source = "${efiDir}/EFI";
target = "/EFI"; target = "/EFI";
} }
{ source = "${efiDir}/loader";
target = "/loader";
}
] ++ optionals config.boot.loader.grub.memtest86.enable [ ] ++ optionals config.boot.loader.grub.memtest86.enable [
{ source = "${pkgs.memtest86plus}/memtest.bin"; { source = "${pkgs.memtest86plus}/memtest.bin";
target = "/boot/memtest.bin"; target = "/boot/memtest.bin";
} }
] ++ optionals (!isNull config.isoImage.grubTheme) [
{ source = config.isoImage.grubTheme;
target = "/EFI/boot/grub-theme";
}
]; ];
boot.loader.timeout = 10; boot.loader.timeout = 10;

View file

@ -87,6 +87,19 @@ in
type = types.bool; type = types.bool;
}; };
enableGlobalCompInit = mkOption {
default = cfg.enableCompletion;
description = ''
Enable execution of compinit call for all interactive zsh shells.
This option can be disabled if the user wants to extend its
<literal>fpath</literal> and a custom <literal>compinit</literal>
call in the local config is required.
'';
type = types.bool;
};
}; };
}; };
@ -159,7 +172,7 @@ in
fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions $p/share/zsh/vendor-completions) fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions $p/share/zsh/vendor-completions)
done done
${optionalString cfg.enableCompletion "autoload -U compinit && compinit"} ${optionalString cfg.enableGlobalCompInit "autoload -U compinit && compinit"}
${cfge.interactiveShellInit} ${cfge.interactiveShellInit}

View file

@ -219,7 +219,7 @@ with lib;
'') '')
# Profile splitting # Profile splitting
(mkRenamedOptionModule [ "virtualization" "growPartition" ] [ "boot" "growPartition" ]) (mkRenamedOptionModule [ "virtualisation" "growPartition" ] [ "boot" "growPartition" ])
# misc/version.nix # misc/version.nix
(mkRenamedOptionModule [ "system" "nixosVersion" ] [ "system" "nixos" "version" ]) (mkRenamedOptionModule [ "system" "nixosVersion" ] [ "system" "nixos" "version" ])

View file

@ -7,6 +7,8 @@ let
cfg = config.services.zabbixAgent; cfg = config.services.zabbixAgent;
zabbix = cfg.package;
stateDir = "/var/run/zabbix"; stateDir = "/var/run/zabbix";
logDir = "/var/log/zabbix"; logDir = "/var/log/zabbix";
@ -44,6 +46,16 @@ in
''; '';
}; };
package = mkOption {
type = types.attrs; # Note: pkgs.zabbixXY isn't a derivation, but an attrset of { server = ...; agent = ...; }.
default = pkgs.zabbix;
defaultText = "pkgs.zabbix";
example = literalExample "pkgs.zabbix34";
description = ''
The Zabbix package to use.
'';
};
server = mkOption { server = mkOption {
default = "127.0.0.1"; default = "127.0.0.1";
description = '' description = ''
@ -87,14 +99,14 @@ in
chown zabbix ${stateDir} ${logDir} chown zabbix ${stateDir} ${logDir}
''; '';
serviceConfig.ExecStart = "@${pkgs.zabbix.agent}/sbin/zabbix_agentd zabbix_agentd --config ${configFile}"; serviceConfig.ExecStart = "@${zabbix.agent}/sbin/zabbix_agentd zabbix_agentd --config ${configFile}";
serviceConfig.Type = "forking"; serviceConfig.Type = "forking";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
serviceConfig.Restart = "always"; serviceConfig.Restart = "always";
serviceConfig.RestartSec = 2; serviceConfig.RestartSec = 2;
}; };
environment.systemPackages = [ pkgs.zabbix.agent ]; environment.systemPackages = [ zabbix.agent ];
}; };

View file

@ -103,8 +103,8 @@ in
chown zabbix ${stateDir} ${logDir} ${libDir} chown zabbix ${stateDir} ${logDir} ${libDir}
if ! test -e "${libDir}/db-created"; then if ! test -e "${libDir}/db-created"; then
${pkgs.postgresql}/bin/createuser --no-superuser --no-createdb --no-createrole zabbix || true ${pkgs.su}/bin/su -s "$SHELL" ${config.services.postgresql.superUser} -c '${pkgs.postgresql}/bin/createuser --no-superuser --no-createdb --no-createrole zabbix' || true
${pkgs.postgresql}/bin/createdb --owner zabbix zabbix || true ${pkgs.su}/bin/su -s "$SHELL" ${config.services.postgresql.superUser} -c '${pkgs.postgresql}/bin/createdb --owner zabbix zabbix' || true
cat ${pkgs.zabbix.server}/share/zabbix/db/schema/postgresql.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix' cat ${pkgs.zabbix.server}/share/zabbix/db/schema/postgresql.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix'
cat ${pkgs.zabbix.server}/share/zabbix/db/data/images_pgsql.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix' cat ${pkgs.zabbix.server}/share/zabbix/db/data/images_pgsql.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix'
cat ${pkgs.zabbix.server}/share/zabbix/db/data/data.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix' cat ${pkgs.zabbix.server}/share/zabbix/db/data/data.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix'

View file

@ -123,7 +123,7 @@ let
# Perform a reverse-path test to refuse spoofers # Perform a reverse-path test to refuse spoofers
# For now, we just drop, as the raw table doesn't have a log-refuse yet # For now, we just drop, as the raw table doesn't have a log-refuse yet
ip46tables -t raw -N nixos-fw-rpfilter 2> /dev/null || true ip46tables -t raw -N nixos-fw-rpfilter 2> /dev/null || true
ip46tables -t raw -A nixos-fw-rpfilter -m rpfilter ${optionalString (cfg.checkReversePath == "loose") "--loose"} -j RETURN ip46tables -t raw -A nixos-fw-rpfilter -m rpfilter --validmark ${optionalString (cfg.checkReversePath == "loose") "--loose"} -j RETURN
# Allows this host to act as a DHCP4 client without first having to use APIPA # Allows this host to act as a DHCP4 client without first having to use APIPA
iptables -t raw -A nixos-fw-rpfilter -p udp --sport 67 --dport 68 -j RETURN iptables -t raw -A nixos-fw-rpfilter -p udp --sport 67 --dport 68 -j RETURN

View file

@ -92,8 +92,18 @@ let
gzip on; gzip on;
gzip_disable "msie6"; gzip_disable "msie6";
gzip_proxied any; gzip_proxied any;
gzip_comp_level 9; gzip_comp_level 5;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_types
application/atom+xml
application/javascript
application/json
application/xml
application/xml+rss
image/svg+xml
text/css
text/javascript
text/plain
text/xml;
gzip_vary on; gzip_vary on;
''} ''}

View file

@ -412,6 +412,18 @@ system("@systemd@/bin/systemctl", "reset-failed");
# Make systemd reload its units. # Make systemd reload its units.
system("@systemd@/bin/systemctl", "daemon-reload") == 0 or $res = 3; system("@systemd@/bin/systemctl", "daemon-reload") == 0 or $res = 3;
# Reload user units
open my $listActiveUsers, '-|', '@systemd@/bin/loginctl', 'list-users', '--no-legend';
while (my $f = <$listActiveUsers>) {
next unless $f =~ /^\s*(?<uid>\d+)\s+(?<user>\S+)/;
my ($uid, $name) = ($+{uid}, $+{user});
print STDERR "reloading user units for $name...\n";
system("su", "-l", $name, "-c", "XDG_RUNTIME_DIR=/run/user/$uid @systemd@/bin/systemctl --user daemon-reload");
}
close $listActiveUsers;
# Set the new tmpfiles # Set the new tmpfiles
print STDERR "setting up tmpfiles\n"; print STDERR "setting up tmpfiles\n";
system("@systemd@/bin/systemd-tmpfiles", "--create", "--remove", "--exclude-prefix=/dev") == 0 or $res = 3; system("@systemd@/bin/systemd-tmpfiles", "--create", "--remove", "--exclude-prefix=/dev") == 0 or $res = 3;

View file

@ -30,10 +30,14 @@ let
(assertValueOneOf "UDPSegmentationOffload" boolValues) (assertValueOneOf "UDPSegmentationOffload" boolValues)
(assertValueOneOf "GenericReceiveOffload" boolValues) (assertValueOneOf "GenericReceiveOffload" boolValues)
(assertValueOneOf "LargeReceiveOffload" boolValues) (assertValueOneOf "LargeReceiveOffload" boolValues)
(assertRange "RxChannels" 1 4294967295) (assertInt "RxChannels")
(assertRange "TxChannels" 1 4294967295) (assertMinimum "RxChannels" 1)
(assertRange "OtherChannels" 1 4294967295) (assertInt "TxChannels")
(assertRange "CombinedChannels" 1 4294967295) (assertMinimum "TxChannels" 1)
(assertInt "OtherChannels")
(assertMinimum "OtherChannels" 1)
(assertInt "CombinedChannels")
(assertMinimum "CombinedChannels" 1)
]; ];
checkNetdev = checkUnitConfig "Netdev" [ checkNetdev = checkUnitConfig "Netdev" [
@ -226,7 +230,8 @@ let
(assertValueOneOf "UseTimezone" boolValues) (assertValueOneOf "UseTimezone" boolValues)
(assertValueOneOf "CriticalConnection" boolValues) (assertValueOneOf "CriticalConnection" boolValues)
(assertValueOneOf "RequestBroadcast" boolValues) (assertValueOneOf "RequestBroadcast" boolValues)
(assertRange "RouteTable" 0 4294967295) (assertInt "RouteTable")
(assertMinimum "RouteTable" 0)
(assertValueOneOf "RapidCommit" boolValues) (assertValueOneOf "RapidCommit" boolValues)
]; ];

View file

@ -159,6 +159,6 @@ exec {logOutFd}>&- {logErrFd}>&-
# Start systemd. # Start systemd.
echo "starting systemd..." echo "starting systemd..."
PATH=/run/current-system/systemd/lib/systemd \ PATH=/run/current-system/systemd/lib/systemd:@fsPackagesPath@ \
LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \ LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \
exec systemd exec systemd

View file

@ -17,6 +17,7 @@ let
pkgs.utillinux pkgs.utillinux
pkgs.openresolv pkgs.openresolv
]; ];
fsPackagesPath = lib.makeBinPath config.system.fsPackages;
postBootCommands = pkgs.writeText "local-cmds" postBootCommands = pkgs.writeText "local-cmds"
'' ''
${config.boot.postBootCommands} ${config.boot.postBootCommands}

View file

@ -73,11 +73,19 @@ in rec {
optional (attr ? ${name} && !(min <= attr.${name} && max >= attr.${name})) optional (attr ? ${name} && !(min <= attr.${name} && max >= attr.${name}))
"Systemd ${group} field `${name}' is outside the range [${toString min},${toString max}]"; "Systemd ${group} field `${name}' is outside the range [${toString min},${toString max}]";
assertMinimum = name: min: group: attr:
optional (attr ? ${name} && attr.${name} < min)
"Systemd ${group} field `${name}' must be greater than or equal to ${toString min}";
assertOnlyFields = fields: group: attr: assertOnlyFields = fields: group: attr:
let badFields = filter (name: ! elem name fields) (attrNames attr); in let badFields = filter (name: ! elem name fields) (attrNames attr); in
optional (badFields != [ ]) optional (badFields != [ ])
"Systemd ${group} has extra fields [${concatStringsSep " " badFields}]."; "Systemd ${group} has extra fields [${concatStringsSep " " badFields}].";
assertInt = name: group: attr:
optional (attr ? ${name} && !isInt attr.${name})
"Systemd ${group} field `${name}' is not an integer";
checkUnitConfig = group: checks: attrs: let checkUnitConfig = group: checks: attrs: let
# We're applied at the top-level type (attrsOf unitOption), so the actual # We're applied at the top-level type (attrsOf unitOption), so the actual
# unit options might contain attributes from mkOverride that we need to # unit options might contain attributes from mkOverride that we need to

View file

@ -102,8 +102,12 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
MaxLevelConsole=debug MaxLevelConsole=debug
''; '';
# Don't clobber the console with duplicate systemd messages. systemd.extraConfig = ''
systemd.extraConfig = "ShowStatus=no"; # Don't clobber the console with duplicate systemd messages.
ShowStatus=no
# Allow very slow start
DefaultTimeoutStartSec=300
'';
boot.consoleLogLevel = 7; boot.consoleLogLevel = 7;

View file

@ -291,6 +291,7 @@ in rec {
tests.firefox = callTest tests/firefox.nix {}; tests.firefox = callTest tests/firefox.nix {};
tests.flatpak = callTest tests/flatpak.nix {}; tests.flatpak = callTest tests/flatpak.nix {};
tests.firewall = callTest tests/firewall.nix {}; tests.firewall = callTest tests/firewall.nix {};
tests.fsck = callTest tests/fsck.nix {};
tests.fwupd = callTest tests/fwupd.nix {}; tests.fwupd = callTest tests/fwupd.nix {};
tests.gdk-pixbuf = callTest tests/gdk-pixbuf.nix {}; tests.gdk-pixbuf = callTest tests/gdk-pixbuf.nix {};
#tests.gitlab = callTest tests/gitlab.nix {}; #tests.gitlab = callTest tests/gitlab.nix {};

29
nixos/tests/fsck.nix Normal file
View file

@ -0,0 +1,29 @@
import ./make-test.nix {
name = "fsck";
machine = { lib, ... }: {
virtualisation.emptyDiskImages = [ 1 ];
fileSystems = lib.mkVMOverride {
"/mnt" = {
device = "/dev/vdb";
fsType = "ext4";
autoFormat = true;
};
};
};
testScript = ''
$machine->waitForUnit('default.target');
subtest "root fs is fsckd", sub {
$machine->succeed('journalctl -b | grep "fsck.ext4.*/dev/vda"');
};
subtest "mnt fs is fsckd", sub {
$machine->succeed('journalctl -b | grep "fsck.*/dev/vdb.*clean"');
$machine->succeed('grep "Requires=systemd-fsck@dev-vdb.service" /run/systemd/generator/mnt.mount');
$machine->succeed('grep "After=systemd-fsck@dev-vdb.service" /run/systemd/generator/mnt.mount');
};
'';
}

View file

@ -16,18 +16,20 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->waitForFile("/home/alice/.Xauthority"); $machine->waitForFile("/home/alice/.Xauthority");
$machine->succeed("xauth merge ~alice/.Xauthority"); $machine->succeed("xauth merge ~alice/.Xauthority");
$machine->waitForWindow(qr/first configuration/); $machine->waitForWindow(qr/first configuration/);
$machine->sleep(1); $machine->sleep(2);
$machine->screenshot("started"); $machine->screenshot("started");
$machine->sendKeys("ret"); $machine->sendKeys("ret");
$machine->sleep(1); $machine->sleep(2);
$machine->sendKeys("alt"); $machine->sendKeys("alt");
$machine->sleep(1); $machine->sleep(2);
$machine->screenshot("configured"); $machine->screenshot("configured");
$machine->sendKeys("ret"); $machine->sendKeys("ret");
# make sure the config file is created before we continue
$machine->waitForFile("/home/alice/.config/i3/config");
$machine->sleep(2); $machine->sleep(2);
$machine->sendKeys("alt-ret"); $machine->sendKeys("alt-ret");
$machine->waitForWindow(qr/machine.*alice/); $machine->waitForWindow(qr/machine.*alice/);
$machine->sleep(1); $machine->sleep(2);
$machine->screenshot("terminal"); $machine->screenshot("terminal");
''; '';
}) })

View file

@ -33,6 +33,7 @@ import ./make-test.nix ({ pkgs, ...} : rec {
simpleDocker = pkgs.dockerTools.buildImage { simpleDocker = pkgs.dockerTools.buildImage {
name = "echo"; name = "echo";
tag = "latest";
contents = [ pkgs.stdenv.shellPackage pkgs.coreutils ]; contents = [ pkgs.stdenv.shellPackage pkgs.coreutils ];
config = { config = {
Env = [ Env = [

View file

@ -1,4 +1,4 @@
{ system ? builtins.currentSystem, debug ? false }: { system ? builtins.currentSystem, debug ? false, enableUnfree ? false }:
with import ../lib/testing.nix { inherit system; }; with import ../lib/testing.nix { inherit system; };
with pkgs.lib; with pkgs.lib;
@ -378,6 +378,26 @@ let
}; };
}; };
unfreeTests = mapAttrs (mkVBoxTest true vboxVMsWithExtpack) {
enable-extension-pack = ''
createVM_testExtensionPack;
vbm("startvm testExtensionPack");
waitForStartup_testExtensionPack;
$machine->screenshot("cli_started");
waitForVMBoot_testExtensionPack;
$machine->screenshot("cli_booted");
$machine->nest("Checking for privilege escalation", sub {
$machine->fail("test -e '/root/VirtualBox VMs'");
$machine->fail("test -e '/root/.config/VirtualBox'");
$machine->succeed("test -e '/home/alice/VirtualBox VMs'");
});
shutdownVM_testExtensionPack;
destroyVM_testExtensionPack;
'';
};
in mapAttrs (mkVBoxTest false vboxVMs) { in mapAttrs (mkVBoxTest false vboxVMs) {
simple-gui = '' simple-gui = ''
createVM_simple; createVM_simple;
@ -484,22 +504,4 @@ in mapAttrs (mkVBoxTest false vboxVMs) {
destroyVM_test1; destroyVM_test1;
destroyVM_test2; destroyVM_test2;
''; '';
} // mapAttrs (mkVBoxTest true vboxVMsWithExtpack) { } // (if enableUnfree then unfreeTests else {})
enable-extension-pack = ''
createVM_testExtensionPack;
vbm("startvm testExtensionPack");
waitForStartup_testExtensionPack;
$machine->screenshot("cli_started");
waitForVMBoot_testExtensionPack;
$machine->screenshot("cli_booted");
$machine->nest("Checking for privilege escalation", sub {
$machine->fail("test -e '/root/VirtualBox VMs'");
$machine->fail("test -e '/root/.config/VirtualBox'");
$machine->succeed("test -e '/home/alice/VirtualBox VMs'");
});
shutdownVM_testExtensionPack;
destroyVM_testExtensionPack;
'';
}

View file

@ -1,4 +1,4 @@
{ callPackage, boost155, boost165, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3 }: { callPackage, boost155, boost165, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3, buildGo110Package }:
rec { rec {
@ -51,10 +51,13 @@ rec {
freicoin = callPackage ./freicoin.nix { boost = boost155; }; freicoin = callPackage ./freicoin.nix { boost = boost155; };
go-ethereum = callPackage ./go-ethereum.nix { go-ethereum = callPackage ./go-ethereum.nix {
buildGoPackage = buildGo110Package;
inherit (darwin) libobjc; inherit (darwin) libobjc;
inherit (darwin.apple_sdk.frameworks) IOKit; inherit (darwin.apple_sdk.frameworks) IOKit;
}; };
go-ethereum-classic = callPackage ./go-ethereum-classic { }; go-ethereum-classic = callPackage ./go-ethereum-classic {
buildGoPackage = buildGo110Package;
};
litecoin = callPackage ./litecoin.nix { withGui = true; }; litecoin = callPackage ./litecoin.nix { withGui = true; };
litecoind = callPackage ./litecoin.nix { withGui = false; }; litecoind = callPackage ./litecoin.nix { withGui = false; };

View file

@ -16,11 +16,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "particl-core-${version}"; name = "particl-core-${version}";
version = "0.16.1.0"; version = "0.16.2.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz"; url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
sha256 = "0rfqywyrl6cgxn3ba91zsa88ph2yf9d1vn706xpyz19pfb6mjfbg"; sha256 = "1d2vvg7avlhsg0rcpd5pbzafnk1w51a2y29xjjkpafi6iqs2l617";
}; };
nativeBuildInputs = [ pkgconfig autoreconfHook ]; nativeBuildInputs = [ pkgconfig autoreconfHook ];

View file

@ -0,0 +1,30 @@
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, libxml2, deadbeef, glib, gtk3 }:
stdenv.mkDerivation rec {
name = "deadbeef-headerbar-gtk3-plugin-${version}";
version = "1.2";
src = fetchFromGitHub {
owner = "saivert";
repo = "ddb_misc_headerbar_GTK3";
rev = "v${version}";
sha256 = "1v1schvnps7ypjqgcbqi74a45w8r2gbhrawz7filym22h1qr9wn0";
};
nativeBuildInputs = [ autoconf automake libtool pkgconfig libxml2 ];
buildInputs = [ deadbeef glib gtk3 ];
# Choose correct installation path
# https://github.com/saivert/ddb_misc_headerbar_GTK3/commit/50ff75f76aa9d40761e352311670a894bfcd5cf6#r30319680
makeFlags = [ "pkglibdir=$(out)/lib/deadbeef" ];
preConfigure = "./autogen.sh";
meta = with stdenv.lib; {
description = "Plug-in that adds GTK 3 header bar to the DeaDBeeF music player";
homepage = https://github.com/saivert/ddb_misc_headerbar_GTK3;
license = licenses.gpl2Plus;
maintainers = [ maintainers.jtojnar ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,35 @@
{ stdenv, fetchFromGitHub
, llvm, qt48Full, libqrencode, libmicrohttpd, libjack2, alsaLib, faust, curl
, bc, coreutils, which
}:
stdenv.mkDerivation rec {
name = "faustlive-${version}";
version = "2017-12-05";
src = fetchFromGitHub {
owner = "grame-cncm";
repo = "faustlive";
rev = "281fcb852dcd94f8c57ade1b2a7a3937542e1b2d";
sha256 = "0sw44yd9928rid9ib0b5mx2x129m7zljrayfm6jz6hrwdc5q3k9a";
};
buildInputs = [
llvm qt48Full libqrencode libmicrohttpd libjack2 alsaLib faust curl
bc coreutils which
];
makeFlags = [ "PREFIX=$(out)" ];
preBuild = "patchShebangs Build/Linux/buildversion";
meta = with stdenv.lib; {
description = "A standalone just-in-time Faust compiler";
longDescription = ''
FaustLive is a standalone just-in-time Faust compiler. It tries to bring
together the convenience of a standalone interpreted language with the
efficiency of a compiled language. It's ideal for fast prototyping.
'';
homepage = http://faust.grame.fr/;
license = licenses.gpl3;
};
}

View file

@ -3,14 +3,14 @@
, python36Packages, gnome3, glib, gst_all_1 }: , python36Packages, gnome3, glib, gst_all_1 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.9.521"; version = "0.9.522";
name = "lollypop-${version}"; name = "lollypop-${version}";
src = fetchgit { src = fetchgit {
url = "https://gitlab.gnome.org/World/lollypop"; url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "1iwv0fj50h0xynv152anisbq29jfbmb9hpm60kaa9a9hdiypskcc"; sha256 = "0f2brwv884cvmxj644jcj9sg5hix3wvnjy2ndg0fh5cxyqz0kwn5";
}; };
nativeBuildInputs = with python36Packages; [ nativeBuildInputs = with python36Packages; [

View file

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec { pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris"; pname = "Mopidy-Iris";
version = "3.24.0"; version = "3.25.1";
src = pythonPackages.fetchPypi { src = pythonPackages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "19aympbkiil68j9jpvk1pgl4hplfs0vpc0d4vmzmpbcslkpirx2g"; sha256 = "148ksv87lw3l3dwncmlq8qzv6xik29axdgaljdcp0g4pd98a7dlk";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "setbfree-${version}"; name = "setbfree-${version}";
version = "0.8.7"; version = "0.8.8";
src = fetchurl { src = fetchurl {
url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz"; url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz";
sha256 = "07s320r67cz0cdjdsbcwn0fw3xs0wz7lgrybqpws2skvkbls228q"; sha256 = "1ldxwds99azingkjh246kz7x3j7307jhr0fls5rjjbcfchpg7v99";
}; };
patchPhase = '' patchPhase = ''

View file

@ -18,9 +18,9 @@ let
sha256Hash = "0sj848pzpsbmnfi2692gg73v6m72hr1pwlk5x8q912w60iypi3pz"; sha256Hash = "0sj848pzpsbmnfi2692gg73v6m72hr1pwlk5x8q912w60iypi3pz";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.3.0.6"; # "Android Studio 3.3 Canary 7" version = "3.3.0.7"; # "Android Studio 3.3 Canary 8"
build = "182.4968538"; build = "182.4978721";
sha256Hash = "159sya24p99pj9q0mj1sbcz2609ackz54x4pj3q1mxhiamsn1y2q"; sha256Hash = "0xa19wrw1a6y7f2jdv8699yqv7g34h3zdw3wc0ql0447afzwg9a9";
}; };
in rec { in rec {
# Old alias # Old alias

View file

@ -73,13 +73,13 @@ let
}; };
in stdenv.lib.mapAttrs common { in stdenv.lib.mapAttrs common {
atom = { atom = {
version = "1.29.0"; version = "1.30.0";
sha256 = "0f0qpn8aw2qlqk8ah71xvk4vcmwsnsf2f3g4hz0rvaqnhb9ri9fz"; sha256 = "1hqizfn9c249l51rlpfgk0h374maqgw6pagswlh4xa278qzb6qzs";
}; };
atom-beta = { atom-beta = {
version = "1.30.0"; version = "1.31.0";
beta = 1; beta = 0;
sha256 = "0ygqj81xlwhzmmci0d0rd2q7xfskxd1k7h6db3zvvjdxjcnyqp1z"; sha256 = "11nlaz89rg6lgzsxp83qdqk4bnn2cij2p5aqjd9a3phd7v70xmy5";
}; };
} }

View file

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "micro-${version}"; name = "micro-${version}";
version = "1.4.0"; version = "1.4.1";
goPackagePath = "github.com/zyedidia/micro"; goPackagePath = "github.com/zyedidia/micro";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "zyedidia"; owner = "zyedidia";
repo = "micro"; repo = "micro";
rev = "v${version}"; rev = "v${version}";
sha256 = "0w1rmh81h28n1jlb05k89i751h498i6p883hrsjr70hvrwq5zjpb"; sha256 = "0m9p6smb5grdazsgr3m1x4rry9ihhlgl9ildhvfp53czrifbx0m5";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -14,8 +14,8 @@ let
nixSyntaxHighlight = fetchFromGitHub { nixSyntaxHighlight = fetchFromGitHub {
owner = "seitz"; owner = "seitz";
repo = "nanonix"; repo = "nanonix";
rev = "17e0de65e1cbba3d6baa82deaefa853b41f5c161"; rev = "7483fd8b79f1f3f2179dbbd46aa400df4320ba10";
sha256 = "1g51h65i31andfs2fbp1v3vih9405iknqn11fzywjxji00kjqv5s"; sha256 = "10pv75kfrgnziz8sr83hdbb0c3klm2fmsdw3i5cpqqf5va1fzb8h";
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {

View file

@ -10,13 +10,13 @@ neovim:
let let
wrapper = { wrapper = {
withPython ? true, extraPythonPackages ? [] withPython ? true, extraPythonPackages ? (_: []) /* the function you would have passed to python.withPackages */
, withPython3 ? true, extraPython3Packages ? [] , withPython3 ? true, extraPython3Packages ? (_: []) /* the function you would have passed to python.withPackages */
, withRuby ? true , withRuby ? true
, withPyGUI ? false , withPyGUI ? false
, vimAlias ? false , vimAlias ? false
, viAlias ? false , viAlias ? false
, configure ? null , configure ? {}
}: }:
let let
@ -28,25 +28,27 @@ let
''; '';
}; };
pluginPythonPackages = if configure == null then [] else builtins.concatLists /* for compatibility with passing extraPythonPackages as a list; added 2018-07-11 */
(map ({ pythonDependencies ? [], ...}: pythonDependencies) compatFun = funOrList: (if builtins.isList funOrList then
(vimUtils.requiredPlugins configure)); (_: builtins.trace "passing a list as extraPythonPackages to the neovim wrapper is deprecated, pass a function as to python.withPackages instead" funOrList)
pythonEnv = pythonPackages.python.buildEnv.override { else funOrList);
extraLibs = ( extraPythonPackagesFun = compatFun extraPythonPackages;
if withPyGUI extraPython3PackagesFun = compatFun extraPython3Packages;
then [ pythonPackages.neovim_gui ]
else [ pythonPackages.neovim ]
) ++ extraPythonPackages ++ pluginPythonPackages;
ignoreCollisions = true;
};
pluginPython3Packages = if configure == null then [] else builtins.concatLists requiredPlugins = vimUtils.requiredPlugins configure;
(map ({ python3Dependencies ? [], ...}: python3Dependencies) getDeps = attrname: map (plugin: plugin.${attrname} or (_:[]));
(vimUtils.requiredPlugins configure));
python3Env = python3Packages.python.buildEnv.override { pluginPythonPackages = getDeps "pythonDependencies" requiredPlugins;
extraLibs = [ python3Packages.neovim ] ++ extraPython3Packages ++ pluginPython3Packages; pythonEnv = pythonPackages.python.withPackages(ps:
ignoreCollisions = true; (if withPyGUI then [ ps.neovim_gui ] else [ ps.neovim ])
}; ++ (extraPythonPackagesFun ps)
++ (concatMap (f: f ps) pluginPythonPackages));
pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins;
python3Env = python3Packages.python.withPackages (ps:
[ ps.neovim ]
++ (extraPython3PackagesFun ps)
++ (concatMap (f: f ps) pluginPython3Packages));
in in
stdenv.mkDerivation { stdenv.mkDerivation {
@ -63,7 +65,6 @@ let
--cmd \"${if withPython then "let g:python_host_prog='$out/bin/nvim-python'" else "let g:loaded_python_provider = 1"}\" \ --cmd \"${if withPython then "let g:python_host_prog='$out/bin/nvim-python'" else "let g:loaded_python_provider = 1"}\" \
--cmd \"${if withPython3 then "let g:python3_host_prog='$out/bin/nvim-python3'" else "let g:loaded_python3_provider = 1"}\" \ --cmd \"${if withPython3 then "let g:python3_host_prog='$out/bin/nvim-python3'" else "let g:loaded_python3_provider = 1"}\" \
--cmd \"${if withRuby then "let g:ruby_host_prog='$out/bin/nvim-ruby'" else "let g:loaded_ruby_provider=1"}\" " \ --cmd \"${if withRuby then "let g:ruby_host_prog='$out/bin/nvim-ruby'" else "let g:loaded_ruby_provider=1"}\" " \
--unset PYTHONPATH \
${optionalString withRuby '' --suffix PATH : ${rubyEnv}/bin --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' } ${optionalString withRuby '' --suffix PATH : ${rubyEnv}/bin --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' }
'' ''
@ -75,9 +76,9 @@ let
--replace 'Name=Neovim' 'Name=WrappedNeovim' --replace 'Name=Neovim' 'Name=WrappedNeovim'
'' ''
+ optionalString withPython '' + optionalString withPython ''
ln -s ${pythonEnv}/bin/python $out/bin/nvim-python makeWrapper ${pythonEnv}/bin/python $out/bin/nvim-python --unset PYTHONPATH
'' + optionalString withPython3 '' '' + optionalString withPython3 ''
ln -s ${python3Env}/bin/python3 $out/bin/nvim-python3 makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
'' + optionalString withRuby '' '' + optionalString withRuby ''
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
'' ''
@ -88,7 +89,7 @@ let
ln -s $out/bin/nvim $out/bin/vim ln -s $out/bin/nvim $out/bin/vim
'' + optionalString viAlias '' '' + optionalString viAlias ''
ln -s $out/bin/nvim $out/bin/vi ln -s $out/bin/nvim $out/bin/vi
'' + optionalString (configure != null) '' '' + optionalString (configure != {}) ''
wrapProgram $out/bin/nvim --add-flags "-u ${vimUtils.vimrcFile configure}" wrapProgram $out/bin/nvim --add-flags "-u ${vimUtils.vimrcFile configure}"
'' ''
; ;

View file

@ -1,29 +0,0 @@
{ stdenv, fetchurl, pkgconfig, vala_0_28, which, autoconf, automake
, libtool, glib, gtk3, gnome3, libwnck3, asciidoc, python3Packages }:
stdenv.mkDerivation rec {
name = "vanubi-${version}";
version = "0.0.16";
src = fetchurl {
url = "https://github.com/vanubi/vanubi/archive/v${version}.tar.gz";
sha256 = "145zxgaky5bcq5bxm4z7h0pvviq7k1nrgnf40q6nax6ik616ybjq";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ vala_0_28 which autoconf automake
libtool glib gtk3 libwnck3 asciidoc
gnome3.gtksourceview gnome3.vte_290 python3Packages.pygments ];
configureScript = "./autogen.sh";
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = http://vanubi.github.io/vanubi;
description = "Programming editor for GTK+ inspired by Emacs";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.lethalman ];
};
}

View file

@ -1,7 +1,7 @@
# TODO tidy up eg The patchelf code is patching gvim even if you don't build it.. # TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
# but I have gvim with python support now :) - Marc # but I have gvim with python support now :) - Marc
args@{ source ? "default", callPackage, fetchurl, stdenv, ncurses, pkgconfig, gettext { source ? "default", callPackage, fetchurl, stdenv, ncurses, pkgconfig, gettext
, writeText, lib, config, glib, gtk2, gtk3, python, perl, tcl, ruby , writeText, config, glib, gtk2, gtk3, lua, python, perl, tcl, ruby
, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu , libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
, libICE , libICE
, vimPlugins , vimPlugins
@ -13,7 +13,7 @@ args@{ source ? "default", callPackage, fetchurl, stdenv, ncurses, pkgconfig, ge
, features ? "huge" # One of tiny, small, normal, big or huge , features ? "huge" # One of tiny, small, normal, big or huge
, wrapPythonDrv ? false , wrapPythonDrv ? false
, guiSupport ? config.vim.gui or "auto" , guiSupport ? config.vim.gui or "gtk3"
, luaSupport ? config.vim.lua or true , luaSupport ? config.vim.lua or true
, perlSupport ? config.vim.perl or false # Perl interpreter , perlSupport ? config.vim.perl or false # Perl interpreter
, pythonSupport ? config.vim.python or true # Python interpreter , pythonSupport ? config.vim.python or true # Python interpreter
@ -24,11 +24,10 @@ args@{ source ? "default", callPackage, fetchurl, stdenv, ncurses, pkgconfig, ge
, cscopeSupport ? config.vim.cscope or true # Enable cscope interface , cscopeSupport ? config.vim.cscope or true # Enable cscope interface
, netbeansSupport ? config.netbeans or true # Enable NetBeans integration support. , netbeansSupport ? config.netbeans or true # Enable NetBeans integration support.
, ximSupport ? config.vim.xim or true # less than 15KB, needed for deadkeys , ximSupport ? config.vim.xim or true # less than 15KB, needed for deadkeys
# By default, compile with darwin support if we're compiling on darwin, but , darwinSupport ? config.vim.darwin or false # Enable Darwin support
# allow this to be disabled by setting config.vim.darwin to false
, darwinSupport ? stdenv.isDarwin && (config.vim.darwin or true) # Enable Darwin support
, ftNixSupport ? config.vim.ftNix or true # Add .nix filetype detection and minimal syntax highlighting support , ftNixSupport ? config.vim.ftNix or true # Add .nix filetype detection and minimal syntax highlighting support
, ... }: with args; , ...
}:
let let
@ -99,8 +98,10 @@ in stdenv.mkDerivation rec {
"--disable-carbon_check" "--disable-carbon_check"
"--disable-gtktest" "--disable-gtktest"
] ]
++ stdenv.lib.optional stdenv.isDarwin
(if darwinSupport then "--enable-darwin" else "--disable-darwin")
++ stdenv.lib.optionals luaSupport [ ++ stdenv.lib.optionals luaSupport [
"--with-lua-prefix=${args.lua}" "--with-lua-prefix=${lua}"
"--enable-luainterp" "--enable-luainterp"
] ]
++ stdenv.lib.optionals pythonSupport [ ++ stdenv.lib.optionals pythonSupport [
@ -128,7 +129,8 @@ in stdenv.mkDerivation rec {
buildInputs = [ ncurses libX11 libXext libSM libXpm libXt libXaw libXau buildInputs = [ ncurses libX11 libXext libSM libXpm libXt libXaw libXau
libXmu glib libICE ] libXmu glib libICE ]
++ (if guiSupport == "gtk3" then [gtk3] else [gtk2]) ++ stdenv.lib.optional (guiSupport == "gtk2") gtk2
++ stdenv.lib.optional (guiSupport == "gtk3") gtk3
++ stdenv.lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc cf-private ] ++ stdenv.lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc cf-private ]
++ stdenv.lib.optional luaSupport lua ++ stdenv.lib.optional luaSupport lua
++ stdenv.lib.optional pythonSupport python ++ stdenv.lib.optional pythonSupport python
@ -142,22 +144,36 @@ in stdenv.mkDerivation rec {
cp ${vimPlugins.vim-nix.src}/syntax/nix.vim runtime/syntax/nix.vim cp ${vimPlugins.vim-nix.src}/syntax/nix.vim runtime/syntax/nix.vim
''; '';
NIX_LDFLAGS = stdenv.lib.optionalString (darwinSupport && stdenv.isDarwin)
"/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation";
postInstall = '' postInstall = ''
'' + stdenv.lib.optionalString stdenv.isLinux '' '' + stdenv.lib.optionalString stdenv.isLinux ''
patchelf --set-rpath \ patchelf --set-rpath \
"$(patchelf --print-rpath $out/bin/vim):${lib.makeLibraryPath buildInputs}" \ "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
"$out"/bin/{vim,gvim} "$out"/bin/{vim,gvim}
ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
'' + stdenv.lib.optionalString wrapPythonDrv '' '' + stdenv.lib.optionalString wrapPythonDrv ''
wrapProgram "$out/bin/vim" --prefix PATH : "${python}/bin" wrapProgram "$out/bin/vim" --prefix PATH : "${python}/bin"
'' + stdenv.lib.optionalString (guiSupport == "gtk3") '' '' + stdenv.lib.optionalString (guiSupport == "gtk3") ''
rm "$out/bin/gvim"
echo -e '#!${stdenv.shell}\n"'"$out/bin/vim"'" -g "$@"' > "$out/bin/gvim" rewrap () {
chmod a+x "$out/bin/gvim" rm -f "$out/bin/$1"
echo -e '#!${stdenv.shell}\n"'"$out/bin/vim"'" '"$2"' "$@"' > "$out/bin/$1"
chmod a+x "$out/bin/$1"
}
rewrap ex -e
rewrap view -R
rewrap gvim -g
rewrap gex -eg
rewrap gview -Rg
rewrap rvim -Z
rewrap rview -RZ
rewrap rgvim -gZ
rewrap rgview -RgZ
rewrap evim -y
rewrap eview -yR
rewrap vimdiff -d
rewrap gvimdiff -gd
''; '';
preInstall = '' preInstall = ''

View file

@ -0,0 +1,33 @@
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, ncurses }:
stdenv.mkDerivation rec {
name = "imgcat-${version}";
version = "2.3.0";
buildTools = [ autoconf automake libtool ncurses ];
preConfigure = ''
${autoconf}/bin/autoconf
sed -i -e "s|-ltermcap|-L ${ncurses}/lib -lncurses|" Makefile
'';
preInstall = ''
makeFlagsArray=(PREFIX="$out");
'';
src = fetchFromGitHub {
owner = "eddieantonio";
repo = "imgcat";
rev = "3d854c72f785dce0eecd9485767a7f972d54890c";
sha256 = "0m83c33rzxvs0w214njql2c7q3fg06wnyijch3l2s88i7frl121f";
};
meta = with stdenv.lib; {
description = "It's like cat, but for images";
homepage = https://github.com/eddieantonio/imgcat;
license = licenses.isc;
maintainers = with maintainers; [ jwiegley ];
platforms = platforms.unix;
};
}

View file

@ -51,18 +51,18 @@ let
]; ];
in buildRustPackage rec { in buildRustPackage rec {
name = "alacritty-unstable-${version}"; name = "alacritty-unstable-${version}";
version = "2018-07-20"; version = "2018-08-30";
# At the moment we cannot handle git dependencies in buildRustPackage. # At the moment we cannot handle git dependencies in buildRustPackage.
# This fork only replaces rust-fontconfig/libfontconfig with a git submodules. # This fork only replaces rust-fontconfig/libfontconfig with a git submodules.
src = fetchgit { src = fetchgit {
url = https://github.com/Mic92/alacritty.git; url = https://github.com/Mic92/alacritty.git;
rev = "rev-${version}"; rev = "rev-${version}";
sha256 = "1vhjmysfra6dsbv35qbvsf76rhkj990lgns0k0gpbcrf47gsvx1n"; sha256 = "0izvg7dwwb763jc6gnmn47i5zrkxvmh3vssn6vzrrmqhd4j3msmf";
fetchSubmodules = true; fetchSubmodules = true;
}; };
cargoSha256 = "0rs2p4sik25ynx6ri2wlg8v6vrdmf10xxnw9f2aqyps9m038i9di"; cargoSha256 = "1ijgkwv9ij4haig1h6n2b9xbhp5vahy9vp1sx72wxaaj9476msjx";
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake

View file

@ -7,7 +7,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dbeaver-ce-${version}"; name = "dbeaver-ce-${version}";
version = "5.1.5"; version = "5.1.6";
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "dbeaver"; name = "dbeaver";
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
sha256 = "17ai2gxnz1wj5m282sib9qhvy3665km2ig1ixxdklmk8apgdl1xr"; sha256 = "1zypadnyhinm6mfv91s7zs2s55bhzgkqhl6ai6x3yqwhvayc02nn";
}; };
installPhase = '' installPhase = ''

View file

@ -1,65 +0,0 @@
{ stdenv, fetchFromGitHub, makeWrapper
, pkgconfig, cmake, libxml2, vala_0_26, intltool, libmx, gnome3, gtk3, gtk-doc
, keybinder3, clutter-gtk, libnotify
, libxkbcommon, xorg, udev
, bashInteractive
}:
with stdenv.lib;
stdenv.mkDerivation {
name = "finalterm-git-2014-11-15";
src = fetchFromGitHub {
owner = "p-e-w";
repo = "finalterm";
rev = "39b078b2a96a5c3c9e74f92b1929f383d220ca8b";
sha256 = "14viln5nabr39lafg1lzf6ydibz1h5d9346drp435ljxc6wsh21i";
};
nativeBuildInputs = [ pkgconfig cmake intltool makeWrapper ];
buildInputs = [
vala_0_26 gtk3 gnome3.gnome-common gnome3.libgee
gtk-doc clutter-gtk libmx keybinder3 libxml2 libnotify
xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence
libxkbcommon
] ++ optionals stdenv.isLinux [ udev ];
preConfigure = ''
substituteInPlace data/org.gnome.finalterm.gschema.xml \
--replace "/bin/bash" "${bashInteractive}/bin/bash"
cmakeFlagsArray=(
-DMINIMAL_FLAGS=ON
)
'';
postInstall = ''
mkdir -p $out/share/gsettings-schemas/$name
mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name/
'';
postFixup = ''
wrapProgram "$out/bin/finalterm" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix GIO_EXTRA_MODULES : "${getLib gnome3.dconf}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "${gnome3.defaultIconTheme}/share:${gnome3.gtk.out}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
'';
meta = {
homepage = http://finalterm.org;
description = "A new breed of terminal emulator";
longDescription = ''
Final Term is a new breed of terminal emulator.
It goes beyond mere emulation and understands what is happening inside the shell it is hosting. This allows it to offer features no other terminal can, including:
- Semantic text menus
- Smart command completion
- GUI terminal controls
'';
license = licenses.gpl3Plus;
maintainers = [ maintainers.cstrahan ];
platforms = platforms.linux;
};
}

View file

@ -1,17 +1,17 @@
{ stdenv, fetchFromGitHub, automake, autoconf, libtool, { stdenv, fetchFromGitHub, automake, autoconf, libtool,
pkgconfig, file, intltool, libxml2, json-glib , sqlite, itstool, pkgconfig, file, intltool, libxml2, json-glib , sqlite, itstool,
librsvg, vala_0_34, gnome3, wrapGAppsHook, gobjectIntrospection librsvg, vala, gnome3, wrapGAppsHook, gobjectIntrospection
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "font-manager-${version}"; name = "font-manager-${version}";
version = "0.7.3"; version = "0.7.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FontManager"; owner = "FontManager";
repo = "master"; repo = "master";
rev = version; rev = version;
sha256 = "0qwi1mn2sc2q5cs28rga8i3cn34ylybs949vjnh97dl2rvlc0x06"; sha256 = "0i65br0bk3r6x8wcl8jhc0v0agl0k6fy5g60ss1bnw4md7ldpgyi";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
automake autoconf libtool automake autoconf libtool
file file
intltool intltool
vala_0_34 itstool
vala
gnome3.yelp-tools gnome3.yelp-tools
wrapGAppsHook wrapGAppsHook
# For setup hook # For setup hook
@ -30,12 +31,9 @@ stdenv.mkDerivation rec {
libxml2 libxml2
json-glib json-glib
sqlite sqlite
itstool
librsvg librsvg
gnome3.gtk gnome3.gtk
gnome3.gucharmap
gnome3.libgee gnome3.libgee
gnome3.file-roller
gnome3.defaultIconTheme gnome3.defaultIconTheme
]; ];
@ -46,7 +44,10 @@ stdenv.mkDerivation rec {
substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file" substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file"
''; '';
configureFlags = [ "--disable-pycompile" ]; configureFlags = [
"--with-file-roller"
"--disable-pycompile"
];
meta = { meta = {
homepage = https://fontmanager.github.io/; homepage = https://fontmanager.github.io/;

View file

@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 763f75b..defa74a 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -212,7 +212,7 @@ CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILES(byteswap.h HAVE_BYTESWAP_H)
CHECK_LIBRARY_EXISTS(gypsy gypsy_control_get_default "" GYPSY_FOUND)
-CHECK_INCLUDE_FILES(libspeechd.h HAVE_LIBSPEECHD)
+CHECK_INCLUDE_FILES(speech-dispatcher/libspeechd.h HAVE_LIBSPEECHD)
CHECK_INCLUDE_FILES(sys/socket.h HAVE_SOCKET)
CHECK_INCLUDE_FILES(sys/shm.h HAVE_SHMEM)
CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)

View file

@ -1,9 +1,21 @@
{ stdenv, fetchFromGitHub, pkgconfig, gtk2, SDL, fontconfig, freetype, imlib2, SDL_image, libGLU_combined, { stdenv, fetchFromGitHub, pkgconfig, gtk2, fontconfig, freetype, imlib2
libXmu, freeglut, pcre, dbus-glib, glib, librsvg, freeimage, libxslt, , SDL_image, libGLU_combined, libXmu, freeglut, pcre, dbus, dbus-glib, glib
qtbase, qtquickcontrols, qtsvg, qtdeclarative, qtlocation, qtsensors, qtmultimedia, qtspeech, espeak, , librsvg, freeimage, libxslt, cairo, gdk_pixbuf, pango
cairo, gdk_pixbuf, pango, atk, patchelf, fetchurl, bzip2, , atk, patchelf, fetchurl, bzip2, python, gettext, quesoglc
python, gettext, quesoglc, gd, postgresql, cmake, shapelib, SDL_ttf, fribidi}: , gd, cmake, shapelib, SDL_ttf, fribidi, makeWrapper
, qtquickcontrols, qtmultimedia, qtspeech, qtsensors
, qtlocation, qtdeclarative, qtsvg
, qtSupport ? false, qtbase #need to fix qt_qpainter
, sdlSupport ? true, SDL
, xkbdSupport ? true, xkbd
, espeakSupport ? true, espeak
, postgresqlSupport ? false, postgresql
, speechdSupport ? false, speechd ? null
}:
assert speechdSupport -> speechd != null;
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "navit-${version}"; name = "navit-${version}";
version = "0.5.1"; version = "0.5.1";
@ -21,34 +33,53 @@ stdenv.mkDerivation rec {
sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d"; sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d";
}; };
#hardeningDisable = [ "format" ]; patches = [ ./CMakeLists.txt.patch ];
NIX_CFLAGS_COMPILE = [ "-I${SDL.dev}/include/SDL" ];
# TODO: fix speech options. NIX_CFLAGS_COMPILE = optional sdlSupport "-I${SDL.dev}/include/SDL"
cmakeFlags = [ "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-Dsupport/espeak=FALSE" "-Dspeech/qt5_espeak=FALSE" ]; ++ optional speechdSupport "-I${speechd}/include/speech-dispatcher";
buildInputs = [ gtk2 SDL fontconfig freetype imlib2 SDL_image libGLU_combined freeimage libxslt # we choose only cmdline and speech-dispatcher speech options.
libXmu freeglut python gettext quesoglc gd postgresql qtbase SDL_ttf fribidi pcre qtquickcontrols # espeak builtins is made for non-cmdline OS as winCE
espeak qtmultimedia qtspeech qtsensors qtlocation qtdeclarative qtsvg dbus-glib librsvg shapelib glib cmakeFlags = [
cairo gdk_pixbuf pango atk ]; "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
"-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE"
];
nativeBuildInputs = [ pkgconfig cmake patchelf bzip2 ]; buildInputs = [
gtk2 fontconfig freetype imlib2 libGLU_combined freeimage
libxslt libXmu freeglut python gettext quesoglc gd
fribidi pcre dbus dbus-glib librsvg shapelib glib
cairo gdk_pixbuf pango atk
] ++ optionals sdlSupport [ SDL SDL_ttf SDL_image ]
++ optional postgresqlSupport postgresql
++ optional speechdSupport speechd
++ optionals qtSupport [
qtquickcontrols qtmultimedia qtspeech qtsensors
qtbase qtlocation qtdeclarative qtsvg
];
nativeBuildInputs = [ makeWrapper pkgconfig cmake patchelf bzip2 ];
# we dont want blank screen by defaut # we dont want blank screen by defaut
postInstall = '' postInstall = ''
# emulate DSAMPLE_MAP # emulate DSAMPLE_MAP
mkdir -p $out/share/navit/maps/maps mkdir -p $out/share/navit/maps/
bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin" bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin"
''; '';
# TODO: fix upstream? # TODO: fix upstream?
postFixup = '' postFixup = ''
for lib in $(find "$out/lib/navit/" -iname "*.so" ); do for lib in $(find "$out/lib/navit/" -iname "*.so" ); do
patchelf --set-rpath ${stdenv.lib.makeLibraryPath buildInputs} $lib patchelf --set-rpath ${makeLibraryPath buildInputs} $lib
done done
wrapProgram $out/bin/navit \
--prefix PATH : ${makeBinPath (
optional xkbdSupport xkbd
++ optional espeakSupport espeak
++ optional speechdSupport speechd ) }
''; '';
meta = with stdenv.lib; { meta = {
homepage = http://www.navit-project.org; homepage = http://www.navit-project.org;
description = "Car navigation system with routing engine using OSM maps"; description = "Car navigation system with routing engine using OSM maps";
license = licenses.gpl2; license = licenses.gpl2;

View file

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "urlscan"; pname = "urlscan";
version = "0.8.9"; version = "0.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "firecat53"; owner = "firecat53";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "18wvfayib79lylv3g9ay3f85qanhrljvnfarwl9snfzklj4gkf2v"; sha256 = "0vad1g234r9agvkdsry9xb6hmn6lg4mygfcy0mg68gibmrg7h1ji";
}; };
propagatedBuildInputs = [ python3Packages.urwid ]; propagatedBuildInputs = [ python3Packages.urwid ];

View file

@ -40,5 +40,6 @@ buildGoPackage rec {
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ orivej ]; maintainers = with maintainers; [ orivej ];
platforms = platforms.linux; platforms = platforms.linux;
broken = true;
}; };
} }

View file

@ -1,92 +0,0 @@
{ stdenv, lib, fetchurl, dpkg, gnome2, atk, cairo, gdk_pixbuf, glib, freetype,
fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr,
libXcomposite, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss,
nspr, alsaLib, cups, expat, udev
}:
let
rpath = lib.makeLibraryPath [
alsaLib
atk
cairo
cups
dbus
expat
fontconfig
freetype
gdk_pixbuf
glib
gnome2.GConf
gnome2.gtk
gnome2.pango
libX11
libXScrnSaver
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
nspr
nss
stdenv.cc.cc
udev
xorg.libxcb
];
in
stdenv.mkDerivation rec {
name = "signal-desktop-${version}";
version = "1.1.0-beta.5";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
sha256 = "1kllym2iazp9i5afrh0vmsqqlh5b8i6f929p5yhl8bl4zd17zwpx";
}
else
throw "Signal for Desktop is not currently supported on ${stdenv.system}";
phases = [ "unpackPhase" "installPhase" ];
nativeBuildInputs = [ dpkg ];
unpackPhase = "dpkg-deb -x $src .";
installPhase = ''
mkdir -p $out
cp -R opt $out
cp -R usr/share $out/share
chmod -R g-w $out
# Patch signal
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}:$out/opt/Signal Beta" \
"$out/opt/Signal Beta/signal-desktop-beta"
# Symlink to bin
mkdir -p $out/bin
ln -s "$out/opt/Signal Beta/signal-desktop-beta" $out/bin/signal-desktop-beta
# Fix the desktop link
substituteInPlace $out/share/applications/signal-desktop-beta.desktop \
--replace "/opt/Signal Beta/signal-desktop-beta" $out/bin/signal-desktop-beta
'';
meta = {
description = "Signal Private Messenger for the Desktop (Beta version)";
homepage = https://signal.org/;
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ ixmatus benley ];
platforms = [
"x86_64-linux"
];
# Marked as broken on 2018-04-17. Reason: The most recent version is
# 1.8.0-beta.1, while this is still 1.1.0-beta.5 (2017-12-09). The stable
# package (signal-desktop) should be used instead (currently at version
# 1.7.1, i.e. up-to-date).
broken = true;
};
}

View file

@ -4,8 +4,8 @@ let
mkTelegram = args: qt5.callPackage (import ./generic.nix args) { }; mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
stableVersion = { stableVersion = {
stable = true; stable = true;
version = "1.3.10"; version = "1.3.14";
sha256Hash = "0i1lzks8pf627658w6p7dz87d6cl4g98031qm166npkc40f89bpr"; sha256Hash = "107m9iqw78b691pcq65s3m3zhamn8slh0wiyipwbbp0w13rqna3v";
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk # svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
archPatchesRevision = "359861"; archPatchesRevision = "359861";
archPatchesHash = "15xybfs9k6dww747if8z6m9sh7anvqi76zsx2gxyna2j1z36i0r0"; archPatchesHash = "15xybfs9k6dww747if8z6m9sh7anvqi76zsx2gxyna2j1z36i0r0";
@ -14,7 +14,5 @@ in {
stable = mkTelegram stableVersion; stable = mkTelegram stableVersion;
preview = mkTelegram (stableVersion // { preview = mkTelegram (stableVersion // {
stable = false; stable = false;
version = "1.3.12";
sha256Hash = "00z4ljs4fvbk7sf8wv1v50kln26gv8q12x6q41ai9gfzkvq5f69a";
}); });
} }

View file

@ -1,12 +1,12 @@
{ stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }: { stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "weechat-matrix-bridge-2018-01-10"; name = "weechat-matrix-bridge-2018-05-29";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "torhve"; owner = "torhve";
repo = "weechat-matrix-protocol-script"; repo = "weechat-matrix-protocol-script";
rev = "a8e4ce04665c09ee7f24d6b319cd85cfb56dfbd7"; rev = "ace3fefc0e35a627f8a528032df2e3111e41eb1b";
sha256 = "0822xcxvwanwm8qbzqhn3f1m6hhxs29pyf8lnv6v29bl8136vcq3"; sha256 = "1snf8vn5n9wzrnqnvdrcli4199s5p114jbjlgrj5c27i53173wqw";
}; };
patches = [ patches = [

View file

@ -3,7 +3,6 @@
, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager , libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
, openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk24x-gtk2 , openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk24x-gtk2
, glib-networking, gsettings-desktop-schemas, libSM, libytnef , glib-networking, gsettings-desktop-schemas, libSM, libytnef
# Build options # Build options
# TODO: A flag to build the manual. # TODO: A flag to build the manual.
# TODO: Plugins that complain about their missing dependencies, even when # TODO: Plugins that complain about their missing dependencies, even when
@ -32,11 +31,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "claws-mail-${version}"; name = "claws-mail-${version}";
version = "3.16.0"; version = "3.17.1";
src = fetchurl { src = fetchurl {
url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz"; url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
sha256 = "1awpr3s7n8bq8p3w10a4j6lg5bizjxyiqp4rqzc2j8cn7lyi64n2"; sha256 = "1wknxbwyzm5xjh3cqmddcxmvp1rkp301qga5n5rgfi7vcd0myyvm";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View file

@ -2,7 +2,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mblaze-${version}"; name = "mblaze-${version}";
version = "0.3.2"; version = "0.4";
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv ]; buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
owner = "chneukirchen"; owner = "chneukirchen";
repo = "mblaze"; repo = "mblaze";
rev = "v${version}"; rev = "v${version}";
sha256 = "0sgzcf7lpgdix7x4p6wp1jjv9h62rrkca6325c7a9j8r0dbg1fdg"; sha256 = "15ac213a17mxni3bqvzxhiln65s4almrlmv72bbcgi7cymb303rp";
}; };
makeFlags = "PREFIX=$(out)"; makeFlags = "PREFIX=$(out)";

View file

@ -3,10 +3,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = pname + "-" + version; name = pname + "-" + version;
pname = "cb2bib"; pname = "cb2bib";
version = "1.9.7"; version = "1.9.8";
src = fetchurl { src = fetchurl {
url = "https://www.molspaces.com/dl/progs/${name}.tar.gz"; url = "https://www.molspaces.com/dl/progs/${name}.tar.gz";
sha256 = "0gr8vmlz1ikw0jiwwac2ays20z26cdv3bjdx9m1nc450hl6m5s7s"; sha256 = "0fpa0znlabk0nrzgj4c0l6qbg8l16lp9d7lvb9ijv1y0ih9igf0f";
}; };
buildInputs = [ qtbase qtwebkit qtx11extras lzo libX11 ]; buildInputs = [ qtbase qtwebkit qtx11extras lzo libX11 ];
nativeBuildInputs = [ qmake ]; nativeBuildInputs = [ qmake ];

View file

@ -1,14 +1,14 @@
{ stdenv, fetchurl, cmake, blas, liblapack, gfortran, gmm, fltk, libjpeg { stdenv, fetchurl, cmake, blas, liblapack, gfortran, gmm, fltk, libjpeg
, zlib, libGLU_combined, libGLU, xorg }: , zlib, libGLU_combined, libGLU, xorg }:
let version = "3.0.6"; in let version = "4.0.0"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "gmsh-${version}"; name = "gmsh-${version}";
src = fetchurl { src = fetchurl {
url = "http://gmsh.info/src/gmsh-${version}-source.tgz"; url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
sha256 = "0ywqhr0zmdhn8dvi6l8z1vkfycyv67fdrz6b95mb39np832bq04p"; sha256 = "0pqm0ippj0j07919hld3f3rgq0p1x4j32fxb2m1nyp226zx8l37v";
}; };
# The original CMakeLists tries to use some version of the Lapack lib # The original CMakeLists tries to use some version of the Lapack lib

View file

@ -1,86 +0,0 @@
{ stdenv, fetchurl, luaPackages, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf
, xorg, libstartup_notification, libxdg_basedir, libpthreadstubs
, xcb-util-cursor, makeWrapper, pango, gobjectIntrospection, unclutter
, compton, procps, iproute, coreutils, curl, alsaUtils, findutils, xterm
, which, dbus, nettools, git, asciidoc, doxygen
, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
}:
let
version = "3.5.9";
in with luaPackages;
stdenv.mkDerivation rec {
name = "awesome-${version}";
src = fetchurl {
url = "http://awesome.naquadah.org/download/awesome-${version}.tar.xz";
sha256 = "0kynair1ykr74b39a4gcm2y24viial64337cf26nhlc7azjbby67";
};
meta = with stdenv.lib; {
description = "Highly configurable, dynamic window manager for X";
homepage = http://awesome.naquadah.org/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.linux;
};
nativeBuildInputs = [
asciidoc
cmake
doxygen
imagemagick
makeWrapper
pkgconfig
xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs
];
buildInputs = [
cairo
dbus
gdk_pixbuf
gobjectIntrospection
git
lgi
libpthreadstubs
libstartup_notification
libxdg_basedir
lua
nettools
pango
xcb-util-cursor
xorg.libXau
xorg.libXdmcp
xorg.libxcb
xorg.libxshmfence
xorg.xcbutil
xorg.xcbutilimage
xorg.xcbutilkeysyms
xorg.xcbutilrenderutil
xorg.xcbutilwm
];
#cmakeFlags = "-DGENERATE_MANPAGES=ON";
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";
postInstall = ''
wrapProgram $out/bin/awesome \
--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 : "$LD_LIBRARY_PATH" \
--prefix PATH : "${stdenv.lib.makeBinPath [ compton unclutter procps iproute coreutils curl alsaUtils findutils xterm ]}"
wrapProgram $out/bin/awesome-client \
--prefix PATH : "${which}/bin"
'';
passthru = {
inherit lua;
};
}

View file

@ -3,59 +3,77 @@
, dbus, libconfig, libdrm, libGL, pcre, libX11, libXcomposite, libXdamage , dbus, libconfig, libdrm, libGL, pcre, libX11, libXcomposite, libXdamage
, libXinerama, libXrandr, libXrender, libXext, xwininfo }: , libXinerama, libXrandr, libXrender, libXext, xwininfo }:
stdenv.mkDerivation rec { let
name = "compton-0.1_beta2.5"; common = source: stdenv.mkDerivation (source // rec {
name = "${source.pname}-${source.version}";
src = fetchFromGitHub { buildInputs = [
owner = "chjj"; dbus libX11 libXcomposite libXdamage libXrender libXrandr libXext
repo = "compton"; libXinerama libdrm pcre libxml2 libxslt libconfig libGL
rev = "b7f43ee67a1d2d08239a2eb67b7f50fe51a592a8"; ];
sha256 = "1p7ayzvm3c63q42na5frznq3rlr1lby2pdgbvzm1zl07wagqss18";
};
buildInputs = [ nativeBuildInputs = [
libX11 pkgconfig
libXcomposite asciidoc
libXdamage docbook_xml_dtd_45
libXrender docbook_xsl
libXrandr makeWrapper
libXext ];
libXinerama
libdrm
pcre
libconfig
dbus
libGL
];
nativeBuildInputs = [ installFlags = [ "PREFIX=$(out)" ];
pkgconfig
asciidoc
libxml2
docbook_xml_dtd_45
docbook_xsl
libxslt
makeWrapper
];
installFlags = [ "PREFIX=$(out)" ];
postInstall = '' postInstall = ''
wrapProgram $out/bin/compton-trans \ wrapProgram $out/bin/compton-trans \
--prefix PATH : ${lib.makeBinPath [ xwininfo ]} --prefix PATH : ${lib.makeBinPath [ xwininfo ]}
'';
meta = with stdenv.lib; {
homepage = https://github.com/chjj/compton/;
description = "A fork of XCompMgr, a sample compositing manager for X servers";
longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
extensions. It enables basic eye-candy effects. This fork adds
additional features, such as additional effects, and a fork at a
well-defined and proper place.
''; '';
license = licenses.mit;
platforms = platforms.linux; meta = with lib; {
description = "A fork of XCompMgr, a sample compositing manager for X servers";
longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
extensions. It enables basic eye-candy effects. This fork adds
additional features, such as additional effects, and a fork at a
well-defined and proper place.
'';
license = licenses.mit;
maintainers = with maintainers; [ ertes enzime twey ];
platforms = platforms.linux;
};
});
stableSource = {
pname = "compton";
version = "0.1_beta2.5";
src = fetchFromGitHub {
owner = "chjj";
repo = "compton";
rev = "b7f43ee67a1d2d08239a2eb67b7f50fe51a592a8";
sha256 = "1p7ayzvm3c63q42na5frznq3rlr1lby2pdgbvzm1zl07wagqss18";
};
meta = {
homepage = https://github.com/chjj/compton/;
};
}; };
gitSource = {
pname = "compton-git";
version = "2018-08-14";
src = fetchFromGitHub {
owner = "yshui";
repo = "compton";
rev = "cac8094ce12cd40706fb48f9ab35354d9ee7c48f";
sha256 = "0qif3nx8vszlr06bixasna13pzfaikp86xax9miwnba50517y7v5";
};
meta = {
homepage = https://github.com/yshui/compton/;
};
};
in {
compton = common stableSource;
compton-git = common gitSource;
} }

View file

@ -1,60 +0,0 @@
{ stdenv, fetchFromGitHub, asciidoc, dbus, docbook_xml_dtd_45,
docbook_xsl, libconfig, libdrm, libxml2, libxslt, libGLU_combined, pcre,
pkgconfig, libXcomposite, libXdamage, libXext, libXfixes, libXinerama,
libXrandr, libXrender, xwininfo }:
stdenv.mkDerivation rec {
name = "compton-git-${version}";
version = "2018-05-21";
src = fetchFromGitHub {
owner = "yshui";
repo = "compton";
rev = "9b24550814b7c69065f90039b0a5d0a2281b9f81";
sha256 = "09nn0q9lgv59chfxljips0n8vnwwxi1yz6hmcsiggsl3zvpabpxl";
};
nativeBuildInputs = [
asciidoc
docbook_xml_dtd_45
docbook_xsl
pkgconfig
];
buildInputs = [
dbus
libXcomposite
libXdamage
libXext
libXfixes
libXinerama
libXrandr
libXrender
libconfig
libdrm
libxml2
libxslt
libGLU_combined
pcre
];
propagatedBuildInputs = [ xwininfo ];
installFlags = "PREFIX=$(out)";
meta = with stdenv.lib; {
description =
"A fork of XCompMgr, a sample compositing manager for X servers (git version)";
homepage = https://github.com/yshui/compton/;
license = licenses.mit;
longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
extensions. It enables basic eye-candy effects. This fork adds
additional features, such as additional effects, and a fork at a
well-defined and proper place.
'';
maintainers = [ maintainers.ertes maintainers.twey ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,37 @@
{ stdenv, fetchgit, libX11, libXinerama, libXft, patches ? [], conf ? null }:
let
name = "dwm-git-20180602";
in
stdenv.mkDerivation {
inherit name;
src = fetchgit {
url = "git://git.suckless.org/dwm";
rev = "b69c870a3076d78ab595ed1cd4b41cf6b03b2610";
sha256 = "10i079h79l4gdch1qy2vrrb2xxxkgkjmgphr5r9a75jbbagwvz0k";
};
buildInputs = [ libX11 libXinerama libXft ];
prePatch = ''sed -i "s@/usr/local@$out@" config.mk'';
# Allow users set their own list of patches
inherit patches;
# Allow users to override the entire config file AFTER appying the patches
postPatch = stdenv.lib.optionalString (conf!=null) ''
echo -n '${conf}' > config.def.h
'';
buildPhase = "make";
meta = with stdenv.lib; {
homepage = https://suckless.org/;
description = "Dynamic window manager for X, development version";
license = licenses.mit;
maintainers = with maintainers; [xeji];
platforms = platforms.unix;
};
}

View file

@ -1,18 +1,19 @@
{ stdenv, fetchurl, pkgconfig, glib, libX11, libXext, libXinerama }: { stdenv, fetchurl, pkgconfig, glib, libX11, libXext, libXinerama }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "herbstluftwm-0.7.0"; name = "herbstluftwm-0.7.1";
src = fetchurl { src = fetchurl {
url = "https://herbstluftwm.org/tarballs/${name}.tar.gz"; url = "https://herbstluftwm.org/tarballs/${name}.tar.gz";
sha256 = "09xfs213vg1dpird61wik5bqb9yf8kh63ssy18ihf54inwqgqbvy"; sha256 = "0d47lbjxxqd8d96hby47bdhyn9mlih7h28712j1vckiz05ig63nw";
}; };
patchPhase = '' patchPhase = ''
substituteInPlace config.mk \ substituteInPlace config.mk \
--replace "/usr/local" "$out" \ --replace "/usr/local" "$out" \
--replace "/etc" "$out/etc" \ --replace "/etc" "$out/etc" \
--replace "/zsh/functions/Completion/X" "/zsh/site-functions" --replace "/zsh/functions/Completion/X" "/zsh/site-functions" \
--replace "/usr/share" "\$(PREFIX)/share"
''; '';
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View file

@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
cripples Emacs and other quality pieces of software. cripples Emacs and other quality pieces of software.
''; '';
platforms = platforms.linux; platforms = platforms.unix;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ maintainers.AndersonTorres ];
}; };
} }

View file

@ -1,36 +1,48 @@
{stdenv}: {stdenv, lib}:
{ name { name
, type ? "Application" , type ? "Application"
, exec , exec
, icon ? "" , icon ? null
, comment ? "" , comment ? null
, terminal ? "false" , terminal ? "false"
, desktopName , desktopName
, genericName , genericName ? null
, mimeType ? "" , mimeType ? null
, categories ? "Application;Other;" , categories ? "Application;Other;"
, startupNotify ? null , startupNotify ? null
, extraEntries ? "" , extraEntries ? null
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "${name}.desktop"; name = "${name}.desktop";
buildCommand = ''
buildCommand = let
optionalEntriesList = [{k="Icon"; v=icon;}
{k="Comment"; v=comment;}
{k="GenericName"; v=genericName;}
{k="MimeType"; v=mimeType;}
{k="StartupNotify"; v=startupNotify;}];
valueNotNull = {k, v}: v != null;
entriesToKeep = builtins.filter valueNotNull optionalEntriesList;
mkEntry = {k, v}: k + "=" + v;
optionalEntriesString = lib.concatMapStringsSep "\n" mkEntry entriesToKeep;
in
''
mkdir -p $out/share/applications mkdir -p $out/share/applications
cat > $out/share/applications/${name}.desktop <<EOF cat > $out/share/applications/${name}.desktop <<EOF
[Desktop Entry] [Desktop Entry]
Type=${type} Type=${type}
Exec=${exec} Exec=${exec}
Icon=${icon}
Comment=${comment}
Terminal=${terminal} Terminal=${terminal}
Name=${desktopName} Name=${desktopName}
GenericName=${genericName}
MimeType=${mimeType}
Categories=${categories} Categories=${categories}
${optionalEntriesString}
${if extraEntries == null then ''EOF'' else ''
${extraEntries} ${extraEntries}
${if startupNotify == null then ''EOF'' else ''
StartupNotify=${startupNotify}
EOF''} EOF''}
''; '';
} }

View file

@ -1,7 +1,7 @@
{ stdenv, fetchurl, pkgconfig, python3, udev, systemd }: { stdenv, fetchurl, pkgconfig, python3, udev, systemd }:
let let
name = "media-player-info-23"; name = "media-player-info-24";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
@ -9,7 +9,7 @@ in
src = fetchurl { src = fetchurl {
url = "https://www.freedesktop.org/software/media-player-info/${name}.tar.gz"; url = "https://www.freedesktop.org/software/media-player-info/${name}.tar.gz";
sha256 = "1jy8xh4xjgjc4wj4qrw6sx2j3606zsj4bgiczhzf3xlpnkh6vax9"; sha256 = "0d0i7av8v369hzvlynwlrbickv1brlzsmiky80lrjgjh1gdldkz6";
}; };
buildInputs = [ udev systemd ]; buildInputs = [ udev systemd ];

View file

@ -0,0 +1,5 @@
{fetchzip}:
fetchzip {
url = https://github.com/NixOS/nixos-artwork/releases/download/bootloader-18.09-pre/grub2-installer.tar.bz2;
sha256 = "0rhh061m1hpgadm7587inw3fxfacnd53xjc53w3vzghlck56djq5";
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala_0_32, libgee, wrapGAppsHook, itstool, gobjectIntrospection { stdenv, fetchurl, intltool, pkgconfig, gtk3, vala_0_34, libgee, wrapGAppsHook, itstool, gobjectIntrospection
, gnome-online-accounts, evolution-data-server, gnome3, glib, libsoup, libgdata, sqlite, xdg_utils }: , gnome-online-accounts, evolution-data-server, gnome3, glib, libsoup, libgdata, sqlite, xdg_utils }:
let let
@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj"; sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj";
}; };
nativeBuildInputs = [ intltool itstool vala_0_32 pkgconfig wrapGAppsHook gobjectIntrospection ]; nativeBuildInputs = [ intltool itstool vala_0_34 pkgconfig wrapGAppsHook gobjectIntrospection ];
buildInputs = [ glib gtk3 libgee libsoup libgdata gnome-online-accounts evolution-data-server sqlite xdg_utils gnome3.gsettings-desktop-schemas ]; buildInputs = [ glib gtk3 libgee libsoup libgdata gnome-online-accounts evolution-data-server sqlite xdg_utils gnome3.gsettings-desktop-schemas ];
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "eom-${version}"; name = "eom-${version}";
version = "1.21.0"; version = "1.21.2";
src = fetchurl { src = fetchurl {
url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz"; url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
sha256 = "165n314hxapq8glzlv7vs5x44z13wjmpysl5p7q3ckrsxy5pczww"; sha256 = "08idw219mw0v0nkaphy0jvxi67gqm4nzbbnhnwjksxbma2gmpvss";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -42,7 +42,7 @@ let
buildMix = callPackage ./build-mix.nix {}; buildMix = callPackage ./build-mix.nix {};
# BEAM-based languages. # BEAM-based languages.
elixir = elixir_1_6; elixir = elixir_1_7;
elixir_1_7 = lib.callElixir ../interpreters/elixir/1.7.nix { elixir_1_7 = lib.callElixir ../interpreters/elixir/1.7.nix {
inherit rebar erlang; inherit rebar erlang;

View file

@ -1,27 +1,27 @@
{ stdenv, fetchurl, makeWrapper { stdenv, fetchurl, makeWrapper
, boehmgc, libatomic_ops, pcre, libevent, libiconv, llvm, clang }: , boehmgc, libatomic_ops, pcre, libevent, libiconv, llvm, clang, which }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "crystal-${version}"; name = "crystal-${version}";
version = "0.25.1"; version = "0.26.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/crystal-lang/crystal/archive/${version}.tar.gz"; url = "https://github.com/crystal-lang/crystal/archive/${version}.tar.gz";
sha256 = "1ikzly6vs28ilqvqm4kxzhqs8mp6l4l344rhak63dav7vv97nnlv"; sha256 = "18vv47xvnf3hl5js5sk58wj2khqq36kcs851i3lgr0ji7m0g3379";
}; };
prebuiltName = "crystal-0.25.1-1"; prebuiltName = "crystal-0.26.0-1";
prebuiltSrc = let arch = { prebuiltSrc = let arch = {
"x86_64-linux" = "linux-x86_64"; "x86_64-linux" = "linux-x86_64";
"i686-linux" = "linux-i686"; "i686-linux" = "linux-i686";
"x86_64-darwin" = "darwin-x86_64"; "x86_64-darwin" = "darwin-x86_64";
}."${stdenv.system}" or (throw "system ${stdenv.system} not supported"); }."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
in fetchurl { in fetchurl {
url = "https://github.com/crystal-lang/crystal/releases/download/0.25.1/${prebuiltName}-${arch}.tar.gz"; url = "https://github.com/crystal-lang/crystal/releases/download/0.26.0/${prebuiltName}-${arch}.tar.gz";
sha256 = { sha256 = {
"x86_64-linux" = "0zjmbvbhi11p7s99jmvb3pac6zzsr792bxcfanrx503fjxxafgll"; "x86_64-linux" = "1xban102yiiwmlklxvn3xp3q546bp8hlxxpakayajkhhnpl6yv45";
"i686-linux" = "0i0hgsq7xa53594blqw5qi6jrqja18spifmalg7df2mj3h13h3pz"; "i686-linux" = "1igspf1lrv7wpmz0pfrkbx8m1ykvnv4zhic53cav4nicppm2v0ic";
"x86_64-darwin" = "1h369hzis1cigxbb6fgpahyq4d13gfgjc6adf300zc38yh8rvyy0"; "x86_64-darwin" = "0hzc65ccajr0yhmvi5vbdgbzbp1gbjy56da24ds3zwwkam1ddk0k";
}."${stdenv.system}"; }."${stdenv.system}";
}; };
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
libiconv libiconv
]; ];
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ which makeWrapper ];
buildInputs = libs ++ [ llvm ]; buildInputs = libs ++ [ llvm ];
@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
description = "A compiled language with Ruby like syntax and type inference"; description = "A compiled language with Ruby like syntax and type inference";
homepage = https://crystal-lang.org/; homepage = https://crystal-lang.org/;
license = stdenv.lib.licenses.asl20; license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ sifmelcara david50407 ]; maintainers = with stdenv.lib.maintainers; [ manveru david50407 ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
}; };
} }

View file

@ -24,7 +24,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -181,39 +180,7 @@ stdenv.mkDerivation ({
libc_dev = stdenv.cc.libc_dev; libc_dev = stdenv.cc.libc_dev;
postPatch = postPatch =
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -379,21 +346,13 @@ stdenv.mkDerivation ({
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ])
++ optional (libpthread != null) libpthread)
); );
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
@ -413,10 +372,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = { passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version; inherit langC langCC langObjC langObjCpp langFortran langGo version;

View file

@ -24,7 +24,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -190,39 +189,7 @@ stdenv.mkDerivation ({
libc_dev = stdenv.cc.libc_dev; libc_dev = stdenv.cc.libc_dev;
postPatch = postPatch =
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -401,22 +368,13 @@ stdenv.mkDerivation ({
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]));
++ optional (libpthread != null) libpthread)
);
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null) (targetPlatform != hostPlatform && libcCross != null)
@ -435,10 +393,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; }; { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };

View file

@ -24,7 +24,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -188,39 +187,7 @@ stdenv.mkDerivation ({
''; '';
postPatch = postPatch =
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -302,7 +269,7 @@ stdenv.mkDerivation ({
] ++ ] ++
optional (libelf != null) "--with-libelf=${libelf}" ++ optional (libelf != null) "--with-libelf=${libelf}" ++
optional (!(crossMingw && crossStageStatic)) optional (!(crossMingw && crossStageStatic))
"--with-native-system-header-dir=${getDev stdenv.cc.libc}/include" ++ "--with-native-system-header-dir=${getDev stdenv.cc.libc}/include" ++
# Basic configuration # Basic configuration
[ [
@ -400,13 +367,6 @@ stdenv.mkDerivation ({
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
@ -414,8 +374,7 @@ stdenv.mkDerivation ({
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread) ));
);
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null) (targetPlatform != hostPlatform && libcCross != null)
@ -434,10 +393,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; }; { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };

View file

@ -24,7 +24,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -192,39 +191,7 @@ stdenv.mkDerivation ({
''; '';
postPatch = postPatch =
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -408,22 +375,13 @@ stdenv.mkDerivation ({
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
++ optional langJava boehmgc ++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ] ++ optionals javaAwtGtk [ gmp mpfr ]));
++ optional (libpthread != null) libpthread)
);
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null) (targetPlatform != hostPlatform && libcCross != null)
@ -442,10 +400,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; }; { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };

View file

@ -17,7 +17,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -165,39 +164,7 @@ stdenv.mkDerivation ({
patchShebangs $configureScript patchShebangs $configureScript
done done
'' + ( '' + (
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -357,19 +324,9 @@ stdenv.mkDerivation ({
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
++ optional (zlib != null) zlib
++ optional (libpthread != null) libpthread)
);
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null) (targetPlatform != hostPlatform && libcCross != null)
@ -388,10 +345,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; }; { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };

View file

@ -17,7 +17,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -160,39 +159,7 @@ stdenv.mkDerivation ({
patchShebangs $configureScript patchShebangs $configureScript
done done
'' + ( '' + (
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -346,19 +313,9 @@ stdenv.mkDerivation ({
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
++ optional (zlib != null) zlib
++ optional (libpthread != null) libpthread)
);
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null) (targetPlatform != hostPlatform && libcCross != null)
@ -377,10 +334,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; }; { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };

View file

@ -17,7 +17,6 @@
, name ? "gcc" , name ? "gcc"
, libcCross ? null , libcCross ? null
, crossStageStatic ? false , crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross) , # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null , gnused ? null
@ -134,39 +133,7 @@ stdenv.mkDerivation ({
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
postPatch = postPatch =
if targetPlatform.isHurd if targetPlatform != hostPlatform || stdenv.cc.libc != null then
then
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
# in glibc, so add the right `-I' flags to the default spec string.
assert libcCross != null -> libpthreadCross != null;
let
libc = if libcCross != null then libcCross else stdenv.glibc;
gnu_h = "gcc/config/gnu.h";
extraCPPDeps =
libc.propagatedBuildInputs
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
++ stdenv.lib.optional (libpthread != null) libpthread;
extraCPPSpec =
concatStrings (intersperse " "
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
extraLibSpec =
if libpthreadCross != null
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
else "-L${libpthread}/lib";
in
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
sed -i "${gnu_h}" \
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
sed -i "${gnu_h}" \
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
sed -i "${gnu_h}" \
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
''
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of # On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'. # `/lib/ld*.so'.
let let
@ -314,19 +281,9 @@ stdenv.mkDerivation ({
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
# On GNU/Hurd glibc refers to Mach & Hurd
# headers.
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
libcCross.propagatedBuildInputs
)); ));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([] LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
++ optional (zlib != null) zlib
++ optional (libpthread != null) libpthread)
);
EXTRA_TARGET_FLAGS = optionals EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null) (targetPlatform != hostPlatform && libcCross != null)
@ -345,10 +302,7 @@ stdenv.mkDerivation ({
] else [ ] else [
"-Wl,-rpath,${libcCross.out}/lib" "-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib" "-Wl,-rpath-link,${libcCross.out}/lib"
]) ++ optionals (libpthreadCross != null) [ ]));
"-L${libpthreadCross}/lib"
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
]);
passthru = passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; }; { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };

View file

@ -0,0 +1,194 @@
{ stdenv, fetchFromGitHub, tzdata, iana-etc, go_bootstrap, runCommand, writeScriptBin
, perl, which, pkgconfig, patch, procps
, pcre, cacert, llvm
, Security, Foundation
, makeWrapper, git, subversion, mercurial, bazaar }:
let
inherit (stdenv.lib) optionals optionalString;
clangHack = writeScriptBin "clang" ''
#!${stdenv.shell}
exec ${stdenv.cc}/bin/clang "$@" 2> >(sed '/ld: warning:.*ignoring unexpected dylib file/ d' 1>&2)
'';
goBootstrap = runCommand "go-bootstrap" {} ''
mkdir $out
cp -rf ${go_bootstrap}/* $out/
chmod -R u+w $out
find $out -name "*.c" -delete
cp -rf $out/bin/* $out/share/go/bin/
'';
in
stdenv.mkDerivation rec {
name = "go-${version}";
version = "1.11";
src = fetchFromGitHub {
owner = "golang";
repo = "go";
rev = "go${version}";
sha256 = "1k18d6rkijlgzn1zw4wphzcv6a6w9hb1msgrsh1102jb18644f2q";
};
GOCACHE = "off";
# perl is used for testing go vet
nativeBuildInputs = [ perl which pkgconfig patch makeWrapper procps ];
buildInputs = [ cacert pcre ]
++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
propagatedBuildInputs = optionals stdenv.isDarwin [ Security Foundation ];
hardeningDisable = [ "all" ];
prePatch = ''
patchShebangs ./ # replace /bin/bash
# This source produces shell script at run time,
# and thus it is not corrected by patchShebangs.
substituteInPlace misc/cgo/testcarchive/carchive_test.go \
--replace '#!/usr/bin/env bash' '#!${stdenv.shell}'
# Disabling the 'os/http/net' tests (they want files not available in
# chroot builds)
rm src/net/{listen,parse}_test.go
rm src/syscall/exec_linux_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/os/os_test.go
sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
# Disable the unix socket test
sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
# Disable the hostname test
sed -i '/TestHostname/areturn' src/os/os_test.go
# ParseInLocation fails the test
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
# Remove the api check as it never worked
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
# Remove the coverage test as we have removed this utility
sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
# Remove the timezone naming test
sed -i '/TestLoadFixed/areturn' src/time/time_test.go
# Remove disable setgid test
sed -i '/TestRespectSetgidDir/areturn' src/cmd/go/internal/work/build_test.go
# Remove cert tests that conflict with NixOS's cert resolution
sed -i '/TestEnvVars/areturn' src/crypto/x509/root_unix_test.go
# TestWritevError hangs sometimes
sed -i '/TestWritevError/areturn' src/net/writev_test.go
# TestVariousDeadlines fails sometimes
sed -i '/TestVariousDeadlines/areturn' src/net/timeout_test.go
sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
# Disable cgo lookup tests not works, they depend on resolver
rm src/net/cgo_unix_test.go
'' + optionalString stdenv.isLinux ''
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
'' + optionalString stdenv.isAarch32 ''
echo '#!${stdenv.shell}' > misc/cgo/testplugin/test.bash
'' + optionalString stdenv.isDarwin ''
substituteInPlace src/race.bash --replace \
"sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
sed -i '/TestChdirAndGetwd/areturn' src/os/os_test.go
sed -i '/TestCredentialNoSetGroups/areturn' src/os/exec/exec_posix_test.go
sed -i '/TestRead0/areturn' src/os/os_test.go
sed -i '/TestSystemRoots/areturn' src/crypto/x509/root_darwin_test.go
sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/areturn' src/cmd/go/go_test.go
sed -i '/TestBuildDashIInstallsDependencies/areturn' src/cmd/go/go_test.go
sed -i '/TestDisasmExtld/areturn' src/cmd/objdump/objdump_test.go
sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
'';
patches = [
./remove-tools-1.11.patch
./ssl-cert-file-1.9.patch
./remove-test-pie.patch
./creds-test.patch
./go-1.9-skip-flaky-19608.patch
./go-1.9-skip-flaky-20072.patch
./remove-fhs-test-references.patch
./skip-external-network-tests.patch
./skip-nohup-tests.patch
];
postPatch = optionalString stdenv.isDarwin ''
echo "substitute hardcoded dsymutil with ${llvm}/bin/llvm-dsymutil"
substituteInPlace "src/cmd/link/internal/ld/lib.go" --replace dsymutil ${llvm}/bin/llvm-dsymutil
'';
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.isAarch32 then "arm"
else if stdenv.isAarch64 then "arm64"
else throw "Unsupported system";
GOARM = optionalString (stdenv.system == "armv5tel-linux") "5";
GO386 = 387; # from Arch: don't assume sse2 on i686
CGO_ENABLED = 1;
GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
# Hopefully avoids test timeouts on Hydra
GO_TEST_TIMEOUT_SCALE = 3;
# The go build actually checks for CC=*/clang and does something different, so we don't
# just want the generic `cc` here.
CC = if stdenv.isDarwin then "clang" else "cc";
configurePhase = ''
# Indicate that we are running on build infrastructure
# Some tests assume things like home directories and users exists
export GO_BUILDER_NAME=nix
mkdir -p $out/share/go/bin
export GOROOT=$out/share/go
export GOBIN=$GOROOT/bin
export PATH=$GOBIN:$PATH
ulimit -a
'';
postConfigure = optionalString stdenv.isDarwin ''
export PATH=${clangHack}/bin:$PATH
'';
installPhase = ''
cp -r . $GOROOT
( cd $GOROOT/src && ./all.bash )
# (https://github.com/golang/go/wiki/GoGetTools)
wrapProgram $out/share/go/bin/go --prefix PATH ":" "${stdenv.lib.makeBinPath [ git subversion mercurial bazaar ]}"
'';
preFixup = ''
rm -r $out/share/go/pkg/bootstrap
ln -s $out/share/go/bin $out/bin
'';
setupHook = ./setup-hook.sh;
disallowedReferences = [ go_bootstrap ];
meta = with stdenv.lib; {
branch = "1.9";
homepage = http://golang.org/;
description = "The Go Programming language";
license = licenses.bsd3;
maintainers = with maintainers; [ cstrahan orivej velovix mic92 ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go b/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go
index d694990..87fa259 100644
--- a/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go
+++ b/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go
@@ -452,7 +452,7 @@ func TestGetwd(t *testing.T) {
defer fd.Close()
// These are chosen carefully not to be symlinks on a Mac
// (unlike, say, /var, /etc)
- dirs := []string{"/", "/usr/bin"}
+ dirs := []string{"/"}
switch runtime.GOOS {
case "android":
dirs = []string{"/", "/system/bin"}

View file

@ -0,0 +1,35 @@
diff --git a/src/go/build/build.go b/src/go/build/build.go
index b68a712..b60bf19 100644
--- a/src/go/build/build.go
+++ b/src/go/build/build.go
@@ -1708,7 +1708,7 @@ func init() {
}
// ToolDir is the directory containing build tools.
-var ToolDir = getToolDir()
+var ToolDir = runtime.GOTOOLDIR()
// IsLocalImport reports whether the import path is
// a local import path, like ".", "..", "./foo", or "../foo".
diff --git a/src/runtime/extern.go b/src/runtime/extern.go
index 7171b13..18a942c 100644
--- a/src/runtime/extern.go
+++ b/src/runtime/extern.go
@@ -229,6 +229,17 @@ func GOROOT() string {
return sys.DefaultGoroot
}
+// GOTOOLDIR returns the root of the Go tree.
+// It uses the GOTOOLDIR environment variable, if set,
+// or else the root used during the Go build.
+func GOTOOLDIR() string {
+ s := gogetenv("GOTOOLDIR")
+ if s != "" {
+ return s
+ }
+ return GOROOT() + "/pkg/tool/" + GOOS + "_" + GOARCH
+}
+
// Version returns the Go tree's version string.
// It is either the commit hash and date at the time of the build or,
// when possible, a release tag like "go1.3".

View file

@ -0,0 +1,26 @@
diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go
index 85cae90..94b4edd 100644
--- a/src/cmd/go/go_test.go
+++ b/src/cmd/go/go_test.go
@@ -4946,6 +4946,8 @@ func TestBuildmodePIE(t *testing.T) {
}
func TestExecBuildX(t *testing.T) {
+ t.Skipf("skipping, test requires networking")
+
tooSlow(t)
if !canCgo {
t.Skip("skipping because cgo not enabled")
diff --git a/src/net/dial_test.go b/src/net/dial_test.go
index 00a84d1..27f9ec9 100644
--- a/src/net/dial_test.go
+++ b/src/net/dial_test.go
@@ -968,6 +968,8 @@ func TestDialerControl(t *testing.T) {
// mustHaveExternalNetwork is like testenv.MustHaveExternalNetwork
// except that it won't skip testing on non-iOS builders.
func mustHaveExternalNetwork(t *testing.T) {
+ t.Skipf("Nix sandbox does not have networking")
+
t.Helper()
ios := runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64")
if testenv.Builder() == "" || ios {

View file

@ -0,0 +1,22 @@
diff --git a/src/os/signal/signal_test.go b/src/os/signal/signal_test.go
index 3d79c7a..6e0f7b4 100644
--- a/src/os/signal/signal_test.go
+++ b/src/os/signal/signal_test.go
@@ -217,6 +217,8 @@ var checkSighupIgnored = flag.Bool("check_sighup_ignored", false, "if true, Test
// Test that Ignored(SIGHUP) correctly detects whether it is being run under nohup.
func TestDetectNohup(t *testing.T) {
+ t.Skip("Fails in nix build environment")
+
if *checkSighupIgnored {
if !Ignored(syscall.SIGHUP) {
t.Fatal("SIGHUP is not ignored.")
@@ -306,6 +308,8 @@ func TestStop(t *testing.T) {
// Test that when run under nohup, an uncaught SIGHUP does not kill the program,
// but a
func TestNohup(t *testing.T) {
+ t.Skip("Fails in nix build environment")
+
// Ugly: ask for SIGHUP so that child will not have no-hup set
// even if test is running under nohup environment.
// We have no intention of reading from c.

View file

@ -63,5 +63,6 @@ stdenv.mkDerivation rec {
license = "PHP/Zend"; license = "PHP/Zend";
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
broken = true; # Since 2018-04-21, see https://hydra.nixos.org/build/73059373
}; };
} }

View file

@ -1,4 +1,9 @@
{stdenv, lib, fetchFromGitHub, crystal, zlib, openssl, duktape}: # Updating the dependencies for this package:
#
# wget https://github.com/mint-lang/mint/blob/0.2.1/shard.lock
# nix-shell -p crystal libyaml --run 'crystal run crystal2nix.cr'
#
{stdenv, lib, fetchFromGitHub, crystal, zlib, openssl, duktape, which }:
let let
crystalPackages = lib.mapAttrs (name: src: crystalPackages = lib.mapAttrs (name: src:
stdenv.mkDerivation { stdenv.mkDerivation {
@ -28,15 +33,16 @@ let
}; };
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.2.0"; version = "0.2.1";
name = "mint-${version}"; name = "mint-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mint-lang"; owner = "mint-lang";
repo = "mint"; repo = "mint";
rev = "0.2.0"; rev = version;
sha256 = "1ds9zrvbmnfy744i9ri6v4w37aw7ccmdxzxmy8l97h045hzz9cp3"; sha256 = "0r8hv2j5yz0rlvrbpnybihj44562pkmsssa8f0hjs45m1ifvf4b1";
}; };
nativeBuildInputs = [ which ];
buildInputs = [ crystal zlib openssl duktape ]; buildInputs = [ crystal zlib openssl duktape ];
buildPhase = '' buildPhase = ''

View file

@ -2,8 +2,8 @@
admiral = { admiral = {
owner = "jwaldrip"; owner = "jwaldrip";
repo = "admiral.cr"; repo = "admiral.cr";
rev = "v1.7.2"; rev = "v1.7.3";
sha256 = "1j2cr4p3d44848v0gfl97p9kw2dslscnb1piyb7b3374iy345i0k"; sha256 = "0b98qjy43wsrc08am7lkhcdsxc7gplf9hcmbvd4p3dw4g107rk91";
}; };
ameba = { ameba = {
owner = "veelenga"; owner = "veelenga";
@ -14,8 +14,8 @@
baked_file_system = { baked_file_system = {
owner = "schovi"; owner = "schovi";
repo = "baked_file_system"; repo = "baked_file_system";
rev = "24dbaf2180b872c0f0fc777b34e3759108959e6e"; rev = "v0.9.7";
sha256 = "01p7hzsvms9cywdgs0rcs6mxdi94491wk55823fw2vxv24hvxnvk"; sha256 = "1fi6zag1a6h4xwrfizy01dls3hhraqw0cmpwj7rjv1qcddjgig5z";
}; };
diff = { diff = {
owner = "MakeNowJust"; owner = "MakeNowJust";
@ -38,8 +38,8 @@
kemal = { kemal = {
owner = "kemalcr"; owner = "kemalcr";
repo = "kemal"; repo = "kemal";
rev = "09bb1fcd4073a374b3a61c99e48e05a866b23c08"; rev = "v0.24.0";
sha256 = "0yyb59i897gr8cqjbf48d6s0znq68ibpxarxkxkgrqk7lbvrqqr7"; sha256 = "0sg7gy1lbhid9y9wh77m9sd00jygk92njm4mpb7w1fq8bjnm738k";
}; };
kilt = { kilt = {
owner = "jeromegn"; owner = "jeromegn";

View file

@ -1,15 +1,15 @@
{ stdenv, libgcrypt, fetchFromGitHub, ocamlPackages, perl }: { stdenv, libgcrypt, fetchFromGitHub, ocamlPackages, perl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "obliv-c-${version}"; name = "obliv-c-${version}";
version = "0.0pre20170827"; version = "0.0pre20180624";
buildInputs = [ perl ] buildInputs = [ perl ]
++ (with ocamlPackages; [ ocaml findlib ocamlbuild ]); ++ (with ocamlPackages; [ ocaml findlib ocamlbuild ]);
propagatedBuildInputs = [ libgcrypt ]; propagatedBuildInputs = [ libgcrypt ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "samee"; owner = "samee";
repo = "obliv-c"; repo = "obliv-c";
rev = "9a6be5a5f44d341bc357055e11922f6a4c4c3b65"; rev = "3d6804ca0fd85868207a0ccbd2509ec064723ac2";
sha256 = "0jz2ayadx62zv2b5ji947bkvw63axl4a2q70lwli86zgmcl390gf"; sha256 = "1ib21ngn7zr58xxq4sjigrpaxb0wx35x3k9l4qvwflzrmvnman20";
}; };
patches = [ ./ignore-complex-float128.patch ]; patches = [ ./ignore-complex-float128.patch ];

View file

@ -43,25 +43,6 @@ let
}; };
in rec { in rec {
vala_0_26 = generic {
major = "0.26";
minor = "2";
sha256 = "1i03ds1z5hivqh4nhf3x80fg7n0zd22908w5minkpaan1i1kzw9p";
};
vala_0_28 = generic {
major = "0.28";
minor = "1";
sha256 = "0isg327w6rfqqdjja6a8pc3xcdkj7pqrkdhw48bsyxab2fkaw3hw";
};
vala_0_32 = generic {
major = "0.32";
minor = "1";
sha256 = "1ab1l44abf9fj1wznzq5956431ia136rl5049cggnk5393jlf3fx";
};
vala_0_34 = generic { vala_0_34 = generic {
major = "0.34"; major = "0.34";
minor = "17"; minor = "17";

View file

@ -43,7 +43,7 @@ core-packages:
default-package-overrides: default-package-overrides:
# Newer versions require contravariant-1.5.*, which many builds refuse at the moment. # Newer versions require contravariant-1.5.*, which many builds refuse at the moment.
- base-compat-batteries ==0.10.1 - base-compat-batteries ==0.10.1
# LTS Haskell 12.6 # LTS Haskell 12.7
- abstract-deque ==0.3 - abstract-deque ==0.3
- abstract-deque-tests ==0.3 - abstract-deque-tests ==0.3
- abstract-par ==0.3.3 - abstract-par ==0.3.3
@ -76,7 +76,7 @@ default-package-overrides:
- alarmclock ==0.5.0.2 - alarmclock ==0.5.0.2
- alerts ==0.1.0.0 - alerts ==0.1.0.0
- alex ==3.2.4 - alex ==3.2.4
- alg ==0.2.5.0 - alg ==0.2.6.0
- algebra ==4.3.1 - algebra ==4.3.1
- Allure ==0.8.3.0 - Allure ==0.8.3.0
- almost-fix ==0.0.2 - almost-fix ==0.0.2
@ -244,7 +244,7 @@ default-package-overrides:
- bench ==1.0.11 - bench ==1.0.11
- bencode ==0.6.0.0 - bencode ==0.6.0.0
- between ==0.11.0.0 - between ==0.11.0.0
- bhoogle ==0.1.3.4 - bhoogle ==0.1.3.5
- bibtex ==0.1.0.6 - bibtex ==0.1.0.6
- bifunctors ==5.5.3 - bifunctors ==5.5.3
- bimap ==0.3.3 - bimap ==0.3.3
@ -333,7 +333,7 @@ default-package-overrides:
- cabal2spec ==2.1.1 - cabal2spec ==2.1.1
- cabal-doctest ==1.0.6 - cabal-doctest ==1.0.6
- cabal-rpm ==0.12.5 - cabal-rpm ==0.12.5
- cache ==0.1.1.0 - cache ==0.1.1.1
- cachix ==0.1.1 - cachix ==0.1.1
- cachix-api ==0.1.0.1 - cachix-api ==0.1.0.1
- cairo ==0.13.5.0 - cairo ==0.13.5.0
@ -410,7 +410,7 @@ default-package-overrides:
- codo-notation ==0.5.2 - codo-notation ==0.5.2
- coercible-utils ==0.0.0 - coercible-utils ==0.0.0
- colonnade ==1.2.0.1 - colonnade ==1.2.0.1
- colorful-monoids ==0.2.1.1 - colorful-monoids ==0.2.1.2
- colorize-haskell ==1.0.1 - colorize-haskell ==1.0.1
- colour ==2.3.4 - colour ==2.3.4
- combinatorial ==0.1 - combinatorial ==0.1
@ -670,7 +670,7 @@ default-package-overrides:
- errors ==2.3.0 - errors ==2.3.0
- errors-ext ==0.4.2 - errors-ext ==0.4.2
- error-util ==0.0.1.2 - error-util ==0.0.1.2
- ersatz ==0.4.3 - ersatz ==0.4.4
- etc ==0.4.0.3 - etc ==0.4.0.3
- event ==0.1.4 - event ==0.1.4
- eventful-core ==0.2.0 - eventful-core ==0.2.0
@ -870,9 +870,9 @@ default-package-overrides:
- graph-wrapper ==0.2.5.1 - graph-wrapper ==0.2.5.1
- gravatar ==0.8.0 - gravatar ==0.8.0
- graylog ==0.1.0.1 - graylog ==0.1.0.1
- greskell ==0.2.0.3 - greskell ==0.2.1.0
- greskell-core ==0.1.2.2 - greskell-core ==0.1.2.2
- greskell-websocket ==0.1.0.0 - greskell-websocket ==0.1.1.0
- groom ==0.1.2.1 - groom ==0.1.2.1
- groups ==0.4.1.0 - groups ==0.4.1.0
- gtk ==0.14.10 - gtk ==0.14.10
@ -900,7 +900,7 @@ default-package-overrides:
- hashmap ==1.3.3 - hashmap ==1.3.3
- hashtables ==1.2.3.1 - hashtables ==1.2.3.1
- haskeline ==0.7.4.3 - haskeline ==0.7.4.3
- haskell-gi ==0.21.3 - haskell-gi ==0.21.4
- haskell-gi-base ==0.21.1 - haskell-gi-base ==0.21.1
- haskell-gi-overloading ==1.0 - haskell-gi-overloading ==1.0
- haskell-lexer ==1.0.1 - haskell-lexer ==1.0.1
@ -1065,7 +1065,7 @@ default-package-overrides:
- hvect ==0.4.0.0 - hvect ==0.4.0.0
- hvega ==0.1.0.3 - hvega ==0.1.0.3
- hw-balancedparens ==0.2.0.2 - hw-balancedparens ==0.2.0.2
- hw-bits ==0.7.0.2 - hw-bits ==0.7.0.3
- hw-conduit ==0.2.0.3 - hw-conduit ==0.2.0.3
- hw-diagnostics ==0.0.0.5 - hw-diagnostics ==0.0.0.5
- hweblib ==0.6.3 - hweblib ==0.6.3
@ -1079,7 +1079,7 @@ default-package-overrides:
- hw-mquery ==0.1.0.1 - hw-mquery ==0.1.0.1
- hworker ==0.1.0.1 - hworker ==0.1.0.1
- hw-parser ==0.0.0.3 - hw-parser ==0.0.0.3
- hw-prim ==0.6.2.3 - hw-prim ==0.6.2.9
- hw-rankselect ==0.10.0.3 - hw-rankselect ==0.10.0.3
- hw-rankselect-base ==0.3.2.1 - hw-rankselect-base ==0.3.2.1
- hw-string-parse ==0.0.0.4 - hw-string-parse ==0.0.0.4
@ -1098,7 +1098,7 @@ default-package-overrides:
- hybrid-vectors ==0.2.2 - hybrid-vectors ==0.2.2
- hyperloglog ==0.4.2 - hyperloglog ==0.4.2
- hyphenation ==0.7.1 - hyphenation ==0.7.1
- hyraxAbif ==0.2.3.9 - hyraxAbif ==0.2.3.10
- iconv ==0.4.1.3 - iconv ==0.4.1.3
- identicon ==0.2.2 - identicon ==0.2.2
- ieee754 ==0.8.0 - ieee754 ==0.8.0
@ -1134,7 +1134,7 @@ default-package-overrides:
- interpolation ==0.1.0.2 - interpolation ==0.1.0.2
- IntervalMap ==0.6.0.0 - IntervalMap ==0.6.0.0
- intervals ==0.8.1 - intervals ==0.8.1
- intro ==0.3.1.0 - intro ==0.3.2.0
- invariant ==0.5.1 - invariant ==0.5.1
- invertible ==0.2.0.5 - invertible ==0.2.0.5
- invertible-grammar ==0.1.1 - invertible-grammar ==0.1.1
@ -1354,7 +1354,7 @@ default-package-overrides:
- mmorph ==1.1.2 - mmorph ==1.1.2
- mnist-idx ==0.1.2.8 - mnist-idx ==0.1.2.8
- mockery ==0.3.5 - mockery ==0.3.5
- modern-uri ==0.2.1.0 - modern-uri ==0.2.2.0
- moesocks ==1.0.0.44 - moesocks ==1.0.0.44
- monad-control ==1.0.2.3 - monad-control ==1.0.2.3
- monad-control-aligned ==0.0.1.1 - monad-control-aligned ==0.0.1.1
@ -1399,7 +1399,7 @@ default-package-overrides:
- mtl-prelude ==2.0.3.1 - mtl-prelude ==2.0.3.1
- multiarg ==0.30.0.10 - multiarg ==0.30.0.10
- multimap ==1.2.1 - multimap ==1.2.1
- multipart ==0.1.2 - multipart ==0.1.3
- multistate ==0.8.0.0 - multistate ==0.8.0.0
- murmur-hash ==0.1.0.9 - murmur-hash ==0.1.0.9
- MusicBrainz ==0.4 - MusicBrainz ==0.4
@ -1493,7 +1493,7 @@ default-package-overrides:
- open-browser ==0.2.1.0 - open-browser ==0.2.1.0
- openexr-write ==0.1.0.1 - openexr-write ==0.1.0.1
- OpenGL ==3.0.2.2 - OpenGL ==3.0.2.2
- OpenGLRaw ==3.3.0.2 - OpenGLRaw ==3.3.1.0
- openpgp-asciiarmor ==0.1.1 - openpgp-asciiarmor ==0.1.1
- opensource ==0.1.0.0 - opensource ==0.1.0.0
- openssl-streams ==1.2.1.3 - openssl-streams ==1.2.1.3
@ -1687,7 +1687,7 @@ default-package-overrides:
- range-set-list ==0.1.3 - range-set-list ==0.1.3
- rank1dynamic ==0.4.0 - rank1dynamic ==0.4.0
- rank2classes ==1.1.0.1 - rank2classes ==1.1.0.1
- Rasterific ==0.7.3 - Rasterific ==0.7.4
- rasterific-svg ==0.3.3.1 - rasterific-svg ==0.3.3.1
- ratel ==1.0.5 - ratel ==1.0.5
- ratel-wai ==1.0.3 - ratel-wai ==1.0.3
@ -1743,7 +1743,7 @@ default-package-overrides:
- rest-stringmap ==0.2.0.7 - rest-stringmap ==0.2.0.7
- result ==0.2.6.0 - result ==0.2.6.0
- rethinkdb-client-driver ==0.0.25 - rethinkdb-client-driver ==0.0.25
- retry ==0.7.6.2 - retry ==0.7.6.3
- rev-state ==0.1.2 - rev-state ==0.1.2
- rfc5051 ==0.1.0.3 - rfc5051 ==0.1.0.3
- rhine ==0.4.0.1 - rhine ==0.4.0.1
@ -1774,7 +1774,7 @@ default-package-overrides:
- sampling ==0.3.3 - sampling ==0.3.3
- sandi ==0.4.2 - sandi ==0.4.2
- sandman ==0.2.0.1 - sandman ==0.2.0.1
- say ==0.1.0.0 - say ==0.1.0.1
- sbp ==2.3.17 - sbp ==2.3.17
- scalendar ==1.2.0 - scalendar ==1.2.0
- SCalendar ==1.1.0 - SCalendar ==1.1.0
@ -1838,7 +1838,7 @@ default-package-overrides:
- servant-tracing ==0.1.0.2 - servant-tracing ==0.1.0.2
- servant-websockets ==1.1.0 - servant-websockets ==1.1.0
- servant-yaml ==0.1.0.0 - servant-yaml ==0.1.0.0
- serverless-haskell ==0.6.6 - serverless-haskell ==0.6.7
- serversession ==1.0.1 - serversession ==1.0.1
- serversession-frontend-wai ==1.0 - serversession-frontend-wai ==1.0
- servius ==1.2.3.0 - servius ==1.2.3.0
@ -1918,7 +1918,7 @@ default-package-overrides:
- state-codes ==0.1.3 - state-codes ==0.1.3
- stateref ==0.3 - stateref ==0.3
- statestack ==0.2.0.5 - statestack ==0.2.0.5
- StateVar ==1.1.1.0 - StateVar ==1.1.1.1
- static-canvas ==0.2.0.3 - static-canvas ==0.2.0.3
- static-text ==0.2.0.2 - static-text ==0.2.0.2
- statistics ==0.14.0.2 - statistics ==0.14.0.2
@ -2033,7 +2033,7 @@ default-package-overrides:
- texmath ==0.11.0.1 - texmath ==0.11.0.1
- text ==1.2.3.0 - text ==1.2.3.0
- text-binary ==0.2.1.1 - text-binary ==0.2.1.1
- text-builder ==0.5.3 - text-builder ==0.5.3.1
- text-conversions ==0.3.0 - text-conversions ==0.3.0
- text-icu ==0.7.0.1 - text-icu ==0.7.0.1
- text-latin1 ==0.3.1 - text-latin1 ==0.3.1
@ -2113,7 +2113,7 @@ default-package-overrides:
- tuple-sop ==0.3.1.0 - tuple-sop ==0.3.1.0
- tuple-th ==0.2.5 - tuple-th ==0.2.5
- turtle ==1.5.10 - turtle ==1.5.10
- typed-process ==0.2.2.0 - typed-process ==0.2.3.0
- type-fun ==0.1.1 - type-fun ==0.1.1
- type-hint ==0.1 - type-hint ==0.1
- type-level-integers ==0.0.1 - type-level-integers ==0.0.1
@ -2220,7 +2220,7 @@ default-package-overrides:
- wai-conduit ==3.0.0.4 - wai-conduit ==3.0.0.4
- wai-cors ==0.2.6 - wai-cors ==0.2.6
- wai-eventsource ==3.0.0 - wai-eventsource ==3.0.0
- wai-extra ==3.0.24.0 - wai-extra ==3.0.24.1
- wai-handler-launch ==3.0.2.4 - wai-handler-launch ==3.0.2.4
- wai-logger ==2.3.2 - wai-logger ==2.3.2
- wai-middleware-caching ==0.1.0.2 - wai-middleware-caching ==0.1.0.2
@ -2265,8 +2265,8 @@ default-package-overrides:
- with-location ==0.1.0 - with-location ==0.1.0
- witness ==0.4 - witness ==0.4
- wizards ==1.0.2 - wizards ==1.0.2
- wl-pprint-annotated ==0.1.0.0 - wl-pprint-annotated ==0.1.0.1
- wl-pprint-console ==0.1.0.1 - wl-pprint-console ==0.1.0.2
- wl-pprint-extras ==3.5.0.5 - wl-pprint-extras ==3.5.0.5
- wl-pprint-terminfo ==3.7.1.4 - wl-pprint-terminfo ==3.7.1.4
- wl-pprint-text ==1.2.0.0 - wl-pprint-text ==1.2.0.0
@ -2281,8 +2281,8 @@ default-package-overrides:
- writer-cps-full ==0.1.0.0 - writer-cps-full ==0.1.0.0
- writer-cps-lens ==0.1.0.1 - writer-cps-lens ==0.1.0.1
- writer-cps-morph ==0.1.0.2 - writer-cps-morph ==0.1.0.2
- writer-cps-mtl ==0.1.1.4 - writer-cps-mtl ==0.1.1.5
- writer-cps-transformers ==0.1.1.3 - writer-cps-transformers ==0.1.1.4
- ws ==0.0.4 - ws ==0.0.4
- wuss ==1.1.10 - wuss ==1.1.10
- X11 ==1.9 - X11 ==1.9
@ -4742,7 +4742,6 @@ dont-distribute-packages:
gi-gtkosxapplication: [ i686-linux, x86_64-linux, x86_64-darwin ] gi-gtkosxapplication: [ i686-linux, x86_64-linux, x86_64-darwin ]
gi-notify: [ i686-linux, x86_64-linux, x86_64-darwin ] gi-notify: [ i686-linux, x86_64-linux, x86_64-darwin ]
gi-poppler: [ i686-linux, x86_64-linux, x86_64-darwin ] gi-poppler: [ i686-linux, x86_64-linux, x86_64-darwin ]
gi-vte: [ i686-linux, x86_64-linux, x86_64-darwin ]
gi-wnck: [ i686-linux, x86_64-linux, x86_64-darwin ] gi-wnck: [ i686-linux, x86_64-linux, x86_64-darwin ]
giak: [ i686-linux, x86_64-linux, x86_64-darwin ] giak: [ i686-linux, x86_64-linux, x86_64-darwin ]
Gifcurry: [ i686-linux, x86_64-linux, x86_64-darwin ] Gifcurry: [ i686-linux, x86_64-linux, x86_64-darwin ]

File diff suppressed because it is too large Load diff

View file

@ -234,6 +234,7 @@ rec {
*/ */
justStaticExecutables = drv: overrideCabal drv (drv: { justStaticExecutables = drv: overrideCabal drv (drv: {
enableSharedExecutables = false; enableSharedExecutables = false;
enableLibraryProfiling = false;
isLibrary = false; isLibrary = false;
doHaddock = false; doHaddock = false;
postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc"; postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";

View file

@ -1,8 +1,8 @@
diff --git a/src/XMonad/Core.hs b/src/XMonad/Core.hs diff --git a/src/XMonad/Core.hs b/src/XMonad/Core.hs
index 138d735..65b5a84 100644 index 7810522..3262934 100644
--- a/src/XMonad/Core.hs --- a/src/XMonad/Core.hs
+++ b/src/XMonad/Core.hs +++ b/src/XMonad/Core.hs
@@ -51,6 +51,7 @@ import System.Posix.Types (ProcessID) @@ -53,6 +53,7 @@ import System.Posix.Types (ProcessID)
import System.Process import System.Process
import System.Directory import System.Directory
import System.Exit import System.Exit
@ -10,7 +10,7 @@ index 138d735..65b5a84 100644
import Graphics.X11.Xlib import Graphics.X11.Xlib
import Graphics.X11.Xlib.Extras (getWindowAttributes, WindowAttributes, Event) import Graphics.X11.Xlib.Extras (getWindowAttributes, WindowAttributes, Event)
import Data.Typeable import Data.Typeable
@@ -571,6 +572,7 @@ recompile force = io $ do @@ -601,6 +602,7 @@ recompile force = io $ do
lib = cfgdir </> "lib" lib = cfgdir </> "lib"
buildscript = cfgdir </> "build" buildscript = cfgdir </> "build"
@ -18,7 +18,7 @@ index 138d735..65b5a84 100644
libTs <- mapM getModTime . Prelude.filter isSource =<< allFiles lib libTs <- mapM getModTime . Prelude.filter isSource =<< allFiles lib
srcT <- getModTime src srcT <- getModTime src
binT <- getModTime bin binT <- getModTime bin
@@ -586,7 +588,7 @@ recompile force = io $ do @@ -643,7 +645,7 @@ recompile force = io $ do
status <- bracket (openFile err WriteMode) hClose $ \errHandle -> status <- bracket (openFile err WriteMode) hClose $ \errHandle ->
waitForProcess =<< if useBuildscript waitForProcess =<< if useBuildscript
then compileScript bin cfgdir buildscript errHandle then compileScript bin cfgdir buildscript errHandle
@ -27,24 +27,24 @@ index 138d735..65b5a84 100644
-- re-enable SIGCHLD: -- re-enable SIGCHLD:
installSignalHandlers installSignalHandlers
@@ -594,6 +596,7 @@ recompile force = io $ do @@ -653,6 +655,7 @@ recompile force = io $ do
-- now, if it fails, run xmessage to let the user know: then trace "XMonad recompilation process exited with success!"
when (status /= ExitSuccess) $ do else do
ghcErr <- readFile err ghcErr <- readFile err
+ xmessage <- fromMaybe "xmessage" <$> liftIO (lookupEnv "XMONAD_XMESSAGE") + xmessage <- fromMaybe "xmessage" <$> liftIO (lookupEnv "XMONAD_XMESSAGE")
let msg = unlines $ let msg = unlines $
["Error detected while loading xmonad configuration file: " ++ src] ["Error detected while loading xmonad configuration file: " ++ src]
++ lines (if null ghcErr then show status else ghcErr) ++ lines (if null ghcErr then show status else ghcErr)
@@ -601,7 +604,7 @@ recompile force = io $ do @@ -660,7 +663,7 @@ recompile force = io $ do
-- nb, the ordering of printing, then forking, is crucial due to -- nb, the ordering of printing, then forking, is crucial due to
-- lazy evaluation -- lazy evaluation
hPutStrLn stderr msg hPutStrLn stderr msg
- forkProcess $ executeFile "xmessage" True ["-default", "okay", replaceUnicode msg] Nothing - forkProcess $ executeFile "xmessage" True ["-default", "okay", replaceUnicode msg] Nothing
+ forkProcess $ executeFile xmessage True ["-default", "okay", replaceUnicode msg] Nothing + forkProcess $ executeFile xmessage True ["-default", "okay", replaceUnicode msg] Nothing
return () return ()
return (status == ExitSuccess) return (status == ExitSuccess)
else return True else return True
@@ -619,16 +622,16 @@ recompile force = io $ do @@ -678,16 +681,16 @@ recompile force = io $ do
'\8216' -> '`' -- '\8216' -> '`' --
'\8217' -> '`' -- '\8217' -> '`' --
_ -> c _ -> c

View file

@ -1,7 +1,7 @@
{ mkDerivation }: { mkDerivation }:
mkDerivation rec { mkDerivation rec {
version = "1.7.2"; version = "1.7.3";
sha256 = "0wnrx6wlpmr23ypm8za0c4dl952nj4rjylcsdzz0xrma92ylrqfq"; sha256 = "0d7rj4khmvy76z12njzwzknm1j9rhjadgj9k1chjd4gnjffkb1aa";
minimumOTPVersion = "19"; minimumOTPVersion = "19";
} }

View file

@ -36,7 +36,7 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "racket-${version}"; name = "racket-${version}";
version = "6.12"; version = "7.0";
src = (stdenv.lib.makeOverridable ({ name, sha256 }: src = (stdenv.lib.makeOverridable ({ name, sha256 }:
fetchurl rec { fetchurl rec {
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
} }
)) { )) {
inherit name; inherit name;
sha256 = "0cwcypzjfl9py1s695mhqkiapff7c1w29llsmdj7qgn58wl0apk5"; sha256 = "1glv5amsp9xp480d4yr63hhm9kkyav06yl3a6p489nkr4cln0j9a";
}; };
FONTCONFIG_FILE = fontsConf; FONTCONFIG_FILE = fontsConf;

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }: { stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "8.600.0"; version = "9.100.5";
name = "armadillo-${version}"; name = "armadillo-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz"; url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
sha256 = "0h3bj93s7pr7nfwgjx6c49hgf6jlp5ninp921a8krhkzx4swf02z"; sha256 = "1ka1vd9fcmvp12qkcm4888dkfqwnalvv00x04wy29f3nx3qwczby";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

Some files were not shown because too many files have changed in this diff Show more