Merge branch 'master.upstream' into staging.upstream

This commit is contained in:
William A. Kennington III 2015-07-13 15:11:31 -07:00
commit 333f145d76
178 changed files with 2917 additions and 1932 deletions

View File

@ -1 +1 @@
15.06 15.07

View File

@ -20,7 +20,7 @@
git checkout -b 'fix/pkg-name-update' git checkout -b 'fix/pkg-name-update'
``` ```
* Please avoid working directly on the `master` branch. * Please avoid working directly on the `master` branch.
* Make commits of logical units. * Make commits of logical units.
* If you removed pkgs, made some major NixOS changes etc., write about them in `nixos/doc/manual/release-notes/rl-unstable.xml`. * If you removed pkgs, made some major NixOS changes etc., write about them in `nixos/doc/manual/release-notes/rl-unstable.xml`.
* Check for unnecessary whitespace with `git diff --check` before committing. * Check for unnecessary whitespace with `git diff --check` before committing.
* Format the commit in a following way: * Format the commit in a following way:
@ -37,12 +37,12 @@
* `nginx service: refactor config generation` * `nginx service: refactor config generation`
* Test your changes. If you work with * Test your changes. If you work with
* nixpkgs: * nixpkgs:
* update pkg -> * update pkg ->
* `nix-env -i pkg-name -f <path to your local nixpkgs folder>` * `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
* add pkg -> * add pkg ->
* Make sure it's in `pkgs/top-level/all-packages.nix` * Make sure it's in `pkgs/top-level/all-packages.nix`
* `nix-env -i pkg-name -f <path to your local nixpkgs folder>` * `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
* _If you don't want to install pkg in you profile_. * _If you don't want to install pkg in you profile_.
* `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`. * `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
* If you did `nix-env -i pkg-name` you can do `nix-env -e pkg-name` to uninstall it from your system. * If you did `nix-env -i pkg-name` you can do `nix-env -e pkg-name` to uninstall it from your system.
* NixOS and its modules: * NixOS and its modules:
@ -67,3 +67,12 @@
* Don't create additional commits, do * Don't create additional commits, do
* `git rebase -i` * `git rebase -i`
* `git push --force` to your branch. * `git push --force` to your branch.
## Commit policy
* Commits must be sufficiently tested before being merged, both for the master and staging branches.
* Hydra builds for master and staging should not be used as testing platform, it's a build farm for changes that have been already tested.
* Master should only see non-breaking commits that do not cause mass rebuilds.
* Staging should only see non-breaking mass-rebuild commits. That means it's not to be used for testing, and changes must have been well tested already. [Read policy here](http://comments.gmane.org/gmane.linux.distributions.nixos/13447).
* If staging is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days, merge into master, then resume development on staging. [Keep an eye on the staging evaluations here](http://hydra.nixos.org/jobset/nixpkgs/staging#tabs-evaluations).
* When changing the bootloader installation process, extra care must be taken. Grub installations cannot be rolled back, hence changes may break people's installations forever. For any non-trivial change to the bootloader please file a PR asking for review, especially from @edolstra.

View File

@ -816,6 +816,12 @@ following:
stripped. By default, they are.</para></listitem> stripped. By default, they are.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>dontMoveSbin</varname></term>
<listitem><para>If set, files in <filename>$out/sbin</filename> are not moved
to <filename>$out/bin</filename>. By default, they are.</para></listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><varname>stripAllList</varname></term> <term><varname>stripAllList</varname></term>
<listitem><para>List of directories to search for libraries and <listitem><para>List of directories to search for libraries and

View File

@ -133,6 +133,7 @@
kragniz = "Louis Taylor <kragniz@gmail.com>"; kragniz = "Louis Taylor <kragniz@gmail.com>";
ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>"; ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
lassulus = "Lassulus <lassulus@gmail.com>"; lassulus = "Lassulus <lassulus@gmail.com>";
leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
lethalman = "Luca Bruno <lucabru@src.gnome.org>"; lethalman = "Luca Bruno <lucabru@src.gnome.org>";
lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>"; lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>";
lihop = "Leroy Hopson <nixos@leroy.geek.nz>"; lihop = "Leroy Hopson <nixos@leroy.geek.nz>";
@ -228,6 +229,7 @@
sztupi = "Attila Sztupak <attila.sztupak@gmail.com>"; sztupi = "Attila Sztupak <attila.sztupak@gmail.com>";
tailhook = "Paul Colomiets <paul@colomiets.name>"; tailhook = "Paul Colomiets <paul@colomiets.name>";
taktoa = "Remy Goldschmidt <taktoa@gmail.com>"; taktoa = "Remy Goldschmidt <taktoa@gmail.com>";
telotortium = "Robert Irelan <rirelan@gmail.com>";
thammers = "Tobias Hammerschmidt <jawr@gmx.de>"; thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>"; the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>";
theuni = "Christian Theune <ct@flyingcircus.io>"; theuni = "Christian Theune <ct@flyingcircus.io>";

View File

@ -122,12 +122,16 @@ rec {
${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"} ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"}
''; # " ''; # "
test = runTests driver; passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
meta = (drv.meta or {}) // t.meta;
};
report = releaseTools.gcovReport { coverageRuns = [ test ]; }; test = passMeta (runTests driver);
report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
in (if makeCoverageReport then report else test) // { inherit nodes driver test; };
in (if makeCoverageReport then report else test) // {
inherit nodes driver test;
};
runInMachine = runInMachine =
{ drv { drv

View File

@ -311,9 +311,9 @@ foreach my $fs (read_file("/proc/self/mountinfo")) {
# Maybe this is a bind-mount of a filesystem we saw earlier? # Maybe this is a bind-mount of a filesystem we saw earlier?
if (defined $fsByDev{$fields[2]}) { if (defined $fsByDev{$fields[2]}) {
# Make sure this isn't a btrfs subvolume # Make sure this isn't a btrfs subvolume.
my ($status, @msg) = runCommand("btrfs subvol show $rootDir$mountPoint"); my $msg = `btrfs subvol show $rootDir$mountPoint`;
if (join("", @msg) =~ /ERROR:/) { if ($? != 0 || $msg =~ /ERROR:/s) {
my $path = $fields[3]; $path = "" if $path eq "/"; my $path = $fields[3]; $path = "" if $path eq "/";
my $base = $fsByDev{$fields[2]}; my $base = $fsByDev{$fields[2]};
$base = "" if $base eq "/"; $base = "" if $base eq "/";

View File

@ -382,7 +382,7 @@
seeks = 148; seeks = 148;
prosody = 149; prosody = 149;
i2pd = 150; i2pd = 150;
#dnscrypt-proxy = 151; # unused dnscrypt-proxy = 151;
systemd-network = 152; systemd-network = 152;
systemd-resolve = 153; systemd-resolve = 153;
systemd-timesync = 154; systemd-timesync = 154;

View File

@ -141,6 +141,9 @@ in zipModules ([]
++ obsolete [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ] ++ obsolete [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]
++ obsolete [ "services" "xserver" "desktopManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ] ++ obsolete [ "services" "xserver" "desktopManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]
# DNSCrypt-proxy
++ obsolete [ "services" "dnscrypt-proxy" "port" ] [ "services" "dnscrypt-proxy" "localPort" ]
# Options that are obsolete and have no replacement. # Options that are obsolete and have no replacement.
++ obsolete' [ "boot" "loader" "grub" "bootDevice" ] ++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]
++ obsolete' [ "boot" "initrd" "luks" "enable" ] ++ obsolete' [ "boot" "initrd" "luks" "enable" ]

View File

@ -85,10 +85,8 @@ in
PermissionsStartOnly = true; # preStart needs to run with root permissions PermissionsStartOnly = true; # preStart needs to run with root permissions
}; };
preStart = '' preStart = ''
if ! test -d /var/lib/charybdis; then ${coreutils}/bin/mkdir -p ${cfg.statedir}
${coreutils}/bin/mkdir -p ${cfg.statedir} ${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir}
${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.statedir}
fi
''; '';
}; };

View File

@ -5,38 +5,35 @@ let
apparmorEnabled = config.security.apparmor.enable; apparmorEnabled = config.security.apparmor.enable;
dnscrypt-proxy = pkgs.dnscrypt-proxy; dnscrypt-proxy = pkgs.dnscrypt-proxy;
cfg = config.services.dnscrypt-proxy; cfg = config.services.dnscrypt-proxy;
uid = config.ids.uids.dnscrypt-proxy; resolverListFile = "${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv";
localAddress = "${cfg.localAddress}:${toString cfg.localPort}";
daemonArgs = daemonArgs =
[ "--daemonize" [ "--local-address=${localAddress}"
"--user=dnscrypt-proxy"
"--local-address=${cfg.localAddress}:${toString cfg.port}"
(optionalString cfg.tcpOnly "--tcp-only") (optionalString cfg.tcpOnly "--tcp-only")
"--resolvers-list=${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv" ]
"--resolver-name=${cfg.resolverName}" ++ resolverArgs;
]; resolverArgs = if (cfg.customResolver != null)
then
[ "--resolver-address=${cfg.customResolver.address}:${toString cfg.customResolver.port}"
"--provider-name=${cfg.customResolver.name}"
"--provider-key=${cfg.customResolver.key}"
]
else
[ "--resolvers-list=${resolverListFile}"
"--resolver-name=${toString cfg.resolverName}"
];
in in
{ {
##### interface
options = { options = {
services.dnscrypt-proxy = { services.dnscrypt-proxy = {
enable = mkEnableOption ''
enable = mkOption { Enable dnscrypt-proxy. The proxy relays regular DNS queries to a
default = false; DNSCrypt enabled upstream resolver. The traffic between the
type = types.bool; client and the upstream resolver is encrypted and authenticated,
description = '' which may mitigate the risk of MITM attacks and third-party
Enable dnscrypt-proxy. snooping (assuming the upstream is trustworthy).
The proxy relays regular DNS queries to a DNSCrypt enabled '';
upstream resolver.
The traffic between the client and the upstream resolver is
encrypted and authenticated, which may mitigate the risk of MITM
attacks and third-party snooping (assuming the upstream is
trustworthy).
'';
};
localAddress = mkOption { localAddress = mkOption {
default = "127.0.0.1"; default = "127.0.0.1";
type = types.string; type = types.string;
@ -44,96 +41,128 @@ in
Listen for DNS queries on this address. Listen for DNS queries on this address.
''; '';
}; };
localPort = mkOption {
port = mkOption {
default = 53; default = 53;
type = types.int; type = types.int;
description = '' description = ''
Listen on this port. Listen on this port.
''; '';
}; };
resolverName = mkOption { resolverName = mkOption {
default = "opendns"; default = "opendns";
type = types.string; type = types.nullOr types.string;
description = '' description = ''
The name of the upstream DNSCrypt resolver to use. The name of the upstream DNSCrypt resolver to use. See
See <literal>${dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv</literal> <literal>${resolverListFile}</literal> for alternative resolvers
for alternative resolvers (e.g., if you are concerned about logging (e.g., if you are concerned about logging and/or server
and/or server location). location).
''; '';
}; };
customResolver = mkOption {
default = null;
description = ''
Use a resolver not listed in the upstream list (e.g.,
a private DNSCrypt provider). For advanced users only.
If specified, this option takes precedence.
'';
type = types.nullOr (types.submodule ({ ... }: { options = {
address = mkOption {
type = types.str;
description = "Resolver IP address";
example = "208.67.220.220";
};
port = mkOption {
type = types.int;
description = "Resolver port";
default = 443;
};
name = mkOption {
type = types.str;
description = "Provider fully qualified domain name";
example = "2.dnscrypt-cert.opendns.com";
};
key = mkOption {
type = types.str;
description = "Provider public key";
example = "B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79";
}; }; }));
};
tcpOnly = mkOption { tcpOnly = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
description = '' description = ''
Force sending encrypted DNS queries to the upstream resolver Force sending encrypted DNS queries to the upstream resolver
over TCP instead of UDP (on port 443). over TCP instead of UDP (on port 443). Enabling this option may
Enabling this option may help circumvent filtering, but should help circumvent filtering, but should not be used otherwise.
not be used otherwise.
''; '';
}; };
}; };
}; };
##### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
### AppArmor profile assertions = [
{ assertion = (cfg.customResolver != null) || (cfg.resolverName != null);
security.apparmor.profiles = mkIf apparmorEnabled [ message = "please configure upstream DNSCrypt resolver";
(pkgs.writeText "apparmor-dnscrypt-proxy" '' }
${dnscrypt-proxy}/bin/dnscrypt-proxy {
network inet stream,
network inet6 stream,
network inet dgram,
network inet6 dgram,
capability ipc_lock,
capability net_bind_service,
capability net_admin,
capability sys_chroot,
capability setgid,
capability setuid,
/dev/null rw,
/dev/urandom r,
${pkgs.glibc}/lib/*.so mr,
${pkgs.tzdata}/share/zoneinfo/** r,
${dnscrypt-proxy}/share/dnscrypt-proxy/** r,
${pkgs.gcc.cc}/lib/libssp.so.* mr,
${pkgs.libsodium}/lib/libsodium.so.* mr,
}
'')
]; ];
### User security.apparmor.profiles = mkIf apparmorEnabled (singleton (pkgs.writeText "apparmor-dnscrypt-proxy" ''
${dnscrypt-proxy}/bin/dnscrypt-proxy {
/dev/null rw,
/dev/urandom r,
users.extraUsers = singleton { /etc/passwd r,
inherit uid; /etc/group r,
name = "dnscrypt-proxy"; ${config.environment.etc."nsswitch.conf".source} r,
${pkgs.glibc}/lib/*.so mr,
${pkgs.tzdata}/share/zoneinfo/** r,
network inet stream,
network inet6 stream,
network inet dgram,
network inet6 dgram,
${pkgs.gcc.cc}/lib/libssp.so.* mr,
${pkgs.libsodium}/lib/libsodium.so.* mr,
${pkgs.systemd}/lib/libsystemd.so.* mr,
${pkgs.xz}/lib/liblzma.so.* mr,
${pkgs.libgcrypt}/lib/libgcrypt.so.* mr,
${pkgs.libgpgerror}/lib/libgpg-error.so.* mr,
${resolverListFile} r,
}
''));
users.extraUsers.dnscrypt-proxy = {
uid = config.ids.uids.dnscrypt-proxy;
description = "dnscrypt-proxy daemon user"; description = "dnscrypt-proxy daemon user";
}; };
users.extraGroups.dnscrypt-proxy.gid = config.ids.gids.dnscrypt-proxy;
### Service definition systemd.sockets.dnscrypt-proxy = {
description = "dnscrypt-proxy listening socket";
socketConfig = {
ListenStream = "${localAddress}";
ListenDatagram = "${localAddress}";
};
wantedBy = [ "sockets.target" ];
};
systemd.services.dnscrypt-proxy = { systemd.services.dnscrypt-proxy = {
description = "dnscrypt-proxy daemon"; description = "dnscrypt-proxy daemon";
after = [ "network.target" ] ++ optional apparmorEnabled "apparmor.service"; after = [ "network.target" ] ++ optional apparmorEnabled "apparmor.service";
requires = mkIf apparmorEnabled [ "apparmor.service" ]; requires = [ "dnscrypt-proxy.socket "] ++ optional apparmorEnabled "apparmor.service";
wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "simple";
NonBlocking = "true";
ExecStart = "${dnscrypt-proxy}/bin/dnscrypt-proxy ${toString daemonArgs}"; ExecStart = "${dnscrypt-proxy}/bin/dnscrypt-proxy ${toString daemonArgs}";
User = "dnscrypt-proxy";
Group = "dnscrypt-proxy";
PrivateTmp = true;
PrivateDevices = true;
}; };
}; };
}; };
} }

View File

@ -135,7 +135,7 @@ in
echo >> ${cfg.privateConfig} "secret = $(head -c 20 /dev/urandom | sha1sum | tr -d ' -')" echo >> ${cfg.privateConfig} "secret = $(head -c 20 /dev/urandom | sha1sum | tr -d ' -')"
fi fi
''; '';
serviceConfig.ExecStart = "paster serve ${syncServerIni}"; serviceConfig.ExecStart = "${pkgs.pythonPackages.pasteScript}/bin/paster serve ${syncServerIni}";
}; };
}; };

View File

@ -244,13 +244,12 @@ in
publicKey = mkOption { publicKey = mkOption {
default = null; default = null;
type = types.nullOr types.str; type = types.nullOr types.str;
example = "ecdsa-sha2-nistp521 AAAAE2VjZHN...UEPg==";
description = '' description = ''
The public key data for the host. You can fetch a public key The public key data for the host. You can fetch a public key
from a running SSH server with the <command>ssh-keyscan</command> from a running SSH server with the <command>ssh-keyscan</command>
command. The public key should not include any host names, only command. The public key should not include any host names, only
the key type and the key itself. It is allowed to add several the key type and the key itself.
lines here, each line will be treated as type/key pair and the
host names will be prepended to each line.
''; '';
}; };
publicKeyFile = mkOption { publicKeyFile = mkOption {

View File

@ -330,7 +330,5 @@ in rec {
services.postgresql.package = pkgs.postgresql93; services.postgresql.package = pkgs.postgresql93;
environment.systemPackages = [ pkgs.php ]; environment.systemPackages = [ pkgs.php ];
}); });
}; };
} }

View File

@ -1,7 +1,9 @@
# Test whether `avahi-daemon' and `libnss-mdns' work as expected. # Test whether `avahi-daemon' and `libnss-mdns' work as expected.
import ./make-test.nix ({ pkgs, ... } : {
import ./make-test.nix {
name = "avahi"; name = "avahi";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow wizeman ];
};
nodes = { nodes = {
one = one =
@ -52,4 +54,4 @@ import ./make-test.nix {
$two->succeed("getent hosts one.local >&2"); $two->succeed("getent hosts one.local >&2");
$two->succeed("getent hosts two.local >&2"); $two->succeed("getent hosts two.local >&2");
''; '';
} })

View File

@ -24,6 +24,9 @@ in
{ {
name = "bittorrent"; name = "bittorrent";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric eelco chaoflow rob wkennington ];
};
nodes = nodes =
{ tracker = { tracker =

View File

@ -1,5 +1,8 @@
import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec { import ./make-test.nix ({ pkgs, ... }: with pkgs.pythonPackages; rec {
name = "blivet"; name = "blivet";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
machine = { machine = {
environment.systemPackages = [ pkgs.python blivet mock ]; environment.systemPackages = [ pkgs.python blivet mock ];

View File

@ -12,22 +12,7 @@ let
modules = modules =
[ ../modules/installer/cd-dvd/installation-cd-minimal.nix [ ../modules/installer/cd-dvd/installation-cd-minimal.nix
../modules/testing/test-instrumentation.nix ../modules/testing/test-instrumentation.nix
{ key = "serial"; { key = "serial"; }
boot.loader.grub.timeout = mkOverride 0 0;
# The test cannot access the network, so any sources we
# need must be included in the ISO.
isoImage.storeContents =
[ pkgs.glibcLocales
pkgs.sudo
pkgs.docbook5
pkgs.docbook5_xsl
pkgs.grub
pkgs.perlPackages.XMLLibXML
pkgs.unionfs-fuse
pkgs.gummiboot
];
}
]; ];
}).config.system.build.isoImage; }).config.system.build.isoImage;

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ... } : {
name = "cadvisor"; name = "cadvisor";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = { nodes = {
machine = { config, pkgs, ... }: { machine = { config, pkgs, ... }: {
@ -27,4 +30,4 @@ import ./make-test.nix {
$influxdb->waitForUnit("cadvisor.service"); $influxdb->waitForUnit("cadvisor.service");
$influxdb->succeed("curl http://localhost:8080/containers/"); $influxdb->succeed("curl http://localhost:8080/containers/");
''; '';
} })

View File

@ -7,6 +7,9 @@ with import ../lib/build-vms.nix { inherit nixos nixpkgs system; };
rec { rec {
name = "check-filesystems"; name = "check-filesystems";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = { nodes = {
share = {pkgs, config, ...}: { share = {pkgs, config, ...}: {

View File

@ -8,6 +8,9 @@ import ./make-test.nix (
, ... , ...
}: rec { }: rec {
name = "chromium"; name = "chromium";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
enableOCR = true; enableOCR = true;

View File

@ -22,8 +22,11 @@ let
in in
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "cjdns"; name = "cjdns";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ emery ];
};
nodes = rec nodes = rec
{ # Alice finds peers over over ETHInterface. { # Alice finds peers over over ETHInterface.
@ -119,4 +122,4 @@ import ./make-test.nix {
$bob->succeed("curl --fail -g http://[$aliceIp6]"); $bob->succeed("curl --fail -g http://[$aliceIp6]");
''; '';
} })

View File

@ -1,7 +1,10 @@
# Test for NixOS' container support. # Test for NixOS' container support.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "containers"; name = "containers";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aristid aszlig eelco chaoflow ];
};
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:
@ -113,4 +116,4 @@ import ./make-test.nix {
$machine->fail("nixos-container destroy webserver"); $machine->fail("nixos-container destroy webserver");
''; '';
} })

View File

@ -1,7 +1,10 @@
# This test runs docker-registry and check if it works # This test runs docker-registry and check if it works
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "docker-registry"; name = "docker-registry";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = { nodes = {
registry = { config, pkgs, ... }: { registry = { config, pkgs, ... }: {
@ -37,4 +40,4 @@ import ./make-test.nix {
$client2->succeed("docker pull registry:8080/scratch"); $client2->succeed("docker pull registry:8080/scratch");
$client2->succeed("docker images | grep scratch"); $client2->succeed("docker images | grep scratch");
''; '';
} })

View File

@ -1,7 +1,10 @@
# This test runs docker and checks if simple container starts # This test runs docker and checks if simple container starts
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "docker"; name = "docker";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = { nodes = {
docker = docker =
@ -20,5 +23,4 @@ import ./make-test.nix {
$docker->succeed("docker ps | grep sleeping"); $docker->succeed("docker ps | grep sleeping");
$docker->succeed("docker stop sleeping"); $docker->succeed("docker stop sleeping");
''; '';
})
}

View File

@ -1,7 +1,10 @@
# This test runs etcd as single node, multy node and using discovery # This test runs etcd as single node, multy node and using discovery
import ./make-test.nix { import ./make-test.nix ({ pkgs, ... } : {
name = "etcd"; name = "etcd";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = { nodes = {
simple = simple =
@ -105,4 +108,4 @@ import ./make-test.nix {
$discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'"); $discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
}; };
''; '';
} })

View File

@ -1,5 +1,8 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "firefox"; name = "firefox";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow shlevy ];
};
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,7 +1,10 @@
# Test the firewall module. # Test the firewall module.
import ./make-test.nix { import ./make-test.nix ( { pkgs, ... } : {
name = "firewall"; name = "firewall";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = nodes =
{ walled = { walled =
@ -44,5 +47,4 @@ import ./make-test.nix {
$walled->stopJob("firewall"); $walled->stopJob("firewall");
$attacker->succeed("curl -v http://walled/ >&2"); $attacker->succeed("curl -v http://walled/ >&2");
''; '';
})
}

View File

@ -1,5 +1,8 @@
import ./make-test.nix rec { import ./make-test.nix ({ pkgs, ...} : rec {
name = "simple"; name = "simple";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = { nodes = {
node1 = node1 =
@ -70,4 +73,4 @@ import ./make-test.nix rec {
$node1->succeed("fleetctl stop hello.service"); $node1->succeed("fleetctl stop hello.service");
$node1->succeed("fleetctl destroy hello.service"); $node1->succeed("fleetctl destroy hello.service");
''; '';
} })

View File

@ -1,7 +1,10 @@
# This test runs gitlab and checks if it works # This test runs gitlab and checks if it works
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "gitlab"; name = "gitlab";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric offline ];
};
nodes = { nodes = {
gitlab = { config, pkgs, ... }: { gitlab = { config, pkgs, ... }: {
@ -18,4 +21,4 @@ import ./make-test.nix {
$gitlab->waitForUnit("gitlab-sidekiq.service"); $gitlab->waitForUnit("gitlab-sidekiq.service");
$gitlab->waitUntilSucceeds("curl http://localhost:8080/users/sign_in"); $gitlab->waitUntilSucceeds("curl http://localhost:8080/users/sign_in");
''; '';
} })

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "gnome3"; name = "gnome3";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric eelco chaoflow lethalman ];
};
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:
@ -28,5 +31,4 @@ import ./make-test.nix {
$machine->sleep(20); $machine->sleep(20);
$machine->screenshot("screen"); $machine->screenshot("screen");
''; '';
})
}

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "i3wm"; name = "i3wm";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
machine = { lib, pkgs, ... }: { machine = { lib, pkgs, ... }: {
imports = [ ./common/x11.nix ./common/user-account.nix ]; imports = [ ./common/x11.nix ./common/user-account.nix ];
@ -25,4 +28,4 @@ import ./make-test.nix {
$machine->sleep(1); $machine->sleep(1);
$machine->screenshot("terminal"); $machine->screenshot("terminal");
''; '';
} })

View File

@ -1,7 +1,10 @@
# This test runs influxdb and checks if influxdb is up and running # This test runs influxdb and checks if influxdb is up and running
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "influxdb"; name = "influxdb";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ chaoflow offline ];
};
nodes = { nodes = {
one = { config, pkgs, ... }: { one = { config, pkgs, ... }: {
@ -33,4 +36,4 @@ import ./make-test.nix {
--data-urlencode 'q=select * from foo limit 1' | grep 6666 --data-urlencode 'q=select * from foo limit 1' | grep 6666
~); ~);
''; '';
} })

View File

@ -149,12 +149,15 @@ let
makeInstallerTest = name: makeInstallerTest = name:
{ createPartitions, preBootCommands ? "", extraConfig ? "" { createPartitions, preBootCommands ? "", extraConfig ? ""
, grubVersion ? 2, grubDevice ? "/dev/vda" , grubVersion ? 2, grubDevice ? "/dev/vda"
, grubIdentifier ? "uuid", enableOCR ? false , grubIdentifier ? "uuid", enableOCR ? false, meta ? {}
}: }:
makeTest { makeTest {
inherit enableOCR; inherit enableOCR;
name = "installer-" + name; name = "installer-" + name;
meta = with pkgs.stdenv.lib.maintainers; {
# put global maintainers here, individuals go into makeInstallerTest fkt call
maintainers = [ wkennington ] ++ (meta.maintainers or []);
};
nodes = { nodes = {
# The configuration of the machine used to run "nixos-install". It # The configuration of the machine used to run "nixos-install". It

View File

@ -1,8 +1,11 @@
# Test of IPv6 functionality in NixOS, including whether router # Test of IPv6 functionality in NixOS, including whether router
# solicication/advertisement using radvd works. # solicication/advertisement using radvd works.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "ipv6"; name = "ipv6";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = nodes =
{ client = { config, pkgs, ... }: { }; { client = { config, pkgs, ... }: { };
@ -73,5 +76,4 @@ import ./make-test.nix {
# TODO: test reachability of a machine on another network. # TODO: test reachability of a machine on another network.
''; '';
})
}

View File

@ -3,8 +3,11 @@
# 2. jenkins user can be extended on both master and slave # 2. jenkins user can be extended on both master and slave
# 3. jenkins service not started on slave node # 3. jenkins service not started on slave node
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "jenkins"; name = "jenkins";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bjornfor coconnor iElectric eelco chaoflow ];
};
nodes = { nodes = {
@ -41,4 +44,4 @@ import ./make-test.nix {
$slave->mustFail("systemctl is-enabled jenkins.service"); $slave->mustFail("systemctl is-enabled jenkins.service");
''; '';
} })

View File

@ -1,5 +1,8 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "kde4"; name = "kde4";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric eelco chaoflow ];
};
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -1,7 +1,10 @@
# Test whether fast reboots via kexec work. # Test whether fast reboots via kexec work.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "kexec"; name = "kexec";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
machine = { config, pkgs, ... }: machine = { config, pkgs, ... }:
{ virtualisation.vlans = [ ]; }; { virtualisation.vlans = [ ]; };
@ -13,5 +16,4 @@ import ./make-test.nix {
$machine->{connected} = 0; $machine->{connected} = 0;
$machine->waitForUnit("multi-user.target"); $machine->waitForUnit("multi-user.target");
''; '';
})
}

View File

@ -1,7 +1,10 @@
# This test runs two node kubernetes cluster and checks if simple redis pod works # This test runs two node kubernetes cluster and checks if simple redis pod works
import ./make-test.nix rec { import ./make-test.nix ({ pkgs, ...} : rec {
name = "kubernetes"; name = "kubernetes";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
redisMaster = builtins.toFile "redis-master-pod.yaml" '' redisMaster = builtins.toFile "redis-master-pod.yaml" ''
id: redis-master-pod id: redis-master-pod
@ -176,4 +179,4 @@ import ./make-test.nix rec {
} }
''; '';
} })

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "lightdm"; name = "lightdm";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
machine = { lib, ... }: { machine = { lib, ... }: {
imports = [ ./common/user-account.nix ]; imports = [ ./common/user-account.nix ];
@ -22,4 +25,4 @@ import ./make-test.nix {
$machine->waitForText(qr/^\d{2}(?::\d{2}){2} (?:AM|PM)$/m); $machine->waitForText(qr/^\d{2}(?::\d{2}){2} (?:AM|PM)$/m);
$machine->screenshot("session"); $machine->screenshot("session");
''; '';
} })

View File

@ -2,6 +2,9 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
{ {
name = "login"; name = "login";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
machine = machine =
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:

View File

@ -1,8 +1,11 @@
# This test runs logstash and checks if messages flows and # This test runs logstash and checks if messages flows and
# elasticsearch is started. # elasticsearch is started.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "logstash"; name = "logstash";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow offline ];
};
nodes = { nodes = {
one = one =
@ -37,4 +40,4 @@ import ./make-test.nix {
$one->fail("journalctl -n 20 _SYSTEMD_UNIT=logstash.service | grep dragons"); $one->fail("journalctl -n 20 _SYSTEMD_UNIT=logstash.service | grep dragons");
$one->waitUntilSucceeds("curl -s http://127.0.0.1:9200/_status?pretty=true | grep logstash"); $one->waitUntilSucceeds("curl -s http://127.0.0.1:9200/_status?pretty=true | grep logstash");
''; '';
} })

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "simple"; name = "simple";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
machine = { config, pkgs, ... }: { machine = { config, pkgs, ... }: {
services.zookeeper.enable = true; services.zookeeper.enable = true;
@ -26,4 +29,4 @@ import ./make-test.nix {
$machine->waitForUnit("mesos-master.service"); $machine->waitForUnit("mesos-master.service");
$machine->waitForUnit("mesos-slave.service"); $machine->waitForUnit("mesos-slave.service");
''; '';
} })

View File

@ -1,7 +1,10 @@
# Miscellaneous small tests that don't warrant their own VM run. # Miscellaneous small tests that don't warrant their own VM run.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "misc"; name = "misc";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
machine = machine =
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
@ -107,5 +110,4 @@ import ./make-test.nix {
$machine->succeed("nix-store -qR /run/current-system | grep nixos-"); $machine->succeed("nix-store -qR /run/current-system | grep nixos-");
}; };
''; '';
})
}

View File

@ -1,7 +1,10 @@
# Simple example to showcase distributed tests using NixOS VMs. # Simple example to showcase distributed tests using NixOS VMs.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "mpich"; name = "mpich";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = { nodes = {
master = master =
@ -35,4 +38,4 @@ import ./make-test.nix {
$master->succeed("mpiexec -n 2 ./example >&2"); $master->succeed("mpiexec -n 2 ./example >&2");
''; '';
} })

View File

@ -1,4 +1,4 @@
import ./make-test.nix ( import ./make-test.nix ({ pkgs, ...} :
let let
client = { config, pkgs, ... }: { client = { config, pkgs, ... }: {
@ -8,6 +8,9 @@ let
in in
{ {
name = "mumble"; name = "mumble";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ thoughtpolice eelco chaoflow ];
};
nodes = { nodes = {
server = { config, pkgs, ... }: { server = { config, pkgs, ... }: {

View File

@ -1,8 +1,11 @@
# This test runs basic munin setup with node and cron job running on the same # This test runs basic munin setup with node and cron job running on the same
# machine. # machine.
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "munin"; name = "munin";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric eelco chaoflow ];
};
nodes = { nodes = {
one = one =
@ -29,4 +32,4 @@ import ./make-test.nix {
$one->waitForFile("/var/lib/munin/one/one-uptime-uptime-g.rrd"); $one->waitForFile("/var/lib/munin/one/one-uptime-uptime-g.rrd");
$one->waitForFile("/var/www/munin/one/index.html"); $one->waitForFile("/var/www/munin/one/index.html");
''; '';
} })

View File

@ -1,4 +1,4 @@
import ./make-test.nix ( import ./make-test.nix ({ pkgs, ...} :
let let
replicateUser = "replicate"; replicateUser = "replicate";
@ -7,6 +7,9 @@ in
{ {
name = "mysql-replication"; name = "mysql-replication";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow shlevy ];
};
nodes = { nodes = {
master = master =

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "mysql"; name = "mysql";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow shlevy ];
};
nodes = { nodes = {
master = master =
@ -20,4 +23,4 @@ import ./make-test.nix {
$master->sleep(10); # Hopefully this is long enough!! $master->sleep(10); # Hopefully this is long enough!!
$master->succeed("echo 'use testdb; select * from tests' | mysql -u root -N | grep 4"); $master->succeed("echo 'use testdb; select * from tests' | mysql -u root -N | grep 4");
''; '';
} })

View File

@ -3,12 +3,15 @@
# client on the inside network, a server on the outside network, and a # client on the inside network, a server on the outside network, and a
# router connected to both that performs Network Address Translation # router connected to both that performs Network Address Translation
# for the client. # for the client.
import ./make-test.nix ({ withFirewall, ... }: import ./make-test.nix ({ pkgs, withFirewall, ... }:
let let
unit = if withFirewall then "firewall" else "nat"; unit = if withFirewall then "firewall" else "nat";
in in
{ {
name = "nat${if withFirewall then "WithFirewall" else "Standalone"}"; name = "nat${if withFirewall then "WithFirewall" else "Standalone"}";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow rob wkennington ];
};
nodes = nodes =
{ client = { client =

View File

@ -10,8 +10,11 @@ let default-config = {
virtualisation.memorySize = 128; virtualisation.memorySize = 128;
}; };
in import ./make-test.nix { in import ./make-test.nix ({ pkgs, ...} : {
name = "networking-proxy"; name = "networking-proxy";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ];
};
nodes = { nodes = {
# no proxy # no proxy
@ -105,5 +108,4 @@ in import ./make-test.nix {
$machine4->mustSucceed("su - alice -c 'env | grep -i ftp_proxy | grep 000'"); $machine4->mustSucceed("su - alice -c 'env | grep -i ftp_proxy | grep 000'");
$machine4->mustSucceed("su - alice -c 'env | grep -i no_proxy | grep 131415'"); $machine4->mustSucceed("su - alice -c 'env | grep -i no_proxy | grep 131415'");
''; '';
})
}

View File

@ -1,4 +1,4 @@
import ./make-test.nix ({ networkd, test, ... }: import ./make-test.nix ({ pkgs, networkd, test, ... }:
let let
router = { config, pkgs, ... }: router = { config, pkgs, ... }:
with pkgs.lib; with pkgs.lib;
@ -389,4 +389,7 @@ import ./make-test.nix ({ networkd, test, ... }:
case = testCases.${test}; case = testCases.${test};
in case // { in case // {
name = "${case.name}-Networking-${if networkd then "Networkd" else "Scripted"}"; name = "${case.name}-Networking-${if networkd then "Networkd" else "Scripted"}";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ wkennington ];
};
}) })

View File

@ -1,4 +1,4 @@
import ./make-test.nix ({ version ? 4, ... }: import ./make-test.nix ({ pkgs, version ? 4, ... }:
let let
@ -18,6 +18,9 @@ in
{ {
name = "nfs"; name = "nfs";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow wkennington ];
};
nodes = nodes =
{ client1 = client; { client1 = client;
@ -83,5 +86,4 @@ in
my $duration = time - $t1; my $duration = time - $t1;
die "shutdown took too long ($duration seconds)" if $duration > 30; die "shutdown took too long ($duration seconds)" if $duration > 30;
''; '';
}) })

View File

@ -5,8 +5,11 @@ let
# for a host utility with IPv6 support # for a host utility with IPv6 support
environment.systemPackages = [ pkgs.bind ]; environment.systemPackages = [ pkgs.bind ];
}; };
in import ./make-test.nix { in import ./make-test.nix ({ pkgs, ...} : {
name = "nsd"; name = "nsd";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
nodes = { nodes = {
clientv4 = { lib, nodes, ... }: { clientv4 = { lib, nodes, ... }: {
@ -80,4 +83,4 @@ in import ./make-test.nix {
}; };
} }
''; '';
} })

View File

@ -17,6 +17,9 @@ let
in { in {
name = "openssh"; name = "openssh";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig eelco chaoflow ];
};
nodes = { nodes = {

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "panamax"; name = "panamax";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
machine = { config, pkgs, ... }: { machine = { config, pkgs, ... }: {
services.panamax.enable = true; services.panamax.enable = true;
@ -15,4 +18,4 @@ import ./make-test.nix {
$machine->succeed("curl --fail http://localhost:8888/ > /dev/null"); $machine->succeed("curl --fail http://localhost:8888/ > /dev/null");
$machine->shutdown; $machine->shutdown;
''; '';
} })

View File

@ -1,7 +1,10 @@
# This test runs peerflix and checks if peerflix starts # This test runs peerflix and checks if peerflix starts
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "peerflix"; name = "peerflix";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
};
nodes = { nodes = {
peerflix = peerflix =
@ -17,5 +20,4 @@ import ./make-test.nix {
$peerflix->waitForUnit("peerflix.service"); $peerflix->waitForUnit("peerflix.service");
$peerflix->waitUntilSucceeds("curl localhost:9000"); $peerflix->waitUntilSucceeds("curl localhost:9000");
''; '';
})
}

View File

@ -1,5 +1,8 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "phabricator"; name = "phabricator";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ chaoflow ];
};
nodes = { nodes = {
storage = storage =

View File

@ -2,6 +2,9 @@
import ./make-test.nix ({pkgs, ... }: { import ./make-test.nix ({pkgs, ... }: {
name = "printing"; name = "printing";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric eelco chaoflow jgeerds vcunat ];
};
nodes = { nodes = {
@ -90,5 +93,4 @@ import ./make-test.nix ({pkgs, ... }: {
}; };
} }
''; '';
}) })

View File

@ -1,4 +1,4 @@
import ./make-test.nix ( import ./make-test.nix ({ pkgs, ...} :
let let
@ -15,6 +15,9 @@ in
{ {
name = "proxy"; name = "proxy";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = nodes =
{ proxy = { proxy =
@ -89,5 +92,4 @@ in
$backend2->unblock; $backend2->unblock;
$client->succeed("curl --fail http://proxy/"); $client->succeed("curl --fail http://proxy/");
''; '';
}) })

View File

@ -1,4 +1,4 @@
import ./make-test.nix ( import ./make-test.nix ({ pkgs, ...} :
let let
@ -14,6 +14,9 @@ in
rec { rec {
name = "quake3"; name = "quake3";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ iElectric eelco chaoflow ];
};
# TODO: lcov doesn't work atm # TODO: lcov doesn't work atm
#makeCoverageReport = true; #makeCoverageReport = true;

View File

@ -2,6 +2,9 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "rabbitmq"; name = "rabbitmq";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow offline ];
};
nodes = { nodes = {
one = { config, pkgs, ... }: { one = { config, pkgs, ... }: {

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "simple"; name = "simple";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco ];
};
machine = { config, pkgs, ... }: { }; machine = { config, pkgs, ... }: { };
@ -9,4 +12,4 @@ import ./make-test.nix {
$machine->waitForUnit("multi-user.target"); $machine->waitForUnit("multi-user.target");
$machine->shutdown; $machine->shutdown;
''; '';
} })

View File

@ -1,4 +1,4 @@
import ./make-test.nix ( import ./make-test.nix ({ pkgs, ...} :
let let
@ -33,6 +33,9 @@ in
{ {
name = "subversion"; name = "subversion";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = nodes =
{ webserver = { webserver =

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "tomcat"; name = "tomcat";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = { nodes = {
server = server =
@ -25,5 +28,4 @@ import ./make-test.nix {
$client->succeed("curl --fail http://server/examples/servlets/servlet/HelloWorldExample"); $client->succeed("curl --fail http://server/examples/servlets/servlet/HelloWorldExample");
$client->succeed("curl --fail http://server/examples/jsp/jsp2/simpletag/hello.jsp"); $client->succeed("curl --fail http://server/examples/jsp/jsp2/simpletag/hello.jsp");
''; '';
})
}

View File

@ -1,5 +1,8 @@
import ./make-test.nix ({ pkgs, ... }: { import ./make-test.nix ({ pkgs, ... }: {
name = "trac"; name = "trac";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
nodes = { nodes = {
storage = storage =

View File

@ -11,6 +11,9 @@ in
{ {
name = "udisks2"; name = "udisks2";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow ];
};
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:

View File

@ -298,6 +298,9 @@ import ./make-test.nix ({ pkgs, ... }: with pkgs.lib; let
in { in {
name = "virtualbox"; name = "virtualbox";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig wkennington ];
};
machine = { pkgs, lib, config, ... }: { machine = { pkgs, lib, config, ... }: {
imports = let imports = let

View File

@ -1,5 +1,8 @@
import ./make-test.nix { import ./make-test.nix ({ pkgs, ...} : {
name = "xfce"; name = "xfce";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco chaoflow shlevy ];
};
machine = machine =
{ config, pkgs, ... }: { config, pkgs, ... }:
@ -28,5 +31,4 @@ import ./make-test.nix {
$machine->sleep(10); $machine->sleep(10);
$machine->screenshot("screen"); $machine->screenshot("screen");
''; '';
})
}

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, emacs, let-alist, dash, texinfo }: { stdenv, fetchFromGitHub, emacs, let-alist, dash, texinfo }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "flycheck-0.22-64-g90dbc2d"; name = "flycheck-0.22-64-g90dbc2d";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -24,8 +24,8 @@ stdenv.mkDerivation {
''; '';
meta = { meta = {
homepage = "https://github.com/magit/git-modes"; inherit (src.meta) homepage;
description = "Emacs modes for various Git-related files"; description = "Modern on-the-fly syntax checking for GNU Emacs";
license = stdenv.lib.licenses.gpl3Plus; license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ simons ]; maintainers = with stdenv.lib.maintainers; [ simons ];
}; };

View File

@ -0,0 +1,34 @@
{ stdenv, pythonPackages, fetchurl }:
pythonPackages.buildPythonPackage rec {
name = "bleachbit-${version}";
version = "1.8";
namePrefix = "";
src = fetchurl {
url = "mirror://sourceforge/bleachbit/bleachbit-1.8.tar.bz2";
sha256 = "dbf50fcbf24b8b3dd1c4325cd62352628d089f88a76eab804df5d90c872ee592";
};
buildInputs = [ pythonPackages.wrapPython ];
doCheck = false;
postInstall = ''
mkdir -p $out/bin
cp bleachbit.py $out/bin/bleachbit
chmod +x $out/bin/bleachbit
substituteInPlace $out/bin/bleachbit --replace "#!/usr/bin/env python" "#!${pythonPackages.python.interpreter}"
'';
propagatedBuildInputs = with pythonPackages; [ pygtk sqlite3 ];
meta = {
homepage = "http://bleachbit.sourceforge.net";
description = "A program to clean your computer";
longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy.";
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ leonardoce ];
};
}

View File

@ -10,11 +10,11 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "blender-2.75"; name = "blender-2.75a";
src = fetchurl { src = fetchurl {
url = "http://download.blender.org/source/${name}.tar.gz"; url = "http://download.blender.org/source/${name}.tar.gz";
sha256 = "1r3qyj57g06ir424q7szxkyb6h0b7laq7f126158kgs94xpkhlsz"; sha256 = "09lxb2li70p6fg7hbakin9ffy3b3101c1gdjqi3pykks5q3h9sq4";
}; };
buildInputs = buildInputs =

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, qt4, boost, proj, gdal}: {stdenv, fetchurl, qt4, boost, proj, gdal_1_11_2}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "merkaartor-0.18.1"; name = "merkaartor-0.18.1";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
qmake -makefile PREFIX=$out qmake -makefile PREFIX=$out
''; '';
buildInputs = [ qt4 boost proj gdal ]; buildInputs = [ qt4 boost proj gdal_1_11_2 ];
meta = { meta = {
description = "An openstreetmap editor"; description = "An openstreetmap editor";

View File

@ -1,45 +1,40 @@
{ fetchurl, stdenv, libX11, libXrandr, libXxf86vm, libxcb, pkgconfig, python { fetchurl, stdenv, gettext, geoclue, intltool, makeWrapper
, randrproto, xcbutil, xf86vidmodeproto, autoconf, automake, gettext, glib , pkgconfig , python, pygobject3, pyxdg }:
, GConf, dbus, dbus_glib, makeWrapper, gtk, pygtk, pyxdg, geoclue }:
stdenv.mkDerivation rec { let version = "1.10"; in
version = "1.9.1"; stdenv.mkDerivation {
name = "redshift-${version}"; name = "redshift-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/jonls/redshift/archive/v${version}.tar.gz"; sha256 = "19pfk9il5x2g2ivqix4a555psz8mj3m0cvjwnjpjvx0llh5fghjv";
sha256 = "0rj7lyg4ikwpk1hr1k2bgk9gjqvvv51z8hydsgpx2k2lqdv6lqri"; url = "https://github.com/jonls/redshift/releases/download/v${version}/redshift-${version}.tar.xz";
}; };
buildInputs = [ buildInputs = [
libX11 libXrandr libXxf86vm libxcb pkgconfig python randrproto xcbutil gettext intltool makeWrapper pkgconfig python pygobject3 pyxdg
xf86vidmodeproto autoconf automake gettext glib GConf dbus dbus_glib
makeWrapper gtk pygtk pyxdg geoclue
]; ];
preConfigure = ''
./bootstrap
'';
preInstall = '' preInstall = ''
substituteInPlace src/redshift-gtk/redshift-gtk python --replace "/usr/bin/env python" "${python}/bin/${python.executable}" substituteInPlace src/redshift-gtk/redshift-gtk python \
--replace "/usr/bin/env python3" "${python}/bin/${python.executable}"
''; '';
/* /*
postInstall = '' postInstall = ''
wrapProgram "$out/bin/redshift-gtk" --prefix PYTHONPATH : $PYTHONPATH:${pygtk}/lib/${python.libPrefix}/site-packages/gtk-2.0:${pyxdg}/lib/${python.libPrefix}/site-packages/pyxdg:$out/lib/${python.libPrefix}/site-packages wrapProgram "$out/bin/redshift-gtk" --prefix PYTHONPATH : $PYTHONPATH
''; '';
*/ */
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "changes the color temperature of your screen gradually"; inherit version;
description = "Gradually change screen color temperature";
longDescription = '' longDescription = ''
The color temperature is set according to the position of the The color temperature is set according to the position of the
sun. A different color temperature is set during night and sun. A different color temperature is set during night and
daytime. During twilight and early morning, the color daytime. During twilight and early morning, the color
temperature transitions smoothly from night to daytime temperature transitions smoothly from night to daytime
temperature to allow your eyes to slowly adapt. temperature to allow your eyes to slowly adapt.
''; '';
license = stdenv.lib.licenses.gpl3Plus; license = licenses.gpl3Plus;
homepage = http://jonls.dk/redshift; homepage = http://jonls.dk/redshift;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.mornfall ]; maintainers = with maintainers; [ mornfall nckx ];
}; };
} }

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "rofi-${version}"; name = "rofi-${version}";
version = "0.15.5"; version = "0.15.7";
src = fetchurl { src = fetchurl {
url = "https://github.com/DaveDavenport/rofi/archive/${version}.tar.gz"; url = "https://github.com/DaveDavenport/rofi/archive/${version}.tar.gz";
sha256 = "16dffwxqxcx5krb6v1m6gh0r6d0a4hwl0jq4fdyblcv9xid5hxf5"; sha256 = "0alygwc82shkg9lmy8r5vmgd84imx1f9pndrisjpisl8h28dw5dq";
}; };
buildInputs = [ autoconf automake pkgconfig libX11 libXinerama libXft pango buildInputs = [ autoconf automake pkgconfig libX11 libXinerama libXft pango

View File

@ -2,14 +2,14 @@
let let
name = "vifm-${version}"; name = "vifm-${version}";
version = "0.7.8"; version = "0.8";
in stdenv.mkDerivation { in stdenv.mkDerivation {
inherit name; inherit name;
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/project/vifm/vifm/${name}.tar.bz2"; url = "mirror://sourceforge/project/vifm/vifm/${name}.tar.bz2";
sha256 = "00vnkr60ci6qwh95kzx399xm97g26svxl9i0y77qv99q41nb5ysx"; sha256 = "1syyvdcgwnvjxzmpf9f4gfi0ipwmlavg11zr7wiz8qplvi86psv9";
}; };
buildInputs = [ utillinux ncurses file libX11 which groff ]; buildInputs = [ utillinux ncurses file libX11 which groff ];

View File

@ -36,7 +36,7 @@
let let
# -> http://get.adobe.com/flashplayer/ # -> http://get.adobe.com/flashplayer/
version = "11.2.202.468"; version = "11.2.202.481";
src = src =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec { else rec {
inherit version; inherit version;
url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "1vybrw5cwhl4zz9z4fy1lnvs60zz382blas7kann7wj8r4pvx0zl"; sha256 = "151di671xqywjif3v4hbsfw55jyd5x5qjq2zc92xw367pssi29yz";
} }
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
if debug then if debug then
@ -60,7 +60,7 @@ let
else rec { else rec {
inherit version; inherit version;
url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; url = "http://fpdownload.adobe.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "1bczdgda040nnfmr9sq4q1a0dy9zbnq76g4dsjw3md4glxkmqv8l"; sha256 = "05ydrw1ykp49b409bkpvizhf1bz1xmfxa7alfdnabvg90vkfvyvn";
} }
else throw "Flash Player is not supported on this platform"; else throw "Flash Player is not supported on this platform";

View File

@ -86,7 +86,7 @@ GEM
railties (>= 3.2.16) railties (>= 3.2.16)
json (1.8.2) json (1.8.2)
kramdown (1.4.0) kramdown (1.4.0)
libv8 (3.16.14.7) libv8 (3.16.14.11)
mail (2.6.3) mail (2.6.3)
mime-types (>= 1.16, < 3) mime-types (>= 1.16, < 3)
method_source (0.8.2) method_source (0.8.2)

View File

@ -332,11 +332,11 @@
sha256 = "001vy0ymiwbvkdbb9wpqmswv6imliv7xim00gq6rlk0chnbiaq80"; sha256 = "001vy0ymiwbvkdbb9wpqmswv6imliv7xim00gq6rlk0chnbiaq80";
}; };
}; };
"libv8" = { libv8 = {
version = "3.16.14.7"; version = "3.16.14.11";
source = { source = {
type = "gem"; type = "gem";
sha256 = "0dv5q5n5nf6b8h3fybwmsr3vkj70w4g1jpf6661j3hsv9vp0g4qq"; sha256 = "000vbiy78wk5r1f6p7qncab8ldg7qw5pjz7bchn3lw700gpaacxp";
}; };
}; };
"mail" = { "mail" = {
@ -786,4 +786,4 @@
"railties" "railties"
]; ];
}; };
} }

View File

@ -6,11 +6,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "spark-${version}"; name = "spark-${version}";
version = "1.1.1"; version = "1.4.0";
src = fetchurl { src = fetchurl {
url = "http://d3kbcqa49mib13.cloudfront.net/${name}-bin-cdh4.tgz"; url = "mirror://apache/spark/${name}/${name}-bin-cdh4.tgz";
sha256 = "1k0lw8aq5is3gnsrm8q24s0knga6kb3c9xsca20g11fy8b0y4nvk"; sha256 = "1w60xzzg9mcymin1pmqwx1mvcqmdpfyxhd2dmw5alhnrzi21ycxi";
}; };
buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ] buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext { stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
, pkgconfig, xdg_utils, gtk2, sqlite }: , pkgconfig, xdg_utils, gtk2, sqlite }:
let version = "3.11.0.2"; in let version = "3.12.0.2"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "filezilla-${version}"; name = "filezilla-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2"; url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
sha256 = "1nc9d46jwz3x9dd6na1ds8rq8a797xr29r9wkhgxv6y20cla06rl"; sha256 = "038xgvajn0nq1dzw1pac3xwhmil1y17vhadd2hx0vl4lrp16yabs";
}; };
configureFlags = [ configureFlags = [

View File

@ -1,12 +1,13 @@
{ stdenv, fetchurl, pythonPackages, pyqt4, cython, libvncserver, zlib, twisted, gnutls }: { stdenv, fetchurl, pythonPackages, pyqt4, cython, libvncserver, zlib, twisted
, gnutls, libvpx }:
pythonPackages.buildPythonPackage rec { pythonPackages.buildPythonPackage rec {
name = "blink-${version}"; name = "blink-${version}";
version = "1.3.0"; version = "1.4.0";
src = fetchurl { src = fetchurl {
url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz"; url = "http://download.ag-projects.com/BlinkQt/${name}.tar.gz";
sha256 = "388a0ca72ad99087cd87b78a4c449f9c079117920bfc50d7843853b8f942d045"; sha256 = "0vd4ky4djhrrlmfpz7g43bxjynhpql4d3s9jdirh21kc8d1bgayk";
}; };
patches = [ ./pythonpath.patch ]; patches = [ ./pythonpath.patch ];
@ -14,17 +15,21 @@ pythonPackages.buildPythonPackage rec {
sed -i 's|@out@|'"''${out}"'|g' blink/resources.py sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
''; '';
propagatedBuildInputs = [ pyqt4 pythonPackages.cjson pythonPackages.sipsimple twisted ]; propagatedBuildInputs = with pythonPackages;[ pyqt4 cjson sipsimple twisted
];
buildInputs = [ cython zlib libvncserver ]; buildInputs = [ cython zlib libvncserver libvpx ];
postInstall = '' postInstall = ''
wrapProgram $out/bin/blink \ wrapProgram $out/bin/blink \
--prefix LD_LIBRARY_PATH : ${gnutls}/lib --prefix LD_LIBRARY_PATH ":" ${gnutls}/lib
''; '';
meta = { meta = with stdenv.lib; {
homepage = http://icanblink.com/; homepage = http://icanblink.com/;
description = "A state of the art, easy to use SIP client"; description = "A state of the art, easy to use SIP client";
platforms = platforms.linux;
license = licenses.mit;
maintainers = with maintainers; [ pSub ];
}; };
} }

View File

@ -4,123 +4,123 @@
# ruby generate_source.rb > source.nix # ruby generate_source.rb > source.nix
{ {
version = "38.0.1"; version = "38.1.0";
sources = [ sources = [
{ locale = "ar"; arch = "linux-i686"; sha1 = "b61125483c46602e64ab7c4b56ff2f9612453ad3"; } { locale = "ar"; arch = "linux-i686"; sha1 = "0b5babaeec839aedb879b98dc540a3c44e1c0a39"; }
{ locale = "ar"; arch = "linux-x86_64"; sha1 = "4ac5de506c61fc769e6805f599cb7131b243812c"; } { locale = "ar"; arch = "linux-x86_64"; sha1 = "c70e123c8e04a8366e2a96a948006caf3b084d2f"; }
{ locale = "ast"; arch = "linux-i686"; sha1 = "07ea0b98e651e650d2f11322b5c8ce55bb083217"; } { locale = "ast"; arch = "linux-i686"; sha1 = "a17ad952ce2ec1dfe6dc797b4377ae694930578c"; }
{ locale = "ast"; arch = "linux-x86_64"; sha1 = "b0b37462e0bb5443f408724b62421e59ae68389b"; } { locale = "ast"; arch = "linux-x86_64"; sha1 = "dbf6b871e6ac7a5701a5e8ce1aa1c974e43c62db"; }
{ locale = "be"; arch = "linux-i686"; sha1 = "61feae6377bcca63225ba945b7067dad8eb5a0fa"; } { locale = "be"; arch = "linux-i686"; sha1 = "e7f9d73339eb55d374a172445c11da33ecff8f8f"; }
{ locale = "be"; arch = "linux-x86_64"; sha1 = "b58385f605b7a08f17e06faa922899c42a2076c0"; } { locale = "be"; arch = "linux-x86_64"; sha1 = "b619fc248f8cd704eebbf92bd999949e0a0d2935"; }
{ locale = "bg"; arch = "linux-i686"; sha1 = "ddbb0681076511828c91373354aa9a3861ee3943"; } { locale = "bg"; arch = "linux-i686"; sha1 = "09cb9ee2b5a9d25430467961657a4d60610437d2"; }
{ locale = "bg"; arch = "linux-x86_64"; sha1 = "734acaa1870773d9ccf687e65d553797b3d00bca"; } { locale = "bg"; arch = "linux-x86_64"; sha1 = "c8b63f07ee7ac0d2f4e18f6e401d012c8bfcceae"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha1 = "32ad3307c919ec10bcbb9f99f8d37bb5daec5903"; } { locale = "bn-BD"; arch = "linux-i686"; sha1 = "d20033996503ad6f690e8fe8f8201bf02c453c98"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "4e87b8ff753b1680b0b9b5149fc75238bff91c6d"; } { locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "f8b45a57a2ed4ce232d20224afdc6c4e0338743a"; }
{ locale = "br"; arch = "linux-i686"; sha1 = "b319d6f853311b103c439a482ee12652d751e22f"; } { locale = "br"; arch = "linux-i686"; sha1 = "567ac67210f34a267e53f74f31cc91131f07eaa7"; }
{ locale = "br"; arch = "linux-x86_64"; sha1 = "0254d1edcc2b1fbc8cec01c96482c381d34be88b"; } { locale = "br"; arch = "linux-x86_64"; sha1 = "9cef9f6a5fbca4e1d0bc912dddf07200f1f8f8a4"; }
{ locale = "ca"; arch = "linux-i686"; sha1 = "deb0caf34895379b2e7dd01871c510f92ba96561"; } { locale = "ca"; arch = "linux-i686"; sha1 = "346d439ea1092f3c9a7d7077bb2fe3910d672935"; }
{ locale = "ca"; arch = "linux-x86_64"; sha1 = "f580f9044bb115b3077ba012fe1b3be289853911"; } { locale = "ca"; arch = "linux-x86_64"; sha1 = "b099cc648318d7826949110d75851108f8dd2669"; }
{ locale = "cs"; arch = "linux-i686"; sha1 = "045f3d7adade1133325e6607971ec70cad85c91a"; } { locale = "cs"; arch = "linux-i686"; sha1 = "3b72f45ccd22beb2fdfbc92014b4a3ccfa80e76b"; }
{ locale = "cs"; arch = "linux-x86_64"; sha1 = "9fc2fa5a44886db96bcdb4d23d69593954a84ca2"; } { locale = "cs"; arch = "linux-x86_64"; sha1 = "e38710c2d1f90202813d95b2fde32fdde4d4091e"; }
{ locale = "cy"; arch = "linux-i686"; sha1 = "6fb9ca5be336db1b149e4ac6e53e51fd32fbd84e"; } { locale = "cy"; arch = "linux-i686"; sha1 = "12a179f42fb8c3a11fc5985667e4f604e14ba8c5"; }
{ locale = "cy"; arch = "linux-x86_64"; sha1 = "517dfd262c4f23fba743299381f51f7863cd32d7"; } { locale = "cy"; arch = "linux-x86_64"; sha1 = "6407a7b3cd5b4dcb306823a4085c85f960c292f9"; }
{ locale = "da"; arch = "linux-i686"; sha1 = "bdd5d63545fb09540a5ff8ada7d421deb865dc61"; } { locale = "da"; arch = "linux-i686"; sha1 = "9c49871f3ff4ecfe33077c6ebf05e166d19651a0"; }
{ locale = "da"; arch = "linux-x86_64"; sha1 = "fa4f26001b4281f4bd9b741a897e1a420c40b604"; } { locale = "da"; arch = "linux-x86_64"; sha1 = "8d6299fe5998113da4c623083957a204296affd5"; }
{ locale = "de"; arch = "linux-i686"; sha1 = "566603c44ba6df21d7504bfb49ea235f5cb64e00"; } { locale = "de"; arch = "linux-i686"; sha1 = "06a6c73f4a640060ae7b8aa02011558d2767acb2"; }
{ locale = "de"; arch = "linux-x86_64"; sha1 = "60675d5905838ac54c0c2a961d88d021c446ec50"; } { locale = "de"; arch = "linux-x86_64"; sha1 = "8fffb7568b982c1202de754cb2a2e8fcb16910f5"; }
{ locale = "dsb"; arch = "linux-i686"; sha1 = "74feac72b6ad05b00a6c4495f751f106b77b3997"; } { locale = "dsb"; arch = "linux-i686"; sha1 = "31a8674c191829fa4abeb403053b8266f23b983c"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha1 = "fbb936459a2287117e5638ef78ba1d647f4be41f"; } { locale = "dsb"; arch = "linux-x86_64"; sha1 = "bb86a2aafcf5d6d358eeda8e572956b90ca1e275"; }
{ locale = "el"; arch = "linux-i686"; sha1 = "eedbcc1df60912b2f5be83dc2459cd06914b91f5"; } { locale = "el"; arch = "linux-i686"; sha1 = "3db0fafa71f7e1fe0cc9036c343d12aa35988e04"; }
{ locale = "el"; arch = "linux-x86_64"; sha1 = "ead82b60f2b07a63ff84ed6f35f9527c1b030c24"; } { locale = "el"; arch = "linux-x86_64"; sha1 = "4ddd0c373b00621fa271a1301e75930f5acc6657"; }
{ locale = "en-GB"; arch = "linux-i686"; sha1 = "17ed78e8f063f39a7c73795e9a251f187dc2a04c"; } { locale = "en-GB"; arch = "linux-i686"; sha1 = "6e240781d53a1853ee5be2eee18cdcb17949a228"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha1 = "42f427fe628cbc182459f66a7d87d78845d50e57"; } { locale = "en-GB"; arch = "linux-x86_64"; sha1 = "d203791c4ce8da5d2e68a3485f3bed8933f929d3"; }
{ locale = "en-US"; arch = "linux-i686"; sha1 = "9f264dbd88d96149a92601e33dbed497189b281d"; } { locale = "en-US"; arch = "linux-i686"; sha1 = "0e4097922c16620c04bb68cd3474f813cf8c60e0"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha1 = "a8df74c9655501ee9e4c876b05e14b9a2605a591"; } { locale = "en-US"; arch = "linux-x86_64"; sha1 = "39bfc23dd04a59f3465e8a0b583ca72fc9bc2c8a"; }
{ locale = "es-AR"; arch = "linux-i686"; sha1 = "4e467b8e662345bba07ec768055899175823764b"; } { locale = "es-AR"; arch = "linux-i686"; sha1 = "82887b30873baff493688a3d9b2b8acb0e335ed1"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha1 = "96994e1c9b6e8d27d1b7bf91a2d0d47b25d67bcb"; } { locale = "es-AR"; arch = "linux-x86_64"; sha1 = "d48e6977535776e5547969c486abb68f4a7f70d2"; }
{ locale = "es-ES"; arch = "linux-i686"; sha1 = "db1574237be55846c386138b55beacf247cdf8b8"; } { locale = "es-ES"; arch = "linux-i686"; sha1 = "d9aad735745addbbe619ce51c6b793ce10a967bf"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha1 = "1e474e7001a14bfba44e933cca875b10032b22fc"; } { locale = "es-ES"; arch = "linux-x86_64"; sha1 = "c429c1b6e38523b9912d5c9ae1425a48075fb2fd"; }
{ locale = "et"; arch = "linux-i686"; sha1 = "3385f3aa8432a66b4f400158ba079808a0982c6b"; } { locale = "et"; arch = "linux-i686"; sha1 = "9fe1aaab4c8f53b4d01b1374511121a3cba3b38d"; }
{ locale = "et"; arch = "linux-x86_64"; sha1 = "aad77f411f5c3a6161bbb6b80566d9065e15c8a0"; } { locale = "et"; arch = "linux-x86_64"; sha1 = "b5759e44971e09703f4112499c85347fc30a5ef1"; }
{ locale = "eu"; arch = "linux-i686"; sha1 = "98820960354c89dc9e7178b3c783df733597ef27"; } { locale = "eu"; arch = "linux-i686"; sha1 = "0e91e95057246a9843faca8a0c53b772f329d51d"; }
{ locale = "eu"; arch = "linux-x86_64"; sha1 = "77c3946d778ccea30f22a08f38d5336110d87d43"; } { locale = "eu"; arch = "linux-x86_64"; sha1 = "b5cf9660cc877d3ca6943f4d365f02f3b5eb4ffa"; }
{ locale = "fi"; arch = "linux-i686"; sha1 = "63c7a82cbfc8d5c52424244ccab51868aa498416"; } { locale = "fi"; arch = "linux-i686"; sha1 = "116118d2e4540502c2b71c9d1fcf121923016d8d"; }
{ locale = "fi"; arch = "linux-x86_64"; sha1 = "a590ff89b5616463ce32091c09c0b74d6f6a8773"; } { locale = "fi"; arch = "linux-x86_64"; sha1 = "fdbefa73fb355d4a97b7be2cc7f2785757c62d72"; }
{ locale = "fr"; arch = "linux-i686"; sha1 = "4e7902977f83139926131db13731632a9c4e105c"; } { locale = "fr"; arch = "linux-i686"; sha1 = "f9055260509b2bc85a7e8a95d13c90be4443054f"; }
{ locale = "fr"; arch = "linux-x86_64"; sha1 = "2d7a1e725ae2aad6dfcc2e9d891999a40a242fe9"; } { locale = "fr"; arch = "linux-x86_64"; sha1 = "a5b880cea53c7ae278f6d6bb70208d697d2aa928"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha1 = "fad0d47e75d9191d85d5d1e6bf2f9f4f5ec08fb2"; } { locale = "fy-NL"; arch = "linux-i686"; sha1 = "77ca3d79ff9d8ebef0dac367b0025515663d11b0"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "ab42e792567affd3007848822eb26afc2bea0e94"; } { locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "40f3c82cc93286032facea886636e95558ecedf3"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha1 = "3faa798e14f9acd36a120b9f4e9c961c27df825c"; } { locale = "ga-IE"; arch = "linux-i686"; sha1 = "1ecc581714b9ee079bea5de14cffdd35cea8a253"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "afe90e25771a101286365d37470f00c52a8f2392"; } { locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "e5c270d9f4443068ba83dd6dcd7fb1bc318a8957"; }
{ locale = "gd"; arch = "linux-i686"; sha1 = "aed0d96aa093a9f168c702d4e1c39d5c6077df3b"; } { locale = "gd"; arch = "linux-i686"; sha1 = "c6db2b2d54257eb9376a95a63a8ec630661b859f"; }
{ locale = "gd"; arch = "linux-x86_64"; sha1 = "e3faf40265be42ca2c0412a97b4ac689c9d5d6a4"; } { locale = "gd"; arch = "linux-x86_64"; sha1 = "bb561dd4a2cd0e72f6ec8d4abd7d30505603fbdf"; }
{ locale = "gl"; arch = "linux-i686"; sha1 = "1ef2f1f69c042a2aeb340df9faf9019df19dbf35"; } { locale = "gl"; arch = "linux-i686"; sha1 = "00d3aa2504711fa89190068427e9c8c3fdb20f8e"; }
{ locale = "gl"; arch = "linux-x86_64"; sha1 = "bc026a910ea03aa795d59d81836ec5dd6efb1370"; } { locale = "gl"; arch = "linux-x86_64"; sha1 = "4f0950bf70cea56969bf044d459799d54675b0ef"; }
{ locale = "he"; arch = "linux-i686"; sha1 = "87a2923688d5a9eb63b8a41200ba5afc6c00d954"; } { locale = "he"; arch = "linux-i686"; sha1 = "dbfc82675022ddf4ca69bd64aedd62b7c670b6e0"; }
{ locale = "he"; arch = "linux-x86_64"; sha1 = "5067560a1a56d6cbbb163d2b73bce68451956413"; } { locale = "he"; arch = "linux-x86_64"; sha1 = "7c28e93a85543021861eb9314d3661edda04b086"; }
{ locale = "hr"; arch = "linux-i686"; sha1 = "74605669d56d0cc6e93fecce04d52771680f39f6"; } { locale = "hr"; arch = "linux-i686"; sha1 = "b39ac627848ade0617430e284fed55d3ae846b8d"; }
{ locale = "hr"; arch = "linux-x86_64"; sha1 = "d749c4ad35a02c01e50358d11a1d7034ad402bce"; } { locale = "hr"; arch = "linux-x86_64"; sha1 = "3ae901876dbe64fa30969dedc1d60e092a4f7924"; }
{ locale = "hsb"; arch = "linux-i686"; sha1 = "1e0a75dfa4627afa34e2348c71c64501b6ebac12"; } { locale = "hsb"; arch = "linux-i686"; sha1 = "0d20bc9316882548fa3ce9797af3fdc95ff88cfe"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha1 = "43f703566076db2e3b08703d6e3faac336ffff88"; } { locale = "hsb"; arch = "linux-x86_64"; sha1 = "3a94683a81a76ce73453f2b3466c256b3e3e1e66"; }
{ locale = "hu"; arch = "linux-i686"; sha1 = "b1bc08f9fd116d022c9c2710a9e25d176a1ee2a7"; } { locale = "hu"; arch = "linux-i686"; sha1 = "88998fc8b637cbde34c37120e637ebd1a080f75b"; }
{ locale = "hu"; arch = "linux-x86_64"; sha1 = "8fe7b6923d46f30ffbac5a97fe9bde7625a9bc26"; } { locale = "hu"; arch = "linux-x86_64"; sha1 = "374cc24a23cc80c552044c43dbc2547d9adb2661"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha1 = "93f2e69df2c32eb2c33d9a6bf91c00224f5de9e8"; } { locale = "hy-AM"; arch = "linux-i686"; sha1 = "1a6ad2c0d105daadf68db573871f45e6a83a8781"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "52341cf14ddb124bd591f161eb2c3c566307e6c0"; } { locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "a43817b520218e6f5b83365bb6d5784f82fd3c61"; }
{ locale = "id"; arch = "linux-i686"; sha1 = "733d6833cb71d5bd6727991c76f7907b4efeb1c9"; } { locale = "id"; arch = "linux-i686"; sha1 = "be03aa731ca6385f447d21e5b089fce89abdb605"; }
{ locale = "id"; arch = "linux-x86_64"; sha1 = "2a5fe37753a3399ea8626615493fe3cac4b79586"; } { locale = "id"; arch = "linux-x86_64"; sha1 = "dcadd18432c9dbd31c23ba260c1b278e96620c55"; }
{ locale = "is"; arch = "linux-i686"; sha1 = "0d1bf6bf337598d6e72762716264cb2662ab542c"; } { locale = "is"; arch = "linux-i686"; sha1 = "e40cba8fb39620ac3e065e27ae9bb2756d5f0808"; }
{ locale = "is"; arch = "linux-x86_64"; sha1 = "5dbe72779e2c58cb0d0224e08582cfb1358fc47b"; } { locale = "is"; arch = "linux-x86_64"; sha1 = "81d7b1212a49d3e3f4cce405bb32ab8b57b53183"; }
{ locale = "it"; arch = "linux-i686"; sha1 = "7bf51283965c48dad5aac2bffbd8223e83bc5c6f"; } { locale = "it"; arch = "linux-i686"; sha1 = "d1719489c95ad26dee243f4b13a7a3c13c80731a"; }
{ locale = "it"; arch = "linux-x86_64"; sha1 = "2634b404ca6a9f6a3a194c911ca514311646461f"; } { locale = "it"; arch = "linux-x86_64"; sha1 = "a5a86761df367d015d6b63f85db7c091be9f7557"; }
{ locale = "ja"; arch = "linux-i686"; sha1 = "82ed3c27de426361f2cb73c9a34197d2548546d5"; } { locale = "ja"; arch = "linux-i686"; sha1 = "cb934acf447a20761fb61be41a5093011962ed74"; }
{ locale = "ja"; arch = "linux-x86_64"; sha1 = "9e9a0eda6fd9354a06071b580686a5387ad291ec"; } { locale = "ja"; arch = "linux-x86_64"; sha1 = "b08541d43c30c64df64f1fa9e3e444a00a1ce66b"; }
{ locale = "ko"; arch = "linux-i686"; sha1 = "e1416907d5748d10a5b0e74c4687787e7343db57"; } { locale = "ko"; arch = "linux-i686"; sha1 = "5f6b9a343ad93c969ff864775cacbf008fd5683c"; }
{ locale = "ko"; arch = "linux-x86_64"; sha1 = "629ad488888ad62e60bd340e17d565af76b48337"; } { locale = "ko"; arch = "linux-x86_64"; sha1 = "e1551063d40661de6a0067bb6d51ad0e89ad08f6"; }
{ locale = "lt"; arch = "linux-i686"; sha1 = "d58c886482404929c18fe25cf3aece121eb6a8e7"; } { locale = "lt"; arch = "linux-i686"; sha1 = "9c07080670ec9f1a57aec634f81cfd73defd9ccf"; }
{ locale = "lt"; arch = "linux-x86_64"; sha1 = "e0cfc0a747aae13cf5cf54db6b72e72a5780372f"; } { locale = "lt"; arch = "linux-x86_64"; sha1 = "44eeb1185f75ba2a8e4a34c161161862a12dc54c"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha1 = "a2e5612b0007a11f74cb3fe330e2234d84f5d35c"; } { locale = "nb-NO"; arch = "linux-i686"; sha1 = "26d12843a80bcbe4ea8008429bd075794e9dab20"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "eba10f9d0de6b9937f297ec742e05df53460bfec"; } { locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "89fec10ec8be9a298fed4ae5ebda68b117ee35ad"; }
{ locale = "nl"; arch = "linux-i686"; sha1 = "a1ce06ca18bf93ff87c91fd8677dbe06eadf1159"; } { locale = "nl"; arch = "linux-i686"; sha1 = "13bea7053d38cb7d00950cf4d13fe06cab33b4e7"; }
{ locale = "nl"; arch = "linux-x86_64"; sha1 = "180b531bf58f08d89c668b578a3c7c5380900f9f"; } { locale = "nl"; arch = "linux-x86_64"; sha1 = "1c927583ab814caac16ece34156110826ddbdf37"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha1 = "484546422728623005a2d20470c7f6d06870ce96"; } { locale = "nn-NO"; arch = "linux-i686"; sha1 = "1c8ca9891483fe489f26b82d5b81562223af1210"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "f4526c827dcf1d0a11d38bd834807eb4b7f2923f"; } { locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "88db986d9de826407f1692c1fddc64068eb190bb"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha1 = "c75275e6a8a19213ea5eb063c8988634bbbe13cc"; } { locale = "pa-IN"; arch = "linux-i686"; sha1 = "db25c5d46fbab8692882bf32422eb334a5790ed4"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "0fce05e81e0bb2bf6f7ce051cdee10ceaaaee4cb"; } { locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "a50bf1a7277a7bbbc162a547916abae63a49becd"; }
{ locale = "pl"; arch = "linux-i686"; sha1 = "6d8657b489008122b0a3dabc3b9bb5112529ae16"; } { locale = "pl"; arch = "linux-i686"; sha1 = "b4500262a14c781546966bc713c1a574b29bd221"; }
{ locale = "pl"; arch = "linux-x86_64"; sha1 = "b5eff0843c96947d5aa7f7f74ec899630cb9e039"; } { locale = "pl"; arch = "linux-x86_64"; sha1 = "196c388eb6bc00099196cc6774fa2fa327b36d81"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha1 = "f2359b80b8afad50aab695d3cc14e461c21e46e3"; } { locale = "pt-BR"; arch = "linux-i686"; sha1 = "19e5c34a64a0a2d7258f285ad3d4182e0c1859e2"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "b946a90928e0c7a389dbcf5728c08e7fc5042025"; } { locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "cf17768842cdbfc3fb4f922655e102ace1420b4c"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha1 = "dbc60c45551b8db4be970efed6a397bf81d108e6"; } { locale = "pt-PT"; arch = "linux-i686"; sha1 = "60cb1312edde3d610ba7b786f7e0030066c097fc"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "77c53b3a401dbfc930f2c5d94ebe6f1a090954e7"; } { locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "82535ac23e75f77767a844735b5950109ed7ef15"; }
{ locale = "rm"; arch = "linux-i686"; sha1 = "290f420ba933251168dce7c8e588541cdec886da"; } { locale = "rm"; arch = "linux-i686"; sha1 = "15bdb9f7b06ad28ab5bb6a219afc2cf98bd94689"; }
{ locale = "rm"; arch = "linux-x86_64"; sha1 = "7c40435683e29fd3c7b541cd3ed2a69e39a14245"; } { locale = "rm"; arch = "linux-x86_64"; sha1 = "ba4aa04ea6380d6ca9e5776806f478da3a18acf2"; }
{ locale = "ro"; arch = "linux-i686"; sha1 = "93d016bd3dfbd8b7ad4d8eceb94a638f6e66e751"; } { locale = "ro"; arch = "linux-i686"; sha1 = "30319593b61aa454c72e372c47c97fd98e425cfa"; }
{ locale = "ro"; arch = "linux-x86_64"; sha1 = "2d05ef4da4eac47ee2b37d9d207a20b875ab6c3f"; } { locale = "ro"; arch = "linux-x86_64"; sha1 = "364734483184c769370ca2948dc9335bfe6fe1ba"; }
{ locale = "ru"; arch = "linux-i686"; sha1 = "4c80bf8509b725c861ee744676e5f8229edd9acd"; } { locale = "ru"; arch = "linux-i686"; sha1 = "5b5bf58fb96072590d4d3e9e1f7239c352910b49"; }
{ locale = "ru"; arch = "linux-x86_64"; sha1 = "60406c09cef691b892dfffffe05d06182a0f5b03"; } { locale = "ru"; arch = "linux-x86_64"; sha1 = "bee00bc517deaa46d5e409d80b54f19bf8133e44"; }
{ locale = "si"; arch = "linux-i686"; sha1 = "f7f98b929f290a757dcd67d2f0abc09272e1524f"; } { locale = "si"; arch = "linux-i686"; sha1 = "17d313829c47fc57256181b5a916605860f5c20f"; }
{ locale = "si"; arch = "linux-x86_64"; sha1 = "f73185d1c4d78247154ff4133092f12bcace0189"; } { locale = "si"; arch = "linux-x86_64"; sha1 = "69d536b6c14b29a86503cf9d492e20318e6ca550"; }
{ locale = "sk"; arch = "linux-i686"; sha1 = "bc78cf179d1145771bc3d76808f47c3074aa848f"; } { locale = "sk"; arch = "linux-i686"; sha1 = "01e1fa5218459dc6e32d7a4d51bd120bc96c3f13"; }
{ locale = "sk"; arch = "linux-x86_64"; sha1 = "b6cd85fe49e367d36f75c89596cc6826de936c03"; } { locale = "sk"; arch = "linux-x86_64"; sha1 = "24cfbe861062ba1f3e5847b4b05c925a2db52518"; }
{ locale = "sl"; arch = "linux-i686"; sha1 = "cc7468c85efaae4ad8f3c4dd629c07420095d6b7"; } { locale = "sl"; arch = "linux-i686"; sha1 = "b01bd9bff5d31998f69cbc18c31df3798346d5bb"; }
{ locale = "sl"; arch = "linux-x86_64"; sha1 = "51236372848448ad80210d340ba5f03b851b1434"; } { locale = "sl"; arch = "linux-x86_64"; sha1 = "ab0a0ffc3816923384f519caef4b07830526a3b1"; }
{ locale = "sq"; arch = "linux-i686"; sha1 = "1cd44cdb36f17d922b04e6f1f31721495b30d9a8"; } { locale = "sq"; arch = "linux-i686"; sha1 = "e310ae1b0f32c67ccc03097fe9917f37eca3b271"; }
{ locale = "sq"; arch = "linux-x86_64"; sha1 = "604de9669330503ea07e24d6f65c2586c6748730"; } { locale = "sq"; arch = "linux-x86_64"; sha1 = "2d746d4743ca5be9dfb082129f2527ef4453e8f8"; }
{ locale = "sr"; arch = "linux-i686"; sha1 = "ea9f909fd9b7c9125fc109db81ed313bad19ca26"; } { locale = "sr"; arch = "linux-i686"; sha1 = "9053948612aa9de8898d7e3606eb08d855fff41a"; }
{ locale = "sr"; arch = "linux-x86_64"; sha1 = "d71c0b6d31940f24562a74b30349ecd4645b0ee9"; } { locale = "sr"; arch = "linux-x86_64"; sha1 = "b3c621a120756aba91c985deb06a31051b63468f"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha1 = "0c4193b4dc6eae8b5f9515ca8a534f127ee083d8"; } { locale = "sv-SE"; arch = "linux-i686"; sha1 = "ef7480dc06af7376387a27da47e49bd2e5078453"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "cd254aabf8c7cf63c83bec1005ef0e9f540eed7c"; } { locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "c23f9b1832ab1d0317d09017c5a39824638da921"; }
{ locale = "ta-LK"; arch = "linux-i686"; sha1 = "9944dd6c0cb20bcd8f513c0cdabe62245b0212dc"; } { locale = "ta-LK"; arch = "linux-i686"; sha1 = "eea8f9b4832b6bdc61b0cd4dedb5d78aae02c953"; }
{ locale = "ta-LK"; arch = "linux-x86_64"; sha1 = "7452f16a96293f871ac9ac99b37f7b855b8e2acf"; } { locale = "ta-LK"; arch = "linux-x86_64"; sha1 = "75f4856b28f589098599a786a242681a911ff92e"; }
{ locale = "tr"; arch = "linux-i686"; sha1 = "2036043c9edcaf3e85c2c9b33ae4166d339c3185"; } { locale = "tr"; arch = "linux-i686"; sha1 = "5ca3104abb9636ffcd5cdf913b14f48ba2a03977"; }
{ locale = "tr"; arch = "linux-x86_64"; sha1 = "6b4018c8c4f6f6161f51b1fd629fa5c0ddf452d2"; } { locale = "tr"; arch = "linux-x86_64"; sha1 = "8edb7885b506d1b4288bded01dccb00b89c929f2"; }
{ locale = "uk"; arch = "linux-i686"; sha1 = "af09c61146d407ab2e6baa3f71ce859a246cb559"; } { locale = "uk"; arch = "linux-i686"; sha1 = "2776e9dc93263ac8c7cf757e0a03f71b0a3d2a9c"; }
{ locale = "uk"; arch = "linux-x86_64"; sha1 = "8b41790e1c6941c1b46c1e06b21c6254fee49c51"; } { locale = "uk"; arch = "linux-x86_64"; sha1 = "7ec1dc5df673394c3e61293d92d369045a0d2bd6"; }
{ locale = "vi"; arch = "linux-i686"; sha1 = "fbaee422c7746c10e2537fbc8fdf86d322e49a6c"; } { locale = "vi"; arch = "linux-i686"; sha1 = "1582f2552bc644729ffcb0d42b405e065a56ca9c"; }
{ locale = "vi"; arch = "linux-x86_64"; sha1 = "65d5ce60fc3848c46b88c5e7229e25f412e1d5bf"; } { locale = "vi"; arch = "linux-x86_64"; sha1 = "5e24d1ce8e6b74883dabb70dc1ac03c034e6e659"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha1 = "b865c22c6c60d21ba00a60a54a9d03a5c34254cf"; } { locale = "zh-CN"; arch = "linux-i686"; sha1 = "f8df723a211049e853628b5f2dd7240b4216871c"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "648dec573c9d0f680be469bad8b38fe6d3550899"; } { locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "2cb69569638090ae09d552e95aaae40b876144e3"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha1 = "b3f58a6053079be6231f843f05daf481c39edf6d"; } { locale = "zh-TW"; arch = "linux-i686"; sha1 = "ca3790624a90e49e7271bccf3870a8da629df074"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "bab9d483870909d705fa77bcfb9d8c08966bae50"; } { locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "ebe6e83ee9f2fce3823d01c4900231bc00682fba"; }
]; ];
} }

View File

@ -15,11 +15,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mumble-${version}"; name = "mumble-${version}";
version = "1.2.9"; version = "1.2.10";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/mumble/${name}.tar.gz"; url = "https://github.com/mumble-voip/mumble/releases/download/${version}/${name}.tar.gz";
sha256 = "1frc6b284cl36czrsrg47mnmg1im0pjqscp877gz2rrjc62pxlab"; sha256 = "012vm0xf84x13414jlsx964c5a1nwnbn41jnspkciajlxxipldn6";
}; };
patches = optional jackSupport ./mumble-jack-support.patch; patches = optional jackSupport ./mumble-jack-support.patch;

View File

@ -1,33 +1,44 @@
{ stdenv, fetchsvn, pythonPackages, makeWrapper, nettools { stdenv, fetchurl, pythonPackages, makeWrapper, nettools, libtorrentRasterbar
, enablePlayer ? false, vlc ? null }: , enablePlayer ? false, vlc ? null }:
let rev = "25411"; in
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "tribler-5.5.21-pre${rev}"; name = "tribler-${version}";
version = "v6.4.3";
src = fetchsvn { src = fetchurl {
url = http://svn.tribler.org/abc/branches/release-5.5.x; url = "https://github.com/Tribler/tribler/releases/download/${version}/Tribler-${version}.tar.xz";
inherit rev; sha256 = "1n5qi3jlby41w60zg6dvl933ypyiflq3rb0qkwhxi4b26s3vwvgr";
sha256 = "17c9svy4zjchzihk6mf0kh4lnvaxjfmgfmimyby5w0d3cwbw49zx";
}; };
buildInputs = [ pythonPackages.python pythonPackages.wrapPython makeWrapper ]; buildInputs = [
pythonPackages.python
pythonPackages.wrapPython
makeWrapper
];
pythonPath = pythonPath = [
[ pythonPackages.wxPython pythonPackages.curses pythonPackages.apsw libtorrentRasterbar
pythonPackages.setuptools pythonPackages.m2crypto pythonPackages.sqlite3 pythonPackages.wxPython
]; pythonPackages.curses
pythonPackages.apsw
pythonPackages.twisted
pythonPackages.gmpy
pythonPackages.netifaces
pythonPackages.pil
pythonPackages.pycrypto
pythonPackages.pyasn1
pythonPackages.requests
pythonPackages.setuptools
pythonPackages.m2crypto
pythonPackages.sqlite3
];
installPhase = installPhase =
'' ''
substituteInPlace Tribler/Core/NATFirewall/guessip.py \
--replace /bin/netstat ${nettools}/bin/netstat \
--replace /sbin/ifconfig ${nettools}/sbin/ifconfig
# Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH. # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
wrapPythonPrograms wrapPythonPrograms
mkdir -p $out/share/tribler mkdir -p $out/share/tribler
cp -prvd Tribler $out/share/tribler/ cp -prvd Tribler $out/share/tribler/

View File

@ -4,12 +4,12 @@ with goPackages;
buildGoPackage rec { buildGoPackage rec {
name = "syncthing-${version}"; name = "syncthing-${version}";
version = "0.11.10"; version = "0.11.13";
goPackagePath = "github.com/syncthing/syncthing"; goPackagePath = "github.com/syncthing/syncthing";
src = fetchgit { src = fetchgit {
url = "git://github.com/syncthing/syncthing.git"; url = "git://github.com/syncthing/syncthing.git";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "f8260d17519ff71232ab60551b444c0138d3391426ab2ef7f9f8e4d2fdac7c40"; sha256 = "07045f4c24e546f4e8307acedeb5fe72b023db57bbf4d73b56d7fe2c75d694dc";
}; };
subPackages = [ "cmd/syncthing" ]; subPackages = [ "cmd/syncthing" ];

View File

@ -2,11 +2,11 @@
, libiconv }: , libiconv }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "stellarium-0.13.2"; name = "stellarium-0.13.3";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/stellarium/${name}.tar.gz"; url = "mirror://sourceforge/stellarium/${name}.tar.gz";
sha256 = "1asrq1v6vjzxd2zz92brdfs5f5b1qf8zwd7k2dpg3dl4shl8wwg5"; sha256 = "1ml6z2xda4vx61agdz54x8fw1b115gwc7rcy0zhz1jh6g5jvf0ij";
}; };
buildInputs = [ cmake freetype libpng mesa gettext openssl qt5.base qt5.quick1 perl libiconv ]; buildInputs = [ cmake freetype libpng mesa gettext openssl qt5.base qt5.quick1 perl libiconv ];

View File

@ -9,7 +9,7 @@
}: }:
let let
version = "2.4.4"; version = "2.4.5";
svn = subversionClient.override { perlBindings = true; }; svn = subversionClient.override { perlBindings = true; };
in in
@ -18,7 +18,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "0q02ygsk1gvn07bb7gnwrp9kr2p405fjj8arpby7851889fv2wzq"; sha256 = "15045v9ds1jn7csw4dijlz0ybiw3csh34l444vzgh9g0f9gmy6n3";
}; };
patches = [ patches = [
@ -85,6 +85,10 @@ stdenv.mkDerivation {
# gitweb.cgi, need to patch so that it's found # gitweb.cgi, need to patch so that it's found
sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \ sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
$out/share/gitweb/gitweb.cgi $out/share/gitweb/gitweb.cgi
# Also put git-http-backend into $PATH, so that we can use smart
# HTTP(s) transports for pushing
ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
'' ''
+ (if svnSupport then + (if svnSupport then

View File

@ -281,7 +281,7 @@ GEM
addressable (~> 2.3) addressable (~> 2.3)
letter_opener (1.1.2) letter_opener (1.1.2)
launchy (~> 2.2) launchy (~> 2.2)
libv8 (3.16.14.3) libv8 (3.16.14.11)
listen (2.3.1) listen (2.3.1)
celluloid (>= 0.15.2) celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3) rb-fsevent (>= 0.9.3)

View File

@ -1121,11 +1121,11 @@
"launchy" "launchy"
]; ];
}; };
"libv8" = { libv8 = {
version = "3.16.14.3"; version = "3.16.14.11";
source = { source = {
type = "gem"; type = "gem";
sha256 = "1arjjbmr9zxkyv6pdrihsz1p5cadzmx8308vgfvrhm380ccgridm"; sha256 = "000vbiy78wk5r1f6p7qncab8ldg7qw5pjz7bchn3lw700gpaacxp";
}; };
}; };
"listen" = { "listen" = {
@ -2395,4 +2395,4 @@
"nokogiri" "nokogiri"
]; ];
}; };
} }

View File

@ -0,0 +1,24 @@
{ stdenv, fetchgit }:
stdenv.mkDerivation {
name = "qboot-pre-release";
src = fetchgit {
url = "https://github.com/yangchengwork/qboot";
rev = "b2bdaf4c878ef34f309c8c79613fabd1b9c4bf75";
sha256 = "00f24125733d24713880e430f409d6ded416286d209c9fabb45541311b01cf8d";
};
installPhase = ''
mkdir -p $out
cp bios.bin* $out/.
'';
meta = {
description = "A simple x86 firmware for booting Linux";
homepage = https://github.com/bonzini/qboot;
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ tstrobel ];
platforms = ["x86_64-linux" "i686-linux"];
};
}

View File

@ -14,7 +14,7 @@ with stdenv.lib;
let let
buildType = "release"; buildType = "release";
version = "4.3.28"; # changes ./guest-additions as well version = "5.0.0"; # changes ./guest-additions as well
forEachModule = action: '' forEachModule = action: ''
for mod in \ for mod in \
@ -35,13 +35,13 @@ let
''; '';
# See https://github.com/NixOS/nixpkgs/issues/672 for details # See https://github.com/NixOS/nixpkgs/issues/672 for details
extpackRevision = "100309"; extpackRevision = "101573";
extensionPack = requireFile rec { extensionPack = requireFile rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack"; name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
# IMPORTANT: Hash must be base16 encoded because it's used as an input to # IMPORTANT: Hash must be base16 encoded because it's used as an input to
# VBoxExtPackHelperApp! # VBoxExtPackHelperApp!
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS # Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS
sha256 = "72e101d9dc5eabeb76d1ab5bd6d2f817a11c89adfe8bb72cc5d614a2eef532d1"; sha256 = "c357e36368883df821ed092d261890a95c75e50422b75848c40ad20984086a7a";
message = '' message = ''
In order to use the extension pack, you need to comply with the VirtualBox Personal Use In order to use the extension pack, you need to comply with the VirtualBox Personal Use
and Evaluation License (PUEL) by downloading the related binaries from: and Evaluation License (PUEL) by downloading the related binaries from:
@ -60,7 +60,7 @@ in stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "e157ab76d1958ae2c56b2a3875194fbff3de82486ad0e30032fd5bd772297c31"; sha256 = "bb71356c8f82012c9b5ae16e12302eb111c71ae7b063ada7688fbfa8aa10c2f7";
}; };
buildInputs = buildInputs =
@ -81,7 +81,12 @@ in stdenv.mkDerivation {
ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2
ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2
find . -type f -iname '*makefile*' -exec sed -i -e 's/depmod -a/:/g' {} + find . -type f -iname '*makefile*' -exec sed -i -e 's/depmod -a/:/g' {} +
sed -e 's@"libasound.so.2"@"${alsaLib}/lib/libasound.so.2"@g' -i src/VBox/Main/xml/Settings.cpp src/VBox/Devices/Audio/alsa_stubs.c sed -i -e '
s@"libasound.so.2"@"${alsaLib}/lib/libasound.so.2"@g
${optionalString pulseSupport ''
s@"libpulse.so.0"@"${libpulseaudio}/lib/libpulse.so.0"@g
''}
' src/VBox/Main/xml/Settings.cpp src/VBox/Devices/Audio/{alsa,pulse}_stubs.c
export USER=nix export USER=nix
set +x set +x
''; '';

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "9f52e186d6c9407b2676d4b2ed1cdf96940ec129cc2bd92e54b24526271a9733"; sha256 = "7b61f523db7ba75aebc4c7bb0cae2da92674fa72299e4a006c5c67517f7d786b";
}; };
KERN_DIR = "${kernel.dev}/lib/modules/*/build"; KERN_DIR = "${kernel.dev}/lib/modules/*/build";

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "fira-code-${version}";
version = "0.5";
src = fetchurl {
url = "https://github.com/tonsky/FiraCode/releases/download/${version}/FiraCode-Regular.otf";
sha256 = "1y2jz1v7m0q73rz9vblxgaqkgh9wpp4fp7dq21hdyfhxkk3ss6xk";
};
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out/share/fonts/opentype
cp -v $src $out/share/fonts/opentype/FiraCode-Regular.otf
'';
meta = with stdenv.lib; {
homepage = https://github.com/tonsky/FiraCode;
description = "Monospace font with programming ligatures";
longDescription = ''
Fira Code is a monospace font extending the Fira Mono font with
a set of ligatures for common programming multi-character
combinations.
'';
license = licenses.ofl;
maintainers = [ maintainers.rycee ];
platforms = platforms.all;
};
}

View File

@ -1,16 +1,16 @@
{ stdenv, fetchurl, unzip }: { stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "fira-mono-3.203"; name = "fira-mono-3.204";
src = fetchurl { src = fetchurl {
url = http://www.carrois.com/downloads/fira_mono_3_2/FiraMonoFonts3203.zip; url = http://www.carrois.com/downloads/fira_mono_3_2/FiraMonoFonts3204.zip;
sha256 = "0qaplpmsqys42a49x8d15ca2gqw1v6a6k2d56ja1j38dmr2qmpv4"; sha256 = "0pnsw7b1i5vkwq0kny4lxzly4h8rlwkj610rykhax6zayfbnz62a";
}; };
buildInputs = [ unzip ]; buildInputs = [ unzip ];
phases = [ "unpackPhase" "installPhase" ]; phases = [ "unpackPhase" "installPhase" ];
sourceRoot = "FiraMonoFonts3203"; sourceRoot = "FiraMonoFonts3204";
installPhase = '' installPhase = ''
mkdir -p $out/share/fonts/opentype mkdir -p $out/share/fonts/opentype

View File

@ -1,16 +1,16 @@
{ stdenv, fetchurl, unzip }: { stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "fira-4.103"; name = "fira-4.104";
src = fetchurl { src = fetchurl {
url = http://www.carrois.com/downloads/fira_4_1/FiraFonts4103.zip; url = http://www.carrois.com/downloads/fira_4_1/FiraFonts4104.zip;
sha256 = "1nw5icg3134qq2qfspvj2kclsv3965szby2lfcr65imf7lj4k52z"; sha256 = "1i8l0x2wdx4pw7j52lgy8qcx0wqj0azwjiq0wa9kg26x78bdfk2d";
}; };
buildInputs = [unzip]; buildInputs = [unzip];
phases = [ "unpackPhase" "installPhase" ]; phases = [ "unpackPhase" "installPhase" ];
sourceRoot = "FiraFonts4103"; sourceRoot = "FiraFonts4104";
installPhase = '' installPhase = ''
mkdir -p $out/share/fonts/opentype mkdir -p $out/share/fonts/opentype

View File

@ -1,15 +1,15 @@
{stdenv, fetchurl, unzip }: {stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "symbola-7.21"; name = "symbola-8.00";
src = fetchurl { src = fetchurl {
url = "http://users.teilar.gr/~g1951d/Symbola.zip"; url = "http://users.teilar.gr/~g1951d/Symbola.zip";
sha256 = "0sqmvq8c8wn4xq0p25gd2jfyjqi8jhiycqah19wzq1gqkaaw94nq"; sha256 = "07bczpl3vqdpg2gakfddhzzgpb6v2wpasv7rwqxkyg9yd9lmbr0s";
}; };
docs_pdf = fetchurl { docs_pdf = fetchurl {
url = "http://users.teilar.gr/~g1951d/Symbola.pdf"; url = "http://users.teilar.gr/~g1951d/Symbola.pdf";
sha256 = "0jjjydb6c0glfb6krvdyi9kh5bsx9gz5w66j378bdqgkrvspl0d2"; sha256 = "1zmq1ijl0k5hrc6vpa2xp9n1x2zrrd7ng3jwc9yf0qsi3pmkpk0p";
}; };
buildInputs = [ unzip ]; buildInputs = [ unzip ];

View File

@ -2,16 +2,16 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "unifont-${version}"; name = "unifont-${version}";
version = "7.0.06"; version = "8.0.01";
ttf = fetchurl { ttf = fetchurl {
url = "http://unifoundry.com/pub/${name}/font-builds/${name}.ttf"; url = "http://fossies.org/linux/unifont/font/precompiled/${name}.ttf";
sha256 = "0qmk06rwhxs43n1xbwj14fanbih60zqli002qhy0609da24r3957"; sha256 = "0g4g2n024072cdrs2wjp7xmkr3i9dm52a5g9hiafxjgj5a45c8kl";
}; };
pcf = fetchurl { pcf = fetchurl {
url = "http://unifoundry.com/pub/${name}/font-builds/${name}.pcf.gz"; url = "http://fossies.org/linux/unifont/font/precompiled/${name}.pcf.gz";
sha256 = "1wplig57wpc79mlqamhknn39cibg5z8dvbyibp1490ljcjs1dxdc"; sha256 = "0mpdy2k7z9s60x8i6sbv64p9wrihfwgrw81x5yj13rl6x7zzghr8";
}; };
buildInputs = [ mkfontscale mkfontdir ]; buildInputs = [ mkfontscale mkfontdir ];

View File

@ -1,16 +0,0 @@
{ stdenv, callPackage }:
callPackage ./generic.nix {
shortVersion = "1.0.0";
isRelease = true;
srcSha = "14brziw91d3r88fa1kvpvhap5ws4z8h2mas7h6k9lpsc2zl9blak";
snapshotHashLinux686 = "1ef82402ed16f5a6d2f87a9a62eaa83170e249ec";
snapshotHashLinux64 = "ef2154372e97a3cb687897d027fd51c8f2c5f349";
snapshotHashDarwin686 = "0310b1a970f2da7e61770fd14dbbbdca3b518234";
snapshotHashDarwin64 = "5f35d9c920b8083a7420ef8cf5b00d5ef3085dfa";
snapshotDate = "2015-03-27";
snapshotRev = "5520801";
patches = [
./patches/beta.patch
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
configureFlags = [ "--release-channel=stable" ];
}

View File

@ -0,0 +1,33 @@
{ stdenv, callPackage }:
callPackage ./generic.nix {
shortVersion = "1.1.0";
isRelease = true;
srcSha = "0lsfrclj5imxy6129ggya7rb2h04cgqq53f75z2jv40y5xk25sy8";
/* Rust is bootstrapped from an earlier built version. We need
to fetch these earlier versions, which vary per platform.
The shapshot info you want can be found at
https://github.com/rust-lang/rust/blob/{$shortVersion}/src/snapshots.txt
with the set you want at the top.
*/
# linux-i386
snapshotHashLinux686 = "0bc8cffdce611fb71fd7d3d8e7cdbfaf748a4f16";
# linux-x86_64
snapshotHashLinux64 = "94089740e48167c5975c92c139ae9c286764012f";
# macos-i386
snapshotHashDarwin686 = "54cc35e76497e6e94fddf38d6e40e9d168491ddb";
# macos-x86_64
snapshotHashDarwin64 = "43a1c1fba0d1dfee4c2ca310d506f8f5f51b3f6f";
snapshotDate = "2015-04-27";
snapshotRev = "857ef6e";
patches = [
./patches/beta.patch
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
configureFlags = [ "--release-channel=stable" ];
}

View File

@ -62,7 +62,7 @@ let version = if isRelease then
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.rust-lang.org/; homepage = http://www.rust-lang.org/;
description = "A safe, concurrent, practical language"; description = "A safe, concurrent, practical language";
maintainers = with maintainers; [ madjar cstrahan wizeman globin ]; maintainers = with maintainers; [ madjar cstrahan wizeman globin havvy ];
license = [ licenses.mit licenses.asl20 ]; license = [ licenses.mit licenses.asl20 ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
@ -127,11 +127,18 @@ stdenv.mkDerivation {
--subst-var-by "ccPath" "${stdenv.cc}/bin/cc" --subst-var-by "ccPath" "${stdenv.cc}/bin/cc"
substituteInPlace src/librustc_back/archive.rs \ substituteInPlace src/librustc_back/archive.rs \
--subst-var-by "arPath" "${stdenv.cc.binutils}/bin/ar" --subst-var-by "arPath" "${stdenv.cc.binutils}/bin/ar"
substituteInPlace src/librustc_back/target/mod.rs \
--subst-var-by "ccPath" "${stdenv.cc}/bin/cc" \
--subst-var-by "arPath" "${stdenv.cc.binutils}/bin/ar"
substituteInPlace src/rust-installer/gen-install-script.sh \ substituteInPlace src/rust-installer/gen-install-script.sh \
--replace /bin/echo "${coreutils}/bin/echo" --replace /bin/echo "${coreutils}/bin/echo"
substituteInPlace src/rust-installer/gen-installer.sh \ substituteInPlace src/rust-installer/gen-installer.sh \
--replace /bin/echo "${coreutils}/bin/echo" --replace /bin/echo "${coreutils}/bin/echo"
# Workaround for NixOS/nixpkgs#8676
substituteInPlace mk/rustllvm.mk \
--replace "\$\$(subst /,//," "\$\$(subst /,/,"
''; '';
buildInputs = [ which file perl curl python27 makeWrapper git ] buildInputs = [ which file perl curl python27 makeWrapper git ]

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