Compare commits

..

7 Commits

Author SHA1 Message Date
Kamil Chmielewski
bde2351723 vimPlugins: YouCompleteMe FIX gocode crash
https://github.com/Valloric/ycmd/issues/586
2016-09-01 14:42:23 +02:00
Kamil Chmielewski
9e18b81ded python27Packages.cairocffi: FIX test_scaled_font
workaround for https://github.com/Kozea/cairocffi/issues/88
2016-09-01 09:14:10 +02:00
Kamil Chmielewski
78e9bc731b python-cryptography: FIX missing pytz dependency 2016-08-31 19:03:39 +02:00
Kamil Chmielewski
d2fd6c1621 vagrant: cleanup FIX plugin install from #17614 2016-08-31 18:41:18 +02:00
Kamil Chmielewski
dfa9df316b vagrant: FIX #16837 vagrant plugin install 2016-08-31 18:40:33 +02:00
Kamil Chmielewski
c9f9147bed buildGoPackage: include goDeps in nix-shell GOPATH 2016-08-31 18:38:49 +02:00
Kamil Chmielewski
6d9296c3c7 rtl8723bs: version bump 2016-08-31 18:38:49 +02:00
512 changed files with 13437 additions and 71788 deletions

View File

@@ -481,7 +481,7 @@ and the aliases
#### `buildPythonPackage` function
The `buildPythonPackage` function is implemented in
`pkgs/development/interpreters/python/build-python-package.nix`
`pkgs/development/python-modules/generic/default.nix`
and can be used as:
@@ -536,7 +536,6 @@ All parameters from `mkDerivation` function are still supported.
* `installFlags`: A list of strings. Arguments to be passed to `pip install`. To pass options to `python setup.py install`, use `--install-option`. E.g., `installFlags=["--install-option='--cpp_implementation'"].
* `format`: Format of the source. Options are `setup` for when the source has a `setup.py` and `setuptools` is used to build a wheel, and `wheel` in case the source is already a binary wheel. The default value is `setup`.
* `catchConflicts` If `true`, abort package build if a package name appears more than once in dependency tree. Default is `true`.
* `checkInputs` Dependencies needed for running the `checkPhase`. These are added to `buildInputs` when `doCheck = true`.
#### `buildPythonApplication` function
@@ -716,8 +715,8 @@ Python attribute sets are created for each interpreter version. We will therefor
In the following example we change the name of the package `pandas` to `foo`.
```
newpkgs = pkgs.overridePackages(self: super: rec {
python35Packages = (super.python35Packages.override { self = python35Packages;})
// { pandas = super.python35Packages.pandas.override {name = "foo";};
python35Packages = super.python35Packages.override {
self = python35Packages // { pandas = python35Packages.pandas.override{name="foo";};};
};
});
```
@@ -728,8 +727,8 @@ with import <nixpkgs> {};
(let
newpkgs = pkgs.overridePackages(self: super: rec {
python35Packages = (super.python35Packages.override { self = python35Packages;})
// { pandas = super.python35Packages.pandas.override {name = "foo";};
python35Packages = super.python35Packages.override {
self = python35Packages // { pandas = python35Packages.pandas.override{name="foo";};};
};
});
in newpkgs.python35.withPackages (ps: [ps.blaze])
@@ -744,7 +743,7 @@ with import <nixpkgs> {};
newpkgs = pkgs.overridePackages(self: super: rec {
python35Packages = super.python35Packages.override {
self = python35Packages // { scipy = python35Packages.scipy_0_17;};
self = python35Packages // { scipy = python35Packages.scipy_0_16;};
};
});
in newpkgs.python35.withPackages (ps: [ps.blaze])
@@ -752,41 +751,23 @@ in newpkgs.python35.withPackages (ps: [ps.blaze])
```
The requested package `blaze` depends upon `pandas` which itself depends on `scipy`.
A similar example but now using `django`
```
with import <nixpkgs> {};
(let
newpkgs = pkgs.overridePackages(self: super: rec {
python27Packages = (super.python27Packages.override {self = python27Packages;})
// { django = super.python27Packages.django_1_9; };
});
in newpkgs.python27.withPackages (ps: [ps.django_guardian ])
).env
```
### `python setup.py bdist_wheel` cannot create .whl
Executing `python setup.py bdist_wheel` in a `nix-shell `fails with
Executing `python setup.py bdist_wheel` fails with
```
ValueError: ZIP does not support timestamps before 1980
```
This is because files are included that depend on items in the Nix store which have a timestamp of, that is, it corresponds to January the 1st, 1970 at 00:00:00. And as the error informs you, ZIP does not support that.
The command `bdist_wheel` takes into account `SOURCE_DATE_EPOCH`, and `nix-shell` sets this to 1. By setting it to a value corresponding to 1980 or later, or by unsetting it, it is possible to build wheels.
Fortunately `bdist_wheel` takes into account `SOURCE_DATE_EPOCH`. On Nix this value is set to 1. By setting it to a value correspond to 1980 or later it is possible to build wheels.
Use 1980 as timestamp:
```
nix-shell --run "SOURCE_DATE_EPOCH=315532800 python3 setup.py bdist_wheel"
SOURCE_DATE_EPOCH=315532800 python3 setup.py bdist_wheel
```
or the current time:
```
nix-shell --run "SOURCE_DATE_EPOCH=$(date +%s) python3 setup.py bdist_wheel"
SOURCE_DATE_EPOCH=$(date +%s) python3 setup.py bdist_wheel
```
or unset:
"""
nix-shell --run "unset SOURCE_DATE_EPOCH; python3 setup.py bdist_wheel"
"""
### `install_data` / `data_files` problems

View File

@@ -29,15 +29,15 @@
<section><title>Using a split package</title>
<para>In the Nix language the individual outputs can be reached explicitly as attributes, e.g. <varname>coreutils.info</varname>, but the typical case is just using packages as build inputs.</para>
<para>When a multiple-output derivation gets into a build input of another derivation, the <varname>dev</varname> output is added if it exists, otherwise the first output is added. In addition to that, <varname>propagatedBuildOutputs</varname> of that package which by default contain <varname>$outputBin</varname> and <varname>$outputLib</varname> are also added. (See <xref linkend="multiple-output-file-type-groups" />.)</para>
<para>When a multiple-output derivation gets into a build input of another derivation, the first output is added (<varname>.dev</varname> by convention) and also <varname>propagatedBuildOutputs</varname> of that package which by default contain <varname>$outputBin</varname> and <varname>$outputLib</varname>. (See <xref linkend="multiple-output-file-type-groups" />.)</para>
</section>
<section><title>Writing a split derivation</title>
<para>Here you find how to write a derivation that produces multiple outputs.</para>
<para>In nixpkgs there is a framework supporting multiple-output derivations. It tries to cover most cases by default behavior. You can find the source separated in &lt;<filename>nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh</filename>&gt;; it's relatively well-readable. The whole machinery is triggered by defining the <varname>outputs</varname> attribute to contain the list of desired output names (strings).</para>
<programlisting>outputs = [ "bin" "dev" "out" "doc" ];</programlisting>
<para>Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. By convention, the first output should contain the executable programs provided by the package as that output is used by Nix in string conversions, allowing references to binaries like <literal>${pkgs.perl}/bin/perl</literal> to always work. Typically you also want to have the main <varname>out</varname> output, as it catches any files that didn't get elsewhere.</para>
<programlisting>outputs = [ "dev" "out" "bin" "doc" ];</programlisting>
<para>Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. By convention, the first output should usually be <varname>dev</varname>; typically you also want to have the main <varname>out</varname> output, as it catches any files that didn't get elsewhere.</para>
<note><para>There is a special handling of the <varname>debug</varname> output, described at <xref linkend="stdenv-separateDebugInfo" />.</para></note>

View File

@@ -0,0 +1,14 @@
Semi-automatic source information updating using "update-upstream-data.sh" script and "src-{,info-}for-*.nix"
1. Recognizing when a pre-existing package uses this mechanism.
Packages using this automatical update mechanism have src-info-for-default.nix and src-for-default.nix next to default.nix. src-info-for-default.nix describes getting the freshest source from upstream web site; src-for-default.nix is a generated file with the current data about used source. Both files define a simple attrSet.
src-info-for-default.nix (for a file grabbed via http) contains at least downloadPage attribute - it is the page we need to look at to find out the latest version. It also contains baseName that is used for automatical generation of package name containing version. It can contain extra data for trickier cases.
src-for-default.nix will contain advertisedUrl (raw URL chosen on the site; its change prompts regeneration of source data), url for fetchurl, hash, version retrieved from the download URL and suggested package name.
2. Updating a package
nixpkgs/pkgs/build-support/upstream-updater directory contains some scripts. The worker script is called update-upstream-data.sh. This script requires main expression name (e.g. default.nix). It can optionally accpet a second parameter, URL which will be used instead of getting one by parsing the downloadPage (version extraction, mirror URL creation etc. will still be run). After running the script, check src-for-default.nix (or replace default.nix with expression name, if there are seceral expressions in the directory) for new version information.

View File

@@ -557,8 +557,8 @@ script) if it exists.</para>
<varlistentry>
<term><varname>configureFlags</varname></term>
<listitem><para>A list of strings passed as additional arguments to the
configure script.</para></listitem>
<listitem><para>Additional arguments passed to the configure
script.</para></listitem>
</varlistentry>
<varlistentry>
@@ -658,7 +658,7 @@ nothing.</para>
<varlistentry>
<term><varname>makeFlags</varname></term>
<listitem><para>A list of strings passed as additional flags to
<listitem><para>Additional flags passed to
<command>make</command>. These flags are also used by the default
install and check phase. For setting make flags specific to the
build phase, use <varname>buildFlags</varname> (see
@@ -685,7 +685,7 @@ makeFlagsArray=(CFLAGS="-O0 -g" LDFLAGS="-lfoo -lbar")
<varlistentry>
<term><varname>buildFlags</varname> / <varname>buildFlagsArray</varname></term>
<listitem><para>A list of strings passed as additional flags to
<listitem><para>Additional flags passed to
<command>make</command>. Like <varname>makeFlags</varname> and
<varname>makeFlagsArray</varname>, but only used by the build
phase.</para></listitem>
@@ -753,7 +753,7 @@ doCheck = true;</programlisting>
<varlistentry>
<term><varname>checkFlags</varname> / <varname>checkFlagsArray</varname></term>
<listitem><para>A list of strings passed as additional flags to
<listitem><para>Additional flags passed to
<command>make</command>. Like <varname>makeFlags</varname> and
<varname>makeFlagsArray</varname>, but only used by the check
phase.</para></listitem>
@@ -808,7 +808,7 @@ installTargets = "install-bin install-doc";</programlisting>
<varlistentry>
<term><varname>installFlags</varname> / <varname>installFlagsArray</varname></term>
<listitem><para>A list of strings passed as additional flags to
<listitem><para>Additional flags passed to
<command>make</command>. Like <varname>makeFlags</varname> and
<varname>makeFlagsArray</varname>, but only used by the install
phase.</para></listitem>

View File

@@ -454,8 +454,6 @@ rec {
getLib = getOutput "lib";
getDev = getOutput "dev";
/* Pick the outputs of packages to place in buildInputs */
chooseDevOutputs = drvs: builtins.map (drv: if drv.outputUnspecified or false then drv.dev or drv else drv) drvs;
/*** deprecated stuff ***/

View File

@@ -34,17 +34,6 @@ following incompatible changes:</para>
<itemizedlist>
<listitem>
<para>A large number of packages have been converted to use the multiple outputs feature
of Nix to greatly reduce the amount of required disk space. This may require changes
to any custom packages to make them build again; see the relevant chapter in the
Nixpkgs manual for more information. (Additional caveat to packagers: some packaging conventions
related to multiple-output packages
<link xlink:href="https://github.com/NixOS/nixpkgs/pull/14766">were changed</link>
late (August 2016) in the release cycle and differ from the initial introduction of multiple outputs.)
</para>
</listitem>
<listitem>
<para>Shell aliases for systemd sub-commands
<link xlink:href="https://github.com/NixOS/nixpkgs/pull/15598">were dropped</link>:
@@ -57,14 +46,6 @@ following incompatible changes:</para>
behavior of Redis 3.2</para>
</listitem>
<listitem>
<para>/var/setuid-wrappers/
<link xlink:href="https://github.com/NixOS/nixpkgs/pull/18124">is now a symlink so
it can be atomically updated</link>
and it's not mounted as tmpfs anymore since setuid binaries are located on /run/ as tmpfs.
</para>
</listitem>
<listitem>
<para>Gitlab's maintainence script gitlab-runner was removed and split up into the more clearer
gitlab-run and gitlab-rake scripts because gitlab-runner is a component of Gitlab CI.</para>
@@ -85,11 +66,6 @@ following incompatible changes:</para>
<literal>environment.variables</literal>.</para>
</listitem>
<listitem>
<para>The <literal>audit</literal> service is no longer enabled by default.
Use <literal>security.audit.enable = true;</literal> to explicitly enable it.</para>
</listitem>
</itemizedlist>

View File

@@ -22,7 +22,7 @@ with lib;
config = {
fonts.fonts =
[
[ pkgs.xorg.fontbhttf
pkgs.xorg.fontbhlucidatypewriter100dpi
pkgs.xorg.fontbhlucidatypewriter75dpi
pkgs.dejavu_fonts

View File

@@ -54,10 +54,6 @@ let
WARNING: Don't try to hibernate when you have at least one swap partition with
this option enabled! We have no way to set the partition into which hibernation image
is saved, so if your image ends up on an encrypted one you would lose it!
WARNING #2: Do not use /dev/disk/by-uuid/ or /dev/disk/by-label/ as your swap device
when using randomEncryption as the UUIDs and labels will get erased on every boot when
the partition is encrypted. Best to use /dev/disk/by-partuuid/
'';
};
@@ -76,7 +72,7 @@ let
config = rec {
device = mkIf options.label.isDefined
"/dev/disk/by-label/${config.label}";
deviceName = lib.replaceChars ["\\"] [""] (escapeSystemdPath config.device);
deviceName = escapeSystemdPath config.device;
realDevice = if config.randomEncryption then "/dev/mapper/${deviceName}" else config.device;
};
@@ -125,8 +121,6 @@ in
createSwapDevice = sw:
assert sw.device != "";
assert !(sw.randomEncryption && lib.hasPrefix "/dev/disk/by-uuid" sw.device);
assert !(sw.randomEncryption && lib.hasPrefix "/dev/disk/by-label" sw.device);
let realDevice' = escapeSystemdPath sw.realDevice;
in nameValuePair "mkswap-${sw.deviceName}"
{ description = "Initialisation of swap device ${sw.device}";

View File

@@ -52,8 +52,8 @@ foreach my $g (@{$spec->{groups}}) {
$gidsUsed{$g->{gid}} = 1 if defined $g->{gid};
}
foreach my $u (@{$spec->{users}}) {
$uidsUsed{$u->{uid}} = 1 if defined $u->{uid};
foreach my $u (@{$spec->{groups}}) {
$uidsUsed{$u->{u}} = 1 if defined $u->{uid};
}
# Read the current /etc/group.

View File

@@ -92,12 +92,14 @@ fi
mkdir -m 0755 -p $mountPoint/dev $mountPoint/proc $mountPoint/sys $mountPoint/etc $mountPoint/run $mountPoint/home
mkdir -m 01777 -p $mountPoint/tmp
mkdir -m 0755 -p $mountPoint/tmp/root
mkdir -m 0755 -p $mountPoint/var/setuid-wrappers
mkdir -m 0700 -p $mountPoint/root
mount --rbind /dev $mountPoint/dev
mount --rbind /proc $mountPoint/proc
mount --rbind /sys $mountPoint/sys
mount --rbind / $mountPoint/tmp/root
mount -t tmpfs -o "mode=0755" none $mountPoint/run
mount -t tmpfs -o "mode=0755" none $mountPoint/var/setuid-wrappers
rm -rf $mountPoint/var/run
ln -s /run $mountPoint/var/run
for f in /etc/resolv.conf /etc/hosts; do rm -f $mountPoint/$f; [ -f "$f" ] && cp -Lf $f $mountPoint/etc/; done

View File

@@ -4,7 +4,6 @@ with lib;
let
cfg = config.security.audit;
enabled = cfg.enable == "lock" || cfg.enable;
failureModes = {
silent = 0;
@@ -12,13 +11,6 @@ let
panic = 2;
};
disableScript = pkgs.writeScript "audit-disable" ''
#!${pkgs.stdenv.shell} -eu
# Explicitly disable everything, as otherwise journald might start it.
auditctl -D
auditctl -e 0 -a task,never
'';
# TODO: it seems like people like their rules to be somewhat secret, yet they will not be if
# put in the store like this. At the same time, it doesn't feel like a huge deal and working
# around that is a pain so I'm leaving it like this for now.
@@ -55,7 +47,7 @@ in {
security.audit = {
enable = mkOption {
type = types.enum [ false true "lock" ];
default = false;
default = true; # The kernel seems to enable it by default with no rules anyway
description = ''
Whether to enable the Linux audit system. The special `lock' value can be used to
enable auditing and prevent disabling it until a restart. Be careful about locking
@@ -99,7 +91,7 @@ in {
};
};
config = {
config = mkIf (cfg.enable == "lock" || cfg.enable) {
systemd.services.audit = {
description = "Kernel Auditing";
wantedBy = [ "basic.target" ];
@@ -111,8 +103,8 @@ in {
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStart = "@${if enabled then startScript else disableScript} audit-start";
ExecStop = "@${stopScript} audit-stop";
ExecStart = "@${startScript} audit-start";
ExecStop = "@${stopScript} audit-stop";
};
};
};

View File

@@ -20,6 +20,23 @@ with lib;
config = mkIf config.security.hideProcessInformation {
users.groups.proc.gid = config.ids.gids.proc;
boot.specialFileSystems."/proc".options = [ "hidepid=2" "gid=${toString config.ids.gids.proc}" ];
systemd.services.hidepid = {
wantedBy = [ "local-fs.target" ];
after = [ "systemd-remount-fs.service" ];
before = [ "local-fs-pre.target" "local-fs.target" "shutdown.target" ];
wants = [ "local-fs-pre.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStart = ''${pkgs.utillinux}/bin/mount -o remount,hidepid=2,gid=${toString config.ids.gids.proc} /proc'';
ExecStop = ''${pkgs.utillinux}/bin/mount -o remount,hidepid=0,gid=0 /proc'';
};
unitConfig = {
DefaultDependencies = false;
Conflicts = "shutdown.target";
};
};
};
}

View File

@@ -12,7 +12,7 @@ let
installPhase = ''
mkdir -p $out/bin
cp ${./setuid-wrapper.c} setuid-wrapper.c
gcc -Wall -O2 -DWRAPPER_DIR=\"/run/setuid-wrapper-dirs\" \
gcc -Wall -O2 -DWRAPPER_DIR=\"${wrapperDir}\" \
setuid-wrapper.c -o $out/bin/setuid-wrapper
'';
};
@@ -102,11 +102,11 @@ in
source=/nix/var/nix/profiles/default/bin/${program}
fi
cp ${setuidWrapper}/bin/setuid-wrapper $wrapperDir/${program}
echo -n "$source" > $wrapperDir/${program}.real
chmod 0000 $wrapperDir/${program} # to prevent races
chown ${owner}.${group} $wrapperDir/${program}
chmod "u${if setuid then "+" else "-"}s,g${if setgid then "+" else "-"}s,${permissions}" $wrapperDir/${program}
cp ${setuidWrapper}/bin/setuid-wrapper ${wrapperDir}/${program}
echo -n "$source" > ${wrapperDir}/${program}.real
chmod 0000 ${wrapperDir}/${program} # to prevent races
chown ${owner}.${group} ${wrapperDir}/${program}
chmod "u${if setuid then "+" else "-"}s,g${if setgid then "+" else "-"}s,${permissions}" ${wrapperDir}/${program}
'';
in stringAfter [ "users" ]
@@ -115,29 +115,9 @@ in
# programs to be wrapped.
SETUID_PATH=${config.system.path}/bin:${config.system.path}/sbin
mkdir -p /run/setuid-wrapper-dirs
wrapperDir=$(mktemp --directory --tmpdir=/run/setuid-wrapper-dirs setuid-wrappers.XXXXXXXXXX)
rm -f ${wrapperDir}/* # */
${concatMapStrings makeSetuidWrapper setuidPrograms}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink ${wrapperDir})
ln --symbolic --force --no-dereference $wrapperDir ${wrapperDir}-tmp
mv --no-target-directory ${wrapperDir}-tmp ${wrapperDir}
rm --force --recursive $old
elif [ -d ${wrapperDir} ]; then
# Compatibility with old state, just remove the folder and symlink
rm -f ${wrapperDir}/*
# if it happens to be a tmpfs
umount ${wrapperDir} || true
rm -d ${wrapperDir}
ln -d --symbolic $wrapperDir ${wrapperDir}
else
# For initial setup
ln --symbolic $wrapperDir ${wrapperDir}
fi
'';
};

View File

@@ -663,7 +663,7 @@ in
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ curl ]
++ optional cfg.pdfExport texlive.combined.scheme-basic
++ optional cfg.pdfExport texLiveFull
++ optional (cfg.repositoryType == "darcs") darcs
++ optional (cfg.repositoryType == "mercurial") mercurial
++ optional (cfg.repositoryType == "git") git;

View File

@@ -43,10 +43,14 @@ in
options = {
services.unbound = {
enable = mkEnableOption "Unbound domain name server";
enable = mkOption {
default = false;
type = types.bool;
description = "Whether to enable the Unbound domain name server.";
};
allowedAccess = mkOption {
default = [ "127.0.0.0/24" ];
default = ["127.0.0.0/24"];
type = types.listOf types.str;
description = "What networks are allowed to use unbound as a resolver.";
};
@@ -93,7 +97,7 @@ in
};
systemd.services.unbound = {
description = "Unbound recursive Domain Name Server";
description="Unbound recursive Domain Name Server";
after = [ "network.target" ];
before = [ "nss-lookup.target" ];
wants = [" nss-lookup.target" ];

View File

@@ -7,19 +7,11 @@ let
in
{
options.services.zerotierone.enable = mkEnableOption "ZeroTierOne";
options.services.zerotierone.package = mkOption {
default = pkgs.zerotierone;
defaultText = "pkgs.zerotierone";
type = types.package;
description = ''
ZeroTier One package to use.
'';
};
config = mkIf cfg.enable {
systemd.services.zerotierone = {
description = "ZeroTierOne";
path = [ cfg.package ];
path = [ pkgs.zerotierone ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart =
@@ -29,7 +21,7 @@ in
chown -R root:root /var/lib/zerotier-one
'';
serviceConfig = {
ExecStart = "${cfg.package}/bin/zerotier-one";
ExecStart = "${pkgs.zerotierone}/bin/zerotier-one";
Restart = "always";
KillMode = "process";
};
@@ -38,6 +30,6 @@ in
# ZeroTier does not issue DHCP leases, but some strangers might...
networking.dhcpcd.denyInterfaces = [ "zt0" ];
environment.systemPackages = [ cfg.package ];
environment.systemPackages = [ pkgs.zerotierone ];
};
}

View File

@@ -154,15 +154,9 @@ in
system.activationScripts.tmpfs =
''
specialMount() {
local device="$1"
local mountPoint="$2"
local options="$3"
local fsType="$4"
${pkgs.utillinux}/bin/mount -t "$fsType" -o "remount,$options" "$device" "$mountPoint"
}
source ${config.system.build.earlyMountScript}
${pkgs.utillinux}/bin/mount -o "remount,size=${config.boot.devSize}" none /dev
${pkgs.utillinux}/bin/mount -o "remount,size=${config.boot.devShmSize}" none /dev/shm
${pkgs.utillinux}/bin/mount -o "remount,size=${config.boot.runSize}" none /run
'';
};

View File

@@ -425,20 +425,13 @@ in
{ path = "/boot"; inherit (cfg) devices; inherit (efi) efiSysMountPoint; }
];
system.build.installBootLoader =
let
install-grub-pl = pkgs.substituteAll {
src = ./install-grub.pl;
inherit (pkgs) utillinux;
btrfsprogs = pkgs.btrfs-progs;
};
in pkgs.writeScript "install-grub.sh" (''
system.build.installBootLoader = pkgs.writeScript "install-grub.sh" (''
#!${pkgs.stdenv.shell}
set -e
export PERL5LIB=${makePerlPath (with pkgs.perlPackages; [ FileSlurp XMLLibXML XMLSAX ListCompare ])}
${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"}
'' + flip concatMapStrings cfg.mirroredBoots (args: ''
${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@
${pkgs.perl}/bin/perl ${./install-grub.pl} ${grubConfig args} $@
''));
system.build.grub = grub;

View File

@@ -12,10 +12,8 @@ require List::Compare;
use POSIX;
use Cwd;
# system.build.toplevel path
my $defaultConfig = $ARGV[1] or die;
# Grub config XML generated by grubConfig function in grub.nix
my $dom = XML::LibXML->load_xml(location => $ARGV[0]);
sub get { my ($name) = @_; return $dom->findvalue("/expr/attrs/attr[\@name = '$name']/*/\@value"); }
@@ -99,8 +97,6 @@ sub PathInMount {
}
return 1;
}
# Figure out what filesystem is used for the directory with init/initrd/kernel files
sub GetFs {
my ($dir) = @_;
my $bestFs = Fs->new(device => "", type => "", mount => "");
@@ -140,10 +136,7 @@ my $driveid = 1;
sub GrubFs {
my ($dir) = @_;
my $fs = GetFs($dir);
my $path = substr($dir, length($fs->mount));
if (substr($path, 0, 1) ne "/") {
$path = "/$path";
}
my $path = "/" . substr($dir, length($fs->mount));
my $search = "";
if ($grubVersion > 1) {
@@ -176,7 +169,7 @@ sub GrubFs {
$search = $types{$fsIdentifier} . ' ';
# Based on the type pull in the identifier from the system
my ($status, @devInfo) = runCommand("@utillinux@/bin/blkid -o export @{[$fs->device]}");
my ($status, @devInfo) = runCommand("blkid -o export @{[$fs->device]}");
if ($status != 0) {
die "Failed to get blkid info for @{[$fs->mount]} on @{[$fs->device]}";
}
@@ -189,7 +182,7 @@ sub GrubFs {
# BTRFS is a special case in that we need to fix the referrenced path based on subvolumes
if ($fs->type eq 'btrfs') {
my ($status, @id_info) = runCommand("@btrfsprogs@/bin/btrfs subvol show @{[$fs->mount]}");
my ($status, @id_info) = runCommand("btrfs subvol show @{[$fs->mount]}");
if ($status != 0) {
die "Failed to retrieve subvolume info for @{[$fs->mount]}\n";
}
@@ -197,7 +190,7 @@ sub GrubFs {
if ($#ids > 0) {
die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n"
} elsif ($#ids == 0) {
my ($status, @path_info) = runCommand("@btrfsprogs@/bin/btrfs subvol list @{[$fs->mount]}");
my ($status, @path_info) = runCommand("btrfs subvol list @{[$fs->mount]}");
if ($status != 0) {
die "Failed to find @{[$fs->mount]} subvolume id from btrfs\n";
}

View File

@@ -59,24 +59,22 @@ echo
echo "<<< NixOS Stage 1 >>>"
echo
# Make several required directories.
mkdir -p /etc/udev
touch /etc/fstab # to shut up mount
ln -s /proc/mounts /etc/mtab # to shut up mke2fs
touch /etc/udev/hwdb.bin # to shut up udev
touch /etc/initrd-release
# Mount special file systems.
specialMount() {
local device="$1"
local mountPoint="$2"
local options="$3"
local fsType="$4"
mkdir -m 0755 -p "$mountPoint"
mount -n -t "$fsType" -o "$options" "$device" "$mountPoint"
}
source @earlyMountScript@
mkdir -p /etc/udev
touch /etc/fstab # to shut up mount
touch /etc/mtab # to shut up mke2fs
touch /etc/udev/hwdb.bin # to shut up udev
touch /etc/initrd-release
mkdir -p /proc
mount -t proc proc /proc
mkdir -p /sys
mount -t sysfs sysfs /sys
mount -t devtmpfs -o "size=@devSize@" devtmpfs /dev
mkdir -p /run
mount -t tmpfs -o "mode=0755,size=@runSize@" tmpfs /run
mkdir /dev/pts
mount -t devpts devpts /dev/pts
# Log the script output to /dev/kmsg or /run/log/stage-1-init.log.
mkdir -p /tmp

View File

@@ -190,9 +190,7 @@ let
inherit udevRules extraUtils modulesClosure;
inherit (config.boot) resumeDevice;
inherit (config.system.build) earlyMountScript;
inherit (config.boot) resumeDevice devSize runSize;
inherit (config.boot.initrd) checkJournalingFS
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;

View File

@@ -37,16 +37,12 @@ fi
# Likewise, stage 1 mounts /proc, /dev and /sys, so if we don't have a
# stage 1, we need to do that here.
if [ ! -e /proc/1 ]; then
specialMount() {
local device="$1"
local mountPoint="$2"
local options="$3"
local fsType="$4"
mkdir -m 0755 -p "$mountPoint"
mount -n -t "$fsType" -o "$options" "$device" "$mountPoint"
}
source @earlyMountScript@
mkdir -m 0755 -p /proc
mount -n -t proc proc /proc
mkdir -m 0755 -p /dev
mount -t devtmpfs devtmpfs /dev
mkdir -m 0755 -p /sys
mount -t sysfs sysfs /sys
fi
@@ -91,6 +87,11 @@ done
# More special file systems, initialise required directories.
if ! mountpoint -q /dev/shm; then
mkdir -m 0755 /dev/shm
mount -t tmpfs -o "rw,nosuid,nodev,size=@devShmSize@" tmpfs /dev/shm
fi
mkdir -m 0755 -p /dev/pts
[ -e /proc/bus/usb ] && mount -t usbfs usbfs /proc/bus/usb # UML doesn't have USB by default
mkdir -m 01777 -p /tmp
mkdir -m 0755 -p /var /var/log /var/lib /var/db
@@ -111,6 +112,14 @@ rm -f /etc/{group,passwd,shadow}.lock
rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots
# Create a tmpfs on /run to hold runtime state for programs such as
# udev (if stage 1 hasn't already done so).
if ! mountpoint -q /run; then
rm -rf /run
mkdir -m 0755 -p /run
mount -t tmpfs -o "mode=0755,size=@runSize@" tmpfs /run
fi
# Create a ramfs on /run/keys to hold secrets that shouldn't be
# written to disk (generally used for NixOps, harmless elsewhere).
if ! mountpoint -q /run/keys; then
@@ -141,6 +150,13 @@ if [ -n "@useHostResolvConf@" -a -e /etc/resolv.conf ]; then
cat /etc/resolv.conf | resolvconf -m 1000 -a host
fi
# Create /var/setuid-wrappers as a tmpfs.
rm -rf /var/setuid-wrappers
mkdir -m 0755 -p /var/setuid-wrappers
mount -t tmpfs -o "mode=0755" tmpfs /var/setuid-wrappers
# Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
# Only at this point are all the necessary prerequisites ready for these commands.
exec {logOutFd}>&1 {logErrFd}>&2

View File

@@ -20,9 +20,10 @@ let
src = ./stage-2-init.sh;
shellDebug = "${pkgs.bashInteractive}/bin/bash";
isExecutable = true;
inherit (config.boot) devShmSize runSize;
inherit (config.nix) readOnlyStore;
inherit (config.networking) useHostResolvConf;
inherit (config.system.build) earlyMountScript;
ttyGid = config.ids.gids.tty;
path =
[ pkgs.coreutils
pkgs.utillinux

View File

@@ -309,7 +309,7 @@ in rec {
};
startAt = mkOption {
type = with types; either str (listOf str);
type = types.str;
default = "";
example = "Sun 14:00:00";
description = ''

View File

@@ -18,9 +18,7 @@ let
prioOption = prio: optionalString (prio != null) " pri=${toString prio}";
specialFSTypes = [ "proc" "sysfs" "tmpfs" "devtmpfs" "devpts" ];
coreFileSystemOpts = { name, config, ... }: {
fileSystemOpts = { name, config, ... }: {
options = {
@@ -37,6 +35,13 @@ let
description = "Location of the device.";
};
label = mkOption {
default = null;
example = "root-partition";
type = types.nullOr types.str;
description = "Label of the device (if any).";
};
fsType = mkOption {
default = "auto";
example = "ext3";
@@ -48,28 +53,12 @@ let
default = [ "defaults" ];
example = [ "data=journal" ];
description = "Options used to mount the file system.";
} // (if versionAtLeast lib.nixpkgsVersion "16.09" then {
type = types.listOf types.str;
};
};
config = {
mountPoint = mkDefault name;
device = mkIf (elem config.fsType specialFSTypes) (mkDefault config.fsType);
};
};
fileSystemOpts = { config, ... }: {
options = {
label = mkOption {
default = null;
example = "root-partition";
type = types.nullOr types.str;
description = "Label of the device (if any).";
};
} else {
type = types.either types.commas (types.listOf types.str);
apply = x: if isList x then x else lib.strings.splitString "," (builtins.trace "warning: passing a comma-separated string for filesystem options is deprecated; use a list of strings instead. This will become a hard error in 16.09." x);
});
autoFormat = mkOption {
default = false;
@@ -111,6 +100,8 @@ let
};
config = {
mountPoint = mkDefault name;
device = mkIf (config.fsType == "tmpfs") (mkDefault config.fsType);
options = mkIf config.autoResize [ "x-nixos.autoresize" ];
# -F needed to allow bare block device without partitions
@@ -119,13 +110,6 @@ let
};
# Makes sequence of `specialMount device mountPoint options fsType` commands.
# `systemMount` should be defined in the sourcing script.
makeSpecialMounts = mounts:
pkgs.writeText "mounts.sh" (concatMapStringsSep "\n" (mount: ''
specialMount "${mount.device}" "${mount.mountPoint}" "${concatStringsSep "," mount.options}" "${mount.fsType}"
'') mounts);
in
{
@@ -147,7 +131,8 @@ in
"/bigdisk".label = "bigdisk";
}
'';
type = types.loaOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
type = types.loaOf types.optionSet;
options = [ fileSystemOpts ];
description = ''
The file systems to be mounted. It must include an entry for
the root directory (<literal>mountPoint = "/"</literal>). Each
@@ -179,15 +164,6 @@ in
description = "Names of supported filesystem types.";
};
boot.specialFileSystems = mkOption {
default = {};
type = types.loaOf (types.submodule coreFileSystemOpts);
internal = true;
description = ''
Special filesystems that are mounted very early during boot.
'';
};
};
@@ -205,7 +181,6 @@ in
# Export for use in other modules
system.build.fileSystems = fileSystems;
system.build.earlyMountScript = makeSpecialMounts (toposort fsBefore (attrValues config.boot.specialFileSystems)).result;
boot.supportedFilesystems = map (fs: fs.fsType) fileSystems;
@@ -283,16 +258,6 @@ in
in listToAttrs (map formatDevice (filter (fs: fs.autoFormat) fileSystems));
# Sync mount options with systemd's src/core/mount-setup.c: mount_table.
boot.specialFileSystems = {
"/proc" = { fsType = "proc"; options = [ "nosuid" "noexec" "nodev" ]; };
"/sys" = { fsType = "sysfs"; options = [ "nosuid" "noexec" "nodev" ]; };
"/run" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=755" "size=${config.boot.runSize}" ]; };
"/dev" = { fsType = "devtmpfs"; options = [ "nosuid" "strictatime" "mode=755" "size=${config.boot.devSize}" ]; };
"/dev/shm" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=1777" "size=${config.boot.devShmSize}" ]; };
"/dev/pts" = { fsType = "devpts"; options = [ "nosuid" "noexec" "mode=620" "gid=${toString config.ids.gids.tty}" ]; };
};
};
}

View File

@@ -0,0 +1,24 @@
# This module automatically grows the root partition on Amazon EC2 HVM
# instances. This allows an instance to be created with a bigger root
# filesystem than provided by the AMI.
{ config, lib, pkgs, ... }:
{
config = lib.mkIf config.ec2.hvm {
boot.initrd.extraUtilsCommands = ''
copy_bin_and_libs ${pkgs.gawk}/bin/gawk
copy_bin_and_libs ${pkgs.gnused}/bin/sed
copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk
cp -v ${pkgs.cloud-utils}/bin/growpart $out/bin/growpart
ln -s sed $out/bin/gnused
'';
boot.initrd.postDeviceCommands = ''
if [ -e /dev/xvda ] && [ -e /dev/xvda1 ]; then
TMPDIR=/run sh $(type -P growpart) /dev/xvda 1
udevadm settle
fi
'';
};
}

View File

@@ -11,12 +11,10 @@ with lib;
let cfg = config.ec2; in
{
imports = [ ../profiles/headless.nix ./ec2-data.nix ./grow-partition.nix ./amazon-init.nix ];
imports = [ ../profiles/headless.nix ./ec2-data.nix ./amazon-grow-partition.nix ./amazon-init.nix ];
config = {
virtualisation.growPartition = cfg.hvm;
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
autoResize = true;

View File

@@ -1,43 +0,0 @@
# This module automatically grows the root partition on virtual machines.
# This allows an instance to be created with a bigger root filesystem
# than provided by the machine image.
{ config, lib, pkgs, ... }:
with lib;
{
options = {
virtualisation.growPartition = mkOption {
type = types.bool;
default = true;
};
};
config = mkIf config.virtualisation.growPartition {
boot.initrd.extraUtilsCommands = ''
copy_bin_and_libs ${pkgs.gawk}/bin/gawk
copy_bin_and_libs ${pkgs.gnused}/bin/sed
copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk
copy_bin_and_libs ${pkgs.utillinux}/sbin/lsblk
cp -v ${pkgs.cloud-utils}/bin/growpart $out/bin/growpart
ln -s sed $out/bin/gnused
'';
boot.initrd.postDeviceCommands = ''
rootDevice="${config.fileSystems."/".device}"
if [ -e "$rootDevice" ]; then
rootDevice="$(readlink -f "$rootDevice")"
parentDevice="$(lsblk -npo PKNAME "$rootDevice")"
TMPDIR=/run sh $(type -P growpart) "$parentDevice" "''${rootDevice#$parentDevice}"
udevadm settle
fi
'';
};
}

View File

@@ -5,7 +5,7 @@ with lib;
let
cfg = config.virtualisation.virtualbox.host;
virtualbox = config.boot.kernelPackages.virtualbox.override {
inherit (cfg) enableHardening headless;
inherit (cfg) enableHardening;
};
in
@@ -47,15 +47,6 @@ in
</para></important>
'';
};
headless = mkOption {
type = types.bool;
default = false;
description = ''
Use VirtualBox installation without GUI and Qt dependency. Useful to enable on servers
and when virtual machines are controlled only via SSH.
'';
};
};
config = mkIf cfg.enable (mkMerge [{

View File

@@ -8,8 +8,6 @@ let
in {
imports = [ ./grow-partition.nix ];
options = {
virtualbox = {
baseImageSize = mkOption {
@@ -66,10 +64,7 @@ in {
'';
};
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
autoResize = true;
};
fileSystems."/".device = "/dev/disk/by-label/nixos";
boot.loader.grub.device = "/dev/sda";

View File

@@ -314,9 +314,6 @@ let
test2.vmFlags = hostonlyVMFlags;
test2.vmScript = dhcpScript;
headless.virtualisation.virtualbox.headless = true;
headless.services.xserver.enable = false;
};
mkVBoxTest = name: testScript: makeTest {
@@ -405,14 +402,6 @@ in mapAttrs mkVBoxTest {
shutdownVM_simple;
'';
headless = ''
createVM_headless;
$machine->succeed(ru("VBoxHeadless --startvm headless & disown %1"));
waitForStartup_headless;
waitForVMBoot_headless;
shutdownVM_headless;
'';
host-usb-permissions = ''
my $userUSB = removeUUIDs vbm("list usbhost");
print STDERR $userUSB;

View File

@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
patchPhase = ''
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${revision}\"; }\n' > libs/ardour/revision.cc
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
patchShebangs ./tools/
'';

View File

@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
#doCheck = true; # takes lots of time
outputs = [ "bin" "dev" "out" "doc" ];
outputs = [ "dev" "out" "bin" "doc" ];
meta = with stdenv.lib; {
homepage = http://xiph.org/flac/;

View File

@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
homepage = http://ncmpcpp.rybczak.net/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ lovek323 mornfall koral ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View File

@@ -28,10 +28,10 @@
ada-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, wisi }:
elpaBuild {
pname = "ada-mode";
version = "5.2.0";
version = "5.1.9";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ada-mode-5.2.0.tar";
sha256 = "1j4f94bmykz5j6kyyg5x81k0yjai609c1qzs8sig8v267hydkpqr";
url = "https://elpa.gnu.org/packages/ada-mode-5.1.9.tar";
sha256 = "04hwy9py22c4vpbk24idbyavjdjpm1akvnfigdzx35zljdrvk3l7";
};
packageRequires = [ cl-lib emacs wisi ];
meta = {
@@ -471,10 +471,10 @@
debbugs = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, soap-client }:
elpaBuild {
pname = "debbugs";
version = "0.10";
version = "0.9.7";
src = fetchurl {
url = "https://elpa.gnu.org/packages/debbugs-0.10.tar";
sha256 = "0vrsa70h6ipsq01qr9qzlaw1704xqviby321ri6w69wkwlcjkpin";
url = "https://elpa.gnu.org/packages/debbugs-0.9.7.tar";
sha256 = "07w73if4lmh23ih2v3p0197f781002dywd5fzdbmr4hcqvvi97qq";
};
packageRequires = [ cl-lib soap-client ];
meta = {
@@ -523,19 +523,6 @@
license = lib.licenses.free;
};
}) {};
diffview = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "diffview";
version = "1.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/diffview-1.0.el";
sha256 = "1gkdmzmgjixz9nak7dxvqy28kz0g7i672gavamwgnc1jl37wkcwi";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/diffview.html";
license = lib.licenses.free;
};
}) {};
dismal = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "dismal";
@@ -618,10 +605,10 @@
}) {};
el-search = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "el-search";
version = "0.2.2";
version = "0.2.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/el-search-0.2.2.tar";
sha256 = "07b4jk143vi3sydg03mg12gy1rs21q0qvs7p303irwz4pv8bfwqj";
url = "https://elpa.gnu.org/packages/el-search-0.2.1.el";
sha256 = "1ralag6a4752mqbsz92prd1f75380q5f7j4k3ajhv66krhd1w0k6";
};
packageRequires = [ emacs ];
meta = {
@@ -711,10 +698,10 @@
}) {};
exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild {
pname = "exwm";
version = "0.10";
version = "0.6";
src = fetchurl {
url = "https://elpa.gnu.org/packages/exwm-0.10.tar";
sha256 = "1c8558dxy7a2m61a0bc0p5vrdw3nw03zq9s8wxgmdvlklyzbqa22";
url = "https://elpa.gnu.org/packages/exwm-0.6.tar";
sha256 = "0fxkhpc87wd7crzwwj9r5r3s07pznsphk4hi8jinx91641szi1px";
};
packageRequires = [ xelb ];
meta = {
@@ -859,19 +846,6 @@
license = lib.licenses.free;
};
}) {};
hyperbole = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "hyperbole";
version = "6.0.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/hyperbole-6.0.2.tar";
sha256 = "0nyihi7j2061jpdzl4mf4pki840hkfpwj0m2sqz0nqxd689ckwpg";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/hyperbole.html";
license = lib.licenses.free;
};
}) {};
ioccur = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "ioccur";
version = "2.4";
@@ -1006,10 +980,10 @@
}) {};
lmc = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "lmc";
version = "1.4";
version = "1.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/lmc-1.4.el";
sha256 = "0fm4sclx9gg0d0615smz105x320sk45y4ivpjk3nbc67c5l0sh2h";
url = "https://elpa.gnu.org/packages/lmc-1.3.el";
sha256 = "0s5dkksgfbfbhc770z1n7d4jrkpcb8z1935abgrw80icxgsrc01p";
};
packageRequires = [];
meta = {
@@ -1228,15 +1202,14 @@
license = lib.licenses.free;
};
}) {};
nhexl-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
nhexl-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "nhexl-mode";
version = "0.2";
version = "0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/nhexl-mode-0.2.el";
sha256 = "0qrzpkxxdwi2b3136yj5agvaxwr9g2c58kpmjmjpfhpc6yyyx5x0";
url = "https://elpa.gnu.org/packages/nhexl-mode-0.1.el";
sha256 = "0h4kl5d8rj9aw4xxrmv4a9fdcqvkk74ia7bq8jgmjp11pwpzww9j";
};
packageRequires = [ cl-lib emacs ];
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/nhexl-mode.html";
license = lib.licenses.free;
@@ -1336,10 +1309,10 @@
}) {};
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "org";
version = "20160829";
version = "20160725";
src = fetchurl {
url = "https://elpa.gnu.org/packages/org-20160829.tar";
sha256 = "1p0bxbzjzxmhsg1m4a3mlsphh7gcv6b97mfgkl22lfy0ia0g1fzv";
url = "https://elpa.gnu.org/packages/org-20160725.tar";
sha256 = "05ky7hlsjqlml14ss9hcj2756clvsi1f26gv7a01d923m3drkqjc";
};
packageRequires = [];
meta = {
@@ -1402,10 +1375,10 @@
}) {};
poker = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "poker";
version = "0.2";
version = "0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/poker-0.2.el";
sha256 = "0sikspimvnzvwhyivi1gvr0630zz2pr3q2fwagl57iv06jas9f00";
url = "https://elpa.gnu.org/packages/poker-0.1.el";
sha256 = "0gbm59m6bs0766r7v8dy9gdif1pb89xj1h8h76bh78hr65yh7gg0";
};
packageRequires = [];
meta = {
@@ -1466,26 +1439,6 @@
license = lib.licenses.free;
};
}) {};
realgud = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, load-relative, loc-changes, test-simple }:
elpaBuild {
pname = "realgud";
version = "1.4.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/realgud-1.4.3.tar";
sha256 = "07yfah8kmr60rhrj8y8gs7l85hsbylv26crw3qbqh67ka4ykpj01";
};
packageRequires = [
cl-lib
emacs
load-relative
loc-changes
test-simple
];
meta = {
homepage = "https://elpa.gnu.org/packages/realgud.html";
license = lib.licenses.free;
};
}) {};
register-list = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "register-list";
version = "0.1";
@@ -1618,15 +1571,14 @@
license = lib.licenses.free;
};
}) {};
sml-mode = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
sml-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "sml-mode";
version = "6.7";
src = fetchurl {
url = "https://elpa.gnu.org/packages/sml-mode-6.7.el";
sha256 = "041dmxx7imiy99si9pscwjh5y4h02y3lirzhv1cfxqr3ghxngf9x";
};
packageRequires = [ cl-lib emacs ];
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/sml-mode.html";
license = lib.licenses.free;
@@ -1687,10 +1639,10 @@
}) {};
stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
pname = "stream";
version = "2.2.1";
version = "2.2.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/stream-2.2.1.el";
sha256 = "1d91ddak5whb7kln216vhcsl707h5kirc6aqbkw82skhpg4c3ap1";
url = "https://elpa.gnu.org/packages/stream-2.2.0.el";
sha256 = "0i6vwih61a0z0q05v9wyp9nj5h68snlb9n52nmrv1k0hhzsjmlrs";
};
packageRequires = [ emacs ];
meta = {
@@ -1738,15 +1690,14 @@
license = lib.licenses.free;
};
}) {};
temp-buffer-browse = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
temp-buffer-browse = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "temp-buffer-browse";
version = "1.5";
version = "1.4";
src = fetchurl {
url = "https://elpa.gnu.org/packages/temp-buffer-browse-1.5.el";
sha256 = "1drfvqxc6g4vfijmx787b1ygq7x2s5wq26l45qnz4wdrqqmcqx3c";
url = "https://elpa.gnu.org/packages/temp-buffer-browse-1.4.el";
sha256 = "055z7hm8b2s8z1kd6hahjz0crz9qx8k9qb5pwdwdxcsh2j70pmcw";
};
packageRequires = [ emacs ];
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/temp-buffer-browse.html";
license = lib.licenses.free;
@@ -1808,10 +1759,10 @@
}) {};
transcribe = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
pname = "transcribe";
version = "1.5.2";
version = "1.5.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/transcribe-1.5.2.el";
sha256 = "08m1n6adab46bfywm47gygswf10vnxcfh16yjxglvcsg4prkn2vh";
url = "https://elpa.gnu.org/packages/transcribe-1.5.0.el";
sha256 = "0capyagpzmrf26jgqng5kvsxz30pf2iq55drnws73w9jywkq45mf";
};
packageRequires = [];
meta = {
@@ -1980,10 +1931,10 @@
wisi = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "wisi";
version = "1.1.3";
version = "1.1.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/wisi-1.1.3.tar";
sha256 = "1vhligxyg73gvr68767pjgiqxah00a920h6i37kip8xmhlkgp9ak";
url = "https://elpa.gnu.org/packages/wisi-1.1.2.tar";
sha256 = "04gryfpgbviviwbnvv3sh280pzasr59cp5xz1s0yf0n4d3rv2df3";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -2020,10 +1971,10 @@
xelb = callPackage ({ cl-generic, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "xelb";
version = "0.11";
version = "0.9";
src = fetchurl {
url = "https://elpa.gnu.org/packages/xelb-0.11.tar";
sha256 = "12qgbv30dizp7kadq9kg7nfyg5qfbfy14s833zg95fqqa87qg90j";
url = "https://elpa.gnu.org/packages/xelb-0.9.tar";
sha256 = "19gv08wxs2s337y1wv2i19a0vk8w6733l9mryn334yy2m5031vxh";
};
packageRequires = [ cl-generic emacs ];
meta = {

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@
}:
stdenv.mkDerivation rec {
name = "qgis-2.16.2";
name = "qgis-2.16.1";
buildInputs = [ gdal qt4 flex bison proj geos xlibsWrapper sqlite gsl qwt qscintilla
fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags ] ++
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://qgis.org/downloads/${name}.tar.bz2";
sha256 = "0dll8klz0qfba4c1y7mp9k4y4azlay0sypvryicggllk1hna4w0n";
sha256 = "4a526cd8ae76fc06bb2b6a158e86db5dc0c94545137a8233cd465ef867acdc8b";
};
cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";

View File

@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
patches = [ ./imagetragick.patch ] ++ cfg.patches;
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
outputs = [ "dev" "out" "doc" ]; # bin/ isn't really big
outputMan = "out"; # it's tiny
enableParallelBuilding = true;

View File

@@ -49,6 +49,6 @@ stdenv.mkDerivation rec {
description = "The GNU Image Manipulation Program";
homepage = http://www.gimp.org/;
license = stdenv.lib.licenses.gpl3Plus;
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
postInstall = ''
for p in $out/bin/*; do

View File

@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
openjpeg opencolorio vc poppler_qt5 curl ilmbase
];
NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];
NIX_CFLAGS_COMPILE = [ "-I${ilmbase}/include/OpenEXR" ];
enableParallelBuilding = true;

View File

@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
sha256 = "0nzvfxd3ybxx61rj6vxcaaxfrsxrl9af3h8jj7pr3rncisnl9gkl";
})];
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
buildInputs =
[

View File

@@ -11,8 +11,6 @@ stdenv.mkDerivation rec {
sha256 = "0cr0z81a41bg193dx9crcq1mns7mmzz7qys4lrbm18cmdbwkk88x";
};
outputs = [ "bin" "out" "dev" "doc" ];
buildInputs = [
boost cmake ilmbase libjpeg libpng libtiff opencolorio openexr
unzip
@@ -23,15 +21,10 @@ stdenv.mkDerivation rec {
];
preBuild = ''
makeFlags="ILMBASE_HOME=${ilmbase.dev} OPENEXR_HOME=${openexr.dev} USE_PYTHON=0
makeFlags="ILMBASE_HOME=${ilmbase} OPENEXR_HOME=${openexr} USE_PYTHON=0
INSTALLDIR=$out dist_dir="
'';
postInstall = ''
mkdir -p $bin
mv $out/bin $bin/
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {

View File

@@ -14,12 +14,12 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];
preConfigure = ''
export CPATH="${ilmbase.dev}/include/OpenEXR:$CPATH"
export CPATH="${ilmbase}/include/OpenEXR:$CPATH"
'';
qmakeFlags = [
"EXIV2PATH=${exiv2.dev}/include/exiv2"
"OPENEXRDIR=${openexr.dev}/include/OpenEXR"
"OPENEXRDIR=${openexr}/include/OpenEXR"
"FFTW3DIR=${fftwSinglePrec.dev}/include"
"LIBTIFFDIR=${libtiff.dev}/include"
];

View File

@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}m";
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}m";
enableParallelBuilding = true;

View File

@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
};
outputs = [ "bin" "dev" "out" ];
outputs = [ "dev" "out" "bin" ];
buildInputs = [ libjpeg libtiff librsvg ] ++ libintlOrEmpty;

View File

@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "emem";
version = "0.2.28";
version = "0.2.27";
name = "${pname}-${version}";
inherit jdk;
src = fetchurl {
url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
sha256 = "1hapvvkkwnvg32awx4nj84s2ascpci6x02wf4rckyd1ykbxp2b8m";
sha256 = "0zmh152dfgsq2yj14wb3504pyibq4r671q5yz6yy28ihym7qr0fd";
};
buildInputs = [ ];

View File

@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
preConfigure = ''
cp src/gcconfig.pri.in src/gcconfig.pri
cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
echo 'QMAKE_LRELEASE = ${qttools.dev}/bin/lrelease' >> src/gcconfig.pri
echo 'QMAKE_LRELEASE = ${qttools}/bin/lrelease' >> src/gcconfig.pri
sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
'';
#postConfigure =

View File

@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
makeFlags = [ "prefix=$(out)" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ zlib libX11 libXcursor libXext harfbuzz mesa libXrandr libXinerama freetype libjpeg jbig2dec openjpeg ];
outputs = [ "bin" "dev" "out" "doc" ];
outputs = [ "out" "bin" "doc" ];
preConfigure = ''
# Don't remove mujs because upstream version is incompatible
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
Description: Library for rendering PDF documents
Version: ${version}
Libs: -L$out/lib -lmupdf -lmupdfthird
Cflags: -I$dev/include
Cflags: -I$out/include
EOF
moveToOutput "bin" "$bin"

View File

@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
"--with-libxml2=${libxml2.dev}"
"--with-libxml2=${libxml2}"
"--with-libxslt=${libxslt.dev}"
];

View File

@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
description = "Console version of StarDict program";
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
};
src = fetchurl {

View File

@@ -46,8 +46,8 @@ stdenv.mkDerivation rec {
configureFlags = "
--without-arts --disable-docs
--x-includes=${libX11.dev}/include
--x-libraries=${libX11.out}/lib
--x-includes=${libX11}/include
--x-libraries=${libX11}/lib
--with-qt-dir=${qt3}
";

View File

@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
buildInputs = [
imake
libX11 libXt libXext libXpm
] ++ stdenv.lib.optionals svgSupport [ librsvg glib gdk_pixbuf pkgconfig ];
] ++ stdenv.lib.optional svgSupport [ librsvg glib gdk_pixbuf pkgconfig ];
outputs = [ "out" "man" ];

View File

@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
description = "An open-source RSS/Atom feed reader for text terminals";
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
description = "An open-source RSS/Atom feed reader for text terminals";
maintainers = with maintainers; [ lovek323 ];
license = licenses.mit;
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View File

@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libcommuni qtbase ];
enableParallelBuilding = true;
enableParallelBuild = true;
preConfigure = ''
export QMAKEFEATURES=${libcommuni}/features

View File

@@ -4,123 +4,123 @@
# ruby generate_sources.rb 45.1.1 > sources.nix
{
version = "45.3.0";
version = "45.2.0";
sources = [
{ locale = "ar"; arch = "linux-i686"; sha512 = "a2d1728cec3775a3a012ada32a8934fa1a94ff0af315e395e765c94873593c4e2ddb1ec5acee33a83f2970137087ff1fd6ba23b0bbea3780e4f67a3b46146911"; }
{ locale = "ar"; arch = "linux-x86_64"; sha512 = "d29362ecf4abe3cb7224058ffb421feafe5ddb277ad8cae407907c0939028e7e03079ec3b6a691cf260ea29908be7df4377dbc626704da622548056f45b6e9d7"; }
{ locale = "ast"; arch = "linux-i686"; sha512 = "51fb3626875acbf78f0d2337feee07aeaca24dec59042a2b6374afb205dce099df477ab3384e0e9c545fe68ac13af921a8d3a1c4c93f721d7831f3aca15e4783"; }
{ locale = "ast"; arch = "linux-x86_64"; sha512 = "660376e67491f11d484ff112b8b8d1dc9187a7bb7f7ff1e8665d3693e5eee9737bff8f23f69f4d71b2d3f3be0ad4d816febb4894bb17ac911e19ef18411fc667"; }
{ locale = "be"; arch = "linux-i686"; sha512 = "be5fed683ee9b325f135e65fc6f641d81b7294f3d13f411b36b4e73d68a8b8592d0c93fa6ad55fc9aa8a281a5d2069f3f8dcf029038d867f3b87baf8e4a93411"; }
{ locale = "be"; arch = "linux-x86_64"; sha512 = "4b92f1999478d9a97737b31f34ca78bcbf6d657297b0ef791327c73d89a1737a29df9eaca47aed3e0f1ddf0d4925ba6c0a51584ca8009237ea98fec9007e69b9"; }
{ locale = "bg"; arch = "linux-i686"; sha512 = "76d2450774254052ee216644f53025ffd4a928932955d856e16141a95b557fc327b17f01d4c47ff3b7f8a8c267a6a78511c126980554bf64f5fa5c06eba758fe"; }
{ locale = "bg"; arch = "linux-x86_64"; sha512 = "53f2463e8838e6dc53fd1212745f401dbbffec484036745114f04e90e2270421efb0e579724023f1a153e2fbf5afb9e31b383b9d0a8e74ec15cdd17aff04b58c"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha512 = "c798161824be7fd3253308b3157c0dfb5dbec085f2b530fa4a7cd8992b8e602031c0c8f6959449a3a7f988f10b00b1f99f331b017c8d38358a017e54c2ff5166"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "8f8fafa9a79696a81e2e4a7e033edec1e37c44fc6b4a5a20cea0853f88ac978fa536109a81f5fe7baf574af6e1778975b8df5e0a47a0c6cb8161dd19f3e2c067"; }
{ locale = "br"; arch = "linux-i686"; sha512 = "9007da613fd8930e669da228197d5be59d53a26f94453523ae468a0b4172adb4509e5ae1677ca21421031238910d19f45323fb09ef52ac95205f1fa3a1d8ce46"; }
{ locale = "br"; arch = "linux-x86_64"; sha512 = "57cead8865a052981729f55f85f402329dd4151cf3f89ad5c6cc1a83a068a9ba1e309db521ecde1cf90a3737b04a7d992087a68b93506ce0ab4a7ea26253b761"; }
{ locale = "ca"; arch = "linux-i686"; sha512 = "5401395d2e57ada9b62fd1d8a90006e60884a38086fe74bc720109d1fd8d989292bcb2781c1b30f19fbfcb867bf157bf33c3948463ab1e0fd8ddbfbc790b492d"; }
{ locale = "ca"; arch = "linux-x86_64"; sha512 = "1d69ddc33643c7227d80cbb61087a73ff46c79e1531479531201b4e49a53400fc576f445306dad20b318f189e8b739179390f9ca7fd340e2d2cac46650569da6"; }
{ locale = "cs"; arch = "linux-i686"; sha512 = "25a9c864e60aced998c1599786a9cb3db92c02b9d855c7500fd466cd92f4bc8ff6fc7c5cb37c52b3dbba990ae4ce0eee1854f4f3459b4c2ce50e4e4ccd3ff445"; }
{ locale = "cs"; arch = "linux-x86_64"; sha512 = "0b1b72a4f43192afa03fcf17e234fa6d09ab20cccadc0a58682b37c96a576c31d2e5022d3d778992c188b826816d7d36e56fbf4055a0be2213e45062a162939d"; }
{ locale = "cy"; arch = "linux-i686"; sha512 = "b69312902ede9687c804a068f9fcf70c0c3c68786d92c72a5b38ed38e9773382223e5d09a2067632b02ae9e2f224c85e0c95de9ada535e0b8e37ce5f6aa86006"; }
{ locale = "cy"; arch = "linux-x86_64"; sha512 = "bd03a664a14c2b7271db1ae66f65fada02eb995da9d8466f345d25b40bbd7f836e48e9e8f19276f7109e5e42effc3be70d0c20705d386620319c6e2c920027c4"; }
{ locale = "da"; arch = "linux-i686"; sha512 = "2fce874759494b51d9f9081f26985834527984cec849f1f07ebd0f3b7523bdeb7a39cae6d17f021e82972f392ae7cc33d6b81606f81afc7bc35a75698889905d"; }
{ locale = "da"; arch = "linux-x86_64"; sha512 = "c7fd6b68f50c2ea4abb2d72dfb804db0e5ff3a8dd932f36fb7e9f194f4a12469bf64785ba18ad6f989b5456e6a0387c17fcf421075341998dce315f658b70058"; }
{ locale = "de"; arch = "linux-i686"; sha512 = "8661fd16bcb94fba14156ea0d569364b495dd470359491b482f6e9c957a6ffd1c9b3a60728d6a0755a1789d6c3029952bead677df38d3f7e972469cd877d96a2"; }
{ locale = "de"; arch = "linux-x86_64"; sha512 = "c98b8afbd38e3ea31196a2dfdd3e8a13639aed9a3052a25dbcf851139a75167481b67c94542be310c5a2fd8850c8396ff2fbb57ac14b0158c87b6e30562d1eb6"; }
{ locale = "dsb"; arch = "linux-i686"; sha512 = "2e5f781f0ea57f4cc129693d5085d17047ecdde3273a97b83717e793bef2693ddd543078c667635e2603e5a4867fdee60cecf0fe47170f84d31456c72f4753a1"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha512 = "fcaad0f6ea4f9610bbfb5efd414005ab1b62d13799e2f0ff0188c0e262910c881f0e7ca838c6d18df0bc629eb26e4dc34e48635fb64029f484c0fe3aec12cef0"; }
{ locale = "el"; arch = "linux-i686"; sha512 = "d71b2805881cf5b7f0c06e398289907f224bbb58ffe676c32587f98cdfa6d80b1a8497bf4d1d515a4b1ba8472f5250dc7df178a0fd47baf51746409c18157d69"; }
{ locale = "el"; arch = "linux-x86_64"; sha512 = "89309f36b503f1be5a23f24def962a7ed6604369fc1e3a254deaf3fca6b020837813e7b3a5896320620301eb14025c604121c4b6727f1362d6783da6256be039"; }
{ locale = "en-GB"; arch = "linux-i686"; sha512 = "233fb74c88ff43fc5520fef6fc052019551405ed43e786448c9b7921fb620b81b8b1569dbd3c57b7e8a0aa34043b29fa388100ab0ad66545bb84675de43d4b9b"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha512 = "70dddef3561b53d359ed59205dd77d661f6842a7ac4a62d79f2f2576a7d2b9a8735ae7e48759b669bade841dd7329857d4c273fd6e202f1ae22201b7d461def3"; }
{ locale = "en-US"; arch = "linux-i686"; sha512 = "bf1f75d614dc0e401981b81d84911f2e13a1c8fc668b8a7c531963162ac293f72d6252aceb4447c97c57cc3b632452de6475f294f82090751141c3f8f681b868"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha512 = "5b7ba243783d5bd3eb1acc6cad872b5f2885cf289d33274932ceee2159295c84230f692a1338fc4c4c3e1947436917251ed54a6995922b4777bdee7e5303ec29"; }
{ locale = "es-AR"; arch = "linux-i686"; sha512 = "9fddac56cc41a0b83c794ad7b7744573a6039c736d785a46666fb5c40360aae0397d129e523a7ac8b7e9b07295b56741e96e8cea770533c7c3611c209f9ae5ad"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha512 = "f7d7a051bc7411d2811aa5672da7aff51ee96065eb26e47e9eda721c0e125a529353a6290195cc257f36e44dbca6d81dff1342478a52b0d700f7def335135440"; }
{ locale = "es-ES"; arch = "linux-i686"; sha512 = "b0b32a37d13b76899037c7d34e2444cb45d54166516c6f6f141ae4713e5cca36827c0c02f4d9614a1c7eb5d9d859087586dda3e311d221f19091414557f9b713"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha512 = "918affe04e2dbf1f8d2f65a8a16cb30d575631d323eeb5cd29e76f2b30d003337e35792e57f78ca6bf8abd253f005296b44b71ecd4c48d055456b8820a2b8551"; }
{ locale = "et"; arch = "linux-i686"; sha512 = "7a2aaa9e81fa166ad66ef6a275ea1e1b1f333946e73bd22c7954b78641949a870e8c4ff38f763ef22bbf25cf81ad0138e5d4b154b1d2cb90126ef53e56b6e676"; }
{ locale = "et"; arch = "linux-x86_64"; sha512 = "cfb751a0d94cbc3e130abe78dceb81117750b16c9665860a083a71554ce96e9102fa3c8b084c7acf07c9e10a8fe30e54e5964a214486c2bd16d93678a4b6948d"; }
{ locale = "eu"; arch = "linux-i686"; sha512 = "c99dd3738739f06963cf3e31d72831d8861c898ac512b0563f0d9ab21e671fed55c0e16e07ff87e058873095204a81f1756d77453e792bcc522c81d6ac26638c"; }
{ locale = "eu"; arch = "linux-x86_64"; sha512 = "4726d30ed22d79edca4d3a6082ecf40cb107b28aeebcc1ed21faca951cd955fca524d4c16f4e9ac71fd57651c2392d79c5adcafea9a7dadbe84dc3e3511f47f4"; }
{ locale = "fi"; arch = "linux-i686"; sha512 = "3fe4ae74f046a0fcf95570ff7cd00abfa63567153bbabd036ecd8cccf1aab075b19e43642e247c741165d3990f1690d4c7f4b3eb16aaa34188d1bd17c202e06d"; }
{ locale = "fi"; arch = "linux-x86_64"; sha512 = "5e76a85eb66d62c2fcd42d0274e43c052131bd2a8d54bce256e417782d1b97985cc9a917fba18ab1118e72fd3bacb94abdf5620c1be9a7225f6c9b62f1eb0e02"; }
{ locale = "fr"; arch = "linux-i686"; sha512 = "216e084442018d1e5925d4deb14c11bda248d5015696b22167693f2534dd98049dd385bc3061348085113487b93cfea675cb7ea528ca4385022b33860b39633a"; }
{ locale = "fr"; arch = "linux-x86_64"; sha512 = "6fbb2935899d94b3f56b27c131e2574f6735fba4147430a1dd5cd8728db29b90fd1416bc3661b1a3a927f496e9d716ae165ed8c65951184c2b1e07c962f876df"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha512 = "f752dbe8d2e90c0b5e60faa0b34280050463ea1bdda0749c9d46a46f08339e5952eacf70f0765144677362c9dad51c24a3bdffeb89e309563e472484f436993f"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "302d8bf3941e0dff52918202f7f885dcb14ae9504baf52686a5c9201a644d469c57925181074ac0789d437d9bd8bfa965ae2ccbd54f51dbe2bc352b29d4a1e9c"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha512 = "be52801d6995cd377d451a640e319c2b812d83d62cbb2c3bf7063a18f03838f9b758add09875aa9e4e973b3ce3ac285f6f3486a7495590acf5672ccb900e5528"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "a475b35c3fbd9fee3e4fd1475b9d3138d58df296744660dd8cc1932f121bbe9b1a2324c6452a4159b5c97a3846f38e92b9214a512d739a897cffeb40805cc0c7"; }
{ locale = "gd"; arch = "linux-i686"; sha512 = "88e209d87e38dd950b1248351d6b0518f63dd27423d2f30df1b177740dda4fb3568e19361b066ddd758fe071a7f2c747f8ff9307d6745b9d68002bb34be5dc77"; }
{ locale = "gd"; arch = "linux-x86_64"; sha512 = "a56c26c2393323a8ec9190a89b3c1a4a27de9086222791e6cc84de0f640e2700274b92ffda0a21aa1de39684443108499122a12fbf5ceec3df69301132cf3463"; }
{ locale = "gl"; arch = "linux-i686"; sha512 = "bc180ce7132641596151a1b6516b6ab9aa6070c542fbe90be7e440580c8f7a488348ba238922e33c8aea10505814604d5f5568d03978bcc75db536a31f66c4ce"; }
{ locale = "gl"; arch = "linux-x86_64"; sha512 = "92bba67974146f832d91c6d023b60a7d4dd3f0391f4df9744379035bbf6fe2ca43d8eb81e05184658da34d5519b310f06fe4429287874ba618d3720931ef89a6"; }
{ locale = "he"; arch = "linux-i686"; sha512 = "37da8123306823963ac02c9756d5ce3e76207ee0a1652fdad42cf2c8467062f1369c8f6640625fdc049e2c024d6ed71cb3c9c669d18e1d737246d510102d1d89"; }
{ locale = "he"; arch = "linux-x86_64"; sha512 = "62bb1f1735c13ac7adef4ce922eff64aba486bb2274691b8c3df12c4d87c30660dd2054e6fa314f56a690a0a8bf3533237d0d4bce89f83cc7a955e8de3f9fc43"; }
{ locale = "hr"; arch = "linux-i686"; sha512 = "b36128139442da20bdda63bf325a12e6f7467fe8f1baf8a56a3b0c55c8cce45f8c5a629b25a97b12c86e10fc12cddc2edd9aeea651bb9026427c6486270d80a2"; }
{ locale = "hr"; arch = "linux-x86_64"; sha512 = "ec3c826ed484ced10b417320d50f3c0c9b955b71eb656b2469c7a3268d712579901cba904a789f5f6a2fab6d7707401ff1ea0e112a575091c4196d7bd178387d"; }
{ locale = "hsb"; arch = "linux-i686"; sha512 = "274b913c0a5c293b45c622c360380560c62b19772c0d5616d46040b6330cc5c330177084f743f2edc2624c88bcafda748fcd3beae606adf7eafbc4711845517e"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha512 = "5af289d7d57645959c0b1f1437239e8ed989720c586b6dff7734bd675258f6876b467b2e4a29686ac0f703685e41204b702df758ea25410271ecad9d9beee203"; }
{ locale = "hu"; arch = "linux-i686"; sha512 = "fff9201e818d17b8ed453d272c5095625edac664555fc028efa9f08d23ad151d5aa22e3ddd9ee0eae9d0dfdfac27ca882107f12aa023741bcbd20be61e11c457"; }
{ locale = "hu"; arch = "linux-x86_64"; sha512 = "cbe561fbd504b14c59e5db745dcbf83edbb5bf1813f86888419d0dc5cab43bc700f96782c36d1bc8c8732311758209faee5d9755e872e626c0a6012e5be6e441"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha512 = "954e697b2400b93fc575c7336a613d3d63702e80a12617a9c86b08e294bf4dad54c2cae4669525e88ecb55a0c029bab028105659a12656f03ce2ba0f0a7e71b1"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "9e27956960fb2154e8c4b895123ceb0cbc8538f3f4563e2888db2d056605de0612a629c66f3db9a9acc3db7032ef39b553a9791a11489e89b6485c00f0e1b903"; }
{ locale = "id"; arch = "linux-i686"; sha512 = "bdedb03a25ec664c0443fa4e1e0d5dfa84ac5644e2a5dcefc67a714b71c2d18d9a38962e7ca2661f4d0d4d518d3e4eab51fb499efc32825a0446387cd22ed34e"; }
{ locale = "id"; arch = "linux-x86_64"; sha512 = "2c18f2b919a64f540e5a1e59a430d1c710959711757e06fb38a12b67f0ff139ddde822ef7cdf5836a32d3bf904e56fb56e9d8d97f9d49cf35b67650be54e131c"; }
{ locale = "is"; arch = "linux-i686"; sha512 = "73e866f713fc38ab7e56b97c985db69d49bdea2007c84e2ba54638f07433fc37a1a65a1189dd2b847394811e57ba8c767e20756686ec7fc86dcc3248168b110d"; }
{ locale = "is"; arch = "linux-x86_64"; sha512 = "031c069a6c6dd79f21594dcd64801c9f11bf4e41ba8efd3b17020fdebae585ea746910c0186a5dcfb5a073ff33807d8324932e5ef3c2e04b5d35e24a714f2cd2"; }
{ locale = "it"; arch = "linux-i686"; sha512 = "86bf4650fabfb9716d228e8449792b620a0692e3f5c6af19398cb37b1079cdf79f42795e16cd13c6ed261c1a81b7b3a23ba305299d03bcf1d716ee0ccade903d"; }
{ locale = "it"; arch = "linux-x86_64"; sha512 = "5225af86242544e4fdc176fa68463c9ab03e4066ae57266f112aec179f7085b7621df7e46e34302bc3e3e30dc713eb45af568b86bfb1a4fa6b01f50fe677b5b2"; }
{ locale = "ja"; arch = "linux-i686"; sha512 = "401e4c7b9831f2a3342764b6a2de732c89fe5687ff1e611c4ba1b630f22936c0343b3ef5ec444925ccc68c8ad45cd98d67ca502c32094adb567bfa64481e82c0"; }
{ locale = "ja"; arch = "linux-x86_64"; sha512 = "7962eaef19bc5bdcf5f3aa9dad6df110ffed9b247d13dd61f3c4c170e4c854985d061847b84058bac35c16391821bdbbf5ed05120687cfc75c4baeba2de6f5ee"; }
{ locale = "ko"; arch = "linux-i686"; sha512 = "d09e2083db577b308a65d1600bf15cbc6cae7b5137c66782d922a28588803a58348f87df5b9cb2cf9ca00713d542d441c5947475b551c8d5d929dc6293c00a48"; }
{ locale = "ko"; arch = "linux-x86_64"; sha512 = "b8689c851b176ec82b73566bffecff54c0e6c85efcae7deb9dd542360fd7a0f8a6f8e53c193060dc36a98203ad7024a0c1d408ac2348f59fd9f3cbd591a17e5e"; }
{ locale = "lt"; arch = "linux-i686"; sha512 = "8d5bd77d3d5d1b6168b65458bbb4f2409c447cfb6d019fcf7f8d81b3d4d486203533d3acb8a59257e664296636ee5b192b237ebf070b37a729926ff11bd81090"; }
{ locale = "lt"; arch = "linux-x86_64"; sha512 = "7314e8138a913c7610227cbbf71d535f85bf008e09610d742d996be391ff4be0e9dd4daed8fa3ccf1e1556e5c66982e3f2cea0d34d76d78588fe9926420af75f"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha512 = "6b1cbcd9888b400ebcb4eccd416e12d09f29431a4afa3b890b05721d1c4108c35549c2f70800ca386f3b21c66b42be3d00a730d4fd2a4ba9c62069c92ab726f7"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "27f278b9f54b563f0aa907448eba04b4f84c9ab33eadb4737a662058e904e68baa481625c0303764ac7416cf5cad7bcf94a651db981fbcf94ab8e93625555415"; }
{ locale = "nl"; arch = "linux-i686"; sha512 = "d932296e6cc61c634ab09a66328335e0c6049e9d6ca660a862dce3cbe8cc0900fb3bdc0956b82c9f70f18f5c68c1f37acacdd7a3b8a697acd24df1197683aea3"; }
{ locale = "nl"; arch = "linux-x86_64"; sha512 = "010e833b541b1a9ef20d10a1678b7b25cf2a9268cfc6b6f0f1c1e5b1803bfdc4cd214b9e3a86132f1335531f107773dfe01f9f4dcd996262dc2c3ece491b36a4"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha512 = "b2ed20a973248031fb63b5652f6eea2c572c1fc2d8dc780db4cfa6a0450ccc211effc1d79ac67718b444f0247f8659d134586a0abe829df4090f65b1cdb59d93"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "5924aaeeb828464552b0de572ce24cbb94558aa30d599cb518d7dae74e6974d7da9ac5035c5bb2195fe826a8197907c29f02f5f0e83e36c84bb023b208fb56c7"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha512 = "6ac911f182c6c9b7e2617118efb76285136f0320d99f49401e5732841ffd846770bdd7ec98a200922536cfbd855debd037bdbe279b0f43e644d6e107afd73e68"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "e16db609e60e4c79336e31d267af552124b2d2b62fac0066e0a84a6e48f082a46699010a9f2540df30ff5c1d4f8d481c4cfc4caea4acc68f50ab83f996105209"; }
{ locale = "pl"; arch = "linux-i686"; sha512 = "90217da5f30de60aef9da734355d6b5e0a93526e0d8f91db6c21405e2666df12d1ae37acb94638966b1bff6e3de3713c5243b683e4d321b916125ef89af42c15"; }
{ locale = "pl"; arch = "linux-x86_64"; sha512 = "b77b19d6c413a92ae3c0da43f989725b3d74fd9d7c1f343711ea73d5a10e4310f005a2d728fa708fcad3b281c5694964ab91966df00b2667a7a8ef616c3a86eb"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha512 = "d4ce84451941a9382d4fa6225b697e2bea2f72dcf76c72b779bd1e3d955803d7ad3bcbed47e9a7dafde72cd20bfa1e8616b691d275e1e390b2af415e0ea9610c"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "c3585047b7b5611e5925f873e3a996142e9b73b5f5389729f3b609f3554030d39a988183f15aa2a5d07036fecc147cdd0abc02b13601a0e02e794c40cada5b40"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha512 = "e28dce49f6660bea1f56f2515ae539701cc160956318305464ea6b8cf1cf6be21fa8b97b30b234eec9f7e5bc3987ed939b5eca50174ab148a988706f00a2ef0f"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "81a225e7d4f56b0c231d690b4da3f819a1549e8f5194cd6dd2da23d7909c24d9f5f9262e6bec5eee8701ce510980426c7d2612149c4c88da68f910cb7b046d1e"; }
{ locale = "rm"; arch = "linux-i686"; sha512 = "c4c724f0be3d6a1ada175ec87f840b177ab2a074d5ec858a49732ca7b5289a7d3b1e09b9d0e5c195e1e7565175cdef35e5b6e6e1a3344d7e307f9901e0ca1e6f"; }
{ locale = "rm"; arch = "linux-x86_64"; sha512 = "8e55f3b680a7b7d4299e59360413a339a99569af8c3a890cb95437c76dfd903f5fc60b6abfb3820e4dbd7d637015ebf8600f351f858022b535709879c9b0608a"; }
{ locale = "ro"; arch = "linux-i686"; sha512 = "cf91019d92850db3954690a403c13948f53d79574d874aa10effeac92d759d1b5e62cad9184f58c29b6e478903a4c6f4e27cc3e7e2457605332e361da5ab3ab4"; }
{ locale = "ro"; arch = "linux-x86_64"; sha512 = "ed1106a9855752c951f232de0946665914051dda0e9ded0052b4ef10b7f8d19ce3994165eabeb8b2a1f04009fb7909a48c79c484451335ee24541ab3eee52f4c"; }
{ locale = "ru"; arch = "linux-i686"; sha512 = "e3175d29cee4f253f7adf4f1d9b9826840e434d11d0c3f10fd9163f904ca315764b4943fb9d2c8a2324aedaac26047e95b6cf87c3218bc5b941e0b9a07e2b49f"; }
{ locale = "ru"; arch = "linux-x86_64"; sha512 = "62c15a60e2d600068273695f00e4d37416cd7c1804bbc814a3e0b7c0de2a3f23a03b4d6fa5666f25971b7726bd0cde1fccb40cde1e95522704c14252d52384dd"; }
{ locale = "si"; arch = "linux-i686"; sha512 = "a94106b78937fa105eb254044f5ba808edb17b7b0f9b2b56ad918a48566ed43e181b652f4b4feb37d81ed749a5ecd9bd6997cfe6fd1cd7fc001567d9a888f582"; }
{ locale = "si"; arch = "linux-x86_64"; sha512 = "974c8349b19e34e9262a98b44c691354061a8f802c8ce47609251023eb91a97096cc107fbd653e9ef9536deb81259cead57b5bcebadb602af8fe51b7e1224fc6"; }
{ locale = "sk"; arch = "linux-i686"; sha512 = "63fea9c688a89717b5626e407abf82e650916ede2f01189a54d33e4af366474b39383c2d64bde4bfdfdde3bfe767afb8677b1638b3b327c8a387d0dc00b1318e"; }
{ locale = "sk"; arch = "linux-x86_64"; sha512 = "96684db63e28088ca0d1f6c3bc30b3075ee2f135900359060add36a34d539132655ec403847acd4d7823bf80d6fb5f7ce7a0c618031b64f6af725a8b3c4c5a22"; }
{ locale = "sl"; arch = "linux-i686"; sha512 = "6279d3656f2b0a71e7082fd728bd2b551b16838263d7f83a32eebbb28e6d69df11be3f25db259a464428529ddf389f221048f445f0a0f34de1c263aca6fc48ae"; }
{ locale = "sl"; arch = "linux-x86_64"; sha512 = "c69e0ae0d72229c59ca0fa68789c1bdab1ceff5159906ccb27766b854b677328cb1c305d5568c058b93c4e512fd5b7f7626531c5a6f1655519f0c07ecc02308f"; }
{ locale = "sq"; arch = "linux-i686"; sha512 = "d63f84b4e5d8b9728e354487b243c3de604c571af39e43a7552cebdf28139271a8acab85bd1dfc6506e1231bb1ed49dc127f3b0400c9fdaeba2bf6c3ea78829d"; }
{ locale = "sq"; arch = "linux-x86_64"; sha512 = "df10b39b6cc461c2418d8b297fed5f7ce34e31a0892737b99076b11095602f250b7018af109555a0ce7959695e00c56835786a9ca10573bfca07d1f21af7dedb"; }
{ locale = "sr"; arch = "linux-i686"; sha512 = "57f710812a1f26212ad0cbc4a3506424d36d0560f5d7d17f8e01d7ed4836fb7a385753b17388b30074cd00985ce7edd7882cb5c326b89840cc816f0b5f1c19cd"; }
{ locale = "sr"; arch = "linux-x86_64"; sha512 = "88a92d428e32b7c3f63fc898c1c3a448ef3b78afde1334d86dc4e68819f05cb8cba9816e875aaf36f52f1f04c42f9833d690c43dc5eedff3743416a76d33f38d"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha512 = "f86b0d7fd4f5875dee70ec00efe7f4c99a59d34e877b21288c89f9d5c83d04b31eeafe7dadc01ee5bd91a76363dace2da86e5bc219909fa06d47c5351931efc4"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "8994b908589746e5d8dc980b5dd06294988399be8e1ced10c6d4b3a6da440f69d6de7f101b9f96723fe55afdc21a7336c141058aa7fc70d283533e5fdd096b85"; }
{ locale = "ta-LK"; arch = "linux-i686"; sha512 = "852a0132af6ed9d0c3da36025e0183b9c5bfc4a34af7870373989602059f05f6f5f779439c68ce577e6821295c2aa45135a2b90624b941c736089c391364e566"; }
{ locale = "ta-LK"; arch = "linux-x86_64"; sha512 = "bf8332314c43a8f2709be4440e9eace27ce4ca097d0db7a25de99ac6447606fda297bdccd5d7bf865a964f5276f04371a022134c22962fa5743cc90f4e1a627e"; }
{ locale = "tr"; arch = "linux-i686"; sha512 = "e46e71d28a9bf4eefe453ad3841bfdbc261594e2b29322bc2e5cc072957674e1121c246d3be3fb56c84f64692d048f6792be526dd600dc85d5b2d7f5d2aaeab4"; }
{ locale = "tr"; arch = "linux-x86_64"; sha512 = "1c5d2d1f01129aa4456c166120ab21dd021e92bcd9ba9f4c1d2911699f856516bd9c9a5ae356397d117ae376fc5a44eb3b3880a2fe7e4f61a3b5bc581544f2b1"; }
{ locale = "uk"; arch = "linux-i686"; sha512 = "7b3acee5c624600f908ec6ff7e664d2414a3fc48208bd54baf0cf209f66460e560137a52445805ccfb410913f2ab8ecee30f4a702fbe0c8bf758bf89411d06fe"; }
{ locale = "uk"; arch = "linux-x86_64"; sha512 = "3b90f1a04c8922889182b81c88a071de2ff54f3524110739878e80738513216ba133ab973219eef822d7c1f605c1d2fa1b32fdbee2451e4c6427a27f9d25599a"; }
{ locale = "vi"; arch = "linux-i686"; sha512 = "bd37a54a586e91b29c668a2995fc37ec5b2e6d0bab5af640575981aff2be91e97181f5f89e0c4720979fac38b19530c056562a2c4a07c3b9868b347ea5f7f831"; }
{ locale = "vi"; arch = "linux-x86_64"; sha512 = "a571cfd9e0e43e9ebf5d29969a9af08c16c3fb44abad302207ee17018b105cb7079a0e3da02433264cddfc2da7922296c41f4d5ee76d722b07211c9cb78c8caa"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha512 = "6560d28c15ec9e46787d8eaa1fd9b20630828f15b2ebea98591e25123e5c51a90e12889ac2474467f9d1e3e41b88ae3cacc75ebb67391af0abbe18aaffa29a48"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "0ad5965f5028c7d0642cdbb140caabab24536e9bb386b6b14c59af52758e667a6217c7251445c462d3c283c72215a449545f06a1d176ad178a17ed51640715c3"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha512 = "a44dc60451845e27560ba41ff5a37446f955076e0da8cbf8ed9ffe06c217dee8847f57c6a58913581ccd4d4039b0f2b570b660882e68bd0e9050371cd1220022"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "17cbdb81577522510f7538d843755f09465700f558d164e6e292070859c9e298165e16c57e5c6db109be6b570666986fd506b60ce6b8ea6f983070c36c5b28c4"; }
{ locale = "ar"; arch = "linux-i686"; sha512 = "fa7457cf48ca68f559b14b79acefe90f8d449e7dd7a32a97f728ef33b26e3f513064bf733eed77b12237902491852a66fce690b1cf1de049e2f09d27416d8786"; }
{ locale = "ar"; arch = "linux-x86_64"; sha512 = "6b2bc528ef7401a5ca6d6c5e68eaf68386a706925a3087ed16b4a2560a449ccba52c8dacae39d9a761323cc46f934ca2ea3c07bc5ef49df07eff9760a8a0ed15"; }
{ locale = "ast"; arch = "linux-i686"; sha512 = "2917644f88a775441634a8b2dc214e29a34eb0cc7ad88c423a5cc02f7603cf321392c7fc3c7ce97231835fd39d1d8e264d8a9fb084651ec722719d5110d83cbb"; }
{ locale = "ast"; arch = "linux-x86_64"; sha512 = "d047bc41a3ee0a444c8e4870a986c0068a67deff043bf96a9ae6338247461f2b51ecf02348c4a5b5e2ae4f68f7bd665c64582f0afc45bd480588cc82cdebc1e5"; }
{ locale = "be"; arch = "linux-i686"; sha512 = "830fce5b2361acef206876a43af60963ddd720ad4c49c30936b0231c94096c5f43fb9479679c0260846a28a315f359ee2cdcb66e1f2bce0d222f1495b1cf1f58"; }
{ locale = "be"; arch = "linux-x86_64"; sha512 = "8ec67cd108abb51b86fb8cc528a6bd43628847e47e2a7e5ffe3bc971b6c89aa0c7cbce2ce0738a7316a54c4ab376502187ddf5be9d74db31985187b7e6ae3038"; }
{ locale = "bg"; arch = "linux-i686"; sha512 = "d18965ad8f1456d688811e972b09e293cedaa98832b4d5898d62a80dc9cb4799d898a14ad968fc2f05c3e6dcf3fc480d21d1d8de63a4ea9c10b8081b28c321fa"; }
{ locale = "bg"; arch = "linux-x86_64"; sha512 = "a7dcbe29dc4b28b3273693bec60f9ed66d1eb81899a049f7181271e84763f13817f97e07a9696ce803d151b382f3339f3b0d2b1bdfc5bc687c3f6198627e2fd3"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha512 = "3919ffd44cb501f5c8d273651e3bef27203270ae269e8682f2c749a32eb6a622a8106179cb9a493f7e62f255da62381ab497e2a590f84bd207a1bbabc039827d"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "8e4d026bf30a0fc69eb2c7982b3866a4745f506f5365677540e050cba81a569df1b367c42b9bcaf58ae20243a82a9e7d006c476a83ecc29b4b77f042f8aad5d1"; }
{ locale = "br"; arch = "linux-i686"; sha512 = "cd00e42cce4a5efd18ba5b9a784dc93282c200a43796b826cc05eb4858d44775df827dafcda0c6468d17ea5f7f930590db1546b544fc19ad52d9d5e1cf7c522d"; }
{ locale = "br"; arch = "linux-x86_64"; sha512 = "be84c92859014a055606588fd7e9c8d8c13fed8ca253ccaed560a2b457305b487cb2664df8af7416220349a85a4db15f7420674ab46c1ba8f8cdec03f0002d83"; }
{ locale = "ca"; arch = "linux-i686"; sha512 = "2e678aec4efde29b659f1e4de071f7b5cf2fc56b28b362bfc7fc2a3ba8ceaaa53a3452cb9c2a565ea5bf83304be87fa18dd246d2207e5ba6f5ad16a0f008ffe7"; }
{ locale = "ca"; arch = "linux-x86_64"; sha512 = "7bebca69abdf5510793e376693d82e626fbce49d01fc66d28bc53ad51ab70fd9432266e2cc1b0d83359fb2bfdd075daa181c66618f6094996355f6cc0920b239"; }
{ locale = "cs"; arch = "linux-i686"; sha512 = "2f8d5faaa0952ad37e3777a2d15e2a1ac7aed1ed275faf909e479f56e4ee2e9f385aedf6b08cdb3abd9e0830949b6b6b1048e19ac489d0d0e881595b31816068"; }
{ locale = "cs"; arch = "linux-x86_64"; sha512 = "01e807c22d90e07503b92e3821ddf91b509763d9c7b2ebc5e21ec9788333086de25508979422446a2e0469be611f890db682757ddebf15e549bb8714f40877d4"; }
{ locale = "cy"; arch = "linux-i686"; sha512 = "e87718bbd286e1e2fcef8e114aa27b81a1917b37cba996c59ddc30d5300bf53a4e3662d3770f70362850d41e564887ba510f605412e57d8e6510f02e5a4d54d8"; }
{ locale = "cy"; arch = "linux-x86_64"; sha512 = "f3287f4cec54f6814a678dfd9875952d5109716cd15d097ad5589fb2bbf75aabf2496cff6d320929c825b1a1e61d50f060b9d9fd7f7011078620995570dbe88a"; }
{ locale = "da"; arch = "linux-i686"; sha512 = "6cc8e7c2c3aec96dc9639a8663915db2e86437b8b9a598570946b2dc63c9d261a257dcba3359762668683a67cf39d5448e0203eeeeb4da41f6d5df51c955da3d"; }
{ locale = "da"; arch = "linux-x86_64"; sha512 = "bcba101b8438ff5a61ecb76f1328174aaaf7dccf5031a836cfcd8e597db8d0b120623e15a8c8231373732b6796015ed9fe212797bf0f664055d3be3755bf38d5"; }
{ locale = "de"; arch = "linux-i686"; sha512 = "fffa1b9a61ef75ac077bf03f85abbb5a40131a9a35a49835ac40b424870b773a42f8fb534ba5757da7c0bf6781efe39dbe2942ddd436860efe5799170952dbed"; }
{ locale = "de"; arch = "linux-x86_64"; sha512 = "db88539be38c0a62d9c56b5295af2bb67d342996c85e788a17fe2a74e974a8d196765343ca005207b8b1ebb8f76421640dc7cdf36c51e23a4bc03edfbdbfe73c"; }
{ locale = "dsb"; arch = "linux-i686"; sha512 = "2191707e5c796eb5ef210798c3519004f5cfcc9be0f56a22c03eef52a34f04f011e556894dc932467c142c8ec876105cab628c947ded0e11d7a63733db83bdac"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha512 = "07a9bb323db8f626ff0614dd8cfbbb1f0c8d922aac4c7ce21770b79c40e79ca09c798903998d44c236cfaa76daaaa94814bff697d34aafa417533078405cef1f"; }
{ locale = "el"; arch = "linux-i686"; sha512 = "4325888c1b2585d7f2bf9c999407dba260783570816b0edfadd90bdebe6d6db637f9aa9589f2b5824ab6e833c4527fa760e177ed866ce302fce85d9b9daa2608"; }
{ locale = "el"; arch = "linux-x86_64"; sha512 = "bbb2971ba5c3ebda94312f740c54ef0b4b4b4f2311d4a017e272260945a9f063eb4d341857919da4107f2207f3265df9439aea78d636d9c357fd79a11239fd9e"; }
{ locale = "en-GB"; arch = "linux-i686"; sha512 = "507f8f79718698b9599d52e7b5a4a9157c05ae1642622eff1b3547861532ece9727b3d56f67a20ca38df0f32375beec65ec3c7b1ba929799ddc057b4b95d1b8d"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha512 = "bbaceccac3ad841259058c738ef2baef780e96177b3b6a635fbc8a18de53137ec6831729b9f98bcb6b4442fe58b5dd71f526a9f0f3b86231a41bb0a48ea4c930"; }
{ locale = "en-US"; arch = "linux-i686"; sha512 = "28b5d2699a65792457414d178bb3bc4d73abf911860ecbcf75bbcfae91b24a056fd67d6aa4d50e4b3003ef84c63750050e16e74c92b690fe9b24347de3ad54a7"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha512 = "08034ab8d833f7a2e63a7e40a56dfc78a2dd762e73d1a4b8fd0dd70ad23da5d525771846f47c8e7798517d1f85fef9bc2a8437af3d6ba71d7402a9f6a93d5679"; }
{ locale = "es-AR"; arch = "linux-i686"; sha512 = "3f08fc47b03cf095bcfc0af78064fd7179006a4b3240292fbd109b2a4c58c55719328eed631a67ca7a3f0f68ac8d2fcc577596bf532ad95442fba728270ef28a"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha512 = "cfe7e9f8dd67fb52462f840048115e54e5f789a34b63c5d7ec592ccc3a2b25220a66fb7499a50f32539d61205fc46199c0167ad5a75ea46123b96070329a236d"; }
{ locale = "es-ES"; arch = "linux-i686"; sha512 = "d2c4cc32d2ae7bfdde1870686675f644f4eb3f2bd0870fa72986f5cef2cc3c45b8070b6df3196e67275bc67c1ece63706f1fcae3b89d80fea8db5c34b9f4b638"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha512 = "6f4d295638ab8d16e1ec1db176d9a60946ee76cacb21c7e10018c2b908e5dad0527705d37b7050d11587244e922fa9e218482fcef40c3beab06c07db3dd8ccfb"; }
{ locale = "et"; arch = "linux-i686"; sha512 = "e352de0fb13570e5fd39bae39ea7dfab746529e8617beb8cca51c0a6183614722f62f93e91065c74fbe24e0cd91c03428d76c6e70369a60a64957ebebd1052d7"; }
{ locale = "et"; arch = "linux-x86_64"; sha512 = "583be1a8c7f1e2aac3242371ca8f34710510c6750b95f933e1574f9ba0e2a6ad733de4c9cc503909a063250d969aaaee6a53a69aae0c502274f5b0d43fc33b43"; }
{ locale = "eu"; arch = "linux-i686"; sha512 = "9de8f87c48c65535c7b073ad90d9c1ad3b7f4932124529ffc1ece36175e5a139d4660efc4a850bd0034d885afc7d7889f137b10fb5972377a4ec97d6858c932f"; }
{ locale = "eu"; arch = "linux-x86_64"; sha512 = "101beb0a0dc8f33a78583f9b15036815b030429d471ba0c8852dde7a2e2c91bb6436c8dd36f39e4eab1ecdb38cec08c7ab88f4649b5d25a246657d358984f7c2"; }
{ locale = "fi"; arch = "linux-i686"; sha512 = "9670d209fabc23fed2dadb873335e3964b7107b67fbfda39e53fa28ff1d91fd617f73d041cd9d4d0b9dfbdc9e619f69ce05199f7afd383a4fd6717b9f912dee9"; }
{ locale = "fi"; arch = "linux-x86_64"; sha512 = "3c2b135437a80047ec04e9995d119b32e948d105677bde0efe505272a0768d860e8b68dbe487bb81c38f9eee94a7bcc23c976a3dd614300056ec578bb5dbe7a1"; }
{ locale = "fr"; arch = "linux-i686"; sha512 = "d14822f3ef67082a77488ee3f7b6e3294a01f12e48cf037fb2b41ab9c5e4af01f1b0a76b29673c9196f2caa16dade84183d69a6bbf1dd618e7742f9e1d903477"; }
{ locale = "fr"; arch = "linux-x86_64"; sha512 = "e1fdb863309bcdf382c3533b15ff1c3e4e9ee6f4c0ea097790c432d302b4a0712d00b1f0851dbc4c4e9c3758f941eddffd82dd1d3912dc76afc20e05083b82ad"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha512 = "3881348184cdbac93b452e9f5c9ebbf14c542dff68cb500c82204dec42c3433e3b356f2d332c1fb5a4f6649e8bd5b03564bbd1f75bb25c2d946c72ba955c4b63"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "3182f39c26085bc882cb1a391c63f2ce58a8ffcffce4ae1ca9293a08e572d888691cb2968d93caee77576bc7568a0ad67f0ccb6815dfffadc9f8f798343c92b2"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha512 = "a653b578be20b8127de26e7c8ac90adc04024cd108e078b5a5e2e7634d834d76f9227341e52ab8b72fdc5f8c11787405eabc19403922c854f0d0fc7e9fcb0774"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "28dcbcefd11807482becc961244f58520498e0f9540f28c1e74d18f499cf5a209d51599783b8551ee937f228b406bd0605adef4146e29dccd8ccf2e5ef155a2c"; }
{ locale = "gd"; arch = "linux-i686"; sha512 = "2b39ed0b1533cce97f4c4e5663ffef0fc88611334cceeaee0687ccc87e8c4b0f58afd9d826e7e9b66634b51249b776820cf03fc841e739ff3504eadc02597dd5"; }
{ locale = "gd"; arch = "linux-x86_64"; sha512 = "525f632482577a3dcc2668495ad8c127bb8bc06412ef01ccf0188c1dbf735e73460cbabac439fc3dd80cf70519c45a439897ef91a1b32208d527e0b6487044f2"; }
{ locale = "gl"; arch = "linux-i686"; sha512 = "232bbd56d92ce7648ba57a061d8154b38bc6068dbde32b9ef17199d3a8bb28e1b0b384859d99c526fa96fbb35405520675ab3b45adc90caf125ac813bc77b5bd"; }
{ locale = "gl"; arch = "linux-x86_64"; sha512 = "5758ab0d5a6733395ba62601735193073fcee47ba7c3ab24d7031ce87447fb9018264bf3df1ab715ea786beb63a9d479e57217d56477d987021aa482c7b116a5"; }
{ locale = "he"; arch = "linux-i686"; sha512 = "dc7cd600a93276995634303cff80d77724b56f0b7ff2fdfe8fe7da23d57d5f4f3d0e0169508c02c9ac57092da58d9ac9e3646f951ca4cb1fd398c70196fc6405"; }
{ locale = "he"; arch = "linux-x86_64"; sha512 = "bdb385f4df861b1109169e1819860d46e8edf4d58588d4cdce609387117adeafe35e8bb17a0a2e43bcf12b1bb2244f089f3a1669cd69bb507434da202a1c7e15"; }
{ locale = "hr"; arch = "linux-i686"; sha512 = "e7dc17107f762128bac6f0e173ceaec6a9e910dc84d486a0c9447365f1df07fcc1379dd2f05416aa904637836deac5a924f704396ab2af149676a6b1d075c52f"; }
{ locale = "hr"; arch = "linux-x86_64"; sha512 = "74600954b56b03d4f2bcc71b32f6c8a19be483af16a7cd2b841fabea6eb042ded21afb1c196aa9bea97c81aae1732d7153e8419f97f439b44570ae53e53f88ea"; }
{ locale = "hsb"; arch = "linux-i686"; sha512 = "d42d5b10480100a38d2fe275be060423593f54f9aa6cda13fdac96fca9a36590dd9bb8d1638cca935faedbd09bf2435c0a2858ae9c2ce653af7b2dd183f46f29"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha512 = "c41c5b57d7c170c54cd0817dbe21be8ba9e94b99fe28d7478ceb6545c6bf64a215d9ed6c66f99f116f43bb7b442ba6765613c15d14648ff64be3c0c5d7a6c763"; }
{ locale = "hu"; arch = "linux-i686"; sha512 = "d2ee002d390bf44ecdadba86ece0d77bdb4ea96a69a79dac4064a4c3f3244c9aeed95df4a1101535fb02225e0305e1d7e97389d4419574ad98d9484237aaff84"; }
{ locale = "hu"; arch = "linux-x86_64"; sha512 = "aca465875d8f3cb5815dd2de0546b7a822b55090c78f049d6d3a885f29c90fcbc437f0b7184e8249bb9c8dcc1ca4f146f1cf0067a751590df2d8c5fe4aeeea5d"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha512 = "567cba4a91dcc944e1922a429c8b328fc3b2843105056cef938a97c2ba73806f0fee2471b6fe6898856230c54ae0cb6110ebb249eaf9363a0beb35ed2aa0daba"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "34bf0a6638822fd1ea6c1a51e01d0d2f370202c61bb5a728abbeb2c1335c9130f3a4fbb7c26f9cb8025849aefde09eaf58567c7aedfd7d854d7313baeb8fd698"; }
{ locale = "id"; arch = "linux-i686"; sha512 = "9dd1e0ba44787921fe8fce39f430575334e61948cbbd2e31923c67779c795dc0fc64cc0e46d62e3fa749a3d6cac12c3cb54c3f9e62e02930c1f4fd9a17fa50b2"; }
{ locale = "id"; arch = "linux-x86_64"; sha512 = "78385b8276c5a9449d34a0233b40280437dacfc04a9d5d8291ae8603ee5b89337c5b53d4da80f41ca8c7153719654d6506027179c4a79575fd555d9dc8740d4f"; }
{ locale = "is"; arch = "linux-i686"; sha512 = "02bc577e3d696735a280079fef84361d556a04c5d3f11f5af93f9ec5220ed729f237eb67120739192dfeedcb4570480bc40da9c413ca2b7f9023a5742cbb2e4a"; }
{ locale = "is"; arch = "linux-x86_64"; sha512 = "5de6270e4dd79f402163fdd724fa0987563c1f474c54b555e84ebd94cdb865bd890de21e3dc44ace9dc2bcc70fb182b78752840b6860a6f0494fbfadf4f705c6"; }
{ locale = "it"; arch = "linux-i686"; sha512 = "d81131a4322b0a069f3f914d394f8400b0d532aad4f1a0316288ed00df184798c5c61484cbb50a134e7b681a2f150bd04416147734f0d73731811349e537a2d3"; }
{ locale = "it"; arch = "linux-x86_64"; sha512 = "7c9ce8e652dc994ee1155e4d1d3375ad093d8f684c422157a5c450edc3701151a1ca8036dda5f79781860ea1e138960266a7df77c16770418f4cb8327e2a2767"; }
{ locale = "ja"; arch = "linux-i686"; sha512 = "6b96e8bba64fb004021838e41a36f13469eb48cb03659bceb12b897dd09fdc44f32d279e71e97b146a77fc0433cd85eb38449bf666355692a25f39eddc2775b8"; }
{ locale = "ja"; arch = "linux-x86_64"; sha512 = "90c7f76fecc1c9eafbbd7f2f935a006266372d4192c2382c447b52a7993b650b6bb769d1f2f067540f038588b862a82ab4f1dc3b8a7c2a484fedaee55c82889e"; }
{ locale = "ko"; arch = "linux-i686"; sha512 = "c2e509fd91664c9ae9d12ad4eebbc875b96c3b7124b88373fbbfb8ef3ec45b3525e8e9c6a295680c583b55564ee26855f2d607a661bfce9d9f57acdc4b90a3cb"; }
{ locale = "ko"; arch = "linux-x86_64"; sha512 = "b5fb1e955dde624bdf52a58d5ffadf99cc7fb0a0e757d236c553675aca14fbc942d420a63c91f64e584486fda3e0ecc39c62dbba6b3a62910d01447d7cafd4fc"; }
{ locale = "lt"; arch = "linux-i686"; sha512 = "a24deedd6a2ed118cbdb9fc66c17aeb5756d8bf3586a096164c0c1841e1bd7a4b6179cacff3f058bbc9bef40186acf3833a5b2e75aeca8ee525302953fd7ea58"; }
{ locale = "lt"; arch = "linux-x86_64"; sha512 = "f4e0a5ec95a30f04a8ee84dd1f4f8bf7427255d382c0fc6a35f63a935edf54380dcd73bca5329ea01147e89c4d3faf30582412618e93a543643ee5922e9044b9"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha512 = "c10d7ce6f66d716c550f27ba793cd6239d98ef7fb1dc75605288f426bb2fb65357af95134c4c2241f0438ac90995f666a488a3a61e7696318180496bc29cc94f"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "a722d43addca22cfc791da37de60d5ab96e18d66fbb0d8b4b3de9f08202b01bec8c5b8300404df19689d154249d80b0f84a6e09335f607c74a7ee65f64daecee"; }
{ locale = "nl"; arch = "linux-i686"; sha512 = "030da83ad81fcb1ce7188d8957fc0ea216372aa4e1fd6fd7d173ef5e329d95d8cd61d1ec9db3e28887d2f949056172644b0590e05815478abb42427d0ad5c06b"; }
{ locale = "nl"; arch = "linux-x86_64"; sha512 = "6ea70e3fedc1cf1ea6f75ce9be7c8a7a6245e167f65baaabcdfd3194e70ca5474766e9ccd0d8180270b84c78697793a9af5b82a8f7a773c46b1af0a025382a99"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha512 = "354bb0c0447c8e7a54e8e8218f659f4810a6e2848f85c482cf289fe77518fce9c33bd817019bf089f254f71b141d65061c2a690190000c968badd939feaacec0"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "fa2484614a067461d8cc3c1fab8675f65b17fc6419c0fe1a8f15e98e8ffffea7297391ec8ec50ec8d2fe1cac4b348afe0b82f2db55584c46cbe2d62daf3a8e4b"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha512 = "045fa66125cc3c4fc4650bf4e5ea12aae1b26f2cc4191d6b464f41e5305f015611463b311f3bb55264d07b48edbbff606cb58f73d91b22b3bfaaf5de0b830121"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "696dad47dde2f2494f0410fb698b52ca87112e2c29310aea585b703f4633e404f533d37e6bbe09939aa6f575f426d0a4f2605ca5b95fccafc033569bfe258872"; }
{ locale = "pl"; arch = "linux-i686"; sha512 = "1848c4c819fa0aebeeec75ac43f3bcf3fa332ba08b79c8296a17aadc7d0434d2b634280541c8d71a68390e3a892a88dd49a0ab4b25c3a2b4b5e7321132801ee9"; }
{ locale = "pl"; arch = "linux-x86_64"; sha512 = "e9e0b937a165fd90e0639a01001c9b4ada645c9a1201b64ae6cbc1bbf885b5d0b89e195ca5732aaae66360dfc4f188ac8f1643bf12bdbfa029a348aa29a0f79a"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha512 = "4a69c26598d48d25d048288b6d1785dc8e4d89078eca3d300497a93d44639a8eaca0c32c1988abd831d33e0c32788e8ca6d07fdec9cd4ba7f451a23afbddc525"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "72d387d49ae5f4dd6406f63fd5c0003f99865079c9d63d7d3deaf15268437dba592642ee8bc759df85fb679da094078c1bdf9808de05bf5e35ac870a62b960e2"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha512 = "b3ff7eecd345f789bc4798e94402fe7cf7a0cbf27b03f3d8f92274f39764cfd38bd1e4ad5745f3d177645f2c5bea6cb4aa2f1110c90d524bc6b89916c00b2eb2"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "684849e41f77410c290688582488243fed9594c02ebdd85812a2c63e0cc410b470c14533d09184a83df43555b9ff1d775ed0f1ddbe24bb6890848ccce4e041f6"; }
{ locale = "rm"; arch = "linux-i686"; sha512 = "02c4171d05c1f070cde474ad60edd7aded613ec1fd7bf51391fe4718554eed435282c44bf891703c356f5bfc0dd08093ef5bc7c979174d5b7fdab1529dde9dbe"; }
{ locale = "rm"; arch = "linux-x86_64"; sha512 = "9ea31a30e8b5624c03c1627a6e2e1895a3ede5d35e1b9da0b16d6571c13af0e34cfcbe17f396638c8946b1f96037e9c833b3ed58ad46a9e0bf38ffc0e1dc8bba"; }
{ locale = "ro"; arch = "linux-i686"; sha512 = "dc5b581971333067b25317b702a2e9f58484ae66f640ecda0f9d7c8323fbf8c9fb6ca47fb59c94494e641787f7e9b95c6a4cf3037bf2fc974cc394160359910e"; }
{ locale = "ro"; arch = "linux-x86_64"; sha512 = "92ef0d86e46d8c80685e9bcd16331447e310147b87cdb45bf80ab2992b4ea11626cf5fbf860ee807d2d8d4e6c7c4fdd352de4c498a57c6951f66ebf72bd60aeb"; }
{ locale = "ru"; arch = "linux-i686"; sha512 = "511f96bd7713ea798904216d466f362115922c1566d7214115df7665d9e152b9866bb66608f5426080251f55391ac92eb8ec8a0e76d9471563a0bd84fc8c4431"; }
{ locale = "ru"; arch = "linux-x86_64"; sha512 = "57f6669ae5706a4673bb15b1eb06d89807a9a1a0fb59493b2380778efd8dd3f014d1e0a354c16e71207bf0121a561720caa1a71a846237044889916374b6a5d6"; }
{ locale = "si"; arch = "linux-i686"; sha512 = "9eb41ae08570098f2cd9d099cec9d2a21490f5bbd7a5a9a422ae9c83b72fb50af2768ed7c33d0d174c3bd09b365107b1e726a57db8fd6bcf52dcc7430f8d22fe"; }
{ locale = "si"; arch = "linux-x86_64"; sha512 = "03291a8e69b3b6ebb69e25627ed77fed3e7a008ae77f869b262983fb9334e61748a1028f6dd4e1aabf513b7f6cbaefef83c237107d88c1b177c31f34fff54e3f"; }
{ locale = "sk"; arch = "linux-i686"; sha512 = "0152a947109f5257ec17889453cf650d1dcdd40825208053e65b70e8281579fce307d1f38e6d682d7a8d2f3da377c91ca1e249bc1d507c768d2f08292e5e6b90"; }
{ locale = "sk"; arch = "linux-x86_64"; sha512 = "d2fdb7585af8a1507362b44b9383acc611668cc4aeb912d98424a49543cefb9a58f95aaa77c1b36a1082fd1334f60df939900e1673e32d3af764ca5ce746d144"; }
{ locale = "sl"; arch = "linux-i686"; sha512 = "c2cedc7a07a27f439e5833ca9a1214d0e75b2154ff879fa39b06ab6baa05d13feac227b51d1126d70ef907942db1dcaf1e7c987128f752d0dc1d147266cf520f"; }
{ locale = "sl"; arch = "linux-x86_64"; sha512 = "07aa88c7d281e247e9c30f9ae3b8329132d4a145e8a8b0f88b544995d39f58d196fb6ce6a5604954129222a848ce49aa07a0bf6f1ab3a4b1fd29e61f51c7664f"; }
{ locale = "sq"; arch = "linux-i686"; sha512 = "e2afd03139f475ae68206cc1f35780261abd7646babd7f05c255acbcdbb712f11ea0b7b68887d0fc05e8bcded3a166cea490c86b2936be7d400c919efbb221cd"; }
{ locale = "sq"; arch = "linux-x86_64"; sha512 = "7b91f7c6cdeda2735dbe7befcdec777a6d22c1aa278d4a1caa8cb15441841b4edb7599e8d4d4fbc1d198cc6178625ad4a29455e7195ab563e9bd3ac4faa1104c"; }
{ locale = "sr"; arch = "linux-i686"; sha512 = "6b92ea68fde0ede23bdd7998a81d9924e35b8cb77cc396636fb91495cafe039c32efa272f8c3693fa4ec582eb04bc0db6d22991e3056d22188e0eb8c64bf352b"; }
{ locale = "sr"; arch = "linux-x86_64"; sha512 = "3ca3f049f677f9283d9af660d2989f5c05ed418bb904e7695e456f73d9615da106e0f0db2c3a371109c77fd7348eef5a94d8061b3a0ad508d193e1234839f954"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha512 = "95bbcfaade0c12d87c8b591e3d9d6205e1056741e9eb526cc505687e2ee43fbdb96ff0b411c63b58c6fdd57260180a94d343155163518843a843f5f3b086b25b"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "15d0bfb22e6f0d3425737dd05dedc5af7e1f98744fb0d943cd88ad6125083bc86bbfb700d71839a090f9b54642cc1b0ebb8fbd205d46316f83cab75bd5442ec9"; }
{ locale = "ta-LK"; arch = "linux-i686"; sha512 = "89b3a7997d3cc3a8372ee49df3dee21e535403d08a2aa742a1416c1e7c41c63fa56fe50fe133f588f3a34db180c4505f05034e99e078c0b19e1eef6f48e3d7fb"; }
{ locale = "ta-LK"; arch = "linux-x86_64"; sha512 = "00c20fc4c27005e13cda53c5332bf874267e4bda6894480e599557e5e90a334b648a47ce28fff6353060d9a6fb4e547e632e2deb1513175023c1bf6d453a9583"; }
{ locale = "tr"; arch = "linux-i686"; sha512 = "1b791b57b9d8c3da228293c83fa02fc1a24a0b6b8a6efaecbfef42962f2390fb448d2fb08e5a812df8efcf135f9cecb98cba3b2b174e59b43575236ba5fb2f76"; }
{ locale = "tr"; arch = "linux-x86_64"; sha512 = "7040da3720ce3b0dad6e2863b48e025c32206c8a0d6cdae4e4fb13b7b6754796e9e1b83a09280303a83c97ddaf391c10a56aa8edfe1e7eca60534a6e1d4006d3"; }
{ locale = "uk"; arch = "linux-i686"; sha512 = "54412cf33dab4be4553d267cad386d47ca38726e8643de10b8509828ba6c25f2c35e151165d3d999c22724ba57028b740f9b5e5f9a05aa773779759ffe6ced78"; }
{ locale = "uk"; arch = "linux-x86_64"; sha512 = "3725c3c9c7ee8140b2c9ae3ad928e933afbfaab60ec27b8f1a8c56a87553c0123031d50d27c794407b6971b347b8f379c1c92ddff00db960bb635fb0cd945ebf"; }
{ locale = "vi"; arch = "linux-i686"; sha512 = "92edb5e4789d1e1a63d5f69f99a06ae474d85949771c07ef572ce5ae66a125d5c04ea207b51fcb4ee2d1f00052f53ee8415d109cb06e53c55e9436f37e375d3f"; }
{ locale = "vi"; arch = "linux-x86_64"; sha512 = "e786670f4033857873e5238118b23a86638b190db51d70ac55662718126621580bffd705803638bf71556caa397f3420efaa08e83e06abb4c2e2dbdd22f111af"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha512 = "9af79559703b8734df11c2773ccd7f77a88d9dc5ebf2df1bac14fdef4ad0f45c840102e5bb86f6172ad6e7d225af8a1723d4de84b877fb2574fd1a729213ea08"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "4d63dc15450d9297d4f161c72eded27d6176bc755f657012821cd9d9e989597c296f985e12af39d7a1b37dd5cf442fdbf9d2e1f7e6f11ba841ed87ea279d813b"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha512 = "7bca2ef8b1e597346c0450870fcd0058fac18b3f3607c6280774db97d594e98928bf291ee22146d70f2de40437e38088b9a8af71b0b076b9bbf2049067bfc448"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "64ee5cf56a48159c1a2aee2c8dc9118ce9187c5c68a9a1393e2c28a35786fd42042b13d48d30ececf1893973ccab92c0a8b23cbaec340a5150cc1a994236c6cc"; }
];
}

View File

@@ -13,7 +13,7 @@
enableOfficialBranding ? false
}:
let version = "45.3.0"; in
let version = "45.2.0"; in
let verName = "${version}"; in
stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${verName}/source/thunderbird-${verName}.source.tar.xz";
sha512 = "1226b35535d68b9c088ab8692f61120c99951e1ecbae4739ced711665a3237d248202831831f00536c724e2f6359db4601fa5c90f2793433eab4bd9dab0c1165";
sha256 = "1h1p14zswrg71qvzshwvw03mhicwwkfg29hvnj56cf41nb5qj8xx";
};
buildInputs = # from firefox30Pkgs.xulrunner, without gstreamer and libvpx

View File

@@ -1,15 +1,14 @@
{ stdenv, fetchurl, openssl, libsamplerate, alsaLib }:
{stdenv, fetchurl, openssl, libsamplerate}:
stdenv.mkDerivation rec {
name = "pjsip-${version}";
version = "2.5.5";
name = "pjsip-2.1";
src = fetchurl {
url = "http://www.pjsip.org/release/${version}/pjproject-${version}.tar.bz2";
sha256 = "ab39207b761d3485199cd881410afeb2d171dff7c2bf75e8caae91c6dca508f3";
url = http://www.pjsip.org/release/2.1/pjproject-2.1.tar.bz2;
md5 = "310eb63638dac93095f6a1fc8ee1f578";
};
buildInputs = [ openssl libsamplerate alsaLib ];
buildInputs = [ openssl libsamplerate ];
postInstall = ''
mkdir -p $out/bin
@@ -22,7 +21,7 @@ stdenv.mkDerivation rec {
dontPatchELF = true;
meta = {
description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE";
description = "SIP stack and media stack for presence, im, and multimedia communication";
homepage = http://pjsip.org/;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [viric];

View File

@@ -1,65 +1,33 @@
{ stdenv
, fetchurl
, pkgconfig
, automake
, autoconf
, libtool
, ncurses
, readline
, which
, python ? null
, pkgconfig
, ncurses
, mpi ? null
}:
stdenv.mkDerivation rec {
name = "neuron-${version}";
version = "7.4";
nativeBuildInputs = [ which pkgconfig automake autoconf libtool ];
buildInputs = [ ncurses readline python mpi ];
name = "neuron-7.4";
buildInputs = [ stdenv pkgconfig ncurses mpi ];
src = fetchurl {
url = "http://www.neuron.yale.edu/ftp/neuron/versions/v${version}/nrn-${version}.tar.gz";
url = "http://www.neuron.yale.edu/ftp/neuron/versions/v7.4/nrn-7.4.tar.gz";
sha256 = "1rid8cmv5mca0vqkgwahm0prkwkbdvchgw2bdwvx4adkn8bbl0ql";
};
patches = (stdenv.lib.optional (stdenv.isDarwin) [ ./neuron-carbon-disable.patch ]);
enableParallelBuilding = true;
## neuron install by default everything under prefix/${host_arch}/*
## override this to support nix standard file hierarchy
## without issues: install everything under prefix/
preConfigure = ''
./build.sh
export prefix="''${prefix} --exec-prefix=''${out}"
'';
configureFlags = with stdenv.lib;
[ "--without-x" "--with-readline=${readline}" ]
++ optionals (python != null) [ "--with-nrnpython=${python.interpreter}" ]
++ (if mpi != null then ["--with-mpi" "--with-paranrn"]
else ["--without-mpi"]);
postInstall = stdenv.lib.optionals (python != null) [ ''
## standardise python neuron install dir if any
if [[ -d $out/lib/python ]]; then
mkdir -p ''${out}/${python.sitePackages}
mv ''${out}/lib/python/* ''${out}/${python.sitePackages}/
fi
''];
propagatedBuildInputs = [ readline ncurses which libtool ];
configureFlags = [ "--without-x"
"${if mpi != null then "--with-mpi" else "--without-mpi"}" ];
meta = with stdenv.lib; {
description = "Simulation environment for empirically-based simulations of neurons and networks of neurons";
longDescription = "NEURON is a simulation environment for developing and exercising models of
neurons and networks of neurons. It is particularly well-suited to problems where
cable properties of cells play an important role, possibly including extracellular
potential close to the membrane), and where cell membrane properties are complex,
involving many ion-specific channels, ion accumulation, and second messengers";
neurons and networks of neurons. It is particularly well-suited to problems where
cable properties of cells play an important role, possibly including extracellular
potential close to the membrane), and where cell membrane properties are complex,
involving many ion-specific channels, ion accumulation, and second messengers";
license = licenses.bsd3;
homepage = http://www.neuron.yale.edu/neuron;

View File

@@ -1,21 +0,0 @@
--- nrn-7.4/src/mac/Makefile.am 2015-11-12 21:42:45.000000000 +0100
+++ nrn-7.4.new/src/mac/Makefile.am 2016-08-24 17:43:39.000000000 +0200
@@ -15,18 +15,8 @@
host_cpu = @host_cpu@
if MAC_DARWIN
-carbon = @enable_carbon@
bin_SCRIPTS = $(launch_scripts)
install: install-am
-if UniversalMacBinary
- $(CC) -arch ppc -o aoutppc -Dcpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon
- $(CC) -arch i386 -o aouti386 -Dcpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon
- lipo aouti386 aoutppc -create -output a.out
-else
- gcc -g -arch i386 -Dncpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon
-
-endif
- carbon=$(carbon) sh $(srcdir)/launch_inst.sh "$(host_cpu)" "$(DESTDIR)$(prefix)" "$(srcdir)"
for i in $(S) ; do \
sed "s/^CPU.*/CPU=\"$(host_cpu)\"/" < $(DESTDIR)$(bindir)/$$i > temp; \
mv temp $(DESTDIR)$(bindir)/$$i; \

View File

@@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
patchPhase = ''
sed -i config.h \
-e 's|.*#define.*TKGATE_TCLTK_VERSIONS.*|#define TKGATE_TCLTK_VERSIONS "${tcl.release}"|' \
-e 's|.*#define.*TKGATE_INCDIRS.*|#define TKGATE_INCDIRS "${tcl}/include ${tk}/include ${libiconvInc} ${libX11.dev}/include"|' \
-e 's|.*#define.*TKGATE_LIBDIRS.*|#define TKGATE_LIBDIRS "${tcl}/lib ${tk}/lib ${libiconvLib} ${libX11.out}/lib"|' \
-e 's|.*#define.*TKGATE_INCDIRS.*|#define TKGATE_INCDIRS "${tcl}/include ${tk}/include ${libiconvInc} ${libX11}/include"|' \
-e 's|.*#define.*TKGATE_LIBDIRS.*|#define TKGATE_LIBDIRS "${tcl}/lib ${tk}/lib ${libiconvLib} ${libX11}/lib"|' \
\
-e '20 i #define TCL_LIBRARY "${tcl}/lib"' \
-e '20 i #define TK_LIBRARY "${tk}/lib/${tk.libPrefix}"' \

View File

@@ -39,7 +39,7 @@ stdenv.mkDerivation {
for first-order and equational logic. Prover9 is a successor of
the Otter Prover. This is the LADR command-line version.
'';
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
maintainers = [];
};
}

View File

@@ -3,7 +3,7 @@
with stdenv.lib;
let
makeFlags = ''
INCDIR=${glibc.dev}/include \
INCDIR=${glibc}/include \
BINDIR=$out/bin LIBDIR=$out/lib CALC_INCDIR=$out/include/calc CALC_SHAREDIR=$out/share/calc MANDIR=$out/share/man/man1 \
USE_READLINE=-DUSE_READLINE READLINE_LIB=-lreadline READLINE_EXTRAS='-lhistory -lncurses' \
TERMCONTROL=-DUSE_TERMIOS \

View File

@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
homepage = http://yacas.sourceforge.net/;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
platforms = with stdenv.lib.platforms; all;
};
}

View File

@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
]
++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.lib.getDev stdenv.cc.libc}/include";
++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include";
enableParallelBuilding = true;

View File

@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ eelco ];
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -48,7 +48,7 @@ in stdenv.mkDerivation rec {
mkdir -p vendor/cache
${stdenv.lib.concatStrings (map (gem: "ln -s ${gem} vendor/cache/${gem.name};") gemspec)}
bundle config build.nokogiri --use-system-libraries --with-iconv-dir="${libiconv}" --with-xslt-dir="${libxslt.dev}" --with-xml2-dir="${libxml2.dev}"
bundle config build.nokogiri --use-system-libraries --with-iconv-dir="${libiconv}" --with-xslt-dir="${libxslt.dev}" --with-xml2-dir="${libxml2}"
bundle install --verbose --local --deployment

View File

@@ -27,7 +27,7 @@ let
};
# Can't do separate $lib and $bin, as libs reference bins
outputs = [ "out" "dev" "man" ];
outputs = [ "dev" "out" "man" ];
buildInputs = [ zlib apr aprutil sqlite ]
++ stdenv.lib.optional httpSupport serf

View File

@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.lgpl21;
maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -10,13 +10,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "mkvtoolnix-${version}";
version = "9.4.0";
version = "9.3.1";
src = fetchFromGitHub {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
sha256 = "0bmr0cnxp56flak6fjcn0ld5238h3ngrvy09yqp4790g8xwif35v";
sha256 = "1vipznja07nr7gmzdbv93dv2ggmw4x1bh6xxnn13k3fk6ysqh163";
};
nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ];

View File

@@ -1,6 +1,6 @@
{ stdenv, fetchurl, fetchpatch, python, zlib, pkgconfig, glib
, ncurses, perl, pixman, vde2, alsaLib, texinfo, libuuid, flex
, bison, lzo, snappy, libaio, gnutls, nettle
{ stdenv, fetchurl, python, zlib, pkgconfig, glib, ncurses, perl, pixman
, vde2, alsaLib, texinfo, libuuid, flex, bison, lzo, snappy
, libaio, gnutls, nettle
, makeWrapper
, attr, libcap, libcap_ng
, CoreServices, Cocoa, rez, setfile
@@ -15,7 +15,7 @@
with stdenv.lib;
let
version = "2.6.1";
version = "2.6.0";
audio = optionalString (hasSuffix "linux" stdenv.system) "alsa,"
+ optionalString pulseSupport "pa,"
+ optionalString sdlSupport "sdl,";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
sha256 = "1l88iqk0swqccrnjwczgl9arqsvy77bis862zxajy7z3dqdzshj9";
sha256 = "1v1lhhd6m59hqgmiz100g779rjq70pik5v4b3g936ci73djlmb69";
};
buildInputs =
@@ -45,24 +45,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches = [
./no-etc-install.patch
(fetchpatch {
url = "http://git.qemu.org/?p=qemu.git;a=patch;h=fff39a7ad09da07ef490de05c92c91f22f8002f2";
name = "9pfs-forbid-illegal-path-names.patch";
sha256 = "081j85p6m7s1cfh3aq1i2av2fsiarlri9gs939s0wvc6pdyb4b70";
})
(fetchpatch {
url = "http://git.qemu.org/?p=qemu.git;a=patch;h=805b5d98c649d26fc44d2d7755a97f18e62b438a";
name = "9pfs-forbid-.-and-..-in-file-names.patch";
sha256 = "0km6knll492dx745gx37bi6dhmz08cmjiyf479ajkykp0aljii24";
})
(fetchpatch {
url = "http://git.qemu.org/?p=qemu.git;a=patch;h=56f101ecce0eafd09e2daf1c4eeb1377d6959261";
name = "9pfs-directory-traversal-CVE-2016-7116.patch";
sha256 = "06pr070qj19w5mjxr36bcqxmgpiczncigqsbwfc8ncjhm1h7dmry";
})
];
patches = [ ./no-etc-install.patch ];
configureFlags =
[ "--smbd=smbd" # use `smbd' from $PATH

View File

@@ -1,6 +1,5 @@
{ stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
, libXrandr
, which, alsaLib, curl, libvpx, gawk, nettools, dbus
, xorriso, makeself, perl, pkgconfig, nukeReferences
, javaBindings ? false, jdk ? null
@@ -8,7 +7,6 @@
, enableExtensionPack ? false, requireFile ? null, patchelf ? null, fakeroot ? null
, pulseSupport ? false, libpulseaudio ? null
, enableHardening ? false
, headless ? false
}:
with stdenv.lib;
@@ -69,14 +67,12 @@ in stdenv.mkDerivation {
};
buildInputs =
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor libIDL
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL
libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
pkgconfig which libXmu nukeReferences ]
++ optional javaBindings jdk
++ optional pythonBindings python
++ optional pulseSupport libpulseaudio
++ optionals (headless) [ libXrandr libpng ]
++ optionals (!headless) [ qt4 SDL ];
++ optional pulseSupport libpulseaudio;
hardeningDisable = [ "fortify" "pic" "stackprotector" ];
@@ -112,7 +108,7 @@ in stdenv.mkDerivation {
# first line: ugly hack, and it isn't yet clear why it's a problem
configurePhase = ''
NIX_CFLAGS_COMPILE=$(echo "$NIX_CFLAGS_COMPILE" | sed 's,\-isystem ${lib.getDev stdenv.cc.libc}/include,,g')
NIX_CFLAGS_COMPILE=$(echo "$NIX_CFLAGS_COMPILE" | sed 's,\-isystem ${stdenv.cc.libc}/include,,g')
cat >> LocalConfig.kmk <<LOCAL_CONFIG
VBOX_WITH_TESTCASES :=
@@ -133,9 +129,7 @@ in stdenv.mkDerivation {
''}
LOCAL_CONFIG
./configure \
${optionalString headless "--build-headless"} \
${optionalString (!headless) "--with-qt4-dir=${qt4}"} \
./configure --with-qt4-dir=${qt4} \
${optionalString (!javaBindings) "--disable-java"} \
${optionalString (!pythonBindings) "--disable-python"} \
${optionalString (!pulseSupport) "--disable-pulse"} \
@@ -186,18 +180,16 @@ in stdenv.mkDerivation {
EXTHELPER
''}
${optionalString (!headless) ''
# Create and fix desktop item
mkdir -p $out/share/applications
sed -i -e "s|Icon=VBox|Icon=$libexec/VBox.png|" $libexec/virtualbox.desktop
ln -sfv $libexec/virtualbox.desktop $out/share/applications
# Icons
mkdir -p $out/share/icons/hicolor
for size in `ls -1 $libexec/icons`; do
mkdir -p $out/share/icons/hicolor/$size/apps
ln -s $libexec/icons/$size/*.png $out/share/icons/hicolor/$size/apps
done
''}
# Create and fix desktop item
mkdir -p $out/share/applications
sed -i -e "s|Icon=VBox|Icon=$libexec/VBox.png|" $libexec/virtualbox.desktop
ln -sfv $libexec/virtualbox.desktop $out/share/applications
# Icons
mkdir -p $out/share/icons/hicolor
for size in `ls -1 $libexec/icons`; do
mkdir -p $out/share/icons/hicolor/$size/apps
ln -s $libexec/icons/$size/*.png $out/share/icons/hicolor/$size/apps
done
# Get rid of a reference to linux.dev.
nuke-refs $out/lib/modules/*/misc/*.ko

View File

@@ -0,0 +1,607 @@
args @ {stringsWithDeps, lib, stdenv, writeScript, fetchurl, fetchmtn, fetchgit, ...}: with args; with stringsWithDeps; with lib;
let inherit (builtins) head tail trace; in
(rec
{
inherit writeScript;
src = attrByPath ["src"] "" args;
addSbinPath = attrByPath ["addSbinPath"] false args;
forceShare = if args ? forceShare then args.forceShare else ["man" "doc" "info"];
forceCopy = ["COPYING" "LICENSE" "DISTRIBUTION" "LEGAL"
"README" "AUTHORS" "ChangeLog" "CHANGES" "LICENCE" "COPYRIGHT"] ++
(optional (attrByPath ["forceCopyDoc"] true args) "doc");
hasSuffixHack = a: b: hasSuffix (a+(substring 0 0 b)) ((substring 0 0 a)+b);
archiveType = s:
(if hasSuffixHack ".tar" s then "tar"
else if (hasSuffixHack ".tar.gz" s) || (hasSuffixHack ".tgz" s) then "tgz"
else if (hasSuffixHack ".tar.bz2" s) || (hasSuffixHack ".tbz2" s) ||
(hasSuffixHack ".tbz" s) then "tbz2"
else if hasSuffixHack ".tar.Z" s then "tZ"
else if hasSuffixHack ".tar.lzma" s then "tar.lzma"
else if hasSuffixHack ".tar.xz" s then "tar.xz"
else if hasSuffixHack ".rar" s then "rar"
else if (hasSuffixHack ".zip" s) || (hasSuffixHack ".ZIP" s) then "zip"
else if hasSuffixHack "-cvs-export" s then "cvs-dir"
else if hasSuffixHack "-git-export" s then "git-dir"
else if hasSuffixHack ".nar.bz2" s then "narbz2"
else if hasSuffixHack ".rpm" s then "rpm"
# Mostly for manually specified directories..
else if hasSuffixHack "/" s then "dir"
# Last block - for single files!! It should be always after .tar.*
else if hasSuffixHack ".bz2" s then "plain-bz2"
else if hasSuffixHack ".gz" s then "plain-gz"
# For bootstrap calls
else if (s ==("" + (substring 0 0 s))) then "empty"
else (abort "unknown archive type : ${s}"));
# changing this ? see [1]
defAddToSearchPath = fullDepEntry ("
addToSearchPathWithCustomDelimiter() {
local delimiter=\$1
local varName=\$2
local needDir=\$3
local addDir=\${4:-\$needDir}
local prefix=\$5
if [ -d \$prefix\$needDir ]; then
if [ -z \${!varName} ]; then
eval export \${varName}=\${prefix}\$addDir
else
eval export \${varName}=\${!varName}\${delimiter}\${prefix}\$addDir
fi
fi
}
addToSearchPath()
{
addToSearchPathWithCustomDelimiter \"\${PATH_DELIMITER}\" \"\$@\"
}
") ["defNest"];
# changing this ? see [1]
defNest = noDepEntry ("
nestingLevel=0
startNest() {
nestingLevel=\$((\$nestingLevel + 1))
echo -en \"\\e[\$1p\"
}
stopNest() {
nestingLevel=\$((\$nestingLevel - 1))
echo -en \"\\e[q\"
}
header() {
startNest \"\$2\"
echo \"\$1\"
}
# Make sure that even when we exit abnormally, the original nesting
# level is properly restored.
closeNest() {
while test \$nestingLevel -gt 0; do
stopNest
done
}
trap \"closeNest\" EXIT
");
# changing this ? see [1]
minInit = fullDepEntry ("
${stdenv.preHook}
set -e
NIX_CC=${stdenv.cc}
export SHELL=${stdenv.shell}
PATH_DELIMITER=':'
# Set up the initial path.
PATH=
for i in \$NIX_CC ${toString stdenv.initialPath}; do
PATH=\$PATH\${PATH:+\"\${PATH_DELIMITER}\"}\$i/bin
done
export TZ=UTC
prefix=${if args ? prefix then (toString args.prefix) else "\$out"}
") ["defNest" "defAddToSearchPath"];
# if you change this rewrite using '' instead of "" to get rid of indentation in builder scripts
addInputs = fullDepEntry ("
# Recursively find all build inputs.
findInputs()
{
local pkg=\$1
case \$pkgs in
*\\ \$pkg\\ *)
return 0
;;
esac
pkgs=\"\$pkgs \$pkg \"
echo \$pkg
if test -f \$pkg/nix-support/setup-hook; then
source \$pkg/nix-support/setup-hook
fi
}
pkgs=\"\"
for i in \$NIX_CC ${toString realBuildInputs}; do
findInputs \$i
done
# Set the relevant environment variables to point to the build inputs
# found above.
addToEnv()
{
local pkg=\$1
"+
(if !((args ? ignoreFailedInputs) && (args.ignoreFailedInputs == 1)) then "
if [ -e \$1/nix-support/failed ]; then
echo \"failed input \$1\" >&2
fail
fi
" else "")
+(if addSbinPath then "
if test -d \$1/sbin; then
export _PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$1/sbin
fi
" else "")
+"
if test -d \$1/bin; then
export _PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$1/bin
fi
for i in \"\${envHooks[@]}\"; do
\$i \$pkg
done
}
for i in \$pkgs; do
addToEnv \$i
done
# Add the output as an rpath.
if test \"\$NIX_NO_SELF_RPATH\" != \"1\"; then
export NIX_LDFLAGS=\"-rpath \$out/lib \$NIX_LDFLAGS\"
fi
PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$PATH
") ["minInit"];
# changing this ? see [1]
defEnsureDir = fullDepEntry ("
# Ensure that the given directories exists.
ensureDir() {
local dir
for dir in \"\$@\"; do
if ! test -x \"\$dir\"; then mkdir -p \"\$dir\"; fi
done
}
") ["minInit"];
# changing this ? see [1]
toSrcDir = s : fullDepEntry ((if (archiveType s) == "tar" then "
tar xvf '${s}'
cd \"\$(tar tf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tgz" then "
tar xvzf '${s}'
cd \"\$(tar tzf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tbz2" then "
tar xvjf '${s}'
cd \"\$(tar tjf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tZ" then "
uncompress < '${s}' | tar x
cd \"\$(uncompress < '${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tar.lzma" then "
unlzma -d -c <'${s}' | tar xv
cd \"\$(unlzma -d -c <'${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tar.xz" then "
xz -d -c <'${s}' | tar xv
cd \"\$(xz -d -c <'${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "rar" then "
unrar x '${s}'
cd \"$(unrar lb '${s}' | tail -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "zip" then "
unzip '${s}'
cd \"$( unzip -lqq '${s}' | tail -1 |
sed -e 's@^\\(\\s\\+[-0-9:]\\+\\)\\{3,3\\}\\s\\+\\([^/]\\+\\)/.*@\\2@' )\"
" else if (archiveType s) == "cvs-dir" then "
cp -r '${s}' .
cd \$(basename ${s})
chmod u+rwX -R .
" else if (archiveType s) == "git-dir" then "
cp -r '${s}' .
cd \$(basename ${s})
chmod u+rwX -R .
" else if (archiveType s) == "dir" then "
cp -r '${s}' .
cd \$(basename ${s})
chmod u+rwX -R .
" else if (archiveType s) == "narbz2" then "
bzip2 <${s} | nix-store --restore \$PWD/\$(basename ${s} .nar.bz2)
cd \$(basename ${s} .nar.bz2)
" else if (archiveType s) == "rpm" then ''
rpm2cpio ${s} > ${s}.cpio
cpio -iv < ${s}.cpio
test -f *.tar.* && tar -xvf *.tar.*
test -d */ && cd */
'' else if (archiveType s) == "plain-bz2" then "
mkdir \$PWD/\$(basename ${s} .bz2)
NAME=\$(basename ${s} .bz2)
bzip2 -d <${s} > \$PWD/\$(basename ${s} .bz2)/\${NAME#*-}
cd \$(basename ${s} .bz2)
" else if (archiveType s) == "plain-gz" then "
mkdir \$PWD/\$(basename ${s} .gz)
NAME=\$(basename ${s} .gz)
gzip -d <${s} > \$PWD/\$(basename ${s} .gz)/\${NAME#*-}
cd \$(basename ${s} .gz)
" else if (archiveType s) == "empty" then "
echo No source to unpack - doing nothing ..
" else (abort "unknown archive type : ${s}"))+
# goSrcDir is typically something like "cd mysubdir" .. but can be anything else
(if args ? goSrcDir then args.goSrcDir else "")
) ["minInit"];
configureCommand = attrByPath ["configureCommand"] "./configure" args;
# changing this ? see [1]
doConfigure = fullDepEntry ("
${configureCommand} --prefix=\"\$prefix\" ${toString configureFlags}
") ["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doIntltool = fullDepEntry ("
mkdir -p config
intltoolize --copy --force
") ["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doAutotools = fullDepEntry ("
mkdir -p config
libtoolize --copy --force
aclocal --force
#Some packages do not need this
autoheader || true;
automake --add-missing --copy
autoconf
")["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doAutogen = fullDepEntry (''
./autogen.sh
'')["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doMake = fullDepEntry ("
make ${toString makeFlags}
") ["minInit" "addInputs" "doUnpack"];
doUnpack = toSrcDir (toString src);
# changing this ? see [1]
installPythonPackage = fullDepEntry ("
python setup.py install --prefix=\"\$prefix\"
") ["minInit" "addInputs" "doUnpack"];
doPythonConfigure = fullDepEntry (''
pythonVersion=$(toPythonPath "$prefix")
pythonVersion=''${pythonVersion#*/lib/python}
pythonVersion=''${pythonVersion%%/site-packages}
${if args ? extraPythonConfigureCommand then
args.extraPythonConfigureCommand
else ""}
python configure.py -b "$prefix/bin" -d "$(toPythonPath "$prefix")" -v "$prefix/share/sip" ${toString configureFlags}
'') ["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doMakeInstall = fullDepEntry ("
make ${toString (attrByPath ["makeFlags"] "" args)} "+
"${toString (attrByPath ["installFlags"] "" args)} install") ["doMake"];
# changing this ? see [1]
doForceShare = fullDepEntry ("
mkdir -p \"\$prefix/share\"
for d in ${toString forceShare}; do
if [ -d \"\$prefix/\$d\" -a ! -d \"\$prefix/share/\$d\" ]; then
mv -v \"\$prefix/\$d\" \"\$prefix/share\"
ln -sv share/\$d \"\$prefix\"
fi;
done;
") ["minInit" "defEnsureDir"];
doForceCopy = fullDepEntry (''
name="$(basename $out)"
name="''${name#*-}"
mkdir -p "$prefix/share/$name"
for f in ${toString forceCopy}; do
cp -r "$f" "$prefix/share/$name/$f" || true
done;
'') ["minInit" "defEnsureDir"];
doDump = n: noDepEntry "echo Dump number ${n}; set";
saveEnv = noDepEntry ''export > "$TMP/env-vars" || true'';
doDumpBuildInputs = noDepEntry (''
echo "${toString realBuildInputs}"
'');
patchFlags = if args ? patchFlags then args.patchFlags else "-p1";
patches = attrByPath ["patches"] [] args;
toPatchCommand = s: "cat ${s} | patch ${toString patchFlags}";
doPatch = fullDepEntry (concatStringsSep ";"
(map toPatchCommand patches)
) ["minInit" "doUnpack"];
envAdderInner = s: x: if x==null then s else y:
a: envAdderInner (s+"echo export ${x}='\"'\"\$${x}:${y}\";'\"'\n") a;
envAdder = envAdderInner "";
envAdderList = l: if l==[] then "" else
"echo export ${head l}='\"'\"\\\$${head l}:${head (tail l)}\"'\"';\n" +
envAdderList (tail (tail l));
# changing this ? see [1]
wrapEnv = cmd: env: "
mv \"${cmd}\" \"${cmd}-orig\";
touch \"${cmd}\";
chmod a+rx \"${cmd}\";
(${envAdderList env}
echo '\"'\"${cmd}-orig\"'\"' '\"'\\\$@'\"' \n) > \"${cmd}\"";
doWrap = cmd: fullDepEntry (wrapEnv cmd (attrByPath ["wrappedEnv"] [] args)) ["minInit"];
makeManyWrappers = wildcard : wrapperFlags : fullDepEntry (''
for i in ${wildcard}; do
wrapProgram "$i" ${wrapperFlags}
done
'') ["minInit" "addInputs" "defEnsureDir"];
wrapBinContentsPython = (makeManyWrappers
''$out/bin/*''
pythonWrapperArguments
);
pythonWrapperArguments =
(''--prefix PYTHONPATH : $(toPythonPath $out)'' +
''''${PYTHONPATH:+ --prefix PYTHONPATH : $PYTHONPATH}'');
preservePathWrapperArguments = ''''${PATH:+ --prefix PATH : $PATH }'';
doPropagate = fullDepEntry ("
mkdir -p \$out/nix-support
echo '${toString (attrByPath ["propagatedBuildInputs"] [] args)}' >\$out/nix-support/propagated-build-inputs
") ["minInit" "defEnsureDir"];
cmakeFlags = attrByPath ["cmakeFlags"] [] args;
cmakeRPathFlag = if attrByPath ["cmakeSkipRpath "] true args then " -DCMAKE_SKIP_BUILD_RPATH=ON " else "";
cmakeBuildDir = attrByPath ["cmakeBuildDir"] "build" args;
doCmake = fullDepEntry (''
mkdir ${cmakeBuildDir}
cd ${cmakeBuildDir}
cmake -D CMAKE_INSTALL_PREFIX="$out" ${cmakeRPathFlag}${toString cmakeFlags} ..
'') ["minInit" "addInputs" "doUnpack"];
doScons = fullDepEntry (''
mkdir -p $out
${if (attrByPath ["sconsCleanEnv"] false args)
then ""
else ''
sed -e '1iimport os' -i SConstruct
sed -e 's/env *= *Environment *.*/&; env['"'"'ENV'"'"']=os.environ;/' -i SConstruct
''
}
scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out
scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out install
'') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
/*debug = x:(trace x x);
debugX = x:(trace (toXML x) x);*/
makeNest = x: if x == defNest.text then x else "startNest\n" + x + "\nstopNest\n";
textClosure = a: steps: textClosureMap makeNest a (["defNest"] ++ steps);
inherit noDepEntry fullDepEntry packEntry;
defList = attrByPath ["defList"] [] args;
getVal = getValue args defList;
check = checkFlag args;
reqsList = attrByPath ["reqsList"] [] args;
buildInputsNames = filter (x: null != getVal x)
(uniqList {inputList =
(concatLists (map
(x: if x==[] then [] else builtins.tail x)
reqsList));});
configFlags = attrByPath ["configFlags"] [] args;
buildFlags = attrByPath ["buildFlags"] [] args;
nameSuffixes = attrByPath ["nameSuffixes"] [] args;
autoBuildInputs = assert (checkReqs args defList reqsList);
filter (x: x!=null) (map getVal buildInputsNames);
autoConfigureFlags = condConcat "" configFlags check;
autoMakeFlags = condConcat "" buildFlags check;
useConfig = attrByPath ["useConfig"] false args;
realBuildInputs =
lib.closePropagation ((if useConfig then
autoBuildInputs else
attrByPath ["buildInputs"] [] args)++
(attrByPath ["propagatedBuildInputs"] [] args));
configureFlags = if useConfig then autoConfigureFlags else
attrByPath ["configureFlags"] "" args;
makeFlags = if useConfig then autoMakeFlags else attrByPath ["makeFlags"] "" args;
inherit lib;
surroundWithCommands = x : before : after : {deps=x.deps; text = before + "\n" +
x.text + "\n" + after ;};
createDirs = fullDepEntry (concatStringsSep ";"
(map (x: "mkdir -p ${x}") (attrByPath ["neededDirs"] [] args))
) ["minInit" "defEnsureDir"];
copyExtraDoc = fullDepEntry (''
name="$(basename $out)"
name="''${name#*-}"
mkdir -p "$out/share/doc/$name"
'' + (concatStringsSep ";"
(map
(x: ''cp "${x}" "$out/share/doc/$name" || true;'')
(attrByPath ["extraDoc"] [] args)))) ["minInit" "defEnsureDir" "doUnpack"];
realPhaseNames =
(optional ([] != attrByPath ["neededDirs"] [] args) "createDirs")
++
(attrByPath ["phaseNames"] [] args)
++
["doForceShare" "doPropagate" "doForceCopy"]
++
(optional ([] != attrByPath ["extraDoc"] [] args) "copyExtraDoc")
++
(optional (attrByPath ["doCheck"] false args) "doMakeCheck")
++
(optional (attrByPath ["alwaysFail"] false args) "doFail")
;
doFail = noDepEntry "
echo 'Failing to keep builddir (and to invalidate result).'
a() { return 127; } ; a ;
";
doMakeCheck = fullDepEntry (''
make check
'') ["minInit"];
extraDerivationAttrs = lib.attrByPath ["extraDerivationAttrs"] {} args;
# for overrides..
builderDefsArgs = args;
innerBuilderDefsPackage = bd: args: (
let localDefs = bd.passthru.function args; in
stdenv.mkDerivation ((rec {
inherit (localDefs) name;
buildCommand = textClosure localDefs localDefs.realPhaseNames;
meta = localDefs.meta;
passthru = localDefs.passthru // {inherit (localDefs) src; };
}) // (if localDefs ? propagatedBuildInputs then {
inherit (localDefs) propagatedBuildInputs;
} else {}) // extraDerivationAttrs)
);
builderDefsPackage = bd: func:
if builtins.isFunction func then
(foldArgs
(x: y: ((func (bd // x // y)) // y))
(innerBuilderDefsPackage bd)
{})
else
(builderDefsPackage bd (import (toString func)))
;
generateFontsFromSFD = fullDepEntry (''
for i in *.sfd; do
echo $i;
fontforge -c \
'Open($1);
${optionalString (args ? extraFontForgeCommands) args.extraFontForgeCommands
}Reencode("unicode");
${optionalString (attrByPath ["createTTF"] true args) ''Generate($1:r + ".ttf");''}
${optionalString (attrByPath ["createOTF"] true args) ''Generate($1:r + ".otf");''}
Reencode("TeX-Base-Encoding");
${optionalString (attrByPath ["createAFM"] true args) ''Generate($1:r + ".afm");''}
${optionalString (attrByPath ["createPFM"] true args) ''Generate($1:r + ".pfm");''}
${optionalString (attrByPath ["createPFB"] true args) ''Generate($1:r + ".pfb");''}
${optionalString (attrByPath ["createMAP"] true args) ''Generate($1:r + ".map");''}
${optionalString (attrByPath ["createENC"] true args) ''Generate($1:r + ".enc");''}
' $i;
done
'') ["minInit" "addInputs" "doUnpack"];
installFonts =
let retrievedName = (if args ? name then args.name else ""); in
fullDepEntry (''
mkdir -p $out/share/fonts/truetype/public/${retrievedName}
mkdir -p $out/share/fonts/opentype/public/${retrievedName}
mkdir -p $out/share/fonts/type1/public/${retrievedName}
mkdir -p $out/share/texmf/fonts/enc/${retrievedName}
mkdir -p $out/share/texmf/fonts/map/${retrievedName}
find -name '*.ttf' -exec cp {} $out/share/fonts/truetype/public/${retrievedName} \;
find -name '*.otf' -exec cp {} $out/share/fonts/opentype/public/${retrievedName} \;
find -name '*.pfm' -o -name '*.afm' -o -name '*.pfb' -exec cp {} $out/share/fonts/type1/public/${retrievedName} \;
find -name '*.enc' -exec cp {} $out/share/texmf/fonts/enc/${retrievedName} \;
find -name '*.map' -exec cp {} $out/share/texmf/fonts/map/${retrievedName} \;
'') ["minInit" "defEnsureDir"];
simplyShare = shareName: fullDepEntry (''
mkdir -p $out/share
cp -r . $out/share/${shareName}
'') ["doUnpack" "defEnsureDir"];
doPatchShebangs = dir: fullDepEntry (''
patchShebangFun() {
# Rewrite all script interpreter file names (`#! /path') under the
# specified directory tree to paths found in $PATH. E.g.,
# /bin/sh will be rewritten to /nix/store/<hash>-some-bash/bin/sh.
# Interpreters that are already in the store are left untouched.
echo "patching script interpreter paths"
local f
for f in $(find "${dir}" -xtype f -perm -0100); do
local oldPath=$(sed -ne '1 s,^#![ ]*\([^ ]*\).*$,\1,p' "$f")
if test -n "$oldPath" -a "''${oldPath:0:''${#NIX_STORE}}" != "$NIX_STORE"; then
local newPath=$(type -P $(basename $oldPath) || true)
if test -n "$newPath" -a "$newPath" != "$oldPath"; then
echo "$f: interpreter changed from $oldPath to $newPath"
sed -i "1 s,$oldPath,$newPath," "$f"
else
echo "$f: not changing interpreter from $oldPath"
fi
fi
done
}
patchShebangFun;
'') ["minInit"];
createPythonInstallationTarget = fullDepEntry (''
mkdir -p $(toPythonPath $out)
export PYTHONPATH=$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath $out)
'') ["minInit" "addInputs" "defEnsureDir"];
fetchUrlFromSrcInfo = srcInfo: fetchurl ({
url = srcInfo.url;
sha256 = srcInfo.hash;
} //
(if srcInfo ? downloadName then {name = srcInfo.downloadName;} else {}));
fetchGitFromSrcInfo = srcInfo: fetchgit {
url = srcInfo.url;
rev = srcInfo.rev;
sha256 = srcInfo.hash;
};
}) // args
# [1]: rewrite using '' instead of " so that indentation gets stripped. It's
# only about some spaces but in the end they will sum up

View File

@@ -0,0 +1,48 @@
x@{builderDefsPackage
(abort "Specify dependencies")
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[(abort "Specify helper argument names")];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
baseName="${abort ''Specify package name''}";
version="";
name="${baseName}-${version}";
url="${name}";
hash="";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
};
inherit (sourceInfo) name version;
inherit buildInputs;
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
meta = {
description = "${abort ''Specify description''}";
maintainers = with a.lib.maintainers;
[
(abort "Specify maintainers")
];
platforms = with a.lib.platforms;
(abort "Specify platforms");
license = a.lib.licenses.(abort "Specify license");
};
passthru = {
updateInfo = {
downloadPage = "${abort ''Specify download page''}";
};
};
}) x

View File

@@ -0,0 +1,26 @@
a :
let
s = import ./src-for-default.nix;
buildInputs = with a; [
];
in
rec {
src = a.fetchUrlFromSrcInfo s;
inherit (s) name;
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
meta = {
description = "${abort "Specify description"}";
maintainers = [
a.lib.maintainers.(abort "Specify maintainer")
];
platforms = with a.lib.platforms;
(abort "Specify supported platforms");
};
}

View File

@@ -0,0 +1,22 @@
args : with args; let localDefs = builderDefs (args // rec {
src = /* put a fetchurl here */
(abort "Specify source");
useConfig = true;
reqsList = [
["true" ]
["false"]
];
/* List consisiting of an even number of strings; "key" "value" */
configFlags = [
];
}) args null; /* null is a terminator for sumArgs */
in with localDefs;
stdenv.mkDerivation rec {
name = "${(abort "Specify name")}"+version;
builder = writeScript (name + "-builder")
(textClosure localDefs [(abort "Check phases") doMakeInstall doForceShare doPropagate]);
meta = {
description = "${(abort "Specify description")}";
inherit src;
};
}

View File

@@ -0,0 +1,26 @@
a :
let
fetchurl = a.fetchurl;
version = a.lib.attrByPath ["version"] "" a;
buildInputs = with a; [
];
in
rec {
src = /* Here a fetchurl expression goes */;
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
name = "${abort "Specify name"}-" + version;
meta = {
description = "${abort "Specify description"}";
maintainers = [
a.lib.maintainers.(abort "Specify maintainer")
];
};
}

View File

@@ -1,5 +1,4 @@
{ stdenv
, lib
, overrideDerivation
# required for gcc plugins
@@ -25,7 +24,7 @@ overrideDerivation (kernel.override {
inherit extraConfig;
ignoreConfigErrors = true;
}) (attrs: {
nativeBuildInputs = (lib.chooseDevOutputs [ gmp libmpc mpfr ]) ++ (attrs.nativeBuildInputs or []);
nativeBuildInputs = [ gmp libmpc mpfr ] ++ (attrs.nativeBuildInputs or []);
preConfigure = ''
echo ${localver} >localversion-grsec
${attrs.preConfigure or ""}

View File

@@ -160,7 +160,8 @@ _multioutDevs() {
done
}
# Make the "dev" propagate other outputs needed for development.
# Make the first output (typically "dev") propagate other outputs needed for development.
# Take the first, because that's what one gets when putting the package into buildInputs.
# Note: with current cross-building setup, all packages are "native" if not cross-building;
# however, if cross-building, the outputs are non-native. We have to choose the right file.
_multioutPropagateDev() {
@@ -170,17 +171,13 @@ _multioutPropagateDev() {
for outputFirst in $outputs; do
break
done
local propagaterOutput="$outputDev"
if [ -z "$propagaterOutput" ]; then
propagaterOutput="$outputFirst"
fi
# Default value: propagate binaries, includes and libraries
if [ -z "${propagatedBuildOutputs+1}" ]; then
local po_dirty="$outputBin $outputInclude $outputLib"
set +o pipefail
propagatedBuildOutputs=`echo "$po_dirty" \
| tr -s ' ' '\n' | grep -v -F "$propagaterOutput" \
| tr -s ' ' '\n' | grep -v -F "$outputFirst" \
| sort -u | tr '\n' ' ' `
set -o pipefail
fi
@@ -190,6 +187,7 @@ _multioutPropagateDev() {
return
fi
mkdir -p "${!outputFirst}"/nix-support
local propagatedBuildInputsFile
if [ -z "$crossConfig" ]; then
propagatedBuildInputsFile=propagated-native-build-inputs
@@ -197,9 +195,8 @@ _multioutPropagateDev() {
propagatedBuildInputsFile=propagated-build-inputs
fi
mkdir -p "${!propagaterOutput}"/nix-support
for output in $propagatedBuildOutputs; do
echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/$propagatedBuildInputsFile
echo -n " ${!output}" >> "${!outputFirst}"/nix-support/$propagatedBuildInputsFile
done
}

View File

@@ -0,0 +1,21 @@
#! /bin/sh
[ -n "$2" ] && NIXPKGS_ALL="$2";
[ -z "$NIXPKGS_ALL" ] && [ -d "/etc/nixos/nixpkgs" ] && NIXPKGS_ALL="/etc/nixos/nixpkgs";
[ -z "$NIXPKGS_ALL" ] && [ -d "$HOME/nixpkgs" ] && NIXPKGS_ALL="$HOME/nixpkgs";
[ -z "$NIXPKGS_ALL" ] && {
echo "Cannot find Nixpkgs source. Please specify it via NIXPKGS_ALL or second command line argument"
exit 1
};
derivation="$(nix-instantiate --show-trace - << EOF
let
pkgs = import "${NIXPKGS_ALL}" {};
attrSet = import "${1}";
in
pkgs.attrSetToDir attrSet
EOF
)"
echo "Derivation is: $derivation" >&2
output="$(nix-store -r "$derivation")"
echo "$output/attributes"

View File

@@ -9,7 +9,12 @@ stdenv.mkDerivation rec {
sha256 = "1vimj3va16plxmv46rw6nzw4m9l11hb7r1d217y1bjpd5q8nw8qz";
};
# keep developer docs separately (man2 and man3)
outputs = [ "out" "docdev" ];
makeFlags = [ "MANDIR=$(out)/share/man" ];
postFixup = ''
moveToOutput share/man/man2 "$docdev"
'';
meta = with stdenv.lib; {
description = "Linux development manual pages";

View File

@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://kldp.net/baekmuk/release/865-${name}.tar.gz";
sha256 = "10hqspl70h141ywz1smlzdanlx9vwgsp1qrcjk68fn2xnpzpvaq8";
sha256 = "08ab7dffb55d5887cc942ce370f5e33b756a55fbb4eaf0b90f244070e8d51882";
};
dontBuild = true;

View File

@@ -13,8 +13,6 @@ stdenv.mkDerivation rec {
sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk";
};
outputs = [ "out" "minimal" ];
buildFlags = "full-ttf";
preBuild = "patchShebangs scripts";
@@ -24,10 +22,6 @@ stdenv.mkDerivation rec {
for i in $(find build -name '*.ttf'); do
cp $i $out/share/fonts/truetype;
done;
'' + ''
local fname=share/fonts/truetype/DejaVuSans.ttf
moveToOutput "$fname" "$minimal"
ln -s "$minimal/$fname" "$out/$fname"
'';
meta = {

View File

@@ -19,18 +19,11 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/fonts/truetype
./install.sh ${withFont}
'';
meta = with stdenv.lib; {
description = ''
Nerd Fonts is a project that attempts to patch as many developer targeted
and/or used fonts as possible. The patch is to specifically add a high
number of additional glyphs from popular 'iconic fonts' such as Font
Awesome, Devicons, Octicons, and others.
'';
description = "Nerd Fonts is a project that attempts to patch as many developer targeted and/or used fonts as possible. The patch is to specifically add a high number of additional glyphs from popular 'iconic fonts' such as Font Awesome, Devicons, Octicons, and others.";
homepage = "https://github.com/ryanoasis/nerd-fonts";
license = licenses.mit;
maintainers = with maintainers; [ garbas ];
platforms = with platforms; unix;
hydraPlatforms = []; # 'Output limit exceeded' on Hydra
};
}

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "oxygenfonts-20160824";
name = "oxygenfonts-20160825";
src = fetchFromGitHub {
owner = "vernnobile";

View File

@@ -1,31 +0,0 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "roboto-${version}";
version = "2.134";
src = fetchurl {
url = "https://github.com/google/roboto/releases/download/v${version}/roboto-unhinted.zip";
sha256 = "1l033xc2n4754gwakxshh5235cnrnzy7q6zsp5zghn8ib0gdp5rb";
};
nativeBuildInputs = [ unzip ];
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp -a * $out/share/fonts/truetype/
'';
meta = {
homepage = https://github.com/google/roboto;
description = "The Roboto family of fonts";
longDescription = ''
Googles signature family of fonts, the default font on Android and
Chrome OS, and the recommended font for Googles visual language,
Material Design.
'';
license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.romildo ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -11,7 +11,7 @@ stdenv.mkDerivation {
sha256 = "09ch709cb9fniwc4221xgkq0jf0x0lxs814sqig8p2dcll0llvzk";
};
outputs = [ "out" "dev" "doc" ];
outputs = [ "dev" "out" "doc" ];
buildInputs = [ ORBit2 dbus_libs dbus_glib libxml2 ]
# polkit requires pam, which requires shadow.h, which is not available on

View File

@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
propagatedBuildInputs = [ glib libIDL ] ++ libintlOrEmpty;
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
preBuild = ''
sed 's/-DG_DISABLE_DEPRECATED//' -i linc2/src/Makefile

View File

@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2";
};
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
buildInputs =
[ pkgconfig libxml2 bzip2 openssl samba dbus_glib fam cdparanoia

View File

@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
};
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
preConfigure = # still using stuff deprecated in new glib versions
"sed 's/-DG_DISABLE_DEPRECATED//g' -i configure activation-server/Makefile.in";

View File

@@ -8,7 +8,7 @@ stdenv.mkDerivation {
sha256 = "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4";
};
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
buildInputs = [ pkgconfig gtk python gettext ];

View File

@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
};
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
patches = [ ./new-glib.patch ];

View File

@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0h6xvswbqspdifnyh5pm2pqq55yp3kn6yrswq7ay9z49hkh7i6w5";
};
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
buildInputs = [ libglade ];
nativeBuildInputs = [ pkgconfig intltool ];

View File

@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar"
"--disable-libcryptui" ];
NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0";
NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss}/include/nss -I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
gdk_pixbuf gnome3.defaultIconTheme librsvg which gnome_common
gcr avahi gnome3.gsettings_desktop_schemas gnome3.dconf ];
NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0";
NIX_CFLAGS_COMPILE = "-I${nspr.dev}/include/nspr -I${nss}/include/nss -I${glib.dev}/include/gio-unix-2.0";
enableParallelBuilding = true;

View File

@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
configureFlags = "--disable-fatal-warnings";
NIX_CFLAGS_COMPILE = ["-I${nspr.dev}/include/nspr" "-I${nss.dev}/include/nss"
NIX_CFLAGS_COMPILE = ["-I${nspr.dev}/include/nspr" "-I${nss}/include/nss"
"-I${dbus_glib.dev}/include/dbus-1.0" "-I${dbus_libs.dev}/include/dbus-1.0"];
enableParallelBuilding = true;

View File

@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk";
};
outputs = [ "out" "dev" ];
outputs = [ "dev" "out" ];
outputBin = "dev";
configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";

View File

@@ -16,7 +16,7 @@ kde {
nativeBuildInputs = [ shared_mime_info ];
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
passthru.propagatedUserEnvPackages = [ virtuoso ];

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