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

This commit is contained in:
Robin Gloster 2016-08-12 09:46:53 +00:00
commit b7787d932e
372 changed files with 7520 additions and 3777 deletions

View File

@ -19,6 +19,10 @@ rec {
traceXMLVal = x: trace (builtins.toXML x) x;
traceXMLValMarked = str: x: trace (str + builtins.toXML x) x;
# strict trace functions (traced structure is fully evaluated and printed)
traceSeq = x: y: trace (builtins.deepSeq x x) y;
traceValSeq = v: traceVal (builtins.deepSeq v v);
# this can help debug your code as well - designed to not produce thousands of lines
traceShowVal = x : trace (showVal x) x;
traceShowValMarked = str: x: trace (str + showVal x) x;
@ -69,27 +73,9 @@ rec {
# usage: { testX = allTrue [ true ]; }
testAllTrue = expr : { inherit expr; expected = map (x: true) expr; };
# evaluate everything once so that errors will occur earlier
# hacky: traverse attrs by adding a dummy
# ignores functions (should this behavior change?) See strictf
#
# Note: This should be a primop! Something like seq of haskell would be nice to
# have as well. It's used fore debugging only anyway
strict = x :
let
traverse = x :
if isString x then true
else if isAttrs x then
if x ? outPath then true
else all id (mapAttrsFlatten (n: traverse) x)
else if isList x then
all id (map traverse x)
else if isBool x then true
else if isFunction x then true
else if isInt x then true
else if x == null then true
else true; # a (store) path?
in if traverse x then x else throw "else never reached";
strict = v:
trace "Warning: strict is deprecated and will be removed in the next release"
(builtins.seq v v);
# example: (traceCallXml "myfun" id 3) will output something like
# calling myfun arg 1: 3 result: 3

View File

@ -200,6 +200,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
url = https://geant4.web.cern.ch/geant4/license/LICENSE.html;
};
geogebra = {
fullName = "GeoGebra Non-Commercial License Agreement";
url = https://www.geogebra.org/license;
free = false;
};
gpl1 = spdx {
spdxId = "GPL-1.0";
fullName = "GNU General Public License v1.0 only";

View File

@ -89,7 +89,7 @@ rec {
*/
flatten = x:
if isList x
then foldl' (x: y: x ++ (flatten y)) [] x
then concatMap (y: flatten y) x
else [x];
/* Remove elements equal to 'e' from a list. Useful for buildInputs.

View File

@ -20,7 +20,9 @@ rec {
lib.hasSuffix "~" baseName ||
# Filter out generates files.
lib.hasSuffix ".o" baseName ||
lib.hasSuffix ".so" baseName
lib.hasSuffix ".so" baseName ||
# Filter out nix-build result symlinks
(type == "symlink" && lib.hasPrefix "result" baseName)
);
in src: builtins.filterSource filter src;
@ -56,7 +58,7 @@ rec {
else if lib.pathExists packedRefsName
then
let fileContent = readFile packedRefsName;
matchRef = match ".*\n([^\n ]*) " + file + "\n.*" fileContent;
matchRef = match (".*\n([^\n ]*) " + file + "\n.*") fileContent;
in if isNull matchRef
then throw ("Could not find " + file + " in " + packedRefsName)
else lib.head matchRef

View File

@ -156,12 +156,12 @@ rec {
hasSuffix "foo" "barfoo"
=> true
*/
hasSuffix = suff: str:
hasSuffix = suffix: content:
let
lenStr = stringLength str;
lenSuff = stringLength suff;
in lenStr >= lenSuff &&
substring (lenStr - lenSuff) lenStr str == suff;
lenContent = stringLength content;
lenSuffix = stringLength suffix;
in lenContent >= lenSuffix &&
substring (lenContent - lenSuffix) lenContent content == suffix;
/* Convert a string to a list of characters (i.e. singleton strings).
This allows you to, e.g., map a function over each character. However,
@ -248,7 +248,7 @@ rec {
/* Converts an ASCII string to upper-case.
Example:
toLower "home"
toUpper "home"
=> "HOME"
*/
toUpper = replaceChars lowerChars upperChars;

View File

@ -71,7 +71,7 @@ rec {
+ (if pathExists suffixFile then fileContents suffixFile else "pre-git");
# Whether we're being called by nix-shell.
inNixShell = builtins.getEnv "IN_NIX_SHELL" == "1";
inNixShell = builtins.getEnv "IN_NIX_SHELL" != "";
# Return minimum/maximum of two numbers.
min = x: y: if x < y then x else y;

View File

@ -1,5 +1,5 @@
#!/bin/sh
./maintainers/scripts/fetch-kde-qt.sh \
http://download.kde.org/stable/plasma/5.7.2/ -A '*.tar.xz' \
http://download.kde.org/stable/plasma/5.7.3/ -A '*.tar.xz' \
>pkgs/desktops/kde-5/plasma/srcs.nix

View File

@ -0,0 +1,89 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-instaling-virtualbox-guest">
<title>Installing in a Virtualbox guest</title>
<para>
Installing NixOS into a Virtualbox guest is convenient for users who want to
try NixOS without installing it on bare metal. If you want to use a pre-made
Virtualbox appliance, it is available at <link
xlink:href="https://nixos.org/nixos/download.html">the downloads page</link>.
If you want to set up a Virtualbox guest manually, follow these instructions:
</para>
<orderedlist>
<listitem><para>Add a New Machine in Virtualbox with OS Type "Linux / Other
Linux"</para></listitem>
<listitem><para>Base Memory Size: 768 MB or higher.</para></listitem>
<listitem><para>New Hard Disk of 8 GB or higher.</para></listitem>
<listitem><para>Mount the CD-ROM with the NixOS ISO (by clicking on
CD/DVD-ROM)</para></listitem>
<listitem><para>Click on Settings / System / Processor and enable
PAE/NX</para></listitem>
<listitem><para>Click on Settings / System / Acceleration and enable
"VT-x/AMD-V" acceleration</para></listitem>
<listitem><para>Save the settings, start the virtual machine, and continue
installation like normal</para></listitem>
</orderedlist>
<para>
There are a few modifications you should make in configuration.nix. Enable
the virtualbox guest service in the main block:
</para>
<programlisting>
virtualisation.virtualbox.guest.enable = true;
</programlisting>
<para>
Enable booting:
</para>
<programlisting>
boot.loader.grub.device = "/dev/sda";
</programlisting>
<para>
Also remove the fsck that runs at startup. It will always fail to run,
stopping your boot until you press <literal>*</literal>.
</para>
<programlisting>
boot.initrd.checkJournalingFS = false;
</programlisting>
<para>
Shared folders can be given a name and a path in the host system in the
VirtualBox settings (Machine / Settings / Shared Folders, then click on the
"Add" icon). Add the following to the
<literal>/etc/nixos/configuration.nix</literal> to auto-mount them:
</para>
<programlisting>
{ config, pkgs, ...} :
{
...
fileSystems."/virtualboxshare" = {
fsType = "vboxsf";
device = "nameofthesharedfolder";
options = [ "rw" ];
};
}
</programlisting>
<para>
The folder will be available directly under the root directory.
</para>
</section>

View File

@ -271,5 +271,6 @@ drive (here <filename>/dev/sda</filename>). <xref linkend="ex-config"
<xi:include href="installing-uefi.xml" />
<xi:include href="installing-usb.xml" />
<xi:include href="installing-pxe.xml" />
<xi:include href="installing-virtualbox-guest.xml" />
</chapter>

View File

@ -25,6 +25,19 @@
<arg choice='plain'><option>--root</option></arg>
<replaceable>root</replaceable>
</arg>
<arg>
<arg choice='plain'><option>--closure</option></arg>
<replaceable>closure</replaceable>
</arg>
<arg>
<arg choice='plain'><option>--no-channel-copy</option></arg>
</arg>
<arg>
<arg choice='plain'><option>--no-root-passwd</option></arg>
</arg>
<arg>
<arg choice='plain'><option>--no-bootloader</option></arg>
</arg>
<arg>
<group choice='req'>
<arg choice='plain'><option>--max-jobs</option></arg>
@ -71,12 +84,13 @@ the following steps:
<filename>/mnt/etc/nixos/configuration.nix</filename>.</para></listitem>
<listitem><para>It installs the GRUB boot loader on the device
specified in the option <option>boot.loader.grub.device</option>,
specified in the option <option>boot.loader.grub.device</option>
(unless <option>--no-bootloader</option> is specified),
and generates a GRUB configuration file that boots into the NixOS
configuration just installed.</para></listitem>
<listitem><para>It prompts you for a password for the root
account.</para></listitem>
<listitem><para>It prompts you for a password for the root account
(unless <option>--no-root-passwd</option> is specified).</para></listitem>
</itemizedlist>
@ -103,6 +117,19 @@ it.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--closure</option></term>
<listitem>
<para>If this option is provided, <command>nixos-install</command> will install the specified closure
rather than attempt to build one from <filename>/mnt/etc/nixos/configuration.nix</filename>.</para>
<para>The closure must be an appropriately configured NixOS system, with boot loader and partition
configuration that fits the target host. Such a closure is typically obtained with a command such as
<command>nix-build -I nixos-config=./configuration.nix '&lt;nixos&gt;' -A system --no-out-link</command>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-I</option></term>
<listitem>

View File

@ -42,10 +42,22 @@ following incompatible changes:</para>
</listitem>
<listitem>
<para>Redis now binds to 127.0.0.1 only instead of listening to all network interfaces. This is the default
<para>Redis now binds to 127.0.0.1 only instead of listening to all network interfaces. This is the default
behavior of Redis 3.2</para>
</listitem>
<listitem>
<para>Gitlab's maintainence script gitlab-runner was removed and split up into the more clearer
gitlab-run and gitlab-rake scripts because gitlab-runner is a component of Gitlab CI.</para>
</listitem>
<listitem>
<para><literal>services.xserver.libinput.accelProfile</literal> default
changed from <literal>flat</literal> to <literal>adaptive</literal>,
as per <link xlink:href="https://wayland.freedesktop.org/libinput/doc/latest/group__config.html#gad63796972347f318b180e322e35cee79">
official documentation</link>.</para>
</listitem>
</itemizedlist>

View File

@ -34,7 +34,6 @@ let
config.programs.ssh.package
pkgs.perl
pkgs.procps
pkgs.rsync
pkgs.strace
pkgs.su
pkgs.time

View File

@ -24,6 +24,7 @@ fi
# Parse the command line for the -I flag
extraBuildFlags=()
chrootCommand=(/run/current-system/sw/bin/bash)
bootLoader=1
while [ "$#" -gt 0 ]; do
i="$1"; shift 1
@ -40,6 +41,18 @@ while [ "$#" -gt 0 ]; do
--root)
mountPoint="$1"; shift 1
;;
--closure)
closure="$1"; shift 1
;;
--no-channel-copy)
noChannelCopy=1
;;
--no-root-passwd)
noRootPasswd=1
;;
--no-bootloader)
bootLoader=0
;;
--show-trace)
extraBuildFlags+=("$i")
;;
@ -111,7 +124,7 @@ if test -z "$NIXOS_CONFIG"; then
NIXOS_CONFIG=/etc/nixos/configuration.nix
fi
if ! test -e "$mountPoint/$NIXOS_CONFIG"; then
if [ ! -e "$mountPoint/$NIXOS_CONFIG" ] && [ -z "$closure" ]; then
echo "configuration file $mountPoint/$NIXOS_CONFIG doesn't exist"
exit 1
fi
@ -162,7 +175,7 @@ if ! NIX_DB_DIR=$mountPoint/nix/var/nix/db nix-store --check-validity @nix@ 2> /
for i in $(@perl@/bin/perl @pathsFromGraph@ @nixClosure@); do
echo " $i"
chattr -R -i $mountPoint/$i 2> /dev/null || true # clear immutable bit
rsync -a $i $mountPoint/nix/store/
@rsync@/bin/rsync -a $i $mountPoint/nix/store/
done
# Register the paths in the Nix closure as valid. This is necessary
@ -200,16 +213,22 @@ for i in /nix/var/nix/manifests/*.nixmanifest; do
done
# Get the absolute path to the NixOS/Nixpkgs sources.
nixpkgs="$(readlink -f $(nix-instantiate --find-file nixpkgs))"
if [ -z "$closure" ]; then
# Get the absolute path to the NixOS/Nixpkgs sources.
nixpkgs="$(readlink -f $(nix-instantiate --find-file nixpkgs))"
nixEnvAction="-f <nixpkgs/nixos> --set -A system"
else
nixpkgs=""
nixEnvAction="--set $closure"
fi
# Build the specified Nix expression in the target store and install
# it into the system configuration profile.
echo "building the system configuration..."
NIX_PATH="nixpkgs=/tmp/root/$nixpkgs:nixos-config=$NIXOS_CONFIG" NIXOS_CONFIG= \
chroot $mountPoint @nix@/bin/nix-env \
"${extraBuildFlags[@]}" -p /nix/var/nix/profiles/system -f '<nixpkgs/nixos>' --set -A system
"${extraBuildFlags[@]}" -p /nix/var/nix/profiles/system $nixEnvAction
# Copy the NixOS/Nixpkgs sources to the target as the initial contents
@ -218,7 +237,7 @@ mkdir -m 0755 -p $mountPoint/nix/var/nix/profiles
mkdir -m 1777 -p $mountPoint/nix/var/nix/profiles/per-user
mkdir -m 0755 -p $mountPoint/nix/var/nix/profiles/per-user/root
srcs=$(nix-env "${extraBuildFlags[@]}" -p /nix/var/nix/profiles/per-user/root/channels -q nixos --no-name --out-path 2>/dev/null || echo -n "")
if test -n "$srcs"; then
if [ -z "$noChannelCopy" ] && [ -n "$srcs" ]; then
echo "copying NixOS/Nixpkgs sources..."
chroot $mountPoint @nix@/bin/nix-env \
"${extraBuildFlags[@]}" -p /nix/var/nix/profiles/per-user/root/channels -i "$srcs" --quiet
@ -244,7 +263,7 @@ touch $mountPoint/etc/NIXOS
# a menu default pointing at the kernel/initrd/etc of the new
# configuration.
echo "finalising the installation..."
NIXOS_INSTALL_GRUB=1 chroot $mountPoint \
NIXOS_INSTALL_GRUB="$bootLoader" chroot $mountPoint \
/nix/var/nix/profiles/system/bin/switch-to-configuration boot
@ -253,7 +272,7 @@ chroot $mountPoint /nix/var/nix/profiles/system/activate
# Ask the user to set a root password.
if [ "$(chroot $mountPoint /run/current-system/sw/bin/sh -l -c "nix-instantiate --eval '<nixpkgs/nixos>' -A config.users.mutableUsers")" = true ] && [ -t 0 ] ; then
if [ -z "$noRootPasswd" ] && [ "$(chroot $mountPoint /run/current-system/sw/bin/sh -l -c "nix-instantiate --eval '<nixpkgs/nixos>' -A config.users.mutableUsers")" = true ] && [ -t 0 ] ; then
echo "setting root password..."
chroot $mountPoint /var/setuid-wrappers/passwd
fi

View File

@ -214,9 +214,9 @@ fi
# Re-execute nixos-rebuild from the Nixpkgs tree.
if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" ]; then
if p=$(nix-instantiate --find-file nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh "${extraBuildFlags[@]}"); then
if p=$(nix-build --no-out-link --expr 'with import <nixpkgs/nixos> {}; config.system.build.nixos-rebuild' "${extraBuildFlags[@]}"); then
export _NIXOS_REBUILD_REEXEC=1
exec $SHELL -e $p "${origArgs[@]}"
exec $p/bin/nixos-rebuild "${origArgs[@]}"
exit 1
fi
fi

View File

@ -21,7 +21,7 @@ let
name = "nixos-install";
src = ./nixos-install.sh;
inherit (pkgs) perl pathsFromGraph;
inherit (pkgs) perl pathsFromGraph rsync;
nix = config.nix.package.out;
cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";

View File

@ -273,6 +273,7 @@
smokeping = 250;
gocd-agent = 251;
gocd-server = 252;
terraria = 253;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -516,6 +517,7 @@
smokeping = 250;
gocd-agent = 251;
gocd-server = 252;
terraria = 253;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal

View File

@ -63,7 +63,9 @@ in
nixosRevision = mkOption {
internal = true;
type = types.str;
default = if pathExists revisionFile then fileContents revisionFile else "master";
default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
else if pathExists revisionFile then fileContents revisionFile
else "master";
description = "The Git revision from which this NixOS configuration was built.";
};

View File

@ -62,8 +62,7 @@
./programs/bash/bash.nix
./programs/blcr.nix
./programs/cdemu.nix
# see https://github.com/NixOS/nixos-channel-scripts/issues/4
#./programs/command-not-found/command-not-found.nix
./programs/command-not-found/command-not-found.nix
./programs/dconf.nix
./programs/environment.nix
./programs/freetds.nix
@ -80,7 +79,6 @@
./programs/ssh.nix
./programs/ssmtp.nix
./programs/tmux.nix
./programs/unity3d.nix
./programs/venus.nix
./programs/wvdial.nix
./programs/xfs_quota.nix
@ -92,6 +90,7 @@
./security/apparmor-suid.nix
./security/audit.nix
./security/ca.nix
./security/chromium-suid-sandbox.nix
./security/duosec.nix
./security/grsecurity.nix
./security/hidepid.nix
@ -137,6 +136,7 @@
./services/continuous-integration/jenkins/slave.nix
./services/databases/4store-endpoint.nix
./services/databases/4store.nix
./services/databases/cassandra.nix
./services/databases/couchdb.nix
./services/databases/firebird.nix
./services/databases/hbase.nix
@ -173,6 +173,7 @@
./services/games/ghost-one.nix
./services/games/minecraft-server.nix
./services/games/minetest-server.nix
./services/games/terraria.nix
./services/hardware/acpid.nix
./services/hardware/actkbd.nix
./services/hardware/amd-hybrid-graphics.nix
@ -473,7 +474,7 @@
./services/web-servers/lighttpd/gitweb.nix
./services/web-servers/lighttpd/inginious.nix
./services/web-servers/nginx/default.nix
./services/web-servers/phpfpm.nix
./services/web-servers/phpfpm/default.nix
./services/web-servers/shellinabox.nix
./services/web-servers/tomcat.nix
./services/web-servers/uwsgi.nix

View File

@ -1,25 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.programs.unity3d;
in {
options = {
programs.unity3d.enable = mkEnableOption "Unity3D, a game development tool";
};
config = mkIf cfg.enable {
security.setuidOwners = [{
program = "unity-chrome-sandbox";
source = "${pkgs.unity3d.sandbox}/bin/unity-chrome-sandbox";
owner = "root";
#group = "root";
setuid = true;
#setgid = true;
}];
environment.systemPackages = [ pkgs.unity3d ];
};
}

View File

@ -116,6 +116,8 @@ in
done
${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""}
HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"
'';
};

View File

@ -134,6 +134,9 @@ with lib;
(mkRemovedOptionModule [ "security" "grsecurity" "config" "verboseVersion" ])
(mkRemovedOptionModule [ "security" "grsecurity" "config" "kernelExtraConfig" ])
# Unity3D
(mkRenamedOptionModule [ "programs" "unity3d" "enable" ] [ "security" "chromiumSuidSandbox" "enable" ])
# Options that are obsolete and have no replacement.
(mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ])
(mkRemovedOptionModule [ "programs" "bash" "enable" ])

View File

@ -0,0 +1,32 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.security.chromiumSuidSandbox;
sandbox = pkgs.chromium.sandbox;
in
{
options.security.chromiumSuidSandbox.enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to install the Chromium SUID sandbox which is an executable that
Chromium may use in order to achieve sandboxing.
If you get the error "The SUID sandbox helper binary was found, but is not
configured correctly.", turning this on might help.
Also, if the URL chrome://sandbox tells you that "You are not adequately
sandboxed!", turning this on might resolve the issue.
Finally, if you have <option>security.grsecurity</option> enabled and you
use Chromium, you probably need this.
'';
};
config = mkIf cfg.enable {
environment.systemPackages = [ sandbox ];
security.setuidPrograms = [ sandbox.passthru.sandboxExecutableName ];
};
}

View File

@ -36,7 +36,7 @@ in {
};
packages = mkOption {
default = [ pkgs.stdenv pkgs.jre config.programs.ssh.package pkgs.nix ];
default = [ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ];
type = types.listOf types.package;
description = ''
Packages to add to PATH for the Go.CD agent process.
@ -57,18 +57,10 @@ in {
};
goServer = mkOption {
default = "127.0.0.1";
default = "https://127.0.0.1:8154/go";
type = types.str;
description = ''
Address of GoCD Server to attach the Go.CD Agent to.
'';
};
goServerPort = mkOption {
default = 8153;
type = types.int;
description = ''
Port that Go.CD Server is Listening on.
URL of the GoCD Server to attach the Go.CD Agent to.
'';
};
@ -80,26 +72,26 @@ in {
'';
};
heapSize = mkOption {
initialJavaHeapSize = mkOption {
default = "128m";
type = types.str;
description = ''
Specifies the java heap memory size for the Go.CD agent java process.
Specifies the initial java heap memory size for the Go.CD agent java process.
'';
};
maxMemory = mkOption {
maxJavaHeapMemory = mkOption {
default = "256m";
type = types.str;
description = ''
Specifies the java maximum memory size for the Go.CD agent java process.
Specifies the java maximum heap memory size for the Go.CD agent java process.
'';
};
startupOptions = mkOption {
default = [
"-Xms${cfg.heapSize}"
"-Xmx${cfg.maxMemory}"
"-Xms${cfg.initialJavaHeapSize}"
"-Xmx${cfg.maxJavaHeapMemory}"
"-Djava.io.tmpdir=/tmp"
"-Dcruise.console.publish.interval=10"
"-Djava.security.egd=file:/dev/./urandom"
@ -112,8 +104,8 @@ in {
extraOptions = mkOption {
default = [ ];
example = [
"-X debug"
example = [
"-X debug"
"-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006"
"-verbose:gc"
"-Xloggc:go-agent-gc.log"
@ -170,7 +162,7 @@ in {
config.environment.sessionVariables;
in
selectedSessionVars //
{
{
NIX_REMOTE = "daemon";
AGENT_WORK_DIR = cfg.workDir;
AGENT_STARTUP_ARGS = ''${concatStringsSep " " cfg.startupOptions}'';
@ -199,13 +191,14 @@ in {
${pkgs.jre}/bin/java ${concatStringsSep " " cfg.startupOptions} \
${concatStringsSep " " cfg.extraOptions} \
-jar ${pkgs.gocd-agent}/go-agent/agent-bootstrapper.jar \
${cfg.goServer} \
${toString cfg.goServerPort}
-serverUrl ${cfg.goServer}
'';
serviceConfig = {
User = cfg.user;
WorkingDirectory = cfg.workDir;
RestartSec = 30;
Restart = "on-failure";
};
};
};

View File

@ -0,0 +1,449 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.cassandra;
cassandraPackage = cfg.package.override {
jre = cfg.jre;
};
cassandraUser = {
name = cfg.user;
home = "/var/lib/cassandra";
description = "Cassandra role user";
};
cassandraRackDcProperties = ''
dc=${cfg.dc}
rack=${cfg.rack}
'';
cassandraConf = ''
cluster_name: ${cfg.clusterName}
num_tokens: 256
auto_bootstrap: ${if cfg.autoBootstrap then "true" else "false"}
hinted_handoff_enabled: ${if cfg.hintedHandOff then "true" else "false"}
hinted_handoff_throttle_in_kb: ${builtins.toString cfg.hintedHandOffThrottle}
max_hints_delivery_threads: 2
max_hint_window_in_ms: 10800000 # 3 hours
authenticator: ${cfg.authenticator}
authorizer: ${cfg.authorizer}
permissions_validity_in_ms: 2000
partitioner: org.apache.cassandra.dht.Murmur3Partitioner
data_file_directories:
${builtins.concatStringsSep "\n" (map (v: " - "+v) cfg.dataDirs)}
commitlog_directory: ${cfg.commitLogDirectory}
disk_failure_policy: stop
key_cache_size_in_mb:
key_cache_save_period: 14400
row_cache_size_in_mb: 0
row_cache_save_period: 0
saved_caches_directory: ${cfg.savedCachesDirectory}
commitlog_sync: ${cfg.commitLogSync}
commitlog_sync_period_in_ms: ${builtins.toString cfg.commitLogSyncPeriod}
commitlog_segment_size_in_mb: 32
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "${builtins.concatStringsSep "," cfg.seeds}"
concurrent_reads: ${builtins.toString cfg.concurrentReads}
concurrent_writes: ${builtins.toString cfg.concurrentWrites}
memtable_flush_queue_size: 4
trickle_fsync: false
trickle_fsync_interval_in_kb: 10240
storage_port: 7000
ssl_storage_port: 7001
listen_address: ${cfg.listenAddress}
start_native_transport: true
native_transport_port: 9042
start_rpc: true
rpc_address: ${cfg.rpcAddress}
rpc_port: 9160
rpc_keepalive: true
rpc_server_type: sync
thrift_framed_transport_size_in_mb: 15
incremental_backups: ${if cfg.incrementalBackups then "true" else "false"}
snapshot_before_compaction: false
auto_snapshot: true
column_index_size_in_kb: 64
in_memory_compaction_limit_in_mb: 64
multithreaded_compaction: false
compaction_throughput_mb_per_sec: 16
compaction_preheat_key_cache: true
read_request_timeout_in_ms: 10000
range_request_timeout_in_ms: 10000
write_request_timeout_in_ms: 10000
cas_contention_timeout_in_ms: 1000
truncate_request_timeout_in_ms: 60000
request_timeout_in_ms: 10000
cross_node_timeout: false
endpoint_snitch: ${cfg.snitch}
dynamic_snitch_update_interval_in_ms: 100
dynamic_snitch_reset_interval_in_ms: 600000
dynamic_snitch_badness_threshold: 0.1
request_scheduler: org.apache.cassandra.scheduler.NoScheduler
server_encryption_options:
internode_encryption: ${cfg.internodeEncryption}
keystore: ${cfg.keyStorePath}
keystore_password: ${cfg.keyStorePassword}
truststore: ${cfg.trustStorePath}
truststore_password: ${cfg.trustStorePassword}
client_encryption_options:
enabled: ${if cfg.clientEncryption then "true" else "false"}
keystore: ${cfg.keyStorePath}
keystore_password: ${cfg.keyStorePassword}
internode_compression: all
inter_dc_tcp_nodelay: false
preheat_kernel_page_cache: false
streaming_socket_timeout_in_ms: ${toString cfg.streamingSocketTimoutInMS}
'';
cassandraLog = ''
log4j.rootLogger=${cfg.logLevel},stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] %d{HH:mm:ss,SSS} %m%n
'';
cassandraConfFile = pkgs.writeText "cassandra.yaml" cassandraConf;
cassandraLogFile = pkgs.writeText "log4j-server.properties" cassandraLog;
cassandraRackFile = pkgs.writeText "cassandra-rackdc.properties" cassandraRackDcProperties;
cassandraEnvironment = {
CASSANDRA_HOME = cassandraPackage;
JAVA_HOME = cfg.jre;
CASSANDRA_CONF = "/etc/cassandra";
};
in {
###### interface
options.services.cassandra = {
enable = mkOption {
description = "Whether to enable cassandra.";
default = false;
type = types.bool;
};
package = mkOption {
description = "Cassandra package to use.";
default = pkgs.cassandra;
defaultText = "pkgs.cassandra";
type = types.package;
};
jre = mkOption {
description = "JRE package to run cassandra service.";
default = pkgs.jre;
defaultText = "pkgs.jre";
type = types.package;
};
user = mkOption {
description = "User that runs cassandra service.";
default = "cassandra";
type = types.string;
};
group = mkOption {
description = "Group that runs cassandra service.";
default = "cassandra";
type = types.string;
};
envFile = mkOption {
description = "path to cassandra-env.sh";
default = "${cassandraPackage}/conf/cassandra-env.sh";
defaultText = "\${cassandraPackage}/conf/cassandra-env.sh";
type = types.path;
};
clusterName = mkOption {
description = "set cluster name";
default = "cassandra";
example = "prod-cluster0";
type = types.string;
};
commitLogDirectory = mkOption {
description = "directory for commit logs";
default = "/var/lib/cassandra/commit_log";
type = types.string;
};
savedCachesDirectory = mkOption {
description = "directory for saved caches";
default = "/var/lib/cassandra/saved_caches";
type = types.string;
};
hintedHandOff = mkOption {
description = "enable hinted handoff";
default = true;
type = types.bool;
};
hintedHandOffThrottle = mkOption {
description = "hinted hand off throttle rate in kb";
default = 1024;
type = types.int;
};
commitLogSync = mkOption {
description = "commitlog sync method";
default = "periodic";
type = types.str;
example = "batch";
};
commitLogSyncPeriod = mkOption {
description = "commitlog sync period in ms ";
default = 10000;
type = types.int;
};
envScript = mkOption {
default = "${cassandraPackage}/conf/cassandra-env.sh";
defaultText = "\${cassandraPackage}/conf/cassandra-env.sh";
type = types.path;
description = "Supply your own cassandra-env.sh rather than using the default";
};
extraParams = mkOption {
description = "add additional lines to cassandra-env.sh";
default = [];
example = [''JVM_OPTS="$JVM_OPTS -Dcassandra.available_processors=1"''];
type = types.listOf types.str;
};
dataDirs = mkOption {
type = types.listOf types.path;
default = [ "/var/lib/cassandra/data" ];
description = "Data directories for cassandra";
};
logLevel = mkOption {
type = types.str;
default = "INFO";
description = "default logging level for log4j";
};
internodeEncryption = mkOption {
description = "enable internode encryption";
default = "none";
example = "all";
type = types.str;
};
clientEncryption = mkOption {
description = "enable client encryption";
default = false;
type = types.bool;
};
trustStorePath = mkOption {
description = "path to truststore";
default = ".conf/truststore";
type = types.str;
};
keyStorePath = mkOption {
description = "path to keystore";
default = ".conf/keystore";
type = types.str;
};
keyStorePassword = mkOption {
description = "password to keystore";
default = "cassandra";
type = types.str;
};
trustStorePassword = mkOption {
description = "password to truststore";
default = "cassandra";
type = types.str;
};
seeds = mkOption {
description = "password to truststore";
default = [ "127.0.0.1" ];
type = types.listOf types.str;
};
concurrentWrites = mkOption {
description = "number of concurrent writes allowed";
default = 32;
type = types.int;
};
concurrentReads = mkOption {
description = "number of concurrent reads allowed";
default = 32;
type = types.int;
};
listenAddress = mkOption {
description = "listen address";
default = "localhost";
type = types.str;
};
rpcAddress = mkOption {
description = "rpc listener address";
default = "localhost";
type = types.str;
};
incrementalBackups = mkOption {
description = "enable incremental backups";
default = false;
type = types.bool;
};
snitch = mkOption {
description = "snitch to use for topology discovery";
default = "GossipingPropertyFileSnitch";
example = "Ec2Snitch";
type = types.str;
};
dc = mkOption {
description = "datacenter for use in topology configuration";
default = "DC1";
example = "DC1";
type = types.str;
};
rack = mkOption {
description = "rack for use in topology configuration";
default = "RAC1";
example = "RAC1";
type = types.str;
};
authorizer = mkOption {
description = "
Authorization backend, implementing IAuthorizer; used to limit access/provide permissions
";
default = "AllowAllAuthorizer";
example = "CassandraAuthorizer";
type = types.str;
};
authenticator = mkOption {
description = "
Authentication backend, implementing IAuthenticator; used to identify users
";
default = "AllowAllAuthenticator";
example = "PasswordAuthenticator";
type = types.str;
};
autoBootstrap = mkOption {
description = "It makes new (non-seed) nodes automatically migrate the right data to themselves.";
default = true;
example = true;
type = types.bool;
};
streamingSocketTimoutInMS = mkOption {
description = "Enable or disable socket timeout for streaming operations";
default = 3600000; #CASSANDRA-8611
example = 120;
type = types.int;
};
repairStartAt = mkOption {
default = "Sun";
type = types.string;
description = ''
Defines realtime (i.e. wallclock) timers with calendar event
expressions. For more details re: systemd OnCalendar at
https://www.freedesktop.org/software/systemd/man/systemd.time.html#Displaying%20Time%20Spans
'';
example = ["weekly" "daily" "08:05:40" "mon,fri *-1/2-1,3 *:30:45"];
};
repairRandomizedDelayInSec = mkOption {
default = 0;
type = types.int;
description = ''Delay the timer by a randomly selected, evenly distributed
amount of time between 0 and the specified time value. re: systemd timer
RandomizedDelaySec for more details
'';
};
repairPostStop = mkOption {
default = null;
type = types.nullOr types.string;
description = ''
Run a script when repair is over. One can use it to send statsd events, email, etc.
'';
};
repairPostStart = mkOption {
default = null;
type = types.nullOr types.string;
description = ''
Run a script when repair starts. One can use it to send statsd events, email, etc.
It has same semantics as systemd ExecStopPost; So, if it fails, unit is consisdered
failed.
'';
};
};
###### implementation
config = mkIf cfg.enable {
environment.etc."cassandra/cassandra-rackdc.properties" = {
source = cassandraRackFile;
};
environment.etc."cassandra/cassandra.yaml" = {
source = cassandraConfFile;
};
environment.etc."cassandra/log4j-server.properties" = {
source = cassandraLogFile;
};
environment.etc."cassandra/cassandra-env.sh" = {
text = ''
${builtins.readFile cfg.envFile}
${concatStringsSep "\n" cfg.extraParams}
'';
};
systemd.services.cassandra = {
description = "Cassandra Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
environment = cassandraEnvironment;
restartTriggers = [ cassandraConfFile cassandraLogFile cassandraRackFile ];
serviceConfig = {
User = cfg.user;
PermissionsStartOnly = true;
LimitAS = "infinity";
LimitNOFILE = "100000";
LimitNPROC = "32768";
LimitMEMLOCK = "infinity";
};
script = ''
${cassandraPackage}/bin/cassandra -f
'';
path = [
cfg.jre
cassandraPackage
pkgs.coreutils
];
preStart = ''
mkdir -m 0700 -p /etc/cassandra/triggers
mkdir -m 0700 -p /var/lib/cassandra /var/log/cassandra
chown ${cfg.user} /var/lib/cassandra /var/log/cassandra /etc/cassandra/triggers
'';
postStart = ''
sleep 2
while ! nodetool status >/dev/null 2>&1; do
sleep 2
done
nodetool status
'';
};
environment.systemPackages = [ cassandraPackage ];
networking.firewall.allowedTCPPorts = [
7000
7001
9042
9160
];
users.extraUsers.cassandra =
if config.ids.uids ? "cassandra"
then { uid = config.ids.uids.cassandra; } // cassandraUser
else cassandraUser ;
boot.kernel.sysctl."vm.swappiness" = pkgs.lib.mkOptionDefault 0;
systemd.timers."cassandra-repair" = {
timerConfig = {
OnCalendar = "${toString cfg.repairStartAt}";
RandomizedDelaySec = cfg.repairRandomizedDelayInSec;
};
};
systemd.services."cassandra-repair" = {
description = "Cassandra repair daemon";
environment = cassandraEnvironment;
script = "${cassandraPackage}/bin/nodetool repair -pr";
postStop = mkIf (cfg.repairPostStop != null) cfg.repairPostStop;
postStart = mkIf (cfg.repairPostStart != null) cfg.repairPostStart;
serviceConfig = {
User = cfg.user;
};
};
};
}

View File

@ -4,14 +4,17 @@ with lib;
let
cfg = config.services.factorio;
factorio = pkgs.factorio-headless;
name = "Factorio";
stateDir = "/var/lib/factorio";
mkSavePath = name: "${stateDir}/saves/${name}.zip";
configFile = pkgs.writeText "factorio.conf" ''
use-system-read-write-data-directories=true
[path]
read-data=${pkgs.factorio-headless}/share/factorio/data
read-data=${factorio}/share/factorio/data
write-data=${stateDir}
'';
modDir = pkgs.factorio-mkModDirDrv cfg.mods;
in
{
options = {
@ -32,7 +35,8 @@ in
description = ''
The name of the savegame that will be used by the server.
When not present in ${stateDir}/saves, it will be generated before starting the service.
When not present in ${stateDir}/saves, a new map with default
settings will be generated before starting the service.
'';
};
# TODO Add more individual settings as nixos-options?
@ -51,6 +55,26 @@ in
customizations.
'';
};
mods = mkOption {
type = types.listOf types.package;
default = [];
description = ''
Mods the server should install and activate.
The derivations in this list must "build" the mod by simply copying
the .zip, named correctly, into the output directory. Eventually,
there will be a way to pull in the most up-to-date list of
derivations via nixos-channel. Until then, this is for experts only.
'';
};
autosave-interval = mkOption {
type = types.nullOr types.int;
default = null;
example = 2;
description = ''
The time, in minutes, between autosaves.
'';
};
};
};
@ -74,12 +98,14 @@ in
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
preStart = ''
test -e ${stateDir}/saves/${cfg.saveName}.zip || \
${pkgs.factorio-headless}/bin/factorio \
--config=${cfg.configFile} \
--create=${stateDir}/saves/${cfg.saveName}.zip
'';
preStart = toString [
"test -e ${stateDir}/saves/${cfg.saveName}.zip"
"||"
"${factorio}/bin/factorio"
"--config=${cfg.configFile}"
"--create=${mkSavePath cfg.saveName}"
(optionalString (cfg.mods != []) "--mod-directory=${modDir}")
];
serviceConfig = {
User = "factorio";
@ -90,10 +116,12 @@ in
PrivateTmp = true;
UMask = "0007";
ExecStart = toString [
"${pkgs.factorio-headless}/bin/factorio"
"${factorio}/bin/factorio"
"--config=${cfg.configFile}"
"--port=${toString cfg.port}"
"--start-server=${stateDir}/saves/${cfg.saveName}.zip"
"--start-server=${mkSavePath cfg.saveName}"
(optionalString (cfg.mods != []) "--mod-directory=${modDir}")
(optionalString (cfg.autosave-interval != null) "--autosave-interval ${toString cfg.autosave-interval}")
];
};
};

View File

@ -0,0 +1,139 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.terraria;
worldSizeMap = { "small" = 1; "medium" = 2; "large" = 3; };
valFlag = name: val: optionalString (val != null) "-${name} \"${escape ["\\" "\""] (toString val)}\"";
boolFlag = name: val: optionalString val "-${name}";
flags = [
(valFlag "port" cfg.port)
(valFlag "maxPlayers" cfg.maxPlayers)
(valFlag "password" cfg.password)
(valFlag "motd" cfg.messageOfTheDay)
(valFlag "world" cfg.worldPath)
(valFlag "autocreate" (builtins.getAttr cfg.autoCreatedWorldSize worldSizeMap))
(valFlag "banlist" cfg.banListPath)
(boolFlag "secure" cfg.secure)
(boolFlag "noupnp" cfg.noUPnP)
];
in
{
options = {
services.terraria = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S /var/lib/terraria/terraria.sock attach</literal>
for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
'';
};
port = mkOption {
type = types.int;
default = 7777;
description = ''
Specifies the port to listen on.
'';
};
maxPlayers = mkOption {
type = types.int;
default = 255;
description = ''
Sets the max number of players (between 1 and 255).
'';
};
password = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Sets the server password. Leave <literal>null</literal> for no password.
'';
};
messageOfTheDay = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Set the server message of the day text.
'';
};
worldPath = mkOption {
type = types.path;
default = null;
description = ''
The path to the world file (<literal>.wld</literal>) which should be loaded.
If no world exists at this path, one will be created with the size
specified by <literal>autoCreatedWorldSize</literal>.
'';
};
autoCreatedWorldSize = mkOption {
type = types.enum [ "small" "medium" "large" ];
default = "medium";
description = ''
Specifies the size of the auto-created world if <literal>worldPath</literal> does not
point to an existing world.
'';
};
banListPath = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
The path to the ban list.
'';
};
secure = mkOption {
type = types.bool;
default = false;
description = "Adds additional cheat protection to the server.";
};
noUPnP = mkOption {
type = types.bool;
default = false;
description = "Disables automatic Universal Plug and Play.";
};
};
};
config = mkIf cfg.enable {
users.extraUsers.terraria = {
description = "Terraria server service user";
home = "/var/lib/terraria";
createHome = true;
uid = config.ids.uids.terraria;
};
users.extraGroups.terraria = {
gid = config.ids.gids.terraria;
members = [ "terraria" ];
};
systemd.services.terraria = {
description = "Terraria Server Service";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
User = "terraria";
Type = "oneshot";
RemainAfterExit = true;
ExecStart = "${pkgs.tmux.bin}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
ExecStop = "${pkgs.tmux.bin}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter \"exit\" Enter";
};
postStart = ''
${pkgs.coreutils}/bin/chmod 660 /var/lib/terraria/terraria.sock
${pkgs.coreutils}/bin/chgrp terraria /var/lib/terraria/terraria.sock
'';
};
};
}

View File

@ -57,42 +57,23 @@ let
issues = true;
merge_requests = true;
wiki = true;
snippets = false;
snippets = true;
builds = true;
container_registry = true;
};
};
artifacts = {
enabled = true;
};
lfs = {
enabled = true;
};
gravatar = {
enabled = true;
};
cron_jobs = {
stuck_ci_builds_worker = {
cron = "0 0 * * *";
};
};
gitlab_ci = {
builds_path = "${cfg.statePath}/builds";
};
ldap = {
enabled = false;
};
omniauth = {
enabled = false;
};
shared = {
path = "${cfg.statePath}/shared";
};
backup = {
path = "${cfg.backupPath}";
};
repositories.storages.default = "${cfg.statePath}/repositories";
artifacts.enabled = true;
lfs.enabled = true;
gravatar.enabled = true;
cron_jobs = { };
gitlab_ci.builds_path = "${cfg.statePath}/builds";
ldap.enabled = false;
omniauth.enabled = false;
shared.path = "${cfg.statePath}/shared";
backup.path = "${cfg.backupPath}";
gitlab_shell = {
path = "${cfg.packages.gitlab-shell}";
repos_path = "${cfg.statePath}/repositories";
hooks_path = "${cfg.statePath}/shell/hooks";
secret_file = "${cfg.statePath}/config/gitlab_shell_secret";
upload_pack = true;
@ -125,21 +106,42 @@ let
unicornConfig = builtins.readFile ./defaultUnicornConfig.rb;
gitlab-runner = pkgs.stdenv.mkDerivation rec {
name = "gitlab-runner";
buildInputs = [ cfg.packages.gitlab bundler pkgs.makeWrapper ];
gitlab-rake = pkgs.stdenv.mkDerivation rec {
name = "gitlab-rake";
buildInputs = [ cfg.packages.gitlab cfg.packages.gitlab.env pkgs.makeWrapper ];
phases = "installPhase fixupPhase";
buildPhase = "";
installPhase = ''
mkdir -p $out/bin
makeWrapper ${bundler}/bin/bundle $out/bin/gitlab-runner \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '\"${value}\"' ") gitlabEnv)} \
--set GITLAB_CONFIG_PATH '"${cfg.statePath}/config"' \
--set PATH '"${pkgs.nodejs}/bin:${pkgs.gzip}/bin:${config.services.postgresql.package}/bin:$PATH"' \
--set RAKEOPT '"-f ${cfg.packages.gitlab}/share/gitlab/Rakefile"'
'';
makeWrapper ${cfg.packages.gitlab.env}/bin/bundle $out/bin/gitlab-bundle \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set GITLAB_CONFIG_PATH '${cfg.statePath}/config' \
--set PATH '${pkgs.nodejs}/bin:${pkgs.gzip}/bin:${config.services.postgresql.package}/bin:$PATH' \
--set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab'
makeWrapper $out/bin/gitlab-bundle $out/bin/gitlab-rake \
--add-flags "exec rake"
'';
};
smtpSettings = pkgs.writeText "gitlab-smtp-settings.rb" ''
if Rails.env.production?
Rails.application.config.action_mailer.delivery_method = :smtp
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: "${cfg.smtp.address}",
port: ${toString cfg.smtp.port},
${optionalString (cfg.smtp.username != null) ''user_name: "${cfg.smtp.username}",''}
${optionalString (cfg.smtp.password != null) ''password: "${cfg.smtp.password}",''}
domain: "${cfg.smtp.domain}",
${optionalString (cfg.smtp.authentication != null) "authentication: :${cfg.smtp.authentication},"}
enable_starttls_auto: ${toString cfg.smtp.enableStartTLSAuto},
openssl_verify_mode: '${cfg.smtp.opensslVerifyMode}'
}
end
'';
in {
options = {
@ -255,6 +257,62 @@ in {
'';
};
smtp = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable gitlab mail delivery over SMTP.";
};
address = mkOption {
type = types.str;
default = "localhost";
description = "Address of the SMTP server for Gitlab.";
};
port = mkOption {
type = types.int;
default = 465;
description = "Port of the SMTP server for Gitlab.";
};
username = mkOption {
type = types.nullOr types.str;
default = null;
description = "Username of the SMTP server for Gitlab.";
};
password = mkOption {
type = types.nullOr types.str;
default = null;
description = "Password of the SMTP server for Gitlab.";
};
domain = mkOption {
type = types.str;
default = "localhost";
description = "HELO domain to use for outgoing mail.";
};
authentication = mkOption {
type = types.nullOr types.str;
default = null;
description = "Authentitcation type to use, see http://api.rubyonrails.org/classes/ActionMailer/Base.html";
};
enableStartTLSAuto = mkOption {
type = types.bool;
default = true;
description = "Whether to try to use StartTLS.";
};
opensslVerifyMode = mkOption {
type = types.str;
default = "peer";
description = "How OpenSSL checks the certificate, see http://api.rubyonrails.org/classes/ActionMailer/Base.html";
};
};
extraConfig = mkOption {
type = types.attrs;
default = {};
@ -275,7 +333,7 @@ in {
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.git gitlab-runner cfg.packages.gitlab-shell ];
environment.systemPackages = [ pkgs.git gitlab-rake cfg.packages.gitlab-shell ];
assertions = [
{ assertion = cfg.databasePassword != "";
@ -308,6 +366,7 @@ in {
systemd.services.gitlab-sidekiq = {
after = [ "network.target" "redis.service" ];
wantedBy = [ "multi-user.target" ];
partOf = [ "gitlab.service" ];
environment = gitlabEnv;
path = with pkgs; [
config.services.postgresql.package
@ -322,7 +381,7 @@ in {
Group = cfg.group;
TimeoutSec = "300";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
ExecStart="${bundler}/bin/bundle exec \"sidekiq -q post_receive -q mailers -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.statePath}/tmp/sidekiq.pid\"";
ExecStart="${cfg.packages.gitlab.env}/bin/bundle exec \"sidekiq -q post_receive -q mailers -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e production -P ${cfg.statePath}/tmp/sidekiq.pid\"";
};
};
@ -397,6 +456,9 @@ in {
chmod -R u+rwX,go-rwx+X ${gitlabEnv.HOME}/
cp -rf ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
${optionalString cfg.smtp.enable ''
ln -sf ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
''}
ln -sf ${cfg.statePath}/config /run/gitlab/config
cp ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
@ -420,14 +482,14 @@ in {
touch "${cfg.statePath}/db-created"
# The gitlab:setup task is horribly broken somehow, these two tasks will do the same for setting up the initial database
${gitlab-runner}/bin/gitlab-runner exec rake db:migrate RAILS_ENV=production
${gitlab-runner}/bin/gitlab-runner exec rake db:seed_fu RAILS_ENV=production \
${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production
${gitlab-rake}/bin/gitlab-rake db:seed_fu RAILS_ENV=production \
GITLAB_ROOT_PASSWORD="${cfg.initialRootPassword}" GITLAB_ROOT_EMAIL="${cfg.initialRootEmail}";
fi
fi
# Always do the db migrations just to be sure the database is up-to-date
${gitlab-runner}/bin/gitlab-runner exec rake db:migrate RAILS_ENV=production
${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production
# Change permissions in the last step because some of the
# intermediary scripts like to create directories as root.
@ -441,8 +503,9 @@ in {
User = cfg.user;
Group = cfg.group;
TimeoutSec = "300";
Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
ExecStart="${bundler}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\"";
ExecStart = "${cfg.packages.gitlab.env}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\"";
};
};

View File

@ -14,29 +14,22 @@
<literal>/run/gitlab/gitlab-workhorse.socket</literal>. You need to configure a
webserver to proxy HTTP requests to the socket.</para>
<para>For instance, this could be used for Nginx:
<para>For instance, the following configuration could be used to use nginx as
frontend proxy:
<programlisting>
services.nginx.httpConfig = ''
server {
server_name git.example.com;
listen 443 ssl spdy;
listen [::]:443 ssl spdy;
ssl_certificate /var/lib/acme/git.example.com/fullchain.pem;
ssl_certificate_key /var/lib/acme/git.example.com/key.pem;
location / {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/run/gitlab/gitlab-workhorse.socket;
}
}
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts."git.example.com" = {
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
};
};
'';
</programlisting>
</para>
@ -49,10 +42,10 @@ services.nginx.httpConfig = ''
both services. In the case of PostgreSQL, a database and a role will be created.
</para>
<para>The default state dir is /var/gitlab/state. This is where all data like
the repositories and uploads will be stored.</para>
<para>The default state dir is <literal>/var/gitlab/state</literal>. This is where
all data like the repositories and uploads will be stored.</para>
<para>A basic configuration could look like this:
<para>A basic configuration with some custom settings could look like this:
<programlisting>
services.gitlab = {
@ -64,8 +57,16 @@ services.gitlab = {
port = 443;
user = "git";
group = "git";
smtp = {
enable = true;
address = "localhost";
port = 25;
};
extraConfig = {
gitlab = {
email_from = "gitlab-no-reply@example.com";
email_display_name = "Example GitLab";
email_reply_to = "gitlab-no-reply@example.com";
default_projects_features = { builds = false; };
};
};
@ -80,21 +81,21 @@ options for the <literal>services.gitlab</literal> module.</para>
<section><title>Maintenance</title>
<para>You can run all Gitlab related commands like rake tasks with
<literal>gitlab-runner</literal> which will be available on the system
when gitlab is enabled. You will have to run the commands as the user that
you configured to run gitlab.</para>
<para>You can run Gitlab's rake tasks with <literal>gitlab-rake</literal>
which will be available on the system when gitlab is enabled. You will
have to run the command as the user that you configured to run gitlab
with.</para>
<para>For instance, to backup a Gitlab instance:
<para>For example, to backup a Gitlab instance:
<programlisting>
$ sudo -u git -H gitlab-runner exec rake gitlab:backup:create
$ sudo -u git -H gitlab-rake gitlab:backup:create
</programlisting>
A list of all availabe rake tasks can be obtained by running:
<programlisting>
$ sudo -u git -H gitlab-runner exec rake -T
$ sudo -u git -H gitlab-rake -T
</programlisting>
</para>

View File

@ -54,7 +54,7 @@ in {
description = "Offlineimap: a software to dispose your mailbox(es) as a local Maildir(s)";
serviceConfig = {
Type = "oneshot";
ExecStart = "${cfg.package}/bin/offlineimap -u basic -o -1";
ExecStart = "${cfg.package}/bin/offlineimap -u syslog -o -1";
TimeoutStartSec = cfg.timeoutStartSec;
};
path = cfg.path;

View File

@ -263,6 +263,7 @@ in
serviceConfig =
{ ExecStart =
(optionalString cfg.startWhenNeeded "-") +
"${cfgc.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
"-f ${pkgs.writeText "sshd_config" cfg.extraConfig}";
KillMode = "process";

View File

@ -23,6 +23,18 @@ let
RestartForceExitStatus="3 4";
};
iNotifyHeader = {
description = "Syncthing Inotify File Watcher service";
after = [ "network.target" "syncthing.service" ];
requires = [ "syncthing.service" ];
};
iNotifyService = {
SuccessExitStatus = "2";
RestartForceExitStatus = "3";
Restart = "on-failure";
};
in
{
@ -39,6 +51,12 @@ in
available on http://127.0.0.1:8384/.
'';
useInotify = mkOption {
type = types.bool;
default = false;
description = "Provide syncthing-inotify as a service.";
};
systemService = mkOption {
type = types.bool;
default = true;
@ -112,27 +130,40 @@ in
config.ids.gids.syncthing;
};
environment.systemPackages = [ cfg.package ];
systemd.services = {
syncthing = mkIf cfg.systemService (header // {
wants = mkIf cfg.useInotify [ "syncthing-inotify.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = service // {
User = cfg.user;
Group = cfg.group;
PermissionsStartOnly = true;
ExecStart = "${cfg.package}/bin/syncthing -no-browser -home=${cfg.dataDir}";
};
});
systemd.services = mkIf cfg.systemService {
syncthing = header // {
syncthing-inotify = mkIf (cfg.systemService && cfg.useInotify) (iNotifyHeader // {
wantedBy = [ "multi-user.target" ];
serviceConfig = service // {
serviceConfig = iNotifyService // {
User = cfg.user;
Group = cfg.group;
PermissionsStartOnly = true;
ExecStart = "${cfg.package}/bin/syncthing -no-browser -home=${cfg.dataDir}";
ExecStart = "${pkgs.syncthing-inotify.bin}/bin/syncthing-inotify -home=${cfg.dataDir} -logflags=0";
};
};
});
};
systemd.user.services.syncthing =
header // {
wantedBy = [ "default.target" ];
systemd.user.services = {
syncthing = header // {
serviceConfig = service // {
ExecStart = "${cfg.package}/bin/syncthing -no-browser";
};
};
syncthing-inotify = mkIf cfg.useInotify (iNotifyHeader // {
serviceConfig = iNotifyService // {
ExecStart = "${pkgs.syncthing-inotify.bin}/bin/syncthing-inotify -logflags=0";
};
});
};
};
}

View File

@ -18,7 +18,9 @@ let
${cfg.config}
${optionalString (cfg.httpConfig == "") ''
${optionalString (cfg.httpConfig == "" && cfg.config == "") ''
events {}
http {
include ${cfg.package}/conf/mime.types;
include ${cfg.package}/conf/fastcgi.conf;
@ -96,6 +98,7 @@ let
}''}
${optionalString (cfg.httpConfig != "") ''
events {}
http {
include ${cfg.package}/conf/mime.types;
include ${cfg.package}/conf/fastcgi.conf;
@ -233,9 +236,12 @@ in
};
config = mkOption {
default = "events {}";
default = "";
description = "
Verbatim nginx.conf configuration.
This is mutually exclusive with the structured configuration
via virtualHosts and the recommendedXyzSettings configuration
options. See appendConfig for appending to the generated http block.
";
};
@ -268,8 +274,8 @@ in
default = "";
description = "
Configuration lines to be appended to the generated http block.
This is mutually exclusive with using httpConfig for specifying the whole
http block verbatim.
This is mutually exclusive with using config and httpConfig for
specifying the whole http block verbatim.
";
};

View File

@ -9,6 +9,12 @@ let
pidFile = "${stateDir}/phpfpm.pid";
mkPool = n: p: ''
[${n}]
listen = ${p.listen}
${p.extraConfig}
'';
cfgFile = pkgs.writeText "phpfpm.conf" ''
[global]
pid = ${pidFile}
@ -16,6 +22,8 @@ let
daemonize = yes
${cfg.extraConfig}
${concatStringsSep "\n" (mapAttrsToList mkPool cfg.pools)}
${concatStringsSep "\n" (mapAttrsToList (n: v: "[${n}]\n${v}") cfg.poolConfigs)}
'';
@ -62,8 +70,8 @@ in {
};
poolConfigs = mkOption {
type = types.attrsOf types.lines;
default = {};
type = types.attrsOf types.lines;
example = literalExample ''
{ mypool = '''
listen = /run/phpfpm/mypool
@ -84,10 +92,20 @@ in {
the phpfpm service is disabled.
'';
};
pools = mkOption {
type = types.attrsOf (types.submodule (import ./pool-options.nix {
inherit lib;
}));
default = {};
description = ''
If no pools are defined, the phpfpm service is disabled.
'';
};
};
};
config = mkIf (cfg.poolConfigs != {}) {
config = mkIf (cfg.pools != {}) {
systemd.services.phpfpm = {
wantedBy = [ "multi-user.target" ];

View File

@ -0,0 +1,35 @@
{ lib }:
with lib; {
options = {
listen = mkOption {
type = types.str;
example = "/path/to/unix/socket";
description = ''
The address on which to accept FastCGI requests.
'';
};
extraConfig = mkOption {
type = types.lines;
example = ''
user = nobody
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
'';
description = ''
Extra lines that go into the pool configuration.
See the documentation on <literal>php-fpm.conf</literal> for
details on configuration directives.
'';
};
};
}

View File

@ -28,7 +28,7 @@ with lib;
};
stateDir = mkOption {
default = "/var/spool/varnish";
default = "/var/spool/varnish/${config.networking.hostName}";
description = "
Directory holding all state for Varnish to run.
";
@ -46,6 +46,9 @@ with lib;
mkdir -p ${cfg.stateDir}
chown -R varnish:varnish ${cfg.stateDir}
'';
postStop = ''
rm -rf ${cfg.stateDir}
'';
path = [ pkgs.gcc ];
serviceConfig.ExecStart = "${pkgs.varnish}/sbin/varnishd -a ${cfg.http_address} -f ${pkgs.writeText "default.vcl" cfg.config} -n ${cfg.stateDir} -u varnish";
serviceConfig.Type = "forking";

View File

@ -25,16 +25,21 @@ in {
accelProfile = mkOption {
type = types.enum [ "flat" "adaptive" ];
default = "flat";
example = "adaptive";
default = "adaptive";
example = "flat";
description =
''
Sets the pointer acceleration profile to the given profile. Permitted values are adaptive, flat.
Not all devices support this option or all profiles. If a profile is unsupported, the default profile
for this is used. For a description on the profiles and their behavior, see the libinput documentation.
Sets the pointer acceleration profile to the given profile.
Permitted values are adaptive, flat.
Not all devices support this option or all profiles.
If a profile is unsupported, the default profile for this is used.
<literal>flat</literal>: Pointer motion is accelerated by a constant
(device-specific) factor, depending on the current speed.
<literal>adaptive</literal>: Pointer acceleration depends on the input speed.
This is the default profile for most devices.
'';
};
};
accelSpeed = mkOption {
type = types.nullOr types.string;
default = null;
@ -216,7 +221,7 @@ in {
Option "LeftHanded" "${xorgBool cfg.leftHanded}"
Option "MiddleEmulation" "${xorgBool cfg.middleEmulation}"
Option "NaturalScrolling" "${xorgBool cfg.naturalScrolling}"
${optionalString (cfg.scrollButton != null) ''Option "ScrollButton" "${cfg.scrollButton}"''}
${optionalString (cfg.scrollButton != null) ''Option "ScrollButton" "${toString cfg.scrollButton}"''}
Option "ScrollMethod" "${cfg.scrollMethod}"
Option "HorizontalScrolling" "${xorgBool cfg.horizontalScrolling}"
Option "SendEventsMode" "${cfg.sendEventsMode}"
@ -227,6 +232,14 @@ in {
EndSection
'';
assertions = [
# already present in synaptics.nix
/* {
assertion = !config.services.xserver.synaptics.enable;
message = "Synaptics and libinput are incompatible, you cannot enable both (in services.xserver).";
} */
];
};
}

View File

@ -205,6 +205,13 @@ in {
EndSection
'';
assertions = [
{
assertion = !config.services.xserver.libinput.enable;
message = "Synaptics and libinput are incompatible, you cannot enable both (in services.xserver).";
}
];
};
}

View File

@ -14,6 +14,9 @@ let
# Map video driver names to driver packages. FIXME: move into card-specific modules.
knownVideoDrivers = {
virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; };
# modesetting does not have a xf86videomodesetting package as it is included in xorgserver
modesetting = {};
};
fontsForXServer =
@ -443,7 +446,7 @@ in
then { modules = [xorg.${"xf86video" + name}]; }
else null)
knownVideoDrivers;
in optional (driver != null) ({ inherit name; driverName = name; } // driver));
in optional (driver != null) ({ inherit name; modules = []; driverName = name; } // driver));
assertions =
[ { assertion = config.security.polkit.enable;

View File

@ -443,7 +443,7 @@ in
copy_bin_and_libs pbkdf2-sha512
mkdir -p $out/etc/ssl
cp -pdv ${pkgs.openssl}/etc/ssl/openssl.cnf $out/etc/ssl
cp -pdv ${pkgs.openssl.out}/etc/ssl/openssl.cnf $out/etc/ssl
cat > $out/bin/openssl-wrap <<EOF
#!$out/bin/sh

View File

@ -185,39 +185,6 @@ if test -n "$debug1devices"; then fail; fi
@postDeviceCommands@
# Try to resume - all modules are loaded now, and devices exist
if test -e /sys/power/tuxonice/resume; then
if test -n "$(cat /sys/power/tuxonice/resume)"; then
echo 0 > /sys/power/tuxonice/user_interface/enabled
echo 1 > /sys/power/tuxonice/do_resume || echo "failed to resume..."
fi
fi
if test -e /sys/power/resume -a -e /sys/power/disk; then
if test -n "@resumeDevice@"; then
resumeDev="@resumeDevice@"
resumeInfo="$(udevadm info -q property "$resumeDev" )"
else
for sd in @resumeDevices@; do
# Try to detect resume device. According to Ubuntu bug:
# https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1
# when there are multiple swap devices, we can't know where the hibernate
# image will reside. We can check all of them for swsuspend blkid.
resumeInfo="$(test -e "$sd" && udevadm info -q property "$sd")"
if [ "$(echo "$resumeInfo" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then
resumeDev="$sd"
break
fi
done
fi
if test -e "$resumeDev"; then
resumeMajor="$(echo "$resumeInfo" | sed -n 's/^MAJOR=//p')"
resumeMinor="$(echo "$resumeInfo" | sed -n 's/^MINOR=//p')"
echo "$resumeMajor:$resumeMinor" > /sys/power/resume 2> /dev/null || echo "failed to resume..."
fi
fi
# Return true if the machine is on AC power, or if we can't determine
# whether it's on AC power.
onACPower() {
@ -348,6 +315,68 @@ mountFS() {
}
# Function for waiting a device to appear.
waitDevice() {
local device="$1"
# USB storage devices tend to appear with some delay. It would be
# great if we had a way to synchronously wait for them, but
# alas... So just wait for a few seconds for the device to
# appear.
if test ! -e $device; then
echo -n "waiting for device $device to appear..."
try=20
while [ $try -gt 0 ]; do
sleep 1
# also re-try lvm activation now that new block devices might have appeared
lvm vgchange -ay
# and tell udev to create nodes for the new LVs
udevadm trigger --action=add
if test -e $device; then break; fi
echo -n "."
try=$((try - 1))
done
echo
[ $try -ne 0 ]
fi
}
# Try to resume - all modules are loaded now.
if test -e /sys/power/tuxonice/resume; then
if test -n "$(cat /sys/power/tuxonice/resume)"; then
echo 0 > /sys/power/tuxonice/user_interface/enabled
echo 1 > /sys/power/tuxonice/do_resume || echo "failed to resume..."
fi
fi
if test -e /sys/power/resume -a -e /sys/power/disk; then
if test -n "@resumeDevice@" && waitDevice "@resumeDevice@"; then
resumeDev="@resumeDevice@"
resumeInfo="$(udevadm info -q property "$resumeDev" )"
else
for sd in @resumeDevices@; do
# Try to detect resume device. According to Ubuntu bug:
# https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1
# when there are multiple swap devices, we can't know where the hibernate
# image will reside. We can check all of them for swsuspend blkid.
if waitDevice "$sd"; then
resumeInfo="$(udevadm info -q property "$sd")"
if [ "$(echo "$resumeInfo" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then
resumeDev="$sd"
break
fi
fi
done
fi
if test -n "$resumeDev"; then
resumeMajor="$(echo "$resumeInfo" | sed -n 's/^MAJOR=//p')"
resumeMinor="$(echo "$resumeInfo" | sed -n 's/^MINOR=//p')"
echo "$resumeMajor:$resumeMinor" > /sys/power/resume 2> /dev/null || echo "failed to resume..."
fi
fi
# Try to find and mount the root device.
mkdir -p $targetRoot
@ -380,29 +409,11 @@ while read -u 3 mountPoint; do
;;
esac
# USB storage devices tend to appear with some delay. It would be
# great if we had a way to synchronously wait for them, but
# alas... So just wait for a few seconds for the device to
# appear. If it doesn't appear, try to mount it anyway (and
# probably fail). This is a fallback for non-device "devices"
# that we don't properly recognise.
if test -z "$pseudoDevice" -a ! -e $device; then
echo -n "waiting for device $device to appear..."
try=20
while [ $try -gt 0 ]; do
sleep 1
# also re-try lvm activation now that new block devices might have appeared
lvm vgchange -ay
# and tell udev to create nodes for the new LVs
udevadm trigger --action=add
if test -e $device; then break; fi
echo -n "."
try=$((try - 1))
done
echo
if [ $try -eq 0 ]; then
echo "Timed out waiting for device $device, trying to mount anyway."
fi
if test -z "$pseudoDevice" && ! waitDevice "$device"; then
# If it doesn't appear, try to mount it anyway (and
# probably fail). This is a fallback for non-device "devices"
# that we don't properly recognise.
echo "Timed out waiting for device $device, trying to mount anyway."
fi
# Wait once more for the udev queue to empty, just in case it's

View File

@ -87,15 +87,11 @@ let
LDD="$(ldd $BIN)" || continue
LIBS="$(echo "$LDD" | awk '{print $3}' | sed '/^$/d')"
for LIB in $LIBS; do
[ ! -f "$out/lib/$(basename $LIB)" ] && cp -pdv $LIB $out/lib
while [ "$(readlink $LIB)" != "" ]; do
LINK="$(readlink $LIB)"
if [ "${LINK:0:1}" != "/" ]; then
LINK="$(dirname $LIB)/$LINK"
fi
LIB="$LINK"
[ ! -f "$out/lib/$(basename $LIB)" ] && cp -pdv $LIB $out/lib
done
TGT="$out/lib/$(basename $LIB)"
if [ ! -f "$TGT" ]; then
SRC="$(readlink -e $LIB)"
cp -pdv "$SRC" "$TGT"
fi
done
done

View File

@ -211,6 +211,7 @@ in rec {
tests.boot = callSubTests tests/boot.nix {};
tests.boot-stage1 = callTest tests/boot-stage1.nix {};
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; });
tests.cassandra = callTest tests/cassandra.nix {};
tests.chromium = (callSubTests tests/chromium.nix { system = "x86_64-linux"; }).stable;
tests.cjdns = callTest tests/cjdns.nix {};
tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};

68
nixos/tests/cassandra.nix Normal file
View File

@ -0,0 +1,68 @@
import ./make-test.nix ({ pkgs, ...}:
let
user = "cassandra";
nodeCfg = nodes: selfIP: cassandraOpts:
{
services.cassandra = {
enable = true;
listenAddress = selfIP;
rpcAddress = "0.0.0.0";
seeds = [ "192.168.1.1" ];
package = pkgs.cassandra_2_0;
jre = pkgs.openjdk;
clusterName = "ci ahoy";
authenticator = "PasswordAuthenticator";
authorizer = "CassandraAuthorizer";
user = user;
} // cassandraOpts;
nixpkgs.config.allowUnfree = true;
virtualisation.memorySize = 1024;
};
in
{
name = "cassandra-ci";
nodes = {
cass0 = {pkgs, config, nodes, ...}: nodeCfg nodes "192.168.1.1" {};
cass1 = {pkgs, config, nodes, ...}: nodeCfg nodes "192.168.1.2" {};
cass2 = {pkgs, config, nodes, ...}: nodeCfg nodes "192.168.1.3" {
extraParams = [
''JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=192.168.1.2"''
];
listenAddress = "192.168.1.3";
};
};
testScript = ''
subtest "start seed", sub {
$cass0->waitForUnit("cassandra.service");
$cass0->waitForOpenPort(9160);
$cass0->execute("echo show version | cqlsh localhost -u cassandra -p cassandra");
sleep 2;
$cass0->succeed("echo show version | cqlsh localhost -u cassandra -p cassandra");
$cass1->start;
};
subtest "cassandra user/group", sub {
$cass0->succeed("id \"${user}\" >/dev/null");
$cass1->succeed("id \"${user}\" >/dev/null");
};
subtest "bring up cassandra cluster", sub {
$cass1->waitForUnit("cassandra.service");
$cass0->waitUntilSucceeds("nodetool status | grep -c UN | grep 2");
};
subtest "break and fix node", sub {
$cass0->block;
$cass0->waitUntilSucceeds("nodetool status | grep -c DN | grep 1");
$cass0->unblock;
$cass0->waitUntilSucceeds("nodetool status | grep -c UN | grep 2");
};
subtest "replace crashed node", sub {
$cass1->crash;
$cass2->start;
$cass2->waitForUnit("cassandra.service");
$cass0->waitUntilFails("nodetool status | grep UN | grep 192.168.1.2");
$cass0->waitUntilSucceeds("nodetool status | grep UN | grep 192.168.1.3");
};
'';
})

View File

@ -4,31 +4,37 @@
# 3. GoCD agent is available on GoCD server using GoCD API
# 3.1. https://api.go.cd/current/#get-all-agents
let
serverUrl = "localhost:8153/go/api/agents";
header = "Accept: application/vnd.go.cd.v2+json";
in
import ./make-test.nix ({ pkgs, ...} : {
name = "gocd-agent";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ swarren83 ];
maintainers = [ grahamc swarren83 ];
};
nodes = {
gocd_agent =
{ config, pkgs, ... }:
{
virtualisation.memorySize = 2048;
services.gocd-agent = {
enable = true;
nodes = {
gocd_agent =
{ config, pkgs, ... }:
{
virtualisation.memorySize = 2046;
services.gocd-agent = {
enable = true;
};
services.gocd-server = {
enable = true;
};
};
services.gocd-server = {
enable = true;
};
};
};
};
testScript = ''
startAll;
$gocd_agent->waitForUnit("gocd-server");
$gocd_agent->waitForOpenPort("8153");
$gocd_agent->waitForUnit("gocd-agent");
$gocd_agent->waitUntilSucceeds("curl -s -f localhost:8153/go/api/agents -H 'Accept: application/vnd.go.cd.v2+json'");
$gocd_agent->waitUntilSucceeds("curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid");
$gocd_agent->succeed("curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep -q Idle");
'';
})

View File

@ -2,7 +2,7 @@
# 1. GoCD server starts
# 2. GoCD server responds
import ./make-test.nix ({ pkgs, ...} :
import ./make-test.nix ({ pkgs, ...} :
{
name = "gocd-server";
@ -13,8 +13,8 @@ import ./make-test.nix ({ pkgs, ...} :
nodes = {
gocd_server =
{ config, pkgs, ... }:
{
virtualisation.memorySize = 2048;
{
virtualisation.memorySize = 2046;
services.gocd-server.enable = true;
};
};

View File

@ -201,19 +201,21 @@ let
# The test cannot access the network, so any packages we
# need must be included in the VM.
system.extraDependencies =
[ pkgs.sudo
pkgs.docbook5
pkgs.docbook5_xsl
pkgs.unionfs-fuse
pkgs.ntp
pkgs.nixos-artwork
pkgs.perlPackages.XMLLibXML
pkgs.perlPackages.ListCompare
system.extraDependencies = with pkgs;
[ sudo
libxml2.bin
libxslt.bin
docbook5
docbook5_xsl
unionfs-fuse
ntp
nixos-artwork
perlPackages.XMLLibXML
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
curl
]
++ optional (bootLoader == "grub" && grubVersion == 1) pkgs.grub
++ optionals (bootLoader == "grub" && grubVersion == 2) [ pkgs.grub2 pkgs.grub2_efi ];

View File

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
buildInputs = [
qtscriptgenerator stdenv.cc.libc gettext curl libxml2 mysql.lib
qtscriptgenerator stdenv.cc.libc gettext curl libxml2 mysql.server/*libmysqld*/
taglib taglib_extras loudmouth kdelibs phonon strigi soprano qca2
libmtp liblastfm libgpod qjson ffmpeg libofa nepomuk_core
lz4 lzo snappy libaio pcre
@ -34,6 +34,8 @@ stdenv.mkDerivation rec {
cmakeFlags = "-DKDE4_BUILD_TESTS=OFF";
enableParallelBuilding = true;
propagatedUserEnvPkgs = [ qtscriptgenerator ];
meta = {

View File

@ -11,10 +11,10 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "fmit-${version}";
version = "1.0.15";
version = "1.1.8";
src = fetchFromGitHub {
sha256 = "0bakqwgl7xx6khs8993w10a8kvlbr7sbqdaljbsmy8y8mjd6inqb";
sha256 = "14vx4p1h3c6frvv8dam4ymz588zpycmg17pxfkmx4m7pszhlin6b";
rev = "v${version}";
repo = "fmit";
owner = "gillesdegottex";

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
src = fetchgit {
url = "https://github.com/OSSIA/i-score.git";
rev = "ede2453b139346ae46702b5e2643c5488f8c89fb";
sha256 = "0mk0zsqhx9z7ry1amjki89h6yp5ysi1qgy2j3kzhrm5sfazvf0x3";
sha256 = "0cl9vdmxkshdacgpp7s2rg40b7xbsjrzw916jds9i3rpq1pcy5pj";
leaveDotGit = true;
deepClone = true;
};

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
name = "musescore-${version}";
version = "2.0.2";
version = "2.0.3";
src = fetchzip {
url = "https://github.com/musescore/MuseScore/archive/v${version}.tar.gz";
sha256 = "12a83v4i830gj76z5744034y1vvwzgy27mjbjp508yh9bd328yqw";
sha256 = "067f4li48qfhz2barj70zpf2d2mlii12npx07jx9xjkkgz84z4c9";
};
hardeningDisable = [ "relro" "bindnow" ];

View File

@ -1,10 +1,11 @@
{ stdenv, fetchFromGitHub , liblo, libxml2, libjack2, libsndfile, wxGTK, libsigcxx
,libsamplerate, rubberband, pkgconfig, autoconf, automake, libtool, gettext, ncurses, which
{ stdenv, fetchFromGitHub, liblo, libxml2, libjack2, libsndfile, wxGTK, libsigcxx
, libsamplerate, rubberband, pkgconfig, libtool, gettext, ncurses, which
, autoreconfHook
}:
stdenv.mkDerivation rec {
name = "sooperlooper-git-${version}";
version = "19-07-2016";
version = "2016-07-19";
src = fetchFromGitHub {
owner = "essej";
@ -13,9 +14,16 @@ stdenv.mkDerivation rec {
sha256 = "0qz25h4idv79m97ici2kzx72fwzks3lysyksk3p3rx72lsijhf3g";
};
autoreconfPhase = ''
patchShebangs ./autogen.sh
./autogen.sh
'';
nativeBuildInputs = [ autoreconfHook pkgconfig which libtool ];
buildInputs = [
liblo libxml2 libjack2 libsndfile wxGTK libsigcxx
libsamplerate rubberband pkgconfig autoconf automake libtool gettext ncurses which
libsamplerate rubberband gettext ncurses
];
meta = {

View File

@ -5,7 +5,7 @@
assert stdenv.system == "x86_64-linux";
let
version = "1.0.32.96.g3c8a06e6-37";
version = "1.0.36.120.g536a862f-20";
deps = [
alsaLib
@ -50,7 +50,7 @@ stdenv.mkDerivation {
src =
fetchurl {
url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
sha256 = "0nk5sf3x9vf5ivm035h7rnjx0wvqlvii1i2mwvv50h86wmc25iih";
sha256 = "03r4hz4x4f3zmp6dsv1n72y5q01d7mfqvaaxqvd587a5561gahf0";
};
buildInputs = [ dpkg makeWrapper ];
@ -104,6 +104,6 @@ stdenv.mkDerivation {
homepage = https://www.spotify.com/;
description = "Play music from the Spotify music service";
license = stdenv.lib.licenses.unfree;
maintainers = with stdenv.lib.maintainers; [ eelco ftrvxmtrx sheenobu ];
maintainers = with stdenv.lib.maintainers; [ eelco ftrvxmtrx sheenobu mudri ];
};
}

View File

@ -0,0 +1,82 @@
{ bash
, buildFHSUserEnv
, coreutils
, fetchurl
, findutils
, git
, gnugrep
, gnutar
, gzip
, jdk
, libXrandr
, makeWrapper
, pkgsi686Linux
, stdenv
, unzip
, which
, writeTextFile
, zlib
}:
let
version = "2.1.2.0";
build = "143.2915827";
androidStudio = stdenv.mkDerivation {
name = "android-studio";
buildInputs = [
makeWrapper
unzip
];
installPhase = ''
cp -r . $out
wrapProgram $out/bin/studio.sh --set PATH "${stdenv.lib.makeBinPath [
# Checked in studio.sh
coreutils
findutils
gnugrep
jdk
which
# Used during setup wizard
gnutar
gzip
# Runtime stuff
git
]}" --set LD_LIBRARY_PATH "${stdenv.lib.makeLibraryPath [
# Gradle wants libstdc++.so.6
stdenv.cc.cc.lib
# mksdcard wants 32 bit libstdc++.so.6
pkgsi686Linux.stdenv.cc.cc.lib
# aapt wants libz.so.1
zlib
# Support multiple monitors
libXrandr
]}"
'';
src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip";
sha256 = "0q61m8yln77valg7y6lyxlml53z387zh6fyfgc22sm3br5ahbams";
};
};
# Android Studio downloads prebuilt binaries as part of the SDK. These tools
# (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the interpreter. An FHS
# environment is used as a work around for that.
fhsEnv = buildFHSUserEnv {
name = "android-studio-fhs-env";
};
in writeTextFile {
name = "android-studio-${version}";
destination = "/bin/android-studio";
executable = true;
text = ''
#!${bash}/bin/bash
${fhsEnv}/bin/android-studio-fhs-env ${androidStudio}/bin/studio.sh
'';
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "atom-${version}";
version = "1.9.0";
version = "1.9.6";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0hhv1yfs2h5x86pjbkbdg1mn15afdd3baddwpf3p0fl8x2gv9z7m";
sha256 = "1hw3s4zc0rs138gg429w98kkgmkm19wgq7r790hic5naci7d7f4i";
name = "${name}.deb";
};

View File

@ -311,6 +311,36 @@ rec {
};
};
eclipse_sdk_451 = eclipse-sdk-451; # backward compatibility, added 2016-01-30
eclipse-sdk-452 = buildEclipse {
name = "eclipse-sdk-4.5.2";
description = "Eclipse Mars Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.5.2-201602121500/eclipse-SDK-4.5.2-linux-gtk-x86_64.tar.gz;
sha256 = "87f82b0c13c245ee20928557dbc4435657d1e029f72d9135683c8d585c69ba8d";
};
"i686-linux" = fetchurl {
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.5.2-201602121500/eclipse-SDK-4.5.2-linux-gtk.tar.gz;
sha256 = "78f7e537b34333401fc782fbd1260087c586ff93b17b88da5b177642f3aa5a02";
};
};
};
eclipse-sdk-46 = buildEclipse {
name = "eclipse-sdk-4.6";
description = "Eclipse Neon Classic";
sources = {
"x86_64-linux" = fetchurl {
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.6-201606061100/eclipse-SDK-4.6-linux-gtk-x86_64.tar.gz;
sha256 = "4d7a39ce4e04ba1f5179f6a72926eb86ed506d97842a3bf4247814491c508e0a";
};
"i686-linux" = fetchurl {
url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.6-201606061100/eclipse-SDK-4.6-linux-gtk.tar.gz;
sha256 = "d9e1d390cac504a17a65d4a22ebb8da6a592bcc54491912cbc29577990d77014";
};
};
};
eclipse-platform = eclipse-platform-46;

View File

@ -82,9 +82,6 @@ stdenv.mkDerivation rec {
mv nextstep/Emacs.app $out/Applications
'';
# https://github.com/NixOS/nixpkgs/issues/13573
doCheck = false;
meta = with stdenv.lib; {
description = "GNU Emacs 25 (pre), the extensible, customizable text editor";
homepage = http://www.gnu.org/software/emacs/;

View File

@ -10,32 +10,6 @@ let
bnumber = with stdenv.lib; build: last (splitString "-" build);
mkIdeaProduct = callPackage ./common.nix { };
buildAndroidStudio = { name, version, build, src, license, description, wmClass }:
let drv = (mkIdeaProduct rec {
inherit name version build src wmClass jdk;
product = "Studio";
meta = with stdenv.lib; {
homepage = https://developer.android.com/sdk/installing/studio.html;
inherit description license;
longDescription = ''
Android development environment based on IntelliJ
IDEA providing new features and improvements over
Eclipse ADT and will be the official Android IDE
once it's ready.
'';
platforms = platforms.linux;
maintainers = with maintainers; [ edwtjo ];
};
});
in stdenv.lib.overrideDerivation drv (x : {
buildInputs = x.buildInputs ++ [ makeWrapper ];
installPhase = x.installPhase + ''
wrapProgram "$out/bin/android-studio" \
--set ANDROID_HOME "${androidsdk}/libexec/" \
--set LD_LIBRARY_PATH "${stdenv.cc.cc.lib}/lib" # Gradle installs libnative-platform.so in ~/.gradle, that requires libstdc++.so.6
'';
});
buildClion = { name, version, build, src, license, description, wmClass }:
(mkIdeaProduct rec {
inherit name version build src wmClass jdk;
@ -147,20 +121,6 @@ in
{
android-studio = let buildNumber = "143.2915827"; in buildAndroidStudio rec {
name = "android-studio-${version}";
version = "2.1.2.0";
build = "AI-${buildNumber}";
description = "Android development environment based on IntelliJ IDEA";
license = stdenv.lib.licenses.asl20;
src = fetchurl {
url = "https://dl.google.com/dl/android/studio/ide-zips/${version}" +
"/android-studio-ide-${buildNumber}-linux.zip";
sha256 = "0q61m8yln77valg7y6lyxlml53z387zh6fyfgc22sm3br5ahbams";
};
wmClass = "jetbrains-studio";
};
clion = buildClion rec {
name = "clion-${version}";
version = "1.2.5";

View File

@ -1,7 +1,5 @@
{ stdenv, fetchurl, xlibsWrapper, motif, libXpm }:
assert stdenv.isLinux;
stdenv.mkDerivation rec {
name = "nedit-5.6a";
@ -14,7 +12,9 @@ stdenv.mkDerivation rec {
buildInputs = [ xlibsWrapper motif libXpm ];
buildFlags = if stdenv.isLinux then "linux" else "";
buildFlags = if stdenv.isLinux then "linux" else
# the linux config works fine on darwin too!
if stdenv.isDarwin then "linux" else "";
NIX_CFLAGS_COMPILE="-DBUILD_UNTESTED_NEDIT -L${motif}/lib";
@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
cp -p source/nedit source/nc $out/bin
'';
meta = {
meta = with stdenv.lib; {
homepage = http://www.nedit.org;
platforms = with platforms; linux ++ darwin;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, gettext, glib, libmsgpack, libtermkey
{ stdenv, fetchFromGitHub, cmake, gettext, libmsgpack, libtermkey
, libtool, libuv, luajit, luaPackages, man, ncurses, perl, pkgconfig
, unibilium, makeWrapper, vimUtils, xsel
@ -72,7 +72,6 @@ let
enableParallelBuilding = true;
buildInputs = [
glib
libtermkey
libuv
libmsgpack

View File

@ -3,7 +3,7 @@
}:
let # not very usable ATM
version = "0pre-2015-10-18";
version = "0.2.1";
in
stdenv.mkDerivation {
name = "neovim-qt-${version}";
@ -11,8 +11,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub {
repo = "neovim-qt";
owner = "equalsraf";
rev = "03236e2";
sha256 = "0hhwpnj7yfqdk7yiwrq0x6n4xx30brj9clxmxx796421rlcrxypq";
rev = "v${version}";
sha256 = "0mqs2f7l05q2ayj77czr5fnpr7fa00qrmjdjxglbwxdxswcsz88n";
};
# It tries to download libmsgpack; let's use ours.
@ -22,7 +22,7 @@ stdenv.mkDerivation {
# Similar enough to FindMsgpack
set(MSGPACK_INCLUDE_DIRS ${libmsgpack}/include PARENT_SCOPE)
set(MSGPACK_LIBRARIES msgpack PARENT_SCOPE)
set(MSGPACK_LIBRARIES msgpackc PARENT_SCOPE)
'';
in "echo '${use-msgpack}' > third-party/CMakeLists.txt";
@ -34,9 +34,7 @@ stdenv.mkDerivation {
enableParallelBuilding = true;
installPhase = ''
mkdir -p "$out/bin"
mv ./bin/nvim-qt "$out/bin/"
postInstall = ''
wrapProgram "$out/bin/nvim-qt" --prefix PATH : "${neovim}/bin"
'';

View File

@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
description = "An efficient hex editor";
homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
license = licenses.mit;
platforms = platforms.unix;
platforms = platforms.linux;
};
}

View File

@ -11,7 +11,7 @@ stdenv.mkDerivation {
};
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite pkgconfig cairo
readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.lib blas ]
readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.client blas ]
++ (with pythonPackages; [ python dateutil wxPython30 numpy sqlite3 ]);
configureFlags = [
@ -22,7 +22,8 @@ stdenv.mkDerivation {
"--with-netcdf"
"--with-geos"
"--with-postgres" "--with-postgres-libs=${postgresql.lib}/lib/"
"--with-mysql" "--with-mysql-includes=${mysql.lib}/include/mysql"
# it complains about missing libmysqld but doesn't really seem to need it
"--with-mysql" "--with-mysql-includes=${stdenv.lib.getDev mysql.client}/include/mysql"
"--with-blas"
];

View File

@ -11,12 +11,12 @@
assert stdenv ? glibc;
stdenv.mkDerivation rec {
version = "2.0.4";
version = "2.0.5";
name = "darktable-${version}";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "0qhyjsjjcd8yirqdnzbbzsldwd6y4wf1bxjbsshvqq7h5xi4ir40";
sha256 = "00hap68yvfdif6a4lpbhn4jx1n68mpd2kj473kml1xby9swp32w9";
};
buildInputs =

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "geeqie-${version}";
version = "1.2.3";
version = "1.3";
src = fetchurl {
url = "http://geeqie.org/${name}.tar.xz";
sha256 = "2629bf33a9070fad4804b1ef051c3bf8a8fdad3bba4e6188dc20588185003248";
sha256 = "0gzc82sy66pbsmq7lnmq4y37zqad1zfwfls3ik3dmfm8s5nmcvsb";
};
preConfigure = "./autogen.sh";

View File

@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
homepage = http://xaos.sourceforge.net/;
description = "Fractal viewer";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
platforms = [ "x86_64-linux" ];
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "acbuild-${version}";
version = "0.3.0";
version = "0.4.0";
src = fetchFromGitHub {
owner = "appc";
repo = "acbuild";
rev = "v${version}";
sha256 = "19f2fybz4m7d5sp1v8zkl26ig4dacr27qan9h5lxyn2v7a5z34rc";
sha256 = "0s81xlaw75d05b4cidxml978hnxak8parwpnk9clanwqjbj66c7x";
};
buildInputs = [ go ];

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, python, pyqt5, sip_4_16, poppler_utils, pkgconfig, libpng
, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmakeHook, icu, sqlite
, makeWrapper, unrarSupport ? false, chmlib, pythonPackages, xz, libusb1, libmtp
, xdg_utils
, xdg_utils, makeDesktopItem
}:
stdenv.mkDerivation rec {
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
name = "calibre-${version}";
src = fetchurl {
url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
sha256 = "0npqvfjqj1vwa7nmnsyd4d30z40brydw275ldf1jankrp6dr9dyd";
};
@ -67,11 +67,88 @@ stdenv.mkDerivation rec {
wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
--prefix PATH : ${poppler_utils.out}/bin
done
# Replace @out@ by the output path.
mkdir -p $out/share/applications/
cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/
for entry in $out/share/applications/*.desktop; do
substituteAllInPlace $entry
done
'';
calibreDesktopItem = makeDesktopItem {
name = "calibre";
desktopName = "calibre";
exec = "@out@/bin/calibre --detach %F";
genericName = "E-book library management";
icon = "@out@/share/calibre/images/library.png";
comment = "Manage, convert, edit, and read e-books";
mimeType = stdenv.lib.concatStringsSep ";" [
"application/x-mobipocket-subscription"
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
"text/html"
"application/x-cbc"
"application/ereader"
"application/oebps-package+xml"
"image/vnd.djvu"
"application/x-sony-bbeb"
"application/vnd.ms-word.document.macroenabled.12"
"text/rtf"
"text/x-markdown"
"application/pdf"
"application/x-cbz"
"application/x-mobipocket-ebook"
"application/x-cbr"
"application/x-mobi8-ebook"
"text/fb2+xml"
"application/vnd.oasis.opendocument.text"
"application/epub+zip"
"text/plain"
"application/xhtml+xml"
];
categories = "Office";
extraEntries = ''
Actions=ebook-edit ebook-viewer
[Desktop Action ebook-edit]
Name=Edit E-book
Icon=@out@/share/calibre/images/tweak.png
Exec=@out@/bin/ebook-edit --detach %F
[Desktop Action ebook-viewer]
Name=E-book Viewer
Icon=@out@/share/calibre/images/viewer.png
Exec=@out@/bin/ebook-viewer --detach %F
'';
};
ebookEditDesktopItem = makeDesktopItem {
name = "calibre-edit-ebook";
desktopName = "Edit E-book";
genericName = "E-book Editor";
comment = "Edit e-books";
icon = "@out@/share/calibre/images/tweak.png";
exec = "@out@/bin/ebook-edit --detach %F";
categories = "Office;Publishing";
mimeType = "application/epub+zip";
extraEntries = "NoDisplay=true";
};
ebookViewerDesktopItem = makeDesktopItem {
name = "calibre-ebook-viewer";
desktopName = "E-book Viewer";
genericName = "E-book Viewer";
comment = "Read e-books in all the major formats";
icon = "@out@/share/calibre/images/viewer.png";
exec = "@out@/bin/ebook-viewer --detach %F";
categories = "Office;Viewer";
mimeType = "application/epub+zip";
extraEntries = "NoDisplay=true";
};
meta = with stdenv.lib; {
description = "Comprehensive e-book software";
homepage = http://calibre-ebook.com;
homepage = https://calibre-ebook.com;
license = with licenses; if unrarSupport then unfreeRedistributable else gpl3;
maintainers = with maintainers; [ viric domenkozar pSub AndersonTorres ];
platforms = platforms.linux;

View File

@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
homepage = http://codefromabove.com/2014/05/catclock/;
license = with licenses; mit;
maintainers = with maintainers; [ ramkromberg ];
platforms = with platforms; linux;
platforms = with platforms; linux ++ darwin;
};
}

View File

@ -0,0 +1,27 @@
{ stdenv, pkgconfig, gtk2, keybinder, fetchFromGitLab }:
stdenv.mkDerivation {
name = "fehlstart-9f4342d7";
src = fetchFromGitLab {
owner = "fehlstart";
repo = "fehlstart";
rev = "9f4342d75ec5e2a46c13c99c34894bc275798441";
sha256 = "1rfzh7w6n2s9waprv7m1bhvqrk36a77ada7w655pqiwkhdj5q95i";
};
patches = [ ./use-nix-profiles.patch ];
buildInputs = [ pkgconfig gtk2 keybinder ];
preConfigure = ''
export PREFIX=$out
'';
meta = with stdenv.lib; {
description = "Small desktop application launcher with reasonable memory footprint";
homepage = https://gitlab.com/fehlstart/fehlstart;
licence = licenses.gpl3;
maintainers = [ maintainers.mounium ];
platforms = platforms.all;
};
}

View File

@ -0,0 +1,21 @@
--- fehlstart-9f4342d75ec5e2a46c13c99c34894bc275798441-src/fehlstart.c 1970-01-01 01:00:01.000000000 +0100
+++ fehlstart.c 2016-08-10 12:21:11.231638418 +0200
@@ -779,8 +779,15 @@
read_settings(setting_file, &settings);
update_commands();
g_hash_table_foreach(action_map, update_launcher, NULL);
- add_launchers(STR_S(APPLICATIONS_DIR_0));
- add_launchers(STR_S(APPLICATIONS_DIR_1));
- add_launchers(STR_S(USER_APPLICATIONS_DIR));
+ const char* nixprofiles = getenv("NIX_PROFILES");
+ if(nixprofiles != NULL) {
+ const char* pch = strtok(nixprofiles, " ");
+ while (pch != NULL)
+ {
+ String nix_dir = str_concat((String) { pch, strlen(pch), false },STR_S("/share/applications"));
+ add_launchers(nix_dir);
+ pch = strtok(NULL, " ");
+ }
+ }
return NULL;
}

View File

@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
'';
license = stdenv.lib.licenses.bsd3;
maintainers = [ stdenv.lib.maintainers.romildo ];
platforms = stdenv.lib.platforms.unix;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i";
};
doCheck = false;
doCheck = true;
meta = {
description = "A program that produces a familiar, friendly greeting";

View File

@ -3,17 +3,26 @@
, libX11, libXcursor, libXrandr, libXinerama, libXext, harfbuzz, mesa }:
stdenv.mkDerivation rec {
version = "1.9";
version = "1.9a";
name = "mupdf-${version}";
src = fetchurl {
url = "http://mupdf.com/downloads/archive/${name}-source.tar.gz";
sha256 = "15p2k1n3afc7bnqrc0zfqz31fjfq3rrrrj4fwwy5az26d11ynxhp";
sha256 = "1k64pdapyj8a336jw3j61fhn0rp4q6az7d0dqp9r5n3d9rgwa5c0";
};
patches = [
# http://www.openwall.com/lists/oss-security/2016/08/03/2
(fetchpatch {
name = "mupdf-fix-CVE-2016-6525.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=commitdiff_plain;h=39b0f07dd960f34e7e6bf230ffc3d87c41ef0f2e;hp=fa1936405b6a84e5c9bb440912c23d532772f958";
sha256 = "1g9fkd1f5rx1z043vr9dj4934qf7i4nkvbwjc61my9azjrrc3jv7";
})
];
NIX_CFLAGS_COMPILE= [ "-fPIC" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ zlib freetype libX11 libXcursor libXext harfbuzz mesa libXrandr libXinerama];
buildInputs = [ zlib freetype libX11 libXcursor libXext harfbuzz mesa libXrandr libXinerama ];
installPhase = ''
make install prefix=$out

View File

@ -24,7 +24,7 @@
assert stdenv.isLinux;
let
version = "4.2.9";
version = "4.2.10";
binpath = stdenv.lib.makeBinPath
[ cabextract
@ -57,7 +57,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
sha256 = "89bb0fd7cce8cf598ebf38cad716b8587eaca5b916d54386fb24b3ff66b48624";
sha256 = "0ws94hgxajaww450q8ivrp28ypv39mashs29ak41faxf29cr097m";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
installPhase = ''
mkdir -p $out/{bin,share}
cp -rv doc/man $out/share/
mkdir -p $out/{bin,share/man/man1}
cp -rv doc/man/*.1 $out/share/man/man1
cp src/timew $out/bin/
'';

View File

@ -1,27 +1,27 @@
{ stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, pango, cairo, glib
, pcre , imlib2, libXinerama , libXrender, libXcomposite, libXdamage, libX11
, libXrandr, gtk, libpthreadstubs , libXdmcp, librsvg
, libstartup_notification, hicolor_icon_theme, wrapGAppsHook
{ stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, cairo, pango, pcre
, glib , imlib2, gtk, libXinerama , libXrender, libXcomposite, libXdamage
, libX11 , libXrandr, librsvg, libpthreadstubs , libXdmcp
, libstartup_notification , hicolor_icon_theme, wrapGAppsHook
}:
stdenv.mkDerivation rec {
name = "tint2-${version}";
version = "0.12.11";
version = "0.12.12";
src = fetchFromGitLab {
owner = "o9000";
repo = "tint2";
rev = version;
sha256 = "0gfxbxslc8h95q7cq84a69yd7qdhyks978l3rmk48jhwwixdp0hr";
sha256 = "0zgcdancsna95sjxslack9lh8f6qnj8d5wm02891mshn2jhgins3";
};
enableParallelBuilding = true;
nativeBuildInputs = [ pkgconfig cmake gettext wrapGAppsHook ];
buildInputs = [ pango cairo glib pcre imlib2 libXinerama libXrender
libXcomposite libXdamage libX11 libXrandr gtk libpthreadstubs libXdmcp
librsvg libstartup_notification hicolor_icon_theme ];
buildInputs = [ cairo pango pcre glib imlib2 gtk libXinerama libXrender
libXcomposite libXdamage libX11 libXrandr librsvg libpthreadstubs
libXdmcp libstartup_notification hicolor_icon_theme ];
preConfigure = ''
substituteInPlace CMakeLists.txt --replace /etc $out/etc

View File

@ -9,6 +9,16 @@ pythonPackages.buildPythonApplication rec {
sha256 = "1yxgafk1sczg1xi2p6nhrvr3hchp7ydw98n48lp3qzwnryn1kxv8";
};
patches = [
# This is necessary to build without a config file.
# It can be safely removed after updating to wikicurses to 1.4
# or when commit 4b944ac339312b642c6dc5d6b5a2f7be7503218f is included
(fetchurl {
url = "https://github.com/ids1024/wikicurses/commit/4b944ac339312b642c6dc5d6b5a2f7be7503218f.patch";
sha256 = "0ii4b0c4hb1zdhcpp4ij908mfy5b8khpm1l7xr7lp314lfhsg9as";
})
];
propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
meta = {

View File

@ -7,13 +7,19 @@ mkChromiumDerivation (base: rec {
packageName = "chromium";
buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ];
outputs = ["out" "sandbox"];
sandboxExecutableName = "__chromium-suid-sandbox";
installPhase = ''
mkdir -p "$libExecPath"
cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
cp -v "$buildPath/chrome_sandbox" "$libExecPath/chrome-sandbox"
mkdir -p "$sandbox/bin"
cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
mkdir -vp "$out/share/man/man1"
cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
@ -29,6 +35,8 @@ mkChromiumDerivation (base: rec {
done
'';
passthru = { inherit sandboxExecutableName; };
meta = {
description = "An open source web browser from Google";
homepage = http://www.chromium.org/;

View File

@ -134,6 +134,12 @@ let
];
postPatch = ''
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
--replace \
'return sandbox_binary;' \
'return base::FilePath(GetDevelSandboxPath());'
sed -i -r \
-e 's/-f(stack-protector)(-all)?/-fno-\1/' \
-e 's|/bin/echo|echo|' \

View File

@ -1,4 +1,4 @@
{ newScope, stdenv, makeWrapper, makeDesktopItem
{ newScope, stdenv, makeWrapper, makeDesktopItem, writeScript
# package customization
, channel ? "stable"
@ -61,21 +61,46 @@ let
suffix = if channel != "stable" then "-" + channel else "";
sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
in stdenv.mkDerivation {
name = "chromium${suffix}-${chromium.browser.version}";
buildInputs = [ makeWrapper ];
outputs = ["out" "sandbox"];
buildCommand = let
browserBinary = "${chromium.browser}/libexec/chromium/chromium";
getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
launchScript = writeScript "chromium" ''
#! ${stdenv.shell}
if [ -x "/var/setuid-wrappers/${sandboxExecutableName}" ]
then
export CHROME_DEVEL_SANDBOX="/var/setuid-wrappers/${sandboxExecutableName}"
else
export CHROME_DEVEL_SANDBOX="@sandbox@/bin/${sandboxExecutableName}"
fi
# libredirect causes chromium to deadlock on startup
export LD_PRELOAD="$(echo -n "$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\.so$ | tr '\n' ':')"
exec @out@/bin/.chromium-wrapped "''${extraFlagsArray[@]}" "$@"
'';
in with stdenv.lib; ''
mkdir -p "$out/bin" "$out/share/applications"
ln -s "${chromium.browser}/share" "$out/share"
eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
eval makeWrapper "${browserBinary}" "$out/bin/.chromium-wrapped" \
${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
cp -v "${launchScript}" "$out/bin/chromium"
substituteInPlace $out/bin/chromium --subst-var out --subst-var sandbox
chmod 755 "$out/bin/chromium"
ln -sv "${chromium.browser.sandbox}" "$sandbox"
ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
ln -s "${chromium.browser}/share/icons" "$out/share/icons"
cp -v "${desktopItem}/share/applications/"* "$out/share/applications"
@ -84,7 +109,8 @@ in stdenv.mkDerivation {
inherit (chromium.browser) meta packageName;
passthru = {
inherit (chromium) upstream-info;
inherit (chromium) upstream-info browser;
mkDerivation = chromium.mkChromiumDerivation;
inherit sandboxExecutableName;
};
}

View File

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
beta = {
sha256 = "00dll63b3z1ijj60m0h8y2ydmkf91hyr6h98rqp21w11c2xbwzis";
sha256bin64 = "1cdfvi5af18mlhn2ax3shsdm4p4jkhs29v3d2gmkyldfvvixh3zc";
version = "52.0.2743.41";
sha256 = "0brpkjg1rcq8c0h5hnzqg3bg4jj805dph67zzramlcvbr44a06r6";
sha256bin64 = "0zqa40xz0v715ggb1g2hc2085k65m24mf8xl1n2fzj7k21hf7bkc";
version = "53.0.2785.34";
};
dev = {
sha256 = "1pzcabdk7d9p4sc8wdpwvji9xvblsihpimnjh6n2jz5al9sm1q8j";
sha256bin64 = "0k84hy4sj03h5bjciigagr83qf7yss22vj21fivgkvgasdmd12m8";
version = "53.0.2767.4";
sha256 = "1c73jfy11l4qiy553a3lvmd8kb29i25az6i5a4azmfc1abriwhjn";
sha256bin64 = "06r53fnwp8v5drh3ilplqbwcak954gcgclc8mqq3mlx5530fp6fv";
version = "54.0.2816.0";
};
stable = {
sha256 = "0aypf5lhi2l7cn41xhq2ck6bjblapwv26nygvg2883hhqinmnwvn";
sha256bin64 = "1c1796sd82l480xjdw7w46867w2phw3ng2dvdb6njsvpg299chi8";
version = "51.0.2704.103";
sha256 = "00d16yr8d9280b2rcjmjxkqvdzgy6a7l7fmnsjrj8404vcgax551";
sha256bin64 = "0knlxgcv3wfvpgysaxb83agmp88n4ljmyx40j4r8wb5cisnl6cs8";
version = "52.0.2743.116";
};
}

View File

@ -4,189 +4,189 @@
# ruby generate_sources.rb 46.0.1 > sources.nix
{
version = "48.0b9";
version = "49.0b1";
sources = [
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ach/firefox-48.0b9.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "0738019c7078daa1beb31445d12718dce195719279cf430c13526907aaa04328efd043b77eaf641674ed4eff8033e8ac47139858a9c9e194bf6ccaaf8cd54d8a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ach/firefox-48.0b9.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "9700cfff54bdd3404b75d7690863ace89aacc49db3339b2ee11807b1ea88f3744d610800d6e5d5144cf7ff8f292374e297779581d629700c9570eab116b5b449"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/af/firefox-48.0b9.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "8700996788a438bb6cf7a5bc0aae166e621a2b32cbe06dd91589bf0abecf123ba34ef9fe7800395d5a8fb148f50a68e35bfc97ddb4b51f2318e87dfb92023798"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/af/firefox-48.0b9.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "b6ff01541e51fd287783750011ec5d5ea1a731c28d4c807d75fedcb6780afbda76b19a4bcb7bbec305cbcbaaa84dd3f57a0b41c404f374022b4ea1e850b9c6d5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/an/firefox-48.0b9.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "11710dcf2c470bac75eaa9a3fca7aa3508d4e9c9b59d2a39f03d166d25c05ba8bcfeda4c4a95134dce8d7c4d261dceb980e1a53a9a11869b7d8b226983f6cadd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/an/firefox-48.0b9.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "7723e02a752d30c597ef7b295b2c1644de4e2a6d02b364853f9a9c419a2d172bb5338792a5a9403851bb3952e93dc092e12056782df1017bfb3c39a2550ccd70"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ar/firefox-48.0b9.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "90bb7327e77e048784efaed6afda9c35eabe4c238194acbb14543f7841c052153fb5f0f7ef202564f2f749aaddf7e870b9b850022b0570cc96d34f730bd1ff52"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ar/firefox-48.0b9.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "410b9d0db9038b597129ea423752300e1831d69c6768bfb09eed3c20a26b1bcf2d67ace6f8befa8a47ab2441ebe69d34361571609709586c3a1086259d9864f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/as/firefox-48.0b9.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "b50989125c6982cf8d9c97af09e9734046d2d3eb8e0e220b139a8835e76cd39195ab2fe2fbded7461acf6d153a8b5376b4991f0c72322f8a22e9961d17589072"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/as/firefox-48.0b9.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "873830760fcf310d26dd40f7147a8c7ad252828ede05a03b82e6d7ccb021435af1d5f7fc61bea6a968ea0f24e54cf108e5f6fd4b3e0558163bcda00cb3fe9aa5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ast/firefox-48.0b9.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "ab6f0c4efc8ab7c6db6a4b31d6dfc93aeff8d65e1fce60d8bc9ce6f86e391f0cd5f6be1a3e4f8784c73d5f982a66e33a69b40614ff4eed04416bfcdab5362e86"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ast/firefox-48.0b9.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "f66b0c006d530dbfd4df30400dd6b15728a7fbd023e88d745d0b8ae05bb63d0d33e344ae70d3105815aa9a23ea5419b80b853d68ef05b7ca2c24d31c670e23a4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/az/firefox-48.0b9.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "cd96e076df13db6cf82d8a6d13653bc928ebde446f4a283e949dd66229297c5a284392b118539c7628593c696eacf2de9b4b8ad623750ed909c08349b3263093"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/az/firefox-48.0b9.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "0c5311168bd7e73e7d81175aca2a46e10122b29b2c54a8b92bbd74ca7092dfb9c43709cd30c50a02c030382c021b1192fccd8e8694fe3c8c8d0cce6370d3bd93"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/be/firefox-48.0b9.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "07c7fac9790d83a06940efa3445212e592764bf794c0b3fb924a695129d0efb649e5cf68656d2160cdbcb188290fdebac971947d891d3eb31cc99e25126c3a55"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/be/firefox-48.0b9.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "789d5ff8f0ae19758b379508d72f7d8315026fdea898218d03108ed3e9d42b85f4fd58649af5783a484a4f5dedc282dacfa68cfcfc9be5154ae9d5a73ae3cde1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/bg/firefox-48.0b9.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "9d8b4837ba7d03e2b5482333e945ac56ea0c715cd7db2a8126d1ad589df2cdabe9eb9ea6b4ac302b02976fcc319752f544090aff6f7569c5610977e6c24b350d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/bg/firefox-48.0b9.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "244ba31c371c649e2f448a3593cb267e19837f011215283d73d1e672acf4c32df1b5c11aaec722170c26b2eef7b7bafea49ffebedfd52ef1a6ebc9fba5650210"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/bn-BD/firefox-48.0b9.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "eb50c9a1f867a1e89424511f1b6152a3633f77271997e33d819a194bc3b85024d76aacdc1d877d6ba72299678a7b5dabb7a3c3f3c37cd309bc73b6514374e683"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/bn-BD/firefox-48.0b9.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "780c482fa5b809b7220fd672c7c24c1e2d764ffb8b13b431663385cb6651da17f26c32fcc60e978ecd971b45076a3fbf8675243c26d5e178b326b84d3b9a0b32"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/bn-IN/firefox-48.0b9.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "5d4936b8beb2db435aa89308492a3ffdcddf4ac60bf32a100bc0943f648a4ca624709d4b171f802df4780ef74bf9d2ba3029fe3aa9e5a6d498fd44642db36f9c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/bn-IN/firefox-48.0b9.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "d9c4089a87289815b4af7e3ad91fdeea76359d941c5a14a9c9e3289c47127b3a3f5a72d522679ae1fadc547cf65d448c604ae3687e11fcfdd73c5c48a104dfda"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/br/firefox-48.0b9.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "134890cbf087ad9b97d532fa10b5b6b0738236d6d1b27b402b1b1832d0982fd9e53f398f28fbf285cc432c5cfc6f83caf9f42c39e351ec188d77c43fbd3fdeab"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/br/firefox-48.0b9.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "d19af5f724f6ce509c05f9005b1e3576061244e6653d8069da9aa6ef8fae3dded66e8138dd806babf9bf7a3e8c7c14de999a28368f26190e747c67af5f29e81d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/bs/firefox-48.0b9.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "f0d29df4df68482cc74da7b2b7c6a2658b3ecaee51d259a1aacc1dd1b30aec7fee7a54696ba2f859608bacb23ff4e0cbba81353387e12b3567067034bef3905c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/bs/firefox-48.0b9.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "bd98070a500f5c6621b4bb18910a1728d23aa193aaa0faa6cc68f35932b436d64441d1f95065f543263e6e6b0484d6c42b7fcc4462a63e594b56297df7713a1b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ca/firefox-48.0b9.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "e7ea69142daf2981432237db537ad85760eb9ce1407e66a206cef39f99c6aa5cd067feca3626ccecfa2d1c67d3425b13bb88c6eb4cdb903cdb12de04b3904bf8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ca/firefox-48.0b9.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "7f30559ad0e456bdf6492561f1283f85fba3c715f43549d2da46d006a59146002b4fe2f06b50a5b34e94633cfde9aded6514a61b451257c19baff3ecff770299"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/cak/firefox-48.0b9.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "289bc8d19ab40a435740e27e44eb637511f0458e8dc14d87851ceef7e2594b52ef621107efcd090e2a31d97be5c04dc5d185f9c10173c38a1974ad28def18f5a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/cak/firefox-48.0b9.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "f1f7b43df14d70fd543402b62edf47e0e347b630282e0976f6bcd64e14fcbbf60f5526824a1355c7c493fba539eb42dc7dda760f3896b5893e72e84fabb39dca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/cs/firefox-48.0b9.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "04c42f09f55ca4ba3a9f4618cf4d860927ca9c01b152ea4d9452c218e02c960fae75311f707091ab0633989c918feac0a50fd27310c09c0d3608b95e0bcd132b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/cs/firefox-48.0b9.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "f4dbf9158adc508d494d03232a24a880ff6eee5b4d6a0aa74c1f3e9a52b7a4a573f579e870d0c57e3b9d17875a2cbe2848c2d7acb7b225ba1b2a860cfaf5dc85"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/cy/firefox-48.0b9.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "7fc634a345f2cb8c1876eac09a40f71592531bcda3058f2d3f6d10f8544be2d6f88cc541960329aef91bdfda21140e181d095c2e656882250ae23f7713b8aa29"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/cy/firefox-48.0b9.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "fc4f316b01ec48fec0a5726742521a735977705a7ae5c36e47f13c1b375663e3a2187fc3fb08400c6f89901315edf81cac79a0b90bbf42421f9305ea79509d95"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/da/firefox-48.0b9.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "00fda3e6357e98eece16090d6e6452d70d5bb3e4d253604f19c635d880f8a4967f5c6ddfa64db1e64e85ffd1c2b64473255ded8b6d547d277c2a37283e18b5ac"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/da/firefox-48.0b9.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "5971f31c81346a18ee5cf5a8dbff79c9348254a6f882a73f27a391a1136e2df7019744df76e8044c299b548163f2f75ba51bd67d0d3f77cf1dba38b449656c45"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/de/firefox-48.0b9.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "1e02384a438f23571c23b471e75bd89717163014b326ee3568dec6e2c458c601e9f96b1ded21fb2b4f5611530a7c145c4bd2d124a7fb375768da4c0936989d19"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/de/firefox-48.0b9.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "f9b35ff0b69c3e48e3c77a0e79d332f7aa6d336e3840ecf377d614a16b7debb1cb288145671a0aeb03c04058aef4b5933e332b9b48cc0d82b3c12c4c2c00fb9e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/dsb/firefox-48.0b9.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "bf24a7a33bd83618953c42f79a2a9261d68048f52ab62e6cd030ddf1283802d7cb5df0fb26e9eb05bcd0e81dc61814ddfb0383a2172c741da9615a4a208cfa07"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/dsb/firefox-48.0b9.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "b6f8413df7ccf5a7a3a7cdaafacbddbd996a8496471f51b5bef62eeda9057e93ce1f7fa941f2a6670609ae0c711187530e95516ef0644253335080e25a66c0fc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/el/firefox-48.0b9.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "f066a0d534e39581dddfefa8808850b1fc427c84f25c8582610d7db47c0c5a792c8cb516321fb3d91134dc0f3e76bbb26075b1d8030bd07eb14a77024c8afaec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/el/firefox-48.0b9.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "2a0125284f2dc4b402ce02344fc3f367834438ea37ee84b866fb0f6b69e8cb9afc0bd586ec43efe6c45c3a5bcb0c99d9a0ad273faea464048bdb5ed56f2b8577"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/en-GB/firefox-48.0b9.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "49be18428af54affc03efc0bb4aef87bf361224fddc735830a71a2f71dfd527af9f7593d90eec930e5edc3e7949172347e63ae78d75dd9916c97ca1ce3e3f92f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/en-GB/firefox-48.0b9.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "b1220f9977187408e1756fb27e26ab763ecb5edf6d497321ea4ba5fc2b32ec5c2caf3b2cb54fb3e506ad3b1a76c8b05c5b986fa6ca25e4ff335a083ba96802b3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/en-US/firefox-48.0b9.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "a91f9d2e04ebcd209bdf4db3638f0ca05287ff52023f6bc993a165d14bcf3264199bcd3559cfe1314e1e886094251c0bf86f274cf410bc456241c5d96fcfa255"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/en-US/firefox-48.0b9.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "e75c437b0cce3e06f9f91fd53cefbd4489d6d31ce93fd642b20e547e03f5a1f417d06ca4566453d1c5b7fad4dd1fac61bf58a414b982c3ae843891a8efef40e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/en-ZA/firefox-48.0b9.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "6a1d643add5c1b63633a02fdee766de6a73174c169a832b7f400e320ee7eb39cf74d652389b36957df200942877ba03dad714d2686d7dd7bad4a3993698e8630"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/en-ZA/firefox-48.0b9.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "877c2d4562fbda98c62902536f07e5ab474a78ab2c5a077bee440cb48525a6eb529e5042533061524cf6fa85b9f6b70fa91e6f2bfa718ca49fb4adc70ea92514"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/eo/firefox-48.0b9.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "d91d25252de09a1c8f52066a3d4bd9f8a6f479c9cfb52bdb7f3939d32162805a26c02b4e3a13e9463b318c2da47d83b77b23fd4bcad58657e8eac8f6f6a769a4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/eo/firefox-48.0b9.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "1a697f4a9c98e956d78f41a22c4c0996542ed67d89b8cde095b330fb366c0ddcaa1403c016f2f2d11dae18564ca50a6f953fdeefe66ce8cd95c8d3ce99212555"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/es-AR/firefox-48.0b9.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "59067e78b573ceae232f11f5b507fafd5f0cb75ce19f9dbc05a30990247321a239157881202b7ae3676c4a6991473741f7bb4e3ccb799bb138f46a3497d1f38d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/es-AR/firefox-48.0b9.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "377410f25dd32fe268a07783bff69f4412a3418d9c9e852e6bd577914727c7e65642781e86a2bbde4085bc175a1ee034fd960d9bbba72463f0361d17bbd7ebee"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/es-CL/firefox-48.0b9.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "5ae95c0e81ef1c23956b5324dab0690c237cc9e7f8b56a51870f668ef7091d8962a0633691909672b63e53bc436ca0c46705cdd393c07aa6f7023d2fb5600ff0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/es-CL/firefox-48.0b9.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "36ff8818adf938144923df82a7fdf9bea26d43225c0853c84a541233cccc370879e8fcca3750f162f880a879c0b41789f692cb08fabc9073d11e2e865d357ee7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/es-ES/firefox-48.0b9.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "0af5cceb948a6cb1be21f98a53e8733113c27339c50e5bb3ca21bb2a82d28821f7f92fcf71f31db156def398e8ce5bc7875d2cab2f231a3702b0c0e30990748e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/es-ES/firefox-48.0b9.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "1c0b8d5e458314f1895bd41d73886962813f9ce1ce099a7438202faf0e4e82a3fb9b701e0950cd5b668a1c0e5a051939868b774956f607c30de974eb7a06a710"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/es-MX/firefox-48.0b9.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "7ad31cf9470e416c6a8cd9a7c14aaeaa6998d9b20ab67387fa32e28490b3dee96ceeb6fbc20258e01d2264e2a96f7607a7a69d960c09a189b62bf638d211306c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/es-MX/firefox-48.0b9.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "8f757afbc6869351b561fae7b9773a8fe7009b3869ffa5e1776ce1b28c1786d6558f0e2bf8487e8a028e3377de39c461309aeb9565e3b03ed1ac6ec8934ce59b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/et/firefox-48.0b9.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "97acd2242d10184243a7d1390bc58326351d48877fbb70b16945278049f597e627cec7b55deb35337392787e29e46b1004d7e332e730ba020b17615ad2f9fd5e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/et/firefox-48.0b9.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "665878727ddbdc85b4d6757a566ebcc4ba9ae098312ea4aa8c63eb52642460365bd4c29dfff42f63561d9b2806d9d9dc26a32422caff56795af93ee78a838bd2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/eu/firefox-48.0b9.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "a6c7af099860209cdc98dd8929392cb71f8607723da9f53f99d9074948b6ec571998db536421d7a79e2e623484be00971380d866ef0962626ebdc45f5f3d535d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/eu/firefox-48.0b9.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "9ea439a7607e5ce736e9f5b22b507473dac5c6e710904b3d273ab2873f9254fc5999d570cd2bfbe2316bead8d1cf8bb6e7db021efc876c266741e7f1aa7f2443"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/fa/firefox-48.0b9.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "7735a5436d28f6ea02d1083a4f97665b86d8795456002076513b236e336092cdba4cd1ca9505178bec87b8ceaadf78e236bb7185a49e662dc13f394f4e63afbe"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/fa/firefox-48.0b9.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "a335270482f4fa3a1ba27a865721047112edb960e433cfc315e5ba07dc3ff0e465f21b86ae15ceabefb7d92ff249e950a36e786b1312d84bee9c133213ee4a31"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ff/firefox-48.0b9.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "a6c3d4c2e493a7e48fb6ef6cddeccc359aa0d8b615beff078c7065df47c5215bf1c964aa885bec5867a1220bf5406c2b481c46ddfb7e01f121e4913af086deda"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ff/firefox-48.0b9.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "7f387391a8105972ca877818766048f2f0c100a1cbda0a2bde976c65cea63ee957100920d43a1b6cab4e7c103e5b4c048cd1293410cd32c7e47475aa7aae81ad"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/fi/firefox-48.0b9.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "6ed696d1d4d7e04204ea943b15069de3ef19e8e57ea4f697c728aafb4f892f80d4b448137ffd4f7591f8342edbb6a1ad719bf7ca9d05960d72b22bf172ff7a6b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/fi/firefox-48.0b9.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "92f16501746fc84132b7e5efa29efad4dea56c1596d1b589799b2f4a59321e344ef252e346be40fde915372b50f9106ca580bbcb16c19ff88c97079ab8954e07"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/fr/firefox-48.0b9.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "3657fbdbb3543897047a119dfb218b5717be7d6ddcb31ea976761211e3186a8ef847f326d5a46bee376f326972f4b4cd213b877909ea5c97d05e1a81cd61fcf3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/fr/firefox-48.0b9.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "afbad7884f15b0d9e3e61681bd62449b55a8b161c0ba5bd74beb50993d47068941535b49837509b9a645061b44aa17566e806b16b64a7a19bb5a4be327fe3600"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/fy-NL/firefox-48.0b9.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "d78aca665ec2f7fcbf4380555df36bc0d4add5920ff4a3f4a1471776fe970d8d7b80b681c32859ac57a04c8f90732d240cb82d2d3dbaebfda62325bc65bafea8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/fy-NL/firefox-48.0b9.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "86c3b0df4feab0e6acfc51e6c0b0d159d22e0ba285ae4d0f517c6fa6b36f3d14a73334ec0767dadc5c21afffb616ac055a72bd15c8972ae6a718f3a88b4a4b3a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ga-IE/firefox-48.0b9.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "368f2fff3afa7cde9f3bca2f3fa281dfd020919093204e6e4ae5d1a0b6af17e748ded0aed83d2646961b0140e21e97a978c24539a6a7e984f607bf330f77d1f0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ga-IE/firefox-48.0b9.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "7053373d6b96eb2dfb95cec2583a5b0b25f9b3076d03d85cd9e550d02f473f4b4ff3bd7196bca5ab69cf383fa92ee4be8fbe4fc47628b55938552c6d4762858c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/gd/firefox-48.0b9.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "02a82abd833755a06afc0b245ee2ce503ec45133f929282225df84e3f9eb76dcec40351431ed099a601c63d12f36502471e27f58c8855c618598f7befc647d1c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/gd/firefox-48.0b9.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "dfdb2a4d0627f782c6054c4cbc529711e42b107b8fab4550c51443ab39b6f0496b206d238c14e292bcc9e5959480931bbea2647afe5b029e2a4bd255fe621a7a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/gl/firefox-48.0b9.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "2a2c4d5f9df457560bd4084ec0641d4fb17f66e1e41ba73b12a2a467942b5a010fcc3895be12b187b2b1abaf912288efbb123b6aa914a0c2668f9d8e4160ebc7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/gl/firefox-48.0b9.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "2dd595709f6a8715eb72d920e4f3a216bb3e7c64470c5e86883726e65918c42eeab75688b7ce8540c055f0151174ea117d345fdc28ac979f3bd49e94cb3bf88d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/gn/firefox-48.0b9.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "fd9117544cb86ffba9661113e5f8e2eb12c782decffd8e66a7dfaa84da256bba5294e2dc9121985237a5c26abdd2f3005b5fdbc997161f3d0d8933c3133878d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/gn/firefox-48.0b9.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "29fa2f47048a14260482ee98ac4083f94b86d669df4bc6fcea3614648c70274f4352f80d92421ccb22c34b00a40d05a6e8a39dff74bff1963803893555c44c54"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/gu-IN/firefox-48.0b9.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "810626ef20f6bb6840fdab2c5bb943c210445396747cdc08cd7eba2d06dec43b9f8156d586e751d226569b51eca6f939f9a921b760887ea9a3e33ab6c9bf7dc4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/gu-IN/firefox-48.0b9.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "ba0be48fc7f37260d28c9aba7058d5b846f2c4333fa738c6fca93c70c580fbd1e6659800bc2236e12f03b91f0eb83d061aa97332c5553e64cf36559dbed68428"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/he/firefox-48.0b9.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "9babddd78b2f479d965b3afd35f4f862ac1aa9508a40eead15bb2d8851773fc331a1f19a79abb032cb943d4cf396e09e43d1d19ada0cc99c7496ec95732d0998"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/he/firefox-48.0b9.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "27329d2fa27443d000bb09978e0938b4d3fa01113ecfaae31ef4fd07d15f4973edd025dfd5c9872689a5682f59195fcc93491275e604893902ef96ec04657784"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/hi-IN/firefox-48.0b9.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "91f1482f99dcb8107e3332becf616004a157a3d2a0127682994c01590dfdca85c273e86a459ed68f09ea5688ead17c0f771850adb8d885dad7a8a303b63dad21"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/hi-IN/firefox-48.0b9.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "2c16c240315d20bf0a9f2d9231d1c7a72380ff1c66b7004d9dac6d84b8eaf665421e1a69e9d738bababefa1b7013ace385bbaec79dcf6c7f9bcb20a5484b8b3f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/hr/firefox-48.0b9.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "fac7b7782a77874cdfaa33d5312ff4cbf768716b6ed17dc762568f1fbc69a9e4eae328b83bcae951b61f3513347a45dd922daf2679420a04385ef1f5260655e7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/hr/firefox-48.0b9.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "edd07b7766d98933d9e4338336fcfc44ba1aeeeba867e1e8943dc30d2696c93c337287f45cc3cecc13e2920c6d4b31198393573600d828623b4b96973eac356b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/hsb/firefox-48.0b9.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "67ff1af81011477dda69baacca4c48e0534e17804cd147bbae57e7e2427f32764bbad1eda06687602b39f3e14de3b455dd526de42bf21b9913c97876ca03e168"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/hsb/firefox-48.0b9.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "676f7e8c0377ec0e4f6614395608d1f8e4458445820fe7ff60ebd191aa640020ab6c94284ac9260581ad32c3e733c6a407c7b92588ed90f7f9b687289a29f984"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/hu/firefox-48.0b9.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "afe8bbbfb44bfdaf85f3700d2410d03e488a05727bbe81858317e3a6851d54e97d223ca76a3e10c374a0f7ebef93113cbf61b4fb208ddbfb438ca86fd6b26f6d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/hu/firefox-48.0b9.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "efb13d909e84435d152886e6d6059a48fa64f9422e35429105c40605985de8769544c1005df2396d66c7336d8d04a7195dd95c3c29a74674c8c171040b66d19c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/hy-AM/firefox-48.0b9.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "3e57e60bc13cc90768495d2edd1afc82526eed21045d22251f43d8c4e3688f5985de31d60e9da3222a34d1c0126e9a722311686011a70ecdb719a4b294e9e9fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/hy-AM/firefox-48.0b9.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "f9cf84a91d1b624163b5384051ca626800c51f486b2f1deb213cf7c62c7010e9b5b27c75420794c3d930ab126ce1c699851a279ee1f2f51d7ac939c57b0f0a31"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/id/firefox-48.0b9.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "047eb087640ab3bb89c3870cd8fdc50f33d393abeeec16e038c627f74743f61b9a14091aba858006e283b1d21cd51436267259185ea259657958395db99e71d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/id/firefox-48.0b9.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "1c8ec433c5b1fa936b299dcb53414e98e4a4d745151c2ea995c44d589e54fb159db2ddfdc380b317c343ede35ba88223c941db4e563a96a4a93878aef0ec7ba2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/is/firefox-48.0b9.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "2242c0e23d7ee69f5dc52203c6326caa194a3aa04a27701340334f5a9adb287ced4a5e8d42248cb43512ee3e2e4e94764b738af72b3c2fa45e20519ebff47225"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/is/firefox-48.0b9.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "ced9018f2409ff544f1f86cbdbaa516aa03bdebb9a2c96c8c6df3503e7be1677321c52710837309434548d4cbf6a6a23c5a79157462483537fba6d0aff1f3717"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/it/firefox-48.0b9.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "1fa74d050366c3175ded35f3879d14eadd81670d9abc28f4493171ab13fa87cf19667c2f40581b5029ac7391d2e21226d355d7c6d78c6f0d821867f86a67334c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/it/firefox-48.0b9.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "cc63233e9d9eeac428e999c509a7a9cb3d83a3d2b7b9ddfd8bff8841daf1e594a714f5540911616615babbc21f734295de8a5ac7f0a53dd4f62dbfab657e0133"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ja/firefox-48.0b9.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "4fef54eeabea6033078bd94d385a1fc96cd38d49eebccf2820710c5d516641e045be9a65f1ab0eab3eaf7f727adbfa98795671864b78288c04155d4516e064e3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ja/firefox-48.0b9.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "0c25eb277891702d418c62de31f6a0d7706ac783fc527070e6051456927154ad23d0bb3a085127426ba4d54017ce2a713ad95e47066fc2da0831a0a9f0ca29a9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/kk/firefox-48.0b9.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "b42f1a2115efc622c1efbe62de3b275ce01ec43f3ebe68f6cb591b12af4232a0c5262cee6ea61648f9fec2da8702b5f24f6df187afce020f333c519d32da18af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/kk/firefox-48.0b9.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "2bba17f65a5b7d412c1e357886bce2fb4e017a5694f69930a7835429825dba86659e1caa31ab0ade9ae34dab0a507102d485c5fa44d9fd156d4ce4e3d4453976"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/km/firefox-48.0b9.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "36cdc77425f5b9d0546ccbe24027676fbb98616b226ecde4e610d9958a11c4645fd2741213820bf145bf258a0f32f65c81bf6ba365484949da673ca3a79a1b5e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/km/firefox-48.0b9.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "0ed475a08d580bb864fb1d8ba74e6ce2925591c008b479016faa048a642d2246830ef1a102381e553e5309c1b3d5885ef409befde2c1ef950c2483bde3de1ee9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/kn/firefox-48.0b9.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "4961da8a5f554895a642ea22bdeb640c289385a632a6de2b02154cdd10de8f7eaa9f3979f16bc026701f1986e1fcdfe2b67c0580eb30ef4e7c32a5c7b0a89744"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/kn/firefox-48.0b9.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "63d674029a8f43e21fc4eea4278e0944141d6b0425fc92855e84fb4859085ea15ddb7e06c229e4ea6262d42a91e8f2216de45d185e9507034f636b95d116c3dd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ko/firefox-48.0b9.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "217af13c53e8e9edb43a7817a901bc51c5b013e9fd27f3aa3ec8ee46a820f23fdc558e73e5ca1e40829d0269a07f32d704f1a607d8cb36878338b8084d8463bc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ko/firefox-48.0b9.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "14c8c220ce753be62628f9a0ccc726bb2c04aa9fe8af72e412853445dd3a4e4e328ae5b641142c181df0949212805a20c381b4716b5d4ee97633707bf70baa95"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/lij/firefox-48.0b9.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "e162cf0bc0545be09b6f7c8dc237c1f757d18fc2e81640b12ebf8e8bd396f9f58f5bdba875e5472d03f7596da9a0a9670f35a570241cbcbbe8ff8071861c6fce"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/lij/firefox-48.0b9.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "c041bc122decc4ab427457a4c0e2807694d7cc9e44c4414e75f9b3cb09068167de0a98b1a1a876e4a36a1edc5a1efb9fc416b2676ecd25a80c0361833dcfdce2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/lt/firefox-48.0b9.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "7d69e16806b8fc2eed1e9ef9e270693f4ca9beeced5f20e825ae6b65eecbee7538b9f7d29217a7c35043d221d0a4ecea3c6e0ae985431dc00c88133e7118ae83"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/lt/firefox-48.0b9.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "6e2db9841264bcdf55f6f170935c3235178d4bf287399af80c953922bce1424b6260eeee57d2a80c5d090da14ea7d9ddbf36d96e27704a57c9064119d324378f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/lv/firefox-48.0b9.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "0a56414f8c375a201ba730ec132546bf9db558b0491fa9201c977bcf8fe24d958d3f39bd845cde3d5cbe3427a8e4503663d1f63a8b49eb814757cd7b4160f5e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/lv/firefox-48.0b9.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "adf934ca0002427735e77ec583882f81a8e7a905fb20c81eb30d25e4681a5e77738d361105906a7e538f61b967ddc4e44e61627bb1670cf7ffa92a0a25b170de"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/mai/firefox-48.0b9.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "598c052561b618ee8ee16ca3d3db49e6102cfa998fef2e201d80980a2a24683347d1b335bab6f4914d262530e1d3aa0a31d06994b211a3d1fc92cda9b38485b5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/mai/firefox-48.0b9.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "9aeb08929ec09da09d375c4fbe757d1e7d7fade2b9307fb27c880d8a3dfe1e73346a2128904ce5ec2824bb57c3bc9c533fcb445bbc4b0d5f7aec7f5bdd8beeb9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/mk/firefox-48.0b9.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "75d8b7534adddcdb3354a36848023c2015ff9701c8a4abecea5d8699c77464d27e4a5411b38fcfc1590443d991044637f9c37c38d9745756e18e93e3a9df9630"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/mk/firefox-48.0b9.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "10a82086b5e54b70d1110dba1be3dc98ec64ee4fd32ff9c73abf743ccabce37d586f63b46fbcf11913126f62be3c4caff6593ea276665632ada512e9119bae8e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ml/firefox-48.0b9.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "f32e2a3e4c2c233840f6235c71fe70fad5afd0455cf3729cef3888fe3bc54a6d73d5fe32fb0363b693a39ba414be02d5107f62920f147712e36f48a6a339a96c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ml/firefox-48.0b9.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "c21851d483a9dff5ca1a5831c3438a9d6e25828e6bb6af415dc9943d665f0752536672a9bdf6d5a0d8bc9ece1193279aec2401d5fa982210aadc5cd4891a1093"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/mr/firefox-48.0b9.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "42158c09eb37ec16ea1aadfe06c44a62eaa7be1bbaee5e7b13ff72aaf60e674a4b27d03054c6a7748b06cf02522fe54eef92e6ea016ca59ac0c6caba33ab7c99"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/mr/firefox-48.0b9.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "00a6455c238f72f5112c8e2570e53c54c6b20c1dd12fef9613b700fe6ea9e0017ef97f88f028509575960ab28e485c2ea79cd06ebf03a7d262709892e1b0ee9b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ms/firefox-48.0b9.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "6a7c0e93a11417413099b557057ffcb495b8dd97aad0c0d95320c59508258721676230f0e10114aa59084c3e26eb48470931d0ce31c7697c17f3eab5480b6f93"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ms/firefox-48.0b9.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "6428319d01d1b31b84f6ecfb8ab3ade9f2ef5ce56fdcb4da1a6adfa89422c9c83099aab95b4884d1c336a88f429e05586f590e83da9d1bb07b5c7d1e4e81d4f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/nb-NO/firefox-48.0b9.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "b1edfc9d90f018b87e5d3ad6daae2d5aec0276f086020c7dbf199cfa120c1f6216627ca72c98a307d98fe82a0e4b57a703b0cdf7473604b09918b4dd3548a795"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/nb-NO/firefox-48.0b9.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "8d17660df93e03c056cb96aec3a64528b3613c7173fb19957916d1f4271cb13defa59f4771fe0547ad72a5fbca5bcfa68855fb220e5f560ce6d185ff074156d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/nl/firefox-48.0b9.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "2d881068bf9e8eace11e3d57c41ba99fc81f797e13a2ec05cca6acf884369a4bfd140027de2f7c79c6b7245e133c5261bb8e11f522debbd946154d0414b3226b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/nl/firefox-48.0b9.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "1ee190a679c5575ccfc6d5decbe5bf2da55769c766d70400f79d94d4423dc594830f08b456a8a398e3e7a1cdd507dcc224c1b255fab56b4b4889c0f283bf0ff5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/nn-NO/firefox-48.0b9.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "094533a700c763afc66cf417b0b09f8c2666143592afd0fabb138c03e95c94da4746b03c80d1b473fca94f24f57105239399a994cde961ded535cc5787bdc7d7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/nn-NO/firefox-48.0b9.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "98ab06a9210bfe63c0a7e90310286afcb24ce46b8096966a2adff608e214b95563421372a383814163dadaa4c9fe318a1c9f2f18537dcc37b1fc1eded227df6d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/or/firefox-48.0b9.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "6139c760019bd9932a5baebf599090540e4ccaf0e18b3faaec8eec27f8f5b6a2199c4a554c0d6d5c92ddba4c9fe24addba47becf69b296cce186be3c2ba3a5c5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/or/firefox-48.0b9.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "503da59dbc9c7cbf5fb85198ea2cebe3a9d3ed5b6d0edeb2bc0e0a4705397816840f40d235ac63bc95e34c5aad7daf66ce31a3f6b43a8cee9720245269520bfa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/pa-IN/firefox-48.0b9.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "af70115ad3fc5798f7add37bf342a291cf263afbedd1b57aaa68dddcd1d707953dde2e10c71b38f46c942e629e3edf8a2e55f502d1d98bb92a693cbc85e3ba73"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/pa-IN/firefox-48.0b9.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "2f11b9bb6315843815beace2de30f5d054575806e98021144f3a622362fb484a0078cc279e1fd13a1b2b6fe9070c878eb718680a95ff9e4e5a5bac3ad31fc949"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/pl/firefox-48.0b9.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "7fc676238c0a484e71fe165921bb2edff5f5f98d87a3a02111e4c9f4c103ea8b0c4454fc39d2be381410beec7e6bfbcf02eecad8555f61d424187dbb7e8117f2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/pl/firefox-48.0b9.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "cd27e4c532324f35756c3274ecfdbc47d42ff7a456e81363df4a96ee4067dcb0ef6dc321a884f9a19e0b0f25101e2e1caeeb62280ad1305c0eed1f8308997bba"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/pt-BR/firefox-48.0b9.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "70123bf8edd0ec031eac0f150bd8d7c12e52d5255841c074c8ace5d0062fe1e1beb336e27815b3321a93f2be2c7eb8c5b95b653781922562b625d37921f986df"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/pt-BR/firefox-48.0b9.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "28c864f45774f4e56558e691220a03cbdbae07ad6c4cb12df51938a0e394b0aca91d64ea1d3b5efdf361c54510e4a14033c3c9b72f94315307b606516a9da5f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/pt-PT/firefox-48.0b9.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "b56bcf6c74c3d629c89bcd138e948fc768bccd8844f664100156399ed89c2715e75edfda1427f9205ba44bf7ae12d46308f6bd9bdd661aa27a2791a50860afc4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/pt-PT/firefox-48.0b9.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "c71179e281f660787df540c9a894591ac22303a7cf600c649e96d8748753f1c8caf7a016c91a822b867ed5ff7467aa182583fd45d0e6445dd07eab58fa0799d7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/rm/firefox-48.0b9.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "51693c87e2961b69db233d543c08b6c3fb02c04e7cfe70ecdc6e060fd1a32625e197db2042b0b063b0f5eb465191f87a41b5602424c44ef4dcd3131423ee3152"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/rm/firefox-48.0b9.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "48241427ee3d820da6a42b33660184f56ae1b9bce2d70515b26c8310503563c7a6fc7de3a15be3a366bfe697696ba9dfb19e08fdd31bfbda50abc42c248e1a70"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ro/firefox-48.0b9.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "f458cda0c659c8ce5af848e7a64942d89b9d844b5d8ad0d79d44decc0a537bd8893055bf9868e3c65e4b53ca4f01c0a90ed449f19726a9e1314cf4726f9a1bf9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ro/firefox-48.0b9.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "91656c40f1aeaaa1fd93abda711c4ef748a3bb7a357f7a4f469bcc3bd8e2a1ba52546beb51d894e0c167f168fb70d1b5dc382773c73c094221e3042bc9857bfa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ru/firefox-48.0b9.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "f384eadacf3cce571e594a02fa7af39f64889f5b8d02846162c6d359052ee0f9071e6df600800a5fd3f3fbed622fd34358dbbbc7e05357ecc12369bedfe8196a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ru/firefox-48.0b9.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "de52b810d65d048065a83ea430d93d75c4e21667d197aeadae9e036f75d16c9a25af5c4b2c2fd9bc9b3a7968355e9f6640e19996f6d3fc42aa2e1bc4ebb53afd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/si/firefox-48.0b9.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "a14807d1077ba5ee3ee258220768094f49002bf624e235e66943f2b7bd1f0eb61f84e3f540d0403276d664f0aadfb75d1cb433a1b364139c46cb48d6cfff75a2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/si/firefox-48.0b9.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "0d6161efd6fdf1837892b71ebe639d13751ebd880b06211a40076e98e9256f30099b9071611c25aed2c36fa255af7756e39a90d60103e22c3e2572dc3bd870a7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/sk/firefox-48.0b9.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "d5f7b76b75afedd12cf1bcd52df49418f17e518dbde52c0b822f8e7e7aca55838f85b924433b8083876588209eb1ae8d148585d60408eb8ac06b3be38ea4faa7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/sk/firefox-48.0b9.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "123bd1962ad26df9c72075ee360d715c5ba87bbf715f0f35841d2466e14a93fede982a33bf43c6593f5356fe2de1d11ae4ffb0d05d4506856bb9e3933cb33a9d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/sl/firefox-48.0b9.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "343ebcc6207e8cf4b8e46df9371f9ba6b91f6d79a5fae675cefa5a80fca3d62e06557db6d0126aa68479450365dc1084327947fc061efc41b504d329a6d7ee78"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/sl/firefox-48.0b9.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "3eb40d1c17d96bfb24d02dce3195107abd37673675bc04eeae71d7e8efb4e3ab70ba5ad466e890bd82d55e45cb34edb407e03676d03dd27f29c219666e6307ea"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/son/firefox-48.0b9.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "926bff8d0899b2720677c072bb24c7622eed59d548084f2863b844afd8244cf83753268f712aa2fb6cff360448e9ce4da4974f7f38417fd48ff0d3e48629db08"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/son/firefox-48.0b9.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "0fbe6e0edf8bbf3039b0ea472b25471f41446cc0c65b1455470d8afbc2c005f3113a82a82782a013f6c6dab2888c0be260ba52a516bfc2045ce4e7307faa16dd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/sq/firefox-48.0b9.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "7886982f83d57172c9c982f4dd74ba925a04d9506ad0690dadcd8932fceccaab44d20fdbcb571164108281099be051becfdbfbf76f1e52798af7a0fb51c54578"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/sq/firefox-48.0b9.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "a59386e187da12e21ab1b378b59429e6504ea1c7047d60bcf9fce7ef3de578c92fc8cc791f67c9b6e4577dfa0547da93344899f5ed9c88049437604abd7c70d8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/sr/firefox-48.0b9.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "1e0d31851ddb5fc67aca4aeb30b368e5e1f7818d265f279b033f8fc0fc891d0caee1badaceb3bcc868cfc58ece068efba92c751b3a94d3968f84cf060ea18b4a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/sr/firefox-48.0b9.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "ffa9176877aea7fe0672a8a5b2fc8f182206cd80d40521057502d981f80c8e2a77fa9dab595a3594774b9e6cd08fb2bb66e8416c17ee59669d0e4d8b6f73e67c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/sv-SE/firefox-48.0b9.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "15ae7f700d02a1608097b2b1d14f3e560155fb16a43eed962fb359e92525637dd2bd6992f4616640420d3db489b7fdb5e771085f6b502f8ecee55377fcd03be6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/sv-SE/firefox-48.0b9.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "b8d8f12b9b63e034197344e52145dbba0e3e9a5dc2bf53b3efa8824e3f730ebcaa2a8302c6abfad67c0fb3fa5fd1e76d93bd5be5ac2707b93ed8421fc8e45256"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/ta/firefox-48.0b9.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "34c6e9235b8c5be2e221f4a3a1e319f201df2247bc54d0e07094190d4b80ad064ccd9b426420ee5b5014ac1fd6d7a5180d39c331bd5d561de942cd00536a57de"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/ta/firefox-48.0b9.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "2f41636896e79b9d4ec9d772f27f817b7fac7c291335ed1338d6520378be7553698225692883c186f63faf471a94dc9fee4c07a93284dc2df5dbc26655679f73"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/te/firefox-48.0b9.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "4ee88c91de2438ea362ae50afe1d8f290bb5cea2103af31d51441385c4c2c78e6ed2ae444b121038c7146eca7efb0acdbb8181f099f9638a25bb91f39b20ca3a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/te/firefox-48.0b9.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "c34b58adf0d89093782fc5e9272c298fee026e0f5efd172766f47105ed19617e483cbc9af63d73dc2edeb0025c95db0a5dfb5f31343717b73a431d0bd5a5a20a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/th/firefox-48.0b9.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "887d830f0afe21759212a8d112d2b4da48613488c3e69dec1d526eacc067a23ce0d58245151b89176c2a1d869550cc5e5e6598f3270e43ca4030d8caed583e14"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/th/firefox-48.0b9.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "a4113c7f87e6e7f0491d12b7cf65d402c75a5b4dfe9bdedbc69a60f4456f825b60e4170ed49110a42720a57814375c33a14845a653d9f71f51cf417334c2233e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/tr/firefox-48.0b9.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "33620a2a49f9cdc39f591c3aa75ad5688437938b1fa31084d74d2ccbfd2cd502e788ca3bd8d863e666b3028c44b1742ef9621c40051cda361b389080f3e54eb9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/tr/firefox-48.0b9.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "29b1065949adec1cd057ce242294176d23fd71249d7f727d41dfa81224d744fe0d8f1d19a60b5d8aed680f9e9b2ee2f10d2da9fb5c627aef6e00627b56b0f979"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/uk/firefox-48.0b9.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "49140602407a30ffce9d7084bf9b85f1f1c6f9e2464ff61c8ef3c7d7ee8cf23eae9492613718d78d16f56cf0f7473ddd8171526cc64ba599d1770205dacafd10"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/uk/firefox-48.0b9.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "200101a9c88cb71474ced39007050cae429f0ddc973a58ffd11b816e749ce3f5dca2f4db50d3b80068a0bd048d383c2847f7a283785d52c5df938d9e20fd76a9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/uz/firefox-48.0b9.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "37f5469824bd70cc04c7d64f48d29aead9cf4839f795df61f02f109955d299655a730064fd52a98170925ee746ffef1802bc492d474779963bc12851efb8109f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/uz/firefox-48.0b9.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "9eeacfc5b02758e79d4b47ca80357c6d8029f64e0fa117f6a73c3f1039190c3edc36ffe24b7231dbb28e5242cee419ee48ae4cd7614d6f7209473502ad4f1a79"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/vi/firefox-48.0b9.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "4b6b9f4e95caf2bf331cf2fa910ccd8ea89c4bb34afdbc9eb2d972f1efb7a7929adb6701356a70d1567fe71dd857c9b1b8076aaeea916b8a4fd025675305b8e7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/vi/firefox-48.0b9.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "635a750087f5eb9d80dd4a9410e1ae3d43deb7ec6c88b2991c74387ae0d6db568cb33db975fbb29586489b09f470b280bf4d5e921aa06a5a881aa8fab02122e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/xh/firefox-48.0b9.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "fe3e1e006c71015853e0ed9ee595d1a91be62124f7966e3202cf0bcb10942501c0428f216068d372191268b2757ef55005924d64529337f6bf64c695c2cb8ab5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/xh/firefox-48.0b9.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "e6f2276f5a41cab83352c8180aad14ac3328db21dde432e1d5ed7d18d0f98c4ddd7f733fc645d690d0c328382c64d5ee76fee17dd6e6bbbda43a717a22014303"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/zh-CN/firefox-48.0b9.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "188d418f0debdda2479b0ff2a355ec0014b04ec8695eb6e2675bc71d8c925eef6e2044024601e1de583d6512a977d5c923963a9be60290bc9928821180b371f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/zh-CN/firefox-48.0b9.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "fc7d5d18c568417d650ab282d0f09ee77a5e49cf9d6c20134a38b8388ed908e00e224be99fb757d7d885bc27ec5f01c6f4555cd5853f837d361e2501db65d723"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-i686/zh-TW/firefox-48.0b9.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "1a968c979273b21e76625988dc21b8037c405c912730fd2ebba515a13dbc1f6d3807873fbef821f5126af773b91d10b3be444739eff287dda642448e692715af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0b9/linux-x86_64/zh-TW/firefox-48.0b9.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "1b79bf4dbe43574342f8093c036ae29b2f2f4d88e1201e9fda0e190ab00e5319ae5fe830745c0b01d66deed73f04be7313ac4e3b3438afa22c75f03cde8d0fa2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ach/firefox-49.0b1.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "98736e1a7503e6550491147b418815abc1cc59e58172ca45933f24f8a3df1d2e2d614d059d1159fefd727e771489c488a369e0b1f9bb7a25c8eb75cfb4c3e2b0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ach/firefox-49.0b1.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "e8186d58d6c3847b475ac3c55f97476f393bb2ef210a4b7ec95d174d160011e0b4d0798de8bd33ebd30c342506f713a71509eba06fab03dc6b0fee7524f19dcc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/af/firefox-49.0b1.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "0732de2c643ec1ac17bfb3b7629207cfde48f4a135b7dafd6a5efbac3231382fdc5f19048cb76f3da3bca255bf9816956e301e26cf28390ea9cccada67d920cc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/af/firefox-49.0b1.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "ea5c72eb31b41714d57385040cd2d80f273b4177a576685ee752b2e92f90f8d9b5439e1f52dfc9941143bf91248be72aa670d134ba523cca856d175960bb3f40"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/an/firefox-49.0b1.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "36e3b5c374522efe6dfbb3b072ed2a75b3bcda8934c4763468643999fd14bcf043a2e4a0a5c62ada2f2d903a1f593e06976354a620733523ff806f6b8fecf1ce"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/an/firefox-49.0b1.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "398134c3133b75f027743ded416f3063d74ef777cc854992cd39aabb6397b00fff8dcf5116dabdfccee6ab1335bc296ccd991b3a4d72707735880d94b8f81af7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ar/firefox-49.0b1.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "395b9abf6a6f01f448d7671908c2d7903604592490109793f3e36ba83375685aa43007bec07d3f28997416d8aa02df2597ce3392b7c1e83e1af4911203e2baaf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ar/firefox-49.0b1.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "731d61dbc03548c77aade87c413f91d727cc8a87e15c202b73dece2a17c2bab887eb3912077aea670d9a928e930c4550ef2150442be8894e59b082c6f3d4b479"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/as/firefox-49.0b1.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "7f2d08dbeae79e7f903ed182c9eeb436f227ed9ff9db17d93f2c34efc3353788a0b499e23f2fb3eb892c9ee1592493cd8f960a6092f83b19de9419c7bd4ec3e1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/as/firefox-49.0b1.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "311e413592438b610b8402eb00ed19b87caaa02522e8c40fff454d6d3fd8e0b7d5cf9223a6fc52d7c5f0be23baebb87639c2c64630e5a1a966d341b679bc1d03"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ast/firefox-49.0b1.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "a782df4a337fe18a7bb85c2a252444154100a597253d98d25c268c69a430045e4722a888f3d5fa51926de3571dd1941c117cd34537ff866c5d34279f3861e0e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ast/firefox-49.0b1.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "87a7759ecd002f994ebf7334b9c8c4c042ed6b84bc33485c791c5ba49bb7477ec801531a0723820aa181770c3d404eb7a0f7fb91818c38044ca9e3a130962899"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/az/firefox-49.0b1.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "d3822be0aebbbaf200e243c3e0ed0564cf6b5a9f14825f477767f98b796afedde9c6018f3b34c0263553fe190516ff0020e591ddc8ed688cab9454b7760cf131"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/az/firefox-49.0b1.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "2a70bffe3da3d3a9a61e649badc3a64f3110950cfc0b3cbb42c6f799465d928ec12c9efd1e7ee6ea978c865e2d3fe05d732a870654bf629f083f15357b360ccd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/be/firefox-49.0b1.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "edc39ed32b7d990074ae3a5099cc4a0caf23190364eb87d1218a61a25b66777fa02b5df6f20c96c5ea67798a999f0cba6873d5d23b583bcd3d6ee90a7c978847"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/be/firefox-49.0b1.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "d0558a2e751d561e2f316a7bd57c3a8d92e8d5cb56e5eb28d44b5d40303550afef2bb9b69dfb0b80d1ef706a33717017eb077d3b2bca9277294cc76656a6131b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/bg/firefox-49.0b1.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "3524f48e8fb8b0c98c8df55d3e2934240eb414160d0e17d6f9beccb6b0540b9c9b554757e99dc99b16e685779c5d3395ff9bdb5c3a6c9faa2e88e099986aa4df"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/bg/firefox-49.0b1.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "f44089b4c10a0791d98e75580c1316f400c7fadd48050d9f3a352064005b3b4205db7ef54bb1ab7bf6518f7bdb3be5f853f490cc0247f3f7a4ee7d6c50cbd20b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/bn-BD/firefox-49.0b1.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "39b42d189a8ba7508e98045e1d94a1c79f8544cf4b2e2cc5187356d7f9ab6deef012c6e5d2220b2ce2b5a58f565289c5aeaee6ddcf0ab7b0cfcf18a902b95715"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/bn-BD/firefox-49.0b1.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "210c40e18347440077ddd0ffd25426fe583547a2a9bfbecf3e8ba3d0159d7f7317c06f893731512cc0666af488f32ed5808c8e2aabc921367f538695ba49fde9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/bn-IN/firefox-49.0b1.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "dadbab0c70f22ec20a253d73081d3ccecbe148c6b0e854b85e7c079f4979f746c79fd5febd916c167cedd78ef04f5e0b2d2c925999424bb77118d251287311a6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/bn-IN/firefox-49.0b1.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "8a2b9fe150579e487063f68373157ba087c571f53a98dbc9251deee92ebc58d587e38be2bc0412ed02cd8ccd485d91bc2fe5d70c223e7fe6edd996d9bfb89bfe"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/br/firefox-49.0b1.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "7a3a3c5015f407a1b7ecbf35763ea091cdcd3652c7916fe81d39336521fd6ab908a549bec8d39e089d0161fb6b37894b893058b523f78bb76e75dff21852fd13"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/br/firefox-49.0b1.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "9a7b5efd1f8d35f8cacaeefcb446028745bd999765fb04e60403b710cc9e5be14d172b6f0c2b08f1093083b6c4d94f22117f2b717473f5cd2bdc43ecaaec50a4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/bs/firefox-49.0b1.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "4671c1ed650df67ecdf152ae1503979f52b001660e167ea4ca1c47e1152e1450e2a5eac306b302c55b28e686c8535f6d612faa4c53b81cc5297e765c1bdd0afc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/bs/firefox-49.0b1.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "a2e4417c3987c8ab15ef8afd4fa130f6c45550c57a4605ffa301dc7d4ff49620c768d83e9de00f509dbb0cfd94530f4cb102cdb1f2a01eba091982fbfcd82d36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ca/firefox-49.0b1.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "076f1deebdec83f76b44c41820253a7659b6702a1b1ef7139419a50411f2f752e764f96f84be24d84be388a3a3083656f967ee53ae1c640651dcac46b6dcd089"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ca/firefox-49.0b1.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "6a34ba7edb264cf974fa23650c73bcdca3e9344dfa82f3adf56c04a73439af5a093789e38406e2ec94c97635883eda2a232fe33a1746d08ff148022a1bb61fd1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/cak/firefox-49.0b1.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "0657e07ceb245e435dcb3c2e36e71054bf369c088e42ad0b7448c05c5d6a666ba5505da01d2e232388794ce5ae3be8dd1ce30ab0926dc9948d2a1291948f9b5f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/cak/firefox-49.0b1.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "4e95bff1e40614451baad90fb3ef76e27f2ee5d1d2ede400c091f46421b6b17a0c91bad04a45208219ef7513046749b9a42a147cdf7ba52a88dd515f5dc27cec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/cs/firefox-49.0b1.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "73264dd3b43e4ea4028bf622a2062797e4a28118ba597df19affa7fe38e630aac4a960fde8eb6be4a1e64d91b3b01e986d93684819c54e66c506153b19a06550"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/cs/firefox-49.0b1.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "a94a811ede59154c98e87c47bedf4a5faae44cbf2c87bd7346476c92977abcdb96b79cfe379a04a459daa576170849a5c2c779a14948e51e046fc6fcf0ba4571"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/cy/firefox-49.0b1.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "cc45c49758e3542ce704f941fda143ec531c9c0b9b0b28eade737e792afe7bad0db708a61510fadcede7af64622b7a97cb1f2c8eae7385ab447dc4a4198c07d4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/cy/firefox-49.0b1.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "07999f0049f305e75ec3fd1102673576e685e42b894db7ac8eef4d4dd1b4d2599a47b8f1ac034c728a5f3bb433ed96550907dd2f9e63a3fbd0aa43b65f2ca744"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/da/firefox-49.0b1.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "115840053470a057de9afeecc8a74113ff97c06293ce52995ef2bb473217d7b057329a4bb239bd21799d894e6a11081e7afe5191cc1ffb8887481fd08911f333"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/da/firefox-49.0b1.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "358f79e56cab4260557fdd999a70d025c6b2f8e7ea01a5767500e4b1906a57994592c633b7e10b9aa54a7a2dfd98f86bb3a8f8b09c364d8675bad5d74cedfd2c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/de/firefox-49.0b1.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "5f80f4e32a71560188a21bb6b457b66a692f5eb32c5b45e04c40770b83689ead6bc07ec4a110f3855f5fe0e034f7b64ef8b5fe80526c708077664b179def71f6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/de/firefox-49.0b1.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "01c71572560665dafa87ae8b327ee356b18b5ef08df093792c07b3858c42f2f9f3a89a2752fee35503785cf10130ca22fb21db83ce48fb902876eb9780b959cf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/dsb/firefox-49.0b1.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "11385bdd26fd0eb9eb505141af2033a9e3b85f0d748959938eb51b9d7bb9e4c801ecf19e351957b9f8549d487086968b1f86e19534b09997b04642ced3f708d5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/dsb/firefox-49.0b1.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "4daa34474c395c52c42c12f03125db8266e83ac1d8e5b098f0371cab7445b767abfb965668eafff466857ac99b6f4c00f4238d00b2f3915f228a25277b54fc2d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/el/firefox-49.0b1.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "f77b62b8acabbd5afca19572be983c2f81200ff2bccabfe45b6c3d41c32de90cb4fac56db7be01fcf6a8dd69a72056e903f62d2af08b7ef0a06d18588c685b8e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/el/firefox-49.0b1.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "9a3852f3dec48d5c40c09d6c961f87fb34f7fd6423ac86c4f4fe293560769c1e5a40f0d3e307fe65cdf614fe6b7fa7b1279c59b8a514e83e121b58ca90b46d31"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/en-GB/firefox-49.0b1.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "3197dddc1f6aa65cc7bef6217175d308c29f1bc87014e651af76b490601cc202e9609d2728ba2c05203cfb93735094dc7efc2ee9f02b8544776ead8e788ac7b2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/en-GB/firefox-49.0b1.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "c1dcd26ed3b07c555793304c15644033105a72390c1307921fb215a06ddde547a34e1d027966e524878adf26a8fd3323d3d59c2914bfd20b6e7b7b4e59f54eb3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/en-US/firefox-49.0b1.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "27d8f7ca57bd1fad729e73c0fce7f33da77249f1668c4d2b546db8b0edbddff4795537250c190d59cebd83dd91a06baad9b791c7c7ffec2f4d82cfdf15bb58f8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/en-US/firefox-49.0b1.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "1e267127d21a6f7c64acd7e1a991a70b51742bdc2ae83f669a25203f710483a35b3bc7a9f226ad2efed77ef88161d345d312efba32e9b38d60d2144a1ff1810d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/en-ZA/firefox-49.0b1.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "37fc1a82999c427496fb50ab6ce47d719add8f2e00d47269d266418dc1c1cb4191675a0cef398098fa17e9ec510a40250628eb5290b270c502316b3694361f6c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/en-ZA/firefox-49.0b1.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "5ce15a1e1d9a5d3c26a2e1b2705c11fcd42acbd296231f2d25d7b130185b09ab25d0332c199d0f8e4994b30c97ea8d80e1f1ceaab8c8d8ffeaa2a2da91b32875"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/eo/firefox-49.0b1.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "bb5e5f0b07054f2cfaa047e8df129c0fede79f6e5d736014cea52bc59b8b4c5276bf3c4217b818adf2ddf11c054c8a5ddc782a9c0b529b7164bd6f1e7edb6ca4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/eo/firefox-49.0b1.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "01d363154887ebf4c008646c4d749c89f8d748d9b0f76e19de37dc097517aa67485830679406b57348a670568f9406fe14fd22e01410f3a00e102b5436779193"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/es-AR/firefox-49.0b1.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "8fa22a6ac6e2f9553bfc6fd7b0326ce327e4352b83e45d89ea0f79267073e03bba7dd1f2c2c2de40e3533cb0af97673aaa758eb0914c090078306f4b2902e361"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/es-AR/firefox-49.0b1.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "da2b44fc3bd5c7536744b1355ee9640b2d430c32c3127ce1f8eea09cf88016c0e2bd9768925abf19b49ba62c55d90c029465b03c307fbc361ad95f4c28acb419"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/es-CL/firefox-49.0b1.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "2cbc20485b5faf26a7f8978b63b8c135582569bc5d68c96b2dcd3d66864b2158479b7c5db0521ccb9c2de4eda6b4ffdea04ea480ac9b3e4609fade7f17806a6f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/es-CL/firefox-49.0b1.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "ea8bfed6bb886d23f8755b8187495ead5aa955c9fa45db1249a2f23477bf01dae4959cd4eeacffb6c3a6402d47da458c9d9fdb43243d64e19e3d66e3e1b85114"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/es-ES/firefox-49.0b1.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "ffb37896e2f7de03c26b6e182416c399b9776bb14828fd54ebb34406f25ef77bc9eb975a13b7c9c9b02bf78b496928abc059283322fb1422d63d506f40b533a5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/es-ES/firefox-49.0b1.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "635e7f1e0fe96d6e074bb1f2a4e92d98e0fb4049f7bf34f5e5547fadd00691e27efbd5acf6b79ea9e3bbb8d7b72a50f7beb64bbabfc55601645292a83384a2a2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/es-MX/firefox-49.0b1.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "f67781fcf3ff9e4dfc1ed042bbc6c8aede1a06a6f9b4f9f4c969a9df769114febcdb4bae191ccc9ac10cebe727f495307e497af721c326ad7d2bb6894fd93944"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/es-MX/firefox-49.0b1.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "42236f745af27e5ffbd1370b9d5136793d1c0ffcd1a1f8299f3a3d439e2671175524416bba6e1ecd162d9f986f89da0d3d1ffc760f2d48c5d28a99d74c467bbb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/et/firefox-49.0b1.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "d2823810c39808332c46cc39d50c552efb61d74dbc7fb59dfd5b76d1efae544b52de89cac42be4944d831691971d4d8c880ed1cffd9448b05872acf7da39b698"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/et/firefox-49.0b1.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "61fb55d812c8b487ddad136f9c908396aa02e3ec4eee3f2f3fefd883c5aaf24a0c138366326bfbebe59b7065cc6f8f99550823e46bad876db8d930251f6a4492"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/eu/firefox-49.0b1.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "5086ad7828197b129d8cd25fbbe7bf0e152b3476ea886ed8cc02290d4ab4912cd02ccdee0c02f08c73dffe6a0b34c11dceeba73cd948c03b26fea8c3bb2a84bc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/eu/firefox-49.0b1.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "b701decbbb6374ebb39522b068a36fb7c3bedff9f2b76cb655cd56addd592bf7d118c828283f52686545a6d9f603b674d8d80b35db217b5637fe2b29864e35b1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/fa/firefox-49.0b1.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "e14d7a15eb97c7b35bcdca156a86514ad8ca91d9af8978d9e9c1afeef6e71fd3f990daabd65efe424c6275944ea1922c3a313d562e710ee747b4e63d950c6578"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/fa/firefox-49.0b1.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "4a0cd3b22daae4cba54473e4b144062e93dcc995a00e4f94fb66349e52274a5504b8e91e681305999fbd0acc3691fb011cc4db5485d59a9de79f542c3fd4dc64"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ff/firefox-49.0b1.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "d199ced706d4dd7f1b21999c335c500cacb8c1e4ece153f2f169711b4b381c316d5c2654608bb6f9a035f8c318c6ec96afe217ee6480451002e8f3269b4f0a82"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ff/firefox-49.0b1.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "58bb1595a4eb0dc651ad4778674103b42621375f8f7d138ac658915a974be52c35fd3944c099ee7ff791d7441cd818b09cddfb2a1498274aaecbaba8cbbd8ba7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/fi/firefox-49.0b1.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "4796471c2c42d9f5f278615b4a29edd80df8c113f42929a97c211bd63fe905bb7861a4c42474c6f19847308c2444e5549b7844824d99e6f236bcd0e2ab44e906"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/fi/firefox-49.0b1.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "5d61a0ce98ffb8b9b3a8942b756ecaccaed33fe02513607aacf5338141beefcdcc547815d0f522da57ea1ba81dfcfb0c0e3ca6a0df237ce12501c41a157cfb51"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/fr/firefox-49.0b1.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "6d69faed2f0c72d47311b2a756cd08c1f0b3c142129fd062bce661ec90a888e1ab246a04fd10dc2ba987ee2602f43b794a1507a7f23a5c65e909c0378e2bdea6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/fr/firefox-49.0b1.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "c92b0a2d591037bfda7831767d3c3f3d324190cfb26100bfb26cb12d9281a1b3a487141e4db5112cf122cb4e236ffded74d751aef2590fe703201128a1c453ff"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/fy-NL/firefox-49.0b1.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "25cddb8ea11d5422f966c1467d225743aa5807df9131563ed272953b4fa5004c331de87629e2eb6ba1903ad9abf8f0745be966f2e29c82fa74f620f08473f638"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/fy-NL/firefox-49.0b1.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "6ea3b911dcbf66fa365b2ce6a6722ce3e412e61e9779d647fdc42d6e9571d60b3908af034658cfa42bc22432ab0a360f9eca676ef3f22b36f05008a33760b1db"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ga-IE/firefox-49.0b1.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "7d594f87fc45fd1ef00f2d62dc1c0a382eabd02745cee1901d133f853cc937a4c8915615c189ee6c5378d161fc75230a1c250c789a8c734aca7eb23bb44d45cd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ga-IE/firefox-49.0b1.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "af5a12a3cf90eeaea1f028d4c9a6985d9d8c994947b7976b1a3e8e0ec1af18bab4f8d7b5b86105eb119b1928c23abb4cb7fde737662eb06e0b8394b19573daef"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/gd/firefox-49.0b1.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "8f0e9fa58b929fe1d5640a373ec0b9a93eac336989b1cf10e1577ef8b3b57786f51a40fb0b6a2401faf192e54f7793f04ac3ebccef5dec56a48ded34cbd5cbb7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/gd/firefox-49.0b1.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "8719d4655bf8ac157a6d144ff9acbcdcc138094a3d589a4078d9786acd036adfae6216846681a8feb33f9e020129acff3756074bfe18289cca126f140c4be1a5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/gl/firefox-49.0b1.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "e198a3becf663600184ee46f5d7043d5349abf10e2e951abfef7782449c142755fa0a37defaadecd674fb92589c24c3d49b45fadcd75ccfb81dea5ddd42b766e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/gl/firefox-49.0b1.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "e37ed350a7cdd5801631ddc934874016b38e4596b1d397d28a9735a977ceee80a70f0b382c186a88bef39c3c747f9825805a2c8143e0fb7b7be574c07301b77d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/gn/firefox-49.0b1.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "24b41e132f5aac62884d6b5703a8c3be679d6f8201a3abd3ed966cfe349055102bf099cec81f01cd86b40499c597adfbcbae2ca17bc6767c18aa9c0f1c317fb5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/gn/firefox-49.0b1.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "27c62ad953946a1c40b7b7393cc249a9fc2047c6a251c4d27c5a1a9ae8e8361a14c3fa934f6669f0e7a99b27573fac6c5e151ae9c590bb58327ab503f4482ba5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/gu-IN/firefox-49.0b1.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "aea376e23c7522fdd3c0c82f39455b8bbe67ce7008e1e1d9de575f98776fdf3bfa06bab3ba0da81862c0a7242ab9cd2ab1f873a34df084a88ec82ec45c088611"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/gu-IN/firefox-49.0b1.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "4dbb401a0f92e02ee8822379a6313a9e7822d1155d064199272dd2be921d9dc7849439b04be3f25043fe37f43a3dee3e7b21831eabd1c555d5292694975987ae"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/he/firefox-49.0b1.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "97888c66cec9bfd111e76fc22440dda604c643396679abad421223b10688763a5d0e64fec46dd94084f30d819a5a12df4fd78434c4b03290fa745b60281b39eb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/he/firefox-49.0b1.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "d46a2aec65b32e9b92a11230465ee6e2f83cef5a5b95057710f0ebdb3581810a1cbff09563f9ad3503a2c7217947369fdd80e0217318a40feed7bfd01fdbbcff"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/hi-IN/firefox-49.0b1.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "48c3142a39ed9d9173d1c25337d65367f1430804b13d0c9595ac2546c7c22a177a4d528f37d773ddff3379bc7bdba5e69002f2a37c837aa95a29d4e52774e65b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/hi-IN/firefox-49.0b1.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "cc3c1520f6ec453bd7e347791f8ab3da06a3aeaccb44cfe5491a4fcfdf69ed7baef66c2d31a9ebad9d2538b6ff8f1dd27b20a8f42665a1c6ee57c5f60094ef71"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/hr/firefox-49.0b1.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "86dce4d32a3f01493ce83379cb20bb2e267dbeb770b9631914d3b9e722cdb9ae5a0a974b323ee2ed17fb97bd232baaaea1e53ea6f29b11253046656f98219cde"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/hr/firefox-49.0b1.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "446c11ab6645e17465e24fe1d4dbf27175b27e4808bc66084bcf8a1760883f6a36a5992be18ab26115f75bf0dce780c42fcabb1af3d2009f4ff7015bbe0612fd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/hsb/firefox-49.0b1.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "8eae4fae6e4a7d5acb9ad2b83c4f7b4d2c7edd75a4d320b6665d803d44fc448214ac71b2c86c9b16e6450f7b5238db8633a917f201b5d45f2cc03a31df2ac9d7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/hsb/firefox-49.0b1.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "c937552d45b948fde0854ab6ec27f77aebf7fa13eb6ff5fbcc74e86309581fe6ec799580fca7e131c940d218d09f70e4e49dc5348ec99e4d5ae6a0c63c9a6f06"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/hu/firefox-49.0b1.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "4c38f40861411365e4a67bef548252328024438fc3a39260708a505a625ae9fc2912bd537a83bbe4125a027b50916daceae369a68d0ea7ba309b8595f8864fd8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/hu/firefox-49.0b1.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "fa298f7b4cd8fa50767f8b9a2bea0bd10e898a9e3042a0e09785ac74559b05877dbbc663ddb185146062fb1b3018a06f7e948fc33711726e43d5f33df1b3aef4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/hy-AM/firefox-49.0b1.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "9e2838645094c6f8703857b674916517a47328aedead3e10dd3801abfe94971a648d792cbc1abfcfc7e39629aa7936d74cb711b53daf9f7198594e7b82c063ec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/hy-AM/firefox-49.0b1.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "a84c9f9f20e19d3820b632f3ba4c9c479066459d293a57b5ff8fd4dae1d1451f812b0a6a71e72559d3ae0596a4ccb5fd09c0056a2726ac3a0c1cf083595adceb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/id/firefox-49.0b1.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "dc84f03e90ca309805c85f45f8e3a54c92e80237980b488abcac0eee1083237a51f30847b84adc3b6051b6d9c9075799c295996d5a912b7ebfb290911006b8c7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/id/firefox-49.0b1.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "e3d9e20347ffdce67d5bf5c720c93330b6a19e9733eab79f07820b50cc4ccd39a7f0736b0355f15e5bd59a8de24a0e9105bedb9d8da1cef125ea88cd1e6865c0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/is/firefox-49.0b1.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "5b4966046dae0bb27a9fde5850fe291820b19c5e41fef4f010faa4d2d040ffcccb487d7f7647d0286e8e4e7fd27b50a12047d6fc95dc70dc34e7e1da4bce6b37"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/is/firefox-49.0b1.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "7b30d841c840af2c9b55173ac31ce5880a8b01daefd7871a4519107d276660af072c097479ae92b5b83379cd36a7c68ecf2d781d16b75d5eb38648aef6d89288"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/it/firefox-49.0b1.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "920e34f7db5452fad20303296b49f7d3dc7bc780735ef881c4c2cb42f2393d3be319adacbda74cfa965283681a01260dbe2298244fba5e541b807f7faffdf285"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/it/firefox-49.0b1.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "3af89ab3f92d771fa82c58fc5ebdaa9ad11d7f89b57357e98ecadcd57bcadfe66101d09b187daec1c64dff808172eac5a608239be6c991e2a725ea9421e4b8e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ja/firefox-49.0b1.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "e0239291135a98bce718d86831a0aaf3486c0e1ff54c98e65e970d1824786624e76ae73572b85f009b413bbe8c61aff41972629819812eb36918d4f2e864a274"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ja/firefox-49.0b1.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "998635a41eb45b8329f70837d0096cc69c6c7983ec48a208185fb0f3ee56c607c68178ac6f8c02de34c62e5c7ab38c1829b445dfed80f7794b7ef4fcd9ddc4aa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/kk/firefox-49.0b1.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "aee3c991acefbf1e257882bbd34eaee45415eecfb3fee2fa47a1d70cc5b6780b0894165a4c25609d595e4759d56ff0767b42f5b1d9174b4c1daa3e967871b66d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/kk/firefox-49.0b1.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "e2170378be3b442bd97066d740d458e82d282cbcdcac555d425d16082ca22c766832a8602071135cf9802eb97b0c6f7f414fe076ddb976d84a4ddb1f1ea23bcc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/km/firefox-49.0b1.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "71e8ebcec8758c4fcd6056530b26c2fed1512f36746d431660eb603838c22e7c9c86a560ba36bd18e3df783531e608c67daceb50ea1758671c489ce91e214690"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/km/firefox-49.0b1.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "ed54aa4da9b6b2692c7d275d11ea53a85bd4ad131ecd644ec37acd3efbd51a25358c6b5720227e5cffb291d018c0890d46d09b61d3782e8000012893da10d144"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/kn/firefox-49.0b1.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "678f4cfff160cfc6fd4f8e478f64ace3658c84672153c501f817a1456d7f7721d891d0186dfffa32e12bbbb46421e08e46753dc01021d3361b2e863176b32288"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/kn/firefox-49.0b1.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "ec945284725364eff8e57d2f2e8bee7d35d8c217423b21d97328c8c5c2d43575c2af30fc93c8e128131c72ca7b2ea7420b88b21ded184a6b5e242fc76731e25a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ko/firefox-49.0b1.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "07839edad66284da56ec54366fef1ef0d1a55b6e7f7d215d9f52827e080d070c07be4948df13d3b082bb5962e00d503b4916937bcf5045d9e3f9896e7c8698d1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ko/firefox-49.0b1.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "6183cd77dfef7ed41e2049f3b423942eedcc2d5a49f820226c1fa366cbb75f63954b26c7797da42a11ec63f19bfc5bf19ebe605ac0d501391f64f5f168e157a5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/lij/firefox-49.0b1.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "3e78f5ada0a37d181e4a7b5ef90ad39fcc0216783e6ef26de826c642f1aaea59cb968636b0249af9ff92b0ef32fdde051c2d6a71d4aa2e6ac35aecc062f8e222"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/lij/firefox-49.0b1.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "b8e8f635e927beaa0a12e92e025deaa2e98cf2d19dacca5ae91c21fe6c41177c8670b46b1a896f1b8b80fc60d806f1642bf787c44058077c4225a6de8902e664"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/lt/firefox-49.0b1.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "e71759b4088ab845c193271e0c48c319401362c8d2f0def8342807a972f70db6963ea405c93fb8832cae1f930503a3a54458de230d17d53cc376946782cb6e3f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/lt/firefox-49.0b1.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "616a104d2ef421c162e6688d4128995faddac35f95327fccb313e20e56c410558f39869041900ac246d2cdbf510552bdc8a006623d8c6bbbf5350b6d7bd94899"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/lv/firefox-49.0b1.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "2c413f2194c147fa4c3e21a9bdf67157fa7ea51dc7129dd8cb34e3b645600561ad9e9ebf3608cd75fc17e7d7b95cec49bb746d48c0b55fb4ea7b9ba7a359cfee"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/lv/firefox-49.0b1.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "2743486ad0860c500a6a9146a49ec6190867706a74350310ed2987b71c5503886ba2931ba066f373fd05342198f6e8bf2a491cbb4a85c0763f1a68c1a124f796"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/mai/firefox-49.0b1.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "7e5bbede973200faf58753d0de6041298f8d31937e19b9353bb83043229c8634cafc2e79129e9a8b34d1b4be451b6d3ad77e3ceb21ce8bf1a35f386ecdd64d09"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/mai/firefox-49.0b1.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "8e51758b070bbde4d7bb4cd8aee148c1e8fef2d5bf236a4801b58e8acdfa567b6df5d32c3d46ddf965a599ba79c95b0884210bc3166fb8e9408e5255fcfaf5c7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/mk/firefox-49.0b1.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "3d945094b78f360045cfe6e1ffd53ac15a070b61adafec3063a88dd7f6ad4972fa5d4cc0398aa9bf30494be4326b63c8d8340ebd25d15c231c39d9a8b9c18da4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/mk/firefox-49.0b1.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "d2e8537a64747c06b2fe05b080c0eb0af82e1f4427a396c90006d012b663c1d34273307af4995b6ff8e75de4e3727cc3f736c7a9a78e0042f2f8d018ce525582"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ml/firefox-49.0b1.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "561b7a1d3f308552ba8b2084c86d6318b901fe8a7fff3254b65b790e4909dffb355eaaa898ee352310b8633fc695c6d7feb1d13ab60bf491a0668dbb05297b7a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ml/firefox-49.0b1.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "6970448bfda2c54605d052570fa3ac81cfd554611c994125247ff4927807938a80fa65405ddc14a295a38bae9a1d9fcf460b32e5ba0cdff5cc690b57cb4a8d87"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/mr/firefox-49.0b1.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "43b9022cd14ca829cc1f8546a9e13767e6f32daa3b008b6864a8cae3a8e6f99e70df0a05fdaa724e92fad38aabc5ffdbc9685795a0cbf1c914fbe3b515e80c99"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/mr/firefox-49.0b1.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "16e029ba38ba9a88d57a72d7bb3ac843916f2e15b4a288815f59109cad9bb1c70beb0716360df4977231fe91f18ba3490168a857ce94c04d85a1aa5927372571"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ms/firefox-49.0b1.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "f418c661961f6c2e6fae0a1cd5329c35b331fa64bf9aa6d186f59d7b778d5b3fd7d6d548f69ba86f5b031bade68ec118aecc4aefc9a90ebc219945ce907f31be"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ms/firefox-49.0b1.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "05630d2f74ea7f70e9dd97284b41c4d4da2d325884696f58b1f88b3e29c4d5bcfa1ba7cc5f3aa412c852ac61f406fec29e0d3fea7820759d87f022811e6c5b0f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/nb-NO/firefox-49.0b1.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "81127ce66c7f7da82e6059abaf002b79225bea3e69558636d5aaccba0c9df97adcc8c041b9239ec8763e28040807151b2ea01c795f4df088b896b774ea2e6162"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/nb-NO/firefox-49.0b1.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "e6c13dcdef6935921f74beaad25ceb8394a1256bc3ac6a1d76f3957f067d0bf1572d1a7b8ea2da6ffeb0eff8a4b2a1d80215f5169dce3c701fcc40dece34bd3e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/nl/firefox-49.0b1.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "b97db2d48eb98be9228358a0a068ea93d21ce4a5f6d138d079461c0a7f93d3a726d141adb43f41a56e658f629366eebb7ed4a0a1594a9d265ef121faabb14d52"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/nl/firefox-49.0b1.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "acd10d50291fd833a574d049d99a567383dbb4483ecc45583dd977c3c67fabb9d450c802b8e2eb3d4eabc719f68f0db4e2a102bd716a4bf50aa02724da382f58"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/nn-NO/firefox-49.0b1.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "a07fb8c7ee065b0b7a4a3fa33e8dad026b65e42920398e6fdbf186985e46c6c55b72ecff087aace1559df286b7832a6de8215b713274234242531d7807d90180"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/nn-NO/firefox-49.0b1.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "37d17e905e92aa51d82f13e33415738cf8a5952617bec6a6e095147efca81b7196f997b47167abdd7a8d041c3308307c587a29ca3ec9f2e65e71d15b68b8bbda"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/or/firefox-49.0b1.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "85ec647821f82cc3ad99142e8e4425a00b6e0b273f137cdbff10c4e91afbdf4eb9feb7d4a2c9f80191cec918180aab0a84f96b7de1efda1fe0cdf9e1c44446eb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/or/firefox-49.0b1.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "8819b00e2fdc06fb17873c769f7c8461fa131bcb12f0fd191a08a3a6526571fe40caa7cd8f7ef8e0d8722bae84699a479105cf518897c76aee674ea8a2dddc2f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/pa-IN/firefox-49.0b1.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "70f7cdc912a6d1c5360b58ce522386ed9562aee8dffbf4a1f653871114359880df3f98629a2d4fe5556a1ba89fc5ec90a2c3da2d56ccf419f3956dfad157a3f9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/pa-IN/firefox-49.0b1.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "9b60f41e9fd92c1d22dbfa1d287081d9514e081940dd9cbe1c9b4467926d83cec9ff43caf854710ec59d805293a83ea5defab887be5a93c8eedfa959b74ba783"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/pl/firefox-49.0b1.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "80372feb8348b48627a93c5f2a5486933fe731a3fdfa2da6d71a7c75b35f585cd5b2cfa0760bb17de8fb98be1ef3dd90339a635ce25749bd27d147b316847084"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/pl/firefox-49.0b1.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "445b104cd539f088a5cecbad4a1a861096542d1a4f2c95696ec51d43d08f10fc71513cceb5a68fa179fd988abaedb20829742f108f529face6e8e442576abb54"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/pt-BR/firefox-49.0b1.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "0788d7f599c3f46dfe485ed1ded013a7d87db6aec63193887f5e6b8c3636e0b117f4b854c5b0f60ee8b9683e6d46390f365a19e499fabc2a78ac29380dd26b35"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/pt-BR/firefox-49.0b1.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "ced012e0d447aae654edde3b26422f895440d8aa0822f3a14450142f6d97c20e74d1ec068bf2cde4a81270a77ef01a23646532e55ada6dc41603b013945986cf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/pt-PT/firefox-49.0b1.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "d27ad4e240ee032cf16ecdc5588d3bdfcc81d338ef357c96194bc33d5d0d571c3826d298215b9cf058dec1cdb86d2bb41d5739ee4f49292bcc290ea4d50d2ca7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/pt-PT/firefox-49.0b1.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "e80d1df4ea210d5a3731803026c3fca5143ade3e7f994a7a7bd673a6ba8b7df8eff9784e9bfe6d3360caf5c50609835ffaab631ecb5aafe71dde8adafa91db04"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/rm/firefox-49.0b1.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "75f10944c6ab83ca1ca49d2bc05e8923830b1fa236620ceba9cbe2f874713cd49a6f0ea4968ce3ad08a5196746dbe3c48a3b51eb0f6d8d310715c6636d17d1f1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/rm/firefox-49.0b1.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "35df8ad315c60342119605cbad7fc1614002750ba6745d35d25653eaad6eedd7b039271b2900f712ec5a1c03425a902f5009e76b8c42bb074d5f64d6f6ea7477"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ro/firefox-49.0b1.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "8c31aa2df6cf1e1006691152e74aaf4b580a3b15d141444eab1cd4f3adc1066e7ac9c8196c8cd87902d590cf605bdf449d71fcb34b132a9221b101e0c16efe8d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ro/firefox-49.0b1.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "ff6d5a5bc127841a1e92eb6bc22d157a57d7f48e4bc95b68907fee50683b20a0dcfd9e5a567f013a6c72311b9441231e986c7659fa60b894ea34d265786a857e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ru/firefox-49.0b1.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "e8e7a794a3dde3b9fbe82c367d44134979cc45ad115fbc82bc8b9c8c438a857abe2e4962f50fa69ac7c22772ba3eb21c464bb800bef9eee9f2b33636f43261d2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ru/firefox-49.0b1.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "c653182b26d643d32e0983cf546fe8f0e5a96b7f174c52e8a9025fc56f17ce6ae12b1362abe9b408cb9970b15fcacad1747b41be86bd2475a3e3c45665f88355"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/si/firefox-49.0b1.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "4e4ab25fc8048b4bd9129a554b465ced3ff773d9a7eed9715c71ab92852573712c58667971a1dec556917603c493872577b003168821350ceaa3dc3dd9e2211c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/si/firefox-49.0b1.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "a8a9dad2f7563b686012a002b8fedac3b0a68f73986db717b901e832c57d1e4b2304b47aabcc17f5e453de3467caf8aabf9635e6db7772ef340fa38fed29eb0d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/sk/firefox-49.0b1.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "2e2f936448e58f8b3b46119e06b2ab5f1c181536939127de0a76931ac992f28ea307227d5c61aa8b440907aefaeb95cdf81f9d0184c78234f82f6d965c045c98"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/sk/firefox-49.0b1.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "14d5960a06fb7135bbe78ea7123a7c151c4494898ad6ea1a5386f0532f0a5ec35ef58e3fcb82381afdf47ca1c0e6954d0903232d1ee06d9c2a606e706d22e82e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/sl/firefox-49.0b1.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "04f2f408835a9bdddd4a4c256d9a0040171760f5bce1b7d5e9c3a4ce2c74682c4016ee93f8da193280c7fd3d47ef839d67e0c480d5abd8c2235e61b9c039453d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/sl/firefox-49.0b1.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "631c9305f259aab364c71550ad14a0cfc6edc24a43eac08345e4331cfd4192faf710f077f5b2a5fad169b15098725c996587b96261dc18b96bc18f2a63c62e34"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/son/firefox-49.0b1.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "b8605cc6851440a615cb8a29d6baadb90fc783270253c25992299b1ced630094c891d41a49a9802e47aa2f9e1656875825dabb31450d7765658e5fd4f3815b10"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/son/firefox-49.0b1.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "c17946e4d664eefbeed3a3e3430b4c5b9ffcb69628344568b354092fb72142e7da107b1a88d1af89caa7ae63a0cb76814662fdffc9e179213df4e10a3290596b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/sq/firefox-49.0b1.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "ecab80a09b8c2eb75f38c14c169ee88f78266973d21da9295d5cdbeb329a43e3978feca7bada4ee049b24cb914dcd2a4ebaa95f42ed6966cf614c55a229862a2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/sq/firefox-49.0b1.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "5931bc9ddb86a39fd0edda4cbedfa6838549201efb882eb9a3c25ea88031fe4aed971ef327d6c356c99a0610a19e99a6ec49e755888b00882c6039f2c0e4cfc5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/sr/firefox-49.0b1.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "57895b4d8a0319d25288661b145d0aa59afbbd36edd8fbdf777d95f48fffa53d3dea546f465ce2070b801bcf751b03182711e5f74ca01f72258427fd37b2f038"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/sr/firefox-49.0b1.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "67d96d069f43312a4c5870c2a9715e9aa5e7592b12302a773c8d6fd9f9979e63a5053d54f326d66374f216d1e69203fafef436be6b015269513f8f4a289aa796"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/sv-SE/firefox-49.0b1.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "f7b1ddace365492563a3eb985067e0c19270725a8db571b626000593b7e89130345b61199d50d41daadd499ecc6858fcb46115dac455cc62ed21460b916eaf41"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/sv-SE/firefox-49.0b1.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "7ac9fbd7b3175d82e73fe176481c3611eaf313fd006cf1191b79860f215af8847af88299fcf673d9e9a52db4a68a4ea4e95b632729c7b221f38e35926d60bc93"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/ta/firefox-49.0b1.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "05a83591aaf1d5fc15b9a0445e2d5a20798329b3842992ccd82d22e4c788bbd34cdb46b09b48cf044369742f2b6244857e7d00b68160d094fe01465b746e0493"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/ta/firefox-49.0b1.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "ec3cc0ae6d3765e9942436fadcb6208672a745df670a9e5881d243812b86023e8181f5b1b6d3ad3a2dbf8b93e80e3c8b2eee4622b511566b3ca7902b454d698c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/te/firefox-49.0b1.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "ab9a5d17a70bd8685370898ad86ca867bb9a919169ef4c8ee6dae07836f4dfa58d3dead4565462b6f12d3c39c16b50ef99919f850928de0527c55563edac66ed"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/te/firefox-49.0b1.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "e3d216ee3ab627f7f86ef192f63a63f1e20bbc22df4947f53e3d9f8902e3871b7fb797eb409f0cf966be4da5b1ae05461c0b0dab7788a6c87069f940e1cc5498"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/th/firefox-49.0b1.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "4df9b93ba7bb70fa0c7c3c4e9a88cbfd8197c6bf628d2107a2a57105307a50cb08d8fc114e456b125164668c6f48aef1f0e4b71b52eb045e6b8be792e8b8e38b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/th/firefox-49.0b1.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "51ed80166e1224db790dbdffc60d0eda618eaf67f473fb60ff0bb6a6f15d45fa8d44a31c6d4bc747752dac8fc3075371b4798040afaa594b713c331a91633724"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/tr/firefox-49.0b1.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "7db1ec390a2d4f120eff21fbaee7700d106c4fd5c1ee1216bba0c7f896e6708bbc1da4c0f1f3ef1dd6f830ed58256fce36616950df9eae3307d2bffba6c3147f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/tr/firefox-49.0b1.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "7f1295dbb8c66e22dd818e9fcc910957328dee42ffed8ad3f987b1959bf6f1c01f8f94657dcf0c2593ff747308c6fccf14fa3716fb4b189fb03b77332300823a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/uk/firefox-49.0b1.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "81b1d6cd6e5666307ea592992084f7289a5eed5a732070fd65532722f6a345cb78de868e15f3e74dc15d97cfb57f346b7e36559c5f40769391f6616c897b218c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/uk/firefox-49.0b1.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "752a9aaafe23559f2cb15e6652012803eeca5e3b584dd5515fc496d62671090272b7154f1e5f701a2cc6f848b5d2a1050966c1b9cccfab7cd16fe88d66a101c9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/uz/firefox-49.0b1.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "44b6ea23bd56ad74892f00f1abd3aaf1d0e8d748814b509f791dc0ac4d303c61cb3f5d9988c07028e9dfe88ef8130fb300c131b96fa1f1b5fb4693c8a2dc0c4f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/uz/firefox-49.0b1.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "94a7da589c758fc5766ade665f15af4704aae4e0729fe0a92235804c42a280bdedc3b0d2d23f153243765fb803d05023c1f4900367fcbf1b60ec5a9449f99226"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/vi/firefox-49.0b1.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "e1674665330ce86c9ce6379e81f71ce7e1dd58f1dcf7ce4141a681e1135262565021c0885e884065b5f3637884ef25f7611c7ababa614e0f3e561051925fb168"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/vi/firefox-49.0b1.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "74da3a781ceb5937e42f3aa8b6f2aa3481d439e67ab16e1745a9248efe96129c6962583276e06e417b7930ac65d4681f6362eef4cb916a5943f50b7ef98aa4a3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/xh/firefox-49.0b1.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "052c729f9a90bb02e60dc5d0639fb9639669aba511fbfb5cb727500892e58519f3b6231144741a163622a5bcbe855d38b530780350c5caf33d43d297769b0aa0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/xh/firefox-49.0b1.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "b0c436603ed7ab7004e84f2e0654f04c5e5f3fb7866faa7548e675e8246adb2a60528d476292be99206a3e1b6342ced48d80031c8caba11f01a1534ae17901fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/zh-CN/firefox-49.0b1.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "c591789133b5c73026d1f5131581f91c21d8c6ea402dfcfb80ff1dd5e07f7985274ef8682fc7a576421b05721df9533a14bb34ba95193178e62b6e195fae0ae6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/zh-CN/firefox-49.0b1.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "762eec0143e00d41d909f865dfef006a460a5b046b75f1132b63d76dff6380d40284a04b07415785f0bbadc457cf66f3aed1bf47e34cf5d5909fb6f8fddf58ec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-i686/zh-TW/firefox-49.0b1.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "b7eacd7854170626e9135d2bd5360b9d2073afc64ecc9f963de8b03ea550a0f6d2c4bae48268d2f9d0c09e7747dcbf8d06eaff4951cbf5953c237a8461b163df"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0b1/linux-x86_64/zh-TW/firefox-49.0b1.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "78968866d80798b3360d3860db039b4f5ab4d62618be681188799efa675ed83b84b4b266dee84ff26d27afdbb8a08f3a3bf73f3bc85289473e7e7836e4a92cab"; }
];
}

View File

@ -104,6 +104,7 @@ stdenv.mkDerivation {
nss
pango
libheimdal
libpulseaudio
libpulseaudio.dev
systemd
] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [

View File

@ -47,7 +47,6 @@ common = { pname, version, sha512 }: stdenv.mkDerivation rec {
configureFlags =
[ "--enable-application=browser"
"--disable-javaxpcom"
"--with-system-jpeg"
"--with-system-zlib"
"--with-system-bz2"
@ -64,11 +63,9 @@ common = { pname, version, sha512 }: stdenv.mkDerivation rec {
#"--enable-system-cairo"
"--enable-startup-notification"
"--enable-content-sandbox" # available since 26.0, but not much info available
"--disable-content-sandbox-reporter" # keeping disabled for now
"--disable-crashreporter"
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point
"--disable-installer"
"--disable-updater"
"--enable-jemalloc"
"--disable-gconf"
@ -135,8 +132,8 @@ in {
firefox-unwrapped = common {
pname = "firefox";
version = "47.0.1";
sha512 = "f79c53b9acf0d96917aa11e57092a4e540ce694471123ef8e616e15864195fab7b37235ebd37367e4d0cc8e594a881a30c973075cc97346ef6f88d92944c0312";
version = "48.0";
sha512 = "51bbb1954920b4d0e49e2834939748e596ed27c09a45adeea2be2cfbd32898dae41f13db17318e9699fa96c41fb50fba9966df1f88deeadc0ae3bdd679bd79c5";
};
firefox-esr-unwrapped = common {

View File

@ -15,10 +15,10 @@ buildGoPackage rec {
};
postInstall = ''
# prefix all the plugins with "terraform-"
# remove all plugins, they are part of the main binary now
for i in $bin/bin/*; do
if [[ $(basename $i) != terraform ]]; then
mv -v $i $bin/bin/terraform-$(basename $i);
rm "$i"
fi
done
'';

View File

@ -3,22 +3,21 @@
stdenv.mkDerivation rec {
name = "bro-2.4.1";
src = fetchurl {
url = "http://www.bro.org/downloads/release/${name}.tar.gz";
sha256 = "1xn8qwgnxihlr4lmg7kz2vqjk46aqgwc8878pbv30ih2lmrrdffq";
};
buildInputs = [ cmake flex bison openssl libpcap perl zlib file curl geoip
gperftools ];
buildInputs = [ cmake flex bison openssl libpcap perl zlib file curl geoip gperftools ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Powerful network analysis framework that is much different from the typical IDS you may know";
homepage = http://www.bro.org/;
license = licenses.bsd3;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; unix;
platforms = with platforms; linux;
};
}

View File

@ -4,11 +4,11 @@
, gsm, speex, portaudio, spandsp, libuuid
}:
stdenv.mkDerivation rec {
version = "0.4.19";
version = "0.4.20";
name = "baresip-${version}";
src=fetchurl {
url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
sha256 = "1ldh3sc4n19vsjfc1f3kbrin7djb1z6y1rkisc5f6zjx4bd6535v";
sha256 = "0m8afbfdc9a57cy94ny7g6jv2ndfmrvkx0lgk64i8w870958gkwb";
};
buildInputs = [zlib openssl libre librem pkgconfig
cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good

View File

@ -1,20 +1,17 @@
{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json_glib }:
let
rev = "b92a05c67e";
date = "2015-10-02";
in
stdenv.mkDerivation rec {
name = "pidgin-skypeweb-${date}-${rev}";
name = "pidgin-skypeweb-${version}";
version = "1.2.1";
src = fetchFromGitHub {
owner = "EionRobb";
repo = "skype4pidgin";
rev = "${rev}";
sha256 = "00r57w9iwx2yp68ld6f3zkhf53vsk679b42w3xxla6bqblpcxzxl";
rev = "${version}";
sha256 = "0qmqf1r9kc7r6rgzz0byyq7yf5spsl2iima0cvxafs43gn4hnc2z";
};
sourceRoot = "skype4pidgin-${rev}-src/skypeweb";
sourceRoot = "skype4pidgin-${version}-src/skypeweb";
buildInputs = [ pkgconfig pidgin json_glib ];
@ -28,7 +25,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
homepage = https://github.com/EionRobb/skype4pidgin;
description = "SkypeWeb Plugin for Pidgin";
description = "SkypeWeb plugin for Pidgin";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ jgeerds ];

View File

@ -0,0 +1,30 @@
{ stdenv, fetchgit, pkgconfig, pidgin, json_glib, glib, http-parser } :
let
version = "2016-07-11";
in
stdenv.mkDerivation rec {
name = "purple-matrix-unstable-${version}";
src = fetchgit {
url = "https://github.com/matrix-org/purple-matrix";
rev = "f9d36198a57de1cd1740a3ae11c2ad59b03b724a";
sha256 = "1mmyvc70gslniphmcpk8sfl6ylik6dnprqghx4n47gsj1sb1cy00";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ pidgin json_glib glib http-parser ];
installPhase = ''
install -Dm755 -t $out/lib/pidgin/ libmatrix.so
for size in 16 22 48; do
install -TDm644 matrix-"$size"px.png $out/pixmaps/pidgin/protocols/$size/matrix.png
done
'';
meta = {
homepage = https://github.com/matrix-org/purple-matrix;
description = "Matrix support for Pidgin / libpurple";
license = stdenv.lib.licenses.gpl2;
};
}

View File

@ -31,7 +31,7 @@ in
stdenv.mkDerivation rec {
name = "teamspeak-client-${version}";
version = "3.0.19.3";
version = "3.0.19.4";
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 "05620qqi8plxsrzj92g306a0l8wg1pd2l66vpmj71vs0f5lms6p4"
else "07b2120pa8nyvnvh48vp5vqq7xlxg6vrrx67azz9kfcdzbbarcv9";
then "f74617d2a2f5cb78e0ead345e6ee66c93e4a251355779018fd060828e212294a"
else "e11467dc1732ddc21ec0d86c2853c322af7a6b8307e3e8dfebc6b4b4d7404841";
};
# grab the plugin sdk for the desktop icon

View File

@ -16,6 +16,11 @@ stdenv.mkDerivation rec {
qt4 openssl xproto libX11 libXScrnSaver scrnsaverproto xz zlib
];
# hack: needed to fix build issues in
# http://hydra.nixos.org/build/38322959/nixlog/1
# should be an upstream issue but it's easy to fix
NIX_LDFLAGS = "-lz";
nativeBuildInputs = [ qmake4Hook ];
preConfigure = ''

View File

@ -0,0 +1,58 @@
--- a/configure
+++ b/configure
@@ -6029,53 +6029,8 @@
#AC_CHECK_HEADERS(zlib.h)
#EGG_CHECK_ZLIB
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for path to OpenSSL" >&5
-$as_echo_n "checking for path to OpenSSL... " >&6; }
-
-
-# Check whether --with-openssl was given.
-if test "${with_openssl+set}" = set; then :
- withval=$with_openssl; with_openssl_path=$withval
-else
- with_openssl_path=auto
-fi
-
-
-
-cf_openssl_basedir=""
-if test "$with_openssl_path" != "auto"; then
- cf_openssl_basedir="`echo ${with_openssl_path} | sed 's/\/$//'`"
-else
- for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/local/openssl; do
- if test -f "${dirs}/include/openssl/opensslv.h" && test -f "${dirs}/lib/libssl.so"; then
- cf_openssl_basedir="${dirs}"
- break
- fi
- done
- unset dirs
-fi
-if test ! -z "$cf_openssl_basedir"; then
- if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then
- SSL_INCLUDES="-I${cf_openssl_basedir}/include"
- SSL_LIBS="-L${cf_openssl_basedir}/lib"
- else
- cf_openssl_basedir=""
- fi
-else
- if test -f "/usr/include/openssl/opensslv.h" ; then
- cf_openssl_basedir="/usr"
- fi
-fi
-
-if test ! -z "$cf_openssl_basedir"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_openssl_basedir" >&5
-$as_echo "$cf_openssl_basedir" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
- as_fn_error 1 "OpenSSL is required." "$LINENO" 5
-fi
-unset cf_openssl_basedir
+SSL_INCLUDES="-I@openssl.dev@/include"
+SSL_LIBS="-L@openssl.out@/lib"
save_CXX="$CXX"
CXX="$CXX $SSL_INCLUDES"

View File

@ -5,18 +5,19 @@ with stdenv.lib;
mkDerivation rec {
name = "wraith-${version}";
version = "1.4.6";
version = "1.4.7";
src = fetchurl {
url = "mirror://sourceforge/wraithbotpack/wraith-v${version}.tar.gz";
sha256 = "0vb2hbjmwh040f5yhxvwcfxvgxa0q9zdy9vvddydn8zn782d7wl8";
sha256 = "0h6liac5y7im0jfm2sj18mibvib7d1l727fjs82irsjj1v9kif3j";
};
buildInputs = [ openssl ];
patches = [ ./dlopen.patch ];
patches = [ ./configure.patch ./dlopen.patch ];
postPatch = ''
substituteInPlace src/libssl.cc --subst-var-by openssl ${openssl}
substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl}
substituteInPlace configure --subst-var-by openssl.dev ${openssl.dev} \
--subst-var-by openssl.out ${openssl.out}
substituteInPlace src/libssl.cc --subst-var-by openssl ${openssl.out}
substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl.out}
'';
configureFlags = "--with-openssl=${openssl.dev}";
installPhase = ''
mkdir -p $out/bin
cp -a wraith $out/bin/wraith

View File

@ -22,9 +22,9 @@ let
lib = stdenv.lib;
langsSpaces = lib.concatStringsSep " " langs;
major = "5";
minor = "1";
patch = "3";
tweak = "2";
minor = "2";
patch = "0";
tweak = "4";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
@ -50,14 +50,14 @@ let
translations = fetchSrc {
name = "translations";
sha256 = "039gjg4295x9f3hj0bh32csp63gbfns1sj7wk5mv51szdz50a8zi";
sha256 = "0a3dnqm9k1skp7jvg354fdn84y0ylvnjzpd4v2r2mbz8vc4p3ld5";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "0fq9wqzvbs6x003ljvhwbnq7vglzcq3yylndv0kp1mj00dkyz3gm";
sha256 = "1gyakwbbsd3aykf0gsanyg6p4g4qixj1rh6qxspln70afl3kxm90";
};
};
@ -66,7 +66,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "1i077hz24kz1wmnvw9xicmm1mrr9msdxq4lg3y0hy47ar6kiqnnd";
sha256 = "1v3bbk2afq61gs3l4qvc1r6y0ylr21jzbm3wcnyq9c3bbyw43pj7";
};
# Openoffice will open libcups dynamically, so we link it directly
@ -128,6 +128,13 @@ in stdenv.mkDerivation rec {
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
# tilde expansion in path processing checks the existence of $HOME
sed -e 's@rtl::OString sSysPath("~/tmp");@& return ; @' -i sal/qa/osl/file/osl_File.cxx
# rendering-dependent: on my computer the test table actually doesn't fit…
# interesting fact: test disabled on macOS by upstream
sed -re '/DECLARE_WW8EXPORT_TEST[(]testTableKeep, "tdf91083.odt"[)]/,+5d' -i ./sw/qa/extras/ww8export/ww8export.cxx
# Segfault on DB access — maybe temporarily acceptable for a new version of Fresh?
sed -e 's/CppunitTest_dbaccess_empty_stdlib_save//' -i ./dbaccess/Module_dbaccess.mk
'';
makeFlags = "SHELL=${bash}/bin/bash";
@ -215,7 +222,6 @@ in stdenv.mkDerivation rec {
"--without-system-hsqldb"
"--without-system-altlinuxhyph"
"--without-system-lpsolve"
"--without-system-npapi-headers"
"--without-system-libetonyek"
"--without-system-libfreehand"
"--without-system-liblangtag"
@ -249,6 +255,10 @@ in stdenv.mkDerivation rec {
]
++ lib.optional kdeIntegration kde4.kdelibs;
passthru = {
inherit srcs;
};
meta = with lib; {
description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
homepage = http://libreoffice.org/;

View File

@ -33,15 +33,18 @@ while read line; do
*_MD5SUM\ :=*)
read tbline;
line=${line##* };
line=${line##*:=};
if [ "${tbline#*VERSION_MICRO}" != "$tbline" ]; then
verline=${tbline##* };
read tbline;
tbline=${tbline##* };
tbline=${tbline##*:=};
md5=$line
name=$tbline;
name="${name/\$([A-Z]*_VERSION_MICRO)/$verline}"
else
tbline=${tbline##* };
tbline=${tbline##*:=};
md5=$line
name=$tbline;
fi
@ -50,6 +53,7 @@ while read line; do
;;
*_TARBALL\ :=*)
line=${line##* };
line=${line##*:=};
line="${line#,}"
md5=${line:0:32};
name=${line:33};

View File

@ -4,21 +4,6 @@
md5 = "7a3815b506d064313ba309617b6f5a0b";
brief = true;
}
{
name = "commons-codec-1.6-src.tar.gz";
md5 = "2e482c7567908d334785ce7d69ddfff7";
brief = false;
}
{
name = "commons-httpclient-3.1-src.tar.gz";
md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
brief = false;
}
{
name = "commons-lang-2.4-src.tar.gz";
md5 = "625ff5f2f968dd908bca43c9469d6e6b";
brief = false;
}
{
name = "commons-logging-1.2-src.tar.gz";
md5 = "ce977548f1cbf46918e93cd38ac35163";
@ -35,23 +20,28 @@
brief = true;
}
{
name = "boost_1_55_0.tar.bz2";
md5 = "d6eef4b4cacb2183f2bf265a5a03a354";
brief = false;
name = "boost_1_59_0.tar.bz2";
md5 = "6aa9a5c6a4ca1016edd0ed1178e3cb87";
brief = true;
}
{
name = "bsh-2.0b5-src.zip";
md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
brief = false;
}
{
name = "bzip2-1.0.6.tar.gz";
md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
brief = false;
}
{
name = "cairo-1.10.2.tar.gz";
md5 = "f101a9e88b783337b20b2e26dfd26d5f";
brief = false;
}
{
name = "libcdr-0.1.1.tar.bz2";
md5 = "b33fd0be3befdd1b37777e08ce058bd9";
name = "libcdr-0.1.2.tar.bz2";
md5 = "6e3062b55b149d7b3c6aedb3bb5b86e2";
brief = true;
}
{
@ -100,18 +90,18 @@
brief = false;
}
{
name = "libetonyek-0.1.3.tar.bz2";
md5 = "e5947373dd7834f27e93f1636faa419f";
name = "libetonyek-0.1.6.tar.bz2";
md5 = "77ff46936dcc83670557274e7dd2aa33";
brief = true;
}
{
name = "expat-2.1.0.tar.gz";
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
brief = false;
name = "expat-2.1.1.tar.bz2";
md5 = "7380a64a8e3a9d66a9887b01d0d7ea81";
brief = true;
}
{
name = "Firebird-2.5.2.26540-0.tar.bz2";
md5 = "21154d2004e025c8a3666625b0357bb5";
name = "Firebird-2.5.4.26856-0.tar.bz2";
md5 = "7a17ec9889424b98baa29e001a054434";
brief = true;
}
{
@ -130,8 +120,8 @@
brief = false;
}
{
name = "dejavu-fonts-ttf-2.34.zip";
md5 = "a4e565e220b5de082c23995e256e3c12";
name = "dejavu-fonts-ttf-2.35.zip";
md5 = "d8b5214d35bcd2bfcb2cffa7795b351d";
brief = false;
}
{
@ -185,8 +175,8 @@
brief = false;
}
{
name = "glew-1.10.0.zip";
md5 = "594eb47b4b1210e25438d51825404d5a";
name = "glew-1.12.0.zip";
md5 = "3941e9cab2f4f9d8faee3e8d57ae7664";
brief = false;
}
{
@ -195,9 +185,14 @@
brief = false;
}
{
name = "graphite2-1.2.4.tgz";
md5 = "2ef839348fe28e3b923bf8cced440227";
brief = true;
name = "glyphy-0.2.0.tar.bz2";
md5 = "5d303fb955beb9bf112267316ca9d021";
brief = false;
}
{
name = "graphite-minimal-1.3.6.tgz";
md5 = "17df8301bcc459e83f8a8f3aca6183b2";
brief = false;
}
{
name = "harfbuzz-0.9.40.tar.bz2";
@ -220,8 +215,8 @@
brief = false;
}
{
name = "icu4c-54_1-src.tgz";
md5 = "e844caed8f2ca24c088505b0d6271bc0";
name = "icu4c-56_1-src.tgz";
md5 = "c4a2d71ff56aec5ebfab2a3f059be99d";
brief = false;
}
{
@ -285,13 +280,13 @@
brief = true;
}
{
name = "libjpeg-turbo-1.3.1.tar.gz";
md5 = "2c3a68129dac443a72815ff5bb374b05";
name = "libjpeg-turbo-1.4.2.tar.gz";
md5 = "86b0d5f7507c2e6c21c00219162c3c44";
brief = true;
}
{
name = "language-subtag-registry-2015-08-04.tar.bz2";
md5 = "bf5986dbfa1c9a0f26cf1b00ed369484";
name = "language-subtag-registry-2016-02-10.tar.bz2";
md5 = "d1e7c55a0383f7d720d3ead0b6117284";
brief = true;
}
{
@ -326,8 +321,8 @@
subDir = "libgltf/";
}
{
name = "liblangtag-0.5.1.tar.bz2";
md5 = "36271d3fa0d9dec1632029b6d7aac925";
name = "liblangtag-0.5.8.tar.bz2";
md5 = "aa899eff126216dafe721149fbdb511b";
brief = false;
}
{
@ -336,8 +331,8 @@
brief = false;
}
{
name = "libxml2-2.9.3.tar.gz";
md5 = "daece17e045f1c107610e137ab50c179";
name = "libxml2-2.9.4.tar.gz";
md5 = "ae249165c173b1ff386ee8ad676815f5";
brief = false;
}
{
@ -366,8 +361,8 @@
brief = true;
}
{
name = "libmwaw-0.3.5.tar.bz2";
md5 = "bdc58bbf89aaaf6d29b3516d96830a06";
name = "libmwaw-0.3.7.tar.bz2";
md5 = "4a8a53a9d997cf0e2bd208178797dbfb";
brief = true;
}
{
@ -381,18 +376,18 @@
brief = false;
}
{
name = "neon-0.29.5.tar.gz";
md5 = "ff369e69ef0f0143beb5626164e87ae2";
name = "neon-0.30.1.tar.gz";
md5 = "231adebe5c2f78fded3e3df6e958878e";
brief = false;
}
{
name = "nss-3.19.4-with-nspr-4.10.10.tar.gz";
md5 = "478e0e90ebc4a90159549e77021021fd";
name = "nss-3.22.2-with-nspr-4.12.tar.gz";
md5 = "6b254cf2f8cb4b27a3f0b8b7b9966ea7";
brief = false;
}
{
name = "libodfgen-0.1.4.tar.bz2";
md5 = "8716be5c22ae8353f9aaa380d74840dc";
name = "libodfgen-0.1.6.tar.bz2";
md5 = "32572ea48d9021bbd6fa317ddb697abc";
brief = true;
}
{
@ -406,14 +401,19 @@
brief = false;
}
{
name = "openssl-1.0.2a.tar.gz";
md5 = "a06c547dac9044161a477211049f60ef";
name = "openssl-1.0.2h.tar.gz";
md5 = "9392e65072ce4b614c1392eefc1f23d0";
brief = true;
}
{
name = "liborcus-0.7.0.tar.bz2";
md5 = "7681383be6ce489d84c1c74f4e7f9643";
brief = false;
name = "liborcus-0.9.2.tar.gz";
md5 = "e6efcbe50a5fd4d50d513c9a7a4139b0";
brief = true;
}
{
name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
md5 = "593f0aa47bf2efc0efda2d28fae063b2";
brief = true;
}
{
name = "libpagemaker-0.0.2.tar.bz2";
@ -426,8 +426,8 @@
brief = false;
}
{
name = "libpng-1.5.24.tar.gz";
md5 = "6652e428d1d3fc3c6cb1362159b1cf3b";
name = "libpng-1.6.19.tar.gz";
md5 = "3121bdc77c365a87e054b9f859f421fe";
brief = true;
}
{
@ -445,6 +445,11 @@
md5 = "803a75927f8f241ca78633890c798021";
brief = true;
}
{
name = "Python-3.5.0.tgz";
md5 = "a56c0c0b45d75a0ec9c6dee933c41c36";
brief = true;
}
{
name = "raptor2-2.0.9.tar.gz";
md5 = "4ceb9316488b0ea01acf011023cf7fff";
@ -461,8 +466,8 @@
brief = false;
}
{
name = "librevenge-0.0.2.tar.bz2";
md5 = "2d4183bf17aea1a71842468a71a68c47";
name = "librevenge-0.0.4.tar.bz2";
md5 = "5b9ac52ec77d4d19157cf5962ebc0aea";
brief = true;
}
{
@ -491,23 +496,23 @@
brief = false;
}
{
name = "libvisio-0.1.1.tar.bz2";
md5 = "726c1f5be65eb7d649e0d48b63d920e7";
name = "libvisio-0.1.5.tar.bz2";
md5 = "cbee198a78b842b2087f32d33c522818";
brief = true;
}
{
name = "libwpd-0.10.0.tar.bz2";
md5 = "0773d79a1f240ef9f4f20242b13c5bb7";
name = "libwpd-0.10.1.tar.bz2";
md5 = "79b56bcc349264d686a67994506ad199";
brief = true;
}
{
name = "libwpg-0.3.0.tar.bz2";
md5 = "17da9770cb8b317b7633f9807b32b71a";
name = "libwpg-0.3.1.tar.bz2";
md5 = "dfd066658ec9d2fb2262417039a8a1c3";
brief = true;
}
{
name = "libwps-0.4.0.tar.bz2";
md5 = "e9162d2566421d9d71b3ad2377a68fd5";
name = "libwps-0.4.2.tar.bz2";
md5 = "8a6c55542ce80203dd6d3b1cba99d4e5";
brief = true;
}
{

View File

@ -20,13 +20,18 @@
brief = true;
}
{
name = "boost_1_59_0.tar.bz2";
md5 = "6aa9a5c6a4ca1016edd0ed1178e3cb87";
name = "boost_1_60_0.tar.bz2";
md5 = "65a840e1a0b13a558ff19eeb2c4f0cbe";
brief = true;
}
{
name = "bsh-2.0b5-src.zip";
md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
name = "breakpad.zip";
md5 = "415ce291aa6f2ee1d5db7b62bf62ade8";
brief = true;
}
{
name = "bsh-2.0b6-src.zip";
md5 = "beeca87be45ec87d241ddd0e1bad80c1";
brief = false;
}
{
@ -50,9 +55,9 @@
brief = false;
}
{
name = "libcmis-0.5.0.tar.gz";
md5 = "5821b806a98e6c38370970e682ce76e8";
brief = false;
name = "libcmis-0.5.1.tar.gz";
md5 = "3270154f0f40d86fce849b161f914101";
brief = true;
}
{
name = "CoinMP-1.7.6.tgz";
@ -95,13 +100,13 @@
brief = true;
}
{
name = "expat-2.1.0.tar.gz";
md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
brief = false;
name = "expat-2.2.0.tar.bz2";
md5 = "2f47841c829facb346eb6e3fab5212e2";
brief = true;
}
{
name = "Firebird-2.5.4.26856-0.tar.bz2";
md5 = "7a17ec9889424b98baa29e001a054434";
name = "Firebird-2.5.5.26952-0.tar.bz2";
md5 = "b0b5293991fcf07347b38431c80be1d4";
brief = true;
}
{
@ -190,13 +195,13 @@
brief = false;
}
{
name = "graphite-minimal-1.3.6.tgz";
md5 = "17df8301bcc459e83f8a8f3aca6183b2";
name = "graphite2-minimal-1.3.8.tgz";
md5 = "4311dd9ace498b57c85f611e0670df64";
brief = false;
}
{
name = "harfbuzz-0.9.40.tar.bz2";
md5 = "0e27e531f4c4acff601ebff0957755c2";
name = "harfbuzz-1.2.6.tar.bz2";
md5 = "9f4b6831c86135faef011e991f59f77f";
brief = true;
}
{
@ -205,8 +210,8 @@
brief = false;
}
{
name = "hunspell-1.3.3.tar.gz";
md5 = "4967da60b23413604c9e563beacc63b4";
name = "hunspell-1.4.1.tar.gz";
md5 = "33d370f7fe5a030985e445a5672b2067";
brief = false;
}
{
@ -215,8 +220,8 @@
brief = false;
}
{
name = "icu4c-56_1-src.tgz";
md5 = "c4a2d71ff56aec5ebfab2a3f059be99d";
name = "icu4c-57_1-src.tgz";
md5 = "976734806026a4ef8bdd17937c8898b9";
brief = false;
}
{
@ -326,18 +331,18 @@
brief = false;
}
{
name = "xmlsec1-1.2.14.tar.gz";
md5 = "1f24ab1d39f4a51faf22244c94a6203f";
name = "xmlsec1-1.2.20.tar.gz";
md5 = "ce12af00283eb90d9281956524250d6e";
brief = false;
}
{
name = "libxml2-2.9.3.tar.gz";
md5 = "daece17e045f1c107610e137ab50c179";
name = "libxml2-2.9.4.tar.gz";
md5 = "ae249165c173b1ff386ee8ad676815f5";
brief = false;
}
{
name = "libxslt-1.1.28.tar.gz";
md5 = "9667bf6f9310b957254fdcf6596600b7";
name = "libxslt-1.1.29.tar.gz";
md5 = "a129d3c44c022de3b9dcf6d6f288d72e";
brief = false;
}
{
@ -351,8 +356,13 @@
brief = false;
}
{
name = "mdds_0.12.1.tar.bz2";
md5 = "ef2560ed5416652a7fe195305b14cebe";
name = "mdds-1.2.0.tar.bz2";
md5 = "9f3383fb7bae825eab69f3a6ec1d74b2";
brief = true;
}
{
name = "mDNSResponder-576.30.4.tar.gz";
md5 = "940057ac8b513b00e8e9ca12ef796762";
brief = true;
}
{
@ -401,13 +411,13 @@
brief = false;
}
{
name = "openssl-1.0.2g.tar.gz";
md5 = "f3c710c045cdee5fd114feb69feba7aa";
name = "openssl-1.0.2h.tar.gz";
md5 = "9392e65072ce4b614c1392eefc1f23d0";
brief = true;
}
{
name = "liborcus-0.9.2.tar.gz";
md5 = "e6efcbe50a5fd4d50d513c9a7a4139b0";
name = "liborcus-0.11.2.tar.gz";
md5 = "205badaee72adf99422add8c4c49d669";
brief = true;
}
{
@ -416,8 +426,8 @@
brief = true;
}
{
name = "libpagemaker-0.0.2.tar.bz2";
md5 = "795cc7a59ace4db2b12586971d668671";
name = "libpagemaker-0.0.3.tar.bz2";
md5 = "5c4985a68be0b79d3f809da5e12b143c";
brief = true;
}
{
@ -490,11 +500,6 @@
md5 = "0168229624cfac409e766913506961a8";
brief = false;
}
{
name = "vigra1.6.0.tar.gz";
md5 = "d62650a6f908e85643e557a236ea989c";
brief = false;
}
{
name = "libvisio-0.1.5.tar.bz2";
md5 = "cbee198a78b842b2087f32d33c522818";
@ -511,8 +516,8 @@
brief = true;
}
{
name = "libwps-0.4.2.tar.bz2";
md5 = "8a6c55542ce80203dd6d3b1cba99d4e5";
name = "libwps-0.4.3.tar.bz2";
md5 = "027fb17fb9e43553aa6624dc18f830ac";
brief = true;
}
{

View File

@ -22,9 +22,9 @@ let
lib = stdenv.lib;
langsSpaces = lib.concatStringsSep " " langs;
major = "5";
minor = "0";
patch = "6";
tweak = "3";
minor = "1";
patch = "5";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
@ -50,14 +50,14 @@ let
translations = fetchSrc {
name = "translations";
sha256 = "0ir97k91p3dxxs85ld1vyxcx7s63w678h9njbmw4y3mpp9f28y8c";
sha256 = "1mzsz9pd2k1lpvwf7r5q90qmdp57160362cmlxaj6bxz52gr9f2i";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "06qwdmdb086852qs6fzb3mm1wixkkkkg39njpvqsrfbdrr2amdjc";
sha256 = "1qqpggcanchz0qqasc5xvginrpa5rx7ahj3dw2vk7n34xaarnni6";
};
};
@ -66,7 +66,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "1izc1ynfzg36jyi1ms5lmz9rl5lhlxa8qfa4bg7j2qlf65wdf0a6";
sha256 = "1qg0dj0zwh5ifhmvv4k771nmyqddz4ifn75s9mr1p0nyix8zks8x";
};
# Openoffice will open libcups dynamically, so we link it directly
@ -249,6 +249,10 @@ in stdenv.mkDerivation rec {
]
++ lib.optional kdeIntegration kde4.kdelibs;
passthru = {
inherit srcs;
};
meta = with lib; {
description = "Comprehensive, professional-quality productivity suite (Still/stable release)";
homepage = http://libreoffice.org/;

View File

@ -12,9 +12,11 @@ stdenv.mkDerivation rec {
buildInputs = [ zlib ];
preBuild = ''
makeFlagsArray=("HSTDIR=${htslib}" "prefix=$out")
'';
makeFlags = [
"HSTDIR=${htslib}"
"prefix=$out"
"CC=cc"
];
meta = with stdenv.lib; {
description = "Tools for manipulating BCF2/VCF/gVCF format, SNP and short indel sequence variants";

View File

@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3;
homepage = http://bio-bwa.sourceforge.net/;
maintainers = with maintainers; [ luispedro ];
platforms = with platforms; linux;
platforms = [ "x86_64-linux" ];
};
}

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