Merge remote-tracking branch 'upstream/master' into hardened-stdenv

This commit is contained in:
Robin Gloster 2016-07-19 10:37:02 +00:00
commit 203846b9de
282 changed files with 4189 additions and 7149 deletions

View File

@ -1,14 +1,20 @@
language: nix
matrix:
allow_failures:
- os: osx
include:
- os: linux
language: generic
sudo: false
script:
- ./maintainers/scripts/travis-nox-review-pr.sh nixpkgs-verify nixpkgs-manual nixpkgs-tarball
- ./maintainers/scripts/travis-nox-review-pr.sh nixos-options nixos-manual
- os: linux
sudo: required
dist: trusty
script: ./maintainers/scripts/travis-nox-review-pr.sh pr
- os: osx
language: generic
osx_image: xcode7.3
before_install: ./maintainers/scripts/travis-nox-review-pr.sh nix
install: ./maintainers/scripts/travis-nox-review-pr.sh nox
script: ./maintainers/scripts/travis-nox-review-pr.sh build
script: ./maintainers/scripts/travis-nox-review-pr.sh pr
git:
depth: 1
env:
global:
- GITHUB_TOKEN=5edaaf1017f691ed34e7f80878f8f5fbd071603f

View File

@ -31,7 +31,7 @@ For pull-requests, please rebase onto nixpkgs `master`.
* [Documentation (Nix Expression Language chapter)](https://nixos.org/nix/manual/#ch-expression-language)
* [Manual (How to write packages for Nix)](https://nixos.org/nixpkgs/manual/)
* [Manual (NixOS)](https://nixos.org/nixos/manual/)
* [Nix Wiki](https://nixos.org/wiki/)
* [Nix Wiki](https://nixos.org/wiki/) (deprecated, see milestone ["Move the Wiki!"](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Move+the+wiki%21%22))
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for 16.03 release](https://hydra.nixos.org/jobset/nixos/release-16.03)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)

View File

@ -6,4 +6,4 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.
else
import ./pkgs/top-level
import ./pkgs/top-level/impure.nix

View File

@ -163,6 +163,7 @@
guibert = "David Guibert <david.guibert@gmail.com>";
havvy = "Ryan Scheel <ryan.havvy@gmail.com>";
hbunke = "Hendrik Bunke <bunke.hendrik@gmail.com>";
hce = "Hans-Christian Esperer <hc@hcesperer.org>";
henrytill = "Henry Till <henrytill@gmail.com>";
hiberno = "Christian Lask <hiberno@hiberno.net>";
hinton = "Tom Hinton <t@larkery.com>";
@ -356,6 +357,7 @@
sheganinans = "Aistis Raulinaitis <sheganinans@gmail.com>";
shell = "Shell Turner <cam.turn@gmail.com>";
shlevy = "Shea Levy <shea@shealevy.com>";
siddharthist = "Langston Barrett <langston.barrett@gmail.com>";
simonvandel = "Simon Vandel Sillesen <simon.vandel@gmail.com>";
sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";

View File

@ -1,58 +1,69 @@
#! /usr/bin/env bash
set -e
export NIX_CURL_FLAGS=-sS
while test -n "$1"; do
if [[ $1 == nix ]]; then
echo "=== Installing Nix..."
# Install Nix
bash <(curl -sS https://nixos.org/nix/install)
source $HOME/.nix-profile/etc/profile.d/nix.sh
# tell Travis to use folding
echo -en "travis_fold:start:$1\r"
# Make sure we can use hydra's binary cache
sudo mkdir /etc/nix
sudo sh -c 'echo "build-max-jobs = 4" > /etc/nix/nix.conf'
case $1 in
# Verify evaluation
echo "=== Verifying that nixpkgs evaluates..."
nix-env -f. -qa --json >/dev/null
elif [[ $1 == nox ]]; then
source $HOME/.nix-profile/etc/profile.d/nix.sh
echo "=== Installing nox..."
nix-build -A nox '<nixpkgs>' --show-trace
elif [[ $1 == build ]]; then
source $HOME/.nix-profile/etc/profile.d/nix.sh
nixpkgs-verify)
echo "=== Verifying that nixpkgs evaluates..."
if [[ $TRAVIS_OS_NAME == "osx" ]]; then
echo "Skipping NixOS things on darwin"
else
# Nix builds in /tmp and we need exec support
sudo mount -o remount,exec /run
sudo mount -o remount,exec /run/user
sudo mount
nix-env --file $TRAVIS_BUILD_DIR --query --available --json > /dev/null
;;
echo "=== Checking NixOS options"
nix-build nixos/release.nix -A options --show-trace
nixos-options)
echo "=== Checking NixOS options"
echo "=== Checking tarball creation"
nix-build pkgs/top-level/release.nix -A tarball --show-trace
fi
nix-build $TRAVIS_BUILD_DIR/nixos/release.nix --attr options --show-trace
;;
if [[ $TRAVIS_PULL_REQUEST == false ]]; then
echo "=== Not a pull request"
else
echo "=== Checking PR"
nixos-manual)
echo "=== Checking NixOS manuals"
if ! nix-shell -p nox --run "nox-review pr ${TRAVIS_PULL_REQUEST}"; then
if sudo dmesg | egrep 'Out of memory|Killed process' > /tmp/oom-log; then
echo "=== The build failed due to running out of memory:"
cat /tmp/oom-log
echo "=== Please disregard the result of this Travis build."
nix-build $TRAVIS_BUILD_DIR/nixos/release.nix --attr manual --show-trace
;;
nixpkgs-manual)
echo "=== Checking nixpkgs manuals"
nix-build $TRAVIS_BUILD_DIR/pkgs/top-level/release.nix --attr manpages --show-trace
;;
nixpkgs-tarball)
echo "=== Checking nixpkgs tarball creation"
nix-build $TRAVIS_BUILD_DIR/pkgs/top-level/release.nix --attr tarball --show-trace
;;
nixpkgs-lint)
echo "=== Checking nixpkgs lint"
nix-shell --packages nixpkgs-lint --run "nixpkgs-lint -f $TRAVIS_BUILD_DIR"
;;
pr)
if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
echo "=== No pull request found"
else
echo "=== Building pull request #$TRAVIS_PULL_REQUEST"
token=""
if [ -n "$GITHUB_TOKEN" ]; then
token="--token $GITHUB_TOKEN"
fi
nix-shell --packages nox git --run "nox-review pr --slug $TRAVIS_REPO_SLUG $token $TRAVIS_PULL_REQUEST" -I nixpkgs=$TRAVIS_BUILD_DIR
fi
exit 1
fi
fi
else
echo "$0: Unknown option $1" >&2
false
fi
;;
*)
echo "Skipping unknown option $1"
;;
esac
echo -en "travis_fold:end:$1\r"
shift
done

View File

@ -3,84 +3,6 @@
with lib;
let fcBool = x: if x then "<bool>true</bool>" else "<bool>false</bool>";
cfg = config.fonts.fontconfig.ultimate;
fontconfigUltimateConf = pkgs.writeText "ultimate-conf" ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
${optionalString (!cfg.allowBitmaps) ''
<!-- Reject bitmap fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</rejectfont>
</selectfont>
''}
${optionalString cfg.allowType1 ''
<!-- Reject Type 1 fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="fontformat">
<string>Type 1</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>
''}
<!-- Use embedded bitmaps in fonts like Calibri? -->
<match target="font">
<edit name="embeddedbitmap" mode="assign">
${fcBool cfg.useEmbeddedBitmaps}
</edit>
</match>
<!-- Force autohint always -->
<match target="font">
<edit name="force_autohint" mode="assign">
${fcBool cfg.forceAutohint}
</edit>
</match>
<!-- Render some monospace TTF fonts as bitmaps -->
<match target="pattern">
<edit name="bitmap_monospace" mode="assign">
${fcBool cfg.renderMonoTTFAsBitmap}
</edit>
</match>
</fontconfig>
'';
confPkg =
let version = pkgs.fontconfig.configVersion;
in pkgs.runCommand "font-ultimate-conf" {} ''
mkdir -p $out/etc/fonts/{,${version}/}conf.d/
cp ${fontconfigUltimateConf} \
$out/etc/fonts/conf.d/52-fontconfig-ultimate.conf
cp ${fontconfigUltimateConf} \
$out/etc/fonts/${version}/conf.d/52-fontconfig-ultimate.conf
${optionalString (cfg.substitutions != "none") ''
cp ${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${cfg.substitutions}/*.conf \
$out/etc/fonts/conf.d/
cp ${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${cfg.substitutions}/*.conf \
$out/etc/fonts/${version}/conf.d/
''}
ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d/*.conf \
$out/etc/fonts/conf.d/
ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d/*.conf \
$out/etc/fonts/${version}/conf.d/
'';
in
{
@ -193,11 +115,78 @@ in
};
config = mkIf (config.fonts.fontconfig.enable && cfg.enable) {
config =
let ultimate = config.fonts.fontconfig.ultimate;
fontconfigUltimateConf = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
fonts.fontconfig.confPkgs = [ confPkg ];
environment.variables = cfg.rendering;
${optionalString (!ultimate.allowBitmaps) ''
<!-- Reject bitmap fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</rejectfont>
</selectfont>
''}
${optionalString ultimate.allowType1 ''
<!-- Reject Type 1 fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="fontformat">
<string>Type 1</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>
''}
<!-- Use embedded bitmaps in fonts like Calibri? -->
<match target="font">
<edit name="embeddedbitmap" mode="assign">
${fcBool ultimate.useEmbeddedBitmaps}
</edit>
</match>
<!-- Force autohint always -->
<match target="font">
<edit name="force_autohint" mode="assign">
${fcBool ultimate.forceAutohint}
</edit>
</match>
<!-- Render some monospace TTF fonts as bitmaps -->
<match target="pattern">
<edit name="bitmap_monospace" mode="assign">
${fcBool ultimate.renderMonoTTFAsBitmap}
</edit>
</match>
${optionalString (ultimate.substitutions != "none") ''
<!-- Type 1 font substitutions -->
<include ignore_missing="yes">${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${ultimate.substitutions}</include>
''}
<include ignore_missing="yes">${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d</include>
</fontconfig>
'';
in mkIf (config.fonts.fontconfig.enable && ultimate.enable) {
environment.etc."fonts/conf.d/52-fontconfig-ultimate.conf" = {
text = fontconfigUltimateConf;
};
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/52-fontconfig-ultimate.conf" = {
text = fontconfigUltimateConf;
};
environment.variables = ultimate.rendering;
};

View File

@ -2,121 +2,6 @@
with lib;
let cfg = config.fonts.fontconfig;
fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>";
renderConf = pkgs.writeText "render-conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default rendering settings -->
<match target="font">
<edit mode="assign" name="hinting">
${fcBool cfg.hinting.enable}
</edit>
<edit mode="assign" name="autohint">
${fcBool cfg.hinting.autohint}
</edit>
<edit mode="assign" name="hintstyle">
<const>hint${cfg.hinting.style}</const>
</edit>
<edit mode="assign" name="antialias">
${fcBool cfg.antialias}
</edit>
<edit mode="assign" name="rgba">
<const>${cfg.subpixel.rgba}</const>
</edit>
<edit mode="assign" name="lcdfilter">
<const>lcd${cfg.subpixel.lcdfilter}</const>
</edit>
</match>
${optionalString (cfg.dpi != 0) ''
<match target="pattern">
<edit name="dpi" mode="assign">
<double>${toString cfg.dpi}</double>
</edit>
</match>
''}
</fontconfig>
'';
genericAliasConf =
let genDefault = fonts: name:
optionalString (fonts != []) ''
<alias>
<family>${name}</family>
<prefer>
${concatStringsSep ""
(map (font: ''
<family>${font}</family>
'') fonts)}
</prefer>
</alias>
'';
in
pkgs.writeText "generic-alias-conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default fonts -->
${genDefault cfg.defaultFonts.sansSerif "sans-serif"}
${genDefault cfg.defaultFonts.serif "serif"}
${genDefault cfg.defaultFonts.monospace "monospace"}
</fontconfig>
'';
cacheConf = let
cache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
in
pkgs.writeText "cache-conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Font directories -->
${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
<!-- Pre-generated font caches -->
<cachedir>${cache pkgs.fontconfig}</cachedir>
${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
<cachedir>${cache pkgs.pkgsi686Linux.fontconfig}</cachedir>
''}
</fontconfig>
'';
userConf = pkgs.writeText "user-conf" ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
</fontconfig>
'';
fontsConf = pkgs.makeFontsConf { fontconfig = pkgs.fontconfig_210; fontDirectories = config.fonts.fonts; };
confPkg =
let version = pkgs.fontconfig.configVersion;
in pkgs.runCommand "fontconfig-conf" {} ''
mkdir -p $out/etc/fonts/{,${version}/}conf.d
ln -s ${fontsConf} $out/etc/fonts/fonts.conf
ln -s ${pkgs.fontconfig.out}/etc/fonts/fonts.conf $out/etc/fonts/${version}/fonts.conf
ln -s ${pkgs.fontconfig.out}/etc/fonts/conf.d/* $out/etc/fonts/${version}/conf.d/
ln -s ${renderConf} $out/etc/fonts/conf.d/10-nixos-rendering.conf
ln -s ${genericAliasConf} $out/etc/fonts/conf.d/60-nixos-generic-alias.conf
ln -s ${cacheConf} $out/etc/fonts/${version}/conf.d/00-nixos.conf
ln -s ${renderConf} $out/etc/fonts/${version}/conf.d/10-nixos-rendering.conf
ln -s ${genericAliasConf} $out/etc/fonts/${version}/conf.d/30-nixos-generic-alias.conf
${optionalString cfg.includeUserConf
"ln -s ${userConf} $out/etc/fonts/${version}/conf.d/99-user.conf"}
'';
in
{
options = {
@ -136,15 +21,6 @@ in
'';
};
confPkgs = mkOption {
internal = true;
type = with types; listOf path;
default = [ ];
description = ''
Fontconfig configuration packages.
'';
};
antialias = mkOption {
type = types.bool;
default = true;
@ -267,17 +143,135 @@ in
};
config = mkIf cfg.enable {
fonts.fontconfig.confPkgs = [ confPkg ];
config =
let fontconfig = config.fonts.fontconfig;
fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>";
renderConf = ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
environment.etc.fonts.source =
let fontConf = pkgs.symlinkJoin {
name = "fontconfig-etc";
paths = cfg.confPkgs;
};
in "${fontConf}/etc/fonts/";
<!-- Default rendering settings -->
<match target="font">
<edit mode="assign" name="hinting">
${fcBool fontconfig.hinting.enable}
</edit>
<edit mode="assign" name="autohint">
${fcBool fontconfig.hinting.autohint}
</edit>
<edit mode="assign" name="hintstyle">
<const>hint${fontconfig.hinting.style}</const>
</edit>
<edit mode="assign" name="antialias">
${fcBool fontconfig.antialias}
</edit>
<edit mode="assign" name="rgba">
<const>${fontconfig.subpixel.rgba}</const>
</edit>
<edit mode="assign" name="lcdfilter">
<const>lcd${fontconfig.subpixel.lcdfilter}</const>
</edit>
</match>
environment.systemPackages = [ pkgs.fontconfig ];
};
${optionalString (fontconfig.dpi != 0) ''
<match target="pattern">
<edit name="dpi" mode="assign">
<double>${toString fontconfig.dpi}</double>
</edit>
</match>
''}
</fontconfig>
'';
genericAliasConf = ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Default fonts -->
${optionalString (fontconfig.defaultFonts.sansSerif != []) ''
<alias>
<family>sans-serif</family>
<prefer>
${concatStringsSep "\n"
(map (font: "<family>${font}</family>")
fontconfig.defaultFonts.sansSerif)}
</prefer>
</alias>
''}
${optionalString (fontconfig.defaultFonts.serif != []) ''
<alias>
<family>serif</family>
<prefer>
${concatStringsSep "\n"
(map (font: "<family>${font}</family>")
fontconfig.defaultFonts.serif)}
</prefer>
</alias>
''}
${optionalString (fontconfig.defaultFonts.monospace != []) ''
<alias>
<family>monospace</family>
<prefer>
${concatStringsSep "\n"
(map (font: "<family>${font}</family>")
fontconfig.defaultFonts.monospace)}
</prefer>
</alias>
''}
</fontconfig>
'';
in mkIf fontconfig.enable {
# Fontconfig 2.10 backward compatibility
# Bring in the default (upstream) fontconfig configuration, only for fontconfig 2.10
environment.etc."fonts/fonts.conf".source =
pkgs.makeFontsConf { fontconfig = pkgs.fontconfig_210; fontDirectories = config.fonts.fonts; };
environment.etc."fonts/conf.d/10-nixos-rendering.conf".text = renderConf;
environment.etc."fonts/conf.d/60-nixos-generic-alias.conf".text = genericAliasConf;
# Versioned fontconfig > 2.10. Take shared fonts.conf from fontconfig.
# Otherwise specify only font directories.
environment.etc."fonts/${pkgs.fontconfig.configVersion}/fonts.conf".source =
"${pkgs.fontconfig.out}/etc/fonts/fonts.conf";
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/00-nixos.conf".text =
let
cache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
in ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Font directories -->
${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
<!-- Pre-generated font caches -->
<cachedir>${cache pkgs.fontconfig}</cachedir>
${optionalString (pkgs.stdenv.isx86_64 && config.fonts.fontconfig.cache32Bit) ''
<cachedir>${cache pkgs.pkgsi686Linux.fontconfig}</cachedir>
''}
</fontconfig>
'';
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/10-nixos-rendering.conf".text = renderConf;
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/60-nixos-generic-alias.conf".text = genericAliasConf;
environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/99-user.conf" = {
enable = fontconfig.includeUserConf;
text = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
</fontconfig>
'';
};
environment.systemPackages = [ pkgs.fontconfig ];
};
}

View File

@ -161,6 +161,7 @@ in {
ExecStart = "${getBin cfg.package}/bin/pulseaudio --daemonize=no";
Restart = "on-failure";
};
environment = { DISPLAY = ":${toString config.services.xserver.display}"; };
};
sockets.pulseaudio = {

View File

@ -249,6 +249,7 @@
./services/misc/nix-ssh-serve.nix
./services/misc/nzbget.nix
./services/misc/octoprint.nix
./services/misc/packagekit.nix
./services/misc/parsoid.nix
./services/misc/phd.nix
./services/misc/plex.nix
@ -258,6 +259,7 @@
./services/misc/ripple-data-api.nix
./services/misc/rogue.nix
./services/misc/siproxd.nix
./services/misc/sonarr.nix
./services/misc/spice-vdagentd.nix
./services/misc/subsonic.nix
./services/misc/sundtek.nix
@ -474,6 +476,7 @@
./services/web-servers/winstone.nix
./services/web-servers/zope2.nix
./services/x11/colord.nix
./services/x11/compton.nix
./services/x11/unclutter.nix
./services/x11/desktop-managers/default.nix
./services/x11/display-managers/auto.nix

View File

@ -13,12 +13,16 @@ let
|| elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ])
&& fs.fsType == "zfs")
(attrValues config.fileSystems) != [];
# Ascertain whether NixOS container support is required
containerSupportRequired =
config.boot.enableContainers && config.containers != {};
in
{
options.security.grsecurity = {
enable = mkEnableOption "Grsecurity/PaX";
enable = mkEnableOption "grsecurity/PaX";
lockTunables = mkOption {
type = types.bool;
@ -27,9 +31,9 @@ in
description = ''
Whether to automatically lock grsecurity tunables
(<option>boot.kernel.sysctl."kernel.grsecurity.*"</option>). Disable
this to allow configuration of grsecurity features while the system is
running. The lock can be manually engaged by activating the
<literal>grsec-lock</literal> service unit.
this to allow runtime configuration of grsecurity features. Activate
the <literal>grsec-lock</literal> service unit to prevent further
configuration until the next reboot.
'';
};
@ -48,10 +52,6 @@ in
(isYES "GRKERNSEC_SYSCTL_DISTRO")
];
# Crashing on an overflow in kernel land is user unfriendly and may prevent
# the system from booting, which is too severe for our use case.
boot.kernelParams = [ "pax_size_overflow_report_only" ];
# Install PaX related utillities into the system profile. Eventually, we
# also want to include gradm here.
environment.systemPackages = with pkgs; [ paxctl pax-utils ];
@ -59,7 +59,7 @@ in
# Install rules for the grsec device node
services.udev.packages = [ pkgs.gradm ];
# This service unit is responsible for locking the Grsecurity tunables. The
# This service unit is responsible for locking the grsecurity tunables. The
# unit is always defined, but only activated on bootup if lockTunables is
# toggled. When lockTunables is toggled, failure to activate the unit will
# enter emergency mode. The intent is to make it difficult to silently
@ -105,7 +105,7 @@ in
"kernel.grsecurity.chroot_deny_chroot" = mkForce 0;
"kernel.grsecurity.chroot_deny_mount" = mkForce 0;
"kernel.grsecurity.chroot_deny_pivot" = mkForce 0;
} // optionalAttrs config.boot.enableContainers {
} // optionalAttrs containerSupportRequired {
# chroot(2) restrictions that conflict with NixOS lightweight containers
"kernel.grsecurity.chroot_deny_chmod" = mkForce 0;
"kernel.grsecurity.chroot_deny_mount" = mkForce 0;

View File

@ -154,7 +154,7 @@ in {
'';
script = ''
${pkgs.jdk}/bin/java -jar ${pkgs.jenkins}/lib/jenkins.war --httpListenAddress=${cfg.listenAddress} \
${pkgs.jdk}/bin/java -jar ${pkgs.jenkins}/webapps/jenkins.war --httpListenAddress=${cfg.listenAddress} \
--httpPort=${toString cfg.port} \
--prefix=${cfg.prefix} \
${concatStringsSep " " cfg.extraOptions}

View File

@ -126,7 +126,7 @@ in
environment = {
LD_LIBRARY_PATH = ''/run/opengl-driver/lib:/run/opengl-driver-32/lib'';
DISPLAY = ":0";
DISPLAY = ":${toString config.services.xserver.display}";
GPU_MAX_ALLOC_PERCENT = "100";
GPU_USE_SYNC_OBJECTS = "1";
};

View File

@ -0,0 +1,61 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.packagekit;
backend = "nix";
packagekitConf = ''
[Daemon]
DefaultBackend=${backend}
KeepCache=false
'';
vendorConf = ''
[PackagesNotFound]
DefaultUrl=https://github.com/NixOS/nixpkgs
CodecUrl=https://github.com/NixOS/nixpkgs
HardwareUrl=https://github.com/NixOS/nixpkgs
FontUrl=https://github.com/NixOS/nixpkgs
MimeUrl=https://github.com/NixOS/nixpkgs
'';
in
{
options = {
services.packagekit = {
enable = mkEnableOption
''
PackageKit provides a cross-platform D-Bus abstraction layer for
installing software. Software utilizing PackageKit can install
software regardless of the package manager.
'';
};
};
config = mkIf cfg.enable {
services.dbus.packages = [ pkgs.packagekit ];
systemd.services.packagekit = {
description = "PackageKit Daemon";
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${pkgs.packagekit}/libexec/packagekitd";
serviceConfig.User = "root";
serviceConfig.BusName = "org.freedesktop.PackageKit";
serviceConfig.Type = "dbus";
};
environment.etc."PackageKit/PackageKit.conf".text = packagekitConf;
environment.etc."PackageKit/Vendor.conf".text = vendorConf;
};
}

View File

@ -0,0 +1,44 @@
{ config, pkgs, lib, mono, ... }:
with lib;
let
cfg = config.services.sonarr;
in
{
options = {
services.sonarr = {
enable = mkEnableOption "Sonarr";
};
};
config = mkIf cfg.enable {
systemd.services.sonarr = {
description = "Sonarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
test -d /var/lib/sonarr/ || {
echo "Creating sonarr data directory in /var/lib/sonarr/"
mkdir -p /var/lib/sonarr/
}
chown -R sonarr /var/lib/sonarr/
chmod 0700 /var/lib/sonarr/
'';
serviceConfig = {
Type = "simple";
User = "sonarr";
Group = "nogroup";
PermissionsStartOnly = "true";
ExecStart = "${pkgs.sonarr}/bin/NzbDrone --no-browser";
Restart = "on-failure";
};
};
users.extraUsers.sonarr = {
home = "/var/lib/sonarr";
};
};
}

View File

@ -9,6 +9,7 @@ let
envOptions = {
PATHS_DATA = cfg.dataDir;
PATHS_PLUGINS = "${cfg.dataDir}/plugins";
PATHS_LOGS = "${cfg.dataDir}/log";
SERVER_PROTOCOL = cfg.protocol;
@ -37,6 +38,8 @@ let
USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole;
AUTH_ANONYMOUS_ENABLED = b2s cfg.auth.anonymous.enable;
AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name;
AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
ANALYTICS_REPORTING_ENABLED = b2s cfg.analytics.reporting.enable;
} // cfg.extraOptions;
@ -196,6 +199,17 @@ in {
default = false;
type = types.bool;
};
org_name = mkOption {
description = "Which organization to allow anonymous access to";
default = "Main Org.";
type = types.str;
};
org_role = mkOption {
description = "Which role anonymous users have in the organization";
default = "Viewer";
type = types.str;
};
};
analytics.reporting = {
@ -222,6 +236,8 @@ in {
"Grafana passwords will be stored as plaintext in the Nix store!"
];
environment.systemPackages = [ cfg.package ];
systemd.services.grafana = {
description = "Grafana Service Daemon";
wantedBy = ["multi-user.target"];
@ -234,6 +250,7 @@ in {
};
preStart = ''
ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir}
ln -fs ${cfg.package}/share/grafana/vendor ${cfg.dataDir}
'';
};

View File

@ -0,0 +1,80 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.sysstat;
in {
options = {
services.sysstat = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable sar system activity collection.
'';
};
collect-frequency = mkOption {
default = "*:00/10";
description = ''
OnCalendar specification for sysstat-collect
'';
};
collect-args = mkOption {
default = "1 1";
description = ''
Arguments to pass sa1 when collecting statistics
'';
};
};
};
config = mkIf cfg.enable {
systemd.services.sysstat = {
description = "Resets System Activity Logs";
wantedBy = [ "multi-user.target" ];
preStart = "test -d /var/log/sa || mkdir -p /var/log/sa";
serviceConfig = {
User = "root";
RemainAfterExit = true;
Type = "oneshot";
ExecStart = "${pkgs.sysstat}/lib/sa/sa1 --boot";
};
};
systemd.services.sysstat-collect = {
description = "system activity accounting tool";
unitConfig.Documentation = "man:sa1(8)";
serviceConfig = {
Type = "oneshot";
User = "root";
ExecStart = "${pkgs.sysstat}/lib/sa/sa1 ${cfg.collect-args}";
};
};
systemd.timers.sysstat-collect = {
description = "Run system activity accounting tool on a regular basis";
wantedBy = [ "timers.target" ];
timerConfig.OnCalendar = cfg.collect-frequency;
};
systemd.services.sysstat-summary = {
description = "Generate a daily summary of process accounting";
unitConfig.Documentation = "man:sa2(8)";
serviceConfig = {
Type = "oneshot";
User = "root";
ExecStart = "${pkgs.sysstat}/lib/sa/sa2 -A";
};
};
systemd.timers.sysstat-summary = {
description = "Generate summary of yesterday's process accounting";
wantedBy = [ "timers.target" ];
timerConfig.OnCalendar = "00:07:00";
};
};
}

View File

@ -0,0 +1,225 @@
{ config, lib, pkgs, ... }:
with lib;
with builtins;
let
cfg = config.services.compton;
configFile = pkgs.writeText "compton.conf"
(optionalString cfg.fade ''
# fading
fading = true;
fade-delta = ${toString cfg.fadeDelta};
fade-in-step = ${elemAt cfg.fadeSteps 0};
fade-out-step = ${elemAt cfg.fadeSteps 1};
fade-exclude = ${toJSON cfg.fadeExclude};
'' +
optionalString cfg.shadow ''
# shadows
shadow = true;
shadow-offset-x = ${toString (elemAt cfg.shadowOffsets 0)};
shadow-offset-y = ${toString (elemAt cfg.shadowOffsets 1)};
shadow-opacity = ${cfg.shadowOpacity};
shadow-exclude = ${toJSON cfg.shadowExclude};
'' + ''
# opacity
active-opacity = ${cfg.activeOpacity};
inactive-opacity = ${cfg.inactiveOpacity};
menu-opacity = ${cfg.menuOpacity};
# other options
backend = ${toJSON cfg.backend};
vsync = ${toJSON cfg.vSync};
refresh-rate = ${toString cfg.refreshRate};
'' + cfg.extraOptions);
in {
options.services.compton = {
enable = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Whether of not to enable Compton as the X.org composite manager.
'';
};
fade = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Fade windows in and out.
'';
};
fadeDelta = mkOption {
type = types.int;
default = 10;
example = 5;
description = ''
Time between fade animation step (in ms).
'';
};
fadeSteps = mkOption {
type = types.listOf types.str;
default = [ "0.028" "0.03" ];
example = [ "0.04" "0.04" ];
description = ''
Opacity change between fade steps (in and out).
'';
};
fadeExclude = mkOption {
type = types.listOf types.str;
default = [];
example = [
"window_type *= 'menu'"
"name ~= 'Firefox$'"
"focused = 1"
];
description = ''
List of condition of windows that should have no shadow.
See <literal>compton(1)</literal> man page for more examples.
'';
};
shadow = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Draw window shadows.
'';
};
shadowOffsets = mkOption {
type = types.listOf types.int;
default = [ (-15) (-15) ];
example = [ (-10) (-15) ];
description = ''
Left and right offset for shadows (in pixels).
'';
};
shadowOpacity = mkOption {
type = types.str;
default = "0.75";
example = "0.8";
description = ''
Window shadows opacity (number in range 0 - 1).
'';
};
shadowExclude = mkOption {
type = types.listOf types.str;
default = [];
example = [
"window_type *= 'menu'"
"name ~= 'Firefox$'"
"focused = 1"
];
description = ''
List of condition of windows that should have no shadow.
See <literal>compton(1)</literal> man page for more examples.
'';
};
activeOpacity = mkOption {
type = types.str;
default = "1.0";
example = "0.8";
description = ''
Opacity of active windows.
'';
};
inactiveOpacity = mkOption {
type = types.str;
default = "1.0";
example = "0.8";
description = ''
Opacity of inactive windows.
'';
};
menuOpacity = mkOption {
type = types.str;
default = "1.0";
example = "0.8";
description = ''
Opacity of dropdown and popup menu.
'';
};
backend = mkOption {
type = types.str;
default = "glx";
description = ''
Backend to use: <literal>glx</literal> or <literal>xrender</literal>.
'';
};
vSync = mkOption {
type = types.str;
default = "none";
example = "opengl-swc";
description = ''
Enable vertical synchronization using the specified method.
See <literal>compton(1)</literal> man page available methods.
'';
};
refreshRate = mkOption {
type = types.int;
default = 0;
example = 60;
description = ''
Screen refresh rate (0 = automatically detect).
'';
};
package = mkOption {
type = types.package;
default = pkgs.compton;
example = literalExample "pkgs.compton";
description = ''
Compton derivation to use.
'';
};
extraOptions = mkOption {
type = types.str;
default = "";
example = ''
unredir-if-possible = true;
dbe = true;
'';
description = ''
Additional Compton configuration.
'';
};
};
config = mkIf cfg.enable {
systemd.user.services.compton = {
description = "Compton composite manager";
wantedBy = [ "default.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/compton --config ${configFile}";
RestartSec = 3;
Restart = "always";
};
environment.DISPLAY = ":0";
};
environment.systemPackages = [ cfg.package ];
};
}

View File

@ -121,6 +121,7 @@ in {
services.upower.enable = config.powerManagement.enable;
services.dbus.packages = mkIf config.services.printing.enable [ pkgs.system-config-printer ];
services.colord.enable = mkDefault true;
services.packagekit.enable = mkDefault true;
hardware.bluetooth.enable = mkDefault true;
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center

View File

@ -50,13 +50,13 @@ in
security.setuidOwners = [
{
program = "kcheckpass";
source = "${kde5.plasma-workspace}/lib/libexec/kcheckpass";
source = "${kde5.plasma-workspace.out}/lib/libexec/kcheckpass";
owner = "root";
setuid = true;
}
{
program = "start_kdeinit_wrapper";
source = "${kde5.plasma-workspace}/lib/libexec/kf5/start_kdeinit_wrapper";
program = "start_kdeinit";
source = "${kde5.kinit.out}/lib/libexec/kf5/start_kdeinit";
owner = "root";
setuid = true;
}
@ -65,10 +65,50 @@ in
environment.systemPackages =
[
kde5.frameworkintegration
kde5.kactivities
kde5.kauth
kde5.kcmutils
kde5.kconfig
kde5.kconfigwidgets
kde5.kcoreaddons
kde5.kdbusaddons
kde5.kdeclarative
kde5.kded
kde5.kdesu
kde5.kdnssd
kde5.kemoticons
kde5.kfilemetadata
kde5.kglobalaccel
kde5.kguiaddons
kde5.kiconthemes
kde5.kidletime
kde5.kimageformats
kde5.kinit
kde5.kio
kde5.kjobwidgets
kde5.knewstuff
kde5.knotifications
kde5.knotifyconfig
kde5.kpackage
kde5.kparts
kde5.kpeople
kde5.krunner
kde5.kservice
kde5.ktextwidgets
kde5.kwallet
kde5.kwayland
kde5.kwidgetsaddons
kde5.kxmlgui
kde5.kxmlrpcclient
kde5.plasma-framework
kde5.solid
kde5.sonnet
kde5.threadweaver
kde5.breeze
kde5.kactivitymanagerd
kde5.kde-cli-tools
kde5.kdecoration
kde5.kdeplasma-addons
kde5.kgamma5
kde5.khelpcenter
@ -76,12 +116,16 @@ in
kde5.kinfocenter
kde5.kmenuedit
kde5.kscreen
kde5.kscreenlocker
kde5.ksysguard
kde5.kwayland
kde5.kwin
kde5.kwrited
kde5.libkscreen
kde5.libksysguard
kde5.milou
kde5.oxygen
kde5.plasma-integration
kde5.polkit-kde-agent
kde5.systemsettings

View File

@ -34,7 +34,7 @@ let
${optionalString cfg.displayManager.logToJournal ''
if [ -z "$_DID_SYSTEMD_CAT" ]; then
_DID_SYSTEMD_CAT=1 exec ${config.systemd.package}/bin/systemd-cat -t xsession -- "$0" "$1"
_DID_SYSTEMD_CAT=1 exec ${config.systemd.package}/bin/systemd-cat -t xsession -- "$0" "$@"
fi
''}

View File

@ -4,7 +4,8 @@ with lib;
let
dmcfg = config.services.xserver.displayManager;
xcfg = config.services.xserver;
dmcfg = xcfg.displayManager;
xEnv = config.systemd.services."display-manager".environment;
cfg = dmcfg.lightdm;
@ -36,16 +37,31 @@ let
lightdmConf = writeText "lightdm.conf"
''
[LightDM]
greeter-user = ${config.users.extraUsers.lightdm.name}
greeters-directory = ${cfg.greeter.package}
${optionalString cfg.greeter.enable ''
greeter-user = ${config.users.extraUsers.lightdm.name}
greeters-directory = ${cfg.greeter.package}
''}
sessions-directory = ${dmcfg.session.desktops}
[Seat:*]
xserver-command = ${xserverWrapper}
session-wrapper = ${dmcfg.session.script}
greeter-session = ${cfg.greeter.name}
${optionalString cfg.greeter.enable ''
greeter-session = ${cfg.greeter.name}
''}
${optionalString cfg.autoLogin.enable ''
autologin-user = ${cfg.autoLogin.user}
autologin-user-timeout = ${toString cfg.autoLogin.timeout}
autologin-session = ${defaultSessionName}
''}
${cfg.extraSeatDefaults}
'';
defaultSessionName =
let
dm = xcfg.desktopManager.default;
wm = xcfg.windowManager.default;
in dm + optionalString (wm != "none") (" + " + wm);
in
{
# Note: the order in which lightdm greeter modules are imported
@ -68,6 +84,14 @@ in
};
greeter = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
If set to false, run lightdm in greeterless mode. This only works if autologin
is enabled and autoLogin.timeout is zero.
'';
};
package = mkOption {
type = types.package;
description = ''
@ -102,10 +126,67 @@ in
description = "Extra lines to append to SeatDefaults section.";
};
autoLogin = mkOption {
default = {};
description = ''
Configuration for automatic login.
'';
type = types.submodule {
options = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Automatically log in as the specified <option>autoLogin.user</option>.
'';
};
user = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
User to be used for the automatic login.
'';
};
timeout = mkOption {
type = types.int;
default = 0;
description = ''
Show the greeter for this many seconds before automatic login occurs.
'';
};
};
};
};
};
};
config = mkIf cfg.enable {
assertions = [
{ assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
message = ''
LightDM auto-login requires services.xserver.displayManager.lightdm.autoLogin.user to be set
'';
}
{ assertion = cfg.autoLogin.enable -> elem defaultSessionName dmcfg.session.names;
message = ''
LightDM auto-login requires that services.xserver.desktopManager.default and
services.xserver.windowMananger.default are set to valid values. The current
default session: ${defaultSessionName} is not valid.
'';
}
{ assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0);
message = ''
LightDM can only run without greeter if automatic login is enabled and the timeout for it
is set to zero.
'';
}
];
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = {
@ -144,6 +225,17 @@ in
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
'';
};
security.pam.services.lightdm-autologin.text = ''
auth requisite pam_nologin.so
auth required pam_succeed_if.so uid >= 1000 quiet
auth required pam_permit.so
account include lightdm
password include lightdm
session include lightdm
'';
users.extraUsers.lightdm = {
createHome = true;

View File

@ -27,6 +27,7 @@ let
${cfg.stopScript}
'';
cfgFile = pkgs.writeText "sddm.conf" ''
[General]
HaltCommand=${pkgs.systemd}/bin/systemctl poweroff
@ -154,7 +155,7 @@ in
type = types.bool;
default = false;
description = ''
Automatically log in as the sepecified <option>autoLogin.user</option>.
Automatically log in as <option>autoLogin.user</option>.
'';
};
@ -162,7 +163,7 @@ in
type = types.nullOr types.str;
default = null;
description = ''
User to be used for the autologin.
User to be used for the automatic login.
'';
};
@ -170,8 +171,8 @@ in
type = types.bool;
default = false;
description = ''
If true automatic login will kick in again on session exit, otherwise it
will work only the first time.
If true automatic login will kick in again on session exit (logout), otherwise it
will only log in automatically when the display-manager is started.
'';
};
};

View File

@ -198,6 +198,8 @@ in {
environment.systemPackages = [ pkgs.xorg.xf86inputlibinput ];
services.udev.packages = [ pkgs.libinput ];
services.xserver.config =
''
# Automatically enable the libinput driver for all touchpads.

View File

@ -108,7 +108,7 @@ in {
RestartSec = 3;
Restart = "always";
};
environment = { DISPLAY = ":0"; };
environment = { DISPLAY = ":${toString config.services.xserver.display}"; };
};
};

View File

@ -39,12 +39,6 @@ in {
default = 1;
};
displayName = mkOption {
description = "Name of the X11 display";
type = types.str;
default = ":0";
};
excluded = mkOption {
description = "Names of windows where unclutter should not apply";
type = types.listOf types.str;
@ -67,7 +61,7 @@ in {
serviceConfig.ExecStart = ''
${cfg.package}/bin/unclutter \
-idle ${toString cfg.timeout} \
-display ${cfg.displayName} \
-display :${toString config.services.xserver.display} \
-jitter ${toString (cfg.threeshold - 1)} \
${optionalString cfg.keystroke "-keystroke"} \
${concatMapStrings (x: " -"+x) cfg.extraOptions} \

View File

@ -19,6 +19,7 @@ in
./jwm.nix
./metacity.nix
./openbox.nix
./pekwm.nix
./notion.nix
./ratpoison.nix
./sawfish.nix

View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.pekwm;
in
{
###### interface
options = {
services.xserver.windowManager.pekwm.enable = mkEnableOption "pekwm";
};
###### implementation
config = mkIf cfg.enable {
services.xserver.windowManager.session = singleton {
name = "pekwm";
start = ''
${pkgs.pekwm}/bin/pekwm &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.pekwm ];
};
}

View File

@ -36,7 +36,7 @@ let
${optionalString (header != null) "--header=${header}"} \
${optionalString (keyFile != null) "--key-file=${keyFile} ${optionalString (keyFileSize != null) "--keyfile-size=${toString keyFileSize}"}"} \
> /.luksopen_args
get_password "Enter LUKS Passphrase" cryptsetup-askpass
cryptsetup-askpass
rm /.luksopen_args
}
@ -78,7 +78,9 @@ let
for try in $(seq 3); do
${optionalString yubikey.twoFactor ''
k_user="$(get_password "Enter two-factor passphrase" cat)"
echo -n "Enter two-factor passphrase: "
read -s k_user
echo
''}
if [ ! -z "$k_user" ]; then
@ -461,26 +463,6 @@ in
''}
'';
boot.initrd.preDeviceCommands = ''
get_password() {
local ret
local reply
local tty_stat
tty_stat="$(stty -g)"
stty -echo
for i in `seq 1 3`; do
echo -n "$1: "
read reply
echo "$reply" | "$2"
if [ "$?" = "0" ]; then
break
fi
done
stty "$tty_stat"
}
'';
boot.initrd.preLVMCommands = concatStrings (mapAttrsToList openCommand preLVM);
boot.initrd.postDeviceCommands = concatStrings (mapAttrsToList openCommand postLVM);

View File

@ -112,6 +112,7 @@ in
sed -i '/loginctl/d' $out/71-seat.rules
'';
# We use `mkAfter` to ensure that LUKS password prompt would be shown earlier than the splash screen.
boot.initrd.preLVMCommands = mkAfter ''
mkdir -p /etc/plymouth
ln -s ${configFile} /etc/plymouth/plymouthd.conf
@ -121,7 +122,16 @@ in
ln -s $extraUtils/lib/plymouth /etc/plymouth/plugins
plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
plymouth --show-splash
plymouth show-splash
'';
boot.initrd.postMountCommands = ''
plymouth update-root-fs --new-root-dir="$targetRoot"
'';
# `mkBefore` to ensure that any custom prompts would be visible.
boot.initrd.preFailCommands = mkBefore ''
plymouth quit --wait
'';
};

View File

@ -14,8 +14,7 @@ export LVM_SUPPRESS_FD_WARNINGS=true
fail() {
if [ -n "$panicOnFail" ]; then exit 1; fi
# If we have a splash screen started, quit it.
command -v plymouth >/dev/null 2>&1 && plymouth quit
@preFailCommands@
# If starting stage 2 failed, allow the user to repair the problem
# in an interactive shell.

View File

@ -208,7 +208,7 @@ let
inherit (config.boot) resumeDevice devSize runSize;
inherit (config.boot.initrd) checkJournalingFS
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands kernelModules;
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
(filter (sd: (sd ? label || hasPrefix "/dev/" sd.device) && !sd.randomEncryption) config.swapDevices);
@ -336,6 +336,14 @@ in
'';
};
boot.initrd.preFailCommands = mkOption {
default = "";
type = types.lines;
description = ''
Shell commands to be executed before the failure prompt is shown.
'';
};
boot.initrd.extraUtilsCommands = mkOption {
internal = true;
default = "";

View File

@ -176,7 +176,7 @@ rec {
${optionalString (type == "system") ''
# Stupid misc. symlinks.
ln -s ${cfg.defaultUnit} $out/default.target
ln -s ${cfg.ctrlAltDelUnit} $out/ctrl-alt-del.target
ln -s rescue.target $out/kbrequest.target
mkdir -p $out/getty.target.wants/

View File

@ -120,7 +120,6 @@ let
"systemd-poweroff.service"
"halt.target"
"systemd-halt.service"
"ctrl-alt-del.target"
"shutdown.target"
"umount.target"
"final.target"
@ -162,7 +161,6 @@ let
"systemd-hostnamed.service"
"systemd-binfmt.service"
]
++ cfg.additionalUpstreamSystemUnits;
upstreamSystemWants =
@ -485,6 +483,15 @@ in
description = "Default unit started when the system boots.";
};
systemd.ctrlAltDelUnit = mkOption {
default = "reboot.target";
type = types.str;
example = "poweroff.target";
description = ''
Target that should be started when Ctrl-Alt-Delete is pressed.
'';
};
systemd.globalEnvironment = mkOption {
type = types.attrs;
default = {};

View File

@ -270,7 +270,23 @@ in
("$zpool_cmd" list "${pool}" >/dev/null) || "$zpool_cmd" import -d ${cfgZfs.devNodes} -N ${optionalString cfgZfs.forceImportAll "-f"} "${pool}"
'';
};
in listToAttrs (map createImportService dataPools) // {
# This forces a sync of any ZFS pools prior to poweroff, even if they're set
# to sync=disabled.
createSyncService = pool:
nameValuePair "zfs-sync-${pool}" {
description = "Sync ZFS pool \"${pool}\"";
wantedBy = [ "shutdown.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
${zfsUserPkg}/sbin/zfs set nixos:shutdown-time="$(date)" "${pool}"
'';
};
in listToAttrs (map createImportService dataPools ++ map createSyncService allPools) // {
"zfs-mount" = { after = [ "systemd-modules-load.service" ]; };
"zfs-share" = { after = [ "systemd-modules-load.service" ]; };
"zed" = { after = [ "systemd-modules-load.service" ]; };

View File

@ -4,22 +4,6 @@ with lib;
let
nixos-container = pkgs.substituteAll {
name = "nixos-container";
dir = "bin";
isExecutable = true;
src = ./nixos-container.pl;
perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
su = "${pkgs.shadow.su}/bin/su";
inherit (pkgs) utillinux;
postInstall = ''
t=$out/etc/bash_completion.d
mkdir -p $t
cp ${./nixos-container-completion.sh} $t/nixos-container
'';
};
# The container's init script, a small wrapper around the regular
# NixOS stage-2 init script.
containerInit = pkgs.writeScript "container-init"
@ -410,7 +394,7 @@ in
ExecReload = pkgs.writeScript "reload-container"
''
#! ${pkgs.stdenv.shell} -e
${nixos-container}/bin/nixos-container run "$INSTANCE" -- \
${pkgs.nixos-container}/bin/nixos-container run "$INSTANCE" -- \
bash --login -c "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/bin/switch-to-configuration test"
'';
@ -498,6 +482,6 @@ in
networking.dhcpcd.denyInterfaces = [ "ve-*" ];
environment.systemPackages = [ nixos-container ];
environment.systemPackages = [ pkgs.nixos-container ];
});
}

View File

@ -62,7 +62,9 @@ let
idx=2
extraDisks=""
${flip concatMapStrings cfg.emptyDiskImages (size: ''
${pkgs.qemu_kvm}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
if ! test -e "empty$idx.qcow2"; then
${pkgs.qemu_kvm}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
fi
extraDisks="$extraDisks -drive index=$idx,file=$(pwd)/empty$idx.qcow2,if=${cfg.qemu.diskInterface},werror=report"
idx=$((idx + 1))
'')}

View File

@ -231,6 +231,7 @@ in rec {
tests.gnome3 = callTest tests/gnome3.nix {};
tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {};
tests.grsecurity = callTest tests/grsecurity.nix {};
tests.hibernate = callTest tests/hibernate.nix {};
tests.i3wm = callTest tests/i3wm.nix {};
tests.installer = callSubTests tests/installer.nix {};
tests.influxdb = callTest tests/influxdb.nix {};

42
nixos/tests/hibernate.nix Normal file
View File

@ -0,0 +1,42 @@
# Test whether hibernation from partition works.
import ./make-test.nix (pkgs: {
name = "hibernate";
nodes = {
machine = { config, lib, pkgs, ... }: with lib; {
virtualisation.emptyDiskImages = [ config.virtualisation.memorySize ];
systemd.services.backdoor.conflicts = [ "sleep.target" ];
swapDevices = mkOverride 0 [ { device = "/dev/vdb"; } ];
networking.firewall.allowedTCPPorts = [ 4444 ];
systemd.services.listener.serviceConfig.ExecStart = "${pkgs.netcat}/bin/nc -l -p 4444";
};
probe = { config, lib, pkgs, ...}: {
environment.systemPackages = [ pkgs.netcat ];
};
};
# 9P doesn't support reconnection to virtio transport after a hibernation.
# Therefore, machine just hangs on any Nix store access.
# To work around it we run a daemon which listens to a TCP connection and
# try to connect to it as a test.
testScript =
''
$machine->waitForUnit("multi-user.target");
$machine->succeed("mkswap /dev/vdb");
$machine->succeed("swapon -a");
$machine->startJob("listener");
$machine->succeed("systemctl hibernate &");
$machine->waitForShutdown;
$machine->start;
$probe->waitForUnit("network.target");
$probe->waitUntilSucceeds("echo test | nc -c machine 4444");
'';
})

View File

@ -210,6 +210,10 @@ let
pkgs.nixos-artwork
pkgs.perlPackages.XMLLibXML
pkgs.perlPackages.ListCompare
# add curl so that rather than seeing the test attempt to download
# curl's tarball, we see what it's trying to download
pkgs.curl
]
++ optional (bootLoader == "grub" && grubVersion == 1) pkgs.grub
++ optionals (bootLoader == "grub" && grubVersion == 2) [ pkgs.grub2 pkgs.grub2_efi ];

View File

@ -1,10 +1,10 @@
{ stdenv, fetchurl, cmake, fftw, gtkmm, libxcb, lv2, pkgconfig, xorg }:
stdenv.mkDerivation rec {
name = "eq10q-2-${version}";
version = "beta7.1";
name = "eq10q-${version}";
version = "2.0";
src = fetchurl {
url = "mirror://sourceforge/project/eq10q/${name}.tar.gz";
sha256 = "1jmrcx4jlx8kgsy5n4jcxa6qkjqvx7d8l2p7dsmw4hj20s39lgyi";
sha256 = "08vlfly0qqrfqiwpn5g5php680icpk97pwnwjadmj5syhgvi0i3h";
};
buildInputs = [ cmake fftw gtkmm libxcb lv2 pkgconfig xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence ];

View File

@ -1,10 +1,11 @@
{ stdenv, fetchurl, unzip, puredata }:
stdenv.mkDerivation rec {
name = "puremapping-20160130";
name = "puremapping-${version}";
version = "20160130";
src = fetchurl {
url = "http://www.chnry.net/data/puremapping-20160130-generic.zip";
url = "http://www.chnry.net/data/puremapping-${version}-generic.zip";
name = "puremapping";
sha256 = "1h7qgqd8srrxw2y1rkdw5js4k6f5vc8x6nlm2mq9mq9vjck7n1j7";
};

View File

@ -16,7 +16,6 @@ stdenv.mkDerivation rec {
for i in ${puredata}/include/pd/*; do
ln -s $i .
done
patchShebangs
./bootstrap.sh
./configure --enable-lpt=no --prefix=$out
'';

View File

@ -1,13 +1,14 @@
{ stdenv, fetchgit, boost, ladspaH, lilv, lv2, pkgconfig, serd, sord, sratom }:
{ stdenv, fetchFromGitHub, boost, ladspaH, lilv, lv2, pkgconfig, serd, sord, sratom }:
stdenv.mkDerivation rec {
name = "plugin-torture-git-${version}";
version = "2013-10-03";
name = "plugin-torture-${version}";
version = "5";
src = fetchgit {
url = "https://github.com/cth103/plugin-torture";
rev = "9ee06016982bdfbaa215cd0468cc6ada6367462a";
sha256 = "0ynzfs3z95lbw4l1w276as2a37zxp0cw6pi3lbikr0qk0r7j5j10";
src = fetchFromGitHub {
owner = "cth103";
repo = "plugin-torture";
rev = "v${version}";
sha256 = "1mlgxjsyaz86wm4k32ll2w5nghjffnsdqlm6kjv02a4dpb2bfrih";
};
buildInputs = [ boost ladspaH lilv lv2 pkgconfig serd sord sratom ];
@ -15,7 +16,7 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin
cp plugin-torture $out/bin/
cp README $out/bin/
cp find-safe-plugins $out/bin/
'';
meta = with stdenv.lib; {

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "puredata-${version}";
version = "0.45-4";
version = "0.47-1";
src = fetchurl {
url = "mirror://sourceforge/pure-data/pd-${version}.src.tar.gz";
sha256 = "1ls2ap5yi2zxvmr247621g4jx0hhfds4j5704a050bn2n3l0va2p";
url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz";
sha256 = "0k5s949kqd7yw97h3m8z81bjz32bis9m4ih8df1z0ymipnafca67";
};
patchPhase = ''

View File

@ -5,6 +5,7 @@
, autoconf, automake
, withX ? !stdenv.isDarwin
, withGTK3 ? false, gtk3 ? null
, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null
, withGTK2 ? true, gtk2
}:
@ -14,6 +15,7 @@ assert withGTK2 -> withX || stdenv.isDarwin;
assert withGTK3 -> withX || stdenv.isDarwin;
assert withGTK2 -> !withGTK3 && gtk2 != null;
assert withGTK3 -> !withGTK2 && gtk3 != null;
assert withXwidgets -> withGTK3 && webkitgtk24x != null;
let
toolkit =
@ -49,19 +51,21 @@ stdenv.mkDerivation rec {
imagemagick gconf ]
++ stdenv.lib.optional (withX && withGTK2) gtk2
++ stdenv.lib.optional (withX && withGTK3) gtk3
++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo;
++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo
++ stdenv.lib.optionals withXwidgets [webkitgtk24x wrapGAppsHook glib_networking];
propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
hardeningDisable = [ "format" ];
configureFlags =
if stdenv.isDarwin
(if stdenv.isDarwin
then [ "--with-ns" "--disable-ns-self-contained" ]
else if withX
then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
"--with-gif=no" "--with-tiff=no" ];
"--with-gif=no" "--with-tiff=no" ])
++ stdenv.lib.optional withXwidgets "--with-xwidgets";
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
"-I${cairo.dev}/include/cairo";

View File

@ -2,5 +2,7 @@
let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name;
in
runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; } "
mkdir -p $out
ln -s ${geany}/share $out
makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome.vte}/lib
"

View File

@ -0,0 +1,38 @@
{ stdenv, fetchgit, ncurses }:
stdenv.mkDerivation rec {
name = "uemacs-${version}";
version = "2014-12-08";
src = fetchgit {
url = git://git.kernel.org/pub/scm/editors/uemacs/uemacs.git;
rev = "8841922689769960fa074fbb053cb8507f2f3ed9";
sha256 = "14yq7kpkax111cg6k7i3mnqk7sq7a65krq6qizzj7vvnm7bsj3sd";
};
postPatch = ''
substituteInPlace Makefile \
--replace "-lcurses" "-lncurses" \
--replace "CFLAGS=-O2" "CFLAGS+=" \
--replace "BINDIR=/usr/bin" "BINDIR=$out/bin" \
--replace "LIBDIR=/usr/lib" "LIBDIR=$out/share/uemacs"
substituteInPlace epath.h \
--replace "/usr/global/lib/" "$out/share/uemacs/" \
--replace "/usr/local/bin/" "$out/bin/" \
--replace "/usr/local/lib/" "$out/share/uemacs/" \
--replace "/usr/local/" "$out/bin/" \
--replace "/usr/lib/" "$out/share/uemacs/"
mkdir -p $out/bin $out/share/uemacs
'';
buildInputs = [ ncurses ];
meta = with stdenv.lib; {
homepage = https://git.kernel.org/cgit/editors/uemacs/uemacs.git;
description = "Torvalds Micro-emacs fork";
longDescription = ''
uEmacs/PK 4.0 is a full screen editor based on MicroEMACS 3.9e
'';
license = licenses.unfree;
};
}

View File

@ -1,12 +1,18 @@
{ stdenv, fetchFromGitHub, unzip, pkgconfig, makeWrapper, ncurses, libtermkey, lpeg, lua }:
{ stdenv, fetchFromGitHub, unzip, pkgconfig, makeWrapper
, ncurses, libtermkey, lpeg, lua
, acl ? null, libselinux ? null
, version ? "2016-07-15"
, rev ? "5c2cee9461ef1199f2e80ddcda699595b11fdf08"
, sha256 ? "1jmsv72hq0c2f2rnpllvd70cmxbjwfhynzwaxx24f882zlggwsnd"
}:
stdenv.mkDerivation rec {
name = "vis-nightly-${version}";
version = "2016-04-15";
inherit version;
src = fetchFromGitHub {
sha256 = "0a4gpwniy5r9dpfq51fxjxxnxavdjv8x76w9bbjnbnh8n63p3sj7";
rev = "472c559a273d3c7b0f5ee92260c5544bc3d74576";
inherit sha256;
inherit rev;
repo = "vis";
owner = "martanne";
};
@ -14,12 +20,14 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
unzip
pkgconfig
ncurses
libtermkey
lua
lpeg
unzip pkgconfig
ncurses
libtermkey
lua
lpeg
] ++ stdenv.lib.optional stdenv.isLinux [
acl
libselinux
];
LUA_CPATH="${lpeg}/lib/lua/${lua.luaversion}/?.so;";
@ -33,11 +41,10 @@ stdenv.mkDerivation rec {
--prefix VIS_PATH : "$out/share/vis"
'';
meta = {
meta = with stdenv.lib; {
description = "A vim like editor";
homepage = http://github.com/martanne/vis;
license = stdenv.lib.licenses.isc;
maintainers = [ stdenv.lib.maintainers.vrthra ];
license = licenses.isc;
maintainers = [ maintainers.vrthra ];
};
}

View File

@ -11,8 +11,8 @@ let
else throw "ImageMagick is not supported on this platform.";
cfg = {
version = "6.9.3-9";
sha256 = "0q19jgn1iv7zqrw8ibxp4z57iihrc9kyb09k2wnspcacs6vrvinf";
version = "6.9.5-2";
sha256 = "09h3rpr1jnzd7ipy5d16r2gi0bwg4hk5khwzv4cyhv1xzs8pk7pj";
patches = [];
}
# Freeze version on mingw so we don't need to port the patch too often.

View File

@ -1,15 +1,8 @@
diff --git a/config/policy.xml b/config/policy.xml
index ca3b022..b058c05 100644
--- a/config/policy.xml
+++ b/config/policy.xml
@@ -58,4 +58,10 @@
<!-- <policy domain="resource" name="time" value="3600"/> -->
<!-- <policy domain="system" name="precision" value="6"/> -->
<policy domain="cache" name="shared-secret" value="passphrase"/>
+
+ <policy domain="coder" rights="none" pattern="EPHEMERAL" />
+ <policy domain="coder" rights="none" pattern="URL" />
+ <policy domain="coder" rights="none" pattern="HTTPS" />
+ <policy domain="coder" rights="none" pattern="MVG" />
+ <policy domain="coder" rights="none" pattern="MSL" />
</policymap>
67a68,72
> <policy domain="coder" rights="none" pattern="EPHEMERAL" />
> <policy domain="coder" rights="none" pattern="URL" />
> <policy domain="coder" rights="none" pattern="HTTPS" />
> <policy domain="coder" rights="none" pattern="MVG" />
> <policy domain="coder" rights="none" pattern="MSL" />

View File

@ -5,7 +5,7 @@
stdenv.mkDerivation rec {
name = "gimp-${version}";
version = "2.8.16";
version = "2.8.18";
# This declarations for `gimp-with-plugins` wrapper,
# (used for determining $out/lib/gimp/${majorVersion}/ paths)
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
sha256 = "1dsgazia9hmab8cw3iis7s69dvqyfj5wga7ds7w2q5mms1xqbqwm";
sha256 = "0halh6sl3d2j9gahyabj6h6r3yyldcy7sfb4qrfazpkqqr3j5p9r";
};
buildInputs =

View File

@ -32,5 +32,8 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; # Commercial license is also available
maintainers = with maintainers; [ bjornfor prikhi ];
platforms = platforms.linux;
# See https://github.com/prikhi/pencil/issues/840
# ("Error: Platform version '47.0' is not compatible with minVersion >= 36.0 maxVersion <= 46.*")
broken = true;
};
}

View File

@ -1,17 +1,19 @@
{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite
, webkitgtk24x, pkgconfig, gnome3, gst_all_1, which, udev, libgudev, libraw, glib, json_glib
, webkitgtk, pkgconfig, gnome3, gst_all_1, which, udev, libgudev, libraw, glib, json_glib
, gettext, desktop_file_utils, lcms2, gdk_pixbuf, librsvg, makeWrapper
, gnome_doc_utils, hicolor_icon_theme }:
# for dependencies see http://www.yorba.org/projects/shotwell/install/
stdenv.mkDerivation rec {
version = "0.22.0";
version = "${major}.${minor}";
major = "0.23";
minor = "2";
name = "shotwell-${version}";
src = fetchurl {
url = "mirror://gnome/sources/shotwell/0.22/${name}.tar.xz";
sha256 = "0cgqaaikrb10plhf6zxbgqy32zqpiwyi9dpx3g8yr261q72r5c81";
url = "mirror://gnome/sources/shotwell/${major}/${name}.tar.xz";
sha256 = "d52caae4e3204f2f78e2eb828d955848ea6fef5c91d3ac6e9eb0b185c0490b39";
};
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include";
@ -35,7 +37,7 @@ stdenv.mkDerivation rec {
'';
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk24x
buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk
pkgconfig gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee
which udev libgudev gnome3.gexiv2 hicolor_icon_theme
libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg

View File

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

View File

@ -0,0 +1,34 @@
{ fetchurl, stdenv, ncurses, gnupg }:
let version = "0.7.4";
in stdenv.mkDerivation {
# mdp renamed to gpg-mdp because there is a mdp package already.
name = "gpg-mdp-${version}";
meta = {
homepage = https://tamentis.com/projects/mdp/;
license = [stdenv.lib.licenses.isc];
description = "Manage your passwords with GnuPG and a text editor";
};
src = fetchurl {
url = "https://tamentis.com/projects/mdp/files/mdp-${version}.tar.gz";
sha256 = "04mdnx4ccpxf9m2myy9nvpl9ma4jgzmv9bkrzv2b9affzss3r34g";
};
buildInputs = [ ncurses ];
prePatch = ''
substituteInPlace ./configure \
--replace "alias echo=/bin/echo" ""
substituteInPlace ./src/config.c \
--replace "/usr/bin/gpg" "${gnupg}/bin/gpg2" \
--replace "/usr/bin/vi" "vi"
substituteInPlace ./mdp.1 \
--replace "/usr/bin/gpg" "${gnupg}/bin/gpg2"
'';
# we add symlinks to the binary and man page with the name 'gpg-mdp', in case
# the completely unrelated program also named 'mdp' is already installed.
postFixup = ''
ln -s $out/bin/mdp $out/bin/gpg-mdp
ln -s $out/share/man/man1/mdp.1.gz $out/share/man/man1/gpg-mdp.1.gz
'';
}

View File

@ -0,0 +1,18 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "hugo-${version}";
version = "v0.16";
rev = "8b54843a0db694facbaf368af4e777d0ae5fb992";
goPackagePath = "github.com/spf13/hugo";
src = fetchFromGitHub {
inherit rev;
owner = "spf13";
repo = "hugo";
sha256 = "135mrdi8i56z9m2sihjrdfab6lrczbfgavwvfrngvi1zxnx7scmv";
};
goDeps = ./deps.json;
}

View File

@ -0,0 +1,44 @@
[
{
"include": "../../libs.json",
"packages": [
"gopkg.in/yaml.v2",
"github.com/hashicorp/hcl",
"github.com/pkg/sftp",
"golang.org/x/sys",
"github.com/hashicorp/go-multierror",
"golang.org/x/crypto",
"github.com/pkg/errors",
"github.com/kr/fs",
"github.com/kyokomi/emoji",
"github.com/bep/inflect",
"github.com/BurntSushi/toml",
"github.com/PuerkitoBio/purell",
"github.com/PuerkitoBio/urlesc",
"github.com/dchest/cssmin",
"github.com/eknkc/amber",
"github.com/gorilla/websocket",
"github.com/kardianos/osext",
"github.com/miekg/mmark",
"github.com/mitchellh/mapstructure",
"github.com/russross/blackfriday",
"github.com/shurcooL/sanitized_anchor_name",
"github.com/spf13/afero",
"github.com/spf13/cast",
"github.com/spf13/jwalterweatherman",
"github.com/spf13/cobra",
"github.com/cpuguy83/go-md2man",
"github.com/inconshreveable/mousetrap",
"github.com/spf13/pflag",
"github.com/spf13/fsync",
"github.com/spf13/viper",
"github.com/kr/pretty",
"github.com/kr/text",
"github.com/magiconair/properties",
"golang.org/x/text",
"github.com/yosssi/ace",
"github.com/spf13/nitro",
"github.com/fsnotify/fsnotify"
]
}
]

View File

@ -2,11 +2,11 @@
, desktop_file_utils, libSM, imagemagick }:
stdenv.mkDerivation rec {
version = "0.7.86";
version = "0.7.87";
name = "mediainfo-gui-${version}";
src = fetchurl {
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
sha256 = "15w6m75bk6rsxxdrdibi330ch1x0cw131gynbhmhbsppsg0v5vb5";
sha256 = "1ws4hyfcw289hax0bq8y3bbw5y321xmh0va1x4zv5rjwfzcd51pv";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
stdenv.mkDerivation rec {
version = "0.7.86";
version = "0.7.87";
name = "mediainfo-${version}";
src = fetchurl {
url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
sha256 = "15w6m75bk6rsxxdrdibi330ch1x0cw131gynbhmhbsppsg0v5vb5";
sha256 = "1ws4hyfcw289hax0bq8y3bbw5y321xmh0va1x4zv5rjwfzcd51pv";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];

View File

@ -16,6 +16,8 @@ stdenv.mkDerivation {
nativeBuildInputs = [ qmake4Hook ];
qmakeFlags = [ "multimon-ng.pro" ];
installPhase = ''
mkdir -p $out/bin
cp multimon-ng $out/bin

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, xrdb }:
{ stdenv, fetchFromGitHub, xrdb, xlsfonts }:
stdenv.mkDerivation {
name = "urxvt-font-size-2015-05-22";
@ -13,7 +13,8 @@ stdenv.mkDerivation {
installPhase = ''
substituteInPlace font-size \
--replace "xrdb -merge" "${xrdb}/bin/xrdb -merge"
--replace "xrdb -merge" "${xrdb}/bin/xrdb -merge" \
--replace "xlsfonts" "${xlsfonts}/bin/xlsfonts"
mkdir -p $out/lib/urxvt/perl
cp font-size $out/lib/urxvt/perl

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
EncodeLocale MathClipper ExtUtilsXSpp threads
MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus ImportInto XMLSAX
ExtUtilsMakeMaker OpenGL WxGLCanvas ModuleBuild
ExtUtilsMakeMaker OpenGL WxGLCanvas ModuleBuild LWP
];
desktopItem = makeDesktopItem {

View File

@ -0,0 +1,22 @@
{ stdenv, fetchurl, pythonPackages }:
pythonPackages.buildPythonApplication rec {
version = "1.3";
name = "wikicurses-${version}";
src = fetchurl {
url = "http://github.com/ids1024/wikicurses/archive/v${version}.tar.gz";
sha256 = "1yxgafk1sczg1xi2p6nhrvr3hchp7ydw98n48lp3qzwnryn1kxv8";
};
propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
meta = {
description = "A simple curses interface for MediaWiki sites such as Wikipedia";
homepage = "https://github.com/ids1024/wikicurses/";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,9 +1,9 @@
{ stdenv, fetchurl, ... } @ args:
import ./generic.nix (args // {
version = "2.3.7";
version = "2.3.8";
sha256s = {
"x86_64-linux" = "1hnw6bv60xrnc733gm1ilywc0y93k2g6bmwgnww9qk7ivbvi6pd1";
"i686-linux" = "0hj8nbq6mava15m1hxaqq371fqk0whdx5iqsbnppyci0jjnr4qv1";
"x86_64-linux" = "02n5s561cz3mprg682mrbmh3qai42dh64jgi05rqy9s6wgbn66ly";
"i686-linux" = "118qrnxc7gvm30rsz0xfx6dlxmrr0dk5ajrvszhy06ww7xvqhzji";
};
})

View File

@ -4,189 +4,189 @@
# ruby generate_sources.rb 46.0.1 > sources.nix
{
version = "48.0b1";
version = "48.0b7";
sources = [
{ locale = "ach"; arch = "linux-i686"; sha512 = "464c3b19ab7bda118d962da2699dd40482e1742887bcd9d72b8b7d211c7ab085aaf4c31fdea3c4e195af9030276118431ed7c2e6a917b354c5bf9f55cc8111a9"; }
{ locale = "ach"; arch = "linux-x86_64"; sha512 = "d9f9844fb06637ca7449bc00c54c02abf8660c42207c0671fffd53e2415df7b0fc3df782c4a2ccde807b4c2e477b0cf3a74c36acb7cce3f75e4ce267a3575e5c"; }
{ locale = "af"; arch = "linux-i686"; sha512 = "77bca1f05627ed9ace120eee7a7cd24fc354e9bf23a7709e38879241ad87c5d39a8cfcf2aed12881b6f9d6d611c334a864c20c9dee877952990c47c631c6a61b"; }
{ locale = "af"; arch = "linux-x86_64"; sha512 = "bf4d5353a46778d93627c232c404c768e643420b17d490c932848d126846e4ca3a185df671dcf72b1c1d3fe75606c212e6b0dadd2169b52c4fe73f5088e87b94"; }
{ locale = "an"; arch = "linux-i686"; sha512 = "2882258205866c93a4b808b7397ff62efd629b74b5233154190ce72ddd0be5d1eb8153d686d921ddb72049dfae0f11c3eb46128413e578c0f9f6323636a0e378"; }
{ locale = "an"; arch = "linux-x86_64"; sha512 = "543b1d66dc37e1843f370ff071adb050af16e5777bc0042c2d25579a7d99b5b1d176ea099a0b3afc19f270ad5f191fec65e544634e2bbc2223ccc6afcb1869e0"; }
{ locale = "ar"; arch = "linux-i686"; sha512 = "855fc1c71b50ba5b8354ee7ce2ea59664b40b77d007d99ea6b658873de729e22ca9018e475a669992b2e2bea9388fe0966e06f1e2b0d334df4ffbff2be147949"; }
{ locale = "ar"; arch = "linux-x86_64"; sha512 = "8ff272dd30cc66460a617dd80678b68917067b87d63d6b307f6d60e61deda092f46bca9e890d08b69a0738f4c204cd2c5896201b362df68aa9abbe7dd0fcc96d"; }
{ locale = "as"; arch = "linux-i686"; sha512 = "607039866932e6ec0692c534aa2e4ddcb3725d81f2908e7e905edafdbafb3221161f5ae4a5b6eb2ba065e9bd66e1f63c008015b17040033ed90ffa0576b1d08b"; }
{ locale = "as"; arch = "linux-x86_64"; sha512 = "59f3c28bcbc50a9ffe780025e03edafbbf82a213f28ba8e0f62a04a0e052038c24e1a5928ad4a730455bd358fc3cd0f1188e785dd13f79b377d86e5c55360735"; }
{ locale = "ast"; arch = "linux-i686"; sha512 = "c9767d9b73ec2dd411e16b1fab503e97b7960c315533ca529c4898dd10a6e0f809104588ac33f440e1026d026d114ec080cfc312b1902601958656607cdd4ad1"; }
{ locale = "ast"; arch = "linux-x86_64"; sha512 = "f4c7ab66af5e7fca460999b3d68793f8099b177809e70f682fcd7b0a50a3d5ad2a1c15bc5df5a63c37437fce9d70e08e963119755626c357bce6eb17bfb229ee"; }
{ locale = "az"; arch = "linux-i686"; sha512 = "58bb0eb057caf6af113debeb8d9d7eeb3b2fbd2c52c9dac04c527a67da45b3a4ebac4debfea1704639cdf20ec116876e140f4b55ea5f2b90f3afb9db6b2641b6"; }
{ locale = "az"; arch = "linux-x86_64"; sha512 = "a82fdc532e4d9fee9ffab9ab8aa58074c4ed174c131d56b4ed48b1ebce1f8950371fa7c7e174c4f35150b752cdeccc2a553b416e94fb3eec22c0c4467c0b1f20"; }
{ locale = "be"; arch = "linux-i686"; sha512 = "55a96ff3fe9e54ec09a828f740899118504848c82b9c842ed27b9c1e1179f8efcbb2fae5e25f01dd1440f9d2ad896e37056fe8240979cf2c60f536870590cac3"; }
{ locale = "be"; arch = "linux-x86_64"; sha512 = "6fe1b00f8a03160a5131a52aba5b31401bf18913eb5b6018d1dccb0456ee09154c76220bb94b1ee20bf5b8e63535a888abf895af570e9a668395b497bbdf90b1"; }
{ locale = "bg"; arch = "linux-i686"; sha512 = "e21d3a2234b533b9d5904be3c1ee4f489bfdea747ff2b45828c40712f70d631ca824375c7a232989741bfceb8a7eb1ca341a4709285056cea2cf3689326a9c35"; }
{ locale = "bg"; arch = "linux-x86_64"; sha512 = "160600a553d452c30d533e4d9a4ccc4c4d0cbbadf7875856f9be0fc81dbb7a686aa79f47ae8ea1c1e3746d150db31c7ce0dc18f1d271a47abb6d9bc35f478bf0"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha512 = "6a4267ce4e0d474779f16a7bb31fb873c0d2ba4af993428330bef8c93a24c1f9121b68d50956beb3df549fccf233fa2ce851c69950bf93cf6cdf34debae0cfce"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "31100d78f0b2fcca2643c822f930ffcf01da9ad3c026d8e05e88b659afddb9d55a000dfe043a87d6e4008d40fced109c134a3bb2c8183a1044d462fdc050989d"; }
{ locale = "bn-IN"; arch = "linux-i686"; sha512 = "cb0efc8151949b33c23cb9d4fe41168830e215d4361963ec9399e43c97aa4504b4539a202f2c43283e63ea0a4afbdffb9bbfa1340a256483c3b848ef24660734"; }
{ locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "37e8311e0126da80740b9f97b4b69eb2285716b309e1986daaec5becf88ee5624343ca3b208fa84eb63477f47234c8d5958e394bf750da32e02d777ee94437f1"; }
{ locale = "br"; arch = "linux-i686"; sha512 = "be6cb0e7b1ceb0be27a7203620b19341c16061ce0d4632f9ce135b2559db2ca31adac2e40ef95f98db903fd151a1b5d411232361631272f2d6200dbcc45464be"; }
{ locale = "br"; arch = "linux-x86_64"; sha512 = "aa71bd069902a921b2a61ebbcbb604972104ba5f4274788da261e1e527dc7ce10c6a9aa0652773f0d0499d53c2916dd1e2d862b900fb87d678a9bcb401948cba"; }
{ locale = "bs"; arch = "linux-i686"; sha512 = "5282780a9f35577498b95ded38f86423d043429a0fb4b9ded956716381a3343ebe653508e8929bd8ac7475a2fa0d6c4c67e84482cae0d40a681338eba09f4c96"; }
{ locale = "bs"; arch = "linux-x86_64"; sha512 = "1056be9971338d821025a5d272321ea4b1704f3103c02014cde711516e9da5303dbc5753f0c2c1cf236096a53b3b067261b628f17d6d45e6c713f5b5cdee69b1"; }
{ locale = "ca"; arch = "linux-i686"; sha512 = "15c98207cb051466bc89dc15fb2dc1da95490306030fb318f3e3bb184d23590df7213e183af2e5178969099a4edf9752e5872a9d4a091958d7a9ab6087ff6bdf"; }
{ locale = "ca"; arch = "linux-x86_64"; sha512 = "f7fc94c6c358dff1336938ff2d28c4fb9b0d391c22acefa7e286004978570e18cc1fd1a41a101a8bee27cbec1d750e04ba43cb409886f2b72e8e16a9aed6c835"; }
{ locale = "cak"; arch = "linux-i686"; sha512 = "96da63ceb6d4382abd8d1e343fdc4b72ead5e5ed2e3d451e768c6b092186287dcbaf239c389d29bc23e5641495a3f2a05512377300f45402428647ab77550b17"; }
{ locale = "cak"; arch = "linux-x86_64"; sha512 = "8584d4d82c79a56657a01a9cff211fa99e0fbcf0a42103a6cd9688713e7c11b77f35535fe31ed7e48855e055897b2c5fd84c2b1796c313401d8f01ed889ac7cf"; }
{ locale = "cs"; arch = "linux-i686"; sha512 = "2dff956f8df85bd007b68eeb8b809ddf7d99a6185f6946d2f4fd371f17e4dbf46bf2aad1799b6a1c84bd983935fa2ade5acd3b062f3eee48f7a160f37f3e8e6e"; }
{ locale = "cs"; arch = "linux-x86_64"; sha512 = "725a2e1272722cdce125b5dea7e61525a43ddda6a45cb003f397ec8d1c9334f11adcd7fb6dd2c901de1cd9a0d07eae54304e5f95ecc6c529c80070b9d6af1b47"; }
{ locale = "cy"; arch = "linux-i686"; sha512 = "5eeacbc1cd803687235927a91923895930e135a39de62574c79499fe56accb5278da3efc4d151f0f93ec482ad44099481960dd6e3102afa94cce3c30db67b133"; }
{ locale = "cy"; arch = "linux-x86_64"; sha512 = "49fc8136b3900b96fcea850a9549812b1cf1e9b1058cf99ee7e2e135cf49827e46ef4361badcc4efbd5dd09600d5269e68392f8df03c2e039d6b3d04b244aa71"; }
{ locale = "da"; arch = "linux-i686"; sha512 = "f806a36960cbec3624be8ebf6e7f8116635c7fff63ca890a886bd16fe73ec8a311d1e8b3c34ca680425d4634c91f8b96b0617cd175eef69e701d7c72e8917872"; }
{ locale = "da"; arch = "linux-x86_64"; sha512 = "22a274b9a5a1e670369009f2e48a4b7d2f63f18baf435d001506dd590b59115d43619fa824e2156b468b17739aea420621148ca47cd46bc3ace31bc5be4533f8"; }
{ locale = "de"; arch = "linux-i686"; sha512 = "6d64a77f420d1f87b7dac151eec75d4d42ec1f904b882b970d88b0e20a38ed5ebf8cbb2180abbdb8fb00dd60621e538fecaf77e09c4aee51f71a38a14f81b9b8"; }
{ locale = "de"; arch = "linux-x86_64"; sha512 = "897918d57691fb1a3f93273da48c128cf8a91e9bc5dd12d0ce2b4a085ff4df01db3ee28a378f36b7e7944c23f71df8a6dbf3481ec207cf85b73f3bac95bde054"; }
{ locale = "dsb"; arch = "linux-i686"; sha512 = "d5fa1438b71fcd3507175619090840cf983de9efb003f537eb28b9dba66f1cb3518e1410c4918187eb25766634464aaa796ebe0020f8fc110361008751e1c359"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha512 = "30cb3759bd1f6ba91dfa847703326a57901782ebf397adaa1a403afe894f9b8cdeba80fc910f50037bae003e61956845f605b0e62c364c1c415b12a5abb87080"; }
{ locale = "el"; arch = "linux-i686"; sha512 = "991dfd0870e38ee4a8887a61ce87a4c5af1c21206442a0602197caafae0be2c3c5aa4c7b25fd92fd9968bdf25c780ac342dd0203c3df8d729034ba20a459d120"; }
{ locale = "el"; arch = "linux-x86_64"; sha512 = "d62b4f1eb5feeb30e4d2d7b8cb7391f374a209d14b70cdd77acb56106b6df36f54c67a3c5fa1ab4286fd7c46b5d0a42efc52d140b8e5cbe08b17c6d7bd14b498"; }
{ locale = "en-GB"; arch = "linux-i686"; sha512 = "2cddfb3d4472bfda882a3e3a054d5826a596bfd6b9b4399d7f45c6ad9f157599206f5e149f6c4fb35845ae291320520bf7a76c891713f1951c6e9a9450e92d23"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha512 = "d6bda8496f96448b9b046822547167c9c631dbf35c8bba07226634fc9aa1058009200d10e4e586fe059ab1e7b558d6cfa2c0040a33220d46dba5ca742bfe6f5c"; }
{ locale = "en-US"; arch = "linux-i686"; sha512 = "a9025b8d66c9294ede71ed37b7df256476cc640f7b7ce74cc4998c0b4b5741b5f869c486f1eaf4793fb4b2f347ba069f859e1c5318fa8df18c52377c83f8a09d"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha512 = "a551550037fe762d6d06a4f046ff4e2f37cd2607aace13df5ba2e28d643ddcef01210367555fb2fc66c6fe45d83f0306f61f4139001d1059ea5e913fbd43cd69"; }
{ locale = "en-ZA"; arch = "linux-i686"; sha512 = "3e4721593a69bc289c7299b64e91af0ff121d59ded0167bfdd6692dc6d7a0ce0b0a7e8e89a591cee9fb90dc8b9eac26c5d978e4443b1d3462a0f4030ec8c5a50"; }
{ locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "76e069c8938cc133576c934e4049fd4d8920d8a823122f1961d4ab69802e9e52e920873fc1406dbab01edebd0cc576ccb12df0ebbf5487ddd49c339111bf7101"; }
{ locale = "eo"; arch = "linux-i686"; sha512 = "ff071fd2545a8dfe0fbb1b1dae57d3fc4b0743698e54746da1f774b568b2b9ad9b0e14e2cd27f56031e1d159a05ae7d54060509532a7503b3dcc7fffa442a514"; }
{ locale = "eo"; arch = "linux-x86_64"; sha512 = "7705efee2c65de30a0efc6ea0c372061f47c4266ab7faeb6feb01bfde4324ac92ed99a9eab81d8c4e2e6972245953a200c4331b26845eb7a2f9e048fb3023840"; }
{ locale = "es-AR"; arch = "linux-i686"; sha512 = "3c08ab10d76650fd11ecd9616af1d4646fabdc55b63c7625940630f8aa25427482a3ff04052b91e6aceac708ca187552f7c87343d08c01cc1b4940e341e1672b"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha512 = "b6d700123f612b93b952f05bfa92dceed8878ad20a84214f8daab63e4eb669f1f69a9a5d6d28896b16b19d3dbd710b98a4851d7f611bea0fd79e41930c3d838e"; }
{ locale = "es-CL"; arch = "linux-i686"; sha512 = "7c64c7f7058b1cb3bd5f55b1afa0bc2e779d46d05e5dd354fac7573ad6245ba31aa126301d827ffd17f197b460be24c98ad7c2a9a3d4c66cb6189618a4e38ebe"; }
{ locale = "es-CL"; arch = "linux-x86_64"; sha512 = "dcc4b4085fd4e480e79ca85b862c421f6e85d200d46b40178ce27177c1ac00f0d19d0c71ae3d7c12e15bf570cd0234743d080d06dae1e9e3c0c2f0eccf4bdf86"; }
{ locale = "es-ES"; arch = "linux-i686"; sha512 = "d049bada399fbc723ceb14aa116b9218d14729cca6a2297d852782e4d3a0cc7e278aecc62ec4b7f1e1c5af10f65d0cd0bd39e6fbf95d989ce4d2ea5b0e2f7901"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha512 = "a77978f8af7f932151468c9e002731c8b6b3e9d3d8d8dfdcf28cc545b63f1d859b99c6dd25c547201b050f58bde9a55fc67b8134ecb0c893ce50f7788774fe99"; }
{ locale = "es-MX"; arch = "linux-i686"; sha512 = "46a7bc0f112f99ffc218e0161116b373c5b496e8d73744f9ed341fcd0fece5bc4618bcaebd68cb0aa80bf86078163d92205d322464dd8a918463507e4a9bde9d"; }
{ locale = "es-MX"; arch = "linux-x86_64"; sha512 = "412f52d4eaf3f85cd452d18164d2ce13d3057b45bd4f81ef2255a3580bb5b7e68f23dfc8622dbe3c4d69291b1fbb4a3312a429713b940b081415157fe5dc849c"; }
{ locale = "et"; arch = "linux-i686"; sha512 = "34d56c20cd06f224d1a3916a12bfd3f076a1659d9bf21aacacd5bea59e789ff496600b712a12f0b67410da97e0500d2f28f1f916872bd223f9f3b913ac648552"; }
{ locale = "et"; arch = "linux-x86_64"; sha512 = "383a4e2b28217651e76a06dd84eed5f058bf53c25847a6ef0ad1ea9e6a3c98f6a94ef05999a92f03f669e7cea0df11654b201c4e21fc595fcf99bc91b90c05df"; }
{ locale = "eu"; arch = "linux-i686"; sha512 = "cae20dc1b9880dcd9ecf4331bf1b6c6208a63ee3490ac8b827c9e338916a9d07e447f93be4108db78ce3cc96b8d3828f1882c28aaf28f198fa4f875035ca5835"; }
{ locale = "eu"; arch = "linux-x86_64"; sha512 = "38ff3155783328b685c72f1ada0e01ab8a8fb75b191455dd43de590207f9b3a258da7cca6ecd3538a7d8319c8d1372e174fea0a22baecb497ca33aaff80a33d2"; }
{ locale = "fa"; arch = "linux-i686"; sha512 = "6d4d15e4897568d32128f193fa7bb413e63cb2bca23b81a16cb5b9ae7a558b768193461a182552da1153dfb708f834434a1fb63478cb5fe7984b91d00415ea34"; }
{ locale = "fa"; arch = "linux-x86_64"; sha512 = "6439f27cec2a8af66a4e68406c88b536c5f8e2b0202ce82aa46e75f840cb3977ddb041d8ee315d95505ebaa0e37b36afbf26ea0f39310cda09f6e765eb7bb120"; }
{ locale = "ff"; arch = "linux-i686"; sha512 = "ee9114fe358d9a6dcb7e404f13fc594de9339fc7ad126063b52548d42aaedac7abbce9e647766462de2716c3ad248b6992dc04e96ea3816068e884c30a3bcf84"; }
{ locale = "ff"; arch = "linux-x86_64"; sha512 = "beae2223a6b3aa555c071b51a46d3b0758efa53b6002f2486554f5bec154cfc1a1598f0175af654fc47a60a170eda916152e959a5ce2f799b779e5040ae15c5e"; }
{ locale = "fi"; arch = "linux-i686"; sha512 = "d8414f63f04a5a9c916487f93c67d2368bb4d8c8fb757c1d58233e6c6e6bde139f323b1c77dda57730173c6005b2647c688f7072ac09c1962b04a2493cdfa18b"; }
{ locale = "fi"; arch = "linux-x86_64"; sha512 = "7e0fce63b69653fa5d0d0ffa9598d10976a1f49aeeb48bcd8eee26b51ca1f6d1d898c84944a442d530abcab700dcfdf89c48ca23db9d835c877388a8f694b7ea"; }
{ locale = "fr"; arch = "linux-i686"; sha512 = "c3bfda75397d644bc4392ef87f1d24faa033f4c5672adc4d5d0007d5fbd63efd7f46a2febd0bfdf95d8f06152d274daf39ef6355e049e7fd5e53e2d750d03ae0"; }
{ locale = "fr"; arch = "linux-x86_64"; sha512 = "81c8091c9d8cc1ede738bb1d9b4fe72580d13de7e3f89410d1c684ca017ee197837788e63243c9722b30e23b2c910cb54fc7985f4936bc6068643a504d9a4ebd"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha512 = "59797af1d76fb2afceb06de28c6fd13bdbc14d42c61f87f1f71d8273e03aa691e2ade3ba0361d19721862878c911ec46ffbfd0431d19d6ec0a92ebac05cfb4c4"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "19d0cfb01374bf2842a17ef4e9f5ab85280c1090723c1657459a230262d22aeb14c2faee1b86ac0b342c5926cbbf0479f2e1ec315117c06ad3272a3362d02f8c"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha512 = "c1a4fe00a36e95fcd33d21544ee6b4fa5a6eae0628a37c27057cc801a641fbe5519818ccc157b87b64f24f4886dd6dd629809c89b9c89dc4878de794e48b107d"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "8d9654ecf7b6cb43b4794f345105c779809b9bd39a9dd46a0fbb1920139e9234e7433fd9a8d7dd57192c738d187f97ab82c8dd3f3a2460e3a34cdc9e9a5c5089"; }
{ locale = "gd"; arch = "linux-i686"; sha512 = "0d48b2886c431a9237293f24fa5f8cc7104a3373b24c98e23bbf93f66aeeb5b8b9e737712bdd1c777db19bbd6b01f9a33f0c388b6af023d852cce6543d486973"; }
{ locale = "gd"; arch = "linux-x86_64"; sha512 = "0339b6952f993d38686d92ac9a664cfa558f2827b92ae3464188f12e28e2676c8c4718cff62a840dba14de687434cf13902a621094f63e1bca1ebce321800d15"; }
{ locale = "gl"; arch = "linux-i686"; sha512 = "5cecaede8ebdfb58951b3f839388b81dccaaaa5d3b4fb5cbf26978b23cd962905191fa91d961037fa15000af47ab48042d272fd18a73e5ed4dcc2bb0ff4416ca"; }
{ locale = "gl"; arch = "linux-x86_64"; sha512 = "d1a0447ce592e7d2a8564d9c27fbce5f9378a4e21db3fa501782e57b6e13ede6f42b612fffea32e8891d47010509ac8e3ed1f63c5a81878008f9bead68b6b750"; }
{ locale = "gn"; arch = "linux-i686"; sha512 = "aff2f407e4c947d3e34447b43e844135562d79bf937a05dad5ce4dd1853dd479f35b4f6af1b2d8b52deeb9786a4fc67980cbf58ad82a747a7e55ea753a50ad43"; }
{ locale = "gn"; arch = "linux-x86_64"; sha512 = "78645796fffe364fcd28b80cde591d88db91a756318f645610f6823b616222c0c53faf8d55aaf1703d4bbcec1e8381cee566bb5739ccfa181e1d1224408463de"; }
{ locale = "gu-IN"; arch = "linux-i686"; sha512 = "331bc227d138a49d74cca37f8d7ba4e6eb891064357aa5b0606761f9af8cc4a029816a3a96cc3ac4dfb71b1d010c569940ebd70375fdd06af7b6b487bd90dafe"; }
{ locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "d1f6c5af9e75e76683d39281eb559ac688436eae65d6bc486763028744af030a6c311d1f0358ead5e88ead60357261032dd739251352cde097986251dfdff325"; }
{ locale = "he"; arch = "linux-i686"; sha512 = "7a49d8cabab6aa8480026de6b77e1b6d60333c580d2b9591cf3fdc8c491d269f6a7a7f93118594de8c87576dda868f12de5a88f494736f721ee3ddc16a9afea9"; }
{ locale = "he"; arch = "linux-x86_64"; sha512 = "0eed4301d7949415d21426d9e52825710a0f48a1a0a3546f62d757059091bf12b3b53091f2c3102de0682162e3982a9fb58c111c9a6b8245d84825892e1d6844"; }
{ locale = "hi-IN"; arch = "linux-i686"; sha512 = "70ecabcdfee807b1a7e0b6a167bab07d3df798672a61bb7b80d1d6c3ace9385c472e08dd31f2c4c684cd5e723e7024016728df7b22943d3adec3d770ba7abd1b"; }
{ locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "11e8be059afa8298a23857bd68b2f895bb60f73378c513d2aae0395b5faed68123631d9ee44b5608263334269e33b76b4563c063b2feec486e7a2dac1be42275"; }
{ locale = "hr"; arch = "linux-i686"; sha512 = "2c99b81cb0c8413aa98dcbac2cbd45d59a440c173a9cd744b78ee0d60b82ec4fe4894fe5e313d51b81caf6b86f40effdb36f5fd90c73cab82acf97c20fb5b152"; }
{ locale = "hr"; arch = "linux-x86_64"; sha512 = "fc209d82cbc24eea777a4318f5555d2cea4828bb7f305f868b8fca18014ea7c930f778c716eb0b9c1a7e29d9a4353b4c537900f9d659c432d6a75b1eebf30963"; }
{ locale = "hsb"; arch = "linux-i686"; sha512 = "3232380f15a33f31f8e3755707231ba0725b9afdae1d2a0d4fb2eb883ab4dcb5c8aee75549e41e7e2cdf445b6f39331b2be4d7e417604987c7ced46d2dd5dc51"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha512 = "11bb460c404316c322e2498986ac6e7cb976a196de7208ee54dcd4ec61b8f05fa8f7782d6cf462cd5531f3137b1688b7797da2d78437e3c4d4f95867c781953c"; }
{ locale = "hu"; arch = "linux-i686"; sha512 = "40c3837c7ca4e0dc9e97e4c4422e54cc3ef157933ce9969abf71fd422fbcad517a6f6da3bcada83d3567323e83248a060fccc8a23a7f6fb55568a5b7ee0ff464"; }
{ locale = "hu"; arch = "linux-x86_64"; sha512 = "d05bdf14ed9c72031a29e7e9b39afe79bd2ccdc69bafaf8c6196081d462b0aa57a220a8a2105812b215067494c53de8adc994fbbb3549ccfcadfc15f99c710ac"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha512 = "a9da495cc3e7a1e89ca8dd7a3db6c83529e0b7ba6562e7f0542f8b9c93bee8e4c219973b0b6fda1abd046d933fca718fab1f6bd4350ee960ddd89144dd321ed6"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "53db4843e0c9e99188e28bbe46b09239d998a3bae35ab79954bc6eedc5e73c0f3010c500dbb93f8a6ee2d5b22fb3ee9fef9ef6eef2dbbadf4b83f948282a8bc3"; }
{ locale = "id"; arch = "linux-i686"; sha512 = "05e7450a164c940e43ce34f6b7c9ad610d1652f11b0f030dfea7c9d8539961b2f3e69ab0d3b8d714725cf3e8bb256f18f4ac3613bc86bbf6223d9914e4eb77f3"; }
{ locale = "id"; arch = "linux-x86_64"; sha512 = "7ce0b880406dfbef90ca6ae6f121eaf72bd289e7b57f7686ea83fc182cb9b54a3e0bd8b23bffbcfb3c9e82a6b13c7afa16ce56d426f33f66072db4b5f466db04"; }
{ locale = "is"; arch = "linux-i686"; sha512 = "71446911d5142ab19308aca456dcc1d4d087db07898e331604230faa58c2146b980212880c7f88b6e3770b303a8450cff9e447638b5a063daf50ec25d29de738"; }
{ locale = "is"; arch = "linux-x86_64"; sha512 = "2542f214cb2474eab97d18a1daffb1181fff569058b91c1c9d7d6400b8401020b69ea9492fca55153c904289be45215b37ed0846d563f8f06ba401c482d59762"; }
{ locale = "it"; arch = "linux-i686"; sha512 = "bdf0da50be211492e2acdd9de223ef741fa916c54e94bf9c8eb20685006b68b5f430949161199a915c368d11143caf828c25b2e82c33fd5a61bfcd05de53966e"; }
{ locale = "it"; arch = "linux-x86_64"; sha512 = "a4562fdcac6d9ba96fc840498bbb381de6190158fea65c4809ea1ff3518181ed47b7c33bb772077975fd07c23a1e8700403cb6cc67c5fcb1c24e72563214f4bc"; }
{ locale = "ja"; arch = "linux-i686"; sha512 = "cc81a02282474928e7d2efc694761168db022ffcbf5ff32d92c21b90edfb194187dfb78f2eca4c42e60cfbba8ab6614c1c7b0359aaecafa47b1c9d3918327cee"; }
{ locale = "ja"; arch = "linux-x86_64"; sha512 = "07cd92b7f9647f774b080cfcef828899144cb03472d70394be197c43732b164978e1d9ebc9212a47b58fdcc61f5009328e766f4c6f799f35d73a4dcd2b31fdd4"; }
{ locale = "kk"; arch = "linux-i686"; sha512 = "1bef31c35180ad7fd49ab695a6985d8be301a6802225d319e979b8c716e78a5687753b6f63516f4b4221c402a2d2c8c0a0e22aec9023cdee98d71a4335728e7a"; }
{ locale = "kk"; arch = "linux-x86_64"; sha512 = "dff599278a27fe2b4efbcc99b7ad3b211ef5debbf1b95d765a36fdbdbaebff69936c250018f237843481244e2b02cb8de4e3090d9422adcbb3d8af4239759269"; }
{ locale = "km"; arch = "linux-i686"; sha512 = "0080783187b80019cb4c56e2b30a1a403c632defc375adab7d613489fbf7f217a22a779f0119e2810ee9f0bd024418ffc654df146873a06f59bc7f1de5fbf244"; }
{ locale = "km"; arch = "linux-x86_64"; sha512 = "84d1ca7fd0a4d6a39aff375e922dcdcbe51fb2b497c6eebc312abe6cb5b29bd049e648197f0181bb2ee1b47b43275c14eb13233958c0bd4f7cf7b28e5725de97"; }
{ locale = "kn"; arch = "linux-i686"; sha512 = "2dac35157e3264547726ad33f786bd86e52a4db8aa8d1449cdfa9993e5bc16556c6005e06cee915e427e74b3eb4eed665a4a6deed7bf3800a95319346fda3690"; }
{ locale = "kn"; arch = "linux-x86_64"; sha512 = "175b3edf58286a229ab4045ca2d75f8a00e8ddcac532fbfc8aee5a048e0ae0cd5044155a8619d6dc53756150bce2d46b910e1abe216bf537d259435199cb42cd"; }
{ locale = "ko"; arch = "linux-i686"; sha512 = "1db17eaf47e7916366d05021d683c2b4d8f26316abc057a450d24a5d19fa1ed9aaad2f7a45cee63c0f021d93214b62a032d17312cdb123289b31dd2e5bd43808"; }
{ locale = "ko"; arch = "linux-x86_64"; sha512 = "4bc673e54fb0c30b7c8389c2a66b322bd4b19e8635cb3d633754214c0726fb95d3194d09435bb4afca17e6cb3f03f028408d13f9ed44d8c2b9c323eabe5101e9"; }
{ locale = "lij"; arch = "linux-i686"; sha512 = "8349ba8cf921d73f0c3bd54c9a30df9c0232d7686724a0d635435d65a6bc8baa1915e25702b930cbefe954b5aedd1d3faeaf54ffa9b5dc494e465a635a57369e"; }
{ locale = "lij"; arch = "linux-x86_64"; sha512 = "e12597062c060dabaff08c251f82ad63f534c341d1afa94e567c763b7ac290cbb03a27726e03b449ff89fe8b86b25211e807ef7ba34e876d902705f9361d5cdc"; }
{ locale = "lt"; arch = "linux-i686"; sha512 = "f67ff28a20ae0580aa537797928bf84cdc088cc0df586071a460eda6ea7b96337a5004b2689688a487ed246b5d83a14bf77a5002f39fe7ccc46e92f65b565cf1"; }
{ locale = "lt"; arch = "linux-x86_64"; sha512 = "f4ffb37c69b9c69e9ea54d691bfa3c069b28d5b1b0b48b917f4c6f10c1434bb451b7c17e777b5daf3c869eeefb2a064264bba7591f681d319fcab00335b37384"; }
{ locale = "lv"; arch = "linux-i686"; sha512 = "7efe759ef2f0e585a8887e829e2bdf917209efd5b3d5235f5765c0995206c25941abed9b11f9241da565a919f94890682a944d2bb7dd1d1360f67f173dcf2852"; }
{ locale = "lv"; arch = "linux-x86_64"; sha512 = "63cdba3ea94fb1847913a42ba70193ebfbbf1235a28881c7d671b20dc8272c5989dcb8290087a0862cea7a4c8ff448ee61b42a13d6c03c8787be1dbd957769f1"; }
{ locale = "mai"; arch = "linux-i686"; sha512 = "0619cde7ad13590d2da001fdf87e2fe9772d65d1ce468ea2b1f3085d8c6c157f48d23b343e6886969dde5827d12a368e208242dd16df4e498893d53f030665d7"; }
{ locale = "mai"; arch = "linux-x86_64"; sha512 = "f65ab5c51b7dd0f127a4b9f65a0280002af3387b12e8730f8efd79f4700f6c5f5842e3f634dd738571995dfa52ef58ec0d68255ceb52c6a7df0332797dfab253"; }
{ locale = "mk"; arch = "linux-i686"; sha512 = "e6d2bf183fc1fa88d0bbccbf058344e8dada0271694ba3bfc149e965ff16ec05ba6f7a04cc39f3657524555e84f25d072d7922fb2c075b0bbb8cd933336f1d94"; }
{ locale = "mk"; arch = "linux-x86_64"; sha512 = "68a96a11e38944d654d1aa720b5a099fd0789520b8681f15cf33d972956e7dd2c44d940ea0b2840c48db79615aed8c83d3f19769908752f960f84a7bdcf3a2ab"; }
{ locale = "ml"; arch = "linux-i686"; sha512 = "32c8e00f71a7fa609c3b99799f64362962d245d75865ce54fcd72e8cefc45f5cec7a99ed343a7bd92614569e62a02ac0e712b4ca3fce3d5d0f2f7ad52767c209"; }
{ locale = "ml"; arch = "linux-x86_64"; sha512 = "c641244006a11de3b6ae947f2d5bf8b40fd4bcde8e7b71d2fa2a8258087bf3d6382f21b10b05b2554f031ee95a579d31d0e0d8f1b72a5e1101acb31075aee02c"; }
{ locale = "mr"; arch = "linux-i686"; sha512 = "3949d3e4d9fa507c50f5ca92ee9cb041dc9d034f78d44343139a1576f128a06d8ef3aa2b1fcfe11d77a7489b0f7dd18e14f0ec0fff595dbefc219f6b1eadd969"; }
{ locale = "mr"; arch = "linux-x86_64"; sha512 = "c323cf8842f695e47f3c91d356ff63bb0ce7a5cf47cbe874dc6956d90fd84f6330e6e1f5f0bbf61e2cfda66a2dd0e81a756f3b464108e7ad84450722562e5906"; }
{ locale = "ms"; arch = "linux-i686"; sha512 = "f5ded01c47ac91d506a10774b198b3c2fdcff35a10ced17cd0cd94a1e367d489f2afe7ae22d59beb420f771684cefe3724c88313249a4c6072ce68f36bb16cbf"; }
{ locale = "ms"; arch = "linux-x86_64"; sha512 = "39d4a052c21fe9ee876f8b8a7fabeae9a6a30d959e1a7b27b0a1fd08658cac5959aa4879e3056675e2b7de83f588cf82f5d138f2ee5d9b0bbd135b51de109f7b"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha512 = "6cc34cda3cccb3ce92f44244e291dc94238292ef6e91172d73659ca5b4b46fd004483680a7a45ad3643d59c57c7fe7bf4286f4cf7c903301eb39712db9bd3583"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "da645c69d2675bdd1d2808f0d7446ded4414311bffe5f1a37a685f6f4338a56e831349a1a7904c0332266e909e4e82085585afb14b3fda7925698d66e9912a65"; }
{ locale = "nl"; arch = "linux-i686"; sha512 = "a2d906caf6b4c36305cbcd2840915000c53db2ac03122aca162e672014b217237363bc309cdee5ec19d21106073044fe8668fd044805161bf4916cdd938565ed"; }
{ locale = "nl"; arch = "linux-x86_64"; sha512 = "6288c2f0306aacd87a82a3a6262b514f32a177674e6b96eeb5a8f937ee36b6573d8a3e6925be87609e4d7dabd1e6367eb0e730d87148cd50c1572756bb098a5a"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha512 = "04454f9f5dd2611cc76575a41d56f6819c5b97e213f82ebf0aa5e8393d9cd4a99a9df5291d3e3c3985396a99559f39fe5dc6a85141ac1d2f4919b731d7539a89"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "fb55685275d0b6c9e47b0356bd4249feeb3005b338d2a2caea4bb7b86edc6991752af9276db91f448032ba7d9e01209d92706f7612531232f87c05cbcb13f337"; }
{ locale = "or"; arch = "linux-i686"; sha512 = "16639bc10229e171577abfeab841bd7b5dc411f4e314335787727803a486b8f04e8730a7be9321172fdd60791fce7363d5ce5aa28628cc4d2b7769357737cd0a"; }
{ locale = "or"; arch = "linux-x86_64"; sha512 = "041f3a63a4cd9c0f287132252df7aa6d7eedc72650244729e01eb52a93a9ca8206a11cd7783e7778d4cad9a525ce2aef1c423840ea5c54fa202600a0b5805e31"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha512 = "7c9cda0d9dd9d1196ca33a58b6f5f3c3f09896bf65e8fbeed67fd9811cb1bdc12b7ca8966b7612cad524a3bcc9dd1e2678627f6cfe172b1bfc2d9b64eaac17cc"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "56507e7e1e93ae880de5410b4ad8c1302f58b43ade2ee4dc70c1290334edf2ea05f7ddf2ca00317ee33662de29c635caad8f73332935fd5bd4ff6a37758bd195"; }
{ locale = "pl"; arch = "linux-i686"; sha512 = "52cb7e700e541a82328c935a0a99313dad6b7699c09a1386697c77544284d53653705ec6d57f3cc1bec632962217c090ee39687a81b19f3a3af2178eba9a1eae"; }
{ locale = "pl"; arch = "linux-x86_64"; sha512 = "77a99740ad99808a31df3e71038944901fc0d5339f919cce40389de67baeecf2b9c34608194ea1f0e4a25bbaed0ba06159d10ac8816735b34a2e28ab041ae97b"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha512 = "e39d9b22f8b7226ff2908b34847fb77cbe0c834f51985712024de83ece7549c8a89c3ab3d81abb6bfe6a7b21f18dee2d87926abf3d2edf9f8a8976242a4dcb26"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "a03a0e37ecc2d903715b70eec0a4b2808a913a8e27398dd96206295e1e765283e97b76ba278b394f9629e352c10cdb2011f3184b903d0e6de784a13abfcf9668"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha512 = "2d511400948ce05358b9400752bba41cbd947d1a4a5a5a92f982830db92507e257c28ae319f411717253dd53a1a7e73607f9f62fb7b7c8666aa339fdc73ce728"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "71e2a000333ae8565de6fc9d01e871c2e894f96a9a2544a21aac08ccea0399da37d74c3230c4b3cb7ba0231fcdddaa417f78e48848fda8f063179766cb675038"; }
{ locale = "rm"; arch = "linux-i686"; sha512 = "4337964e6daa7bc799f01aa52a33f04c060288bbb881c2321ef938658b57f05b632f734ea0564cddd0078f4b38d1c8cb2c2e6221849ca4aa80579f308fdc2056"; }
{ locale = "rm"; arch = "linux-x86_64"; sha512 = "a55e250de5e11ef808243ef974fac8938c70269a36bcf9db898a11997722b8d96d60d76ca28e41e023b4c7e6614e323479d3d4d2831b83655ad3ae3eb5ed774c"; }
{ locale = "ro"; arch = "linux-i686"; sha512 = "17171889ac7647e525783c96afa5a5de796d603c8fa6a7ad8d12205ad510f869b35f0df79aaa04e4b980c86ceb923f89936499df7e55539393e40ac92c23bb1d"; }
{ locale = "ro"; arch = "linux-x86_64"; sha512 = "721912e5ad4b0ad0727f0185f660351b3c59291b3a22aa394f01c26ee87366b43b5aa08cdfc164c16117e1650837bc2007e42c34756dc26466edbb113f11fc09"; }
{ locale = "ru"; arch = "linux-i686"; sha512 = "28dafdbe6ae4fdabc061c68ca82dc6ab8fc463da11c712500378d90dfb662d6e0991f35a918315ce138603283befcee182092ac4f8d348815bef27431252874b"; }
{ locale = "ru"; arch = "linux-x86_64"; sha512 = "27bbd48859f5ed6053a2062778537f4952a0847ff74d2dd407766ef4b4f144903167b4fe80b98a5b2b80e42d6b730bdfed36fe9a958d247a335bf31f091b8c70"; }
{ locale = "si"; arch = "linux-i686"; sha512 = "0f50616131a3b80499885ed5fb8573fd3ebe522cc893496d03e48ac6eafbc2a5224240971b66c393323d2583512dacb73f3201eef1a495298badad605cc76bb3"; }
{ locale = "si"; arch = "linux-x86_64"; sha512 = "37996cbc994a7527c2ffc5143dfe970ae2fe0e098f0bcbf9fd4643e8297bddbe7fc0f4af2f2ee15b0807c339c25d780040e2f9f03975ba9f49359052a2be271e"; }
{ locale = "sk"; arch = "linux-i686"; sha512 = "db95ce3b68fdfdfc9916cfbfa6a797370ddf58f5aa234d59bde6e76cf7fc0e821e9954cd0ce090404f5f718b9ede9c1ae6b9c7e37db9e64eb9d9dcfd975c6a79"; }
{ locale = "sk"; arch = "linux-x86_64"; sha512 = "f9e28572c83e70c7658fd67abce93d021600fcf6b8daa7861cb6eff315a28c0e531f1082f6c25f5779371b2884c975fbc22cb953aaf589ba6b050bc736d25d9f"; }
{ locale = "sl"; arch = "linux-i686"; sha512 = "e40c201c5e892a83a23ac9f1af22e9274bf6d964b39bae2e191bdac100170685376fa81210ddca38c76e5277978772c693563e55871318777cca7ac7e47fd1f3"; }
{ locale = "sl"; arch = "linux-x86_64"; sha512 = "ea4a198b300e2fbb23fdf863659b683b772624cf4f6c2c3e5e07af9a3f991a8fdf7113f852646f36f697c705c3a6f24485dcb8e2d615a3a358bfdfca406254a0"; }
{ locale = "son"; arch = "linux-i686"; sha512 = "b510efeafff8c32ef3b7f88e81d4c1a1c1b2bb435c2ed4ad69adbef8f5d374677e2231f94700cdbff9e5f747c712d8f58245a4c8f0d38ac3eebb5adcdc42c7ae"; }
{ locale = "son"; arch = "linux-x86_64"; sha512 = "8c8d583e7e5ef1363096c905535c8e6dd63900ee50684d9cd36b4e55100930b8fc8ee9a3ae770128cfc71a30a73f331cc508555ecdfd3fbbf359ad08d5cc9519"; }
{ locale = "sq"; arch = "linux-i686"; sha512 = "809ec8706df6f3538e3c53765a1f1834cee3d2d9cffbfb1f3e991faeedaca28a2dc3d4e037ed9e00d58ac6cdb27f5575bdafdc454828d9fa988d7764bca88c0c"; }
{ locale = "sq"; arch = "linux-x86_64"; sha512 = "6f2c5778d40e9bc5bb558ac626becfcbe33c42e2a2e588ee59065f60643708ff83be55a082b383f7747241ad8d59c0e3e13bc8556967f5fce034ee23d7f054f8"; }
{ locale = "sr"; arch = "linux-i686"; sha512 = "cc0e0c039af32611d489bf082dba5ba971b54b22937d4b8fa80150a560a3c452851e67d02f7cb27e1a63229c9a42da449f932cdb88af342e0146022586de109c"; }
{ locale = "sr"; arch = "linux-x86_64"; sha512 = "21928411981e8d3fac5e44f02173a08ad4c3135ec874998d6ddf5ef2821226ffee260023e5bb45848a40db19537b1d6cc0b127d9524c0d0616d80618ab1d9228"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha512 = "cddd222328f1099c25591b03abe23692fdccc82405df127ff920818fb7952fe384fc1373b1330b971d196e98acd62b3754711b38876050ec3cce7de20f183b79"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "06c819436de292d531a9d3df34b76bad36bb627e0e45ca042f2dafb06db14cc23e956dc2e00904d5147bf7d0b39c16f712f2b8acb1d9bc4daa210d56d8058e22"; }
{ locale = "ta"; arch = "linux-i686"; sha512 = "5e8560e423aa88c1fc5b61cf91c558a861a58d09d7e560790ba835f0bbae85cc82c61e1eb9e1a92e632d2fe24419d3eecec4a15bb083bf0c1568a441a5586a50"; }
{ locale = "ta"; arch = "linux-x86_64"; sha512 = "6ba48474d930036d77d23b717fd2e592b19d0ab2b4399f7a6f7bd36da48cc0a2dea9c25442928c507cdfe8a8f37a8d0e4ddb94da42a7a3d6c2ecba26d4f7dd2f"; }
{ locale = "te"; arch = "linux-i686"; sha512 = "2df2a46677c979b8702700c69f687e8bfa49e879ccd9204a1ca876b7a5f8925abfe6f81f42e6d6576aff6cea264cced854ae536a3cc01ed04b7a536396e9ff33"; }
{ locale = "te"; arch = "linux-x86_64"; sha512 = "d6c7bdb7a823be0cbe8286b977cc265e80ae290ae8fc4002a7dc71eddb3b80a3796e66ad1e00fe2e797ae83272422f460defa86322dea8e33ad0d7dfb50491de"; }
{ locale = "th"; arch = "linux-i686"; sha512 = "eb017475d187ef4f1329d303bde84a17995ed84458923330c2ef61940c86674c03f06de2e3655885df49cdc384d1b8e952dfe8ce960cec738f99b8853af1e018"; }
{ locale = "th"; arch = "linux-x86_64"; sha512 = "cca6fe63bf24ca1db9d736305dff312f334cbe0a836cb181fdde85c4b2e383e1a19135f441a1f07c69cce716a4c2d3fe42a07fe3c91146aa6598d651890ff049"; }
{ locale = "tr"; arch = "linux-i686"; sha512 = "98aa598f348be7705c11834f6d174fa19a8408b87193a93f641c4fe92898f3175f79a1bef9c66dc93c3cc19a372930725025d7ff1bf178e951c9d5dfd675ff36"; }
{ locale = "tr"; arch = "linux-x86_64"; sha512 = "a4c2d82f7e56e413526cbe40eb24df79ea264b37dc09b470ccf3416c922730d714ad166507f06b6a68fc85ff73df73309da936ff56499cdf81b78fc973675c86"; }
{ locale = "uk"; arch = "linux-i686"; sha512 = "cc04ead20aa1f6d3a8ac470ed3fc69ac0d348ab0523308ae56b49734785fd63bae4ac6fcc32bcac3f2e9350ebfefe76fa39efc2a7a7f5d7c2309b6999f490e90"; }
{ locale = "uk"; arch = "linux-x86_64"; sha512 = "1f29246b8bd1a4e07af7b30c2ffcb5239ee5f870e529227e96c0ef091cf9d9d8783891b2e60b0a5dee10e80893ddc6a5cb972d27e70ae4cd0f820ba9f60a2165"; }
{ locale = "uz"; arch = "linux-i686"; sha512 = "d144626529e57e93ea12ddca25184903b78b878563302c7f14a396435187791d2a14482a7d10bb569890d9483253474634574f105b9c79763ad6a85fb10de73d"; }
{ locale = "uz"; arch = "linux-x86_64"; sha512 = "4e6b7706c6f529739a18748f35d7e31071c6818c0f83261e1d31e66306fb40ac94573f7ebe3b811f4c70f88a2bbca29528b868821962e88ba30dbf84039c5ea1"; }
{ locale = "vi"; arch = "linux-i686"; sha512 = "fc7144a73551e09196b7c79e4fcf1ecf5ad92b3e54e8a203e213627133df0260dc53f0cc9bb9e03ccae0953de5f2752e303a35e0fdb720a40637e5b31edd3544"; }
{ locale = "vi"; arch = "linux-x86_64"; sha512 = "7a38b4814418516c8971825616874782512bf91d51a798fbdb1b8d8a817d30e72d9fde45238602a6de9cb9c53cd0512acb07f6e16a819ce24fba6467ab1cc8b2"; }
{ locale = "xh"; arch = "linux-i686"; sha512 = "0fe791a3270343598417b093476fc7eb50628a7557c56294b3222e657c62a2b5ce7988243d75ae08f7a11c2b9e437d01d47258b1ac93c2579638ac67e12c4d78"; }
{ locale = "xh"; arch = "linux-x86_64"; sha512 = "f797c52d88b62aaff15419baf5d7c5b2a44909674602ca82c295120b4b0fcb7182a36952f7adeaf7e9878b3d21031e990d22e5f8dcbc5421a3d587ba37f63906"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha512 = "970c14e1f105d6092fd542d73db57260836bf249aee99ab53f43882cb6327520905b7a452e96a6c142676794bf22e13c80e86291bb5b6dcaa09d0d9bb376d4be"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "b811f9d359fb61674781443d71e961ba687fecbe4904622b6ac410e435e31b6118f30726896021d28ae51628ab95092b28181ca0ae471374c0cbc5a740fea496"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha512 = "43f8d6e9cdf5815365e0eb1516ccb5f6c7ac7e19c10d1ee45ee367d721bf1944321879d9966f7000f50d324f14c36f9f8fcd9bb43ef20c780ba39d3c138f2192"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "02f4910b3c5b6f75e2f19c03452ce0534980be7ff18abed8be2a2f9af19c6eee5928c493e618b00d167bb3b2d7e60724741a2f4de1df9b1e48a05923a7649cef"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ach/firefox-48.0b7.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "9fa8e2fe59c149abf5b1f4fad168717aa68c9e3e9acb219aaf257aff953a719c2df1dfd55081c6c4398732c9bb16690e4481b7c3c9f1fc9ba20468ca38d7b9fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ach/firefox-48.0b7.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "b4115232ee0cfa6062fb9c06743d31edc444f9e5481b84cae4c1ec275c55500a16fe7478ee79caa269b669e566701be225c45729946ca950a492b36038d208fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/af/firefox-48.0b7.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "03dde31a027765e7003c89188cfdbd87f57447c8d7f6542e11e01ac4242866f6db98943d8d50188b1e0c41d740f3ee95b5f9ead01e9df5ad9beeb066c0b1e54b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/af/firefox-48.0b7.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "e9973af0cc52e2126ea682067fd7aa11bf071ae2aafab935d704122480a46658139043a29df30c038af85c1fde836ff7725bed21ea4c4778e176adbab704c6ed"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/an/firefox-48.0b7.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "1e23956adc055188e4342cfaa0e38d062bcacaf0fb99895fd2fe3535f4e528890a75a18e0620e881e1fc87d11ce8b21c280c88ed11b2444d037990a11fb8e9af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/an/firefox-48.0b7.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "e75ea9a5ca4860f228d4b2aba3c9ba4d104a7cc24fa138102d80b595e29a391d15fb82d749ff7a03193dccfccc7bbd106dfbffe5ae7152afc4b62f4d05d58ad2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ar/firefox-48.0b7.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "df97f1f2414d9f2c1d5ddc50e901167fe3535ac0f71ef99e08552ff9a5f4b7e6162f258c41d1024e2f886969e7ae80b741c271b551a51ae05a48a3e7987a52b3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ar/firefox-48.0b7.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "79da3baef8806966891b803137f2b9610b3562f0a806ab2fe3234f3320cb0efe11ff523373e933d5d230a6959ca68ab013d64dded47e6043e9fee90202c8bbc7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/as/firefox-48.0b7.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "ab18bd3f015cddf2dfe337556d29a20576dda5879a56242955476f50b0978808d3ec63812666ce73a58904a70edf251e3773ea34a38b955510ad331e5f66751a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/as/firefox-48.0b7.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "26be5b409c5e4acd6a09482d1380f902cbc9948fce33ff5e33c22a8573b5ccd05f10a4b6f84dae8ed9280f5b6568a411837ec7bd1b64bfaf18670e2a45c475cf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ast/firefox-48.0b7.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "30d23a4012caa6faa02871be312ebf867321b5cddf1e74d7680e426af4a6670b34aa48f237ac8801c696d0cd2551f90ab5fe482b4a9bd03bd7d4521e204bba65"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ast/firefox-48.0b7.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "cb0ff48d6cefe69c4f05a83d7b9247b5bccc31db8efa708a7de3ffa67459f8427ac255bb6645e59f7ff6047f0370d24d2668954837aed7d71eae88df6824cced"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/az/firefox-48.0b7.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "00685bee899c7a083fbe2a4dbdbe32df1f291c619e1ca681164a3c88782f6898a11add06a17f13aeb912c635d0fb2ea2c30c0e3bd5ff7cceb63b1134901ecab8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/az/firefox-48.0b7.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "e4133e1a9fb103652037caf21bc18815d89bf5e1a0d7b34abe115715e8e5060de8b00d35326bd3cfb9d5edb7cbe286456748953742e4cb5d5c76c7314a344720"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/be/firefox-48.0b7.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "9444970e5cc3f3359b02b8bc58f13edfd64ae6f99d306ae7d9baa084658c75b85120354614fe2655b600e0005de1b128df1e2967f93dd0fd1c31ee721e0ac306"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/be/firefox-48.0b7.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "08bf09e7b8f8911e42f5e88852f705c1f7263d1b6a0981c07f7ff651e620bd31c1a6baebd8a8a9353e49f9ed50d1c0d55bb88c97faaade0d415cba482ddc6f73"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/bg/firefox-48.0b7.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "1708e547f2ea234537a0dcf40163ac18c641bb4860e74f054325db8ddf4960ee0649348b458a8fad1f5bfbe1fa4308c9fb13d84fb941c2928ea42f6ea77cccff"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/bg/firefox-48.0b7.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "26540e48ce864590cc40a45d4124250674a1977778d3251b5f46701d3fa3b0f6d8a602b5bbe1449040ff943a2ed12bce7758037fe8ab753d0b43eb815e905ffb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/bn-BD/firefox-48.0b7.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "6e37580672455a717be37061c4d3135e72cd6aacaceef20957cafe9fc95ff40a6781dd92a8425e4023f75f4d027c5961d7a3b0b6373501790ec5057da519baec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/bn-BD/firefox-48.0b7.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "1498ed777a7e3aec18945ab01aec80a51e7cf6a202ca38b333ed6aa9517170bf9ec4a3c9e638acb60cac5b01ca16963b41489cdf71cf40655cd87d2ef161d4ad"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/bn-IN/firefox-48.0b7.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "1d9335e8b1268fc163bc31d1afe58613738f08e4ca8a429da63e59e4b862e326cd62d82a686e5710304a5b86e9d2981885ce52aca9913d4cbbcd4c1e0a88e782"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/bn-IN/firefox-48.0b7.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "e686e0a9f8d5078d2a728add3085d0d11fcec9ce8b1a05f242769532ede411f41d8385b2199e2a27edbe8a58648d3e4b91df2d730e6bb17b7cb69c4a22630fb6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/br/firefox-48.0b7.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "19f012125431f7c56ecf9ac12bb44a52aa041a97a0b2c1db3656d6229b4215d5bf492730c2bf08244e38ff120ad9003d4ee0842f834cfef8536b8f40d8e2217d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/br/firefox-48.0b7.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "250c9dc52e661c91163ece0fc195ed29d621508ab5666ae97d74ffeabd0dac1effddcc4d0ad9573c5c44ba9aa746330b5a6dd40693491f52609b1c47e9fe97a0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/bs/firefox-48.0b7.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "fa946cf9eba376ddccae25b44c31cb41dec16c016c678c155d0fb6f235c2932fc59eac0df292940acceaa7f463979495de17c86863450a1a771a277440d2033d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/bs/firefox-48.0b7.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "eaf3e8c8706a6005f6f78645c709cfa2463e47f678baa395db6c562506b872d9d110e973186b4408022cb1d4a8b343d7c84e2e0f1a3c18e3d5c04b72c23243b4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ca/firefox-48.0b7.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "c4fefe7ea67edda4cf5ff7dccf6639246fb73eae683ef72bb7c75e25d630cea78fad38d11d690d9786e43e506cff548df3c867fe91d7570048759933f2ec0523"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ca/firefox-48.0b7.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "9bcad65fcbfdc85892fc552809da740fd28094bf6be32ddf783a6d011c901f3a17d8ba8d33649111978cfd75274641f6e0aa3513b2d05ed100f2d2d9a8cf9057"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/cak/firefox-48.0b7.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "430b4f156d4130d2a689349c172c40c635ebb4e41d8dff65f7e3971b92ce7682661de763a1ccd706c9fcd11d3590d53193502c01964b703a7a304313c94e710b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/cak/firefox-48.0b7.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "46f3fd5a750618f8bfbc8015748e12df62b1f3db470abd3e7b0edba01ffe4dae1909cdbda5dd5cdd78a0d62845eebaf8e6223cc11e4b88b3710e1ce62e3ebd39"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/cs/firefox-48.0b7.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "d8b8eed71db048dbcd25f116e70040d5105dc3ea9ea69a77064807862f19229cc215ef1482c94609276b914ed7fe55250889b986ac1d11ed086e4de3bb15b9b3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/cs/firefox-48.0b7.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "01e23193ad0bb1c0cd218bf22e301fa79da810ec79f4d68afdbb6d7f3da5871de3f15f38abb5cb5440fe29a3781600dce4733fef67d0410ffc6e63b0c29fb9e4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/cy/firefox-48.0b7.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "451f4eaae757e9474e905135caa2718d75551f2893a6343256b8c8595dd312e0c5416a7d7488b6670cd361db81d44097fb3c54c3cfa27a7efe6386652addb472"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/cy/firefox-48.0b7.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "c260f1090ffe09cc714ade4105c74bf234ab03f032cb066cecbc0308866c33169c9b3c7b37f3acd70d17794878d9e7e9f928a29c5e8aa2172d8475ca7460fb15"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/da/firefox-48.0b7.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "a449772de22183399c34d91b2c747253e7e32bd388e37b6f7194d68b87faf74df805886bc75230b19766ffb40e312c76d439754902b6d3c8b2057a654e656f33"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/da/firefox-48.0b7.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "990bf989ce48afd5261c7a6d6a4e3ada0c40acaaa5cc8c369724ff7eb73f5800009ea2c4584e8afe926f77d4b18af95510558bd99ff564754625e1c1dfe0d5ef"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/de/firefox-48.0b7.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "5c6cc3a65a31043ba0143d9609ad006b6cb4f9af4cbc57efb4d2012ec08438b63045dca06c93b7d9c657f7cab9e19e01ed2b5dc78b79f2d9f59ff85836a89009"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/de/firefox-48.0b7.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "1dcee925aa75eb0acdf3e21a0578dc7f747dbef8cecfe5024dba66461e03420ce9a9211b2c69a35861cdc75facb956f576cfe3664f91f4085aba1585d976fccd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/dsb/firefox-48.0b7.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "c327582db0a1f78b1d4ec56115220c4bd5751eb46d16f26bd589b4b64291a66845d0277c4eb099cf197225771414ad1bd16a56d41587befd3fa1c766095c697d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/dsb/firefox-48.0b7.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "eb049a000e908e5d46726d09ad8a219e1c60ff2f29959f5cfa416a788e5c747f50ff5e6b807fe30f7e013a7f5587f607834ff0faad6e060a33db55d04dc6cfb4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/el/firefox-48.0b7.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "634320e4103b0ce72a6c132afc8e33ff4a234669f835a23e526c227e94f62be62075cb69d6883831d72d13d309d4e1ecf9947d850c8079efe0c880f7b7b79aed"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/el/firefox-48.0b7.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "85c4a47f5d3c65a6ee623f89420141f0cf7e02d8c7338d39c8c672cb0aae2364afd37c66fa740bbfb88c52aa37da6b9d106a824845c881e4de6c2d2604477d47"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/en-GB/firefox-48.0b7.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "1ea0aafb65140f9c09aa4557d7460cfa9f206bd963137ec72a86d237be9cc3ca131b616c198e330d6328f48ae713cd5ac9f53159477b131e55e3ceef8e2ed7b9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/en-GB/firefox-48.0b7.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "1a726088d2843ce835154675c6dca3e877af6281bac63aada1e4969782350e985428971b216e9225646c8daf523907394a21080e7f4e40225b9ff62d24df4295"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/en-US/firefox-48.0b7.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "ded034cd43b45d73539a3c3f8a196f26d5e80c3cba84e3d2ccb925815b661b4c9a3eaad1d35bc363ecee70e3ccec953bb03795c6fad33debd1a81ce8dc71669c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/en-US/firefox-48.0b7.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "0bdb77bee7fb8720f1154ffa486a8f6564ca592c56ce07b823800bd54218bc01c57bc27cddc73524c8f8fa1944c869523880a02fc698e44c5c71f4c800dd7208"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/en-ZA/firefox-48.0b7.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "9557d2b57e09c390cd706673c6b2203f2a1beec8952a63e2d891d00b975c67ba3b5f0f6da622e81572d090aecee42ea8ff398df61845f7564ddfd42818bdaf4f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/en-ZA/firefox-48.0b7.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "0617a7b1117fe47bec89b86f89248cef981812a2126e64779d2f7b9c81fc11b38cb3ffe8f039aec72d4904cbb95505519e7ce64c115c1613e96adf90ee72f5d3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/eo/firefox-48.0b7.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "3e4ffa7728382e6862f224be0f576953120b563e0b68599df545ffb46483ae470d12280556a97b238aba0427651be744e9e93e7ba19be3d0764698367b4ab5ac"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/eo/firefox-48.0b7.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "acf8527148b42e9ed50d027dd9c9a6de11975d40556b2ceb27bbb2fbe0e37a4f2839ca643972b55de52f95619eb432e16b12f0cfb501a5be3824e977315ef89d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/es-AR/firefox-48.0b7.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "ed70d0cf72acbcac71e0684ef755d987702412103bab21510daa7107b369186569e848586009fb3e654f54ca657e7cb259ad5574d5ca1e16c517100946135466"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/es-AR/firefox-48.0b7.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "541f5579e3889413b6cfb1be40f5630ab401b7b0b3054cef1a633d89e36b59b1d83c86e44ccbb3acc8fbb13f2851b16e0b43f9aece4f98b0713b377606e742af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/es-CL/firefox-48.0b7.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "a44839ac7686b1d252cb04fe17ef5c2790d30214e5fa34a3cbd11f12dfbd9168acf7b33ef9dc22a06edd624726511e718691a973c5b70665eff78d0a18287413"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/es-CL/firefox-48.0b7.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "84b768876fcbd95dd1f9734368c73b51b82ff445df975bfe913eb74c139e35d069acb1428b9afc51357c4567dba0d03950d7199b3fb43017df4987aa69247450"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/es-ES/firefox-48.0b7.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "727f670438db45203d403746b7396b3b754b888b4a1d104b2bd0599790ef12b0a16db9a32b51617ea05bdff4f2ac696566970e83029e7e3d25434ddda8c4e88f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/es-ES/firefox-48.0b7.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "638ebd73556eacf0f2b38ef2d71db5922299d10c0d5b72b6bc7e935d814e300c17dd835f94517b8d0e62ba6e54d5bf5059dcaf57eb03a03bb7068161440f7c22"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/es-MX/firefox-48.0b7.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "da88b8c3d5c9aeb33cbd637b00f4790225b7b46f4b8a1edfc6c49edeb1e29929c4690bd66de0afd31492b213a67eb617355adfe5a7d7b5ded09208eb3a861e36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/es-MX/firefox-48.0b7.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "0581028fea7610b44f27a6e5b25203020768d87e83e665aca24e753bbc0f0d49e2935c8f12755e6d4911e5f79052b4362447d1dfdc37838bfe9976e0d218e49e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/et/firefox-48.0b7.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "6d150372dff1113d14cb32003fcbbfc11f9aff6ed8a0fc8f5f8e2d5d3119b34a8471469d69e8fe48161297e69f95185c414680b3c59bb95d7e483ab2805b5729"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/et/firefox-48.0b7.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "72d784c90c054d29420582a9a71d96c9a7270b1ac5592d8b920f8148542f17181d9cd71d019c0294c60112dde94191a686ad105993d7bd8340142ca849b5c150"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/eu/firefox-48.0b7.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "0c2b1f0f886436c8d9fe6eead6718ee47e72fd988e1e4d83a70200f6d085419636058d6767a66d273842cb44573d39f58f72181ddfce01ca60f392c6c18df22c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/eu/firefox-48.0b7.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "7c03846d49cf1dba85202b2f7b6ed722898da5185a956ffde1c88df454560eb682ee562f782c3e21bf62b41ab156048ba1c63efacf7fd46f8fd7adf0536cff5d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/fa/firefox-48.0b7.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "3a21d3ecb88827de7094aa4ccf29005ffbf3f88681c459aa9f159d6dd6b04affda08661b1b77986b73a19de1fd2fdba2ceb91036ecc718a69cc5cb16e8c8bbe9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/fa/firefox-48.0b7.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "4750663d5eae7ba9fa282b0dd97e05cbcf3ace8b0715983525ae207de57d352b45495e0dcc46381979997532a8e20c85567a9de18056181f5d408d57cefddaa4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ff/firefox-48.0b7.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "e9f452656328e3c5a2dd7dde23b84ae535551bcba16b14cc58fbf8aa33f2eb8655cb4ff524a15b0a2db2d4af9ef5da4ca853fedb5c0d05b877fb0a8656833311"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ff/firefox-48.0b7.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "f43daeec8c0647a8ee984d3541172516d1d8822596ab66a1a9651cd31d447a35f078725f1eb4b30a3f01c02b8573fb0ad268ada70ce013cf1932602f22119e4e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/fi/firefox-48.0b7.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "477e5594a9821864db879ebf04b74852c711c5f0a43e00c02bf17754817c20279c56705aa3e3b51bccd52f9380bc242b12bf58cf40a2b64d9697c8ea76270771"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/fi/firefox-48.0b7.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "aeef4b397c9972c055392faf64947d16173a903c290e4d710067c5cbe6c422acb2172f17c8b72bd5b80ae883f4d22c905ca0581c11822975a42031f2621852b3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/fr/firefox-48.0b7.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "363bd189e7988393a97c7fd9544537068cb541e762427115bde4a3f05297302a30604a5e6a34c97b037c8f2e9c25ddcdee0ebbd8c292ba007362b6de858643c6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/fr/firefox-48.0b7.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "4da717be716a1c16440be76d988ed2ac2ff73bf5a8734d1025ff190cb6d3b9072bd613d973e65207102e4e54479c32e8101aef59de533487b60a1cf10e7ed9ae"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/fy-NL/firefox-48.0b7.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "49e343a363afb94a8b7f7d2aca557127af4743a97678d123fe2a4355d542497da1f5c43a9c83ec974586ca707c3988d416c9e55090c9bae10923bc5aae785bd9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/fy-NL/firefox-48.0b7.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "1c53d25d464e36d7dcdda0ba6dbe5bfc85c03309dd22edc916c97aac4ef7f4bdf6329349fe66d27e1e885b7ad76359e27c6fa885302905e6c6e785da1535b53e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ga-IE/firefox-48.0b7.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "bfa9b70d5b2c891a82b92ad78e5f7b71df005ec142a1fe60e6bbc5717152f1b5325499fa5baca6a9f4e01be104b0dcddc11994a510e7cb41a5f1709dbe00c895"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ga-IE/firefox-48.0b7.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "3d6bc3254bcffeda6260168bc43e58e1ea517543831579892b784cb43f51d9cf0b598f6acf1b56f51b72b7946f1904eb96168f046a80a76923ba52f265ef6d12"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/gd/firefox-48.0b7.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "4c12d70a50e8d1b5bb2a912f3d070b30783757ea339eefa87e63c46f8e47646e69acaf975f3a565dff67bb65933bcf070bb823c195a5df9ba8968ac9a7fd82ea"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/gd/firefox-48.0b7.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "fdb748f6914902308d074262d4a1816d8a0a26a3e7f159d013d321875297b7c46eb266473361567c92c5011234ddc66a89f0a88b7ec6435c39e7488167d0b63c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/gl/firefox-48.0b7.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "e450407c27de08ed93b088222fda97daea6cd69ec93a75f267ec67a510f3ea6a657eb4eed67844990f8815be28fa1af8fd722f208c3b6193fba38188eb03b134"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/gl/firefox-48.0b7.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "be63e8e8dc2daa586fccfcf4e41979cc6746ab2797962a86b6644c9ed14d0f228a0a83aeea7ca115e4a13f33bd5048075ceff9c0ee7516ba1fc50dcece31d88d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/gn/firefox-48.0b7.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "545a5c29789b626e47db56d0b962989f8a73244d865ef03bbff57272f463706cc5de1cc5e346b0188d4dbd7caa3fb67f6c0ea6064320d6c81a7db678b8eac86c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/gn/firefox-48.0b7.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "4dff9aad6938c17f3b97b1901831cdf1f993f0c8c03c3d03881680e1a5d82a10c414f85d5d6ef8791ea5c352eeede94036075b8a14046b87b19caf6cb917f950"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/gu-IN/firefox-48.0b7.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "a63a9c54fd2e3db1c161d33b6c725711bbe43d5e915f6bfe50ebe9f667a47299989e9096ac8b8caf80c7f69f0fb276fce33873dc77b930d0cc228d0472ae81af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/gu-IN/firefox-48.0b7.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "a9dd610aefc900d712bc68075d32ebe0e87a1de05af9b8592533db8cb65a1a6f56db5a566cd3c013a84d72802eac917fafd42517c0ce53b4701f58711ef0b7d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/he/firefox-48.0b7.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "5b0b46f00e3c61ea8c00b849b5605357979c7ec4276f9f490b6e75efee28fd4ba2aa285ebf689bacf58a40f03c2336e77a7b19c7fb518f95d900150c3c70d62e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/he/firefox-48.0b7.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "d67ef81f2c539718ff6916349f9ecfff42983c2e28b02b64e8ac71c54ef2dbfe5e9a4da6ec6f1b4361e458940bfde6f4da7f22bc19515cbdb98cc0166bdb1c27"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/hi-IN/firefox-48.0b7.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "a15ac725626fdc4f9bfe02e31da4385af32c57c407dce7dc321e259fb29d4c46a254bd484dce8ea7d3e322fcdeef07d62f64a874d45f0460bd2b17007f688b71"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/hi-IN/firefox-48.0b7.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "2ded18a44554ddfe73721a35af71b77c600b362dce138ee78a633fa8d4d91a5fd55921654ff9c2eae05d0ebd9ede1de8b5c9bc07f761e068339474bb8622732e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/hr/firefox-48.0b7.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "797fa8e8ea628b9855f42bc3f77e1928743f9b96566ce886cf2897dbed920a6f83089f518bd07f5f820374e0968de848b46d8a6777d8c77ca581a1b172fd25c1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/hr/firefox-48.0b7.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "623eb40846a769825300177ffcde2f18721474605e6bbf7cacc0f26f2d7e3e68f0699a173fd0154bdbc6f56c13befe2bf45caa76dd3de7ba2249cb153b8624f2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/hsb/firefox-48.0b7.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "58b1f83e123fbd32ca6d824aa87e0834d92f8c148db086fba5414519aa77a1469f5010077b119dd6758bf58165afdc1bcb0fe5b0b664a68fb73951047082ec07"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/hsb/firefox-48.0b7.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "853b6fa276e7e6c1ba0a30b95f8fde73e4bd4fb7e745c3722fed9de00bdae0d1739b78570a0108d2ff9efb73e8052e5d5192151ae789c5b336946039ece560d0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/hu/firefox-48.0b7.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "984d3ab191091e9956bd28a2112715d0c27a24e5345b9c515e2b0521030200d2742041340db0d916915c87071c70b3d60762ca278dbffb88ab35611f30337468"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/hu/firefox-48.0b7.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "cae180b050bd956bca474b187648dc969c2ca8ca3816ebe46d379681bbd470029d93e6518e7fe6170864c2466e6b3752aa3f372df34b672f93687704a26f0b83"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/hy-AM/firefox-48.0b7.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "f26993353fab3bbae965b7d7cdef57bee60839e4a726c75c966ff2e99cf6edd3e249bb3e3adc7791b1095869fe6f5b43861337f8cc6d3017600e61fe436497a8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/hy-AM/firefox-48.0b7.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "b7c228256d16587720f186c1a257cd157d8302e597dfa6cb72fd984c05105cfbe6e33578addce044a88ae11b11e4e6703aea432d5823526caffb08e81b1b300d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/id/firefox-48.0b7.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "324de4444814ec0e57c57fc4ca07dca20e10bb0a80df33ee01dcb8908caf6e5310563bfd66b62ea4eb5f595ed81edd9c504a8b6f81317bf85c4acdf9da2181af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/id/firefox-48.0b7.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "8b199bf64955d23fdbf47c92c57022e7742dce10c02242cd3cecfb662303402dce4a6c784c141a63007f4ea92b78e0ea0fa74fb6bddf157a848b2e85f50acde9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/is/firefox-48.0b7.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "4addbf9e9626f6f81a276e506b5974232da161e108c194ea34f755efa40e5f5b4df6e4feedc90309740b4e8c04b946a8da74cebc28867f2d23ca71d9c0dc4cf0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/is/firefox-48.0b7.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "843bcdaf5855dba929b4e12ba88388e3dbe3372051a3d789ac5951a66ff4c044af563e2c04e005788bf087590444d390ccdc0646ed37571e95cfa5225976cd36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/it/firefox-48.0b7.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "e637a52c2d365835de33b8e3f3dae7beac254169ac65671282252c3ce33816c3af3cd696c73d15a3f3a3827c72376245ead9b0f655d2bdc857156bab353ddf69"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/it/firefox-48.0b7.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "f62acc4a2d2e8fee43f3744e3adf6b2850de9b7ada59a9d985b5ea0051a2f00c2fb0ce14bffefe679c0359897e1920e071aacd177bc140719f47d64dccf799c6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ja/firefox-48.0b7.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "081aa992d79d9a07e82a3027294752fc338e715e0b26edd6dfbb80fad3fab78fc4c0ab5082cf8880912c3a3249d7d35b0ae99c2152bb87a025219e7ecf16f330"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ja/firefox-48.0b7.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "3ffd093818c2fadc5d6e6a3ad9891b84352d522686ff1c23a9574c981a2421974d6346284db686a382193078ef3ad4ea8eaa081d9ecf59e4d07c396e1a1b223a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/kk/firefox-48.0b7.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "492e2165c88e5e2a1fcce1bfc2c994f7daddc1ded69d6b486f21d0655c6ccf112b1202080cc989bed68a1c35502c078025135af13ddcb0548b17d6f830c09b66"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/kk/firefox-48.0b7.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "f5e7a56849dd1aafc13b3b0772fdb482cf6e283ad98cbf2aa655c016d443242d9b760cf133c130813f04cc572de3f5ccf5cd4beeac98d07cdd4d9441838b1f34"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/km/firefox-48.0b7.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "d21d401e1505bdea1dda8fcd65622547ff919e0fe2c3ef402c1a5a67a5c61d6c082730ae21286def66699a994f0196202ba03956e9f5ba42a166d8dbff2a1aa6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/km/firefox-48.0b7.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "c0e08b44b09c3f8c0e17335c0d287285e3f6cd5e308688da36647ba226ecb10c98f87f92ca6b2d50e0718e39757bcace7132390ffc4d2a339db5d3cfbc37b85b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/kn/firefox-48.0b7.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "71d3dbd2fffbf51c64fe7af008e27a2d9ff3dba3417bd9c0f1106fcfd445f88c2865ba03799b8fbbb00c13242c1cc7995b5aeed3d20c19b95448a7597378023d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/kn/firefox-48.0b7.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "dda7d698c760ef750575f5978599bb964cc008a18ec048e744aecd17cf41d6eb2b9a69ea13efedf5a5d5a46da990c1df817027b7762cd169ca2f30a0920ebf98"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ko/firefox-48.0b7.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "f427847b0a4d3e8c52f59a75e4b1971ae96998d202b44ed360f5781775d3cb1c705923a4acb96a365925fa1f27af7e7292d3e4f0af6c22af9803600d7a64a9ee"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ko/firefox-48.0b7.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "fda5463fb43253a392616ea7f0e287464e83bc9f4c9b3a88ae40f0e2bb1b18b5873ebe7304d27b76b2016312d9a2ff416f3006f5a75f315e2be5f8ea16be82a5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/lij/firefox-48.0b7.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "38d539b3b0ad87b557aa9c75212c64978fe1397c797247d94ac6b2fec33723d6d05de80f1d79b84989424fe5074204eda4af3f23d163dbcfcd035e5f7f568ce8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/lij/firefox-48.0b7.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "a03e8261420d0b336545bf140916fea9cdf6cf2ba5bb55de6f039141011bccec49e88fddf7664e7a574c6da525f2f6646793b9d505135a311710a4d4014fde5d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/lt/firefox-48.0b7.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "ca11b61ed252863b6efcdab2438fca21bf837f29bcc7b719e5a99065aedb8f75bcae8beaec1a273624ea3c2a7a57db4386f52096777755297183691498f33c62"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/lt/firefox-48.0b7.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "7d6af8577ce9c9e3ab13ee3313b4c35bdbeef802bb5a5a15fd991d4fcf063b49ea1292718a4d74ed57b7c6f00889c96c9261bba442476d6aa090623afccebd9b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/lv/firefox-48.0b7.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "19024158acd59afccdbe39430e463e9b441cf1950aadc713ff8a74d9da97cc11d9437d86d0542306a8fa4a29a69547b4d59aa28be2bbec8a434425f20ca0d1dd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/lv/firefox-48.0b7.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "73c81902a047a13c01fddc07eeab9886c0c55e2a3ebd30fee0a036878e52580f50c47a1dd4050cf39587b63432cc9c2947c88200fb2c95b143379a21ea60c400"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/mai/firefox-48.0b7.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "d6a2d0b8821872b4f78f2fc9ec6ab9e602673bfff2d1b6339a37532f883b61134719d0e4e9caba53d3198107b895b3ce193839de2a374391c3fd58e595be1eca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/mai/firefox-48.0b7.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "bdb1e2e97b736b70a7d11538e3fc16be55889b14397709094c2efea1faa3c57b0c272cacca0fb0b307a3cba656145df3f7945cba4e9f762f3f9ee4f389e3ab50"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/mk/firefox-48.0b7.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "0c52c93a00e1b82b5569787a624806f1c3175d40813da3da0833b23006cb377dd1b693120f96c1a6c172093393ad08321efc52262c5260e80fe037e709c94ae4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/mk/firefox-48.0b7.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "bc2c513eb37a667195180ba3933407c7f90cb1e815f2c646a5410fb942e562c3659eaf3200ec6397a12987267ea26be1c71dd4467f80045c79bb793f2144cd89"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ml/firefox-48.0b7.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "7336e98002f71f6ff9b51d94b5c2ca2b5ff412d9069837053a63e3819013b36ad6587b9675089243f19474eda2906767e98b2cb3e96ace266ea29f5142c2533d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ml/firefox-48.0b7.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "fe70de56fa9d3bf56d355058c4412427f967f69467dd7b49cd1fa26c6abc898ae061b49bf259eaba7073fd926c1e8e5901a0979a88007ef3ba3d5caf07329203"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/mr/firefox-48.0b7.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "180072a70d38d4607b8c2105dbfae2647900796208f6f5a6111419c4712e6ea959a6f5ca5068f1f7653ece073087e2f3c5dff177d92da4d92aba4ac1b4b7971e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/mr/firefox-48.0b7.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "08bd093d657ae4e6b6136d1627ebd355ea2794c2e2824ca4d4121a5a506b0682a65e1416aa2cab49fd00db4c3736ce09101225b0333385032a958309cd7e4edb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ms/firefox-48.0b7.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "a3bdac7effbb5a29f2ff1385da3de4a2c16a914d1d3306cee22b379779b1eb9d45f6a6c6bf10ef1e1a11ab52834a08c5510a38303c10cc6e4cfb96b32ce2769a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ms/firefox-48.0b7.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "08f2fe47c14ff5432f8944312e3d45d26dd3fa56bf4b0d350b4504cdc639eab147e3da9edc25b8551ab5156dc214101831c2c1c0f1b159201e5a061461e51285"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/nb-NO/firefox-48.0b7.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "cfbb14897df334df5f11305ec44f8e4b736a8320b6ed39e5581be413cc4daf92908ed54215e24e35e34e0904a1a500f295ebe64871e53438658d0340f7e708ad"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/nb-NO/firefox-48.0b7.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "19403a121e9e86447f3265ef72bda4e3a7fca55dfa76e8a25381ff97412329705f8b8a79031fd0116ac7e0fdc29fb9afa0c1de14287399f28e95d181fc933470"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/nl/firefox-48.0b7.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "73789e769bcf2bd710f5234cc9c0f046abd5aed5d66b4e900b19f87a3c23a7daccfd086d9fb80fc6ced3742ccec90e96aba785330a2dc9cc79d76780fdf56cf3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/nl/firefox-48.0b7.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "07a842dbcde5fa7c5623fe5e8bd8dec04b33b300f52a1ffa8fe604ddf93df9879b9179bf8363cca4aa62a1c878ed77fb5e0b5db85355b4a2d1405888a9a6268d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/nn-NO/firefox-48.0b7.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "b82f14f66dee3036dd62d0af2889137d51521ff51494584fd8f50f380e8ead3d8290a73843a0aaa7dfc7e38c3f69c28b661185841c3f71f11eec686336c7f36b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/nn-NO/firefox-48.0b7.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "9b627e063644d138c5b9b5bfce48431f8926fb3b13caa01547aebf007a002c75f8ae3818d5643f212c2e6d1e6203c49a24412aaadcc2dc5539824c168ecea52e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/or/firefox-48.0b7.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "7e36e94c90cd2ce6116a56a5f1ae2772eabfb19bfbe0a5bb616173f0e3cfc6d9f3cf77db07c767fe2673b29437ea8cdd70584e2b65752660d6c4878d598e0998"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/or/firefox-48.0b7.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "cfb9989b2ff2e2a81c3453dc7b03113e251d57b1925ba1fe60bcff4bca9fa16fe8ce6409cda6f90d7afde832b370a731d86c999df08e77a7c69ad6e72181f6e8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/pa-IN/firefox-48.0b7.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "63e4f8e6e5d6360914073a1a8b9dfd9d1936ad3efef6994a880bde075468cd37809294d3cd80dbb693b429dd82426e06632b6ea87f776da509bfb1ed1cdc1848"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/pa-IN/firefox-48.0b7.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "49a065634297b37532882cad5b13687fb6abfe0fdb577a4ea1bf86568abe2ef5b29bec7d786a47b8a12ad06d4fa78faffdea1f531245488efc42b14da24d2f52"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/pl/firefox-48.0b7.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "06ff4df2f58d8c39ded84915d5f4ea2137f1692b7955c205a738fe65adc8c324c9e4e1f46963e40dfb74c483a33028d6157609e9f99819683008e0e5f992e52e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/pl/firefox-48.0b7.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "b07fc75e55b860ac8ce03262dfbe77ec558842baef037f0e390245f3bffab03df31f6488811b630ed5355878dc01e4930b839251fa726a121fcbfac2eddae9d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/pt-BR/firefox-48.0b7.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "56a5f63dda3c359203a1ada88dda971aefd4219e0d76a8123792131cc5abaf23a1bda2498c1f93725b853576f572205905f3b7d16569611adcf87b7bc96528b2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/pt-BR/firefox-48.0b7.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "5f7af50fa1620c17e4473c869fa0a4384518b79514108317c1aa8c5f32fe6635bf88eb53d589f4714fcae740988d56163e293960b40b2165eeb6fdc7146586c5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/pt-PT/firefox-48.0b7.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "b3f4913abae949f1783cb6cfe934b97f3a93a579c8f57d3e29d87e15169234b58c5a243395ddd0944edf4519a9d3d735424bf14ff7280d7a54494989cbe7aed9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/pt-PT/firefox-48.0b7.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "71853f84f9f1545a099bee0994bc598845aceabf562730c1fbb7b0f9c3ea8113e6ba473840feadf76aa0d35ac0ae5a038188ef6078fdb192de99396973cfebce"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/rm/firefox-48.0b7.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "d1aef184253166dcab16b1cf25bf58131ec76e30af84ea0a75d89106e253ae4b5ec17d55039b1d1584f39c4ee1ef7eb28b73144cb8312fe15aba74e43cea0ae4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/rm/firefox-48.0b7.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "1ebe23f6c352e088180ebc9f03c4e35b1c08a2c8b9efc64ef710c8bb0c70c082bcdc3f23c436a427a95bccc219a5be8011b46d49047483fb57a2be2ea61577a1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ro/firefox-48.0b7.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "6ae17fafcc61dcf5ea548e55c7535ac196402c20468ed53eb32a529eb756a88264660dc4acaf1f27dfeb9bf4e5515c75287b4cc8ac42c765358908659ee12d03"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ro/firefox-48.0b7.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "9635df3cf66825a4ec30ca03f944929977bd526146d5991b03a2539e59a6d5a979f8d25697e9aa6e051ebd6f05bbfeb993e11e547491a272e77c36b695402d93"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ru/firefox-48.0b7.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "ca1f6e5e32da878f50b2cfa5f42d78ed93423e0f4f308e914a184747c59a82f0d2db5c768fb65a16bb0409070614be44ea14351c21904e32baf5470b81fd4925"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ru/firefox-48.0b7.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "14f66c3db5d3f17e064eeb80eec31ea4d531b827248eaa5d6d1c936962b77503f7b9adb16daf754909e4749f8548f4be8f86f3d01345bf9999e70d8e7c52f6d6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/si/firefox-48.0b7.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "cd45ccd8f3e41ae3f4833f6f5a821dee061898fba61c974099361eb84272676b146896727889f8adecdd563db9c4ce0de666221eacc7f0ef841ce4a5155961d9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/si/firefox-48.0b7.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "234fe0d5677b67bf5458df4290b055159860f43a3afa66982b9ed9279a5e74ba90ef6cde23fdbd9fb7134ef0ba47b270880b3561f35fdf2286b23e128f9d0da0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/sk/firefox-48.0b7.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "0cdc7209cbb2d537ba19ba206b53534f18ec0cfba1ad67a435f7134b1161f13236db2bce707cad50687790861e09ddd31a35eec8fd4965d4b1c697a84b4e00f4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/sk/firefox-48.0b7.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "8db988c2fe8624d9b7154a39df173f2bec70369edebcb02363f5a1ff50e299590722961d58c96bc7cd003e14b7db8e6c1c78a488bd1bf3721e880df1e14fed08"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/sl/firefox-48.0b7.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "a67d0bb63da12db2a1d936b40dfbda4f4473a67c8937c771b8b07c651eb9302128cdce01c02f1bf52ea641dcd9520b5d79561c07a88004ab39ae4ddf28a6cfc0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/sl/firefox-48.0b7.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "d0f179237a4dfc59d8e847f5393ce7d59c6f399bc9bf5113f70f3850e3452d14542f08ac1b2faf0ec291b0f80183553d4b44c64866902db4ee891f00703bfe4b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/son/firefox-48.0b7.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "f66d6383be284933b2b62432b86e6ffa636c737ff5ad2d8159dab527cd951501eedcbe9a41d197fc1a7f14404ead4b2f25b7c1bd1725bef80a5dcba6a793ea42"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/son/firefox-48.0b7.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "bf461c7cf0f24cc091af8806097b759a5ceb5934fd96011e003a438ea5de0dd9221241665c3b713dbb3485f13070cd7aecc23902a28b2f84bb6bcd69d96b95d6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/sq/firefox-48.0b7.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "cac1528dbddbf0163391cbc7860cd048376de7012950fdb74beb8f0dbecdbfda5b41dc347d100b0a83b31d3b324211e7a253dfbfafbc72f083013250660139c0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/sq/firefox-48.0b7.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "bc96183968912b8ccd6e46adf82c49777f19b1692a5a06ccc9e24d4cba31fbddca79993f6e33a1693da0a794c081d8696d96dfe84de32003f190c2cceb484e9e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/sr/firefox-48.0b7.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "4f5ae88197d4841cb38da7b0b8c5cc0ac8a228f6d1f6851bfa8782dc4ae91124da25a2235a13f9074d29498ff227602bafeb2a475e1f83f116ae6df26a575f66"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/sr/firefox-48.0b7.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "334695dbd86e2fe674897b23c9144444e984e16c5cb813a980fbc6b025b214aaf344019dddb8612125c26ab1b6da4b9007dcffc1ddf205cbf226d43f536728ce"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/sv-SE/firefox-48.0b7.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "9bb2a9d07db3f7840e56368edbdaa3760abb2a5e9a266f75ac84ddafe0ab42b582613cce581dd898761ecb869b85ec515a113a79ee1c3470ae48ba261f559c8b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/sv-SE/firefox-48.0b7.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "3a7dbf64988527a3d1f88fa1840bdf8292cf90ce21b5823aedeb2fb9263a2b7ffd9f89d2709e2a2d208f0c7e70d3819a92c7859cc2c2510a4f0fe8160599d3b4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/ta/firefox-48.0b7.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "4d6df0bc1dfbb8a0761250fa7bcc3575af66ea0e91e6ed18d340eac96e4ae2c50e1f873c54f10eecc08a0902f3dcb9a9df753d6d9f6a640e7421fa9bf38f884e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/ta/firefox-48.0b7.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "b13dc2570f7c2f5d4a323aabf1448d04550d6356bd43b143c10fdc7e88a97d79d93b8145c3d7230e9f417a147f5884af3217738e5190955ab61459703bfe5954"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/te/firefox-48.0b7.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "b3540cdfe33168c6b77386d3d32dd3a44c3198e9669fac89129549f6240475e657c2e790a38f985e85e20315df0769fdee57c65513c914ebee239f51e7932043"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/te/firefox-48.0b7.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "3aa1ea89e62fa74208c5336c99aa6bdd98358852a032e1c90a70a48b6903523d08cc03e62976e10bfae86cfe0b431befd9a33bd62ef1f262d58bd9d5940255fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/th/firefox-48.0b7.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "8e2e979f54bef8979367b7bc5b54eafbcf774dd4ec47a65352e8529d76edb6a4ea331fa8dafe82894868f4cd6b269424f06668a46596d099400a980694b03db3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/th/firefox-48.0b7.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "708841b24ad871cef003040a59379dac33b2131bb699ede2146d02b6be7f562057c6713d050e201075341dbbb8a7fb400c6852cb4d1de2064fcd03ecdda6450f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/tr/firefox-48.0b7.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "788e91d5af695acfdca1b02eb422efc8ea35652dadffd3b03babe5622c6e8d0ad1dd200a63589329a28eed3e0ca723e838ceafa721c45a86ffcc34aabc462671"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/tr/firefox-48.0b7.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "370fc35b68ec734e9f5544f7cb74cb07d706f3e1c181f25c7e1b6e5fe1f9ee1bd9b289e164792e4a31c9fe7fb098c5114919234cda0583794f8964f14d60c4f3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/uk/firefox-48.0b7.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "463da060477f0b9831fce5e00248d841fa7b9ccae1e70fd707966aa09f55b7bd4eb89ee04b41ed6619ce465c86ce84236fafe14268a2b97c482830a2c6f8f77e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/uk/firefox-48.0b7.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "7a085f96ad6f67092f11ac1605541f1dd39a5ded50a3375e50596e18c76e992a1ec9a648a2ffcf4fefee09a3644d6d5d0abcbb43f5173a1d086f3c38b4ed7ed3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/uz/firefox-48.0b7.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "e3458b936fa06aab7ad5fb37c8bb0e3d1391e764382643b9978ded9e175dbe14fd3658f9b0903a0a5a74bb1aa1d56340fef37f19ca9ed92d3ba3ed28174c2cd2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/uz/firefox-48.0b7.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "2899fc4bd5b40996aebd0c67627ddd40bd9c3778001afc23a7d4a232a12ababf4504568594aab045eddf2a1ad71e026bbc832b5ddd265132c74325eb84523a82"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/vi/firefox-48.0b7.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "c8cbd21b1ec2962e30a525bf7d1f45f449aa80448f3c8cedf2ffd54b2f7e1e07d8f0ceb2c5fdb3a9bd7e2df8fae0b14c65d0d84fd60f6cece8ececec7df468a1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/vi/firefox-48.0b7.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "86fd5cf184aa8b897b37dc0f05bdce5dba64e7b8d7d6fea79d42e7a591a141af7b28e87e15a1a98d828ed259c097005b8ff8f52fa5c33873eed199d5f2a391b3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/xh/firefox-48.0b7.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "703a39b4d0fbb522c9b7a2c24780776d804025b659a6bfc1b875924429f05d55f2eb57bc333dfc6b0b0b18bf8b18dabdb7a91ec7696cdefb404cbf0b2afd89b7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/xh/firefox-48.0b7.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "0551330c8203a93db60f5c4570a03fbd7b63f243eabe2eb0465bb8e3fa6c2389e402b29237fd91f98455f74360c6056d31fc1c1f66c5035c57ff4c8b2500070f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/zh-CN/firefox-48.0b7.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "8b9293827007bd0d510ab84e15553f4f396dc058a9871651d63638936fa03cb628ffd31bc2d01dfeee9935ad18976e0941345217e1e161df0ddc7a0e4b527ae6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/zh-CN/firefox-48.0b7.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "ecdb91365c00090388b0d0e0b9bf7fc327b6d142c3671fa96e626a744852ee838220efcbcdc57a6fe2f17d8b3a3b57fc3644b30d965a0a5c118cab421755dd05"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-i686/zh-TW/firefox-48.0b7.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "9f65780b2952210ba613767fb885dd77af3e96596e2d7833902318ac7508c98172abb2a42d3c33c7bdb63826379f039ee50f0df3436c122a4bc794d4e9fd3a20"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b7/linux-x86_64/zh-TW/firefox-48.0b7.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "a915d396e093f2d87f2ee6cfe20f3c26fb6c524968fee0c8d1cbbf1e53a6cdec86921b6e2f252ca3a8dc13bbc8617e97d8d6e883973364e68be70c409bf1b8ad"; }
];
}

View File

@ -35,18 +35,13 @@
, libheimdal
, libpulseaudio
, systemd
, channel ? "stable"
, generated ? import ./sources.nix
}:
assert stdenv.isLinux;
let
generated = if channel == "stable" then (import ./sources.nix)
else if channel == "beta" then (import ./beta_sources.nix)
else if channel == "developer" then (import ./dev_sources.nix)
else builtins.abort "Wrong channel! Channel must be one of `stable`, `beta` or `developer`";
inherit (generated) version sources;
arch = if stdenv.system == "i686-linux"
@ -70,12 +65,7 @@ in
stdenv.mkDerivation {
name = "firefox-bin-unwrapped-${version}";
src = fetchurl {
url = if channel == "developer"
then "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/firefox-${version}.${source.locale}.${source.arch}.tar.bz2"
else "http://download-installer.cdn.mozilla.net/pub/firefox/releases/${version}/${source.arch}/${source.locale}/firefox-${version}.tar.bz2";
inherit (source) sha512;
};
src = fetchurl { inherit (source) url sha512; };
phases = "unpackPhase installPhase";

View File

@ -1,12 +0,0 @@
# This file is generated from generate_sources_dev.rb. DO NOT EDIT.
# Execute the following command to update the file.
#
# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix
{
version = "49.0a2";
sources = [
{ locale = "en-US"; arch = "linux-i686"; sha512 = "85c4289e561d2246f96a05e3b8df011337984b9f176670826a705c2cd68a1284056ba507e4b6e4887595bf37f25386d9f7b28a20bc1f125865b9fd7b8be17eaa"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha512 = "2bf9518dbfbb48348f74929c19d03e8daf51020bf9ba6db577a202b6e98ad7ffb9e9a0b4ca92af010cd3f864ae84940b65438f4230e6de3165f72e4e7280086d"; }
];
}

View File

@ -10,7 +10,7 @@ version =
ARGV[0]
end
base_path = "http://archive.mozilla.org/pub/firefox/releases"
base_path = "http://download-installer.cdn.mozilla.net/pub/firefox/releases"
Source = Struct.new(:hash, :arch, :locale, :filename)
@ -39,7 +39,7 @@ puts(<<"EOH")
EOH
sources.each do |source|
puts(%Q| { locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|)
puts(%Q| { url = "#{base_path}/#{version}/#{source.arch}/#{source.locale}/firefox-#{version}.tar.bz2"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|)
end
puts(<<'EOF')

View File

@ -1,53 +0,0 @@
#!/usr/bin/env ruby
require "open-uri"
version =
if ARGV.empty?
$stderr.puts("Usage: ruby generate_sources_dev.rb <version> > dev_sources.nix")
exit(-1)
else
ARGV[0]
end
base_url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora"
arches = ["linux-i686", "linux-x86_64"]
locales = ["en-US"]
sources = []
Source = Struct.new(:hash, :arch, :locale, :filename)
locales.each do |locale|
arches.each do |arch|
basename = "firefox-#{version}.#{locale}.#{arch}"
filename = basename + ".tar.bz2"
sha512 = open("#{base_url}/#{basename}.checksums").each_line
.find(filename).first
.split(" ").first
sources << Source.new(sha512, arch, locale, filename)
end
end
sources = sources.sort_by do |source|
[source.locale, source.arch]
end
puts(<<"EOH")
# This file is generated from generate_sources_dev.rb. DO NOT EDIT.
# Execute the following command to update the file.
#
# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix
{
version = "#{version}";
sources = [
EOH
sources.each do |source|
puts(%Q| { locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|)
end
puts(<<'EOF')
];
}
EOF

View File

@ -6,187 +6,187 @@
{
version = "47.0.1";
sources = [
{ locale = "ach"; arch = "linux-i686"; sha512 = "a5391e45d1e59a7c14d8d421286033e3e760bf2b4afddfec3d1767b2ebc957b053c39f17f8185a6c9ca2542c76f6c9612d95d474c01bd5ecc62e5d4f4e43e8df"; }
{ locale = "ach"; arch = "linux-x86_64"; sha512 = "48681328033b694adfc6149bd965a3dff90ef014db6f65641ddd3d79ba7901604623735555bad024dc2425f226c65e332a0875d6b18fe1c06b18a1e407b70294"; }
{ locale = "af"; arch = "linux-i686"; sha512 = "7757ba99ce9991f67a45d9a19615a93c0a1bf0e35d35c5fe653f04d47c068054c8d91327641a48cd20fb9531cd1e842066c0e6f2dd8b23bff216a9fc727ec84d"; }
{ locale = "af"; arch = "linux-x86_64"; sha512 = "7e3d70da29aeb5fc81f5e6dc52a4b8f831813f8c025b1a105df631cc5b675905c82dae842459ad30c5257b74bd5654e9aec5dcfcdee93eb42443c45cda81138e"; }
{ locale = "an"; arch = "linux-i686"; sha512 = "1051e1e3a6c25ba6b3aa4ce5adfdc60bcb3c612f3facd5edb702385ea8c0837cc53e95b064a424e0c055a56a11f3a54a7ba37e2ef35045c8cbb834aaec0f6327"; }
{ locale = "an"; arch = "linux-x86_64"; sha512 = "27fb75ce402c0d47f8542d3d6d6992587e6ea0caaba2249e763f0f9c4f1d233b37a4b87ebb7e730d16704c7d2abab690660e409e721850875fc09deb0c433252"; }
{ locale = "ar"; arch = "linux-i686"; sha512 = "296e23fff265bcc08ec0f81608d50428181163d216fd896c80a1a8c31e95f243112aeedf3bbd96b1efbaa1d6d576a9bfc75e5fe8df434cbb74bb9576f7d90a83"; }
{ locale = "ar"; arch = "linux-x86_64"; sha512 = "15f0e7cbf5a98ffa9d2d7befcb11938b76194dff29b1d93ddcbb8f5c655ef33659534874a72aea18f98af06e5fa4392aee5412582ef43292d70603dff2c42c60"; }
{ locale = "as"; arch = "linux-i686"; sha512 = "67883c8cb7ffb6c05288b316b2aa5bc3274372dd82ab4c771fcf1e5a968e550d12c89027440704d8479a906beeef24a18ca72ad243628a5ece45918ed990c793"; }
{ locale = "as"; arch = "linux-x86_64"; sha512 = "f7718b0dc9bcbfd109591f87263d7791dcd7612b0312d0bf93e68b1f2014d3732dc6740c57a8e64dfc1af7946da14dde617945e38842eb19cfe39376cb12ad44"; }
{ locale = "ast"; arch = "linux-i686"; sha512 = "f29b883932752bfa947c48f7c1ff6084b1cf215ea84cf63beaea808702b0b90f50e85aa4cefa4d2c1234b0d366c8f6e3d8fdf7a0f92d432cba790adab6d24174"; }
{ locale = "ast"; arch = "linux-x86_64"; sha512 = "8b656c6b08640c125b94f90e1dc8259c90af2e764cee73b02b9dc3c0246b3195906d9208bc2a6b3ca31091d8cdfca8338fa6c489b7caa5685a23133e98847a39"; }
{ locale = "az"; arch = "linux-i686"; sha512 = "5ee1247e37964274bbea8021c8e4e5116fedca95712fbd91d709c5c580bd1618c6319cae73278b2f0ba82031e94bd3fb382d2b4dcfc9a5d7ad47ecd80f4fca43"; }
{ locale = "az"; arch = "linux-x86_64"; sha512 = "c369046c29dd0dfcf40e69e1f5b5a63423833a376d2b143d3fbf2ee1e23dedb3baf24843ba1178bda94b86f357724898a147d4adfac1e469cbf44166d7ffd16c"; }
{ locale = "be"; arch = "linux-i686"; sha512 = "f8a1ab05b8d25a7a30e755a551f0851a308ba0720180685f6946a510363988717f8274ac2c8ef826c60232a62c394b86829d289e7d74e24b7656b55238129b15"; }
{ locale = "be"; arch = "linux-x86_64"; sha512 = "df05271371de5fa25ec11164eaac0b253bc892749d421a6ca730dfeceb4ef89492c42ce83a87eccbe91cb03ab001bf0a1d9a20a7296b69841cab8c6b5d2acc36"; }
{ locale = "bg"; arch = "linux-i686"; sha512 = "80644b86f9296b708e74843a51f81d368e3508f0f2f74de1a998d30a15f6e3af08ffd70dcc5c79adb76c03be9ff4713fc8403b8433cbc33ca3493941c4fb2fe0"; }
{ locale = "bg"; arch = "linux-x86_64"; sha512 = "0e6cdc5b3cc706031c95a550b0c800c9e8e2d7bf241010c22f0872eca4bab018a5f0d4a94abb4f8291c279476700f2101a69ac0c57ae79994fba38b88b00fddb"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha512 = "4c697f1dcd68634e2ab712d4f2415e57cf8be0017fff3602223d8af19a1f3a5c973489d13951baaab95924fad42212a485fdff622d2b559be36e246c8a847b67"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "1931035a9d92dd9246a00b32443e282dc405096407a4feff7856125b7ee156840114c9be0dd58a020c250fa54c4ccb22052d2be291eeec9b5f76303fdf6c4cc5"; }
{ locale = "bn-IN"; arch = "linux-i686"; sha512 = "fbab6f7e4205c803a50990624d58aa80cfd3aa76fed02cbf9ea390f4ecdcc1a97bda9b51791cec49f2a7e1010109d5f81a1c9b6ac224f1f70df49407df5f7386"; }
{ locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "c705ec8356796060c6782261086011bc0bf3ac9f08bc821ce2305c9aac11c522abb802a9d9ab7dcb53b0d38468bb6e667d45b187355d769acb43a8b252c4f400"; }
{ locale = "br"; arch = "linux-i686"; sha512 = "c58cd77139a0ae7f3bb8f6f25c40856aca18a831c8f5d6f5d59a45ec615420bd55205093fb66a77591835b0d9493f774b1801a168b9c071086d510a1446cc914"; }
{ locale = "br"; arch = "linux-x86_64"; sha512 = "b6bde26d478eac081007ef43a6d588f70dc4d54afc423b019468dc91bfcb117d3b4989c4cbb4cf77a1a11847a58ec74fbf822b6e6f0ef86fdb0065c301294850"; }
{ locale = "bs"; arch = "linux-i686"; sha512 = "16ee40d079996f42be77167b73645d389045648c9d36b76e34d0398c7b5b6dee54712d109f93d054236ac7076fc3edb06ee82acae40ad22825a23d92d0e2c636"; }
{ locale = "bs"; arch = "linux-x86_64"; sha512 = "ef674f409df5c32fe4584f9de65cc6558d6b3ec78d8a83f5cec829bc1ae09f30399567915e32584334704d12264c2592fecc9e4952beabc8b0d4eb49a7186854"; }
{ locale = "ca"; arch = "linux-i686"; sha512 = "fe522bd836c82cb68bb21ad1c7f36bd9a7af1642abf7c035e2d0999b4cc07c58124e4d8de81344598036159102ee12f22c12e44a8a087e54d6c661c3f453b63e"; }
{ locale = "ca"; arch = "linux-x86_64"; sha512 = "b618da984d35fbde3819d101c103d8d9a5a4de98f0e254c67e894656019ebb6adc56e14a57410a61430d9aa9c1e0a01339b39a5272164af372544f27329a1644"; }
{ locale = "cak"; arch = "linux-i686"; sha512 = "82659aa2fbd091224aef6800b3df1d2e5141b6a295918e4fc4ea09b671184f62c670e3dedd7040b2f167581b0c8a0e8799d861256b273b01b2455d0937722273"; }
{ locale = "cak"; arch = "linux-x86_64"; sha512 = "a507cff511c6337f805a27c0f73548342d2fb2cffa683874d66b054b844b17c354cc6da5c3d15618006c2279099b0cd9172b17d9d4b21a3863b5e395db686b22"; }
{ locale = "cs"; arch = "linux-i686"; sha512 = "9af91acffc2beeb53280a6cbd21656a91a686c03342fad90dd91314c49535acef1a8abac8fe54bcfc250ca8b8f07e3550c890094f3bcee6baece983cec68bd8a"; }
{ locale = "cs"; arch = "linux-x86_64"; sha512 = "c8bea48dc11c021fff9df5ee1a67a6b6e9193ffb2a07e17014d7448254d8a8f4d1512f862ea73bf84dc15b40edbba3fd94cd3d2d18872255bbfc7fa9a7b8ec29"; }
{ locale = "cy"; arch = "linux-i686"; sha512 = "7cc062c3b9b4bbfd0b1f7247f06505ae99458514b607d4d9062836085798bab7ade6c4d1c8903b1b961243c6fb6adb4c4f94780f1194f745cf62d786e2c4f5c6"; }
{ locale = "cy"; arch = "linux-x86_64"; sha512 = "abafa600b941e17f8aea0e778a937f5fb34cbc8803c93e59febc5d9fde6ad3347ba0bc7aa07ab57a61f6b9d6b11d582b987100364aa8401bca539dc6e14584e3"; }
{ locale = "da"; arch = "linux-i686"; sha512 = "d4a9141779f52b78a51b9682b6b44e5ccffdecf5582358ab8a02efe133d9a52023e03c238e106a79e41a8aeaabcc58e0757c1af66837768e7bf4732f26182915"; }
{ locale = "da"; arch = "linux-x86_64"; sha512 = "48f0c48aa273cec9830bf806330c7a630185262838007628acad904a45b3186450a8973938c36db636bdef9042c78ce94a4a456e1682ef561abaabab6ac20863"; }
{ locale = "de"; arch = "linux-i686"; sha512 = "01675b3a8ecfa10da1d101cba36295b226b130e1cdb2c760541cd76c9b21436ae84ca7228e063402b1ca2eb59acadcac7720c9dd47db8b406675fb273af206c6"; }
{ locale = "de"; arch = "linux-x86_64"; sha512 = "6a7ef802a8109f58504b2accb9ef0ee38986f6c8980e0831c30b470f2ee768169557cdbde1a58d7c72996b27596e553185ded476cecdd7114b75d82428b7846e"; }
{ locale = "dsb"; arch = "linux-i686"; sha512 = "55528fca4d276b2b0430949686845e3d7d88975129c9a9846408f758b4f9c8f154425db891e5c1930197e36137d6c15ba29de90dad624bad23090015849d0ab5"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha512 = "f21c14a57f6f973be824340fcd417ce03765d5826114462f62adbd933661bccbfbe90b66935083619c62d48401c511830574ccc373ca2110093b06fad59734ff"; }
{ locale = "el"; arch = "linux-i686"; sha512 = "ac5a808db1ba68286a7199eef33794f7aeeafa26e97a20738fb21be479462bcaeb1e8a7995720d5c7dcaadd0cebe91bb2a3e019873d0cf74f42838f7d5c1a427"; }
{ locale = "el"; arch = "linux-x86_64"; sha512 = "c02e6587d99fc3ca66debe854c778a8b3dbf9b514e6ed74fa15e3035a54643b2bc324ff59f1705c6bd392c37ad1996f80dbabbb57df10aff954ed0ff3f5b01d5"; }
{ locale = "en-GB"; arch = "linux-i686"; sha512 = "c458c70db0408d627a904781adc9af18011f243689f4c5a606c8f1508b4e9417a8df499673c4ba56d32ea77d0f79ab85ff88852f7c518e7fd124e5970615b2f9"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha512 = "28ccaebc4f7613d7ea8c3b47504923f2d59bdf4afd6e386a67dcb6b6923a9374c1c783e4f904da0b6e0f716ec87a046fc12f3781b732389d1d680745d6955c58"; }
{ locale = "en-US"; arch = "linux-i686"; sha512 = "e1ea34bd0829656c04c471b66d2013fc07cbd5cf40b47bf3a932326cca71f9a502c52d1d5e6dd902d274d307079475b0e75d7ff552fcb2fadf31b2883efba79e"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha512 = "a56b2ad26df424f008d96968a4e6a10406694b33f42d962f19dff1a0bcdf261bca5dd0e5c6f3af32d892c3268da5ebee8ce182090f04f8480d37d232ccd23b9f"; }
{ locale = "en-ZA"; arch = "linux-i686"; sha512 = "d5efc3d4e624f34c81df068f4d6c184cb8a63ad0667695e9ce7099e069b23715eb77cf2004adee41bf355452179959e5ef7450f167f87be70339abb4cf70844a"; }
{ locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "859730132549691b61e936813f0f5fd3e62f3ef6fa9899e3f68bd3178b7438b4c6b49f54f00d4898b568d6abccdd55a0f9fc6c51858e95735fefcc13de460d73"; }
{ locale = "eo"; arch = "linux-i686"; sha512 = "8ef290bf1eb3504ace393b32c2da64d14435edc327c4f13a40cd925efaf7e042a03b6877689b3f2290f85625410a4e48dfb2cf676f138fdba87ffc597b25f4b6"; }
{ locale = "eo"; arch = "linux-x86_64"; sha512 = "7d6167749d2a57a9c12180302a825fee14555e9050b6be3c83dd35183678bc36e10391cedcc864ca0dd96d297997a68627dc4fc1a9cd8922e789dcfa814f18eb"; }
{ locale = "es-AR"; arch = "linux-i686"; sha512 = "07768e3b3ed903f4327881a132f192a65842a376eeca6d10ec0de69fefb4ddf3d7fee2a704bbc8d229c78556478814d9e53940cca9edee58270d9790d6b76998"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha512 = "cac021af09abd742273dc77291fb1528dd5d6d38cef3a5e36e615fbb9f3908655fdc96ceb93fd131c4879acf24e702a044471136e7575f3b550ebcecd982047e"; }
{ locale = "es-CL"; arch = "linux-i686"; sha512 = "e92ce6bec5b1ee8cf3db0a604eb4cae6245fb6d04a48eec64b6dd55139f3606cbbcb65511e29a3164d6572929b7216afbaa7f034a2191eba100ecb7403740504"; }
{ locale = "es-CL"; arch = "linux-x86_64"; sha512 = "98e57146481a53061c0b30872290ecabc2d14c73805a9461d82aaaf4cf9f301521fd55b01c8159c09a56f52a1580d83c9527986b1390f496d0fbd11227216e7f"; }
{ locale = "es-ES"; arch = "linux-i686"; sha512 = "c44df66e140ea9190112f89aedff9519b6bee18f5e2b54aea19acd233e623c299aecf134cdba70d366fcaf6b7795d220052ff75409c7a04394a7aa02d9ea708e"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha512 = "c2d70bc5a304df7b2484c8fb2b374f8e31a69049eb223a53dbd0e4b51e4ccce907efb1674eb637370ce7c3947ba5c09e65f433d10e0f328b80d482f3de9cae12"; }
{ locale = "es-MX"; arch = "linux-i686"; sha512 = "96dcb75cffeb85b85f092e295e38ee55c272714c40609ca90cfaac5fa0cfdb3efe8e993319ee690b4a7938c42346bf39f063ab1f3db606e743c1e4720de5a93f"; }
{ locale = "es-MX"; arch = "linux-x86_64"; sha512 = "60b50d6726b2e1985564bc02263eb88c9b4c1bb39e6d19812ecc6751d6ad223ba04f65a7755a946fb15dceab90628b057bda89c55fdd4972604586f52c5a4b1c"; }
{ locale = "et"; arch = "linux-i686"; sha512 = "0a4bef2277f729c93db413b68f8263eb356f7b3278880574b8ebe010e2db9067b803967e1f0d6912f128a9ad5ef204466f52ae277f3addfb8fe9ac377c3b8a3a"; }
{ locale = "et"; arch = "linux-x86_64"; sha512 = "ed1bd4fd67262958601f1107edc589bb28e9b7f9faf0edebdcaf0c07ec6007f527a9eab434582a65271a8f68edac8178601da54eab9398f48b31126657a21b0b"; }
{ locale = "eu"; arch = "linux-i686"; sha512 = "8c5c9406345e2a1fca3544aeb742dc0d254c804d887e3614613280c050a63b69320d4488b017ee16b0a2a07bea862e8b245baf7edc9df65689d509986f3c5958"; }
{ locale = "eu"; arch = "linux-x86_64"; sha512 = "d8f7004e24033f377391b577c549b66f73cf0e899ce5f580eaccd07713ec03b4362db7b222ce6345d113641d3e6a951302939bbb155c47ec0fa46a201a631427"; }
{ locale = "fa"; arch = "linux-i686"; sha512 = "f4e02737e20b6ffd3bc2b3a5e5fa59fc80a8e37dc8459ad4a6b99e7621a4d3f360884915f7136dc201830efe371de37977ef3e27f34f84e2cb734c1fff8f6e36"; }
{ locale = "fa"; arch = "linux-x86_64"; sha512 = "8f624b066faa39341b750dbb702dd60ee6ad75b3850c659dac2e21969ebed1f792423e9fb0a9cae7fc456943020f9a0155af5d7c596433eedaaa9990ce07b7d4"; }
{ locale = "ff"; arch = "linux-i686"; sha512 = "22a2c5376b1e8d770659475085d98ac1f1020cd816ff3ec6ccfcd68f2484b1b0dc25bb84ca52f4ad27144f4da356ce5e7fd54411d12ae7c852064509470d5828"; }
{ locale = "ff"; arch = "linux-x86_64"; sha512 = "bcb3dabc250045b8ad444219055fd9d14902296ef3f9c320bec1bef940f84eeb0d4a50249805188ae96ed0288a70f0216350ee79191beba49aeba890ae515b41"; }
{ locale = "fi"; arch = "linux-i686"; sha512 = "0c505a0e1d3030038b61ea159eece3892bcc7d947b6d7010c0be8791525c9d91ad1170d4cb45260584c93a78a4bc831b7acd9f28e95ae62e5b96b31745dcbe50"; }
{ locale = "fi"; arch = "linux-x86_64"; sha512 = "f347cde005c6b61366c633db5a8cbc5260dfa0d68230a938d847e3f80bff2f1bed09dddded7b1728f4ef9525610ecd046743f9e71eefb467943fe6b72ed198ca"; }
{ locale = "fr"; arch = "linux-i686"; sha512 = "8fb8ea2eab82740657a6b822b330fa0c289c31ad900683b4ad07b1e9b0c6c4e14f50af39d6d0f787642010628800b0a99b5ab0c4cad62e4a579390509b1ddd13"; }
{ locale = "fr"; arch = "linux-x86_64"; sha512 = "ae79c5b7f9f8305c3631f4f913baa341a9beaa7a2ee5df1c6c1826030c21bf22b92095ee579affb8911110bf3bcc359793c0beca18d4c32b1fcc1f3d1dbcc4b9"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha512 = "1c57d02fdc33ff53de48ed9aa9e89ecd5a56d35b432d5651e71bbfbd5f9dfd18aeaf14d10b881f72df871afd00a12b31ff05cf9d5c5a55cd44a92c7a0156523d"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "f30f59d630c5d289b61dc7440f7bbb976eb16732370f827365a477090cdf9f2859f39afb7ff9d9be7e8a022f181f2aeb7a3005c00f4c14e6505a28db7ae48a9a"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha512 = "739d5feec4bffee67876227f6783d35675f4c0d168b7abbe5f97b6e8edce7fe4b8f04f8240087f7f208db4180f3417997b661c93ebe046decff3f4f4fecac839"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "cb4344df6e07db839ce8c9fffd1b7b310c8108b5218cea3602972806c1a40f56bf1355ede4cb3595f54179b16e3470e25bfbddc8e39d726c7d6c1e99d128ca8b"; }
{ locale = "gd"; arch = "linux-i686"; sha512 = "91004d62bb5f1f6a1d65b35fee9e594d21d9877669e042cb4c9a834b01b35797363e1433a9ce5a8d0a9f64c8b256da6a6d09fa3342b74b7c2af8ce8afb3e4e56"; }
{ locale = "gd"; arch = "linux-x86_64"; sha512 = "f04034cafed25c34713ffe4109e53b107b8fe81321c0c0c035f54ff0ce67ac393b42db7598edc658d3f026e447f9ff1c4d1cfdedd31066eefb6019117248e4c0"; }
{ locale = "gl"; arch = "linux-i686"; sha512 = "107bdebb92ce86f39cdc45d6bb24a9c4d104820eca6bb77950693ccbd55e7f8a2f143fc3a5bbb1bfda161e7a33c8f6d8d2686b09da1497215defbca2b4e4e109"; }
{ locale = "gl"; arch = "linux-x86_64"; sha512 = "c841af5c73343475150b5404b4b54396bda845aa5b231a742aa17ecb7fdbbc5cd4123efc3ac2ede1c24f485d04bd87e8bf7cb00b7135bef236ce56afa0c27a19"; }
{ locale = "gn"; arch = "linux-i686"; sha512 = "20954e218967772488bd895ebf069522c3f4c56ebfa09a7c8efb740158cb95b6be76cee8f4d7f2c1c6c505ca9071a0ddc1914784a54f669d337d5196f18b6f4a"; }
{ locale = "gn"; arch = "linux-x86_64"; sha512 = "aaed68f13e326792671669883b452b65556998ed757ed5b745c6453d6bae8865a06f137709de37ace2688e2e09f1b96ecf2e5b6374b4170d29100c6f83ce22ce"; }
{ locale = "gu-IN"; arch = "linux-i686"; sha512 = "205093ecc0dfcddb2b90e05b1a17f75805a4597bbfad214d67442fd0d952f765b031ba63a3c399ba9c1c46e4d05b3cf786f01c46eb8990240a16431964c93a94"; }
{ locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "a84ec5015f6922a22a284eaca985010586067370d818e77d401b58782f86dcf2f534f1ef021719c170f1f502525ce25c94760d3b75481c15fade3c25b969b563"; }
{ locale = "he"; arch = "linux-i686"; sha512 = "5727fc4699316c4b34be1c2596c5cc20d5fc9d2062b1e106087cdb34b788fe3ebbc098acc8c690bc83c9d9be59ac3b3977fd9116d766ce908aa088660fe34771"; }
{ locale = "he"; arch = "linux-x86_64"; sha512 = "c399969bc24b10ca1c1eff17d3414f214cfe3e5b73282942ead5b2ba4d2c58b74d665b13031ccf42956cd45f0fc7b206dd2f9674103c1e3a8861a33577b5caa7"; }
{ locale = "hi-IN"; arch = "linux-i686"; sha512 = "f014c47a143d425aa3452be2bbed199a8b5e75d278c35fa86bb6bcac40bfb32bdee22d030386c881c818b465451b35c81f97bf29f9ccfbea606d52c822057899"; }
{ locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "0e5dc0970680886dc02448d7118b6864092699fe44f3276ca17cba160aee59418f8e39338247897b118de0e1fb7634cf725ddc6a34a8b6f002b7a78d92deffb0"; }
{ locale = "hr"; arch = "linux-i686"; sha512 = "a9af43f6cf6f493f728b8942d3a600f3cb3a23eb0818d284ddabb8766f7d274aa0a232f9925b65625bb56d00864946dc6b0567491cbecdd6a7cf626b6964d9b1"; }
{ locale = "hr"; arch = "linux-x86_64"; sha512 = "d97951148ca0ba80a67020f323859ea3f508e40906ecfd18f7a8fbe7a2bc85ea4635945b5c6063e1d5d18456471604075e6767da9a4fda6a09dd3e992a7d3a88"; }
{ locale = "hsb"; arch = "linux-i686"; sha512 = "2f7adccdc894f345e861b29a6d65909b1cde2649c69ec9223f784e659e8e3f4668f815b3683fe691de0749483167d26885a0199bee88e8524377c7eee3afbe99"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha512 = "70e39341ede01e18c653a0eb56b48e31c73ee3df54ebc11bcd220e2d8e19c67c3e248095c4d070b12a0eac5c24acf5a8ad83069673dcaa684229f4706103685e"; }
{ locale = "hu"; arch = "linux-i686"; sha512 = "1fc01c6dd873e2194e6196b1bdb0246e95d0b0520f558b21a2052251d2a5202141c09410c4631b3f025479169d8f68411c2a24f32825261fa8d65696fc7cbe0f"; }
{ locale = "hu"; arch = "linux-x86_64"; sha512 = "b4509d671d7eac055812add85ae571f52c90b4eeb172d21c22ce844c70192ba235f37a732e94a0edd6794ecd5a8caa5e8bb6ce05a26d3705902d3628420af871"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha512 = "a2b7cd1ec95a0b5eb064e816cfcfc6a74a92806772592947267c4b266bf7ce77d1beb17a7c25b905251cf497ca8dfabf16bca367cf6d9e9e635182f306bd71ca"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "9997ca45051e609e289d7730caf1254adacefbf8e618a165750d5bb7ff7933d014781af76501296c89a4236fd3ac477df6e6be5a5dd45f214983c851a856ce5a"; }
{ locale = "id"; arch = "linux-i686"; sha512 = "bda5a7c599885bef966daa35a3f34297e38534e32967142ff9cc720a34c7aa9730e3f24623c240637838eca03f78f9b2ee30af3ac3dc8ba48f9664c56b64c789"; }
{ locale = "id"; arch = "linux-x86_64"; sha512 = "97d16c5b4382c7fc6ccee416d671e47d345834a44ab111aa486a41c756b25eb894628d0128e8454fc15f38937bc40436b12e60752ce7b7c1fe35a230abaca337"; }
{ locale = "is"; arch = "linux-i686"; sha512 = "576b904fb836ea735f652c6b9c91891dee164edd3523c5f99d68cccb4bd6689c29e4c579b6cc44e699a8900101fb8d223f9e0b0860f71a2814ae0ee2c70609e5"; }
{ locale = "is"; arch = "linux-x86_64"; sha512 = "592d65977c34c6133f5745a85722f822efa5956bafc6e880954a0b318fa59712c754e882768755fc08f5e08a1c99493c0b30b4219c46169ba663258e3fd3f3fc"; }
{ locale = "it"; arch = "linux-i686"; sha512 = "4d749e1b5d8432df789f29a247ab48a688d4aa16fb25dcf7209783c6036bfccb9ff8ac32dcd09dab1708f71896fa034576d6048eef077d1a6c0a3dc58d3cdb26"; }
{ locale = "it"; arch = "linux-x86_64"; sha512 = "087c456d691225d9aef54b2013af69cc7bf2501f83060179112e9c40c1d6762202f68e6329a936df091a1ae6aa5f20bcc96a4c8b0451b71270426bddfb45d15c"; }
{ locale = "ja"; arch = "linux-i686"; sha512 = "cb4b0bbff7d322f2f04fdaa50b365d4e0a1ff1786206539cd124870ebd69a9305b88d39b9fbed41c64ddbe68098e02c51a0dc665262424f8eff882b1497ea1fd"; }
{ locale = "ja"; arch = "linux-x86_64"; sha512 = "b6c9b419a3e746957f93a4bdba9043adc3911b6f76e1eea2e4e31e77e9aa9057ce720205db4af5586a90df4d6b774b90829f1d7689e77c560c50ccae755400b9"; }
{ locale = "kk"; arch = "linux-i686"; sha512 = "ae7711d86ce8180997f44f9309a63a436bd8b70ed0dccda773c34ba816daae99b3b1ae913ee87f4d1f9a4e8f016aea670e89652823df16b5e8414bb58ac28225"; }
{ locale = "kk"; arch = "linux-x86_64"; sha512 = "49fb6b5ab6aa12535373927519bf36099da6fab7c2e1bcd6f5ce73d91679f58e81eddd3556df65b305fc2d1cd439cf6de081980fa98ff79df16b620ed41290fd"; }
{ locale = "km"; arch = "linux-i686"; sha512 = "29dd1808c1430c01dbb395d5e5a833bfbde85453278d4efd32f1afa1eac19a651c0c3a42eb4ba3402f56a8492e80746d753986c0ec0f1a6dc0e5eb6778b5c6ae"; }
{ locale = "km"; arch = "linux-x86_64"; sha512 = "f53966aed30b57a601152f09a26414e11bff4ff31683989eb1e47546eaa32fce8cbb6511043f9753cae076d23d6f2172c2b224313cf5f3262f109b49119175e5"; }
{ locale = "kn"; arch = "linux-i686"; sha512 = "17dc37df2b3d5a87bbadc4d5c80d4ddff03752b7a80f5c76171ce9f0bc4b8926964b6315cd4f0c6c9dd3142cec56b464503bde34ec3c69e2b8a66ddcae72b0ec"; }
{ locale = "kn"; arch = "linux-x86_64"; sha512 = "2af5ac5c254bd0ed2d08656a6fee7966d73aa89973cfad67fd18d7d88fd1f18a2b882de7854af46a3ebc6acba4cceacc06942db7ae495faa2c6ef21c65e94158"; }
{ locale = "ko"; arch = "linux-i686"; sha512 = "415fc260f3dcc2ede6c43194501d9522fdfb106f7c86e5d8f5929df6615c73023fffc3efd190deb68bf08bb2a0d4ab34f7605e222301c8350b980f2dbc289c8a"; }
{ locale = "ko"; arch = "linux-x86_64"; sha512 = "c991c0b9a89b618ac046882b929fd7e3689e19dd96edf4535b25f9172b6baaa801a4490ae4fd35e82ca3c776afab74a0a09b993f8ae8c2a603d210f2cf248f73"; }
{ locale = "lij"; arch = "linux-i686"; sha512 = "3cd367654397d14b782cea4ef8c96f1f6938f011576a8dba92dd4ca832ca3c8682f3e0e161a4288b112fca550d556080d0ece5a79e4c4f6ec99a9298feb6fa12"; }
{ locale = "lij"; arch = "linux-x86_64"; sha512 = "2d7475c544df807a956feb9361f889ba0f5e43dc52a9e1dc9c469d86e97f344b4f2995e3fa149a77662969f3acbcc998f430973b2b9d28b23c82c5058b4a9dfc"; }
{ locale = "lt"; arch = "linux-i686"; sha512 = "35c8a452ca845576739d5faa9dab6f3c34dcecf9ce95870f68699836f3534b4807c91fbe80007950abbbca662e6d01b406205b3e4cdf4d33e0717ea5d6f57006"; }
{ locale = "lt"; arch = "linux-x86_64"; sha512 = "8791df09d841d5ddabd552d0fb0dc7e9446d23092bae1010d92bc3b056a9ad4a6dad01c5d8db531a273945eaaf4c30c922cd03d7b17e1b6be263e0bcb91b8384"; }
{ locale = "lv"; arch = "linux-i686"; sha512 = "22b865a344a46096c53a72ff6b1402d00808bb3b49ecabe6f4115ea60e40e522d64afc701648772616fcb784a963bc6d5bb3f89517d7f8407f22fa82d81bad98"; }
{ locale = "lv"; arch = "linux-x86_64"; sha512 = "3c66af306b1a8d0a684c12511d95353c0bdda0bea981ce4e577c928be03e12b582b19dcaccdccec551b3cb0fb716323b1079180aa7a8f1204f5e4b5a84b72831"; }
{ locale = "mai"; arch = "linux-i686"; sha512 = "780fe423a3cd56a7452df32679ee07a0e328b21cadc78faa2721cec59185c4a4467aeeb75e9237cc86d38dfa2cd71530f02156c4fb9515582ca564dd53d47543"; }
{ locale = "mai"; arch = "linux-x86_64"; sha512 = "d27218b59edf004dc57cfa9ffd70dbeb59b7d3c0871b00388a56b505629fd82ddd6f6e0147f5b4c67a8ad72a674e384b66ba2f9455fa9ff218c9ada4b27d1d7d"; }
{ locale = "mk"; arch = "linux-i686"; sha512 = "da7ae3718f3c69ec9b62aaaea93951375d82d8d02818d6855fa9f085a64b69c155a1336585d786ae2d33d657110b787f62909dc9e4d54c62d2ea94d2fa8fee3e"; }
{ locale = "mk"; arch = "linux-x86_64"; sha512 = "95136f8bf86014a63bcbf4a5cfbd778c4c7e6a84618aa0f6a6948bb597638569b3702e0569b50c5dc9b46339e723377faea8964b921ae9802043fb7983a2c4e4"; }
{ locale = "ml"; arch = "linux-i686"; sha512 = "56743acb54283715fb2a910caa85dda61f7e2c1c5e012aa222dc07e3b522572500056fddf990b7ef03a175ff8901fb11b113bcad5c2adf4a6e6e032644ccca2f"; }
{ locale = "ml"; arch = "linux-x86_64"; sha512 = "134f35f5f6616c2a7eec48f637277fc02e23b57bf38eccff9777bb08c70a41fe79967b69567f75f9c8bcbad4b22d2ddaf16bec98e399c4b8ca9db9b70e99ef58"; }
{ locale = "mr"; arch = "linux-i686"; sha512 = "f29de7ae7dba03465baf86f93d778c9faf3055d50295977c0207c7e4daae6f7ad733ed38e1323263cebe4f737d9a1616024333a97139156470de1a9fe3c16276"; }
{ locale = "mr"; arch = "linux-x86_64"; sha512 = "731b4f143fd1303ab54ea3f1b6aca6c4f78ce935caae32fed0b8cdcd46c0ade8c8977131a3be786ea929a7d284c3d45d34851a0d81242761f722f0bceb126957"; }
{ locale = "ms"; arch = "linux-i686"; sha512 = "d372bac105f2012b189efedc449c7c183d0daf64cd7a40822ef9d685ce4a1550ca9699620440dd198b13f95513a577766e9f1a8e88b212492831bf7ffcac7e0a"; }
{ locale = "ms"; arch = "linux-x86_64"; sha512 = "1287f36a742fa834d5f31e6bc2f6d3651e54f2bc8845a1f0f647e9a9e38ba66c58138961185897c8832107cffff06167a35dc3ee1f0ff830f997f65fb0854a63"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha512 = "ac3e46080e188e56a6b67ff77aeffdba7982d7c3aa4156a6f2781ef6b8fe63cac50d678e5afc91aca4ad16c4384d2b2727f74ddc4083da91a1e3590ac98ec9d2"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "dca52381e45b5c2d89f590971d830010a9ec1a2a513fe655ee93c3fbd980adcea78787701595a95402bdb660c2f3e0a489e001deba13798337493655798c713a"; }
{ locale = "nl"; arch = "linux-i686"; sha512 = "6ec01f8eb18384aadb5715a996c8410ffa94b801ee1f1b1ab43bdeb492e179e781e8b85acbeff4a25cb4fef847ce3e2335968458d9f6e47d046083264e91f6f7"; }
{ locale = "nl"; arch = "linux-x86_64"; sha512 = "7d5840518312dd167d914a8f7fa5670fe17f9a6fc39ccd128e30f689005b35bd352d0602993713c3d05288f2b036829be8e08398d536e4aebf2341ae2290e633"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha512 = "a185f7592649a91214363cf2a0474b5895f33342c98cd4bdc48fafb0cc76310b2ba4f46575970d723c76b2ecfeba8e2b39d9671e6059a15bcb2565258096156c"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "7f8e7277bcbfbe5f40c161f1ebbeed86159c2b6205a5ea55cd8b6253fa6742bcfede11d4de6c1aba36e2b1e98f9c9a7b8e26f9aa35e1eaadc1d011636d429be3"; }
{ locale = "or"; arch = "linux-i686"; sha512 = "a543a7d3f4e24364be7e4df65a81da82d955d1268a4cbce741ad7ddd5f4e9916573e271f02af1e92b123a4da2c7f312c17f6ce714e3057a1b204484ef12133d8"; }
{ locale = "or"; arch = "linux-x86_64"; sha512 = "7672596470cd8f49f9c4558b05bd637af1650da729bc518681a8cde3ec785358121fa7ef209e123fca4b59df1a63878832bc32d2ff404b5d2a818b60ba10c15e"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha512 = "a99b60ae1eb479e31f838fd41d5de325c418762fdcfa5e0f3bc3d5da8df108d3b64ce5bfac0af09663007becf5327164db8dea0ea7a3876586cc43030a780199"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "f0110b74842f924808f74979061151fec711d10a6005d2da2fbb8d46fa2a25ecd5a2c804e58c10a918efe570d4d67d05578b0245f526e1aede4bbc786e9f304e"; }
{ locale = "pl"; arch = "linux-i686"; sha512 = "7eaa2bad351429d76b476819a1529ed1609388968327382cc13df235a294f2e9fb14295341ff15fe3b2815ffd1c6c8978e2aa104a847fd2cb4adcf2ae3b0b974"; }
{ locale = "pl"; arch = "linux-x86_64"; sha512 = "a40e2c15cff0e7f7bff8a5c0bc4cf39df948a21bd37b34ffc93dd87e1f5256526a25526e457fcfd8d081bc872dc1bec13e67da3cf671b6a16dfa17850be4743c"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha512 = "c9cd96e68fa2e1f73a49e71c287a25be8d45a8ebb56262e02c40ba5869fc58c7fc43a1f6958592bb377e7dd4064d64f5ebcbcb5cd3a9fe0a007c2da665f50a66"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "1184751c1d1a0a9044f8df2d20aee7dfe332dc5f851802ebaf2c5c83fa2bcccfd913cb6e16d2baa449cff1b02aa18f828489914c0741a2ef2a46d54fefecc268"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha512 = "86538057ae91b1297acc11c9bf3f7d24ba1950edead89d4733f7c898cf53e3848054bf391a975f19766b69f4c56f576ca54e4b8da806db7416f3e3d91777c3c3"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "0a480c26e5dfe2bb9b536e122ae32e18a6dac999004493839cb506c1ad615e095c554d296f1a77bfccbbb86b58bcf549db83f7de51d02b68d1eb752b421f23cc"; }
{ locale = "rm"; arch = "linux-i686"; sha512 = "751ffe931cd60296490c7164f49f61f4a51bac5210328a18d02261a07eb607e181b2bab4fa0b59d2df15334152386bf816a984840d2331b7e801171be9c90594"; }
{ locale = "rm"; arch = "linux-x86_64"; sha512 = "3e526c9a1a876e5d2c548c9a68803dd11c04c8214e18eb09c0b1c3fb3833f64c8a3362db8083ac5de81c59268439b53effa3bf1c64807fafc874eb8ed9baf188"; }
{ locale = "ro"; arch = "linux-i686"; sha512 = "73cf6a18deafb7ba93fd60cba3ba0bb0191471f977c41bac11bf2fd6cc6f7fd7cf2ad125ac5cf168ef577d71dfb0e893e182f39be6ad186ddc642d87c40041a5"; }
{ locale = "ro"; arch = "linux-x86_64"; sha512 = "b62c54b8694b4a662c1d336056d404a8d432ba0a3d4f2964b5c5acc0e39b668fd228105e1c4e307bfab1acfa5c3ce223db4229df01866cdbbc7c1ac95e70fe2c"; }
{ locale = "ru"; arch = "linux-i686"; sha512 = "6ebd3b3a1f3613905313129cde7cf113bdd777fd0f600496231ba813a95b04309b25016dd69891d31189a93ccad3f87b9c69d54d6219ad39dd38d1181b1f3102"; }
{ locale = "ru"; arch = "linux-x86_64"; sha512 = "539a22d13587cdcc21b6f76ff24ccfd1df98cbaaacac802aed46ba8f2bfed27cb2f3e5c146cbd2c3559aaff22297e692030b9612041a05a6bfca08f49bf0d2fb"; }
{ locale = "si"; arch = "linux-i686"; sha512 = "bb0d1621f5b9af886fca0ea7cf7fd851d7c22d2d8f279a7b88e9bce98be33ad7b75d6a51ab47ea859802ed39b467815db60409285afaa0bbf4bb1ce6d590eabc"; }
{ locale = "si"; arch = "linux-x86_64"; sha512 = "90337d193df7db41a1384856938bb62212952a80144dcc319a725a9b567ffd4deb7bb7af89b57891d3c17499ff466990e656edf7d0b017b8f4e0370aab445477"; }
{ locale = "sk"; arch = "linux-i686"; sha512 = "23a15e6ad5ce9b03c218be4e26e603a412de4d870d5f64b599ae511bfc66bf2cf04613cc06fc1a054d06b80435e284456c0b08e33f34d8c9482f5ca23da6ae62"; }
{ locale = "sk"; arch = "linux-x86_64"; sha512 = "a86cbed60f65e4ebb36c614d846fbb2515945112fd4f2482c3a63b49a62c3acb310f050dcbd57cc76a808c049eefd8f779d6aeea53362dd81798bb8d7177c86a"; }
{ locale = "sl"; arch = "linux-i686"; sha512 = "8ae008f0077081ef40de3bf08c2de294231f41439a83d8a41a485f53e95ba3f4fc6ef03d6ac98e8848c3f3dad290978f1607d8c847f1622bd86b7d38cd0be730"; }
{ locale = "sl"; arch = "linux-x86_64"; sha512 = "34efb560c65329c7f3f6b341cc49ac4952f24e6e9b34e7f5bd45d98618a4d03ac89c6f62580223efd2d37db24a03f76a54381d4162f5430b887122bb56eb49d9"; }
{ locale = "son"; arch = "linux-i686"; sha512 = "d3e5a25fbc4a786239a7ae543fefb7b7e3ecc34192c8326af915f18b9b08436656bf68faa4953a34bdc464e32305baecce800f91ef0152bb4b4a8323ab448f33"; }
{ locale = "son"; arch = "linux-x86_64"; sha512 = "ffee5d1a23e91911fd1dedb5ecf24bfc6b1733fb582e64a5e07d4df4b7afd9a6c502a70ab3af6624b4594f5ddcd81bc8962ede5b693cc035a96a561389f6bfca"; }
{ locale = "sq"; arch = "linux-i686"; sha512 = "1cbaf8c32d1d3205cd85127839eed11b416903960c9e411b9adc71c42ba4add47acddd32a9217bb68f27b90d6765892edf2d356e21235c5bfd5cf69d1ee719f9"; }
{ locale = "sq"; arch = "linux-x86_64"; sha512 = "16d93961a53ecc3e1ae3480be9e34f2a22dec2bdab55dbd35d1ea79ecf2ee48f195380bd52efc7d39529601610793b75daadeeb54dd76c9a3702c786af25acdd"; }
{ locale = "sr"; arch = "linux-i686"; sha512 = "0b2c5234f1787cd972fad398dc270766fbc3015dc1bba29755e5316f207af9f5787d4aa41e96cffd2c9d31c57a5d1896e63fcd04e6235a4a6798469e738fa10d"; }
{ locale = "sr"; arch = "linux-x86_64"; sha512 = "e7c7e7ff7fd81ca86f45997faed7244e4d807c3e5ad7ed66d6feb38c3e9173eaf136bd34af690ce28534f0c531c7f1d11595ec6502dfa42778cc19dee4334c49"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha512 = "dffb94b0ddb4b9d2effba3894b408c9f191f2079dc4b47e214347a235c9bf1adf77e520465691d14a274c3f3344c7f8b7d41965051d506728347e0af1117ad27"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "b601906d28f071c6beb3dbd6b37fa68f50809c9c47c9db69d631127ccc7b784e7d3b278aea6de060b34d83b6c78137da32b77f8e17ed199c3213b89dd9391264"; }
{ locale = "ta"; arch = "linux-i686"; sha512 = "1a496470ef8e0899bfce66b41490f54d4d32776eaf60aca8725c4732512f1d3befb2e1fc3b942ebea95fe2359509c43d41649e5f90498264b8e02a3352244260"; }
{ locale = "ta"; arch = "linux-x86_64"; sha512 = "00e6dbc43ad3c77693903fe534722094826637698df691b266eb801b27cd5e63502c21ca3e34ff939a7645a1f75d36fce6154626019eb96bc73cc39ab845c952"; }
{ locale = "te"; arch = "linux-i686"; sha512 = "70ed539571cadf241f819b68ff24829db32f56287aadab31656fdf66c0ed94ccc6cc11b6cef6e2e963203cda47af2c6032db6e5689c37aaaf495b1e4fa970207"; }
{ locale = "te"; arch = "linux-x86_64"; sha512 = "d491acd4635ab9b22f76531740c7ee7a85832678aef9ed646e75f56755c02538440adeea71e9ca5a7a5e11f3f2f6941c3c4c1e47380547179f63baaf6c20ad07"; }
{ locale = "th"; arch = "linux-i686"; sha512 = "0414f74c6266fc204f2741b6860f7919c957364bd56ccc2cec5ef4b9c4be812c554ab584e6ce53387e6b7a18ad02991a44d9507a16da59a4aabfd44e7fb5b754"; }
{ locale = "th"; arch = "linux-x86_64"; sha512 = "2952cceaecdd4013882150e8158607639e4ab2cffdef563d4fd1a015c41f1eff6c5ac22c0b9301a05ab6f9fef9659d54916275d5a50d97ad43bf69f10da7b3c8"; }
{ locale = "tr"; arch = "linux-i686"; sha512 = "c5c6273bae2b9a46108a433af3a85b5cbbba4cd3154ee124ccc49f46c4a76264836a76d1b2da4b1064e9a913cc9fe461911c53e44f40343c5f780be04da932e5"; }
{ locale = "tr"; arch = "linux-x86_64"; sha512 = "f0b5bef1ea4b948d699a79d902055d5b31afbe5c4f1814d98cadef1ca820ce39212ec009f68d875860a48942e9d797bda88eec4f6ed591dd8b3b260e04170974"; }
{ locale = "uk"; arch = "linux-i686"; sha512 = "3a069ba914716ce122c4a89612988708d811b9350d333aab203dde212527c0e0cc86ec4781e6aa23f40b77f2266f76eca366cf355651870f43e180b97aa25c43"; }
{ locale = "uk"; arch = "linux-x86_64"; sha512 = "db7931aa3f1d150e4b5b8c87b9d069df4a515fb2aa5e250b8f8a1bae0d8fd9a210ae949df056c47e3c88e8faf28f2571311ce2d6f179e3365720b42f1335b546"; }
{ locale = "uz"; arch = "linux-i686"; sha512 = "110a82749e187f39d77f63b16ad515218e5512e5974916e4145e625a40d797e23fdbb5d110a23f061448cfc3d3c597858636c9304e941a34c68368f749c3c900"; }
{ locale = "uz"; arch = "linux-x86_64"; sha512 = "1dbf94cef034449e8d1342822384bf1761dc61748e2d876aec1ac628dd161f92b62da832fe397b2fe4f8a1b82f9adf1c3690f26e07ee3e48c6299f95969533cf"; }
{ locale = "vi"; arch = "linux-i686"; sha512 = "af97e1dcfc9bfbdce95a5cd35025b2540ad928d3238863471116e071a51b354b7818577bc3e7427c513e7b335bc1510605ba3ad1a37221389de7c7fedf6e2103"; }
{ locale = "vi"; arch = "linux-x86_64"; sha512 = "cc938935395e66ef721fdbb8c8b781ef648b5419393ed1687a116a4d9ae12dd18f2edbc8287235504aa6782bbd6a41f9f5dd89c9c712ed4980fb9fa44f46ef38"; }
{ locale = "xh"; arch = "linux-i686"; sha512 = "a76dbac054cdb7f5c194766dc54f215de4cb4cca4aacd7c883e0e3632b9dfc18cc25d7a54788e213bc65c894dd26ca9b863199b55b649133f93da9fed9a58fe4"; }
{ locale = "xh"; arch = "linux-x86_64"; sha512 = "cfd8bbb81637c19464ec34788254740e999c13bc8a64b4289b0e1c64f76d711a5a5a8380995271f309444032739066f06334da2f81b6ca2b2be33ff55d3ff402"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha512 = "d11637b0c28aa1c45b315322ff12392e133aebe21f435564da278b9e301f0c8515ccb721df2bd55c175c48c3e24934837abbba4b84c9fa659b7a58db1da68f04"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "27a06d87f23eaeec170d1ea7f3df636198bfd4787001e178948fe9b8a3f1aafff3be59b9d01ed5b5851902b550601f061e923a4cda3a972f0ac68928cab28577"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha512 = "7c6ef5592b273749ccbf7b37c09984b11722beb7f49d4ed25555b84f0521e0dbac5197c7642ac508a21a1a40c5578dcfb49310858819875cc9407c85426d599a"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "9ccce84a292144f3758190ff2858c077d1e7ec6d49ff5e1efb404b8dfb3bcfebf96eab15d0ec32325e4d96d94f4c6bcc67f4e43dd22af418b822d82a2afaf6f1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ach/firefox-47.0.1.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "a5391e45d1e59a7c14d8d421286033e3e760bf2b4afddfec3d1767b2ebc957b053c39f17f8185a6c9ca2542c76f6c9612d95d474c01bd5ecc62e5d4f4e43e8df"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ach/firefox-47.0.1.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "48681328033b694adfc6149bd965a3dff90ef014db6f65641ddd3d79ba7901604623735555bad024dc2425f226c65e332a0875d6b18fe1c06b18a1e407b70294"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/af/firefox-47.0.1.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "7757ba99ce9991f67a45d9a19615a93c0a1bf0e35d35c5fe653f04d47c068054c8d91327641a48cd20fb9531cd1e842066c0e6f2dd8b23bff216a9fc727ec84d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/af/firefox-47.0.1.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "7e3d70da29aeb5fc81f5e6dc52a4b8f831813f8c025b1a105df631cc5b675905c82dae842459ad30c5257b74bd5654e9aec5dcfcdee93eb42443c45cda81138e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/an/firefox-47.0.1.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "1051e1e3a6c25ba6b3aa4ce5adfdc60bcb3c612f3facd5edb702385ea8c0837cc53e95b064a424e0c055a56a11f3a54a7ba37e2ef35045c8cbb834aaec0f6327"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/an/firefox-47.0.1.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "27fb75ce402c0d47f8542d3d6d6992587e6ea0caaba2249e763f0f9c4f1d233b37a4b87ebb7e730d16704c7d2abab690660e409e721850875fc09deb0c433252"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ar/firefox-47.0.1.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "296e23fff265bcc08ec0f81608d50428181163d216fd896c80a1a8c31e95f243112aeedf3bbd96b1efbaa1d6d576a9bfc75e5fe8df434cbb74bb9576f7d90a83"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ar/firefox-47.0.1.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "15f0e7cbf5a98ffa9d2d7befcb11938b76194dff29b1d93ddcbb8f5c655ef33659534874a72aea18f98af06e5fa4392aee5412582ef43292d70603dff2c42c60"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/as/firefox-47.0.1.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "67883c8cb7ffb6c05288b316b2aa5bc3274372dd82ab4c771fcf1e5a968e550d12c89027440704d8479a906beeef24a18ca72ad243628a5ece45918ed990c793"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/as/firefox-47.0.1.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "f7718b0dc9bcbfd109591f87263d7791dcd7612b0312d0bf93e68b1f2014d3732dc6740c57a8e64dfc1af7946da14dde617945e38842eb19cfe39376cb12ad44"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ast/firefox-47.0.1.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "f29b883932752bfa947c48f7c1ff6084b1cf215ea84cf63beaea808702b0b90f50e85aa4cefa4d2c1234b0d366c8f6e3d8fdf7a0f92d432cba790adab6d24174"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ast/firefox-47.0.1.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "8b656c6b08640c125b94f90e1dc8259c90af2e764cee73b02b9dc3c0246b3195906d9208bc2a6b3ca31091d8cdfca8338fa6c489b7caa5685a23133e98847a39"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/az/firefox-47.0.1.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "5ee1247e37964274bbea8021c8e4e5116fedca95712fbd91d709c5c580bd1618c6319cae73278b2f0ba82031e94bd3fb382d2b4dcfc9a5d7ad47ecd80f4fca43"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/az/firefox-47.0.1.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "c369046c29dd0dfcf40e69e1f5b5a63423833a376d2b143d3fbf2ee1e23dedb3baf24843ba1178bda94b86f357724898a147d4adfac1e469cbf44166d7ffd16c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/be/firefox-47.0.1.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "f8a1ab05b8d25a7a30e755a551f0851a308ba0720180685f6946a510363988717f8274ac2c8ef826c60232a62c394b86829d289e7d74e24b7656b55238129b15"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/be/firefox-47.0.1.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "df05271371de5fa25ec11164eaac0b253bc892749d421a6ca730dfeceb4ef89492c42ce83a87eccbe91cb03ab001bf0a1d9a20a7296b69841cab8c6b5d2acc36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bg/firefox-47.0.1.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "80644b86f9296b708e74843a51f81d368e3508f0f2f74de1a998d30a15f6e3af08ffd70dcc5c79adb76c03be9ff4713fc8403b8433cbc33ca3493941c4fb2fe0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bg/firefox-47.0.1.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "0e6cdc5b3cc706031c95a550b0c800c9e8e2d7bf241010c22f0872eca4bab018a5f0d4a94abb4f8291c279476700f2101a69ac0c57ae79994fba38b88b00fddb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bn-BD/firefox-47.0.1.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "4c697f1dcd68634e2ab712d4f2415e57cf8be0017fff3602223d8af19a1f3a5c973489d13951baaab95924fad42212a485fdff622d2b559be36e246c8a847b67"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bn-BD/firefox-47.0.1.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "1931035a9d92dd9246a00b32443e282dc405096407a4feff7856125b7ee156840114c9be0dd58a020c250fa54c4ccb22052d2be291eeec9b5f76303fdf6c4cc5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bn-IN/firefox-47.0.1.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "fbab6f7e4205c803a50990624d58aa80cfd3aa76fed02cbf9ea390f4ecdcc1a97bda9b51791cec49f2a7e1010109d5f81a1c9b6ac224f1f70df49407df5f7386"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bn-IN/firefox-47.0.1.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "c705ec8356796060c6782261086011bc0bf3ac9f08bc821ce2305c9aac11c522abb802a9d9ab7dcb53b0d38468bb6e667d45b187355d769acb43a8b252c4f400"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/br/firefox-47.0.1.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "c58cd77139a0ae7f3bb8f6f25c40856aca18a831c8f5d6f5d59a45ec615420bd55205093fb66a77591835b0d9493f774b1801a168b9c071086d510a1446cc914"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/br/firefox-47.0.1.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "b6bde26d478eac081007ef43a6d588f70dc4d54afc423b019468dc91bfcb117d3b4989c4cbb4cf77a1a11847a58ec74fbf822b6e6f0ef86fdb0065c301294850"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bs/firefox-47.0.1.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "16ee40d079996f42be77167b73645d389045648c9d36b76e34d0398c7b5b6dee54712d109f93d054236ac7076fc3edb06ee82acae40ad22825a23d92d0e2c636"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bs/firefox-47.0.1.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "ef674f409df5c32fe4584f9de65cc6558d6b3ec78d8a83f5cec829bc1ae09f30399567915e32584334704d12264c2592fecc9e4952beabc8b0d4eb49a7186854"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ca/firefox-47.0.1.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "fe522bd836c82cb68bb21ad1c7f36bd9a7af1642abf7c035e2d0999b4cc07c58124e4d8de81344598036159102ee12f22c12e44a8a087e54d6c661c3f453b63e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ca/firefox-47.0.1.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "b618da984d35fbde3819d101c103d8d9a5a4de98f0e254c67e894656019ebb6adc56e14a57410a61430d9aa9c1e0a01339b39a5272164af372544f27329a1644"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/cak/firefox-47.0.1.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "82659aa2fbd091224aef6800b3df1d2e5141b6a295918e4fc4ea09b671184f62c670e3dedd7040b2f167581b0c8a0e8799d861256b273b01b2455d0937722273"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/cak/firefox-47.0.1.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "a507cff511c6337f805a27c0f73548342d2fb2cffa683874d66b054b844b17c354cc6da5c3d15618006c2279099b0cd9172b17d9d4b21a3863b5e395db686b22"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/cs/firefox-47.0.1.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "9af91acffc2beeb53280a6cbd21656a91a686c03342fad90dd91314c49535acef1a8abac8fe54bcfc250ca8b8f07e3550c890094f3bcee6baece983cec68bd8a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/cs/firefox-47.0.1.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "c8bea48dc11c021fff9df5ee1a67a6b6e9193ffb2a07e17014d7448254d8a8f4d1512f862ea73bf84dc15b40edbba3fd94cd3d2d18872255bbfc7fa9a7b8ec29"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/cy/firefox-47.0.1.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "7cc062c3b9b4bbfd0b1f7247f06505ae99458514b607d4d9062836085798bab7ade6c4d1c8903b1b961243c6fb6adb4c4f94780f1194f745cf62d786e2c4f5c6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/cy/firefox-47.0.1.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "abafa600b941e17f8aea0e778a937f5fb34cbc8803c93e59febc5d9fde6ad3347ba0bc7aa07ab57a61f6b9d6b11d582b987100364aa8401bca539dc6e14584e3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/da/firefox-47.0.1.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "d4a9141779f52b78a51b9682b6b44e5ccffdecf5582358ab8a02efe133d9a52023e03c238e106a79e41a8aeaabcc58e0757c1af66837768e7bf4732f26182915"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/da/firefox-47.0.1.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "48f0c48aa273cec9830bf806330c7a630185262838007628acad904a45b3186450a8973938c36db636bdef9042c78ce94a4a456e1682ef561abaabab6ac20863"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/de/firefox-47.0.1.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "01675b3a8ecfa10da1d101cba36295b226b130e1cdb2c760541cd76c9b21436ae84ca7228e063402b1ca2eb59acadcac7720c9dd47db8b406675fb273af206c6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/de/firefox-47.0.1.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "6a7ef802a8109f58504b2accb9ef0ee38986f6c8980e0831c30b470f2ee768169557cdbde1a58d7c72996b27596e553185ded476cecdd7114b75d82428b7846e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/dsb/firefox-47.0.1.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "55528fca4d276b2b0430949686845e3d7d88975129c9a9846408f758b4f9c8f154425db891e5c1930197e36137d6c15ba29de90dad624bad23090015849d0ab5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/dsb/firefox-47.0.1.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "f21c14a57f6f973be824340fcd417ce03765d5826114462f62adbd933661bccbfbe90b66935083619c62d48401c511830574ccc373ca2110093b06fad59734ff"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/el/firefox-47.0.1.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "ac5a808db1ba68286a7199eef33794f7aeeafa26e97a20738fb21be479462bcaeb1e8a7995720d5c7dcaadd0cebe91bb2a3e019873d0cf74f42838f7d5c1a427"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/el/firefox-47.0.1.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "c02e6587d99fc3ca66debe854c778a8b3dbf9b514e6ed74fa15e3035a54643b2bc324ff59f1705c6bd392c37ad1996f80dbabbb57df10aff954ed0ff3f5b01d5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/en-GB/firefox-47.0.1.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "c458c70db0408d627a904781adc9af18011f243689f4c5a606c8f1508b4e9417a8df499673c4ba56d32ea77d0f79ab85ff88852f7c518e7fd124e5970615b2f9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/en-GB/firefox-47.0.1.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "28ccaebc4f7613d7ea8c3b47504923f2d59bdf4afd6e386a67dcb6b6923a9374c1c783e4f904da0b6e0f716ec87a046fc12f3781b732389d1d680745d6955c58"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/en-US/firefox-47.0.1.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "e1ea34bd0829656c04c471b66d2013fc07cbd5cf40b47bf3a932326cca71f9a502c52d1d5e6dd902d274d307079475b0e75d7ff552fcb2fadf31b2883efba79e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/en-US/firefox-47.0.1.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "a56b2ad26df424f008d96968a4e6a10406694b33f42d962f19dff1a0bcdf261bca5dd0e5c6f3af32d892c3268da5ebee8ce182090f04f8480d37d232ccd23b9f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/en-ZA/firefox-47.0.1.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "d5efc3d4e624f34c81df068f4d6c184cb8a63ad0667695e9ce7099e069b23715eb77cf2004adee41bf355452179959e5ef7450f167f87be70339abb4cf70844a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/en-ZA/firefox-47.0.1.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "859730132549691b61e936813f0f5fd3e62f3ef6fa9899e3f68bd3178b7438b4c6b49f54f00d4898b568d6abccdd55a0f9fc6c51858e95735fefcc13de460d73"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/eo/firefox-47.0.1.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "8ef290bf1eb3504ace393b32c2da64d14435edc327c4f13a40cd925efaf7e042a03b6877689b3f2290f85625410a4e48dfb2cf676f138fdba87ffc597b25f4b6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/eo/firefox-47.0.1.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "7d6167749d2a57a9c12180302a825fee14555e9050b6be3c83dd35183678bc36e10391cedcc864ca0dd96d297997a68627dc4fc1a9cd8922e789dcfa814f18eb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-AR/firefox-47.0.1.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "07768e3b3ed903f4327881a132f192a65842a376eeca6d10ec0de69fefb4ddf3d7fee2a704bbc8d229c78556478814d9e53940cca9edee58270d9790d6b76998"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-AR/firefox-47.0.1.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "cac021af09abd742273dc77291fb1528dd5d6d38cef3a5e36e615fbb9f3908655fdc96ceb93fd131c4879acf24e702a044471136e7575f3b550ebcecd982047e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-CL/firefox-47.0.1.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "e92ce6bec5b1ee8cf3db0a604eb4cae6245fb6d04a48eec64b6dd55139f3606cbbcb65511e29a3164d6572929b7216afbaa7f034a2191eba100ecb7403740504"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-CL/firefox-47.0.1.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "98e57146481a53061c0b30872290ecabc2d14c73805a9461d82aaaf4cf9f301521fd55b01c8159c09a56f52a1580d83c9527986b1390f496d0fbd11227216e7f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-ES/firefox-47.0.1.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "c44df66e140ea9190112f89aedff9519b6bee18f5e2b54aea19acd233e623c299aecf134cdba70d366fcaf6b7795d220052ff75409c7a04394a7aa02d9ea708e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-ES/firefox-47.0.1.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "c2d70bc5a304df7b2484c8fb2b374f8e31a69049eb223a53dbd0e4b51e4ccce907efb1674eb637370ce7c3947ba5c09e65f433d10e0f328b80d482f3de9cae12"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-MX/firefox-47.0.1.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "96dcb75cffeb85b85f092e295e38ee55c272714c40609ca90cfaac5fa0cfdb3efe8e993319ee690b4a7938c42346bf39f063ab1f3db606e743c1e4720de5a93f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-MX/firefox-47.0.1.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "60b50d6726b2e1985564bc02263eb88c9b4c1bb39e6d19812ecc6751d6ad223ba04f65a7755a946fb15dceab90628b057bda89c55fdd4972604586f52c5a4b1c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/et/firefox-47.0.1.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "0a4bef2277f729c93db413b68f8263eb356f7b3278880574b8ebe010e2db9067b803967e1f0d6912f128a9ad5ef204466f52ae277f3addfb8fe9ac377c3b8a3a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/et/firefox-47.0.1.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "ed1bd4fd67262958601f1107edc589bb28e9b7f9faf0edebdcaf0c07ec6007f527a9eab434582a65271a8f68edac8178601da54eab9398f48b31126657a21b0b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/eu/firefox-47.0.1.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "8c5c9406345e2a1fca3544aeb742dc0d254c804d887e3614613280c050a63b69320d4488b017ee16b0a2a07bea862e8b245baf7edc9df65689d509986f3c5958"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/eu/firefox-47.0.1.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "d8f7004e24033f377391b577c549b66f73cf0e899ce5f580eaccd07713ec03b4362db7b222ce6345d113641d3e6a951302939bbb155c47ec0fa46a201a631427"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fa/firefox-47.0.1.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "f4e02737e20b6ffd3bc2b3a5e5fa59fc80a8e37dc8459ad4a6b99e7621a4d3f360884915f7136dc201830efe371de37977ef3e27f34f84e2cb734c1fff8f6e36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fa/firefox-47.0.1.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "8f624b066faa39341b750dbb702dd60ee6ad75b3850c659dac2e21969ebed1f792423e9fb0a9cae7fc456943020f9a0155af5d7c596433eedaaa9990ce07b7d4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ff/firefox-47.0.1.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "22a2c5376b1e8d770659475085d98ac1f1020cd816ff3ec6ccfcd68f2484b1b0dc25bb84ca52f4ad27144f4da356ce5e7fd54411d12ae7c852064509470d5828"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ff/firefox-47.0.1.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "bcb3dabc250045b8ad444219055fd9d14902296ef3f9c320bec1bef940f84eeb0d4a50249805188ae96ed0288a70f0216350ee79191beba49aeba890ae515b41"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fi/firefox-47.0.1.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "0c505a0e1d3030038b61ea159eece3892bcc7d947b6d7010c0be8791525c9d91ad1170d4cb45260584c93a78a4bc831b7acd9f28e95ae62e5b96b31745dcbe50"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fi/firefox-47.0.1.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "f347cde005c6b61366c633db5a8cbc5260dfa0d68230a938d847e3f80bff2f1bed09dddded7b1728f4ef9525610ecd046743f9e71eefb467943fe6b72ed198ca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fr/firefox-47.0.1.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "8fb8ea2eab82740657a6b822b330fa0c289c31ad900683b4ad07b1e9b0c6c4e14f50af39d6d0f787642010628800b0a99b5ab0c4cad62e4a579390509b1ddd13"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fr/firefox-47.0.1.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "ae79c5b7f9f8305c3631f4f913baa341a9beaa7a2ee5df1c6c1826030c21bf22b92095ee579affb8911110bf3bcc359793c0beca18d4c32b1fcc1f3d1dbcc4b9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fy-NL/firefox-47.0.1.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "1c57d02fdc33ff53de48ed9aa9e89ecd5a56d35b432d5651e71bbfbd5f9dfd18aeaf14d10b881f72df871afd00a12b31ff05cf9d5c5a55cd44a92c7a0156523d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fy-NL/firefox-47.0.1.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "f30f59d630c5d289b61dc7440f7bbb976eb16732370f827365a477090cdf9f2859f39afb7ff9d9be7e8a022f181f2aeb7a3005c00f4c14e6505a28db7ae48a9a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ga-IE/firefox-47.0.1.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "739d5feec4bffee67876227f6783d35675f4c0d168b7abbe5f97b6e8edce7fe4b8f04f8240087f7f208db4180f3417997b661c93ebe046decff3f4f4fecac839"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ga-IE/firefox-47.0.1.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "cb4344df6e07db839ce8c9fffd1b7b310c8108b5218cea3602972806c1a40f56bf1355ede4cb3595f54179b16e3470e25bfbddc8e39d726c7d6c1e99d128ca8b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gd/firefox-47.0.1.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "91004d62bb5f1f6a1d65b35fee9e594d21d9877669e042cb4c9a834b01b35797363e1433a9ce5a8d0a9f64c8b256da6a6d09fa3342b74b7c2af8ce8afb3e4e56"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gd/firefox-47.0.1.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "f04034cafed25c34713ffe4109e53b107b8fe81321c0c0c035f54ff0ce67ac393b42db7598edc658d3f026e447f9ff1c4d1cfdedd31066eefb6019117248e4c0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gl/firefox-47.0.1.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "107bdebb92ce86f39cdc45d6bb24a9c4d104820eca6bb77950693ccbd55e7f8a2f143fc3a5bbb1bfda161e7a33c8f6d8d2686b09da1497215defbca2b4e4e109"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gl/firefox-47.0.1.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "c841af5c73343475150b5404b4b54396bda845aa5b231a742aa17ecb7fdbbc5cd4123efc3ac2ede1c24f485d04bd87e8bf7cb00b7135bef236ce56afa0c27a19"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gn/firefox-47.0.1.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "20954e218967772488bd895ebf069522c3f4c56ebfa09a7c8efb740158cb95b6be76cee8f4d7f2c1c6c505ca9071a0ddc1914784a54f669d337d5196f18b6f4a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gn/firefox-47.0.1.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "aaed68f13e326792671669883b452b65556998ed757ed5b745c6453d6bae8865a06f137709de37ace2688e2e09f1b96ecf2e5b6374b4170d29100c6f83ce22ce"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gu-IN/firefox-47.0.1.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "205093ecc0dfcddb2b90e05b1a17f75805a4597bbfad214d67442fd0d952f765b031ba63a3c399ba9c1c46e4d05b3cf786f01c46eb8990240a16431964c93a94"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gu-IN/firefox-47.0.1.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "a84ec5015f6922a22a284eaca985010586067370d818e77d401b58782f86dcf2f534f1ef021719c170f1f502525ce25c94760d3b75481c15fade3c25b969b563"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/he/firefox-47.0.1.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "5727fc4699316c4b34be1c2596c5cc20d5fc9d2062b1e106087cdb34b788fe3ebbc098acc8c690bc83c9d9be59ac3b3977fd9116d766ce908aa088660fe34771"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/he/firefox-47.0.1.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "c399969bc24b10ca1c1eff17d3414f214cfe3e5b73282942ead5b2ba4d2c58b74d665b13031ccf42956cd45f0fc7b206dd2f9674103c1e3a8861a33577b5caa7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hi-IN/firefox-47.0.1.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "f014c47a143d425aa3452be2bbed199a8b5e75d278c35fa86bb6bcac40bfb32bdee22d030386c881c818b465451b35c81f97bf29f9ccfbea606d52c822057899"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hi-IN/firefox-47.0.1.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "0e5dc0970680886dc02448d7118b6864092699fe44f3276ca17cba160aee59418f8e39338247897b118de0e1fb7634cf725ddc6a34a8b6f002b7a78d92deffb0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hr/firefox-47.0.1.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "a9af43f6cf6f493f728b8942d3a600f3cb3a23eb0818d284ddabb8766f7d274aa0a232f9925b65625bb56d00864946dc6b0567491cbecdd6a7cf626b6964d9b1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hr/firefox-47.0.1.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "d97951148ca0ba80a67020f323859ea3f508e40906ecfd18f7a8fbe7a2bc85ea4635945b5c6063e1d5d18456471604075e6767da9a4fda6a09dd3e992a7d3a88"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hsb/firefox-47.0.1.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "2f7adccdc894f345e861b29a6d65909b1cde2649c69ec9223f784e659e8e3f4668f815b3683fe691de0749483167d26885a0199bee88e8524377c7eee3afbe99"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hsb/firefox-47.0.1.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "70e39341ede01e18c653a0eb56b48e31c73ee3df54ebc11bcd220e2d8e19c67c3e248095c4d070b12a0eac5c24acf5a8ad83069673dcaa684229f4706103685e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hu/firefox-47.0.1.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "1fc01c6dd873e2194e6196b1bdb0246e95d0b0520f558b21a2052251d2a5202141c09410c4631b3f025479169d8f68411c2a24f32825261fa8d65696fc7cbe0f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hu/firefox-47.0.1.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "b4509d671d7eac055812add85ae571f52c90b4eeb172d21c22ce844c70192ba235f37a732e94a0edd6794ecd5a8caa5e8bb6ce05a26d3705902d3628420af871"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hy-AM/firefox-47.0.1.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "a2b7cd1ec95a0b5eb064e816cfcfc6a74a92806772592947267c4b266bf7ce77d1beb17a7c25b905251cf497ca8dfabf16bca367cf6d9e9e635182f306bd71ca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hy-AM/firefox-47.0.1.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "9997ca45051e609e289d7730caf1254adacefbf8e618a165750d5bb7ff7933d014781af76501296c89a4236fd3ac477df6e6be5a5dd45f214983c851a856ce5a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/id/firefox-47.0.1.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "bda5a7c599885bef966daa35a3f34297e38534e32967142ff9cc720a34c7aa9730e3f24623c240637838eca03f78f9b2ee30af3ac3dc8ba48f9664c56b64c789"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/id/firefox-47.0.1.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "97d16c5b4382c7fc6ccee416d671e47d345834a44ab111aa486a41c756b25eb894628d0128e8454fc15f38937bc40436b12e60752ce7b7c1fe35a230abaca337"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/is/firefox-47.0.1.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "576b904fb836ea735f652c6b9c91891dee164edd3523c5f99d68cccb4bd6689c29e4c579b6cc44e699a8900101fb8d223f9e0b0860f71a2814ae0ee2c70609e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/is/firefox-47.0.1.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "592d65977c34c6133f5745a85722f822efa5956bafc6e880954a0b318fa59712c754e882768755fc08f5e08a1c99493c0b30b4219c46169ba663258e3fd3f3fc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/it/firefox-47.0.1.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "4d749e1b5d8432df789f29a247ab48a688d4aa16fb25dcf7209783c6036bfccb9ff8ac32dcd09dab1708f71896fa034576d6048eef077d1a6c0a3dc58d3cdb26"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/it/firefox-47.0.1.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "087c456d691225d9aef54b2013af69cc7bf2501f83060179112e9c40c1d6762202f68e6329a936df091a1ae6aa5f20bcc96a4c8b0451b71270426bddfb45d15c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ja/firefox-47.0.1.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "cb4b0bbff7d322f2f04fdaa50b365d4e0a1ff1786206539cd124870ebd69a9305b88d39b9fbed41c64ddbe68098e02c51a0dc665262424f8eff882b1497ea1fd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ja/firefox-47.0.1.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "b6c9b419a3e746957f93a4bdba9043adc3911b6f76e1eea2e4e31e77e9aa9057ce720205db4af5586a90df4d6b774b90829f1d7689e77c560c50ccae755400b9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/kk/firefox-47.0.1.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "ae7711d86ce8180997f44f9309a63a436bd8b70ed0dccda773c34ba816daae99b3b1ae913ee87f4d1f9a4e8f016aea670e89652823df16b5e8414bb58ac28225"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/kk/firefox-47.0.1.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "49fb6b5ab6aa12535373927519bf36099da6fab7c2e1bcd6f5ce73d91679f58e81eddd3556df65b305fc2d1cd439cf6de081980fa98ff79df16b620ed41290fd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/km/firefox-47.0.1.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "29dd1808c1430c01dbb395d5e5a833bfbde85453278d4efd32f1afa1eac19a651c0c3a42eb4ba3402f56a8492e80746d753986c0ec0f1a6dc0e5eb6778b5c6ae"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/km/firefox-47.0.1.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "f53966aed30b57a601152f09a26414e11bff4ff31683989eb1e47546eaa32fce8cbb6511043f9753cae076d23d6f2172c2b224313cf5f3262f109b49119175e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/kn/firefox-47.0.1.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "17dc37df2b3d5a87bbadc4d5c80d4ddff03752b7a80f5c76171ce9f0bc4b8926964b6315cd4f0c6c9dd3142cec56b464503bde34ec3c69e2b8a66ddcae72b0ec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/kn/firefox-47.0.1.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "2af5ac5c254bd0ed2d08656a6fee7966d73aa89973cfad67fd18d7d88fd1f18a2b882de7854af46a3ebc6acba4cceacc06942db7ae495faa2c6ef21c65e94158"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ko/firefox-47.0.1.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "415fc260f3dcc2ede6c43194501d9522fdfb106f7c86e5d8f5929df6615c73023fffc3efd190deb68bf08bb2a0d4ab34f7605e222301c8350b980f2dbc289c8a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ko/firefox-47.0.1.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "c991c0b9a89b618ac046882b929fd7e3689e19dd96edf4535b25f9172b6baaa801a4490ae4fd35e82ca3c776afab74a0a09b993f8ae8c2a603d210f2cf248f73"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/lij/firefox-47.0.1.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "3cd367654397d14b782cea4ef8c96f1f6938f011576a8dba92dd4ca832ca3c8682f3e0e161a4288b112fca550d556080d0ece5a79e4c4f6ec99a9298feb6fa12"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/lij/firefox-47.0.1.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "2d7475c544df807a956feb9361f889ba0f5e43dc52a9e1dc9c469d86e97f344b4f2995e3fa149a77662969f3acbcc998f430973b2b9d28b23c82c5058b4a9dfc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/lt/firefox-47.0.1.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "35c8a452ca845576739d5faa9dab6f3c34dcecf9ce95870f68699836f3534b4807c91fbe80007950abbbca662e6d01b406205b3e4cdf4d33e0717ea5d6f57006"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/lt/firefox-47.0.1.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "8791df09d841d5ddabd552d0fb0dc7e9446d23092bae1010d92bc3b056a9ad4a6dad01c5d8db531a273945eaaf4c30c922cd03d7b17e1b6be263e0bcb91b8384"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/lv/firefox-47.0.1.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "22b865a344a46096c53a72ff6b1402d00808bb3b49ecabe6f4115ea60e40e522d64afc701648772616fcb784a963bc6d5bb3f89517d7f8407f22fa82d81bad98"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/lv/firefox-47.0.1.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "3c66af306b1a8d0a684c12511d95353c0bdda0bea981ce4e577c928be03e12b582b19dcaccdccec551b3cb0fb716323b1079180aa7a8f1204f5e4b5a84b72831"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/mai/firefox-47.0.1.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "780fe423a3cd56a7452df32679ee07a0e328b21cadc78faa2721cec59185c4a4467aeeb75e9237cc86d38dfa2cd71530f02156c4fb9515582ca564dd53d47543"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/mai/firefox-47.0.1.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "d27218b59edf004dc57cfa9ffd70dbeb59b7d3c0871b00388a56b505629fd82ddd6f6e0147f5b4c67a8ad72a674e384b66ba2f9455fa9ff218c9ada4b27d1d7d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/mk/firefox-47.0.1.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "da7ae3718f3c69ec9b62aaaea93951375d82d8d02818d6855fa9f085a64b69c155a1336585d786ae2d33d657110b787f62909dc9e4d54c62d2ea94d2fa8fee3e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/mk/firefox-47.0.1.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "95136f8bf86014a63bcbf4a5cfbd778c4c7e6a84618aa0f6a6948bb597638569b3702e0569b50c5dc9b46339e723377faea8964b921ae9802043fb7983a2c4e4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ml/firefox-47.0.1.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "56743acb54283715fb2a910caa85dda61f7e2c1c5e012aa222dc07e3b522572500056fddf990b7ef03a175ff8901fb11b113bcad5c2adf4a6e6e032644ccca2f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ml/firefox-47.0.1.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "134f35f5f6616c2a7eec48f637277fc02e23b57bf38eccff9777bb08c70a41fe79967b69567f75f9c8bcbad4b22d2ddaf16bec98e399c4b8ca9db9b70e99ef58"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/mr/firefox-47.0.1.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "f29de7ae7dba03465baf86f93d778c9faf3055d50295977c0207c7e4daae6f7ad733ed38e1323263cebe4f737d9a1616024333a97139156470de1a9fe3c16276"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/mr/firefox-47.0.1.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "731b4f143fd1303ab54ea3f1b6aca6c4f78ce935caae32fed0b8cdcd46c0ade8c8977131a3be786ea929a7d284c3d45d34851a0d81242761f722f0bceb126957"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ms/firefox-47.0.1.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "d372bac105f2012b189efedc449c7c183d0daf64cd7a40822ef9d685ce4a1550ca9699620440dd198b13f95513a577766e9f1a8e88b212492831bf7ffcac7e0a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ms/firefox-47.0.1.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "1287f36a742fa834d5f31e6bc2f6d3651e54f2bc8845a1f0f647e9a9e38ba66c58138961185897c8832107cffff06167a35dc3ee1f0ff830f997f65fb0854a63"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/nb-NO/firefox-47.0.1.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "ac3e46080e188e56a6b67ff77aeffdba7982d7c3aa4156a6f2781ef6b8fe63cac50d678e5afc91aca4ad16c4384d2b2727f74ddc4083da91a1e3590ac98ec9d2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/nb-NO/firefox-47.0.1.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "dca52381e45b5c2d89f590971d830010a9ec1a2a513fe655ee93c3fbd980adcea78787701595a95402bdb660c2f3e0a489e001deba13798337493655798c713a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/nl/firefox-47.0.1.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "6ec01f8eb18384aadb5715a996c8410ffa94b801ee1f1b1ab43bdeb492e179e781e8b85acbeff4a25cb4fef847ce3e2335968458d9f6e47d046083264e91f6f7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/nl/firefox-47.0.1.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "7d5840518312dd167d914a8f7fa5670fe17f9a6fc39ccd128e30f689005b35bd352d0602993713c3d05288f2b036829be8e08398d536e4aebf2341ae2290e633"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/nn-NO/firefox-47.0.1.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "a185f7592649a91214363cf2a0474b5895f33342c98cd4bdc48fafb0cc76310b2ba4f46575970d723c76b2ecfeba8e2b39d9671e6059a15bcb2565258096156c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/nn-NO/firefox-47.0.1.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "7f8e7277bcbfbe5f40c161f1ebbeed86159c2b6205a5ea55cd8b6253fa6742bcfede11d4de6c1aba36e2b1e98f9c9a7b8e26f9aa35e1eaadc1d011636d429be3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/or/firefox-47.0.1.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "a543a7d3f4e24364be7e4df65a81da82d955d1268a4cbce741ad7ddd5f4e9916573e271f02af1e92b123a4da2c7f312c17f6ce714e3057a1b204484ef12133d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/or/firefox-47.0.1.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "7672596470cd8f49f9c4558b05bd637af1650da729bc518681a8cde3ec785358121fa7ef209e123fca4b59df1a63878832bc32d2ff404b5d2a818b60ba10c15e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pa-IN/firefox-47.0.1.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "a99b60ae1eb479e31f838fd41d5de325c418762fdcfa5e0f3bc3d5da8df108d3b64ce5bfac0af09663007becf5327164db8dea0ea7a3876586cc43030a780199"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pa-IN/firefox-47.0.1.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "f0110b74842f924808f74979061151fec711d10a6005d2da2fbb8d46fa2a25ecd5a2c804e58c10a918efe570d4d67d05578b0245f526e1aede4bbc786e9f304e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pl/firefox-47.0.1.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "7eaa2bad351429d76b476819a1529ed1609388968327382cc13df235a294f2e9fb14295341ff15fe3b2815ffd1c6c8978e2aa104a847fd2cb4adcf2ae3b0b974"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pl/firefox-47.0.1.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "a40e2c15cff0e7f7bff8a5c0bc4cf39df948a21bd37b34ffc93dd87e1f5256526a25526e457fcfd8d081bc872dc1bec13e67da3cf671b6a16dfa17850be4743c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pt-BR/firefox-47.0.1.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "c9cd96e68fa2e1f73a49e71c287a25be8d45a8ebb56262e02c40ba5869fc58c7fc43a1f6958592bb377e7dd4064d64f5ebcbcb5cd3a9fe0a007c2da665f50a66"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pt-BR/firefox-47.0.1.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "1184751c1d1a0a9044f8df2d20aee7dfe332dc5f851802ebaf2c5c83fa2bcccfd913cb6e16d2baa449cff1b02aa18f828489914c0741a2ef2a46d54fefecc268"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pt-PT/firefox-47.0.1.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "86538057ae91b1297acc11c9bf3f7d24ba1950edead89d4733f7c898cf53e3848054bf391a975f19766b69f4c56f576ca54e4b8da806db7416f3e3d91777c3c3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pt-PT/firefox-47.0.1.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "0a480c26e5dfe2bb9b536e122ae32e18a6dac999004493839cb506c1ad615e095c554d296f1a77bfccbbb86b58bcf549db83f7de51d02b68d1eb752b421f23cc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/rm/firefox-47.0.1.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "751ffe931cd60296490c7164f49f61f4a51bac5210328a18d02261a07eb607e181b2bab4fa0b59d2df15334152386bf816a984840d2331b7e801171be9c90594"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/rm/firefox-47.0.1.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "3e526c9a1a876e5d2c548c9a68803dd11c04c8214e18eb09c0b1c3fb3833f64c8a3362db8083ac5de81c59268439b53effa3bf1c64807fafc874eb8ed9baf188"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ro/firefox-47.0.1.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "73cf6a18deafb7ba93fd60cba3ba0bb0191471f977c41bac11bf2fd6cc6f7fd7cf2ad125ac5cf168ef577d71dfb0e893e182f39be6ad186ddc642d87c40041a5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ro/firefox-47.0.1.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "b62c54b8694b4a662c1d336056d404a8d432ba0a3d4f2964b5c5acc0e39b668fd228105e1c4e307bfab1acfa5c3ce223db4229df01866cdbbc7c1ac95e70fe2c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ru/firefox-47.0.1.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "6ebd3b3a1f3613905313129cde7cf113bdd777fd0f600496231ba813a95b04309b25016dd69891d31189a93ccad3f87b9c69d54d6219ad39dd38d1181b1f3102"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ru/firefox-47.0.1.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "539a22d13587cdcc21b6f76ff24ccfd1df98cbaaacac802aed46ba8f2bfed27cb2f3e5c146cbd2c3559aaff22297e692030b9612041a05a6bfca08f49bf0d2fb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/si/firefox-47.0.1.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "bb0d1621f5b9af886fca0ea7cf7fd851d7c22d2d8f279a7b88e9bce98be33ad7b75d6a51ab47ea859802ed39b467815db60409285afaa0bbf4bb1ce6d590eabc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/si/firefox-47.0.1.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "90337d193df7db41a1384856938bb62212952a80144dcc319a725a9b567ffd4deb7bb7af89b57891d3c17499ff466990e656edf7d0b017b8f4e0370aab445477"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sk/firefox-47.0.1.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "23a15e6ad5ce9b03c218be4e26e603a412de4d870d5f64b599ae511bfc66bf2cf04613cc06fc1a054d06b80435e284456c0b08e33f34d8c9482f5ca23da6ae62"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sk/firefox-47.0.1.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "a86cbed60f65e4ebb36c614d846fbb2515945112fd4f2482c3a63b49a62c3acb310f050dcbd57cc76a808c049eefd8f779d6aeea53362dd81798bb8d7177c86a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sl/firefox-47.0.1.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "8ae008f0077081ef40de3bf08c2de294231f41439a83d8a41a485f53e95ba3f4fc6ef03d6ac98e8848c3f3dad290978f1607d8c847f1622bd86b7d38cd0be730"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sl/firefox-47.0.1.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "34efb560c65329c7f3f6b341cc49ac4952f24e6e9b34e7f5bd45d98618a4d03ac89c6f62580223efd2d37db24a03f76a54381d4162f5430b887122bb56eb49d9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/son/firefox-47.0.1.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "d3e5a25fbc4a786239a7ae543fefb7b7e3ecc34192c8326af915f18b9b08436656bf68faa4953a34bdc464e32305baecce800f91ef0152bb4b4a8323ab448f33"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/son/firefox-47.0.1.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "ffee5d1a23e91911fd1dedb5ecf24bfc6b1733fb582e64a5e07d4df4b7afd9a6c502a70ab3af6624b4594f5ddcd81bc8962ede5b693cc035a96a561389f6bfca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sq/firefox-47.0.1.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "1cbaf8c32d1d3205cd85127839eed11b416903960c9e411b9adc71c42ba4add47acddd32a9217bb68f27b90d6765892edf2d356e21235c5bfd5cf69d1ee719f9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sq/firefox-47.0.1.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "16d93961a53ecc3e1ae3480be9e34f2a22dec2bdab55dbd35d1ea79ecf2ee48f195380bd52efc7d39529601610793b75daadeeb54dd76c9a3702c786af25acdd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sr/firefox-47.0.1.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "0b2c5234f1787cd972fad398dc270766fbc3015dc1bba29755e5316f207af9f5787d4aa41e96cffd2c9d31c57a5d1896e63fcd04e6235a4a6798469e738fa10d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sr/firefox-47.0.1.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "e7c7e7ff7fd81ca86f45997faed7244e4d807c3e5ad7ed66d6feb38c3e9173eaf136bd34af690ce28534f0c531c7f1d11595ec6502dfa42778cc19dee4334c49"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sv-SE/firefox-47.0.1.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "dffb94b0ddb4b9d2effba3894b408c9f191f2079dc4b47e214347a235c9bf1adf77e520465691d14a274c3f3344c7f8b7d41965051d506728347e0af1117ad27"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sv-SE/firefox-47.0.1.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "b601906d28f071c6beb3dbd6b37fa68f50809c9c47c9db69d631127ccc7b784e7d3b278aea6de060b34d83b6c78137da32b77f8e17ed199c3213b89dd9391264"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ta/firefox-47.0.1.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "1a496470ef8e0899bfce66b41490f54d4d32776eaf60aca8725c4732512f1d3befb2e1fc3b942ebea95fe2359509c43d41649e5f90498264b8e02a3352244260"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ta/firefox-47.0.1.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "00e6dbc43ad3c77693903fe534722094826637698df691b266eb801b27cd5e63502c21ca3e34ff939a7645a1f75d36fce6154626019eb96bc73cc39ab845c952"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/te/firefox-47.0.1.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "70ed539571cadf241f819b68ff24829db32f56287aadab31656fdf66c0ed94ccc6cc11b6cef6e2e963203cda47af2c6032db6e5689c37aaaf495b1e4fa970207"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/te/firefox-47.0.1.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "d491acd4635ab9b22f76531740c7ee7a85832678aef9ed646e75f56755c02538440adeea71e9ca5a7a5e11f3f2f6941c3c4c1e47380547179f63baaf6c20ad07"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/th/firefox-47.0.1.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "0414f74c6266fc204f2741b6860f7919c957364bd56ccc2cec5ef4b9c4be812c554ab584e6ce53387e6b7a18ad02991a44d9507a16da59a4aabfd44e7fb5b754"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/th/firefox-47.0.1.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "2952cceaecdd4013882150e8158607639e4ab2cffdef563d4fd1a015c41f1eff6c5ac22c0b9301a05ab6f9fef9659d54916275d5a50d97ad43bf69f10da7b3c8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/tr/firefox-47.0.1.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "c5c6273bae2b9a46108a433af3a85b5cbbba4cd3154ee124ccc49f46c4a76264836a76d1b2da4b1064e9a913cc9fe461911c53e44f40343c5f780be04da932e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/tr/firefox-47.0.1.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "f0b5bef1ea4b948d699a79d902055d5b31afbe5c4f1814d98cadef1ca820ce39212ec009f68d875860a48942e9d797bda88eec4f6ed591dd8b3b260e04170974"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/uk/firefox-47.0.1.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "3a069ba914716ce122c4a89612988708d811b9350d333aab203dde212527c0e0cc86ec4781e6aa23f40b77f2266f76eca366cf355651870f43e180b97aa25c43"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/uk/firefox-47.0.1.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "db7931aa3f1d150e4b5b8c87b9d069df4a515fb2aa5e250b8f8a1bae0d8fd9a210ae949df056c47e3c88e8faf28f2571311ce2d6f179e3365720b42f1335b546"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/uz/firefox-47.0.1.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "110a82749e187f39d77f63b16ad515218e5512e5974916e4145e625a40d797e23fdbb5d110a23f061448cfc3d3c597858636c9304e941a34c68368f749c3c900"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/uz/firefox-47.0.1.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "1dbf94cef034449e8d1342822384bf1761dc61748e2d876aec1ac628dd161f92b62da832fe397b2fe4f8a1b82f9adf1c3690f26e07ee3e48c6299f95969533cf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/vi/firefox-47.0.1.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "af97e1dcfc9bfbdce95a5cd35025b2540ad928d3238863471116e071a51b354b7818577bc3e7427c513e7b335bc1510605ba3ad1a37221389de7c7fedf6e2103"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/vi/firefox-47.0.1.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "cc938935395e66ef721fdbb8c8b781ef648b5419393ed1687a116a4d9ae12dd18f2edbc8287235504aa6782bbd6a41f9f5dd89c9c712ed4980fb9fa44f46ef38"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/xh/firefox-47.0.1.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "a76dbac054cdb7f5c194766dc54f215de4cb4cca4aacd7c883e0e3632b9dfc18cc25d7a54788e213bc65c894dd26ca9b863199b55b649133f93da9fed9a58fe4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/xh/firefox-47.0.1.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "cfd8bbb81637c19464ec34788254740e999c13bc8a64b4289b0e1c64f76d711a5a5a8380995271f309444032739066f06334da2f81b6ca2b2be33ff55d3ff402"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/zh-CN/firefox-47.0.1.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "d11637b0c28aa1c45b315322ff12392e133aebe21f435564da278b9e301f0c8515ccb721df2bd55c175c48c3e24934837abbba4b84c9fa659b7a58db1da68f04"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/zh-CN/firefox-47.0.1.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "27a06d87f23eaeec170d1ea7f3df636198bfd4787001e178948fe9b8a3f1aafff3be59b9d01ed5b5851902b550601f061e923a4cda3a972f0ac68928cab28577"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/zh-TW/firefox-47.0.1.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "7c6ef5592b273749ccbf7b37c09984b11722beb7f49d4ed25555b84f0521e0dbac5197c7642ac508a21a1a40c5578dcfb49310858819875cc9407c85426d599a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/zh-TW/firefox-47.0.1.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "9ccce84a292144f3758190ff2858c077d1e7ec6d49ff5e1efb404b8dfb3bcfebf96eab15d0ec32325e4d96d94f4c6bcc67f4e43dd22af418b822d82a2afaf6f1"; }
];
}

View File

@ -31,7 +31,7 @@ in
stdenv.mkDerivation rec {
name = "teamspeak-client-${version}";
version = "3.0.19.1";
version = "3.0.19.3";
src = fetchurl {
urls = [
@ -39,8 +39,8 @@ stdenv.mkDerivation rec {
"http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
];
sha256 = if stdenv.is64bit
then "173mcvrckia0mming1v9nzi0bllr4m430y9swl9kyfsvp44f5n5h"
else "1iansjlbalwil0nlrlxfl70zzbx009c4rccf4va0kq097rqhgznx";
then "05620qqi8plxsrzj92g306a0l8wg1pd2l66vpmj71vs0f5lms6p4"
else "07b2120pa8nyvnvh48vp5vqq7xlxg6vrrx67azz9kfcdzbbarcv9";
};
# grab the plugin sdk for the desktop icon
@ -101,7 +101,11 @@ stdenv.mkDerivation rec {
meta = {
description = "The TeamSpeak voice communication tool";
homepage = http://teamspeak.com/;
license = "http://www.teamspeak.com/?page=downloads&type=ts3_linux_client_latest";
license = {
fullName = "Teamspeak client license";
url = http://sales.teamspeakusa.com/licensing.php;
free = false;
};
maintainers = [ stdenv.lib.maintainers.lhvwb ];
platforms = stdenv.lib.platforms.linux;
};

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, ncurses, which, perl, autoreconfHook
{ stdenv, fetchurl, fetchpatch, ncurses, which, perl, autoreconfHook
, gdbm ? null
, openssl ? null
, cyrus_sasl ? null
@ -61,8 +61,16 @@ stdenv.mkDerivation rec {
++ optional saslSupport "--with-sasl";
patches =
optional withTrash ./trash.patch ++
optional withSidebar ./sidebar.patch;
optional withTrash (fetchpatch {
name = "trash.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/trash.patch?h=mutt-sidebar";
sha256 = "1hrib9jk28mqd02nzv0sx01jfdabzvnwcc5qjc3810zfglzc1nql";
}) ++
optional withSidebar (fetchpatch {
name = "sidebar.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/sidebar.patch?h=mutt-sidebar";
sha256 = "1l63wj7kw41jrh00mcxdw4p4vrbc9wld42s99liw8kz2aclymq5m";
});
meta = {
description = "A small but very powerful text-based mail client";

File diff suppressed because it is too large Load Diff

View File

@ -1,797 +0,0 @@
diff -urN mutt-1.6.1/commands.c mutt-1.6.1-trash/commands.c
--- mutt-1.6.1/commands.c 2016-06-12 18:43:00.397447512 +0100
+++ mutt-1.6.1-trash/commands.c 2016-06-12 18:43:04.892517610 +0100
@@ -720,6 +720,7 @@
if (option (OPTDELETEUNTAG))
mutt_set_flag (Context, h, M_TAG, 0);
}
+ mutt_set_flag (Context, h, M_APPENDED, 1);
return 0;
}
diff -urN mutt-1.6.1/curs_main.c mutt-1.6.1-trash/curs_main.c
--- mutt-1.6.1/curs_main.c 2016-06-12 18:43:00.399447544 +0100
+++ mutt-1.6.1-trash/curs_main.c 2016-06-12 18:43:04.895517656 +0100
@@ -1919,6 +1919,7 @@
MAYBE_REDRAW (menu->redraw);
break;
+ case OP_PURGE_MESSAGE:
case OP_DELETE:
CHECK_MSGCOUNT;
@@ -1930,6 +1931,7 @@
if (tag)
{
mutt_tag_set_flag (M_DELETE, 1);
+ mutt_tag_set_flag (M_PURGED, (op != OP_PURGE_MESSAGE) ? 0 : 1);
if (option (OPTDELETEUNTAG))
mutt_tag_set_flag (M_TAG, 0);
menu->redraw = REDRAW_INDEX;
@@ -1937,6 +1939,8 @@
else
{
mutt_set_flag (Context, CURHDR, M_DELETE, 1);
+ mutt_set_flag (Context, CURHDR, M_PURGED,
+ (op != OP_PURGE_MESSAGE) ? 0 : 1);
if (option (OPTDELETEUNTAG))
mutt_set_flag (Context, CURHDR, M_TAG, 0);
if (option (OPTRESOLVE))
@@ -2242,11 +2246,13 @@
if (tag)
{
mutt_tag_set_flag (M_DELETE, 0);
+ mutt_tag_set_flag (M_PURGED, 0);
menu->redraw = REDRAW_INDEX;
}
else
{
mutt_set_flag (Context, CURHDR, M_DELETE, 0);
+ mutt_set_flag (Context, CURHDR, M_PURGED, 0);
if (option (OPTRESOLVE) && menu->current < Context->vcount - 1)
{
menu->current++;
@@ -2268,9 +2274,11 @@
CHECK_ACL(M_ACL_DELETE, _("Cannot undelete message(s)"));
rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0,
- op == OP_UNDELETE_THREAD ? 0 : 1);
+ op == OP_UNDELETE_THREAD ? 0 : 1)
+ + mutt_thread_set_flag (CURHDR, M_PURGED, 0,
+ (op == OP_UNDELETE_THREAD) ? 0 : 1);
- if (rc != -1)
+ if (rc > -1)
{
if (option (OPTRESOLVE))
{
diff -urN mutt-1.6.1/doc/manual.xml.head mutt-1.6.1-trash/doc/manual.xml.head
--- mutt-1.6.1/doc/manual.xml.head 2016-06-12 18:43:00.402447590 +0100
+++ mutt-1.6.1-trash/doc/manual.xml.head 2016-06-12 18:43:04.901517750 +0100
@@ -7467,6 +7467,16 @@
</sect2>
+<sect2 id="mutt-patches">
+<title>Mutt Patches</title>
+<para>
+Mutt may also be <quote>patched</quote> to support smaller features.
+These patches should add a free-form string to the end Mutt's version string.
+Running <literal>mutt -v</literal> might show:
+<screen>patch-1.6.1.sidebar.20160502</screen>
+</para>
+</sect2>
+
<sect2 id="url-syntax">
<title>URL Syntax</title>
@@ -8081,6 +8091,175 @@
</sect1>
+<sect1 id="trash-folder">
+ <title>Trash Folder Patch</title>
+ <subtitle>Automatically move "deleted" emails to a trash bin</subtitle>
+
+ <sect2 id="trash-folder-patch">
+ <title>Patch</title>
+
+ <para>
+ To check if Mutt supports <quote>Trash Folder</quote>, look for
+ <quote>patch-trash</quote> in the mutt version.
+ See: <xref linkend="mutt-patches"/>.
+ </para>
+
+ If IMAP is enabled, this patch will use it
+
+ <itemizedlist>
+ <title>Dependencies:</title>
+ <listitem><para>mutt-1.6.1</para></listitem>
+ <listitem><para>IMAP support</para></listitem>
+ </itemizedlist>
+
+ <para>This patch is part of the <ulink url="http://www.neomutt.org/">NeoMutt Project</ulink>.</para>
+ </sect2>
+
+ <sect2 id="trash-folder-intro">
+ <title>Introduction</title>
+
+ <para>
+ In Mutt, when you <quote>delete</quote> an email it is first marked
+ deleted. The email isn't really gone until
+ <link linkend="index-map">&lt;sync-mailbox&gt;</link> is called.
+ This happens when the user leaves the folder, or the function is called
+ manually.
+ </para>
+
+ <para>
+ After <literal>&lt;sync-mailbox&gt;</literal> has been called the email is gone forever.
+ </para>
+
+ <para>
+ The <link linkend="trash">$trash</link> variable defines a folder in
+ which to keep old emails. As before, first you mark emails for
+ deletion. When &lt;sync-mailbox&gt; is called the emails are moved to
+ the trash folder.
+ </para>
+
+ <para>
+ The <literal>$trash</literal> path can be either a full directory,
+ or be relative to the <link linkend="folder">$folder</link>
+ variable, like the <literal>mailboxes</literal> command.
+ </para>
+
+ <note>
+ Emails deleted from the trash folder are gone forever.
+ </note>
+ </sect2>
+
+ <sect2 id="trash-folder-variables">
+ <title>Variables</title>
+ <table id="table-trash-variables">
+ <title>Trash Variables</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Type</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>trash</entry>
+ <entry>string</entry>
+ <entry>(none)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="trash-folder-functions">
+ <title>Functions</title>
+ <table id="table-trash-functions">
+ <title>Trash Functions</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Menus</entry>
+ <entry>Default Key</entry>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>index,pager</entry>
+ <entry>(none)</entry>
+ <entry><literal>&lt;purge-message&gt;</literal></entry>
+ <entry>really delete the current entry, bypassing the trash folder</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+<!--
+ <sect2 id="trash-folder-commands">
+ <title>Commands</title>
+ <para>None</para>
+ </sect2>
+
+ <sect2 id="trash-folder-colors">
+ <title>Colors</title>
+ <para>None</para>
+ </sect2>
+
+ <sect2 id="trash-folder-sort">
+ <title>Sort</title>
+ <para>None</para>
+ </sect2>
+-->
+
+ <sect2 id="trash-folder-muttrc">
+ <title>Muttrc</title>
+<screen>
+<emphasis role="comment"># Example Mutt config file for the 'trash' feature.
+
+# This feature defines a new 'trash' folder.
+# When mail is deleted it will be moved to this folder.
+
+# Folder in which to put deleted emails</emphasis>
+set trash='+Trash'
+set trash='/home/flatcap/Mail/Trash'
+
+<emphasis role="comment"># The default delete key 'd' will move an email to the 'trash' folder
+# Bind 'D' to REALLY delete an email</emphasis>
+bind index D purge-message
+
+<emphasis role="comment"># Note: Deleting emails from the 'trash' folder will REALLY delete them.
+
+# vim: syntax=muttrc</emphasis>
+</screen>
+ </sect2>
+
+ <sect2 id="trash-folder-see-also">
+ <title>See Also</title>
+
+ <itemizedlist>
+ <listitem><para><ulink url="http://www.neomutt.org/">NeoMutt Project</ulink></para></listitem>
+ <listitem><para><link linkend="folder-hook">folder-hook</link></para></listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="trash-folder-known-bugs">
+ <title>Known Bugs</title>
+ <para>None</para>
+ </sect2>
+
+ <sect2 id="trash-folder-credits">
+ <title>Credits</title>
+ <itemizedlist>
+ <listitem><para>Cedric Duval <email>cedricduval@free.fr</email></para></listitem>
+ <listitem><para>Benjamin Kuperman <email>kuperman@acm.org</email></para></listitem>
+ <listitem><para>Paul Miller <email>paul@voltar.org</email></para></listitem>
+ <listitem><para>Richard Russon <email>rich@flatcap.org</email></para></listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
</chapter>
<chapter id="security">
diff -urN mutt-1.6.1/doc/muttrc.trash mutt-1.6.1-trash/doc/muttrc.trash
--- mutt-1.6.1/doc/muttrc.trash 1970-01-01 01:00:00.000000000 +0100
+++ mutt-1.6.1-trash/doc/muttrc.trash 2016-06-12 18:43:04.768515676 +0100
@@ -0,0 +1,16 @@
+# Example Mutt config file for the 'trash' feature.
+
+# This feature defines a new 'trash' folder.
+# When mail is deleted it will be moved to this folder.
+
+# Folder in which to put deleted emails
+set trash='+Trash'
+set trash='/home/flatcap/Mail/Trash'
+
+# The default delete key 'd' will move an email to the 'trash' folder
+# Bind 'D' to REALLY delete an email
+bind index D purge-message
+
+# Note: Deleting emails from the 'trash' folder will REALLY delete them.
+
+# vim: syntax=muttrc
diff -urN mutt-1.6.1/doc/vimrc.trash mutt-1.6.1-trash/doc/vimrc.trash
--- mutt-1.6.1/doc/vimrc.trash 1970-01-01 01:00:00.000000000 +0100
+++ mutt-1.6.1-trash/doc/vimrc.trash 2016-06-12 18:43:04.769515692 +0100
@@ -0,0 +1,7 @@
+" Vim syntax file for the mutt trash patch
+
+syntax keyword muttrcVarStr contained skipwhite trash nextgroup=muttrcVarEqualsIdxFmt
+
+syntax match muttrcFunction contained "\<purge-message\>"
+
+" vim: syntax=vim
diff -urN mutt-1.6.1/flags.c mutt-1.6.1-trash/flags.c
--- mutt-1.6.1/flags.c 2016-06-12 18:43:00.403447606 +0100
+++ mutt-1.6.1-trash/flags.c 2016-06-12 18:43:04.902517766 +0100
@@ -65,7 +65,13 @@
{
h->deleted = 0;
update = 1;
- if (upd_ctx) ctx->deleted--;
+ if (upd_ctx) {
+ ctx->deleted--;
+ if (h->appended) {
+ ctx->appended--;
+ }
+ }
+ h->appended = 0; /* when undeleting, also reset the appended flag */
#ifdef USE_IMAP
/* see my comment above */
if (ctx->magic == M_IMAP)
@@ -87,6 +93,27 @@
}
break;
+ case M_APPENDED:
+ if (bf) {
+ if (!h->appended) {
+ h->appended = 1;
+ if (upd_ctx) {
+ ctx->appended++;
+ }
+ }
+ }
+ break;
+
+ case M_PURGED:
+ if (bf) {
+ if (!h->purged) {
+ h->purged = 1;
+ }
+ } else if (h->purged) {
+ h->purged = 0;
+ }
+ break;
+
case M_NEW:
if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN))
diff -urN mutt-1.6.1/functions.h mutt-1.6.1-trash/functions.h
--- mutt-1.6.1/functions.h 2016-06-12 18:43:00.403447606 +0100
+++ mutt-1.6.1-trash/functions.h 2016-06-12 18:43:04.902517766 +0100
@@ -121,6 +121,7 @@
{ "toggle-write", OP_TOGGLE_WRITE, "%" },
{ "next-thread", OP_MAIN_NEXT_THREAD, "\016" },
{ "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" },
+ { "purge-message", OP_PURGE_MESSAGE, NULL },
{ "query", OP_QUERY, "Q" },
{ "quit", OP_QUIT, "q" },
{ "reply", OP_REPLY, "r" },
@@ -213,6 +214,7 @@
{ "print-message", OP_PRINT, "p" },
{ "previous-thread", OP_MAIN_PREV_THREAD, "\020" },
{ "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" },
+ { "purge-message", OP_PURGE_MESSAGE, NULL },
{ "quit", OP_QUIT, "Q" },
{ "exit", OP_EXIT, "q" },
{ "reply", OP_REPLY, "r" },
diff -urN mutt-1.6.1/globals.h mutt-1.6.1-trash/globals.h
--- mutt-1.6.1/globals.h 2016-06-12 18:43:00.403447606 +0100
+++ mutt-1.6.1-trash/globals.h 2016-06-12 18:43:04.903517781 +0100
@@ -141,6 +141,7 @@
WHERE char *Status;
WHERE char *Tempdir;
WHERE char *Tochars;
+WHERE char *TrashPath;
WHERE char *TSStatusFormat;
WHERE char *TSIconFormat;
WHERE short TSSupported;
diff -urN mutt-1.6.1/imap/imap.c mutt-1.6.1-trash/imap/imap.c
--- mutt-1.6.1/imap/imap.c 2016-06-12 18:43:00.405447637 +0100
+++ mutt-1.6.1-trash/imap/imap.c 2016-06-12 18:43:04.905517812 +0100
@@ -888,6 +888,12 @@
if (hdrs[n]->deleted != HEADER_DATA(hdrs[n])->deleted)
match = invert ^ hdrs[n]->deleted;
break;
+ case M_EXPIRED: /* imap_fast_trash version of M_DELETED */
+ if (hdrs[n]->purged)
+ break;
+ if (hdrs[n]->deleted != HEADER_DATA(hdrs[n])->deleted)
+ match = invert ^ (hdrs[n]->deleted && !hdrs[n]->appended);
+ break;
case M_FLAG:
if (hdrs[n]->flagged != HEADER_DATA(hdrs[n])->flagged)
match = invert ^ hdrs[n]->flagged;
@@ -2038,3 +2044,53 @@
return -1;
}
+
+/**
+ * imap_fast_trash - XXX
+ */
+int
+imap_fast_trash (void)
+{
+ if ((Context->magic == M_IMAP) && mx_is_imap (TrashPath)) {
+ IMAP_MBOX mx;
+ IMAP_DATA *idata = (IMAP_DATA *) Context->data;
+ char mbox[LONG_STRING];
+ char mmbox[LONG_STRING];
+ int rc;
+ dprint (1, (debugfile, "[itf] trashcan seems to be on imap.\n"));
+
+ if (imap_parse_path (TrashPath, &mx) == 0) {
+ if (mutt_account_match (&(idata->conn->account), &(mx.account))) {
+ dprint (1, (debugfile, "[itf] trashcan seems to be on the same account.\n"));
+
+ imap_fix_path (idata, mx.mbox, mbox, sizeof (mbox));
+ if (!*mbox)
+ strfcpy (mbox, "INBOX", sizeof (mbox));
+ imap_munge_mbox_name (idata, mmbox, sizeof (mmbox), mbox);
+
+ rc = imap_exec_msgset (idata, "UID COPY", mmbox, M_EXPIRED, 0, 0);
+ if (rc == 0) {
+ dprint (1, (debugfile, "imap_copy_messages: No messages del-tagged\n"));
+ rc = -1;
+ goto old_way;
+ } else if (rc < 0) {
+ dprint (1, (debugfile, "could not queue copy\n"));
+ goto old_way;
+ } else {
+ mutt_message (_("Copying %d messages to %s..."), rc, mbox);
+ return 0;
+ }
+ } else {
+ dprint (1, (debugfile, "[itf] trashcan seems to be on a different account.\n"));
+ }
+old_way:
+ FREE(&mx.mbox); /* we probably only need to free this when the parse works */
+ } else {
+ dprint (1, (debugfile, "[itf] failed to parse TrashPath.\n"));
+ }
+
+ dprint (1, (debugfile, "[itf] giving up and trying old fasioned way.\n"));
+ }
+
+ return 1;
+}
diff -urN mutt-1.6.1/imap/imap.h mutt-1.6.1-trash/imap/imap.h
--- mutt-1.6.1/imap/imap.h 2016-06-12 18:43:00.405447637 +0100
+++ mutt-1.6.1-trash/imap/imap.h 2016-06-12 18:43:04.774515769 +0100
@@ -72,4 +72,7 @@
int imap_account_match (const ACCOUNT* a1, const ACCOUNT* a2);
+/* trash */
+int imap_fast_trash (void);
+
#endif
diff -urN mutt-1.6.1/imap/message.c mutt-1.6.1-trash/imap/message.c
--- mutt-1.6.1/imap/message.c 2016-06-12 18:43:00.406447652 +0100
+++ mutt-1.6.1-trash/imap/message.c 2016-06-12 18:43:04.906517828 +0100
@@ -886,6 +886,7 @@
if (ctx->hdrs[n]->tagged)
{
mutt_set_flag (ctx, ctx->hdrs[n], M_DELETE, 1);
+ mutt_set_flag (ctx, ctx->hdrs[n], M_APPENDED, 1);
if (option (OPTDELETEUNTAG))
mutt_set_flag (ctx, ctx->hdrs[n], M_TAG, 0);
}
@@ -893,6 +894,7 @@
else
{
mutt_set_flag (ctx, h, M_DELETE, 1);
+ mutt_set_flag (ctx, h, M_APPENDED, 1);
if (option (OPTDELETEUNTAG))
mutt_set_flag (ctx, h, M_TAG, 0);
}
diff -urN mutt-1.6.1/init.h mutt-1.6.1-trash/init.h
--- mutt-1.6.1/init.h 2016-06-12 18:43:00.408447684 +0100
+++ mutt-1.6.1-trash/init.h 2016-06-12 18:43:04.909517875 +0100
@@ -3419,6 +3419,16 @@
** provided that ``$$ts_enabled'' has been set. This string is identical in
** formatting to the one used by ``$$status_format''.
*/
+ { "trash", DT_PATH, R_NONE, UL &TrashPath, 0 },
+ /*
+ ** .pp
+ ** If set, this variable specifies the path of the trash folder where the
+ ** mails marked for deletion will be moved, instead of being irremediably
+ ** purged.
+ ** .pp
+ ** NOTE: When you delete a message in the trash folder, it is really
+ ** deleted, so that you have a way to clean the trash.
+ */
#ifdef USE_SOCKET
{ "tunnel", DT_STR, R_NONE, UL &Tunnel, UL 0 },
/*
diff -urN mutt-1.6.1/mutt.h mutt-1.6.1-trash/mutt.h
--- mutt-1.6.1/mutt.h 2016-06-12 18:43:00.410447715 +0100
+++ mutt-1.6.1-trash/mutt.h 2016-06-12 18:43:04.912517922 +0100
@@ -182,6 +182,8 @@
M_DELETE,
M_UNDELETE,
M_DELETED,
+ M_APPENDED,
+ M_PURGED,
M_FLAG,
M_TAG,
M_UNTAG,
@@ -719,6 +721,8 @@
unsigned int mime : 1; /* has a MIME-Version header? */
unsigned int flagged : 1; /* marked important? */
unsigned int tagged : 1;
+ unsigned int appended : 1; /* has been saved */
+ unsigned int purged : 1; /* bypassing the trash folder */
unsigned int deleted : 1;
unsigned int changed : 1;
unsigned int attach_del : 1; /* has an attachment marked for deletion */
@@ -891,6 +895,7 @@
int new; /* how many new messages? */
int unread; /* how many unread messages? */
int deleted; /* how many deleted messages */
+ int appended; /* how many saved messages? */
int flagged; /* how many flagged messages */
int msgnotreadyet; /* which msg "new" in pager, -1 if none */
diff -urN mutt-1.6.1/muttlib.c mutt-1.6.1-trash/muttlib.c
--- mutt-1.6.1/muttlib.c 2016-06-12 18:43:00.411447731 +0100
+++ mutt-1.6.1-trash/muttlib.c 2016-06-12 18:43:04.913517937 +0100
@@ -1511,7 +1511,9 @@
if (magic > 0 && !mx_access (s, W_OK))
{
- if (option (OPTCONFIRMAPPEND))
+ if (option (OPTCONFIRMAPPEND) &&
+ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0)))
+ /* if we're appending to the trash, there's no point in asking */
{
snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s);
if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO)
diff -urN mutt-1.6.1/mx.c mutt-1.6.1-trash/mx.c
--- mutt-1.6.1/mx.c 2016-06-12 18:43:00.411447731 +0100
+++ mutt-1.6.1-trash/mx.c 2016-06-12 18:43:04.914517953 +0100
@@ -776,6 +776,62 @@
return rc;
}
+/**
+ * trash_append - XXX
+ *
+ * move deleted mails to the trash folder
+ */
+static int trash_append (CONTEXT *ctx)
+{
+ CONTEXT *ctx_trash;
+ int i = 0;
+ struct stat st, stc;
+
+ if (!TrashPath || !ctx->deleted ||
+ ((ctx->magic == M_MAILDIR) && option (OPTMAILDIRTRASH))) {
+ return 0;
+ }
+
+ for (; i < ctx->msgcount && (!ctx->hdrs[i]->deleted || ctx->hdrs[i]->appended); i++);
+ /* nothing */
+
+ if (i == ctx->msgcount)
+ return 0; /* nothing to be done */
+
+ if (mutt_save_confirm (TrashPath, &st) != 0) {
+ mutt_error _("message(s) not deleted");
+ return -1;
+ }
+
+ if (lstat (ctx->path, &stc) == 0 && stc.st_ino == st.st_ino
+ && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev) {
+ return 0; /* we are in the trash folder: simple sync */
+ }
+
+#ifdef USE_IMAP
+ if (!imap_fast_trash())
+ return 0;
+#endif
+
+ if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL) {
+ for (i = 0 ; i < ctx->msgcount ; i++) {
+ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended
+ && !ctx->hdrs[i]->purged
+ && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1) {
+ mx_close_mailbox (ctx_trash, NULL);
+ return -1;
+ }
+ }
+
+ mx_close_mailbox (ctx_trash, NULL);
+ } else {
+ mutt_error _("Can't open trash folder");
+ return -1;
+ }
+
+ return 0;
+}
+
/* save changes and close mailbox */
int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
{
@@ -912,6 +968,7 @@
if (mutt_append_message (&f, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN) == 0)
{
mutt_set_flag (ctx, ctx->hdrs[i], M_DELETE, 1);
+ mutt_set_flag (ctx, ctx->hdrs[i], M_APPENDED, 1);
}
else
{
@@ -936,6 +993,14 @@
return 0;
}
+ /* copy mails to the trash before expunging */
+ if (purge && ctx->deleted && mutt_strcmp (ctx->path, TrashPath)) {
+ if (trash_append (ctx) != 0) {
+ ctx->closing = 0;
+ return -1;
+ }
+ }
+
#ifdef USE_IMAP
/* allow IMAP to preserve the deleted flag across sessions */
if (ctx->magic == M_IMAP)
@@ -1140,6 +1205,12 @@
msgcount = ctx->msgcount;
deleted = ctx->deleted;
+ if (purge && ctx->deleted && mutt_strcmp (ctx->path, TrashPath)) {
+ if (trash_append (ctx) == -1) {
+ return -1;
+ }
+ }
+
#ifdef USE_IMAP
if (ctx->magic == M_IMAP)
rc = imap_sync_mailbox (ctx, purge, index_hint);
diff -urN mutt-1.6.1/OPS mutt-1.6.1-trash/OPS
--- mutt-1.6.1/OPS 2016-06-12 18:43:00.389447388 +0100
+++ mutt-1.6.1-trash/OPS 2016-06-12 18:43:04.883517469 +0100
@@ -142,6 +142,7 @@
OP_PREV_LINE "scroll up one line"
OP_PREV_PAGE "move to the previous page"
OP_PRINT "print the current entry"
+OP_PURGE_MESSAGE "really delete the current entry, bypassing the trash folder"
OP_QUERY "query external program for addresses"
OP_QUERY_APPEND "append new query results to current results"
OP_QUIT "save changes to mailbox and quit"
diff -urN mutt-1.6.1/pager.c mutt-1.6.1-trash/pager.c
--- mutt-1.6.1/pager.c 2016-06-12 18:43:00.412447746 +0100
+++ mutt-1.6.1-trash/pager.c 2016-06-12 18:43:04.915517968 +0100
@@ -2351,6 +2351,7 @@
MAYBE_REDRAW (redraw);
break;
+ case OP_PURGE_MESSAGE:
case OP_DELETE:
CHECK_MODE(IsHeader (extra));
CHECK_READONLY;
@@ -2358,6 +2359,8 @@
CHECK_ACL(M_ACL_DELETE, _("Cannot delete message"));
mutt_set_flag (Context, extra->hdr, M_DELETE, 1);
+ mutt_set_flag (Context, extra->hdr, M_PURGED,
+ ch != OP_PURGE_MESSAGE ? 0 : 1);
if (option (OPTDELETEUNTAG))
mutt_set_flag (Context, extra->hdr, M_TAG, 0);
redraw = REDRAW_STATUS | REDRAW_INDEX;
@@ -2688,6 +2691,7 @@
CHECK_ACL(M_ACL_DELETE, _("Cannot undelete message"));
mutt_set_flag (Context, extra->hdr, M_DELETE, 0);
+ mutt_set_flag (Context, extra->hdr, M_PURGED, 0);
redraw = REDRAW_STATUS | REDRAW_INDEX;
if (option (OPTRESOLVE))
{
@@ -2704,9 +2708,11 @@
CHECK_ACL(M_ACL_DELETE, _("Cannot undelete message(s)"));
r = mutt_thread_set_flag (extra->hdr, M_DELETE, 0,
+ ch == OP_UNDELETE_THREAD ? 0 : 1)
+ + mutt_thread_set_flag (extra->hdr, M_PURGED, 0,
ch == OP_UNDELETE_THREAD ? 0 : 1);
- if (r != -1)
+ if (r > -1)
{
if (option (OPTRESOLVE))
{
diff -urN mutt-1.6.1/PATCHES mutt-1.6.1-trash/PATCHES
--- mutt-1.6.1/PATCHES 2016-06-12 18:43:00.395447481 +0100
+++ mutt-1.6.1-trash/PATCHES 2016-06-12 18:43:04.889517563 +0100
@@ -0,0 +1 @@
+patch-trash-neo-20160612
diff -urN mutt-1.6.1/pattern.c mutt-1.6.1-trash/pattern.c
--- mutt-1.6.1/pattern.c 2016-06-12 18:43:00.413447762 +0100
+++ mutt-1.6.1-trash/pattern.c 2016-06-12 18:43:04.916517984 +0100
@@ -1367,8 +1367,9 @@
{
switch (op)
{
- case M_DELETE:
case M_UNDELETE:
+ mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_PURGED, 0);
+ case M_DELETE:
mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE,
(op == M_DELETE));
break;
diff -urN mutt-1.6.1/postpone.c mutt-1.6.1-trash/postpone.c
--- mutt-1.6.1/postpone.c 2016-06-12 18:43:00.414447777 +0100
+++ mutt-1.6.1-trash/postpone.c 2016-06-12 18:43:04.917518000 +0100
@@ -277,6 +277,9 @@
/* finished with this message, so delete it. */
mutt_set_flag (PostContext, h, M_DELETE, 1);
+ /* and consider it saved, so that it won't be moved to the trash folder */
+ mutt_set_flag (PostContext, h, M_APPENDED, 1);
+
/* update the count for the status display */
PostCount = PostContext->msgcount - PostContext->deleted;
diff -urN mutt-1.6.1/README.trash mutt-1.6.1-trash/README.trash
--- mutt-1.6.1/README.trash 1970-01-01 01:00:00.000000000 +0100
+++ mutt-1.6.1-trash/README.trash 2016-06-12 18:43:04.748515364 +0100
@@ -0,0 +1,74 @@
+Trash Folder Patch
+==================
+
+ Automatically move "deleted" emails to a trash bin
+
+Patch
+-----
+
+ To check if Mutt supports "Trash Folder", look for "patch-trash" in the
+ mutt version.
+
+ If IMAP is enabled, this patch will use it
+
+ Dependencies
+ * mutt-1.6.1
+ * IMAP support
+
+Introduction
+------------
+
+ In Mutt, when you "delete" an email it is first marked deleted. The email
+ isn't really gone until <sync-mailbox> is called. This happens when the
+ user leaves the folder, or the function is called manually.
+
+ After '<sync-mailbox>' has been called the email is gone forever.
+
+ The $trash variable defines a folder in which to keep old emails. As
+ before, first you mark emails for deletion. When <sync-mailbox> is called
+ the emails are moved to the trash folder.
+
+ The '$trash' path can be either a full directory, or be relative to the
+ $folder variable, like the 'mailboxes' command.
+
+ > Note
+ >
+ > Emails deleted from the trash folder are gone forever.
+
+Variables
+---------
+
+ Trash Variables
+
+ | Name | Type | Default |
+ |-------|--------|---------|
+ | trash | string | (none) |
+
+Functions
+---------
+
+ Trash Functions
+
+ | Menus | Default Key | Function | Description |
+ |-------------|-------------|-------------------|-------------------------------------------------------------|
+ | index,pager | (none) | '<purge-message>' | really delete the current entry, bypassing the trash folder |
+
+See Also
+--------
+
+ * NeoMutt project
+ * folder-hook
+
+Known Bugs
+----------
+
+ None
+
+Credits
+-------
+
+ * Cedric Duval <cedricduval@free.fr>
+ * Benjamin Kuperman <kuperman@acm.org>
+ * Paul Miller <paul@voltar.org>
+ * Richard Russon <rich@flatcap.org>
+

View File

@ -1,13 +1,13 @@
{ stdenv, fetchgit, go }:
stdenv.mkDerivation rec {
version = "0.13.9";
version = "0.13.10";
name = "syncthing-${version}";
src = fetchgit {
url = https://github.com/syncthing/syncthing;
rev = "refs/tags/v${version}";
sha256 = "1ah3a86rjfqlx4mqyvn8j3r806i65mzhs5xnfg4aakzmwpr5zpx0";
sha256 = "07q3j6mnrza719rnvbkdsmvlkyr2pch5sj2l204m5iy5mxaghpx7";
};
buildInputs = [ go ];

View File

@ -3,11 +3,12 @@
, doxygen, aqbanking, gwenhywfar }:
stdenv.mkDerivation rec {
name = "kmymoney-4.7.2";
name = "kmymoney-${version}";
version = "4.8.0";
src = fetchurl {
url = "mirror://sourceforge/kmymoney2/${name}.tar.xz";
sha256 = "0g9rakjx7zmw4bf7m5516rrx0n3bl2by3nn24iiz9209yfgw5cmz";
url = "mirror://kde/stable/kmymoney/${version}/src/${name}.tar.xz";
sha256 = "1hlayhcmdfayma4hchv2bfyg82ry0h74hg4095d959mg19qkb9n2";
};
cmakeFlags = [

View File

@ -124,6 +124,8 @@ in stdenv.mkDerivation rec {
sed -e /CppunitTest_sd_tiledrendering/d -i sd/Module_sd.mk
# one more fragile test?
sed -e '/CPPUNIT_TEST(testTdf96536);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
# rendering-dependent test
sed -e '/CPPUNIT_ASSERT_EQUAL(11148L, pOleObj->GetLogicRect().getWidth());/d ' -i sc/qa/unit/subsequent_filters-test.cxx
'';
makeFlags = "SHELL=${bash}/bin/bash";

View File

@ -124,6 +124,8 @@ in stdenv.mkDerivation rec {
sed -e /CppunitTest_sd_tiledrendering/d -i sd/Module_sd.mk
# one more fragile test?
sed -e '/CPPUNIT_TEST(testTdf96536);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
# rendering-dependent test
sed -e '/CPPUNIT_ASSERT_EQUAL(11148L, pOleObj->GetLogicRect().getWidth());/d ' -i sc/qa/unit/subsequent_filters-test.cxx
'';
makeFlags = "SHELL=${bash}/bin/bash";

View File

@ -19,7 +19,7 @@ let
url = "http://desktop-download.mendeley.com/download/apt/pool/main/m/mendeleydesktop/mendeleydesktop_${version}.deb";
sha256 = if stdenv.system == arch32
then "0lsmaw8zzyfvndsz1awz3vl5cdvsik9wc3ck8983y20awh7r9f4m"
else "12p6rgxiqajnfgd8nmknyb8icdkln727sshba8x1xlxakxg5c4q4";
else "0q11v6dv7z5q4s9hlr1hmsd73nmkp8l0sj0b3hjxfblx4mqk6wl7";
deps = [
gcc.cc

View File

@ -0,0 +1,45 @@
{ stdenv, fetchurl
, pkgconfig
, intltool
, gnome
, libxslt
, python
}:
let
version = "${major}.${minor}.${patch}";
major = "0";
minor = "14";
patch = "6";
in stdenv.mkDerivation {
name = "planner-${version}";
src = fetchurl {
url = "http://ftp.gnome.org/pub/GNOME/sources/planner/${major}.${minor}/planner-${version}.tar.xz";
sha256 = "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k";
};
buildInputs = [
pkgconfig
intltool
gnome.GConf
gnome.gtk
gnome.libgnomecanvas
gnome.libgnomeui
gnome.libglade
gnome.scrollkeeper
libxslt
python
];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Planner/;
description = "Project management application for GNOME";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.rasendubi ];
};
}

View File

@ -9,8 +9,18 @@ stdenv.mkDerivation rec {
sha256 = "181qnknq1j5x075icpw2qk0sc4wcj9f2hym533vs936is0wxp2gk";
};
unpackPhase = ''
tar xjf ${src}
'';
buildInputs = [ qtbase qtsvg boost qmakeHook ];
qmakeFlags = [ "phoenix.pro" ];
preConfigure = ''
cd fritzing-${version}.source
'';
meta = {
description = "An open source prototyping tool for Arduino-based projects";
homepage = http://fritzing.org/;

View File

@ -6,7 +6,7 @@
{stdenv, fetchurl, writeText, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null, csdp ? null}:
let
version = "8.5pl1";
version = "8.5pl2";
coq-version = "8.5";
buildIde = lablgtk != null;
ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
@ -24,7 +24,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://coq.inria.fr/distrib/V${version}/files/coq-${version}.tar.gz";
sha256 = "1w2xvm6w16khfn63bp95s25hnkn2ny3w0yqg3lq63gp11aqpbyjb";
sha256 = "0wyywia0darak2zmc5v0ra9rn0b9whwdfiahralm8v5za499s8w3";
};
buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
@ -34,7 +34,7 @@ stdenv.mkDerivation {
RM=$(type -tp rm)
substituteInPlace configure --replace "/bin/uname" "$UNAME"
substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
substituteInPlace configure.ml --replace "if arch = \"Darwin\" then \"md5" "if arch = \"Darwinx\" then \"md5"
substituteInPlace configure.ml --replace "if arch = \"Darwin\" || arch = \"FreeBSD\" then \"md5" "if arch = \"Darwinx\" then \"md5"
${csdpPatch}
'';

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
name = "TPTP-${version}";
version = "6.3.0";
version = "6.4.0";
src = fetchurl {
url = [
"http://www.cs.miami.edu/~tptp/TPTP/Distribution/TPTP-v${version}.tgz"
"http://www.cs.miami.edu/~tptp/TPTP/Archive/TPTP-v${version}/TPTP-v${version}.tgz"
];
sha256 = "0xy4cqniyx9fv8r9mc5q5b7xl163pkr9hcmpq6gkls2a0pvg07w9";
sha256 = "1i5hi8grfl5zyh8py63zn39rg019bd90h2l312iswbgai6nyfdw0";
};
buildInputs = [ tcsh yap perl patchelf ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "why3-${version}";
version = "0.87.0";
version = "0.87.1";
src = fetchurl {
url = https://gforge.inria.fr/frs/download.php/file/35643/why3-0.87.0.tar.gz;
sha256 = "0c3vhcb70ay7iwvmq0m25fqh38y40c5x7mki4r9pxf13vgbs3xb0";
url = https://gforge.inria.fr/frs/download.php/file/35893/why3-0.87.1.tar.gz;
sha256 = "1ssik2f6fkpvwpdmxz8hrm3p62qas3sjlqya0r57s60ilpkgiwwb";
};
buildInputs = (with ocamlPackages; [

View File

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
cp -v Lie.exe $out
cp -v lie $out/bin
cp -v LEARN LEARN.ind $out
cp -v INFO.ind INFO.[0-4] $out
cp -v LEARN* $out
cp -v INFO* $out
'';
}

View File

@ -1,10 +1,10 @@
{stdenv, fetchurl, gfortran, openblas}:
stdenv.mkDerivation rec {
name = "JAGS-3.4.0";
name = "JAGS-4.1.0";
src = fetchurl {
url = "mirror://sourceforge/mcmc-jags/${name}.tar.gz";
sha256 = "0ayqsz9kkmbss7mxlwr34ch2z1vsb65lryjzqpprab1ccyiaksib";
sha256 = "08pmrnbwibc0brgn5cx860jcl0s2xaw4amw7g45649r1bcdz7v25";
};
buildInputs = [gfortran openblas];
configureFlags = [ "--with-blas=-lopenblas" "--with-lapack=-lopenblas" ];

View File

@ -0,0 +1,52 @@
{ stdenv, fetchurl, perl, gperf, bison, groff
, pkgconfig, libXft, fontconfig, pcre
, libtomcrypt, libtommath, lz4, zlib }:
stdenv.mkDerivation rec {
name = "bitkeeper-${version}";
version = "7.3ce";
src = fetchurl {
url = "https://www.bitkeeper.org/downloads/${version}/bk-${version}.tar.gz";
sha256 = "0lk4vydpq5bi52m81h327gvzdzybf8kkak7yjwmpj6kg1jn9blaz";
};
enableParallelBuilding = true;
buildInputs = [
perl gperf bison groff libXft pkgconfig
pcre libtomcrypt libtommath lz4
];
postPatch = ''
substituteInPlace port/unix_platform.sh \
--replace /bin/rm rm
substituteInPlace ./undo.c \
--replace /bin/cat cat
'';
sourceRoot = "bk-${version}/src";
buildPhase = ''
make -j6 V=1 p
make image
'';
installPhase = ''
./utils/bk-* $out/bitkeeper
mkdir -p $out/bin
$out/bitkeeper/bk links $out/bin
chmod g-w $out
'';
meta = {
description = "A distributed version control system";
longDescription = ''
BitKeeper is a fast, enterprise-ready, distributed SCM that
scales up to very large projects and down to tiny ones.
'';
homepage = https://www.bitkeeper.org/;
license = stdenv.lib.licenses.asl20;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ wscott thoughtpolice ];
};
}

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
name = "diff-so-fancy-${version}";
version = "0.10.0";
version = "0.10.1";
# perl is needed here so patchShebangs can do its job
buildInputs = [perl makeWrapper];
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
owner = "so-fancy";
repo = "diff-so-fancy";
rev = "v${version}";
sha256 = "08dv9xlrsyjr1ylm83lbsv2p5asfia4ib97bwgcacsdxxh5zyqh9";
sha256 = "0wp5civn70jzil1gbygx6ccrxfrmc8xx90v7zgf36rqi2yhvv64m";
};
buildPhase = null;

View File

@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
buildInputs = [ qt4 qmake4Hook pkgconfig graphviz ];
qmakeFlags = [ "guitone.pro" ];
meta = {
description = "Qt4 based GUI for monotone";
homepage = http://guitone.thomaskeller.biz;

View File

@ -0,0 +1,48 @@
{stdenv, fetchurl, fetchFromGitHub, callPackage, makeWrapper, doxygen
, ffmpeg, python3Packages, qt55}:
with stdenv.lib;
let
libopenshot = callPackage ./libopenshot.nix {};
in
stdenv.mkDerivation rec {
name = "openshot-qt-${version}";
version = "2.0.7";
src = fetchFromGitHub {
owner = "OpenShot";
repo = "openshot-qt";
rev = "v${version}";
sha256 = "1s4b61fd8cyjy8kvc25mqd97dkxx6gqmz02i42rrcriz51pw8wgh";
};
buildInputs = [doxygen python3Packages.python makeWrapper ffmpeg];
propagatedBuildInputs = [
qt55.qtbase
qt55.qtmultimedia
libopenshot
];
installPhase = ''
mkdir -p $(toPythonPath $out)
cp -r src/* $(toPythonPath $out)
mkdir -p $out/bin
echo "#/usr/bin/env sh" >$out/bin/openshot-qt
echo "exec ${python3Packages.python.interpreter} $(toPythonPath $out)/launch.py" >>$out/bin/openshot-qt
chmod +x $out/bin/openshot-qt
wrapProgram $out/bin/openshot-qt \
--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${libopenshot}):$(toPythonPath ${python3Packages.pyqt5}):$(toPythonPath ${python3Packages.sip_4_16}):$(toPythonPath ${python3Packages.httplib2}):$PYTHONPATH"
'';
doCheck = false;
meta = {
homepage = "http://openshot.org/";
description = "Free, open-source video editor";
license = licenses.gpl3Plus;
maintainers = [maintainers.tohl];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,31 @@
{stdenv, fetchurl, fetchFromGitHub, cmake, doxygen
, libX11, libXft, libXrandr, libXinerama, libXext, libXcursor, alsaLib}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "libopenshot-audio-${version}";
version = "0.1.1";
src = fetchFromGitHub {
owner = "OpenShot";
repo = "libopenshot-audio";
rev = "v${version}";
sha256 = "0pgw7vzx3znglwm58187ybhg5maa13n4xcy5hrhzfsp8bqhrwkc7";
};
buildInputs = [
cmake doxygen
libX11 libXft libXrandr libXinerama libXext libXcursor alsaLib
];
doCheck = false;
meta = {
homepage = "http://openshot.org/";
description = "Free, open-source video editor";
license = licenses.gpl3Plus;
maintainers = [maintainers.tohl];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,46 @@
{stdenv, fetchurl, fetchFromGitHub, callPackage, cmake, doxygen
, imagemagick, ffmpeg, qt55, swig, python3, ruby, unittest-cpp}:
with stdenv.lib;
let
libopenshot_audio = callPackage ./libopenshot-audio.nix {};
in
stdenv.mkDerivation rec {
name = "libopenshot-${version}";
version = "0.1.1";
src = fetchFromGitHub {
owner = "OpenShot";
repo = "libopenshot";
rev = "v${version}";
sha256 = "12nfkris7spn8n4s8fvy2f6yk1hqh97wzh1z3fsdxldg4gppi903";
};
patchPhase = ''
sed -i 's/{UNITTEST++_INCLUDE_DIR}/ENV{UNITTEST++_INCLUDE_DIR}/g' tests/CMakeLists.txt
sed -i 's/{_REL_PYTHON_MODULE_PATH}/ENV{_REL_PYTHON_MODULE_PATH}/g' src/bindings/python/CMakeLists.txt
sed -i 's/{RUBY_VENDOR_ARCH_DIR}/ENV{RUBY_VENDOR_ARCH_DIR}/g' src/bindings/ruby/CMakeLists.txt
export _REL_PYTHON_MODULE_PATH=$(toPythonPath $out)
export RUBY_VENDOR_ARCH_DIR=$out/lib/ruby/site-packages
'';
buildInputs = [
cmake doxygen
imagemagick ffmpeg qt55.qtbase qt55.qtmultimedia swig python3 ruby
unittest-cpp
];
LIBOPENSHOT_AUDIO_DIR = "${libopenshot_audio}";
"UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
doCheck = false;
meta = {
homepage = "http://openshot.org/";
description = "Free, open-source video editor";
license = licenses.gpl3Plus;
maintainers = [maintainers.tohl];
platforms = platforms.linux;
};
}

View File

@ -50,7 +50,11 @@ in stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin
cp -Rv $BUILDDIR/target/bin/* $out/bin
cp -Rv $BUILDDIR/target/bin/rkt $out/bin
mkdir -p $out/lib/rkt/stage1-images/
cp -Rv $BUILDDIR/target/bin/stage1-*.aci $out/lib/rkt/stage1-images/
wrapProgram $out/bin/rkt \
--prefix LD_LIBRARY_PATH : ${systemd}/lib \
--prefix PATH : ${iptables}/bin

View File

@ -1,10 +1,8 @@
{ stdenv, fetchurl, pkgconfig
, dbus, libconfig, libdrm, libxml2, mesa, pcre
, libXcomposite, libXfixes, libXdamage, libXinerama
, libXrandr, libXrender, libXext }:
{ stdenv, fetchurl, pkgconfig, dbus, libconfig, libdrm, libxml2, mesa, pcre,
libXcomposite, libXfixes, libXdamage, libXinerama, libXrandr, libXrender,
libXext, xwininfo }:
stdenv.mkDerivation rec {
name = "compton-0.1_beta2";
src = fetchurl {
@ -12,18 +10,36 @@ stdenv.mkDerivation rec {
sha256 = "1mpgn1d98dv66xs2j8gaxjiw26nzwl9a641lrday7h40g3k45g9v";
};
buildInputs = [ pkgconfig dbus libconfig libdrm libxml2 mesa pcre
libXcomposite libXfixes libXdamage libXinerama libXrandr libXrender libXext ];
buildInputs = [
pkgconfig
dbus
libconfig
libdrm
libxml2
mesa
pcre
libXcomposite
libXfixes
libXdamage
libXinerama
libXrandr
libXrender
libXext
];
propagatedBuildInputs = [ xwininfo ];
installFlags = "PREFIX=$(out)";
meta = with stdenv.lib; {
homepage = https://github.com/chjj/compton/;
description = "A fork of XCompMgr, a sample compositing manager for X servers";
longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X servers
supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables
basic eye-candy effects. This fork adds additional features, such as additional
effects, and a fork at a well-defined and proper place.
A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
extensions. It enables basic eye-candy effects. This fork adds
additional features, such as additional effects, and a fork at a
well-defined and proper place.
'';
license = licenses.mit;
platforms = platforms.linux;

View File

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, asciidoc, dbus, docbook_xml_dtd_45,
docbook_xml_xslt, libconfig, libdrm, libxml2, libxslt, mesa, pcre,
pkgconfig, libXcomposite, libXdamage, libXext, libXfixes, libXinerama,
libXrandr, libXrender }:
libXrandr, libXrender, xwininfo }:
stdenv.mkDerivation {
name = "compton-git-2015-09-21";
@ -37,6 +37,8 @@ stdenv.mkDerivation {
pcre
];
propagatedBuildInputs = [ xwininfo ];
installFlags = "PREFIX=$(out)";
meta = with stdenv.lib; {
@ -47,7 +49,7 @@ stdenv.mkDerivation {
longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
extensions. It enables basic eye-candy effects. This fork adds
extensions. It enables basic eye-candy effects. This fork adds
additional features, such as additional effects, and a fork at a
well-defined and proper place.
'';

View File

@ -0,0 +1,39 @@
{ stdenv, fetchurl, pkgconfig
, libpng, libjpeg
, libXext, libXft, libXpm, libXrandr, libXinerama }:
stdenv.mkDerivation rec {
name = "pekwm-${version}";
version = "0.1.17";
src = fetchurl {
url = "https://www.pekwm.org/projects/pekwm/files/${name}.tar.bz2";
sha256 = "003x6bxj1lb2ljxz3v414bn0rdl6z68c0r185fxwgs1qkyzx67wa";
};
buildInputs = [ pkgconfig libpng libjpeg
libXext libXft libXpm libXrandr libXinerama ];
meta = with stdenv.lib; {
description = "A lightweight window manager";
longDescription = ''
pekwm is a window manager that once upon a time was based on the
aewm++ window manager, but it has evolved enough that it no
longer resembles aewm++ at all. It has a much expanded
feature-set, including window grouping (similar to ion, pwm, or
fluxbox), autoproperties, xinerama, keygrabber that supports
keychains, and much more.
- Lightweight and Unobtrusive, a window manager shouldn't be
noticed.
- Very configurable, we all work and think in different ways.
- Automatic properties, for all the lazy people, make things
appear as they should when starting applications.
- Chainable Keygrabber, usability for everyone.
'';
homepage = https://www.pekwm.org;
license = licenses.gpl2;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
};
}

View File

@ -3,39 +3,41 @@
, wayland, wlc, libxkbcommon, pixman, fontconfig, pcre, json_c, dbus_libs
}:
stdenv.mkDerivation rec {
name = "sway-${version}";
version = "0.7";
let
version = "0.8";
in
stdenv.mkDerivation rec {
name = "sway-${version}";
src = fetchFromGitHub {
owner = "Sircmpwn";
repo = "sway";
rev = "0.7";
sha256 = "05mn68brqz7j3a1sb5xd3pxzzdd8swnhw2g7cc9f7rdjr5dlrjip";
};
src = fetchFromGitHub {
owner = "Sircmpwn";
repo = "sway";
rev = "${version}";
sha256 = "10i62cn1z7fwg0jwkskmzcaha39lprkl4zvkp59jr5wvpjligdq3";
};
nativeBuildInputs = [ makeWrapper cmake pkgconfig asciidoc libxslt docbook_xsl ];
nativeBuildInputs = [ makeWrapper cmake pkgconfig asciidoc libxslt docbook_xsl ];
buildInputs = [ wayland wlc libxkbcommon pixman fontconfig pcre json_c dbus_libs pango cairo libinput ];
buildInputs = [ wayland wlc libxkbcommon pixman fontconfig pcre json_c dbus_libs pango cairo libinput ];
patchPhase = ''
sed -i s@/etc/sway@$out/etc/sway@g CMakeLists.txt;
'';
patchPhase = ''
sed -i s@/etc/sway@$out/etc/sway@g CMakeLists.txt;
'';
makeFlags = "PREFIX=$(out)";
installPhase = "PREFIX=$out make install";
makeFlags = "PREFIX=$(out)";
installPhase = "PREFIX=$out make install";
LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ wlc dbus_libs ];
preFixup = ''
wrapProgram $out/bin/sway \
--prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
'';
LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ wlc dbus_libs ];
preFixup = ''
wrapProgram $out/bin/sway \
--prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
'';
meta = with stdenv.lib; {
description = "i3-compatible window manager for Wayland";
homepage = "http://swaywm.org";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
};
}
meta = with stdenv.lib; {
description = "i3-compatible window manager for Wayland";
homepage = "http://swaywm.org";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
};
}

View File

@ -1,24 +1,24 @@
package main
import (
"tarsum"
"io"
"io/ioutil"
"fmt"
"os"
"fmt"
"io"
"io/ioutil"
"os"
"tarsum"
)
func main() {
ts, err := tarsum.NewTarSum(os.Stdin, false, tarsum.Version1)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
ts, err := tarsum.NewTarSum(os.Stdin, true, tarsum.Version1)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
if _, err = io.Copy(ioutil.Discard, ts); err != nil {
fmt.Println(err)
os.Exit(1)
}
if _, err = io.Copy(ioutil.Discard, ts); err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(ts.Sum(nil))
}
fmt.Println(ts.Sum(nil))
}

View File

@ -0,0 +1,75 @@
# Adaptation of the MIT-licensed work on `sbt2nix` done by Charles O'Farrell
{ fetchurl, stdenv }:
let
defaultRepos = [
http://central.maven.org/maven2
http://oss.sonatype.org/content/repositories/releases
http://oss.sonatype.org/content/repositories/public
http://repo.typesafe.com/typesafe/releases
];
in
args@
{ # Example: "org.apache.httpcomponents"
groupId
, # Example: "httpclient"
artifactId
, # Example: "4.3.6"
version
, # List of maven repositories from where to fetch the artifact.
# Example: [ http://oss.sonatype.org/content/repositories/public ].
repos ? defaultRepos
# The `url` and `urls` parameters, if specified should point to the JAR
# file and will take precedence over the `repos` parameter. Only one of `url`
# and `urls` can be specified, not both.
, url ? ""
, urls ? []
, # The rest of the arguments are just forwarded to `fetchurl`.
...
}:
# only one of url and urls can be specified at a time.
assert (url == "") || (urls == []);
# if repos is empty, then url or urls must be specified.
assert (repos != []) || (url != "") || (urls != []);
let
name_ =
with stdenv.lib; concatStrings [
(replaceChars ["."] ["_"] groupId) "_"
(replaceChars ["."] ["_"] artifactId) "-"
version
];
mkJarUrl = repoUrl:
with stdenv.lib; concatStringsSep "/" [
(removeSuffix "/" repoUrl)
(replaceChars ["."] ["/"] groupId)
artifactId
version
"${artifactId}-${version}.jar"
];
urls_ =
if url != "" then [url]
else if urls != [] then urls
else map mkJarUrl repos;
jar =
fetchurl (
builtins.removeAttrs args ["groupId" "artifactId" "version" "repos" "url" ]
// { urls = urls_; name = "${name_}.jar"; }
);
in
stdenv.mkDerivation {
name = name_;
phases = "installPhase fixupPhase";
# By moving the jar to $out/share/java we make it discoverable by java
# packages packages that mention this derivation in their buildInputs.
installPhase = ''
mkdir -p $out/share/java
ln -s ${jar} $out/share/java
'';
# We also add a `jar` attribute that can be used to easily obtain the path
# to the downloaded jar file.
passthru.jar = jar;
}

View File

@ -10,6 +10,7 @@ rec {
# SourceForge.
sourceforge = [
http://downloads.sourceforge.net/
http://prdownloads.sourceforge.net/
http://heanet.dl.sourceforge.net/sourceforge/
http://surfnet.dl.sourceforge.net/sourceforge/

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