Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2016-09-24 18:54:31 +02:00
commit fffc7638cd
235 changed files with 5781 additions and 2834 deletions

View File

@ -28,5 +28,5 @@ under the terms of [COPYING](../COPYING), which is an MIT-like license.
* Not start with the package name
* Not have a dot at the end
See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](http://hydra.nixos.org/job/nixpkgs/trunk/manual/latest/download-by-type/doc/manual#chap-submitting-changes).
See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).

View File

@ -60,6 +60,10 @@ pkgs.stdenv.mkDerivation {
inputFile = ../pkgs/development/idris-modules/README.md;
outputFile = "languages-frameworks/idris.xml";
}
+ toDocbook {
inputFile = ../pkgs/development/node-packages/README.md;
outputFile = "languages-frameworks/node.xml";
}
+ toDocbook {
inputFile = ../pkgs/development/r-modules/README.md;
outputFile = "languages-frameworks/r.xml";

View File

@ -21,6 +21,7 @@ such as Perl or Haskell. These are described in this chapter.</para>
<xi:include href="idris.xml" /> <!-- generated from ../../pkgs/development/idris-modules/README.md -->
<xi:include href="java.xml" />
<xi:include href="lua.xml" />
<xi:include href="node.xml" /> <!-- generated from ../../pkgs/development/node-packages/README.md -->
<xi:include href="perl.xml" />
<xi:include href="python.xml" />
<xi:include href="qt.xml" />

View File

@ -12,6 +12,7 @@
abbradar = "Nikolay Amiantov <ab@fmap.me>";
aboseley = "Adam Boseley <adam.boseley@gmail.com>";
abuibrahim = "Ruslan Babayev <ruslan@babayev.com>";
acowley = "Anthony Cowley <acowley@gmail.com>";
adev = "Adrien Devresse <adev@adev.name>";
Adjective-Object = "Maxwell Huang-Hobbs <mhuan13@gmail.com>";
adnelson = "Allen Nelson <ithinkican@gmail.com>";
@ -341,6 +342,7 @@
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
redvers = "Redvers Davies <red@infect.me>";
refnil = "Martin Lavoie <broemartino@gmail.com>";
regnat = "Théophane Hufschmitt <regnat@regnat.ovh>";
relrod = "Ricky Elrod <ricky@elrod.me>";
renzo = "Renzo Carbonara <renzocarbonara@gmail.com>";
retrry = "Tadas Barzdžius <retrry@gmail.com>";
@ -367,6 +369,7 @@
samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
schmitthenner = "Fabian Schmitthenner <development@schmitthenner.eu>";
schneefux = "schneefux <schneefux+nixos_pkg@schneefux.xyz>";
schristo = "Scott Christopher <schristopher@konputa.com>";
scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
sepi = "Raffael Mancini <raffael@mancini.lu>";
@ -419,6 +422,7 @@
ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
tv = "Tomislav Viljetić <tv@shackspace.de>";
tvestelind = "Tomas Vestelind <tomas.vestelind@fripost.org>";
tvorog = "Marsel Zaripov <marszaripov@gmail.com>";
twey = "James Twey Kay <twey@twey.co.uk>";
uralbash = "Svintsov Dmitry <root@uralbash.ru>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";

View File

@ -106,6 +106,11 @@ following incompatible changes:</para>
tool introduced to generate Go package definition from its Go source automatically.</para>
</listitem>
<listitem>
<para><literal>services.mongodb.extraConfig</literal> configuration format
was changed to YAML.</para>
</listitem>
</itemizedlist>

View File

@ -7,7 +7,7 @@ let
preferLocalBuild = true;
allowSubstitutes = false;
name = "gtk2-immodule.cache";
buildInputs = [ pkgs.gtk cfg.package ];
buildInputs = [ pkgs.gtk2 cfg.package ];
buildCommand = ''
mkdir -p $out/etc/gtk-2.0/
GTK_PATH=${cfg.package}/lib/gtk-2.0/ gtk-query-immodules-2.0 > $out/etc/gtk-2.0/immodules.cache

View File

@ -250,6 +250,7 @@
./services/misc/mwlib.nix
./services/misc/nix-daemon.nix
./services/misc/nix-gc.nix
./services/misc/nix-optimise.nix
./services/misc/nixos-manual.nix
./services/misc/nix-ssh-serve.nix
./services/misc/nzbget.nix
@ -289,6 +290,7 @@
./services/monitoring/nagios.nix
./services/monitoring/prometheus/default.nix
./services/monitoring/prometheus/node-exporter.nix
./services/monitoring/prometheus/alertmanager.nix
./services/monitoring/riemann.nix
./services/monitoring/riemann-dash.nix
./services/monitoring/riemann-tools.nix
@ -353,6 +355,7 @@
./services/networking/haproxy.nix
./services/networking/heyefi.nix
./services/networking/hostapd.nix
./services/networking/htpdate.nix
./services/networking/i2pd.nix
./services/networking/i2p.nix
./services/networking/iodine.nix
@ -474,6 +477,7 @@
./services/web-apps/mattermost.nix
./services/web-apps/pump.io.nix
./services/web-apps/tt-rss.nix
./services/web-apps/selfoss.nix
./services/web-servers/apache-httpd/default.nix
./services/web-servers/caddy.nix
./services/web-servers/fcgiwrap.nix

View File

@ -139,6 +139,9 @@ with lib;
# fontconfig-ultimate
(mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "rendering" ] [ "fonts" "fontconfig" "ultimate" "preset" ])
# murmur
(mkRenamedOptionModule [ "services" "murmur" "welcome" ] [ "services" "murmur" "welcometext" ])
# Options that are obsolete and have no replacement.
(mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ] "")
(mkRemovedOptionModule [ "programs" "bash" "enable" ] "")

View File

@ -12,13 +12,11 @@ let
mongoCnf = pkgs.writeText "mongodb.conf"
''
bind_ip = ${cfg.bind_ip}
${optionalString cfg.quiet "quiet = true"}
dbpath = ${cfg.dbpath}
syslog = true
fork = true
pidfilepath = ${cfg.pidFile}
${optionalString (cfg.replSetName != "") "replSet = ${cfg.replSetName}"}
net.bindIp: ${cfg.bind_ip}
${optionalString cfg.quiet "systemLog.quiet: true"}
systemLog.destination: syslog
storage.dbPath: ${cfg.dbpath}
${optionalString (cfg.replSetName != "") "replication.replSetName: ${cfg.replSetName}"}
${cfg.extraConfig}
'';
@ -84,9 +82,9 @@ in
extraConfig = mkOption {
default = "";
example = ''
nojournal = true
storage.journal.enabled: false
'';
description = "MongoDB extra configuration";
description = "MongoDB extra configuration in YAML format";
};
};
@ -112,7 +110,7 @@ in
after = [ "network.target" ];
serviceConfig = {
ExecStart = "${mongodb}/bin/mongod --quiet --config ${mongoCnf}";
ExecStart = "${mongodb}/bin/mongod --quiet --config ${mongoCnf} --fork --pidfilepath ${cfg.pidFile}";
User = cfg.user;
PIDFile = cfg.pidFile;
Type = "forking";

View File

@ -20,7 +20,7 @@ in
package = mkOption {
type = types.package;
example = literalExample "pkgs.riak2";
example = literalExample "pkgs.riak";
description = ''
Riak package to use.
'';
@ -108,6 +108,7 @@ in
pkgs.bash
];
environment.HOME = "${cfg.dataDir}";
environment.RIAK_DATA_DIR = "${cfg.dataDir}";
environment.RIAK_LOG_DIR = "${cfg.logDir}";
environment.RIAK_ETC_DIR = "/etc/riak";

View File

@ -533,6 +533,8 @@ in {
fi
fi
# enable required pg_trgm extension for gitlab
psql gitlab -c "CREATE EXTENSION IF NOT EXISTS pg_trgm"
# Always do the db migrations just to be sure the database is up-to-date
${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production

View File

@ -0,0 +1,49 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.nix.optimise;
in
{
###### interface
options = {
nix.optimise = {
automatic = mkOption {
default = false;
type = types.bool;
description = "Automatically run the nix store optimiser at a specific time.";
};
dates = mkOption {
default = "03:45";
type = types.listOf types.str;
description = ''
Specification (in the format described by
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>5</manvolnum></citerefentry>) of the time at
which the optimiser will run.
'';
};
};
};
###### implementation
config = {
systemd.services.nix-optimise =
{ description = "Nix Store Optimiser";
serviceConfig.ExecStart = "${config.nix.package}/bin/nix-store --optimise";
startAt = optional cfg.automatic cfg.dates;
};
};
}

View File

@ -0,0 +1,116 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.prometheus.alertmanager;
mkConfigFile = pkgs.writeText "alertmanager.yml" (builtins.toJSON cfg.configuration);
in {
options = {
services.prometheus.alertmanager = {
enable = mkEnableOption "Prometheus Alertmanager";
user = mkOption {
type = types.str;
default = "nobody";
description = ''
User name under which Alertmanager shall be run.
'';
};
group = mkOption {
type = types.str;
default = "nogroup";
description = ''
Group under which Alertmanager shall be run.
'';
};
configuration = mkOption {
type = types.attrs;
default = {};
description = ''
Alertmanager configuration as nix attribute set.
'';
};
logFormat = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
If set use a syslog logger or JSON logging.
'';
};
logLevel = mkOption {
type = types.enum ["debug" "info" "warn" "error" "fatal"];
default = "warn";
description = ''
Only log messages with the given severity or above.
'';
};
webExternalUrl = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The URL under which Alertmanager is externally reachable (for example, if Alertmanager is served via a reverse proxy).
Used for generating relative and absolute links back to Alertmanager itself.
If the URL has a path portion, it will be used to prefix all HTTP endoints served by Alertmanager.
If omitted, relevant URL components will be derived automatically.
'';
};
listenAddress = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Address to listen on for the web interface and API.
'';
};
port = mkOption {
type = types.int;
default = 9093;
description = ''
Port to listen on for the web interface and API.
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = ''
Open port in firewall for incoming connections.
'';
};
};
};
config = mkIf cfg.enable {
networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port;
systemd.services.alertmanager = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
script = ''
${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \
-config.file ${mkConfigFile} \
-web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-log.level ${cfg.logLevel} \
${optionalString (cfg.webExternalUrl != null) ''-web.external-url ${cfg.webExternalUrl} \''}
${optionalString (cfg.logFormat != null) "-log.format ${cfg.logFormat}"}
'';
serviceConfig = {
User = cfg.user;
Group = cfg.group;
Restart = "always";
PrivateTmp = true;
WorkingDirectory = "/tmp";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
};
};
};
}

View File

@ -29,6 +29,9 @@ let
"-storage.local.path=${cfg.dataDir}/metrics"
"-config.file=${writePrettyJSON "prometheus.yml" promConfig}"
"-web.listen-address=${cfg.listenAddress}"
"-alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
"-alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
(optionalString (cfg.alertmanagerURL != []) "-alertmanager.url=${concatStringsSep "," cfg.alertmanagerURL}")
];
promTypes.globalConfig = types.submodule {
@ -388,6 +391,30 @@ in {
A list of scrape configurations.
'';
};
alertmanagerURL = mkOption {
type = types.listOf types.str;
default = [];
description = ''
List of Alertmanager URLs to send notifications to.
'';
};
alertmanagerNotificationQueueCapacity = mkOption {
type = types.int;
default = 10000;
description = ''
The capacity of the queue for pending alert manager notifications.
'';
};
alertmanagerTimeout = mkOption {
type = types.int;
default = 10;
description = ''
Alert manager HTTP API timeout (in seconds).
'';
};
};
};

View File

@ -0,0 +1,80 @@
{ config, lib, pkgs, ... }:
with lib;
let
inherit (pkgs) htpdate;
cfg = config.services.htpdate;
in
{
###### interface
options = {
services.htpdate = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable htpdate daemon.
'';
};
extraOptions = mkOption {
type = types.str;
default = "";
description = ''
Additional command line arguments to pass to htpdate.
'';
};
servers = mkOption {
type = types.listOf types.str;
default = [ "www.google.com" ];
description = ''
HTTP servers to use for time synchronization.
'';
};
proxy = mkOption {
type = types.str;
default = "";
example = "127.0.0.1:8118";
description = ''
HTTP proxy used for requests.
'';
};
};
};
###### implementation
config = mkIf cfg.enable {
systemd.services.htpdate = {
description = "htpdate daemon";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "forking";
PIDFile = "/var/run/htpdate.pid";
ExecStart = concatStringsSep " " [
"${htpdate}/bin/htpdate"
"-D -u nobody"
"-a -s"
"-l"
"${optionalString (cfg.proxy != "") "-P ${cfg.proxy}"}"
"${cfg.extraOptions}"
"${concatStringsSep " " cfg.servers}"
];
};
};
};
}

View File

@ -15,7 +15,7 @@ let
logfile=/var/log/murmur/murmurd.log
pidfile=${cfg.pidfile}
welcome="${cfg.welcome}"
welcometext="${cfg.welcometext}"
port=${toString cfg.port}
${if cfg.hostName == "" then "" else "host="+cfg.hostName}
@ -84,7 +84,7 @@ in
description = "Path to PID file for Murmur daemon.";
};
welcome = mkOption {
welcometext = mkOption {
type = types.str;
default = "";
description = "Welcome message for connected clients.";

View File

@ -0,0 +1,166 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.selfoss;
poolName = "selfoss_pool";
phpfpmSocketName = "/var/run/phpfpm/${poolName}.sock";
dataDir = "/var/lib/selfoss";
selfoss-config =
let
db_type = cfg.database.type;
default_port = if (db_type == "mysql") then 3306 else 5342;
in
pkgs.writeText "selfoss-config.ini" ''
[globals]
${lib.optionalString (db_type != "sqlite") ''
db_type=${db_type}
db_host=${cfg.database.host}
db_database=${cfg.database.name}
db_username=${cfg.database.user}
db_password=${cfg.database.password}
db_port=${if (cfg.database.port != null) then cfg.database.port
else default_port}
''
}
${cfg.extraConfig}
'';
in
{
options = {
services.selfoss = {
enable = mkEnableOption "selfoss";
user = mkOption {
type = types.str;
default = "nginx";
example = "nginx";
description = ''
User account under which both the service and the web-application run.
'';
};
pool = mkOption {
type = types.str;
default = "${poolName}";
description = ''
Name of existing phpfpm pool that is used to run web-application.
If not specified a pool will be created automatically with
default values.
'';
};
database = {
type = mkOption {
type = types.enum ["pgsql" "mysql" "sqlite"];
default = "sqlite";
description = ''
Database to store feeds. Supported are sqlite, pgsql and mysql.
'';
};
host = mkOption {
type = types.str;
default = "localhost";
description = ''
Host of the database (has no effect if type is "sqlite").
'';
};
name = mkOption {
type = types.str;
default = "tt_rss";
description = ''
Name of the existing database (has no effect if type is "sqlite").
'';
};
user = mkOption {
type = types.str;
default = "tt_rss";
description = ''
The database user. The user must exist and has access to
the specified database (has no effect if type is "sqlite").
'';
};
password = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
The database user's password (has no effect if type is "sqlite").
'';
};
port = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
The database's port. If not set, the default ports will be
provided (5432 and 3306 for pgsql and mysql respectively)
(has no effect if type is "sqlite").
'';
};
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Extra configuration added to config.ini
'';
};
};
};
config = mkIf cfg.enable {
services.phpfpm.poolConfigs = mkIf (cfg.pool == "${poolName}") {
"${poolName}" = ''
listen = "${phpfpmSocketName}";
listen.owner = nginx
listen.group = nginx
listen.mode = 0600
user = nginx
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
catch_workers_output = 1
'';
};
systemd.services.selfoss-config = {
serviceConfig.Type = "oneshot";
script = ''
mkdir -m 755 -p ${dataDir}
cd ${dataDir}
# Delete all but the "data" folder
ls | grep -v data | while read line; do rm -rf $line; done || true
# Create the files
cp -r "${pkgs.selfoss}/"* "${dataDir}"
ln -sf "${selfoss-config}" "${dataDir}/config.ini"
chown -R "${cfg.user}" "${dataDir}"
chmod -R 755 "${dataDir}"
'';
wantedBy = [ "multi-user.target" ];
};
systemd.services.selfoss-update = {
serviceConfig = {
ExecStart = "${pkgs.php}/bin/php ${dataDir}/cliupdate.php";
User = "${cfg.user}";
};
startAt = "hourly";
after = [ "selfoss-config.service" ];
wantedBy = [ "multi-user.target" ];
};
};
}

View File

@ -142,10 +142,10 @@ in
# Empty, immutable home directory of many system accounts.
mkdir -p /var/empty
# Make sure it's really empty
${pkgs.e2fsprogs}/bin/chattr -i /var/empty
${pkgs.e2fsprogs}/bin/chattr -f -i /var/empty || true
find /var/empty -mindepth 1 -delete
chmod 0555 /var/empty
${pkgs.e2fsprogs}/bin/chattr +i /var/empty
${pkgs.e2fsprogs}/bin/chattr -f +i /var/empty || true
'';
system.activationScripts.usrbinenv = if config.environment.usrbinenv != null

View File

@ -198,9 +198,10 @@ let
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
(filter (sd: (sd ? label || hasPrefix "/dev/" sd.device) && !sd.randomEncryption
# Don't include zram devices
&& !(hasPrefix "/dev/zram" sd.device)) config.swapDevices);
(filter (sd: hasPrefix "/dev/" sd.device && !sd.randomEncryption
# Don't include zram devices
&& !(hasPrefix "/dev/zram" sd.device)
) config.swapDevices);
fsInfo =
let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType (builtins.concatStringsSep "," fs.options) ];

View File

@ -111,16 +111,6 @@ rm -f /etc/{group,passwd,shadow}.lock
rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots
# Create a ramfs on /run/keys to hold secrets that shouldn't be
# written to disk (generally used for NixOps, harmless elsewhere).
if ! mountpoint -q /run/keys; then
rm -rf /run/keys
mkdir /run/keys
mount -t ramfs ramfs /run/keys
chown 0:96 /run/keys
chmod 0750 /run/keys
fi
mkdir -m 0755 -p /run/lock

View File

@ -18,7 +18,7 @@ let
prioOption = prio: optionalString (prio != null) " pri=${toString prio}";
specialFSTypes = [ "proc" "sysfs" "tmpfs" "devtmpfs" "devpts" ];
specialFSTypes = [ "proc" "sysfs" "tmpfs" "ramfs" "devtmpfs" "devpts" ];
coreFileSystemOpts = { name, config, ... }: {
@ -290,6 +290,9 @@ in
"/dev" = { fsType = "devtmpfs"; options = [ "nosuid" "strictatime" "mode=755" "size=${config.boot.devSize}" ]; };
"/dev/shm" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=1777" "size=${config.boot.devShmSize}" ]; };
"/dev/pts" = { fsType = "devpts"; options = [ "nosuid" "noexec" "mode=620" "gid=${toString config.ids.gids.tty}" ]; };
# To hold secrets that shouldn't be written to disk (generally used for NixOps, harmless elsewhere)
"/run/keys" = { fsType = "ramfs"; options = [ "nosuid" "nodev" "mode=750" "gid=${toString config.ids.gids.keys}" ]; };
} // optionalAttrs (!config.boot.isContainer) {
# systemd-nspawn populates /sys by itself, and remounting it causes all
# kinds of weird issues (most noticeably, waiting for host disk device

View File

@ -12,21 +12,21 @@ let
''
echo "Bringing ${name} up"
ip link set dev ${name} up
${optionalString (cfg . "localAddress" or null != null) ''
${optionalString (cfg.localAddress != null) ''
echo "Setting ip for ${name}"
ip addr add ${cfg . "localAddress"} dev ${name}
ip addr add ${cfg.localAddress} dev ${name}
''}
${optionalString (cfg . "localAddress6" or null != null) ''
${optionalString (cfg.localAddress6 != null) ''
echo "Setting ip6 for ${name}"
ip -6 addr add ${cfg . "localAddress6"} dev ${name}
ip -6 addr add ${cfg.localAddress6} dev ${name}
''}
${optionalString (cfg . "hostAddress" or null != null) ''
${optionalString (cfg.hostAddress != null) ''
echo "Setting route to host for ${name}"
ip route add ${cfg . "hostAddress"} dev ${name}
ip route add ${cfg.hostAddress} dev ${name}
''}
${optionalString (cfg . "hostAddress6" or null != null) ''
${optionalString (cfg.hostAddress6 != null) ''
echo "Setting route6 to host for ${name}"
ip -6 route add ${cfg . "hostAddress6"} dev ${name}
ip -6 route add ${cfg.hostAddress6} dev ${name}
''}
''
);
@ -56,9 +56,7 @@ let
ip -6 route add default via $HOST_ADDRESS6
fi
${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg . "extraVeths" or {})}
ip a
ip r
${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
fi
# Start the regular stage 1 script.
@ -67,7 +65,8 @@ let
);
nspawnExtraVethArgs = (name: cfg: "--network-veth-extra=${name}");
startScript = (cfg:
startScript = cfg:
''
mkdir -p -m 0755 "$root/etc" "$root/var/lib"
mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers
@ -92,11 +91,7 @@ let
fi
fi
${if cfg . "extraVeths" or null != null then
''extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg . "extraVeths" or {})}"''
else
''# No extra veth pairs to create''
}
extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg.extraVeths)}"
for iface in $INTERFACES; do
extraFlags+=" --network-interface=$iface"
@ -135,10 +130,9 @@ let
--setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \
--setenv PATH="$PATH" \
${containerInit cfg} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
''
);
'';
preStartScript = (cfg:
preStartScript = cfg:
''
# Clean up existing machined registration and interfaces.
machinectl terminate "$INSTANCE" 2> /dev/null || true
@ -151,45 +145,43 @@ let
${concatStringsSep "\n" (
mapAttrsToList (name: cfg:
''ip link del dev ${name} 2> /dev/null || true ''
) cfg . "extraVeths" or {}
) cfg.extraVeths
)}
''
);
'';
postStartScript = (cfg:
let
ipcall = (cfg: ipcmd: variable: attribute:
if cfg . attribute or null == null then
ipcall = cfg: ipcmd: variable: attribute:
if cfg.${attribute} == null then
''
if [ -n "${variable}" ]; then
${ipcmd} add ${variable} dev $ifaceHost
fi
''
else
''${ipcmd} add ${cfg . attribute} dev $ifaceHost''
);
renderExtraVeth = (name: cfg:
if cfg . "hostBridge" or null != null then
''${ipcmd} add ${cfg.${attribute}} dev $ifaceHost'';
renderExtraVeth = name: cfg:
if cfg.hostBridge != null then
''
# Add ${name} to bridge ${cfg.hostBridge}
ip link set dev ${name} master ${cfg.hostBridge} up
''
else
''
# Set IPs and routes for ${name}
${optionalString (cfg . "hostAddress" or null != null) ''
ip addr add ${cfg . "hostAddress"} dev ${name}
''}
${optionalString (cfg . "hostAddress6" or null != null) ''
ip -6 addr add ${cfg . "hostAddress6"} dev ${name}
''}
${optionalString (cfg . "localAddress" or null != null) ''
ip route add ${cfg . "localAddress"} dev ${name}
''}
${optionalString (cfg . "localAddress6" or null != null) ''
ip -6 route add ${cfg . "localAddress6"} dev ${name}
''}
''
);
# Set IPs and routes for ${name}
${optionalString (cfg.hostAddress != null) ''
ip addr add ${cfg.hostAddress} dev ${name}
''}
${optionalString (cfg.hostAddress6 != null) ''
ip -6 addr add ${cfg.hostAddress6} dev ${name}
''}
${optionalString (cfg.localAddress != null) ''
ip route add ${cfg.localAddress} dev ${name}
''}
${optionalString (cfg.localAddress6 != null) ''
ip -6 route add ${cfg.localAddress6} dev ${name}
''}
'';
in
''
if [ "$PRIVATE_NETWORK" = 1 ]; then
@ -202,7 +194,7 @@ let
${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"}
${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"}
fi
${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg . "extraVeths" or {})}
${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
fi
# Get the leader PID so that we can signal it in
@ -307,6 +299,15 @@ let
};
dummyConfig =
{
extraVeths = {};
hostAddress = null;
hostAddress6 = null;
localAddress = null;
localAddress6 = null;
};
in
{
@ -451,7 +452,7 @@ in
containers. Each container appears as a service
<literal>container-<replaceable>name</replaceable></literal>
on the host system, allowing it to be started and stopped via
<command>systemctl</command> .
<command>systemctl</command>.
'';
};
@ -470,11 +471,11 @@ in
environment.INSTANCE = "%i";
environment.root = "/var/lib/containers/%i";
preStart = preStartScript {};
preStart = preStartScript dummyConfig;
script = startScript {};
script = startScript dummyConfig;
postStart = postStartScript {};
postStart = postStartScript dummyConfig;
preStop =
''

View File

@ -260,6 +260,7 @@ in rec {
#tests.logstash = callTest tests/logstash.nix {};
tests.mathics = callTest tests/mathics.nix {};
tests.misc = callTest tests/misc.nix {};
tests.mongodb = callTest tests/mongodb.nix {};
tests.mumble = callTest tests/mumble.nix {};
tests.munin = callTest tests/munin.nix {};
tests.mysql = callTest tests/mysql.nix {};

View File

@ -1,7 +1,7 @@
import ./make-test.nix ({ pkgs, ...} :
{
name = "sddm";
name = "kde5";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ttuegel ];
};

34
nixos/tests/mongodb.nix Normal file
View File

@ -0,0 +1,34 @@
# This test start mongodb, runs a query using mongo shell
import ./make-test.nix ({ pkgs, ...} : let
testQuery = pkgs.writeScript "nixtest.js" ''
db.greetings.insert({ "greeting": "hello" });
print(db.greetings.findOne().greeting);
'';
in {
name = "mongodb";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bluescreen303 offline wkennington cstrahan rvl ];
};
nodes = {
one =
{ config, pkgs, ... }:
{
services = {
mongodb.enable = true;
mongodb.extraConfig = ''
# Allow starting engine with only a small virtual disk
storage.journal.enabled: false
storage.mmapv1.smallFiles: true
'';
};
};
};
testScript = ''
startAll;
$one->waitForUnit("mongodb.service");
$one->succeed("mongo nixtest ${testQuery}") =~ /hello/ or die;
'';
})

View File

@ -77,7 +77,7 @@ in {
}; };
mongodb.enable = true;
mongodb.extraConfig = ''
nojournal = true
storage.journal.enabled: false
'';
};
systemd.services.mongodb.unitConfig.Before = "pump.io.service";

View File

@ -403,16 +403,16 @@ rec {
testng = buildEclipsePlugin rec {
name = "testng-${version}";
version = "6.9.11.201604020423";
version = "6.9.12.201607091356";
srcFeature = fetchurl {
url = "http://beust.com/eclipse-old/eclipse_${version}/features/org.testng.eclipse_${version}.jar";
sha256 = "1cp7f6f0525wqwjj4pyrp0q0ii7zcd5gwd5acaq9jjb13xgw8vav";
sha256 = "06c6885d3ggg1i085zhfwayj06jn4v1jip9zz40921vpq0iand54";
};
srcPlugin = fetchurl {
url = "http://beust.com/eclipse-old/eclipse_${version}/plugins/org.testng.eclipse_${version}.jar";
sha256 = "04m07cdfw0isp27ykx6dbrlcdw33rxww7vnavanygxxnlpyvyas3";
sha256 = "0bpyb9bnh8kglajmdzb7pr21i1sly73kwdjbygg75ad7z37l58br";
};
meta = with stdenv.lib; {

View File

@ -0,0 +1,91 @@
{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake
, AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
, ImageCaptureCore, GSS, ImageIO # These may be optional
}:
stdenv.mkDerivation rec {
emacsName = "emacs-25.1";
name = "${emacsName}-mac-6.0";
builder = ./builder.sh;
src = fetchurl {
url = "ftp://ftp.gnu.org/gnu/emacs/${emacsName}.tar.xz";
sha256 = "19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33";
};
macportSrc = fetchurl {
url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
sha256 = "2f7a3fd826e6dea541ada04f4a1ff2903a87a1f736b89c5b90bf7bb820568e34";
};
enableParallelBuilding = true;
buildInputs = [ ncurses libxml2 gnutls pkgconfig texinfo gettext autoconf automake];
propagatedBuildInputs = [
AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
ImageCaptureCore GSS ImageIO # may be optional
];
postUnpack = ''
mv $sourceRoot $name
tar xzf $macportSrc
mv $name $sourceRoot
'';
postPatch = ''
patch -p1 < patch-mac
substituteInPlace lisp/international/mule-cmds.el \
--replace /usr/share/locale ${gettext}/share/locale
'';
configureFlags = [
"LDFLAGS=-L${ncurses.out}/lib"
"--with-xml2=yes"
"--with-gnutls=yes"
"--with-mac"
"--enable-mac-app=$$out/Applications"
];
CFLAGS = "-O3 -DMAC_OS_X_VERSION_MAX_ALLOWED=1090";
LDFLAGS = "-O3 -L${ncurses.out}/lib";
postInstall = ''
mkdir -p $out/share/emacs/site-lisp/
cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
'';
doCheck = true;
meta = with stdenv.lib; {
description = "GNU Emacs 25, the extensible, customizable text editor";
homepage = http://www.gnu.org/software/emacs/;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jwiegley ];
platforms = platforms.darwin;
longDescription = ''
GNU Emacs is an extensible, customizable text editorand more. At its
core is an interpreter for Emacs Lisp, a dialect of the Lisp
programming language with extensions to support text editing.
The features of GNU Emacs include: content-sensitive editing modes,
including syntax coloring, for a wide variety of file types including
plain text, source code, and HTML; complete built-in documentation,
including a tutorial for new users; full Unicode support for nearly all
human languages and their scripts; highly customizable, using Emacs
Lisp code or a graphical interface; a large number of extensions that
add other functionality, including a project planner, mail and news
reader, debugger interface, calendar, and more. Many of these
extensions are distributed with GNU Emacs; others are available
separately.
This is "Mac port" addition to GNU Emacs 24. This provides a native
GUI support for Mac OS X 10.4 - 10.11. Note that Emacs 23 and later
already contain the official GUI support via the NS (Cocoa) port for
Mac OS X 10.4 and later. So if it is good enough for you, then you
don't need to try this.
'';
};
}

View File

@ -6,7 +6,7 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
assert gksuSupport -> gksu != null;
let
build = "3114";
build = "3126";
libPath = stdenv.lib.makeLibraryPath [glib xorg.libX11 gtk2 cairo pango];
redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
@ -20,13 +20,13 @@ in let
fetchurl {
name = "sublimetext-${build}.tar.bz2";
url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x32.tar.bz2";
sha256 = "0xrfx76ilw5hlx26hv9zx1kw8q9qf76646yyjmn36p6mq9vs6y0d";
sha256 = "0acff4wj1s61x3xszdd93lkhaqa26lb7ryqdxnbphxzhf2jfzzwj";
}
else
fetchurl {
name = "sublimetext-${build}.tar.bz2";
url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x64.tar.bz2";
sha256 = "0nmi2gkpz56a47a0f56nx6nl3sl7gif035517gx2v82113y9nh66";
sha256 = "0ykj33fq86iv7f9zx76h90pl9y86iri0idhlj09a6prhk8p17nqq";
};
dontStrip = true;

View File

@ -42,7 +42,7 @@ composableDerivation {
} (fix: rec {
name = "vim_configurable-${version}";
version = "7.4.826";
version = "8.0.0005";
enableParallelBuilding = true; # test this
@ -54,7 +54,7 @@ composableDerivation {
owner = "vim";
repo = "vim";
rev = "v${version}";
sha256 = "04hp2gqbbj9h872bgj1g9xcaj5qlg9q45v6by2ch9n105dng9aj3";
sha256 = "0ys3l3dr43vjad1f096ch1sl3x2ajsqkd03rdn6n812m7j4wipx0";
};
"vim-nox" =
@ -69,12 +69,6 @@ composableDerivation {
prePatch = "cd src";
# if darwin support is enabled, we want to make sure we're not building with
# OS-installed python framework
patches = stdenv.lib.optionals
(stdenv.isDarwin && (config.vim.darwin or true))
[ ./python_framework.patch ];
configureFlags
= [ "--enable-gui=${args.gui}" "--with-features=${args.features}" ];

View File

@ -1,24 +0,0 @@
--- a/auto/configure
+++ b/auto/configure
@@ -5895,13 +5895,6 @@
eof
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
rm -f -- "${tmp_mkf}"
- if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
- "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
- vi_cv_path_python_plibs="-framework Python"
- if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
- vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python"
- fi
- else
if test "${vi_cv_var_python_version}" = "1.4"; then
vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
else
@@ -5921,7 +5914,6 @@
vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
-fi
if ${vi_cv_dll_name_python+:} false; then :
$as_echo_n "(cached) " >&6

View File

@ -11,11 +11,12 @@ let
else throw "ImageMagick is not supported on this platform.";
cfg = {
version = "6.9.5-2";
sha256 = "09h3rpr1jnzd7ipy5d16r2gi0bwg4hk5khwzv4cyhv1xzs8pk7pj";
version = "6.9.5-10";
sha256 = "0cxjzqzca80vf6sfx4z9zq4wq2w0vy9ajp9kf88jb4na8mwsn198";
patches = [];
}
# Freeze version on mingw so we don't need to port the patch too often.
# FIXME: This version has multiple security vulnerabilities
// lib.optionalAttrs (stdenv.cross.libc or null == "msvcrt") {
version = "6.9.2-0";
sha256 = "17ir8bw1j7g7srqmsz3rx780sgnc21zfn0kwyj78iazrywldx8h7";

View File

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

View File

@ -0,0 +1,4 @@
set(GIT_BRANCH master)
set(GIT_VERSION 4.2.1050)
set(GIT_CHANGESET 2d0e5e4feeac9801994d82c5931531f508deb2e9)
set(GIT_TAGDISTANCE 1050)

View File

@ -5,14 +5,14 @@
stdenv.mkDerivation rec {
name = "rawtherapee-4.2";
src = fetchFromGitHub {
owner = "Beep6581";
repo = "RawTherapee";
rev = "4.2";
sha256 = "1v4px239vlmk9l8wbzlvlyni4ns12icxmgfz21m86jkd10pj5dgr";
};
buildInputs = [ pkgconfig cmake pixman libpthreadstubs gtkmm2 libXau libXdmcp
lcms2 libiptcdata mercurial libcanberra_gtk2 fftw expat pcre libsigcxx ];
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
description = "RAW converter and digital photo processing software";
homepage = http://www.rawtherapee.com/;
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [viric jcumming mahe];
maintainers = with stdenv.lib.maintainers; [ viric jcumming mahe the-kenny ];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -0,0 +1,36 @@
{ stdenv, fetchFromGitHub, pkgconfig, cmake, pixman, libpthreadstubs, gtkmm2, libXau
, libXdmcp, lcms2, libiptcdata, libcanberra_gtk2, fftw, expat, pcre, libsigcxx
}:
stdenv.mkDerivation rec {
name = "rawtherapee-git-2016-09-21";
src = fetchFromGitHub {
owner = "Beep6581";
repo = "RawTherapee";
rev = "2d0e5e4feeac9801994d82c5931531f508deb2e9";
sha256 = "1d9bi3b6cslm0rhhqf0rx47nlnsnky284vqsxyq3mss6bd8880xh";
};
buildInputs = [ pkgconfig cmake pixman libpthreadstubs gtkmm2 libXau libXdmcp
lcms2 libiptcdata libcanberra_gtk2 fftw expat pcre libsigcxx ];
NIX_CFLAGS_COMPILE = "-std=gnu++11 -Wno-deprecated-declarations -Wno-unused-result";
# Copy generated ReleaseInfo.cmake so we don't need git. File was
# generated manually using `./tools/generateReleaseInfo` in the
# source folder. Make sure to regenerate it when updating.
preConfigure = ''
cp ${./ReleaseInfo.cmake} ./ReleaseInfo.cmake
'';
enableParallelBuilding = true;
meta = {
description = "RAW converter and digital photo processing software";
homepage = http://www.rawtherapee.com/;
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ viric jcumming mahe the-kenny ];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -5,12 +5,12 @@
}:
stdenv.mkDerivation rec {
version = "2.66.0";
version = "2.68.0";
name = "calibre-${version}";
src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
sha256 = "1dbv6p9cq9zj51zvhfy2b7aic2zqa44lmfmq7k7fkqcgb6wmanic";
sha256 = "0mn6wdws1xxc4yvhp5vdzb5i5c9dsmamyms1njdzs5fv754rszpm";
};
inherit python;
@ -129,14 +129,14 @@ stdenv.mkDerivation rec {
];
categories = "Office";
extraEntries = ''
Actions=ebook-edit ebook-viewer
Actions=Edit;Viewer;
[Desktop Action ebook-edit]
[Desktop Action Edit]
Name=Edit E-book
Icon=@out@/share/calibre/images/tweak.png
Exec=@out@/bin/ebook-edit --detach %F
[Desktop Action ebook-viewer]
[Desktop Action Viewer]
Name=E-book Viewer
Icon=@out@/share/calibre/images/viewer.png
Exec=@out@/bin/ebook-viewer --detach %F

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "gpsprune-${version}";
version = "18.4";
version = "18.5";
src = fetchurl {
url = "http://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
sha256 = "0wrkvff3c1w66373m2w2ib07rkn3rmbp3n7ixz72qd1swvbk6xx1";
sha256 = "0xd97b7rs5i41hyih6zdbvls090903yfr1r9lflq93dyqhmzpdhn";
};
phases = [ "installPhase" ];

View File

@ -1,12 +1,12 @@
{ stdenv, buildEnv, fetchurl, mono, unzip }:
let
version = "1.5.4";
version = "1.6.3";
drv = stdenv.mkDerivation {
name = "keefox-${version}";
src = fetchurl {
url = "https://github.com/luckyrat/KeeFox/releases/download/v${version}/${version}.xpi";
sha256 = "c7c30770beb0ea32cbdee5311d03a9910fb7772695af3aa655e4ae64cd4d8335";
sha256 = "dc26c51a6b3690d4bec527c3732a72f67a85b804c60db5e699260552e2dd2bd9";
};
meta = {

View File

@ -8,11 +8,11 @@
# plugin derivations in the Nix store and nowhere else.
with builtins; buildDotnetPackage rec {
baseName = "keepass";
version = "2.33";
version = "2.34";
src = fetchurl {
url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
sha256 = "0n4rkx2awyq1gbqiby1lkf2zw82brji96s4fkjsahmci528a882i";
sha256 = "e3f184e4deddd1aa5ee2b52e2373c772d3f3975e5eddb2fd729eb27b437011aa";
};
sourceRoot = ".";
@ -20,7 +20,7 @@ with builtins; buildDotnetPackage rec {
buildInputs = [ unzip makeWrapper icoutils ];
pluginLoadPathsPatch =
let outputLc = toString (add 8 (length plugins));
let outputLc = toString (add 7 (length plugins));
patchTemplate = readFile ./keepass-plugins.patch;
loadTemplate = readFile ./keepass-plugins-load.patch;
loads =

View File

@ -1 +1 @@
+ m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass");
+ m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", SearchOption.TopDirectoryOnly, new string[] {});

View File

@ -1,13 +1,45 @@
--- old/KeePass/Forms/MainForm.cs
+++ new/KeePass/Forms/MainForm.cs
@@ -384,9 +384,$OUTPUT_LC$ @@ namespace KeePass.Forms
m_pluginManager.Initialize(m_pluginDefaultHost);
@@ -386,42 +386,$OUTPUT_LC$ @@ namespace KeePass.Forms
m_pluginManager.UnloadAllPlugins();
- if(AppPolicy.Current.Plugins)
- m_pluginManager.LoadAllPlugins(UrlUtil.GetFileDirectory(
- WinUtil.GetExecutable(), false, true));
+ if(AppPolicy.Current.Plugins) {
if(AppPolicy.Current.Plugins)
{
- string[] vExclNames = new string[] {
- AppDefs.FileNames.Program, AppDefs.FileNames.XmlSerializers,
- AppDefs.FileNames.NativeLib32, AppDefs.FileNames.NativeLib64,
- AppDefs.FileNames.ShInstUtil
- };
-
- string strPlgRoot = UrlUtil.GetFileDirectory(
- WinUtil.GetExecutable(), false, true);
- m_pluginManager.LoadAllPlugins(strPlgRoot, SearchOption.TopDirectoryOnly,
- vExclNames);
-
- if(!NativeLib.IsUnix())
- {
- string strPlgSub = UrlUtil.EnsureTerminatingSeparator(strPlgRoot,
- false) + AppDefs.PluginsDir;
- m_pluginManager.LoadAllPlugins(strPlgSub, SearchOption.AllDirectories,
- vExclNames);
- }
- else // Unix
- {
- try
- {
- DirectoryInfo diPlgRoot = new DirectoryInfo(strPlgRoot);
- foreach(DirectoryInfo diSub in diPlgRoot.GetDirectories())
- {
- if(diSub == null) { Debug.Assert(false); continue; }
-
- if(string.Equals(diSub.Name, AppDefs.PluginsDir,
- StrUtil.CaseIgnoreCmp))
- m_pluginManager.LoadAllPlugins(diSub.FullName,
- SearchOption.AllDirectories, vExclNames);
- }
- }
- catch(Exception) { Debug.Assert(false); }
- }
- }
$DO_LOADS$+ }
// Delete old files *after* loading plugins (when timestamps

View File

@ -0,0 +1,63 @@
{ stdenv, lib, dpkg, fetchurl, gtk2, jre, libXtst, makeWrapper }:
stdenv.mkDerivation rec {
name = "xmind-${version}";
version = "7.5-update1";
src = if stdenv.system == "i686-linux" then fetchurl {
url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_i386.deb";
sha256 = "04kr6pw0kwy715bp9wcnqnw1k5wl65xa87lhljrskm291p402jy1";
} else if stdenv.system == "x86_64-linux" then fetchurl {
url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_amd64.deb";
sha256 = "1j2ynhk7p3m3vd6c4mjwpnlzqgfj5c4q3zydab3nfwncwx6gaqj9";
} else throw "platform ${stdenv.system} not supported!";
nativeBuildInputs = [ dpkg makeWrapper ];
unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
dontBuild = true;
dontPatchELF = true;
dontStrip = true;
libPath = lib.makeLibraryPath [ gtk2 libXtst ];
installPhase = ''
mkdir -p $out
cp -r usr/lib/xmind $out/libexec
cp -r usr/bin usr/share $out
rm $out/libexec/XMind.ini
mv etc/XMind.ini $out/libexec
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
$out/libexec/XMind
wrapProgram $out/libexec/XMind \
--prefix LD_LIBRARY_PATH : "${libPath}"
substituteInPlace "$out/bin/XMind" \
--replace '/usr/lib/xmind' "$out/libexec"
ln -s ${jre} $out/libexec/jre
'';
meta = with stdenv.lib; {
description = "Mind-mapping software";
longDescription = ''
XMind is a mind mapping and brainstorming software. In addition
to the management elements, the software can capture ideas,
clarify thinking, manage complex information, and promote team
collaboration for higher productivity.
It supports mind maps, fishbone diagrams, tree diagrams,
organization charts, spreadsheets, etc. Normally, it is used for
knowledge management, meeting minutes, task management, and
GTD. Meanwhile, XMind can read FreeMind and MindManager files,
and save to Evernote.
'';
homepage = http://www.xmind.net/;
license = licenses.unfree;
platforms = platforms.linux;
maintainers = with maintainers; [ michalrus ];
};
}

View File

@ -4,189 +4,189 @@
# ruby generate_sources.rb 46.0.1 > sources.nix
{
version = "48.0.2";
version = "49.0";
sources = [
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ach/firefox-48.0.2.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "2e06c639284e5258e9bba9f02f3d21df6a3a37e3dc55667b2836e9eb68ad5ab24ccd99f82714da14231b5c6a301a40acaf9763ca19b920bb4f6acf535dc753b6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ach/firefox-48.0.2.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "d0777aa0a5128f9ea0b0929781a7d86ad81e72bc8c204e8f026d37bac120d0e210b0a0c8ed42aabd378f96fe52237a103ea25c773b49ea814d06862e770e3180"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/af/firefox-48.0.2.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "81cddaae3ab0ac26b3cb5faefddfb088addea7f5d112a317d5c56c16cdae2801539e7c9c4fd9d77a14ad77db7a96a75767d5c08b3858455b801adab8a997da02"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/af/firefox-48.0.2.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "5020fda908bcc8b3bb937c5ea4f5a78e74cf836488937f3c4c6f6533a57d5e086e88a85fefac3983407254e3f9a9e2a0b03167095ba9b6e30e69b7381dfe756f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/an/firefox-48.0.2.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "a47b6bd64f1e654ed9041035c36ddda60cedaf634327fd005f9610390a53433da21f12fbe4a3225d756755544a01b9fea463965c47c08145103b357e5b1071b6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/an/firefox-48.0.2.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "31d116e6e1950ae3e93ad0ac744967f00699a04f3df89f9e0e4a2cea62e2a9675f7499ca41fcc2acbb91a72cbe3cd74f057dc25a6db947b1b5448fb0d92decdb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ar/firefox-48.0.2.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "bb9acd986a258cdc8c368aa1375cee500bf45be31821220c90d562bcc3d526bafc5362c91d4dbd7a003955adc9f26adfe8d62403cf3b9004b82f3880a5b58db7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ar/firefox-48.0.2.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "dc4ae811b19887c8f039b046ec2d48d4aaf628f7869e471c97b637e5daaa0e0b0b96fa327ab3b2ba3a184ffbf91213f4cb619d2d2a396b22849782ac41f7f31b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/as/firefox-48.0.2.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "d9dd79d56912bc65e4993214ff58f7dc725077a62e391495acb6aa4b50c371d1c843811e5c511408dc3b343df0056bf33efc1e8f16177f4549ee49fe7b22ccdb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/as/firefox-48.0.2.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "f8278a0141814f2b0e1ac4bb0e94e6d566e97943fabfd7561e249de6a2da9650edfc42456e503ed2473d7df65b4f1949d5fe423b79f9519d59a1ece121361029"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ast/firefox-48.0.2.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "e1aca0b09d6c7ef78eff26e88d817a203ffc142f9be998ba08be74dce67da8ae4c728853c6f6f19a4b18fb439ed01fab556718a4f991a206bf5cc069232665a4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ast/firefox-48.0.2.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "53ab2cc04741152f11fd4f7ad70eec7f927c7aa70997cf9d3069736a13bafa3b26dcabe610cb5dc10243a1b6b00f22bf9d6bc05afd26d0b7de254f55412c5805"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/az/firefox-48.0.2.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "39649887ca38ed1beb819227d80f5c75b0fbc08c537d6af48755c35a0ecc195127d9cf4c1af05a09b0e9e604144f5e9e00ad57d1cf895cc3f0142b482c98980a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/az/firefox-48.0.2.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "5c75fb1a34fa9fa447f7b279ef57cd0701baeeb95a2dee48b878d01d7e33eeba3d7985ef375317080a1a74732bebc4c26883bedfd00578d1a653deb2a250ca6e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/be/firefox-48.0.2.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "7879202dc251f9f2dce656058e51a724b7e49e9b03db8bf5921448b8e48b74186c40425ef51a84be6df810819ce2e297895017ac748b30221e3cad73c80eb0eb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/be/firefox-48.0.2.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "35291f1c2326af74938c953ecb55e55951ceb8fe10443f39edd2b505dfd137be161f8c4a1e776e3ef75311f52609ce74cc5c13fb78f59893cbf7d7bdcb4c7162"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bg/firefox-48.0.2.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "07d630045d9c99655ef04b6de10e34e4c1eb6a38f5a1eed4f08f90ce0f61ca9129235e48882005c0c98eb962273ac644a46dd4cdf76b748ad1b007a018b7f1ef"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bg/firefox-48.0.2.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "457d65bb0afa6c755048191a24eaef286f5fbd9b68b020abf554c7ad978398605947cf276ce09d4447cca4b64f053b956af805196c45617f2f14911598a75f6b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bn-BD/firefox-48.0.2.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "a355957e649ab82a6693e8da580b075111fa14bb1efa722397e3fc56c1dd14e6bc4f1315c7a74f1dc47aca228d0faa59db358b7f2baf79939f480c2e4113781b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bn-BD/firefox-48.0.2.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "612ef87c01fe221c6e546f110efe228a73e632312af5ee3a4324904aba028365d06c9aaf080eb010b90f653d0aeb4a19f78a0abd15ee02688102cfd4f4c15f5f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bn-IN/firefox-48.0.2.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "43e41905c397a2e311ab1a326f70070e0a1b922dd38301cfe9af17ae7916f2b697e1f3d218bbfd26741492d10ab5f6623a182691f036dbb653996d87cba10861"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bn-IN/firefox-48.0.2.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "29299d5174cc226330f7d89b734b15f934a8dbf6c577e81f37b362ce8fc2adf4d8f901f2ddbdf90d8d43181e369b5e339408604b5cd0bea8a2c6eeca5e319957"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/br/firefox-48.0.2.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "38ed922491f7690cc9aa62a4d9703c7d83dd67b067f3901a8ce34a3f937063fefacc0991530a79c66581554a86c564f8d0468f9a3aaf500c56abcc89ae4d872b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/br/firefox-48.0.2.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "efbb2ccf082f2ac5b5d580f02642730b934e367fc4b6e841c53fc651b43c129ad092c0028d810d94aed102f01b521838dd81a0137cf057e903ccc78e182911b6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bs/firefox-48.0.2.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "d9183190513145a246db8592631b22c61cb895fd8b8b5294c772da1c584f63cfdfdf67ab664cea5045611a9366521d91ec3ddeb74079a1046886ede1c0421ea5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bs/firefox-48.0.2.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "140a0e65e8995702986e3c85fd38ef5b729911405156a3d3fbc37d7c10685a88300850c339ddb94687994bfa8482fa1f93690e3781d3e02f8f90f8f6eee17371"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ca/firefox-48.0.2.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "d80b1716eeafb294b2e1d68791e9d84b45285851361f732ec84688b5c440da1c30b669ac01b7a77bf8e065523d77d0a5a4e997a98a82652100b2111177c5567a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ca/firefox-48.0.2.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "12282634abc6acbd0877436258657116d1a0ea07f90b04447d8ce372c950e3b5288de9ae76a867b1af5c2d4dc2c85efbb349df616eaca95aa03774d7dd331c7a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/cak/firefox-48.0.2.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "407f1eb4b637a8abdc342b61ed898a5900d9914e5fc67c9c9f44327221dcbcb2fba0e27e9b1af5540d25ad282e9765d1c91bc70ec4a7ac641404ce05d83ea22e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/cak/firefox-48.0.2.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "a611f37240c3b22e715121d64ed636a650620022edadf8090cd4a51769373c669f230efd39316244b4d727244e093087fb88754aafdeba2948b0bff3316092e5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/cs/firefox-48.0.2.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "e7c7a1564944bbbc5852d11c11480bc03366cfaaacd132f2252a9322fe4f4cc94cc4d7853b56b4c5a130882f254fce4d791a047e5d141dc5143c97d5248da72f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/cs/firefox-48.0.2.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "d6931627e77fd8e4e0c445573e05a5e96bc6a2a47193cf2fb21403d0c10bdf009eb699d1cad6daee787e569d3508fb85f6edd8ffea80b69d6afed724d568ea50"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/cy/firefox-48.0.2.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "15df651ea244c39150534bcb467649467c636281b7442af8ef5f2a296104b39ee951202b950fd6a960b10ff54fcea0f37a0b2a8f76cb969fbd9ed57e5a92d66b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/cy/firefox-48.0.2.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "0b168a6fc6f181303f7398ee3366f18bb2b256d654229da9cfa46ce0b424b4d5d414652509df3ca6600ddc7a9adf823050165d716a3d376a08563457af3e6696"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/da/firefox-48.0.2.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "64ef134d5839659c096d556e7060ee07ec160c59adc9ca3105eddbdc1c2b2b166e00996b2a88422461c7bdecdcd71b917e4ce1df8e92912542c413845ace7c69"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/da/firefox-48.0.2.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "cd477b4c541fa16f8c4054f670143c6605b7beb48fbe1b26948c50435e11f0d4fbcf907f192b53a1419a2be8589daf5c1efcae013366567a8c0003da0186593f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/de/firefox-48.0.2.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "6768f6445dabcd1e98ed27a8a28b930a160c7717b688ea38e0930055c59c123fcd7f52d0159dd2b2425978fd9e8e2d0e4e0877e6bba659f840836ff68b2e6c67"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/de/firefox-48.0.2.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "6dd6fe70fc26f4b7fbcc1e7ec212263e4e6822d365704364ae8f4ef3ede45a68ea1651e65c02f36e90dc44f2462a874703cfa02bc45e74bf0ab19bc31267e471"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/dsb/firefox-48.0.2.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "328e30142ed129560ca2a23de9963f40cdb0ff87454a9257b00b9bdd9b5d566b6f2f263c484f3c58c8e52ae6de5221a1ca936f7960ce01d88f7ba4c9b97f789e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/dsb/firefox-48.0.2.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "7e57b66afdfca30e7c770ec87d7ffcbdc644c54e01e037bb348709c8f091d82da48a3ff3a3dd8187f12f5ba1f94599f8aa8ed375c7e6bd90a2f787b3b5a09340"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/el/firefox-48.0.2.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "ea715903a796e386aa1d1bca22a0dc3cde08690efc17ecaa8380f086fdb0968292a838296adb4c78ac30b7c93baabd4dc19d088ffd890e11c76b58d9baf73efd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/el/firefox-48.0.2.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "1bf80e3b64c95d74b7893e2ee36947f293f574c49461d742d7f47ea990d198fa78d9d3f9c04ec3c4d81745549a23b2a502497766441c61098b9ccd5f9169f191"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/en-GB/firefox-48.0.2.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "4db30d4d7140cdeafb41353133c9ea5679f5eeae8fdafde86887d6ac3553d1d0db74f2e189219f6f7cb9a8d33f2c2eef58b3280fd0d435593109ab5058404eab"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/en-GB/firefox-48.0.2.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "4b9d24e2faff85cf56012baa7c4d32b29173f903a5c19b0ebc20c7959ae291be39ee875f98f08a07d16aacc0fa5e7633245e265f11b30c64f703f22c889abf7c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/en-US/firefox-48.0.2.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "656ddb1fc57f2308cd5a6b376828676d9c7529dca18751e5ec6f4b903b47cc31c15f6fb70717605219051f8a54a89d9c579cd70327e2029ca374953671d9d1e6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/en-US/firefox-48.0.2.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "ea8a1edee8ac64720a2694d0ed0ccecbc38d1b1aa6b65fa87969b31189f624549d3e3712052c55e0aebc65119701e88d4397bf01c8526b3ba662e6583acec815"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/en-ZA/firefox-48.0.2.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "27b805f5f89f999bf5a95f174dcc6d611dd297e8ae094e1557300d12311963a3410ad0c077355e2cb31d0e134f0d015fbdf7662e2f172174a1abb24dabdb4040"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/en-ZA/firefox-48.0.2.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "abad4283afed609217799fd3f97e6dd1b89d5844344a68912f712a8796613db371259883b92292fa12a33c923692f7302f63123431fbcba590c780fe4a9e2517"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/eo/firefox-48.0.2.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "04fd9ec015150c9c8d26c69e7e0213caeb3a880b162eee48123b0355f73488bf667d5217cdcd2c45cd3cd5fc88c01ad02b4e2cc40b220beb93d55d64689206c6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/eo/firefox-48.0.2.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "fabb940bc6f392ed1f5e6e0fe23947d28e1b8143f29784509eeac361050921f1fc97ffe18e51f47026b7a69178ddbb367e4dec6cda45feccfc6876e9e178d6f1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-AR/firefox-48.0.2.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "01015a8756aaaa012fe35ba9d8192304fe8a22af6a512a644b20794446a31738b9142e03492db10e0e237a63cb3ffa2f581e700df00dfa3f4616157782cddf28"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-AR/firefox-48.0.2.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "0383d5df8041ee2ba1d32b9b1e090c50a4b911bcfe5354d0cc43a09355a790882afe5a9a837dcf2d9f4456ac75594112c5e3f520400e23d7bc91d37499ac9533"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-CL/firefox-48.0.2.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "4d74b9de4b4f0ab8ec43290d7f11c0439a1050e8561ae5192ff4fd3d0576d7d1857c9e616ed75b6fe7da5207e284b9713cb7184e65b093e101cbcb25fd90f74f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-CL/firefox-48.0.2.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "77aa56f1fca65c9374f15f012ecf1bbe439b99ed6ebe9823cd7f820e06cb10014033a4f6abb914969d0a5b03564385910af2569eb060c6065b7d1ceab5bbe7ef"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-ES/firefox-48.0.2.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "9e93a646c345a5c129bd9472601dc9d1cf3955ee0e6ad44a4b55f2dec7dba7d133c865d2c8b59383f48b1a870e2e02f781c93ced3811b03873e9c2d241ba0513"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-ES/firefox-48.0.2.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "488b79aba6acefe5a7973d63ba034eacc8894fd2e5aaea6c010af84975f45f00c49e85c003e876f1636a00dd396c6071511c84f61c0b6961ab677cee6b31ac3b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-MX/firefox-48.0.2.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "d2c353bc74b35d13f0e018ac8f8a1c3bba211524269b82188504e4b76701a2db2b085bea9c293caee4cd8ea8251d1c871ef0628bf7fe17123a0ca4475611dcc2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-MX/firefox-48.0.2.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "6bfea70619b2d9e853b36ad93ddc4b5b09c98279541eb737dda98009e61642fb9066ea097230fdfd942286d94fe512365fb48fa30ffddbde898589a471e02f89"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/et/firefox-48.0.2.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "c527a2736b3fabb6b248816e04373235281a5dd0f1275108fc006db1f2e48485bd5f413169f698f94d015aab2d6d8a00ba638a35eb574556453af2b8a2c20172"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/et/firefox-48.0.2.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "f3fad1f2f0256d0bdfabb3ce20eb475c1f54c762e3af1fec90565eb18cd7ef3603586c79821bfadca27eb7db42aad3a887abb348f955d394c8bbaad909314ce7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/eu/firefox-48.0.2.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "772423ee4b87e308d1dbda39265e6671a6576c3b950abcd2dbabe2491a8cc5b5b6fa8ddbb00504efa2f5f43b59339423ef1347a3a92b8f00f61ea4be5bab2c20"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/eu/firefox-48.0.2.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "0b87aff412594848f1aca67e766c2423e1f28ad294a42feb894a69514fbd97efe97e6c119a19daba21c8d09f6e205ecc94bf1c4d150a5b684f7990494dcd2524"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fa/firefox-48.0.2.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "9d8c4f63297198054074bf244f947cb92db29f70695c69c6fd54cc18844653e4dae1447543c8ad8b8687c20231d72b6965e59d552aafb6f4c35bde89839b3909"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fa/firefox-48.0.2.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "7f3248c02c142ec88a9a32eed0a3f9802b6ad18a6fa56a28f2b5fd580ca917850352bbb4193559686f9e95f53e8e85727afd500eb03e3b5181180a1e5022328a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ff/firefox-48.0.2.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "fc160572277bfdb35cd3fb9c5a5b0a39710c78de4782ed679b96ae00c6cdf22b14d99d62462679bb4ab9bd68b8f7dc3cf43fb390a382e31120c91b24a98993f9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ff/firefox-48.0.2.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "c192466b8f92186a80895f5bfe1094747b214ace2135c72cbb19bd71a7fb7b77491c8af4648a88dcbf2a1235d73a408c6122d7b46fe923633bce8d7113f03298"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fi/firefox-48.0.2.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "98bb77f6ad8b39d506e4fb0666386332fa22f01f4b7362fd614ea951c3520b7f692e8282d1aa175d94d43c46c267c941d4cfd0d19b454a7345ce13f7a264b6bf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fi/firefox-48.0.2.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "14bf0b3a34dd2a6a7b5d0dcf8f5c0313e643f8a730afda92ab94afcf8505bed895724098e991c28344851288180d25e18b5327c44c742918d7e83007177cfb6c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fr/firefox-48.0.2.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "b6a4ba15cc2c4d0f9aac90789e86f69d983e7dd33b744d213fa856259b57192e403ec67fce870d710782f0c0d3c24ae23a38bcb101d60efc967e87bf9efc43af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fr/firefox-48.0.2.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "dba11e63b3435fe2665f5437147d854ac590394e1f270bc0ea9638f0f8622a8639ce54c74fb2ef0b75cc6df2eeaf28fa21ae4aec6a41637fa2b107581970ec4f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fy-NL/firefox-48.0.2.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "6be75948bacadfb5de5f49f5a1455294e5a511aaa30cd9575823c91b304b1f433fa5e10c146d971497f23052e6e2db2111d740ffb9e48ea8aafac81fd5477ff8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fy-NL/firefox-48.0.2.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "6e7e28ff66b29d39e87625711da4d83e376cca5521f8734b25b60b34e9bd350fb6b24a982306b902bfacbf367d9ebc3bb0d1de0d9d4f7fec39f5629aaeaec79b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ga-IE/firefox-48.0.2.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "22a3def2c74cefd8d7a254f4b746b1d131d9bc508f686c2027ad29bafd31a4e414d10a94d0c8c8ab7a4ac59b8a453e98183ce5e7597fd1624710803c139e704a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ga-IE/firefox-48.0.2.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "cc5ada6a14ca46a89a8d20deefd7da57b012ec1cf2a271e6327de676639217b67d60208c9bbf4ea88418b5447ca62dd2addc584613e55a51afe04b3fbafe4a60"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gd/firefox-48.0.2.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "1c25a5d9c95c38faa1f9ee2709b1dbd2c3adad7b7c0d18a56dfb0e16b61cb0b47683e259d2876e2cce5a25c738fcec422939e417e3cc71229917af043a6425ac"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gd/firefox-48.0.2.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "c4f68019652565cb4fd9c3f7da7ff476442a6d2f168531db40f29524bf4b4961b04de98effefdbff935c8a7bd110fad0cd72aa229500348bda16807d55fa5de6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gl/firefox-48.0.2.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "a74a1c2f18c2955f643315bf896d7ad2ca2b0f42c84622244c8ecb448911acb9a8aceb27e15b7f643c95293d7afef625ad7c6b927732e670f811a99287ccce3b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gl/firefox-48.0.2.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "51cb84043f5bccb269c39fd7d043445d70a750ebc13fa85d902aabeafdd72d6696eaf0b955a0e040abec44c9134ba6709b67f7b635b80ad45eb78fa5a1013d44"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gn/firefox-48.0.2.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "f05f87f4be059f08a874cd28b5eea0a8be071bf548e726f9e14a47f0d96f9d0d9417cebb92919020fd5fc40801e83455a543270d61ce83652909508eac43d5a2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gn/firefox-48.0.2.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "29f9a5895df46fb1844e447b1289b791d42b14250f814875afe67873cb00aba43d62175f29debc5d099abb9b0b4050465d2180d25987ec721d747ab46f433f47"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gu-IN/firefox-48.0.2.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "b45dcf6d34b54bf69f36f49fd71589257ed6ce039315e50737c2ef4434917fb6b8dac18a4ee903575808d02762282620b9830c564578b87c1d4a5bd5a2234d30"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gu-IN/firefox-48.0.2.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "efe560a176f13da9995ca59e5b8858d0c7a06c91aeebf361affcbecb0f0de88c977d33b15eb8ec9f80f305000b0ef2b621addf44cfa9ff4fbfb740b937b441f8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/he/firefox-48.0.2.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "314706b90bfd6ea3c94c28f880284992b0886897a4576c5c55b6bc2b02aa31e7050ccc11af1d5a085633a7fe65dd5fd03a435fc378c64ca5ddaa10ed91853f58"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/he/firefox-48.0.2.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "44b716392d79a000732a3ce2737f2367f65d855481c7a0d75f33898812a49abcbe73ed6c57a983035a6628b5f80ecf3921a336e4f45c964a7d52145c71c73b48"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hi-IN/firefox-48.0.2.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "03b36a04acfaf4a2e79a0e34368292723aa9aabbb2f4a0f0508dc8a7c7511133d18973ae08fe00b2ea571976ed6acabec44092694fc230c4cdaeee174d6aacb5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hi-IN/firefox-48.0.2.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "7d1b3d4e3b33c61d63671f4ec4a36e422c2ae99c192231bfd70d98c68b81a8ea61b0538e8efa47a3ad4b23ba58e405dcdd8044a7403aa1ff241aaf4ab76d4eec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hr/firefox-48.0.2.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "eb445e988d3ad1b009c1a8f92e07aafc38babcc8641c92b161efede4b7079731e72140d609cadf6220bbba23e3146ccabfd7fe875836c962ca4b12f451e8ac00"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hr/firefox-48.0.2.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "dbb8fa4458a36c403f68642c41c15fbd9cf1e7a703805ebdde827b9bf25752885c0263c1a604f37d0508994513259a2e3719b288fa9ed4d0b563d82e0e5f0dd9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hsb/firefox-48.0.2.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "e2b7c81ff1c57f1e656169fd206f33660718278468f062e46249b875babc6598857bcfcb884ac658ebe907e745413c82d948d8bf7a0ec34617a55cb0ae90f7e9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hsb/firefox-48.0.2.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "14544652977e0faa49cb5727e283e1e6cf59df14194b67777ee151e37ea68c53ed8efb2b5000233ffe8efa530ca881d4e84a7b5bf281a0f51d8baffb115f11fe"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hu/firefox-48.0.2.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "072c40fac3ce476abed251140e71b1c537aa61ba29460bc26a6cbf224a43fd926cd2e690929c108e0437537025fe0a45fdda71fc2ac6637385a0e75678330cf8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hu/firefox-48.0.2.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "e9893aaab901d03e9563bf84839577d55942f8d78d1f520388922392d7e7101d7752354816696f6fb1ab77bc2473b0cdaa7b2c62d6412c33c6616353f0b9a984"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hy-AM/firefox-48.0.2.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "bd4f2e7a1c9c7ab1558caced2716acd3e0d3441873dc00f1fcef9e20bc2b25e1d3ec3d520a378c3b8fe9bac36a500d745516f16f14aa9b530c9ad940565690f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hy-AM/firefox-48.0.2.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "e36ba4db7706d08d03c84cf3a78c20c60e7e67ebed01943d54b1483ec86e5b2f17dc7a1319c29863e7f6fd3b35ff390d1b462692c06c8ec26c164c0daa251dfb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/id/firefox-48.0.2.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "61cba41c80783921039ecb5038bc16da52e8191e38b8dd8d276225fe21f6bf1c8628d0e8f15292e02fa07a962ca355d7173f0dce6cd3b2259f87b823d2ce70ca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/id/firefox-48.0.2.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "12ca05a297c65780d1a2df33aec2bed06498db34e98283053b1f7082e96fd83f92d320a8db91d7e4bd44405c21c5d276913f47403da479cacb3a082f6d1e43fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/is/firefox-48.0.2.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "7df3200095a8b8b02bbf41f1a160e4557e059e514ffa4ef25c0dc0e274c319677d134cd8d2583e4ec51bed68091ca7cb8b13bf6e26afd682398ed285dc055da7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/is/firefox-48.0.2.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "c55649493a8bd47a9d53ffc8d6c22f741550fc40124f54bce320c96a73316e6c48229e12d0615c48b55e873b3ddddf38320987af5a109db68f53646e3c8206a1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/it/firefox-48.0.2.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "f42fc4acdb2f30650c62dd8ff440e1def00920a1481f8f008565517bb535459773f8c7a39d7d89edcac91b683f92eeeac41c0c4d4c5d4fbf6d74f66ddf528a07"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/it/firefox-48.0.2.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "c7828610404f8bf93f3dde1feaf713e3111a7d3a6db792b013ecfc0dc225782d537d5842ac35af292451a7c5e475407655f246881472575d2912d0c607b52c30"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ja/firefox-48.0.2.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "9464f9a33ca3d0fbee32df31d1fe677ff298b21209986db8cc4893ff9414a96b885fa408f36d32c95e68274e2815a77be02c3859754c217874a5d3c0b6d280d6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ja/firefox-48.0.2.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "d150ad3102d90bcb755bd91c9960710c64518b7ffa445a6f4e15055a449eb9aeb4203084180cf2234c000dbe98620ac91fc9dc453415cb7e981457c43d08ae4f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/kk/firefox-48.0.2.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "d28ad5965aa76f2525164045a06118a289cd543b1b9afd7e0681da4739467858a2c1eaf3a7aab1002c3c18d51a3a5623801d974c0230b78a07a664016d302b33"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/kk/firefox-48.0.2.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "4846ea6f4834cb21b609d1c71b3efbd75bc5a98b63cda04d152c18e0b22ff5980004e01d09aeb83a108ba2c401e655e5b6b2e5ea1a2e9fd707b1bb409c46f3c9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/km/firefox-48.0.2.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "6d3fca317792c6929e55fc0757f72decbbd2f714f259fe53eeb549d0b85984745dd1177aa15d68bc352a541703d1d3f4983943b03c4d3cdc2edb6e57c1cfc2dc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/km/firefox-48.0.2.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "c719b3631626d57da3d14a1ae356122b3df1f3c92a1633e2f85ecdaed9ac83abf066cd2ea5ce679e6e38dbc1d1f6839e2f3df9ff2f8e217f25bd25900693f47e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/kn/firefox-48.0.2.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "76faf5f9b98e4a13a42c71df7411fa51c0b6def1d973970c149b18adfa36b2e2eb14c94e3371d303abb3d0c7e226d9d42b15cb7a77d161fe404a4c567fea01ca"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/kn/firefox-48.0.2.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "a772a4adf418adf933bf82379cc3b69c4f5e426ed63d4d6458a87b005a59070cd035a483718dedb433d9401f4da4dbec70e0a5e920f5046478a1aaa4547547e2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ko/firefox-48.0.2.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "0ada95e8e3367ac30c91be660a037de18c5bb9edaf10d8a078d8c5f37c954717c3e33b710249274faf5e95409f9f67cef28f28d2ab34e452deae4fb66ab01bad"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ko/firefox-48.0.2.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "dda86dbbd40721ac85c9b8486dd54a33fc5978ca79312cabfeb7700e0fbba809062c3b6be61e6c784c6b479f435d4ab886c2a6788dd115585af9e9f277ba6192"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/lij/firefox-48.0.2.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "f9053b301331d36710e31fe6d2172a98af5219e9900d60810bb02eaf1f19e6f4db6e0500de6ef6e77acd4705fdb0bc5025e9db52ef44bb79d82c674b53eee6e0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/lij/firefox-48.0.2.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "63a4b697a1295b92b93d8602abb027be6a07cc58c45ade11957f716d91b3670015901ae6f5a667c4119798f4135c59be128f3c8e97c7ed6dc69b7f2f40c7d58d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/lt/firefox-48.0.2.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "77dc96b596e3010cdad83d3ce2b23f075672ddae73999652fbff24c85ef7ec0a749c1793b77eb7d34bb9c8beb6803d97c8ccc84b8f6ec02a8629c895d1a3400f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/lt/firefox-48.0.2.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "f7252d515e700fae4ffe31219b0135629d50487359947ad2b6d7a61e578b20997b95c4c2a7930b93f1b59ab9262a8b28bcfad22c14fc98029043339e3f2318aa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/lv/firefox-48.0.2.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "44d97dc8855004fd91b96155592edd4f6ac9e92257814eae2727df0a4e1df496e1be13fb95c0e2ba6d0e31e8ea12df659317cc5ac8d005322075c9d8d13a67ec"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/lv/firefox-48.0.2.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "1fa86b8f8cfaec70db3c6033276f1b5a943e2065d78754f873c7ca99897f0195e0793bec936d2471b814a90c5a211a9653d8ef5480d64cd1fa9c49d7f8ed34bc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/mai/firefox-48.0.2.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "df4e98b7414b58c145e7fe82b78c66c5d8a7fa8dbb34f78b91f9160ce3bb9e22ab065485de15e13d3660186760a9cb3c88403e8955ad092064eaab29f8dfe9b2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/mai/firefox-48.0.2.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "7bf726777eaa92f4a18107c4be48024cb2a7ae4a3aa9d94cf55a6b0fa46ab7256f097e7f7c610ae1f748c376063b7dd275f03dc7664e86fc738b867671e5d231"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/mk/firefox-48.0.2.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "7c48c47f916ac8389b5b10bae29d40820b59b3e52fc86b1408c426f4ed662f49243fbe6e7267b17ed3ff9dc179b435fbfa2516dce974972097fb39985039b4e3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/mk/firefox-48.0.2.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "b184dc34a47a9336190ff0090140b47ca345b9445dfe40133ed08ba30bb9966e1f7b5488a5289ddc4d84cb4de0b7121824ed6570afe857f0da8ebf6ab26a5c4b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ml/firefox-48.0.2.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "cb363c7b01ba9d252375b4f01d9515561bec11d72655730aa7c05d95d8ac4ba58288c64638543bcc48fb36387e6ea4e4604f34616d8b90ea068e09f7bfb8be61"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ml/firefox-48.0.2.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "789aaaf1495740adbcc4ffc90ffe0e3dd2b7d1822444bea6676bddcad228aaecb0a67916560cac892067383f2faca06b066782e8a40f39928e7cdf2370a3f0f8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/mr/firefox-48.0.2.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "d6a45cf0bf37fcf67369bfd9a3e0fd2a3fa4b1538a905e419915d5eaa350f812739de97179f2efcedf5aa2fa0571f555fe4012bd05a39adc331a34bab934808e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/mr/firefox-48.0.2.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "46bac718bade7205bd307b7c1ec9957d245c18d305f08d9c2263e070128f49d4fb7e4fbd3b1270866a1aeae8e726a21e7befb884af8d86bf323bc6723cc05c63"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ms/firefox-48.0.2.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "490fc881444dcdda259719b2545de34b8a3759d6f13a4d66cdd449fb629948bf6ded39576a2ffa53ef6d83ff16854c8c0b8521001ce3f43abf1f35387c8d6191"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ms/firefox-48.0.2.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "fc4c0588aeec05fdb2d65adadbacb210d04470e9588b3950d2011ab0e667311aed76262888f9870a4ce409370d8ed19b3d481437bef72960b151f76d0eb7ecb4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/nb-NO/firefox-48.0.2.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "d75931b47ede66d7c5025c4fabfdd918f21b0f66a9d8c2a5e772d3d26d941926da4f0852ac8dab92dc9236a0aec4b5cc1eadf5132d00721a91676cff1d7076cb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/nb-NO/firefox-48.0.2.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "e42a91e469b87235a8deed1e4564899287dd568d0ae93ebe139d499d9d5f59aafc327178a86f36f5f44d90ffb404907c80643f00f1160014708f061afe1e17a6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/nl/firefox-48.0.2.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "e0dbe6187eadcf305546f2916c8d21c6ae6dfa634aa30b51002a8d2ddda412cb35fd2c6cf5a44ab42c9805ec3a6c3322132e5121b04476935d7f67d30291011f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/nl/firefox-48.0.2.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "56b674761390018c7bbfdc8523b0ccef1d66576478cee43a6464d6df3e0da741ed9775e7ab48abf57028f62f43d91d8a0e7b17a8ce301c87ee576f9daaceb1f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/nn-NO/firefox-48.0.2.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "a18693969b1d3f8824ecdc705c3b577dc1288cd5ba47ca0e3cd8e88d0a5a01927f87e56a2beff62d3ca9e6aa325619221f2f134c8c95b0687a49bc0f2cfc2ada"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/nn-NO/firefox-48.0.2.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "73874b50e63de07f73de2feac7a907dfb4e0eb014d913ea433c2f7d3ce9050b8ba811b72884ff7129a149ee38a30603246aaa55d81f11bb80e9fdfff87ba9120"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/or/firefox-48.0.2.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "de8dc3c4b91e96c5e49b32197e1351717cd1b359ba3802c9f0fd39516f25d4df7a9a57b4d4058d32e1d31af3c0ca8e1a8fd3fb4edbdb9718dc51f0881499bb0e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/or/firefox-48.0.2.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "999a71a5f978e2cf507966ac465ae170b4c01602c703b7ee85fa02224c8edb0f789d35bb0a20a5f72c86782a95943e9f8f4bfca301fd74ecc7f063f35bfe1f4c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pa-IN/firefox-48.0.2.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "7378012baf763bdab21238f306244be208c20ade796cb15e2801133f0ac8b00cd92a86403d9591d5c2af94ea6fafd7162953ce88b5e9148fd447118128b2398f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pa-IN/firefox-48.0.2.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "b20490e7303aeecb8d7b158464dd1a4f4b70979d74d0c4f2f15661abd0403dacb4674ea1bc2a09ce5b04ebed2987eab4475e839786e63dfb2f1eedfc44ec021c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pl/firefox-48.0.2.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "e0cf99f816eeca80e7f2a5344b11202be124e1fa1f7a2c206ffb5c349556e0a2d5a7a3c653538bbb867c0a4d19eb9126c947806e0f021b68a9268d1913a178c3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pl/firefox-48.0.2.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "fe27c64b344f6d02e09e240f1a8c45236c9632c2ea9422ede227ef4c1890bb81c049a8c320e4a53cc818c129927e289f8279a64cf15655563958af23b4ca7076"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pt-BR/firefox-48.0.2.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "868461b1d4d971ae4af0010bffa03012940758fd5ae10c05045c77fd5bd0f50997775a1c390f1cdc553197eceb583de47659ce84055145a290ca81e6e66a0a36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pt-BR/firefox-48.0.2.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "ff50b389d0c653db38a4ab8bf3b28095ca81b30340e973315bfccedfc737e9e853711d813fb08c52178e9948f49f7ec1bf7ae7958d611c1998fe938a9478b657"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pt-PT/firefox-48.0.2.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "6a786c014c60268c8d24ca99e40106571fcc1777afef117a0125f7a78658f41cdcab4b16bfc2dd4c7ee520af0753b0b4180fcdcf32eaca8dfec7975146a08a60"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pt-PT/firefox-48.0.2.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "56e911a6b2839a10c3d06b76bcdf0b746fb45fa0ced80c466d240a31cf7e6aba6df21b98dec1a4d3bf11baba2f530dbf06d1f94706b622acd2b08f2b2ef9ebf4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/rm/firefox-48.0.2.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "88fe9ad3d7afc11e195f40ec0bddb4ab5e04446e08f9317f82733e32e536d32b2a68a1ebb235f8cca828555c4b315911dbba178159f12f8bb2cad64a8a44511a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/rm/firefox-48.0.2.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "5153adba79e65368d1e901dc557d311b637d8e9b0506ba979246bd1ab6d5e31e2d885a73be704488457e051e81467412bd45a6c74d30e20198d9309f6ce59dd6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ro/firefox-48.0.2.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "faea58185a6bf7d57134b218a058ed4a3abf4d51dec96a5f5dde0f04daf2a2c8c76846bef8b8b43ed7fce05b4c6431fad52ee61f4e47ad62be95ef8b8914a726"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ro/firefox-48.0.2.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "319792a258e2ba40cceeabf5b0879c2572811484046bf34fa04b213c083391de20da1bcdb654294ac961a8b818f0c9c9287f32948e65eb50f3a85f43b15e538b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ru/firefox-48.0.2.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "ec44f3a0d95beaebf99e9492c7457ecf3857899d4587e8d27ecbd2205d5b4a1c1d0159f471ccdff01b5d9efdeda9dcdf28bb84bbd12c73e676ea0baeafe0afbf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ru/firefox-48.0.2.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "3525382dcd7b2ee2f3ce847245216c0b8925679d539ef2f83e43d9062be06724db6f66b9b4747f3e20c5e7355e4b6ecabd816c07f201f2afe921570905cd0a3f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/si/firefox-48.0.2.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "6cb64f9fa85fe4adddaf68f0a221da8b2dd92625b2302102ad530c15d51c6ca1994ba53a300ab1c054da1fc20c5073deb308a46060ee6d7ab6ca843a930a6138"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/si/firefox-48.0.2.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "499dd5b16a48ecca536379fec41fc9ebefc71ae12963bac44dd0d76014709e2ab219869f3b3fb08f5196b051ec8a7e519fb994b15613559b38b35c4e6d8bbfcc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sk/firefox-48.0.2.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "11a73be8c2f801be0a46831b81980c2a9b2b9a4a645a710d01fb0d9a8e2de91ee18ea57c23b73b25e091bf88b15351a8fa261c349e9768d200172ea053e5c465"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sk/firefox-48.0.2.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "07e1462282e2484b58ba6b413034081a3e99ac907d7285f207530cb46d6ee61a6b166bb9d8820ca696789b57a0dcc3c1dc058975688d06b63b32f8a7a65974d2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sl/firefox-48.0.2.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "64d0b5cfefc8e98c8ede5497164be13854334f72d1e526a08d43d6712e6286ae509347805e9329cb38bb8f4708615d51e56221309198071c0b6ecd6c7dfdfbb5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sl/firefox-48.0.2.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "d6e727ca07084eefc02b2287a286daf6302ea0cc3c8fcc22f238ce2c9074e95c0ec031068acdeb34277786670a91faf85027c9ae5acb963d150b1a89e534f98f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/son/firefox-48.0.2.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "9ac81b861b81d7cd4e9e71b6cf72a1bd8469c8190371b93b41034596148d831ef7f231b84de9cb8e520d7e3e92e83fdaf2290bca5e9c578ade17e0dfab41293a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/son/firefox-48.0.2.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "9759f52732b9a84b8c6b3237356b0ec1c2aa0a2a1db79164cee491e761a9e10d88e931f73a5bbf0b7ed184738c44d12e542903577e1f0811f823853d43daf2d4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sq/firefox-48.0.2.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "c7bc8ec81124127735d49d74bb12b77de24a5a851c34c3728adc752596e04c6b1ebeaf1a361fbca36631135cd9e385664adaef4d3c76ecea4d41cf88d7b6adfd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sq/firefox-48.0.2.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "aa7b7c20f372f23d507aa7bfd088b2d2306b267a3cbf1b0004400d29b96187d9ea74a77933b9dcc42ef081d7dcb8db56b397d37ff001c61bed22976a6435d3b8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sr/firefox-48.0.2.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "cdef642d72e3c3e33c1e2cfb8a5005249719390ce732b06ffeb15b01a77539263605fd8657ac8cbe8acfa2c92b2e1c0dd2168728ae2578e25453d6d79c06a17b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sr/firefox-48.0.2.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "f12bbabaefb8811d3babe7b3673fd7f281645bb8bba0372594cca4fee4e0b81afedf46378fef714c1e624ede6039c913f66bb227a2d076a6950a0e623606adad"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sv-SE/firefox-48.0.2.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "dac4342478d5a8e2743c6cbb44f58774be0b9bb96d9ec7a94b4ef41d093e76a511ff914d323ee5aa55cd8a00292c477e41eb0bb9fe37cfd91c89fae432a661b7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sv-SE/firefox-48.0.2.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "44323f6ff400058dad98f2e7a2f82afd52d706fecd34e7a6dd1780f45b6af77d2f6e892e2aa33784e4624f40ec5251e494ad0b8f95bbc11351dca94c599b405f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ta/firefox-48.0.2.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "cac58900c6d169d1ef3828b4627c36c86224e21a011141c8bbf9fd3df3ea3bcddb5ba821d7d8ac9f5e6f5e348d1ae3cd92cbf2c151d380c22cb925f595cb637e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ta/firefox-48.0.2.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "38fba18d8edc2a4fd614a39b77aeeafeafea98e1dbc3bc2863284bbc2b7b07d28b273da9e3fa0bcabac90bd8049dc295db3d28e0dd0f1f522bb496f06d7e7c5d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/te/firefox-48.0.2.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "25adccb31523a1159fa9022791198869d87c8ef44deb8e3d7626a2500ddd82fa977d3c294d755b7e0385eb4dc80e00067091da78c65ece26e45b3ab9f2a4676c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/te/firefox-48.0.2.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "550ba329d8c968fda79d0dbc7291f83bfd66227ba60a79c697cfb29a81216d3323853a651e401a0a8d02c658093330470b42bc0b91f4e27bcde368b33072ed8f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/th/firefox-48.0.2.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "a41abdaa15a97e55e0062a9f114a80bdc0e750112c15fe7204124aa1f9e54ad3caa1515caf145cf5e5269f41d1b32d8a0c2fa6691612e1b36fbcbc685ba17f79"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/th/firefox-48.0.2.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "ecd440389c07042aaf7aad74a135562eaf60c23f840bea0b9b3b62438610c0adf8de1c2ca57ab700f70913ee498317d92fd1c00f92d1af5d6d50a95c15d9bf72"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/tr/firefox-48.0.2.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "06b828afd3c9a89aaa448d9a8e18579142cf19d0008c409e115bb0148c4cb298eb2e896bdf20f3593f5f873489eb9b701104643d6088218c98e7b2ed44a6a775"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/tr/firefox-48.0.2.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "3107986002dd0b05fc10de856a532c40d5c38291bfbea07948b2c4fefe9cc2d4f5d8567b0e9856ec7fbbc7004078bc485a572b1a1dacf444db5c71aa7684edc6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/uk/firefox-48.0.2.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "9e6d5854a468c5ecc942735c89d740fc8e304053f6e07a9caa3960dbf95e4cb9a6c7c0dd2e9e951bb49314c4cf0385a5a99ad7df6700ba21b9816f6aa3c77689"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/uk/firefox-48.0.2.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "ef021c365d2ef8d2eeaa6a92ac5d9d979361de30e2de06c7442f2085d66719a9fa876f77393737778f5b8afa29cff1898a0ac638df2e45b6c54e0c25c7c9b2b2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/uz/firefox-48.0.2.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "d15770f8b6db9f55ecaff13d27a0c2559c032870873930c420fcd2d94c79ef3853138e42fe4205b5ac8af33aafcd6b2130c712025ef49801717b153e416058bc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/uz/firefox-48.0.2.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "4b47c53585f3ed44d80d0099596ab710dc6565499c2f9ce0ed38ac24274882d5bdab16260c4c67c73b1b93b4fe9a8ceb0ca135b2d432fdae28c91025d1cb2e9d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/vi/firefox-48.0.2.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "2d2dfc0c5515dac6bbc337acb41d72aad101837caa75257a1e369991ca93dac0bbc4cc3b31c8457f76ccba18afc9751eba33b9f602777a65d65da5ce0c208858"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/vi/firefox-48.0.2.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "7afafaee8de0e47d8e9919bb60da7cd361b18ee15b764522d9609e44e1aeac3ca8b5ffa97c23430a66efc4f38c28a5ffdc05bb4a46734ad2e3388f587b16110f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/xh/firefox-48.0.2.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "b86ceb71c96d19e92af81604925b005eef63c7a55ce5fd9c1176017c9938389c30a5d91134c3d900a4a0635dcad7b25233f39848f9b50fee4e1ca1520dcf2c95"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/xh/firefox-48.0.2.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "c6ed1a65b72d6d63b4c031da93fa1e07cca97027d2a3dedc15e9cd2ffc21b371236e1b2cdeae02534e37c7efe6112cdbce0e5924e872c76e057cd59445ceef04"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/zh-CN/firefox-48.0.2.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "90ea550631d4b3a314b56896d1eeff147e42e41667a94f6457fd18cd2c4bf0e18ca3134e4dc20696a2a30ad9795cfeb454908cb99c580b30bd5eb147e53004cb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/zh-CN/firefox-48.0.2.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "3ef020131a05958aff64d5d313aa8bcb92801d1ea0215406532efa55cbc66291d976e7aaa9bb11b38d35634d3e2ead7f838a7d908066e0b36b65d41767d38583"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/zh-TW/firefox-48.0.2.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "8725261467ff069d523d6e813ca04a8912a21df2fada21cfc8c9442aada3a882fbab7468fed376a2a16be121caf68e74de21fffbd1b9345bd68923dffa2c4a31"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/zh-TW/firefox-48.0.2.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "172fe85c404b8ae7e073e11953a74896a07238c89077fc487be2dbb52a43fa183dd1ec17fb43971b2ada95c8c85a6aeb2b5bd9b637f0de8a3322a57b18783255"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ach/firefox-49.0.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "b082245bf287224c9487d650305cbc8cc8a602c36b526fc0174f56489bbe211dfff78ec40ad2dcf8df5eb4d951c352fdba5fe4b7a3181b54b54d1304ce9cfdfe"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ach/firefox-49.0.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "0c724d60357c817d78a4430103a50188db56f9e6b915cffc1d5177675727e1f253bdec37244651bfe1d055974a202306424f59e43c97c41c31954fa931c73f7c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/af/firefox-49.0.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "0cde959ebafc32dd5bb34af6bd7eb30a556ab6092459766a52e60621f545051300b41c3212786afb5a2e01cd3dc744fda72fd1461f4d2770e734537df930c7fb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/af/firefox-49.0.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "59d8b7ae0db4720811e9d85f00055eb2f702a24cd9a1e0b6fc6cc1b07d55559d02976a6cc176063c777f391f5c1206c647cbdfaa8c880c4d97b3764e42ce3fb9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/an/firefox-49.0.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "e0a5d4993fc3088b517330278228d87d27871c2c6b07b1c771c3af274bdb7968de36cd16d78d1056dfd32773a3e813d38728bea3f5177d83c7ad87645f339aa4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/an/firefox-49.0.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "d10c9bda25fdf945c11dc83abb088ef5758c7cefc6c1eab2db246d680c8bf97517bf7839710481684f03c6339089fdc1c01f6eedd88e1c675320e4f7898ed2ab"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ar/firefox-49.0.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "6f9d6f15dfd5af271d4e0a7944d2a37c17c755278ac9c951bb8c2e6602f71bacd0aa63297e041f1422364f0125310af8179975d023bd7cf0e01556695b720981"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ar/firefox-49.0.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "374ab7e28f5ef960b6d0ba6ffa2bef136d697916dbbcfb8d87186c9bc25aff188063d81bd250a6581c0e1870f222526ac7bf179f6960ffb34c08974b0f6a4be7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/as/firefox-49.0.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "ea216d3def6e83a8dd6db481d3477747ba87049f668b41906c40abcce9913758aebe478c3ccd258b5267d6c9ad013bac3652fc6496811fb96e4639ad8adc829e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/as/firefox-49.0.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "f25cd18e71f331c906edfafa229f93336c92f792d023f7ad87f77d7ff59a80bdeb9a9d77fec585d623dc13c9694d3c256262c1bc9396e996fb713decf7c5991a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ast/firefox-49.0.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "2bcd3c9d217389ad200896d3e8f79b3708c0df0f255e1e3241156ce6bcf61123b839eda1e7700313b0fdd77cc4857f5ce321df228fc4133d7be475427d41550a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ast/firefox-49.0.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "a408ab3ac9ebb6b0f2ad6fc67577617597ddae3ef944d72648246c538da7d7dea6af260323ec061c43a1e84c3946cc879ea9ac85e19f780459021832186a66b2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/az/firefox-49.0.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "ef7def291ac82d2675b9bd65907451a1ae1cc7e6f9ba33a99801230a945aa801b9e31b74fc66038644cd9b2d77eba4cbaf4de5af2be14351dbe06b6cd46ebb60"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/az/firefox-49.0.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "7b9df427933588e40fcdd99486b28a3a1df4bb2c7de54aa9feca2c4a3b0aafcbc86005962af228e5a57a5c48d84cc1104d95505dfae6d70f0d58297d22425849"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/be/firefox-49.0.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "4605f9e2b679ee41bb0b2ef915d7eafebc2018ad6291d4732468b264917691561c49b7497e2bcb4bd9b121dab239c1c35a837e622538410b1c3fb2056cb0b401"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/be/firefox-49.0.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "e0864d2534562c794ecb790dc1859d37ba400bf79e06fbcef571e2dff36458d515fe42e50bcc5ec172d2643225d146ea38065b1b595061252001a75d595ec82e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bg/firefox-49.0.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "4da00516d997ecaaf9ccd27b54e2d52916246f24ce28b62ac62451cf77f37611eccbea6b494b36c56d352327ebaa25a1de3fad4ebd8f076a113d204126591ed9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bg/firefox-49.0.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "973290680cf923eaeab4a0ca2fc6950bc7445b5579c6d4c73845a3881b545ad1aaf9fbafa5d37fa45f271f4a3fd38eefc2d7a756d7dedaa08a52f55955473929"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bn-BD/firefox-49.0.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "5fb2558b29c80b45208ba36874442e31d406c0a1b4c46ac8accc930b1ab98f1a24ea51d4172a2b2942af5475d21cc19db798b0db2032599f02eca60f7ee5cd30"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bn-BD/firefox-49.0.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "db253c316e328385431d89ee373ac782b42ecc89c7aa6305253e85ba331b15513bf6295bd7f867ee298e2067afd4cec4c6a00e8645b94a31be14f4a1b89e64fb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bn-IN/firefox-49.0.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "574c3f178d81f2a2cf5aac98577b3f6e384a5adbbd4b2645111a3829cd0a7962a8304bf42d7dd29ca5e37311bf1b1e8b62634cac823d1bbfd832a71a2fb5cc3d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bn-IN/firefox-49.0.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "2b5e63643bc6a39f7493ee2e3744ca6b0c5a0c6251f4b1af32ab911f71cb5219d5506910bccc8f0168353c3fd0ab7d1eedf487ee7406f5a1852e010f6261cc02"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/br/firefox-49.0.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "efd72e7824440c1220ee34f578176d1b1652f2ca31cb4f28f7343bfa4d7cd91f40ead137b879fef39840d790e76b4261724f68175e8eaadc7a55f0b9ecce5538"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/br/firefox-49.0.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "17abd7de76cbc9b1871886d09a0c35df49d7acb3736b3a6c616a200932565170864ebbf1dc6b320ace2a0c95de1b892aae170fd3be794e9c27025f0c19c435f5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bs/firefox-49.0.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "8ef4c39bcf10068156bdce5bb3df64753914476f92ce565b7fd681a674d6a45a5005efd2a7c4969bddb8eadbe11ddee7fa8ea206868b8505024b6688cd11c47d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bs/firefox-49.0.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "3e25aa90f2348725517858299ac6ec3b1febad9dc2080f17484113c23e43862a1abf06d473c623bb0764a589ab68e3295c48b997ba3e76f21d5e04e0ecfdedaf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ca/firefox-49.0.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "4120e2c2cfd3183c294be353243f32631f34f8e3ddd0767b5772a355058c3148557e606d1971e1a89da349fbcab56072366342f8a7f03d2b702a0ee55d1a6268"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ca/firefox-49.0.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "e3d8e3d060ad6cf28cbe06d51b21c26285f89cdc32695eede992d6953f9d62068f6951506f02e32e1ada37034abf095b1d6dd7a57076ae0eeac9ff939e2e84c5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/cak/firefox-49.0.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "5b27d128df2101f08a59dcd46f66ba7c07434b29e9729ece3c4681d7a5b6a4330023bfddda42ad5f1765c1ea3c1401f2664c019b0f84c182f709e91520813f7d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/cak/firefox-49.0.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "ea241cee1ef1ddc3545f4af9b0ad4e93a7879e04fc0c11e2288b3ea59d1ba2a5db36a048d5eebe0f69319b40ed6654866c498879ab50970124dbfa904f5929a2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/cs/firefox-49.0.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "93080871362ee9f8d07993fc2e509beb6e6abe496ab1b9cf8451979e65c25b7a6e4eda0759ec6d6631a1dd04874cea08e4e0e777bd0429ec6525563777040b02"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/cs/firefox-49.0.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "9aaec753784c6e5db6fd48a2fe134cf4a9c008ff3f5ca09a17c5982b7389f2949c6551a004e0bac723c91ec5e20dab46221b35aa3f94974b5fc14629cb375096"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/cy/firefox-49.0.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "843b18d25d94808737283b2b572902d999bf34ea17fe620319b3b15bf004d0b5526c89416d6f09ab84a6087353212e0e1a72fc3ef8df50acb7336da2819d4830"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/cy/firefox-49.0.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "caa53c6ab2c4f8127fa637d8b8df9727e31b0c0ec9da8e016447cf8e1333cd82e0e41b93917821ceb8db59c558761ca52f4dd34fc4916e1b70499f491a9b3ecb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/da/firefox-49.0.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "c4a441053cb6c116cb35817e03774690ad540b6f9c6865c6a64d4751137c3935c5c2422cafc60f10f4b9d393a6418c2862c8e05f8ce814abd1e028f867114901"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/da/firefox-49.0.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "8cb552f986e49d590659901f438e6f10d494445758d09798285285629f2cd11e7da39e828f56793673d70f5616b3ae9bea10d18c859f89190fb4998f5d75cab5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/de/firefox-49.0.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "50f7a3e44c19e56d4845423065a47b6ccd12d353b10ff2ed21798a668e77fd37da86824a9da2b740f95d6f83af9a33eb3c50d8539db7d27a421606139212a71d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/de/firefox-49.0.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "2678fdbd4a9ee6281eee6a04b3586d2e577110fdf98e8a589d934dddbbc4be565ef50d4b457709758a732506b56084938144d5d2e0b95a9fcba5afc3c826ad02"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/dsb/firefox-49.0.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "6fd71b3130ea4571ff4456876219f5720f99e190b92ea0615c6fdb519fed1dbc4432ecc65205a92023bfcf6c1ac49a622dca3dc0e3f362dd4a82253baffbd220"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/dsb/firefox-49.0.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "a23f6f93bb47ab231ee670817a28187e78ebbd459d4151444fd39b68b2c44990f06f8c90c850628ff8e88ab262c0aef48d990d4c235aeceb4d252249326bb16d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/el/firefox-49.0.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "12406ba82fc63d94245188dc5e3a1afe8e97f00ced23d19b0f463806b1fe98fd49daaf9e7caea0f1b0a6f6bfd05237a1231bca5b6a49298c8e9a1ceabf5f3a94"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/el/firefox-49.0.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "dd4f50c2201652a912dbd5ee7b6e3053c2519d0fcc13ea683ff7c6f6b1ff80ed5ff27215980def1de5254c658dbcb59df13f5be09ca9acc7f41e5711c9819d6f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/en-GB/firefox-49.0.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "4ce5cbeefef030ba020f1f4ca674587734729d1451c072efc8bf7486b3f0929b9720ff399bb7acb80afbbd39997e218c47ad2a9c6b248c97695248e9b3448c65"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/en-GB/firefox-49.0.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "ff7b4aaf59af5524d015ad680cd684e705cc9bd97b9afd459d829261d2b9f43a39a9a6cf56374b69e5e23674f97ac08e6ea4babc1732efb013e289c6c7835b8e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/en-US/firefox-49.0.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "d3815b311f7798c4c2dae7682c93ec32fa374fbddf5bc696cf13f048a2a6b1b35ba6b5700a30f0c0727ba346905e846da38402b8bdbb6b15549cbc2aa0d9446c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/en-US/firefox-49.0.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "eecb07437e814ddb9c9331fde306b1531dd225866d91a7b15412aef905e89d753332940f2da7b6bc53e7d73c348091ef58b8304f95775378c4bff1a740c18162"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/en-ZA/firefox-49.0.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "c1e47313c2a07b5d33ab09d00148cf62e09ae566e0601518e0d3f65805e258c65fffbb240197f46e52d21c93b171d7cff64a74a3d7d9ac4ad8849a7648718165"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/en-ZA/firefox-49.0.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "50a5a6df373af7620b6fb3166a3c7ea06a73ed6d14d9dab46c1f7fb885f6a7da6a4fd7b1fa7e44b91f3dcf2e2b432e140f9ace19f51e35c7e7fb5994e024b5f1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/eo/firefox-49.0.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "9424ac023e76cf2c41e9bf50d941ae59a73ca716050c98401ebc6a7f2c891e22fe399bfab105454206dec7e503c05c16afd9605e44bbf9f3827b429a3372e416"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/eo/firefox-49.0.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "bf8338a6ebc3c9c3f21249367e6d288b06fa31988ab110d11fd136a7575501531d5e7cb687d15cc883468d3f852ceb015c0570e42b355ddea5f384eb1dab53c0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-AR/firefox-49.0.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "6b5e1014d1c5379c6a461c8835459dc6bb030ec0b898aee547f122b1b92ae284d4fa2a2bd93893f43faeee5c30e3ddcef1bbd06abb655178fdf2d080af5bb137"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-AR/firefox-49.0.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "d9625988b3754c2c0bd89aedf78bff52c53404ea8d47f642726767e6a11d18059c4e9e261bc5f5eee02dcf820a184020aa504570b32d3ced6d15beb82bc6916c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-CL/firefox-49.0.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "3cb9ff0f823aa1b8f2f33d2ad39763df9992ff84be75c1c4685ee34a3f3d1e614869f4d31a95f16c86e540318736845814c143a6bf26a5e6324df466e1ea02aa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-CL/firefox-49.0.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "1010add5bb4418960b77cdef8f1267ef9ba98fe9d7d82bbe7d125ed23589ad9b2f934af82e35e477bedeae324e9fa862354e268ca829346061bbe4308cf2b107"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-ES/firefox-49.0.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "d64fcf43f71de119c4e5916943ff17b5e47e4c51c7482b4ebd9e90ae411cd1a302c6e246dde3a90ae5bd29d33f3915529633a3b87120ae571a90e6bf3e676c87"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-ES/firefox-49.0.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "ce0d7b320514c975dfe74b9d6cf63a51162c68e40d4addbfddc378377a0788b501b6e6b80787137987196cff286fd62021cf99d9ef128bdaf2a9a271e6e83ed7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-MX/firefox-49.0.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "097d9e98cbb024042325188fa4744acc28035fa89788c613a579a74ae8619d02a16a49e7b73a8b4cce95102d9388bb3a857036c17b825be1b12acf7a8ab7568c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-MX/firefox-49.0.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "3cc5950e78621a31b11a3b1cc0946d41d4cf1eade23dd92c818df6f5f2bf60db228d278999610f80b2383feb5b8e1e78b90532135d8111c5ebc3b628d4804845"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/et/firefox-49.0.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "5be378c889cf86aa71e2c234ec090db8d8a67a778fe2fb8b271e141e931082e93c086aace526026ef57888accc8cc52d37827dfaa6e975d0a3b1710f27a02902"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/et/firefox-49.0.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "1754850a8415771904ae90b8096d3d04a3fe75df3aa87c1ea967bcfcb747483f2171ded2c8f3f091eaacfab3a2587b3be4a0009384fac74627c53135173a3508"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/eu/firefox-49.0.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "e6356d13de9445e11e6b0a1908d2ab10ffb559c907a8e6d06cff090afbfcd4a557e1bc16ff13caeee61818d2044fbacc65ace65a7d27428aaa071cc52b453404"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/eu/firefox-49.0.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "15d3cbb376dfa269eace5b2910172256b79787e16f1eaaaa7dd002e92d73f50540398f0097146e6d494e173e2f1c2f0dd7bbc4c7d52f3dbfc98ad6e376fc5bc5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fa/firefox-49.0.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "151f18d14cd3be6360c36fa63c4cb605078fdc9146c3e28605d626fd85886561159275cc1dad44bb130f8b530da09aa897e3a23e061fc044c61ed74c930ce81e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fa/firefox-49.0.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "5810155928327671fac79d99b114c16f96120f3ca6c26c286c37d23d7fe71dfba2e8b9f0236a16a2cc6d1fc9fe2bd84278b6e5ddf25aa7876d672c6c157d2065"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ff/firefox-49.0.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "5716afa43a8efa70b2261906b990b376aa1505c206446273156f75c0fe8ce9cf0713e40a72125b4f0999cfa6d7d7d55872221a3effedde2f31abd4bad15085a1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ff/firefox-49.0.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "bb85b1f71568d117d27d891978ea14b65340027803fdf0693a0a2c42b9429c7a57462c5e3b0acfa133a6a133ac4faf31ba83faa417587c1a35c3ae752d0be5a8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fi/firefox-49.0.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "ed3a084f08985d9f4021327fc9b597bf184ef37e067ed6f96573337f63aae35f96f887594d9620d57c840ac6b2259add0e2a029b0a7f86d25bd3217cee609daf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fi/firefox-49.0.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "f4d137824175b1231b662d800270bd59f1d1eb8a5d3c975f15a1f9a1efa4c9def03af0d82c0243e05e4113d1b23a7e08da35019f66c3e0f257d5f26cf0259bb1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fr/firefox-49.0.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "0583f12e50318ae7eba691251e94a9828a227d1ca462ac1ef0dadc6371aab88838cc3cfe9c6ddcb9899b81111cfdc851d7a9dd9e82cbd89eeab29c02d3e2bd23"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fr/firefox-49.0.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "b12009c61cd54c7ad8d60a8d358b3f8fed9fd09172ae928d477844437c276fbf04021a2c367565923e204a6e3170857bc910a20364d66232bd4c3142dd7afc47"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fy-NL/firefox-49.0.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "8e35ee5c5b323daf54624cf2dffe306a2a59b490d28c516c6537fd2cc6430e52e6134729dc98f03fef945c06d888cff690939f6c2fd418b2d99991bd8f4acc35"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fy-NL/firefox-49.0.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "5b070c19834d6ecff8f607ed2cfb149dcd487d128620f79e1ecbd9fc874e594f5af43fa34f1543263f244f51b8d748af99c8a1cd8b10207e4014658e3f18ff36"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ga-IE/firefox-49.0.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "482d840f25a6d734d530f81aabd30e516cf8070e0f43e0dea13af1745463a478c3f84f61eb305beb2440cdd3c1e219336c7dce8edf0197d21e87b3adde0eee17"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ga-IE/firefox-49.0.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "fcf48da92e7b86d5a7bd59f09a919cab41bb72c33a73768fafbb93a970a254546df3b090b7aa3414ec25bc9b97b0c16b66ad57fca4a04218c07d8865e1bcbbcc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gd/firefox-49.0.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "e6c244ea5ba25ed59695e961deffac3f99b9bfa03c1416c7c52d25d8be26c438813f3531c7dad243dc0ab36e6aab0c6485ffeebdec16e5ad47d4f6b5b3718edf"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gd/firefox-49.0.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "6cc1052e440888ca0114c6c7fb7ffc3c08cf9fc5ae5f38be0fd94dbda8e2230936f3046761983840a9b909b472852474641418b80eb5e268686b0f94ec2da39a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gl/firefox-49.0.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "69d928c79b5cefce463f4831363395954787690a0d0b6dadc9f9e89ddeba9f210c71a1a6b7504a35722b0f36cc871dacc82bf40b2b9bee454f871c045919ca10"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gl/firefox-49.0.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "190a8504b7ae9e72e06f0848a6c0746164fc208c7a7554caccd8e81f65f0ab914796f9e811095b8ecf50c6ec9b213856e3969bb8631f1734bd74255908eb2a42"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gn/firefox-49.0.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "801acc36c2821035af178d6ba779897041d2a7dfa760eb0e5dbfe578877fb62e40547fb5c26d0f6442ae0eba5b333616ede8d746565325fbb2d8e5b1d870e699"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gn/firefox-49.0.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "79db4de1e92e21264f2ec1bc8b9bf334adec8a48cc207b2d691ffc570bfff4d48da0a51accbab1b64395dc7679d1650fb158d8f4516de48004be7e3cf4b1932c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gu-IN/firefox-49.0.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "2520fb3d79e8a37b954a83cd4195ba79547fd12fde3c2a91f13a8d0ae9dd165f07cda6e7ffa9f9c3edc0e81998ff6e9343fac49bffd8d707010083adddf553a7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gu-IN/firefox-49.0.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "0864172462c8ca9bd162c8227e59f4684f6a90106c864a36224d58fd749b2d19d1496c6b877e432a1b8a6c680f9cde63d50352223def13ce8da4d5806de56a93"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/he/firefox-49.0.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "f1a595f504376d70531e5eb04efa86797705d869d462c7505909b416840040f2f7fc2a27718de6a743a9b2d37e5abd443674ba2f389882d9ecda86707adf8b8a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/he/firefox-49.0.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "4a4a7ed80a016812dcae29079c0f0badbdd39c020418dfbe07e05dca97b7632c9bc689bc084f7e957da6046cb2cdc74a7e0d9f06d358701c80f73e702cffb2fa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hi-IN/firefox-49.0.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "608477ed47c0d4cf9cbe33a240775dc10009546c4834012257839dee6d516b527051118c92ca8bc289a9f868cdaf432c1c44247efdf8d53e9cca87db02837bfa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hi-IN/firefox-49.0.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "9d2e91b8df386a3263b82cf88a945b5cc7de1a9fa3515b52c48f27ed1c8dd9b4edf471b588ba9c5a9d1eabebd7dc0fca89b33c0fff7ef6a0030a4474a158dbda"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hr/firefox-49.0.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "354d3cb33707ceb6a9d4d3f20304ad252e8f2efa36882f512c4382663b05ea70428f2978d2f9fd8871006cfba8a74d46f66b288bc0f2093218b0383d6248790a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hr/firefox-49.0.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "d5ee0aad4e91596503309d0028dc636550ac9f9fc5d36b1352026dda8de2c5a931175d96fb98192d93e52236b6c89c42fb9b56f2a69c484108281d2fae4dcbba"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hsb/firefox-49.0.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "d18f984de95199e074d7d115f2a685f3d99d890cefd216e6d6fced2f5a8f71f0275729c5d35107f0810538373bf46e1ed04f541e1933cf0d4feac89e9bf44931"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hsb/firefox-49.0.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "91e39217abcc24eb11fba06d95da8ff61355efc4c60be213197eca86359d6ce386ec890534ded720ec40814a7c347c6e2ff100fcf8a75697c40a06da496b078c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hu/firefox-49.0.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "e6f1ee393c56d6f156b2f6c263460df19e7e52d6aeeee668702911fe0f016cabd8900db8a774b89ec74d43c5963c39cd8db75862a350565a13d9382964c9adc9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hu/firefox-49.0.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "8f404fa390e70b54903267def0a458046ec6bf68bf8515352a61849a7ff72ac26c849c6bf69b992d3212268316ac8b954535aef9979b8edd4493481be6c8f9ae"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hy-AM/firefox-49.0.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "e2adbeb30ac0b272e4e62dcf1876579dd3bfe0ab1d5f5385edc07c6a04d62d38cecbc584bbab12c1ba27377f7680d5a2a740e621c5a89d6fc616bca13e988661"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hy-AM/firefox-49.0.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "7ce1778d1facd77af248f20f7b63ba5d20c13407dfa3ac25307777691d7f4f4844e421c1a6011867b8c7e18f2172f1905f81cf833268610042823525d1179932"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/id/firefox-49.0.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "6d98e771905f729de5890bbd75dc1131bfccc901638aaf362ce139c9341c417c8292e2f362adbd46ab8c8675c8f59f9a523a41b760a2f3dbadc96debeadc3a2a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/id/firefox-49.0.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "7feab0aadd4aaaa30d4a9a528ad1ce4737ee14c32df5d7c672708ec02b5f9567bf9f985d64c3064b86917de9c25fe10ce3b361c81bc5be1fba54439f287143c9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/is/firefox-49.0.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "6fa9e14841a790ecb83969ab803fc90c73da1fc974af17cb0814abfc22d3d334538feb2b121b0bc976ea247f12242c7a9e0eca1a544492ae6c51376dd4f41677"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/is/firefox-49.0.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "18924e3085893b1182e60e490dee1332278bcd030ddf4ed0a05f1dc2cdd9ccafa5885b7eba6361d647e562cddfa3675d16708338073e88ad010b2cee4f8fa0c2"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/it/firefox-49.0.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "c67b8d3836c388c8433a779e55c23790ca906ca812b28c7d0d97261627e5c57534b8d0311ba50ae1876055745a8ad20911b482b53ab0eedf0d9767578082cbc6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/it/firefox-49.0.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "705518c053e6af3a3b23e66b019c3ee1e51d73a75755663ccc671335f1ac3fb5b8c941a4f09dbe21abb279474d0cfb822beb115b51cd3edaf32f72154c661f21"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ja/firefox-49.0.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "585800058eb00b56bb6509886cd4f51ab9d9fb80de5c4b63f60a1b9bf5779a1b9f5310a99d746fcd8931c7eb2bb078ddd444518b624a73cbdfb535bbe38f759b"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ja/firefox-49.0.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "4dd92b0d0261649ffe51d20898cd633fd35efba7c8a55585a8fad9fb5b49ee6be53dea58deb0fc84ed13355406f0a663a78ad2a41cd6f1cd52b63e1c1ab8724a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/kk/firefox-49.0.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "a199ed24401d183745166d82929305c742a2a1cbed24ef09c91259515564bd5e5b86e30125285766f820755e65bd8e62eddb3079092243b88a4a91e5d5ca47b4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/kk/firefox-49.0.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "413078071b8ca1c9ff8c971e1fc8ae7b23e93414c8eee70820fb8662a4197f4f7ac7f8db11e7aacb2a914c3846be43a2aff9ed13f18c065bf7fd467807c51a50"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/km/firefox-49.0.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "c0ab421db1c33783e201762a3790d807e54f789ed16c2bdd372223cf10207995d91e45f600ee9df778fa4548fa0e09ae1f432b11cf4fbb1e50b4c46c5a805bfc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/km/firefox-49.0.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "5e50bcf2b9a70efe7ddfad9d05d4eef954c7da7d8ebad7ad6ff15b7464b46f636db49612f5d42294fff4e8225e8919934253f6acf4ffe4ad5967c75a6ba33be9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/kn/firefox-49.0.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "123bffa9583f8e5db3e94668baafb581aa5af023b3ca646e052360761b46be086b128a5a3c7b518f38bb9c57dc49df82ad9e88caf289655609708735421a4490"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/kn/firefox-49.0.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "06b7bc1716f64c84f580e62051e437129624c02d6c5def9a4fa8b3489f6302e263e977743731ccf123a1eecc70d1cb4ab6a83cf0ec80fdaf82d4d11421ec3b31"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ko/firefox-49.0.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "bf8ceaaa462c253fbdfff2d57feba1fb649d74e7ade09f9e6120597ecd7e7bbabcae6d32da09764ed660d173f8f28eef993366876928145947a1befaeb564597"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ko/firefox-49.0.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "e3dd9441bc01aca97ab96763ce086c1c52b33781fdb90083431c15a5a057a5e51092cd79adbc10793d6159dec30d72704577e1dfebc68bb02f7182645a38528d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/lij/firefox-49.0.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "e47d12ed8959ab76c670e98fdee111e9a1897ca58a82730239ce1544c24d0149a40066666da74fd941b6653d19d65f75b7064391fd45a47d4926d6f4d3a6a771"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/lij/firefox-49.0.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "81521acf4cc49a3e4dc7c4af58b7f048a949d170b95789001bf5cc02cade557042cce3b5243927e28c4c2bfebccaf1e4667bf0ce42871a51475baec2dc116fd4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/lt/firefox-49.0.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "2c9b2df1e811ecb5488ddc012c7c408b067901ad6329bfd6fa0838e7cccdb63eaf3c7bbf9ea5be5ff2f03aae8acf6b62612a90126209bbfece59a00b41a73598"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/lt/firefox-49.0.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "587ae06c7639043ea347ef68bc1b143baf0d507d1e98ab0b5bcf5d3f6ae364c3d77d2855550ebf6f63f972fecebc9d7bd05eebe4227bde512f9b2a4c72f4d0a4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/lv/firefox-49.0.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "833a69b97e5f74ef1829ae80a91dd6219b20918b5a8e0faa272bb1defdda1704a4e17e21892f15d606d74d644a4506196b83b33000f8ef8697aeef85c4f5315e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/lv/firefox-49.0.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "059d16aa412e31eb6453002b46a26384b125aaa1d212a22747ad465f6ccdc2cabfaef88a63479a04878f6c662ef45da0caed62b8e0c5a4cb8bf5037a820b34c5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/mai/firefox-49.0.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "df520edb25360d686cef1d8eb3c3566581a2f71e2b6a6119e2d6eed7c2004d3193d1e2784d3ae575ee5f750956f8eb83558d5793786abcf075ca991e78a610ea"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/mai/firefox-49.0.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "6562f84949698c920b220982a32e04a6686a4a3690e97db835e0a648952035217f49e0f7d4c8441cf31130e80a952bdda986b7d943f4b5cdbead9ab6c316a0e6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/mk/firefox-49.0.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "3db4b5257edbf0f03585f7fe7ac0d2ddf269d2fc2c4ccb6cb17f62b61e4c152c02b54a5ae32cfdeb1f6eafba82a3db44ec1c8f82de5187226ded7ee2f6a0e442"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/mk/firefox-49.0.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "4a09dd37f58904b1b5790dc23d7a81caa34e69bb663b7946ae9a7bba9d139696ce14b662ecdadc453a0021f33df90503110685b59f4bde528b53d8fa4ce68fd8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ml/firefox-49.0.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "39d7b2342c9a2dfe07a643e0f15b6f0368c331d1576f075d6e864122f91bba8ad8af43619fdfd1cc880337267a7bf0e885879e60cee22dc3d4e4cd8c23713bd1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ml/firefox-49.0.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "2a0d77e1e542b6a6a32c4cb122400b1b1023111cf234bbaf8e0d7c23e572283e163142b7de7c35108a2098e88352a31b118ed6914d07a832b8d155297cc317b0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/mr/firefox-49.0.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "ccdbdeefd26a0a6e005028976d0549a22fde6ce5c054806c15aba6447595785789eec0365d3a48712f2077e834b68e46ae6ea085ca776a9cb6b5bf326929b0d5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/mr/firefox-49.0.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "a5053f31dc8ea124756933ecc79870887d89fde3c6bfe0aee4d930a778edac865d3a929d2afbb714629ec77717aa1bba19d7647ddd3784951dd4510d76dc95d4"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ms/firefox-49.0.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "83b325c1c175dd01b3a04f35533e6adb0b82a5629a1be4e560a2eb65bc705c3d4e762db9fe8faa59aeb02cd55eeb95f1f587fca555ea1c5f5e353a6fb8edd550"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ms/firefox-49.0.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "674ac356543ffe310e0adae210ca8f01f287130eab80a610428ba854bce781c3fb281f6a2d2ce540acf66a650de3b9f960f1a7a0606c93576f0f02f5a1179865"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/nb-NO/firefox-49.0.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "8efba2a1704c6c37fd91776d40f702aa9fc1951dae23aa164d8dc50cc14e22e047ac88f93a5090f15782fab37be1c0d1448ccf641e1426313bfd013488585da7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/nb-NO/firefox-49.0.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "799179660bc918c5fb0c9781581ed0dac0ec7932dbf897fbb632a1fc8e7b310161b6d0d13d34d6259380e51be726e4afc1875abf3ae4a2a3bbc3454711f503cb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/nl/firefox-49.0.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "d5ae51a144176a1748c3d7060d6e81e71975faf8ce02daefc53f087524e6afbc101c16e32fca2568f38d438cb748cd7194d64a6e89c6ceaab00d3adfff154ea8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/nl/firefox-49.0.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "ee514f354a05630ac3135afdc668d59780626ab58e01f88d4d60effad71b8772f5bbced8fd2616e53236d75a32bb9ab7c187c399942f1d3c58fe7cdc7449f715"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/nn-NO/firefox-49.0.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "6f4c1959d9fd6d793908ca790b74c96f609167211aeb814ce630c0a57842c5d1a22e67697e71871cc9e04a2bb1b4c72603ede8cbcbade3702a07e24831b9bfbd"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/nn-NO/firefox-49.0.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "5159f3b060724bbdbc7f7575955d1143eda0d7e38eb4ed7efa29e82908311a351a4597f3ac374023574ec8021a1ea26a439379357eee5710aab6ff9b6e59cf39"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/or/firefox-49.0.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "a2057b3d615c61075a1667ac3b55fde78f8e037f6b67496faf7590067b0b4192065af8818b189f0eedf4c0a22e9cc6a0e35095cfc2f832168dadd174fa0b0cfa"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/or/firefox-49.0.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "e109c47b21d7dd4f18fb728f2f20322cfaa26574e43be5bc8b100fbc6272a8117ea00575bda525fe2876415e4127393882c41a252786f9857346b732255981c0"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pa-IN/firefox-49.0.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "54dfeaf8cf5ae829f802e985ec4b4ccf12bdc967df9ce5e35bd19b4cbb932fffb425127519703d576ba58ede507f97d609caf2168be1159acec9aadaf393f24f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pa-IN/firefox-49.0.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "4abd39707f2fc415b12a9041e1763978d90ddfbb167fd7ac901002a155e5b82f7c9299e446aa4de222e35f894b29a51b25b0ce0803ec54480788a52b9740679d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pl/firefox-49.0.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "df54680a948595d2a889c5d92e321f64161081a0618bf9227593ba22db57b9dd639e245637d5a2473da7dec46a81487720ce8651963223ac368f1cd52504fe06"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pl/firefox-49.0.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "2230bc383cdad5d6ecdbab7f2890d511420d89bd4de3b52f987c1d62c81153b8ce47ecf25f74c210572c50f8ac90f289f235d95df14c69bbb16dc5a817c146b8"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pt-BR/firefox-49.0.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "c5155061326efd963a43d44add6644c42ef1b84fb07e0ffaa8e9f2d8b5f213d614ccea04d8251435aac6c88523e759449e7b91c49317fd19380c33d39572ab4c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pt-BR/firefox-49.0.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "b2757aaba8b0078b23a9e8c12c26ee2699a93e19029deeef37809086e57d23ac4c58338268d814774a6c8aa2c727efbb12205256795c5e19ca9ebe5b1cfb59cc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pt-PT/firefox-49.0.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "e3c6728add0ed5a320da8abfec1dd2bf63952e38a01f71601bc882789be771423fdf5625c35c9b4c0d278c0c3ea646e0409b09596f74f16a6397568524815b8d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pt-PT/firefox-49.0.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "8763f5917f2945536524af90916301e94ec60ec7cf1e5d3d128e9c72f01f25924d34f65e48708cd2a9aafe9f3a4d4beac26d83e8803b7e2bb3c6eaf630dfeda5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/rm/firefox-49.0.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "ed1285152ef25a0471846f1aef7785a7958246d078cf78617e543de851d0b1722964b0428a3216d7d4feb40a8c2b76faf9802ed7c278a95592f252897415f4f7"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/rm/firefox-49.0.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "f7d042a502a7c7cbe4af94e3649170cbcc52d3d925ff6158245aa60935fd09ebd743a29edee2b78908232e0e98cc1a1c40a50c6e19b6ca037c0b2f6249f39e60"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ro/firefox-49.0.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "2dc4658d7b9aad11ee14a036db8e6171c5a912f93ed24e94b951c188f418eb7180e4621ad0d540eb9878ae8664f202287e09aa3636eaa1afc2cbdcf7606e6232"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ro/firefox-49.0.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "b5643df75ab40c4830afdc88d010e50c0c2fb7b9560caf985c80d84a0744b47fcc08f5d3dfa3a45bfc55f4ec22adf49e9cfe9513fa3d645887b813a0ae8bea4e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ru/firefox-49.0.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "b74c8e4e82e113b07f901d66108e505010087f8a44664b172af8625bd622dedd178a94a9391d29af22347f309cc8d455cfc4392d1bdf7fefb2dfd7bc35ccc3fc"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ru/firefox-49.0.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "eae3cf9a4588f99ff93d6ab08943872bdc4b215f1442aa1dd5d2ba9f1866264b767753a84de033e0979f24518876b536f8476840523920a7a1e1a94779080e29"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/si/firefox-49.0.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "69b3282ddd9b4cc57775cf1b13bfae3dcb7efe6c04f5279bb2d055ddeac0a008b05bbc82e12768521c075b83a8a7c37b8ec8d9ae01b022cea309b7155642495c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/si/firefox-49.0.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "fee048d1f5a743f5c9ec01241b87ed3c1c5c725423348b29bc76eb2ff9b23ab39b9fc5374e82b43412efe6e3b5a10cbe8b559b1c2b3289ae763901032c877496"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sk/firefox-49.0.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "ebad91e8633219cd7a5fe14712c83b8ad5e8931d201f42c67d61d955293de1adc836eff993450acd6df02211b7219cd2f4e274ecc515d6e422f77cbff4245118"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sk/firefox-49.0.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "b02a2ff848f6da677ae77d873e3d2ad77b6c650efbf44b967a1e2b704bb813875ffb39be9f7fbc1a39ac31060a6214266c4649c6e665b24a53c23c3e6b126258"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sl/firefox-49.0.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "de23536009e3d11816304f3bfc49d7ba77c4427907ae91a337e41ddb301cd188ff9802bbb42d6505e0b559d7107a2f150675e7c5ec53e9f3c689daee6a100c3c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sl/firefox-49.0.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "ee47a01e1673eca4101c69f67e639ad6dba6272502affa1c5af3081cf4bc8ee9cd3156006c14f8eccb687139913c61ef582aa567e6d35ff8630a075072e9b6fb"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/son/firefox-49.0.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "de572494fd7ec09ab71d6b65e51fa2bf16934ed26fc7a21e74d55f3b6309075d830b6c41bd37887ebcdf9eed46a0e2093a853d8b4733bf112b4d06582afc239f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/son/firefox-49.0.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "bae6e78ca201f0ba6f3c882cee89fcb5c5a46149d54d114196d689bb5b26e785fe3a3ff0a659a10d140e5530de847ea4d775cfc919d8e36be1ff21f0452f585f"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sq/firefox-49.0.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "c1a3828372703a06ff71752de271a5e6e999be5be2cc7bbf3ae7b1c23737035a3cb0685113806d98f96e62873818ee2d8a113822966499c1f54578e0570105a9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sq/firefox-49.0.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "491fea89f4d662061d1ff4b7a91756aceaa1bf336733d68f2ec775eff0505a98397ac7eabc9e411d38e3b96298a7c7f948b389b4574a277e490d364416dce010"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sr/firefox-49.0.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "e7ef9c19f485a50b46a2944283e3d2e46c82c68e350786e3bf31720367a682464e096ec7b3045f740c8af981be76be94d1c8965a1f10cf5271be4328edfb5a9a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sr/firefox-49.0.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "7fbf31358db27264452544742c5589e8cc57d0b2998748545d63ad8f88d6e6d43f358cc72fbde6004edf9370a32b7d5e53d7b6aa831c86271742ad007e9e3304"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sv-SE/firefox-49.0.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "cde0b52a9b03c2673a13cc330c8d47308d84e43d7e70183cacd53252572b25c97d932fabed06dddfc395a8a192717a28f5b8fa175f857d90209971462ab45a09"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sv-SE/firefox-49.0.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "c2a4297b7f096b187fbfd59166e10182090eed5a9063d90ddad591fd0b235ae145f22829a7d36176f8c18d760c177882131749eb29d76ddeda062f17da07f9af"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ta/firefox-49.0.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "d8e7dc079889db15438a8e59ee42b78ff818014cc03136efa9a69a238f36a3c0db3fec073ba156280e427c8d67ac54f606eac390854337edcf6ecc751cbb8695"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ta/firefox-49.0.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "881280f9799000fbfe664c7b67ced2bea2d9c99400ae7aa5a5e8274472306f5d6ca030d7eb7ce060c98c308d887af1bc00558c48cc1915ada7b43940d955c224"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/te/firefox-49.0.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "f628a62da53b356b0543b59ecb8ac3eab72956de499761fbec7e93c1c415929f0c0571c274c16a5412c69c709ef1c82b6f35bbee2d48286c092ad6b7fccf4e8c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/te/firefox-49.0.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "a3f2bc14ac0e3961ed75ad5c221374a91373a637cea05e023c87c2b06bc2beb63ab7470c1bf6da95304b5afe615ef05c0843cc508ff491b549e73a9e65d17d59"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/th/firefox-49.0.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "cf5196484a6408a3ba27f440909492c542305fb47dc463e5e54801f264efb274916484bb7b5850c34eb6fd3937a484fe3800d807e40c0d1a3bc902040fabf1b1"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/th/firefox-49.0.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "8f70f70faaeeba6cff2326dba2b43f4e80924e7f11666ede7474e896dbba42cfba650b0e9328d2b432474b06fc0ec738edaacf2b17e8acf549d5d7b590f75f3c"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/tr/firefox-49.0.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "1af9ff1d8376ec7eba385ac88d17bea0cdf02885b88d501f77b40d5402f9d918ed42cb8e4ce2e33610eb3f57ca5a26850acf6cfe83954bec205ee33a6d74fc31"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/tr/firefox-49.0.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "9a8ead1fdd4cf3cd49c8e3d626cc721ed79d949b91a9646157360c4d74381ccc6e32118adbae46ee060d8e0b7e5eaccdfad9af42beea216c1bdcb081a14e91a6"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/uk/firefox-49.0.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "c105b652cafd9baf5b8d3f8ebcd64ad1ace6da89d9746ee65fbee00891b2a4ad821c9a181cf1d6ddeb3b75dca08cace3b7e74f1e357aac5a6f08960499efdd4d"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/uk/firefox-49.0.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "01eeb3f62f2ee7377811aa38ec69426fbbb0fccac23e91d0202a7c35ede59eeab1d534fce6dfa7c51fb083626fbc9b3cfba48793c7d0fe625e1163d14fccf36a"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/uz/firefox-49.0.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "38259f998ff94528b1f466cfdc332f0fcd10b3ec4da3e0f88a5b3966eb7fc703763f2b9e4fabfc71ec286e9349d47c8c929b036f539dfef833411c6bae32d6e3"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/uz/firefox-49.0.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "dfdaa4540b742911226034fa75127c5de88ee3e97e10e7c29514df1331e5d8e3d1b8798f7050083c18a71838c6210343d6e63343ce6964ace885ac8172438314"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/vi/firefox-49.0.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "634f54f7d54f1b47a401b319eb8053ab08e43711650117a0155757280b6824eafa9d9f9ab6887cddce1d9c8190f949194d93cd9741d76bdf3df5d82a27b767d9"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/vi/firefox-49.0.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "b9cfd74289669d4d2ee49e216ae0eed15aa2377d54c632ec0d15f9799867a0bf24ad2efe17047fe63e3fdf2d9e486c33c1d96926872106053a36968e5f546714"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/xh/firefox-49.0.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "26c6bf5c9d2d1007d93d95351e3f9bd7ea246cee6b40ea77f7e26087d8612f709a01829a7e5bcfff8bdee4f7874c36966ae229b86a31f74c724deda875221de5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/xh/firefox-49.0.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "153e6a2c1644e00bdc950f092f99c515aa079dbafdbd618287639f00481af22a4acaca7e8d4aeb0e78e004eaf17a11911425ce8296b67298b4b6bfafd2d4dc23"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/zh-CN/firefox-49.0.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "a24bc352a98315fab4a64cb1078b35b1531b559b3f044cb349a2d4f52e4ee54b27510e8b0c9e3aa2d891dcb17036e1ab057bf3b6395cd73147314e413894d90e"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/zh-CN/firefox-49.0.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "a9b26841eceda1c9cea02f3b0b4707d8c79ad78c26fecbd5d6a69fdcdbbf087d487252934b2e6f02f89c29644f241beba1a555b67d22a396e60db8c5e21b9512"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/zh-TW/firefox-49.0.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "a81cfb6d197d99476dd9d4386df40a7b507d9fdbf6c8966aa20bed2537c7689c3ae0e09f5053f66b9e3d5f4a462157d4d09de371c31cecc5c64a8c6e1501ffd5"; }
{ url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/zh-TW/firefox-49.0.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "2c98d22cfe74847143601acc36adceba62d93ca90adc8c2b8044bbeb101ef39f7ddc19210cd0905542cc8205cd2dfaf9709fdd3d6596113b9ca1eca522ebd7eb"; }
];
}

View File

@ -141,14 +141,14 @@ in {
firefox-unwrapped = common {
pname = "firefox";
version = "48.0.2";
sha512 = "d5addb0cd01e2aeb0fd9387800e82e385f3986716887840322d261d772a442f6fdb1d910cd53f2373f0fb82ed0b2a45356ac83f3ef230e14a2b9db8999ad8a4e";
version = "49.0";
sha512 = "9431f86dec5587131699ae57ae428be168e4d6c7d1d48df643c10540e8e18bc5eadfcd08bb204950be611c87d35d8a40aa8ece454b7dfa3992239639c2d688a9";
};
firefox-esr-unwrapped = common {
pname = "firefox-esr";
version = "45.3.0esr";
sha512 = "ee618aec579625122c3e511a7ac83ac4db9718f5695b6fe6250717602178bae9bb7e5ebe8764f4d33ecf44d3db13abfed0d24c1ec71e64a1087fb6d5a579b0c0";
version = "45.4.0esr";
sha512 = "2955e02f829a10186a8b22320fb97d4b0fc2b45721fcffa6295653fd760d516ae72b5656547685ba1e0699b381e28044996d9ee12a8738842b4e6b8acd296715";
};
}

View File

@ -10,17 +10,18 @@
}:
let
version = "1.3";
build = "551.30-1";
version = "1.4";
build = "589.29-1";
fullVersion = "stable_${version}.${build}";
info = if stdenv.is64bit then {
arch = "amd64";
sha256 = "89d0630c9df56cfb12a87f23430179f6d14a8c57fb029d1c8d28ab06c98b7640";
sha256 = "14sb58qrqnqcpkzacwnwfln558p018zargppxq21p5ic8s92v1g6";
} else {
arch = "i386";
sha256 = "0a7e07833f5359e38516222767da63edeca92177cbb6d4ef4946a6ef7c7b2946";
sha256 = "0c4l9ji5xlxwzcjsrvxjkx53j76y777fj6hh7plfkkanlrfkryac";
};
in stdenv.mkDerivation rec {
product = "vivaldi";
name = "${product}-${version}";
@ -65,6 +66,17 @@ in stdenv.mkDerivation rec {
cp -r opt "$out"
mkdir "$out/bin"
ln -s "$out/opt/vivaldi/vivaldi" "$out/bin/vivaldi"
mkdir -p "$out/share"
cp -r usr/share/{applications,xfce4} "$out"/share
substituteInPlace "$out"/share/applications/*.desktop \
--replace /usr/bin/vivaldi-stable "$out"/bin/vivaldi
local d
for d in 16 22 24 32 48 64 128 256; do
mkdir -p "$out"/share/icons/hicolor/''${d}x''${d}/apps
ln -s \
"$out"/opt/vivaldi/product_logo_''${d}.png \
"$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png
done
'';
meta = with stdenv.lib; {

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "terraform-${version}";
version = "0.7.2";
version = "0.7.4";
rev = "v${version}";
goPackagePath = "github.com/hashicorp/terraform";
@ -11,7 +11,7 @@ buildGoPackage rec {
inherit rev;
owner = "hashicorp";
repo = "terraform";
sha256 = "002jg4iwg4g4hkg4hm3szlkyagqzipln3l44b8azh1a7vh1m8cp2";
sha256 = "1mj9kk9awhfv717xf9d8nc35xva8wqhbgls7cbgycg550cc2hf85";
};
postInstall = ''
@ -27,5 +27,6 @@ buildGoPackage rec {
description = "Tool for building, changing, and versioning infrastructure";
homepage = "https://www.terraform.io/";
license = licenses.mpl20;
maintainers = with maintainers; [ zimbatm ];
};
}

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
name = "purple-hangouts-hg-${version}";
version = "2016-07-17";
version = "2016-08-31";
src = fetchhg {
url = "https://bitbucket.org/EionRobb/purple-hangouts/";
rev = "2c60a5e";
sha256 = "1m8132ywg9982q3yiqgy1hzm61wkgi590425pp8yk1q03yipd6zb";
rev = "1c0286e48e92";
sha256 = "0iv1isa8brm89nvmwrvxjm5ymx4svqrz3gf5yciqzf6kpc82gnxr";
};
buildInputs = [ pidgin glib json_glib protobuf protobufc ];

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
version = "0.8.19";
version = "0.8.20";
name = "irssi-${version}";
src = fetchurl {
urls = [ "https://github.com/irssi/irssi/releases/download/${version}/${name}.tar.gz" ];
sha256 = "0ny8dry1b8siyc5glaxcwzng0d2mxnwxk74v64f8xplqhrvlnkzy";
sha256 = "0riz2wsdcs5hx5rwynm99fi01973lfrss21y8qy30dw2m9v0zqpm";
};
buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];

View File

@ -36,7 +36,8 @@ stdenv.mkDerivation {
qmakeFlags="$qmakeFlags DESTDIR=$out"
'';
enableParallelBuilding = true;
# gui/settings/PluginsPage.h:25:28: fatal error: ui_PluginsPage.h: No such file or directory
enableParallelBuilding = false;
postInstall = ''
mkdir -p $out/bin

View File

@ -28,25 +28,17 @@ let
lib = stdenv.lib;
langsSpaces = lib.concatStringsSep " " langs;
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
inherit name md5;
url = if brief then
"http://dev-www.libreoffice.org/src/${subDir}${name}"
else
"http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
};
fetchSrc = {name, sha256}: fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
inherit sha256;
};
srcs = {
third_party = [ (fetchurl rec {
third_party = [ (let md5 = "185d60944ea767075d27247c3162b3bc"; in fetchurl rec {
url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
md5 = "185d60944ea767075d27247c3162b3bc";
sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
name = "unowinreg.dll";
}) ] ++ (map fetchThirdParty (import ./libreoffice-srcs.nix));
}) ] ++ (map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;})) (import ./libreoffice-srcs.nix));
translations = fetchSrc {
name = "translations";
@ -84,7 +76,7 @@ in stdenv.mkDerivation rec {
postUnpack = ''
mkdir -v $sourceRoot/src
'' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
'' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.md5 or f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
+ ''
ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}

View File

@ -8,28 +8,66 @@ of the input file, and writes the result to stdout.
todo - Ideally we would move as much as possible into derivation dependencies.
"""
import collections, itertools, json, re, sys, os
import collections, itertools, json, re, subprocess, sys, os
def main():
packages = list(get_packages())
for x in packages:
print(x, file=sys.stderr)
print('[')
for x in get_packages():
for x in packages:
print('{')
md5 = x['md5']
tarball = x['tarball']
print(' name = "{}";'.format(x['tarball']))
print(' md5 = "{}";'.format(x['md5']))
print(' brief = {};'.format('true' if x['brief'] else 'false'))
url = construct_url(x)
print('url: {}'.format(url), file=sys.stderr)
if 'subdir' in x:
print(' subDir = "{}";'.format(x['subdir']))
path = download(url, tarball, md5)
print('path: {}'.format(path), file=sys.stderr)
print('}')
sha256 = get_sha256(path)
print('sha256: {}'.format(sha256), file=sys.stderr)
print(' {')
print(' name = "{}";'.format(tarball))
print(' url = "{}";'.format(url))
print(' sha256 = "{}";'.format(sha256))
print(' md5 = "{}";'.format(md5))
print(' md5name = "{}-{}";'.format(md5,tarball))
print(' }')
print(']')
def construct_url(x):
if x['brief']:
return 'http://dev-www.libreoffice.org/src/{}{}'.format(
x.get('subdir', ''), x['tarball'])
else:
return 'http://dev-www.libreoffice.org/src/{}{}-{}'.format(
x.get('subdir', ''), x['md5'], x['tarball'])
def download(url, name, md5):
cmd = ['nix-prefetch-url', url, md5, '--print-path',
'--type', 'md5', '--name', name]
proc = subprocess.run(cmd, stdout=subprocess.PIPE, check=True,
universal_newlines=True)
return proc.stdout.split('\n')[1].strip()
def get_sha256(path):
cmd = ['sha256sum', path]
proc = subprocess.run(cmd, stdout=subprocess.PIPE, check=True,
universal_newlines=True)
return proc.stdout.split(' ')[0].strip()
def get_packages():
"""
All of the package data: What's parsed from download.lst,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -28,25 +28,17 @@ let
lib = stdenv.lib;
langsSpaces = lib.concatStringsSep " " langs;
fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
inherit name md5;
url = if brief then
"http://dev-www.libreoffice.org/src/${subDir}${name}"
else
"http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
};
fetchSrc = {name, sha256}: fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
inherit sha256;
};
srcs = {
third_party = [ (fetchurl rec {
third_party = [ (let md5 = "185d60944ea767075d27247c3162b3bc"; in fetchurl rec {
url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
md5 = "185d60944ea767075d27247c3162b3bc";
sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
name = "unowinreg.dll";
}) ] ++ (map fetchThirdParty (import ./libreoffice-srcs-still.nix));
}) ] ++ (map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;})) (import ./libreoffice-srcs-still.nix));
translations = fetchSrc {
name = "translations";
@ -94,7 +86,7 @@ in stdenv.mkDerivation rec {
postUnpack = ''
mkdir -v $sourceRoot/src
'' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
'' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.md5 or f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
+ ''
ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation {
/* program */ gpl3Plus
/* data */ cc-by-sa-30
];
platforms = platforms.unix;
platforms = platforms.linux;
maintainers = with maintainers; [ vbgl ];
};
}

View File

@ -1,46 +1,29 @@
{ stdenv, fetchurl, which }:
let
s = # Generated upstream information
rec {
baseName="eprover";
version="1.9";
name="${baseName}-${version}";
hash="0vipapqjg0339lpc98vpvz58m6xkqrhgxylmp0hrnld4lrhmcdn4";
url="http://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_1.9/E.tgz";
sha256="0vipapqjg0339lpc98vpvz58m6xkqrhgxylmp0hrnld4lrhmcdn4";
};
in
stdenv.mkDerivation {
inherit (s) name;
stdenv.mkDerivation rec {
name = "eprover-${version}";
version = "1.9.1";
src = fetchurl {
name = "E-${s.version}.tar.gz";
inherit (s) url sha256;
url = "http://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
sha256 = "1vi977mdfqnj04m590aw4896nqzlc4c5rqadjzk86z1zvj7mqnqw";
};
buildInputs = [ which ];
preConfigure = ''
sed -e 's@^EXECPATH\\s.*@EXECPATH = '\$out'/bin@' \
-e 's/^CC *= gcc$//' \
-i Makefile.vars
sed -e 's/ *CC *= gcc$//' -i Makefile.vars
'';
configureFlags = "--exec-prefix=$(out) --man-prefix=$(out)/share/man";
postInstall = ''
sed -e s,EXECPATH=.\*,EXECPATH=$out/bin, -i $out/bin/eproof{,_ram}
'';
buildPhase = "make install";
installPhase = ''
mkdir -p $out/bin
make install
echo eproof -xAuto --tstp-in --tstp-out '"$@"' > $out/bin/eproof-tptp
chmod a+x $out/bin/eproof-tptp
'';
meta = {
inherit (s) version;
meta = with stdenv.lib; {
description = "Automated theorem prover for full first-order logic with equality";
homepage = http://www.eprover.org/;
license = stdenv.lib.licenses.gpl2;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.all;
license = licenses.gpl2;
maintainers = with maintainers; [ raskin gebner ];
platforms = platforms.all;
};
}

View File

@ -1,3 +0,0 @@
url http://wwwlehre.dhbw-stuttgart.de/~sschulz/E/Download.html
version_link '[.]tgz$'
version '.*[/]V_([0-9.]+)[/].*' '\1'

View File

@ -0,0 +1,26 @@
{ stdenv, fetchgit, mlton }:
stdenv.mkDerivation {
name = "redprl-2016-09-22";
src = fetchgit {
url = "https://github.com/RedPRL/sml-redprl.git";
rev = "3215faf0d494f4ac14d6e10172329a161df192c4";
sha256 = "0pcq4q9xy34j7ziwbly4qxccpkcrl92r9y11bv6hdkbzwm1g2a77";
fetchSubmodules = true;
};
buildInputs = [ mlton ];
builder = builtins.toFile "builder.sh" ''
source $stdenv/setup
mkdir -p $out/bin
cp -r $src/* .
chmod -R +w src
./script/mlton.sh
mv ./bin/redprl $out/bin
'';
meta = {
description = "A proof assistant for Nominal Computational Type Theory";
homepage = "http://www.redprl.org/";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.acowley ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -23,6 +23,6 @@ stdenv.mkDerivation {
license = stdenv.lib.licenses.gpl2Plus;
homepage = http://ecm.gforge.inria.fr/;
maintainers = [ stdenv.lib.maintainers.roconnor ];
platforms = stdenv.lib.platforms.all;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
name = "hub-${version}";
version = "2.2.5";
version = "2.2.8";
src = fetchgit {
url = https://github.com/github/hub.git;
rev = "refs/tags/v${version}";
sha256 = "13pab3r2ngac2kljy9jb4lz3g3d6smkwydlx23ydjvyjbg2zb75r";
sha256 = "1fv4jb9vsbkscnb79gss2mwnd1yf9jhgzw1mhimhx25xizbx1fck";
};
@ -30,9 +30,8 @@ stdenv.mkDerivation rec {
mkdir -p "$out/share/zsh/site-functions"
cp "etc/hub.zsh_completion" "$out/share/zsh/site-functions/_hub"
# Broken: https://github.com/github/hub/issues/592
# mkdir -p "$out/etc/bash_completion.d"
# cp "etc/hub.bash_completion.sh" "$out/etc/bash_completion.d/"
mkdir -p "$out/etc/bash_completion.d"
cp "etc/hub.bash_completion.sh" "$out/etc/bash_completion.d/"
# Should we also install provided git-hooks?
# ?

View File

@ -4,7 +4,7 @@
let
# if you bump version, update pkgs.tortoisehg too or ping maintainer
version = "3.8.2";
version = "3.9.1";
name = "mercurial-${version}";
inherit (pythonPackages) curses docutils hg-git dulwich python;
in
@ -14,7 +14,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://mercurial-scm.org/release/${name}.tar.gz";
sha256 = "1zdz42znd6i7c3nf31j0k6frcs68qyniyvcad8k2a1hlarlv2y6b";
sha256 = "0x6zjl8za6nnlbmyxng4pfrr2h77zi3wbg985262ghjyx33lypk2";
};
inherit python; # pass it so that the same version can be used in hg2git

View File

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
name = "tortoisehg-${version}";
version = "3.8.1";
version = "3.9.1";
src = fetchurl {
url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
sha256 = "1v5h5yz9b360ris9p8zsdjxqvaflp9z2b6b7dfb4abn2irv3jip6";
sha256 = "12bqvkkwkb6m5hls7gipkxbnspfrk1k6l9l0fff0wp1zajnp4pnn";
};
pythonPath = with pythonPackages; [ pyqt4 mercurial qscintilla iniparse ];

View File

@ -1,12 +1,12 @@
{stdenv, fetchurl}:
stdenv.mkDerivation rec {
version = "1.20141026-1";
version = "1.20151229-1";
name = "vcsh-${version}";
src = fetchurl {
url = "https://github.com/RichiH/vcsh/archive/v${version}.tar.gz";
sha256 = "1wgrmkygsbmk8zj88kjx9aim2fc44hh2d1a83h4mn2j714pffh33";
sha256 = "0wgg5zz11ql2v37vby5gbqvnbs80g1q83b9qbvm8d2pqx8bsb0kn";
};
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];

View File

@ -22,11 +22,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ];
buildInputs = [
expat
file xdg_utils boost libebml zlib
libmatroska libogg libvorbis flac
(optional withGUI qt5.qtbase)
];
expat file xdg_utils boost libebml zlib libmatroska libogg
libvorbis flac
] ++ optional withGUI qt5.qtbase;
preConfigure = "./autogen.sh; patchShebangs .";
buildPhase = "./drake -j $NIX_BUILD_CORES";

View File

@ -0,0 +1,30 @@
{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump }:
pythonPackages.buildPythonApplication rec {
version = "1.14.0-rc1";
name = "streamlink-${version}";
src = fetchFromGitHub {
owner = "streamlink";
repo = "streamlink";
rev = "ffc099b16b9a9d2c0c44081d687c50ee2e935f29";
sha256 = "0ix2k2yd2jzcazkjjb0iczr4bv7pgx873k7bhxgb9zwplklxpw1k";
};
propagatedBuildInputs = (with pythonPackages; [ pycrypto requests2 ]) ++ [ rtmpdump ];
meta = with stdenv.lib; {
homepage = https://github.com/streamlink/streamlink;
description = "CLI for extracting streams from various websites to video player of your choosing";
longDescription = ''
Streamlink is a CLI utility that pipes flash videos from online
streaming services to a variety of video players such as VLC, or
alternatively, a browser.
Streamlink is a fork of the livestreamer project.
'';
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = [ maintainers.dezgeg ];
};
}

View File

@ -12,15 +12,15 @@ let
stage1Dir = "lib/rkt/stage1-images";
in stdenv.mkDerivation rec {
version = "1.14.0";
version = "1.15.0";
name = "rkt-${version}";
BUILDDIR="build-${name}";
src = fetchFromGitHub {
rev = "v${version}";
owner = "coreos";
repo = "rkt";
sha256 = "0wniknmsv6xml3cp6ggjlqvcpwhp4bw1dqdnbm561mchvm69zhc2";
rev = "v${version}";
sha256 = "0ppi6r3wr69s6ka1j9xljvq3rw2chp8syyvqcx6ijnzjbwgbwar3";
};
stage1BaseImage = fetchurl {

View File

@ -9,6 +9,7 @@
, pulseSupport ? false, libpulseaudio ? null
, enableHardening ? false
, headless ? false
, patchelfUnstable # needed until 0.10 is released
}:
with stdenv.lib;
@ -48,7 +49,7 @@ in stdenv.mkDerivation {
buildInputs =
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor libIDL
libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
pkgconfig which libXmu libpng ]
pkgconfig which libXmu libpng patchelfUnstable ]
++ optional javaBindings jdk
++ optional pythonBindings python
++ optional pulseSupport libpulseaudio
@ -181,9 +182,6 @@ in stdenv.mkDerivation {
passthru = { inherit version; /* for guest additions */ };
# Workaround for https://github.com/NixOS/patchelf/issues/93 (can be removed once this issue is addressed)
dontPatchELF = true;
meta = {
description = "PC emulator";
homepage = http://www.virtualbox.org/;

View File

@ -139,5 +139,6 @@ stdenv.mkDerivation {
license = "GPL";
maintainers = [ lib.maintainers.sander ];
platforms = lib.platforms.linux;
broken = kernel.features.grsecurity or false;
};
}

View File

@ -2,13 +2,14 @@
, xcbutilimage, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
stdenv.mkDerivation rec {
rev = "63a4c23ec6f0b3f62144122a4277d51caf023e4f";
name = "i3lock-color-2.7_rev${builtins.substring 0 7 rev}";
rev = "c8e1aece7301c3c6481bf2f695734f8d273f252e";
version = "2.7-2016-09-17";
name = "i3lock-color-${version}";
src = fetchFromGitHub {
owner = "Arcaena";
owner = "chrjguill";
repo = "i3lock-color";
inherit rev;
sha256 = "1wfp0p85h45l50l6zfk5cr9ynka60vhjlgnyk8mqd5fp0w4ibxip";
sha256 = "07fpvwgdfxsnxnf63idrz3n1kbyayr53lsfns2q775q93cz1mfia";
};
buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutilimage pam libX11
libev cairo libxkbcommon libxkbfile ];

View File

@ -16,5 +16,4 @@ import <nix/fetchurl.nix> {
let m = builtins.match "mirror://([a-z]+)/(.*)" url; in
if m == null then url
else builtins.head (mirrors.${builtins.elemAt m 0}) + (builtins.elemAt m 1);
}

View File

@ -1886,22 +1886,22 @@ rec {
};
debian8i386 = {
name = "debian-8.5-jessie-i386";
fullName = "Debian 8.5 Jessie (i386)";
name = "debian-8.6-jessie-i386";
fullName = "Debian 8.6 Jessie (i386)";
packagesList = fetchurl {
url = mirror://debian/dists/jessie/main/binary-i386/Packages.xz;
sha256 = "f87a1ee673b335c28cb6ac87be61d6ef20f32dd847835c2bb7d400a00a464c7f";
sha256 = "b915c936233609af3ecf9272cd53fbdb2144d463e8472a30507aa112ef5e6a6b";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;
};
debian8x86_64 = {
name = "debian-8.5-jessie-amd64";
fullName = "Debian 8.5 Jessie (amd64)";
name = "debian-8.6-jessie-amd64";
fullName = "Debian 8.6 Jessie (amd64)";
packagesList = fetchurl {
url = mirror://debian/dists/jessie/main/binary-amd64/Packages.xz;
sha256 = "df6aea15d5547ae8dc6d7ceadc8bf6499bc5a3907d13231f811bf3c1c22474ef";
sha256 = "8b80b6608a8fc72509b949efe1730077f0e8383b29c6aed5f86d9f9b51a631d8";
};
urlPrefix = mirror://debian;
packages = commonDebianPackages;

View File

@ -1,15 +1,34 @@
{ stdenv, fetchurl }:
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
name = "google-fonts";
version = "2015-11-18";
name = "google-fonts-${version}";
version = "2016-08-30";
src = fetchurl {
url = "https://github.com/google/fonts/archive/a26bc2b9f4ad27266c2587dc0355b3066519844a.tar.gz";
sha256 = "1aizwzsxg30mjds1628280bs7ishgsfairnx131654gm51aihw8p";
src = fetchFromGitHub {
owner = "google";
repo = "fonts";
rev = "7a4070f65f2ca85ffdf2d465ff5e095005bae197";
sha256 = "0c20vcsd0jki8drrim68z2ca0cxli4wyh1i1gyg4iyac0a0v8wx3";
};
phases = [ "unpackPhase" "installPhase" ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "13n2icpdp1z7i14rnfwkjdydhbjgdvyl1crd71hfy6l1j2p3kzyf";
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
patchPhase = ''
# These directories need to be removed because they contain
# older or duplicate versions of fonts also present in other
# directories. This causes non-determinism in the install since
# the installation order of font files with the same name is not
# fixed.
rm -rv ofl/alefhebrew \
ofl/misssaintdelafield \
ofl/mrbedford \
ofl/siamreap \
ofl/terminaldosislight
'';
installPhase = ''
dest=$out/share/fonts/truetype
@ -18,10 +37,6 @@ stdenv.mkDerivation rec {
chmod -x $dest/*.ttf
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "0q03gg0sh2mljlbmhamnxz28d13znh9dzca84p554s7pwg6z4wca";
meta = with stdenv.lib; {
homepage = https://www.google.com/fontsl;
description = "Font files available from Google Font";

View File

@ -0,0 +1,44 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
name = "lato-2.0";
src = fetchurl {
url = http://www.latofonts.com/download/Lato2OFL.zip;
sha256 = "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2";
};
sourceRoot = "Lato2OFL";
buildInputs = [ unzip ];
installPhase = ''
mkdir -p $out/share/fonts/lato
cp *.ttf $out/share/fonts/lato
'';
meta = with stdenv.lib; {
homepage = http://www.latofonts.com/;
description = ''
Sans-serif typeface family designed in Summer 2010 by Łukasz Dziedzic
'';
longDescription = ''
Lato is a sans-serif typeface family designed in the Summer 2010 by
Warsaw-based designer Łukasz Dziedzic ("Lato" means "Summer" in Polish).
In December 2010 the Lato family was published under the open-source Open
Font License by his foundry tyPoland, with support from Google.
In 2013-2014, the family was greatly extended to cover 3000+ glyphs per
style. The Lato 2.010 family now supports 100+ Latin-based languages, 50+
Cyrillic-based languages as well as Greek and IPA phonetics. In the
process, the metrics and kerning of the family have been revised and four
additional weights were created.
'';
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ chris-martin ];
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, yacc }:
{ stdenv, fetchpatch, fetchurl, yacc }:
let
@ -14,6 +14,15 @@ in stdenv.mkDerivation {
buildInputs = [ yacc ];
patches = [
# CVE-2012-0808
(fetchpatch {
name = "as31-mkstemps.patch";
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=655496;filename=as31-mkstemps.patch;msg=5";
sha256 = "0iia4wa8m141bwz4588yxb1dp2qwhapcii382sncm6jvwyngwh21";
})
];
preConfigure = ''
chmod +x ./configure
'';

View File

@ -1,16 +1,28 @@
{ stdenv, fetchurl, gnat, zlib }:
{ stdenv, fetchFromGitHub, gnat, zlib, llvm_35, ncurses, clang, flavour ? "mcode" }:
# mcode only works on x86, while the llvm flavour works on both x86 and x86_64.
assert flavour == "llvm" || flavour == "mcode";
let
inherit (stdenv.lib) optional;
inherit (stdenv.lib) optionals;
version = "0.33";
in
stdenv.mkDerivation rec {
name = "ghdl-mcode-${version}";
name = "ghdl-${flavour}-${version}";
src = fetchurl {
url = "https://github.com/tgingold/ghdl/archive/v${version}.tar.gz";
sha256 = "09yvgqyglbakd74v2dgr470clzm744i232nixyffcds55vkij5da";
src = fetchFromGitHub {
owner = "tgingold";
repo = "ghdl";
rev = "v${version}";
sha256 = "0g72rk2yzr0lrpncq2c1qcv71w3mi2hjq84r1yzgjr6d0qm87r2a";
};
buildInputs = [ gnat zlib ];
buildInputs = [ gnat zlib ] ++ optionals (flavour == "llvm") [ clang ncurses ];
configureFlags = optional (flavour == "llvm") "--with-llvm=${llvm_35}";
patchPhase = ''
# Disable warnings-as-errors, because there are warnings (unused things)
@ -23,11 +35,10 @@ stdenv.mkDerivation rec {
meta = {
homepage = "http://sourceforge.net/p/ghdl-updates/wiki/Home/";
description = "Free VHDL simulator, mcode flavour";
description = "Free VHDL simulator";
maintainers = with stdenv.lib.maintainers; [viric];
# I think that mcode can only generate x86 code,
# so it fails to link pieces on x86_64.
platforms = with stdenv.lib.platforms; [ "i686-linux" ];
platforms = with stdenv.lib.platforms; (if flavour == "llvm" then [ "i686-linux" "x86_64-linux" ]
else [ "i686-linux" ]);
license = stdenv.lib.licenses.gpl2Plus;
};
}

View File

@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
done
substituteInPlace $(pwd)/../${usr_prefix}/bin/mlton --replace '/${usr_prefix}/lib/mlton' $(pwd)/../${usr_prefix}/lib/mlton
'' + stdenv.lib.optionalString stdenv.cc.isClang ''
sed -i "s_ patch -s -p0 <gdtoa.hide-public-fns.patch_ patch -s -p0 <gdtoa.hide-public-fns.patch\n\tsed -i 's|printf(emptyfmt|printf(\"\"|g' ./gdtoa/arithchk.c_" ./runtime/Makefile
'';
preBuild = ''

View File

@ -1,82 +1,7 @@
let
safeX11 = stdenv: !(stdenv.isArm || stdenv.isMips);
in
{ stdenv, fetchurl, ncurses, buildEnv, libX11, xproto, useX11 ? safeX11 stdenv }:
if useX11 && !(safeX11 stdenv)
then throw "x11 not available in ocaml with arm or mips arch"
else # let the indentation flow
let
useNativeCompilers = !stdenv.isMips;
inherit (stdenv.lib) optionals optionalString;
in
stdenv.mkDerivation rec {
x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
x11lib = x11env + "/lib";
x11inc = x11env + "/include";
name = "ocaml-4.01.0";
src = fetchurl {
url = "http://caml.inria.fr/pub/distrib/ocaml-4.01/${name}.tar.bz2";
sha256 = "b1ca708994180236917ae79e17606da5bd334ca6acd6873a550027e1c0ec874a";
};
import ./generic.nix rec {
major_version = "4";
minor_version = "01";
patch_version = "0";
patches = [ ./fix-clang-build-on-osx.diff ];
prefixKey = "-prefix ";
configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11lib
"-x11include" x11inc ];
buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
installTargets = "install" + optionalString useNativeCompilers " installopt";
preConfigure = ''
CAT=$(type -tp cat)
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
'';
postBuild = ''
mkdir -p $out/include
ln -sv $out/lib/ocaml/caml $out/include/caml
'';
passthru = {
nativeCompilers = useNativeCompilers;
};
meta = with stdenv.lib; {
homepage = http://caml.inria.fr/ocaml;
branch = "4.01";
license = with licenses; [
qpl /* compiler */
lgpl2 /* library */
];
description = "Most popular variant of the Caml language";
longDescription =
''
OCaml is the most popular variant of the Caml language. From a
language standpoint, it extends the core Caml language with a
fully-fledged object-oriented layer, as well as a powerful module
system, all connected by a sound, polymorphic type system featuring
type inference.
The OCaml system is an industrial-strength implementation of this
language, featuring a high-performance native-code compiler (ocamlopt)
for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
and an interactive read-eval-print loop (ocaml) for quick development
and portability. The OCaml distribution includes a comprehensive
standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
and a documentation generator (ocamldoc).
'';
platforms = with platforms; linux ++ darwin;
};
sha256 = "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7";
}

View File

@ -1,80 +1,7 @@
let
safeX11 = stdenv: !(stdenv.isArm || stdenv.isMips);
in
{ stdenv, fetchurl, ncurses, buildEnv, libX11, xproto, useX11 ? safeX11 stdenv }:
assert useX11 -> !stdenv.isArm && !stdenv.isMips;
let
useNativeCompilers = !stdenv.isMips;
inherit (stdenv.lib) optionals optionalString;
in
stdenv.mkDerivation rec {
x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
x11lib = x11env + "/lib";
x11inc = x11env + "/include";
name = "ocaml-4.02.3";
src = fetchurl {
url = "http://caml.inria.fr/pub/distrib/ocaml-4.02/${name}.tar.xz";
sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
};
import ./generic.nix rec {
major_version = "4";
minor_version = "02";
patch_version = "3";
patches = [ ./ocamlbuild.patch ];
prefixKey = "-prefix ";
configureFlags = optionals useX11 [ "-x11lib" x11lib
"-x11include" x11inc ];
buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
installTargets = "install" + optionalString useNativeCompilers " installopt";
preConfigure = ''
CAT=$(type -tp cat)
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
'';
postBuild = ''
mkdir -p $out/include
ln -sv $out/lib/ocaml/caml $out/include/caml
'';
passthru = {
nativeCompilers = useNativeCompilers;
};
meta = with stdenv.lib; {
homepage = http://caml.inria.fr/ocaml;
branch = "4.02";
license = with licenses; [
qpl /* compiler */
lgpl2 /* library */
];
description = "Most popular variant of the Caml language";
longDescription =
''
OCaml is the most popular variant of the Caml language. From a
language standpoint, it extends the core Caml language with a
fully-fledged object-oriented layer, as well as a powerful module
system, all connected by a sound, polymorphic type system featuring
type inference.
The OCaml system is an industrial-strength implementation of this
language, featuring a high-performance native-code compiler (ocamlopt)
for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
and an interactive read-eval-print loop (ocaml) for quick development
and portability. The OCaml distribution includes a comprehensive
standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
and a documentation generator (ocamldoc).
'';
platforms = with platforms; linux ++ darwin;
};
sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
}

View File

@ -0,0 +1,6 @@
import ./generic.nix rec {
major_version = "4";
minor_version = "03";
patch_version = "0";
sha256 = "09p3iwwi55r6rbrpyp8f0wmkb0ppcgw67yxw6yfky60524wayp39";
}

View File

@ -0,0 +1,89 @@
{ minor_version, major_version, patch_version
, url ? null
, sha256, ...}@args:
let
versionNoPatch = "${toString major_version}.${toString minor_version}";
version = "${versionNoPatch}.${toString patch_version}";
real_url = if url == null then
"http://caml.inria.fr/pub/distrib/ocaml-${versionNoPatch}/ocaml-${version}.tar.xz"
else url;
safeX11 = stdenv: !(stdenv.isArm || stdenv.isMips);
in
{ stdenv, fetchurl, ncurses, buildEnv, libX11, xproto, useX11 ? safeX11 stdenv }:
assert useX11 -> !stdenv.isArm && !stdenv.isMips;
let
useNativeCompilers = !stdenv.isMips;
inherit (stdenv.lib) optionals optionalString;
name = "ocaml-${version}";
in
stdenv.mkDerivation (args // rec {
x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
x11lib = x11env + "/lib";
x11inc = x11env + "/include";
inherit name;
src = fetchurl {
url = real_url;
inherit sha256;
};
prefixKey = "-prefix ";
configureFlags = optionals useX11 [ "-x11lib" x11lib
"-x11include" x11inc ];
buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
installTargets = "install" + optionalString useNativeCompilers " installopt";
preConfigure = ''
CAT=$(type -tp cat)
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
'';
postBuild = ''
mkdir -p $out/include
ln -sv $out/lib/ocaml/caml $out/include/caml
'';
passthru = {
nativeCompilers = useNativeCompilers;
};
meta = with stdenv.lib; {
homepage = http://caml.inria.fr/ocaml;
branch = "4.03";
license = with licenses; [
qpl /* compiler */
lgpl2 /* library */
];
description = "Most popular variant of the Caml language";
longDescription =
''
OCaml is the most popular variant of the Caml language. From a
language standpoint, it extends the core Caml language with a
fully-fledged object-oriented layer, as well as a powerful module
system, all connected by a sound, polymorphic type system featuring
type inference.
The OCaml system is an industrial-strength implementation of this
language, featuring a high-performance native-code compiler (ocamlopt)
for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
and an interactive read-eval-print loop (ocaml) for quick development
and portability. The OCaml distribution includes a comprehensive
standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
and a documentation generator (ocamldoc).
'';
platforms = with platforms; linux ++ darwin;
};
})

View File

@ -17,7 +17,7 @@ let
else
throw "openjdk requires i686-linux or x86_64 linux";
update = "91";
update = "111";
build = "01";
@ -28,31 +28,31 @@ let
repover = "jdk7u${update}-b${build}";
jdk7 = fetchurl {
url = "${baseurl}/archive/${repover}.tar.gz";
sha256 = "08f7cbayyrryim3xbrs12cr12i1mczcikyc9rdlsyih0r4xvll28";
sha256 = "0wgb7hr2gipx1jg28fnsjh7xa744sh1mgr6z3xivmnsfy3dm91gi";
};
langtools = fetchurl {
url = "${baseurl}/langtools/archive/${repover}.tar.gz";
sha256 = "0rmlzrgsacn60blpg1sp30k6p0sgzsml8wb41yc998km1bsnjxnh";
sha256 = "0x1xs923h6sma02cbp1whg735x8vcndh5k01b7rkf714g6rxwa0y";
};
hotspot = fetchurl {
url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
sha256 = "1w1n81y9jcvjzssl4049yzfc0gdfnh73ki6wg1d8pg22zlyhrrwv";
sha256 = "187apnsvnd4cfa7ss5g59dbh7x5ah8f1lwa2wvjfv055h2cmphpn";
};
corba = fetchurl {
url = "${baseurl}/corba/archive/${repover}.tar.gz";
sha256 = "086yr927bxnlgljx7mw2cg6f6aip57hi4qpn1h35n6fsyvb4n67h";
sha256 = "0vmxf5sgjcmkm7i1scanaa2x75a1byj8b36vcajlr6j7qmdx6r8c";
};
jdk = fetchurl {
url = "${baseurl}/jdk/archive/${repover}.tar.gz";
sha256 = "14r39ylj3qa63arpqxl0h84baah1kjgnyp3v9d7d4vd0yagpn66b";
sha256 = "1f8f2dgrjhx8aw1gzawrf8qggf5j0dygsla08bbsxhx5mc5a6cka";
};
jaxws = fetchurl {
url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
sha256 = "1p1739gb5gx9m4sm3i4javfk9lk41wnz92k6gis6sq99dd1bj1l5";
sha256 = "03982ajxm0hzany1jg009ym84vryx7a8qfi6wcgjxyxvk8vnz37c";
};
jaxp = fetchurl {
url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
sha256 = "1nl3kmbwqhhymcp25rnmf5mr3dn87lgdxvz9wgng7if6yqxlyakq";
sha256 = "0578h04y1ha60yjplsa8lqdjds9s2lxzgs9ybm9rs1rqzxmm0xmy";
};
openjdk = stdenv.mkDerivation rec {
name = "openjdk-7u${update}b${build}";

View File

@ -20,7 +20,7 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}"
+ "${optionalString javacSupport "-javac"}";
version = "19.0.2";
version = "19.1";
# Minor OTP releases are not always released as tarbals at
# http://erlang.org/download/ So we have to download from
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
owner = "erlang";
repo = "otp";
rev = "OTP-${version}";
sha256 = "1vsykghhzpgmc42jwj48crl11zzzpvrqvh2lk8lxfqbflzflxm6j";
sha256 = "0nnjj069d5pjhgcd8vvqbrkjdac3p1v4s3zb59i4h73vg7f5p736";
};
buildInputs =
@ -42,15 +42,6 @@ stdenv.mkDerivation rec {
debugInfo = enableDebugInfo;
envAndCpPatch = fetchurl {
url = "https://github.com/binarin/otp/commit/9f9841eb7327c9fe73e84e197fd2965a97b639cf.patch";
sha256 = "10h5348p6g279b4q01i5jdqlljww5chcvrx5b4b0dv79pk0p0m9f";
};
patches = [
envAndCpPatch
];
preConfigure = ''
./otp_build autoconf
'';

View File

@ -300,8 +300,8 @@ let
in {
php56 = generic {
version = "5.6.25";
sha256 = "1pldn4z7pzcjm8li9xryrniz5cz542cbv4nlrr13wzzdmhr61kjq";
version = "5.6.26";
sha256 = "0dk2ifn50iv8jvw2jyw2pr9xqnkksxfv9qbpay84na54hf0anynl";
};
php70 = generic {

View File

@ -1,20 +1,20 @@
{ stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, intltool, glib
, gtk_doc, autoconf, automake, libtool, libarchive, libyaml
, gobjectIntrospection, sqlite, libsoup, gcab, attr, acl, docbook_xsl
, libuuid, json_glib
, libuuid, json_glib, autoconf-archive
}:
stdenv.mkDerivation rec {
name = "appstream-glib-0.5.12";
name = "appstream-glib-0.6.3";
src = fetchFromGitHub {
owner = "hughsie";
repo = "appstream-glib";
rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name;
sha256 = "00b0441f409vzgy0znn42k093w7hwv3495qvsakxnhvk1h1ws23s";
sha256 = "12l0vzhi9vpyrnf7vrpq21rb26mb6yskp5zgngdjyjanwhzmc617";
};
nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool ];
nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool autoconf-archive ];
buildInputs = [ glib gtk_doc gettext sqlite libsoup
gcab attr acl docbook_xsl libuuid json_glib
libarchive libyaml gtk3 gobjectIntrospection ];

View File

@ -2,8 +2,8 @@
callPackage ./generic.nix (args // {
baseVersion = "1.11";
revision = "30";
sha256 = "09d1cvg6dnfi225wipc1fw691bq7xxdcmgkq8smldc5kivf3mbwd";
revision = "31";
sha256 = "1vnx75g5zzzbgsrwnmnhqdal29gcn63g0ldyj0g9cky8ha8iqx8f";
openssl = null;
postPatch = "sed '1i#include <cmath>' -i src/tests/test_bigint.cpp";
})

View File

@ -1,7 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "${branch}.7";
version = "${branch}.8";
branch = "2.8";
sha256 = "1rggcy8kflmlvdyf5yqv0zshycysyqz45fl06v8zsh2n6d5cwxw7";
sha256 = "19h6xmlcb933hgpfd40mjwkral8v389v25sx660a3p7aiyalh25p";
})

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation rec {
name = "jansson-2.7";
name = "jansson-2.8";
src = fetchurl {
url = "http://www.digip.org/jansson/releases/${name}.tar.gz";
sha256 = "1mvq9p85khsl818i4vbszyfab0fd45mdrwrxjkzw05mk1xcyc1br";
sha256 = "0v7v82mv7x44rpcxmrpnmb8hqimx67qwsp2cz9mv3y0f37iykwnf";
};
meta = with stdenv.lib; {

View File

@ -1,11 +1,13 @@
{ stdenv, fetchurl, pkgconfig, libxml2, glibmm, perl }:
stdenv.mkDerivation rec {
name = "libxml++-2.38.1";
name = "libxml++-${maj_ver}.${min_ver}";
maj_ver = "2.40";
min_ver = "1";
src = fetchurl {
url = "mirror://gnome/sources/libxml++/2.38/${name}.tar.xz";
sha256 = "0px0ljcf9rsfa092dzmm097yn7wln6d5fgsvj9lnrnq3kcc2j9c8";
url = "mirror://gnome/sources/libxml++/${maj_ver}/${name}.tar.xz";
sha256 = "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a";
};
nativeBuildInputs = [ pkgconfig perl ];
@ -14,8 +16,6 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ libxml2 ];
configureFlags = "--disable-documentation"; #doesn't build without this for some reason
meta = with stdenv.lib; {
homepage = http://libxmlplusplus.sourceforge.net/;
description = "C++ wrapper for the libxml2 XML parser library";

View File

@ -1,7 +1,7 @@
diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am mesa-11.1.4/src/gallium/targets/dri/Makefile.am
--- mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am 2016-05-09 14:20:52.000000000 +0200
+++ mesa-11.1.4/src/gallium/targets/dri/Makefile.am 2016-05-22 17:56:03.396185082 +0200
@@ -126,14 +126,13 @@
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/dri/Makefile.am mesa-12.0.3/src/gallium/targets/dri/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/dri/Makefile.am 2016-09-08 18:57:48.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/dri/Makefile.am 2016-09-22 14:42:19.173575498 +0200
@@ -134,14 +134,13 @@
done;
endif
@ -19,9 +19,25 @@ diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am mesa-11.1.
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am mesa-11.1.4/src/gallium/targets/vdpau/Makefile.am
--- mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am 2016-01-29 13:21:30.000000000 +0100
+++ mesa-11.1.4/src/gallium/targets/vdpau/Makefile.am 2016-05-22 20:54:12.722358242 +0200
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/va/Makefile.am mesa-12.0.3/src/gallium/targets/va/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/va/Makefile.am 2016-09-08 18:57:48.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/va/Makefile.am 2016-09-22 14:45:39.635963339 +0200
@@ -71,10 +71,10 @@
# gallium_drv_video.so in the set of final installed files.
install-data-hook:
for i in $(TARGET_DRIVERS); do \
- ln -f $(DESTDIR)$(vadir)/gallium_drv_video.so \
+ ln -srf $(DESTDIR)$(vadir)/gallium_drv_video.so \
$(DESTDIR)$(vadir)/$${i}_drv_video.so; \
done; \
- $(RM) $(DESTDIR)$(vadir)/gallium_drv_video.*
+ $(RM) $(DESTDIR)$(vadir)/gallium_drv_video.la
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/vdpau/Makefile.am mesa-12.0.3/src/gallium/targets/vdpau/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/vdpau/Makefile.am 2016-05-24 21:19:37.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/vdpau/Makefile.am 2016-09-22 14:42:19.173575498 +0200
@@ -103,15 +103,14 @@
done;
endif
@ -49,10 +65,31 @@ diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am mesa-11.
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-11.1.4-orig/src/mesa/drivers/dri/Makefile.am mesa-11.1.4/src/mesa/drivers/dri/Makefile.am
--- mesa-11.1.4-orig/src/mesa/drivers/dri/Makefile.am 2016-01-18 08:39:26.000000000 +0100
+++ mesa-11.1.4/src/mesa/drivers/dri/Makefile.am 2016-05-22 17:55:46.251244940 +0200
@@ -86,14 +86,13 @@
diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/xvmc/Makefile.am mesa-12.0.3/src/gallium/targets/xvmc/Makefile.am
--- mesa-12.0.3-orig/src/gallium/targets/xvmc/Makefile.am 2016-05-24 21:19:37.000000000 +0200
+++ mesa-12.0.3/src/gallium/targets/xvmc/Makefile.am 2016-09-22 14:54:22.291014543 +0200
@@ -73,7 +73,7 @@
j=libXvMCgallium.$(LIB_EXT); \
k=libXvMC$${i}.$(LIB_EXT); \
l=$${k}.$(XVMC_MAJOR).$(XVMC_MINOR).0; \
- ln -f $${dest_dir}/$${j}.$(XVMC_MAJOR).$(XVMC_MINOR).0 \
+ ln -srf $${dest_dir}/$${j}.$(XVMC_MAJOR).$(XVMC_MINOR).0 \
$${dest_dir}/$${l}; \
ln -sf $${l} \
$${dest_dir}/$${k}.$(XVMC_MAJOR).$(XVMC_MINOR); \
@@ -82,7 +82,7 @@
ln -sf $${l} \
$${dest_dir}/$${k}; \
done; \
- $(RM) $${dest_dir}/libXvMCgallium.*
+ $(RM) $${dest_dir}/libXvMCgallium.la
uninstall-hook:
for i in $(TARGET_DRIVERS); do \
diff -ru -x '*~' mesa-12.0.3-orig/src/mesa/drivers/dri/Makefile.am mesa-12.0.3/src/mesa/drivers/dri/Makefile.am
--- mesa-12.0.3-orig/src/mesa/drivers/dri/Makefile.am 2016-09-08 18:57:48.000000000 +0200
+++ mesa-12.0.3/src/mesa/drivers/dri/Makefile.am 2016-09-22 14:42:19.173575498 +0200
@@ -94,14 +94,13 @@
done;
endif

View File

@ -1,256 +0,0 @@
From 6f35f6deb5ca7daebe289f86477e061ce3ee5f46 Mon Sep 17 00:00:00 2001
From: Matt Caswell <matt@openssl.org>
Date: Thu, 5 May 2016 11:10:26 +0100
Subject: [PATCH] Avoid some undefined pointer arithmetic
A common idiom in the codebase is:
if (p + len > limit)
{
return; /* Too long */
}
Where "p" points to some malloc'd data of SIZE bytes and
limit == p + SIZE
"len" here could be from some externally supplied data (e.g. from a TLS
message).
The rules of C pointer arithmetic are such that "p + len" is only well
defined where len <= SIZE. Therefore the above idiom is actually
undefined behaviour.
For example this could cause problems if some malloc implementation
provides an address for "p" such that "p + len" actually overflows for
values of len that are too big and therefore p + len < limit!
Issue reported by Guido Vranken.
CVE-2016-2177
Reviewed-by: Rich Salz <rsalz@openssl.org>
---
ssl/s3_srvr.c | 14 +++++++-------
ssl/ssl_sess.c | 2 +-
ssl/t1_lib.c | 48 ++++++++++++++++++++++++++----------------------
3 files changed, 34 insertions(+), 30 deletions(-)
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index 04cf93a..6c74caa 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -1040,7 +1040,7 @@ int ssl3_get_client_hello(SSL *s)
session_length = *(p + SSL3_RANDOM_SIZE);
- if (p + SSL3_RANDOM_SIZE + session_length + 1 >= d + n) {
+ if (SSL3_RANDOM_SIZE + session_length + 1 >= (d + n) - p) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1058,7 +1058,7 @@ int ssl3_get_client_hello(SSL *s)
/* get the session-id */
j = *(p++);
- if (p + j > d + n) {
+ if ((d + n) - p < j) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1114,14 +1114,14 @@ int ssl3_get_client_hello(SSL *s)
if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) {
/* cookie stuff */
- if (p + 1 > d + n) {
+ if ((d + n) - p < 1) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
}
cookie_len = *(p++);
- if (p + cookie_len > d + n) {
+ if ((d + n ) - p < cookie_len) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1166,7 +1166,7 @@ int ssl3_get_client_hello(SSL *s)
p += cookie_len;
}
- if (p + 2 > d + n) {
+ if ((d + n ) - p < 2) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1180,7 +1180,7 @@ int ssl3_get_client_hello(SSL *s)
}
/* i bytes of cipher data + 1 byte for compression length later */
- if ((p + i + 1) > (d + n)) {
+ if ((d + n) - p < i + 1) {
/* not enough data */
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
@@ -1246,7 +1246,7 @@ int ssl3_get_client_hello(SSL *s)
/* compression */
i = *(p++);
- if ((p + i) > (d + n)) {
+ if ((d + n) - p < i) {
/* not enough data */
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
index 48fc451..a97d060 100644
--- a/ssl/ssl_sess.c
+++ b/ssl/ssl_sess.c
@@ -602,7 +602,7 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len,
int r;
#endif
- if (session_id + len > limit) {
+ if (limit - session_id < len) {
fatal = 1;
goto err;
}
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index 0bdb77d..8ed1793 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -942,11 +942,11 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
0x02, 0x03, /* SHA-1/ECDSA */
};
- if (data >= (limit - 2))
+ if (limit - data <= 2)
return;
data += 2;
- if (data > (limit - 4))
+ if (limit - data < 4)
return;
n2s(data, type);
n2s(data, size);
@@ -954,7 +954,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
if (type != TLSEXT_TYPE_server_name)
return;
- if (data + size > limit)
+ if (limit - data < size)
return;
data += size;
@@ -962,7 +962,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
const size_t len1 = sizeof(kSafariExtensionsBlock);
const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock);
- if (data + len1 + len2 != limit)
+ if (limit - data != (int)(len1 + len2))
return;
if (memcmp(data, kSafariExtensionsBlock, len1) != 0)
return;
@@ -971,7 +971,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
} else {
const size_t len = sizeof(kSafariExtensionsBlock);
- if (data + len != limit)
+ if (limit - data != (int)(len))
return;
if (memcmp(data, kSafariExtensionsBlock, len) != 0)
return;
@@ -1019,19 +1019,19 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p,
if (data == limit)
goto ri_check;
- if (data > (limit - 2))
+ if (limit - data < 2)
goto err;
n2s(data, len);
- if (data + len != limit)
+ if (limit - data != len)
goto err;
- while (data <= (limit - 4)) {
+ while (limit - data >= 4) {
n2s(data, type);
n2s(data, size);
- if (data + size > (limit))
+ if (limit - data < size)
goto err;
# if 0
fprintf(stderr, "Received extension type %d size %d\n", type, size);
@@ -1460,20 +1460,20 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d,
SSL_TLSEXT_HB_DONT_SEND_REQUESTS);
# endif
- if (data >= (d + n - 2))
+ if ((d + n) - data <= 2)
goto ri_check;
n2s(data, length);
- if (data + length != d + n) {
+ if ((d + n) - data != length) {
*al = SSL_AD_DECODE_ERROR;
return 0;
}
- while (data <= (d + n - 4)) {
+ while ((d + n) - data >= 4) {
n2s(data, type);
n2s(data, size);
- if (data + size > (d + n))
+ if ((d + n) - data < size)
goto ri_check;
if (s->tlsext_debug_cb)
@@ -2179,29 +2179,33 @@ int tls1_process_ticket(SSL *s, unsigned char *session_id, int len,
/* Skip past DTLS cookie */
if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) {
i = *(p++);
- p += i;
- if (p >= limit)
+
+ if (limit - p <= i)
return -1;
+
+ p += i;
}
/* Skip past cipher list */
n2s(p, i);
- p += i;
- if (p >= limit)
+ if (limit - p <= i)
return -1;
+ p += i;
+
/* Skip past compression algorithm list */
i = *(p++);
- p += i;
- if (p > limit)
+ if (limit - p < i)
return -1;
+ p += i;
+
/* Now at start of extensions */
- if ((p + 2) >= limit)
+ if (limit - p <= 2)
return 0;
n2s(p, i);
- while ((p + 4) <= limit) {
+ while (limit - p >= 4) {
unsigned short type, size;
n2s(p, type);
n2s(p, size);
- if (p + size > limit)
+ if (limit - p < size)
return 0;
if (type == TLSEXT_TYPE_session_ticket) {
int r;
--
1.9.1

View File

@ -1,279 +0,0 @@
From a004e72b95835136d3f1ea90517f706c24c03da7 Mon Sep 17 00:00:00 2001
From: Matt Caswell <matt@openssl.org>
Date: Thu, 5 May 2016 11:10:26 +0100
Subject: [PATCH] Avoid some undefined pointer arithmetic
A common idiom in the codebase is:
if (p + len > limit)
{
return; /* Too long */
}
Where "p" points to some malloc'd data of SIZE bytes and
limit == p + SIZE
"len" here could be from some externally supplied data (e.g. from a TLS
message).
The rules of C pointer arithmetic are such that "p + len" is only well
defined where len <= SIZE. Therefore the above idiom is actually
undefined behaviour.
For example this could cause problems if some malloc implementation
provides an address for "p" such that "p + len" actually overflows for
values of len that are too big and therefore p + len < limit!
Issue reported by Guido Vranken.
CVE-2016-2177
Reviewed-by: Rich Salz <rsalz@openssl.org>
---
ssl/s3_srvr.c | 14 +++++++-------
ssl/ssl_sess.c | 2 +-
ssl/t1_lib.c | 56 ++++++++++++++++++++++++++++++--------------------------
3 files changed, 38 insertions(+), 34 deletions(-)
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index ab28702..ab7f690 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -980,7 +980,7 @@ int ssl3_get_client_hello(SSL *s)
session_length = *(p + SSL3_RANDOM_SIZE);
- if (p + SSL3_RANDOM_SIZE + session_length + 1 >= d + n) {
+ if (SSL3_RANDOM_SIZE + session_length + 1 >= (d + n) - p) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -998,7 +998,7 @@ int ssl3_get_client_hello(SSL *s)
/* get the session-id */
j = *(p++);
- if (p + j > d + n) {
+ if ((d + n) - p < j) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1054,14 +1054,14 @@ int ssl3_get_client_hello(SSL *s)
if (SSL_IS_DTLS(s)) {
/* cookie stuff */
- if (p + 1 > d + n) {
+ if ((d + n) - p < 1) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
}
cookie_len = *(p++);
- if (p + cookie_len > d + n) {
+ if ((d + n ) - p < cookie_len) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1131,7 +1131,7 @@ int ssl3_get_client_hello(SSL *s)
}
}
- if (p + 2 > d + n) {
+ if ((d + n ) - p < 2) {
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
goto f_err;
@@ -1145,7 +1145,7 @@ int ssl3_get_client_hello(SSL *s)
}
/* i bytes of cipher data + 1 byte for compression length later */
- if ((p + i + 1) > (d + n)) {
+ if ((d + n) - p < i + 1) {
/* not enough data */
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
@@ -1211,7 +1211,7 @@ int ssl3_get_client_hello(SSL *s)
/* compression */
i = *(p++);
- if ((p + i) > (d + n)) {
+ if ((d + n) - p < i) {
/* not enough data */
al = SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
index b182998..54ee783 100644
--- a/ssl/ssl_sess.c
+++ b/ssl/ssl_sess.c
@@ -573,7 +573,7 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len,
int r;
#endif
- if (session_id + len > limit) {
+ if (limit - session_id < len) {
fatal = 1;
goto err;
}
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index fb64607..cdac011 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -1867,11 +1867,11 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
0x02, 0x03, /* SHA-1/ECDSA */
};
- if (data >= (limit - 2))
+ if (limit - data <= 2)
return;
data += 2;
- if (data > (limit - 4))
+ if (limit - data < 4)
return;
n2s(data, type);
n2s(data, size);
@@ -1879,7 +1879,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
if (type != TLSEXT_TYPE_server_name)
return;
- if (data + size > limit)
+ if (limit - data < size)
return;
data += size;
@@ -1887,7 +1887,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
const size_t len1 = sizeof(kSafariExtensionsBlock);
const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock);
- if (data + len1 + len2 != limit)
+ if (limit - data != (int)(len1 + len2))
return;
if (memcmp(data, kSafariExtensionsBlock, len1) != 0)
return;
@@ -1896,7 +1896,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
} else {
const size_t len = sizeof(kSafariExtensionsBlock);
- if (data + len != limit)
+ if (limit - data != (int)(len))
return;
if (memcmp(data, kSafariExtensionsBlock, len) != 0)
return;
@@ -2053,19 +2053,19 @@ static int ssl_scan_clienthello_tlsext(SSL *s, unsigned char **p,
if (data == limit)
goto ri_check;
- if (data > (limit - 2))
+ if (limit - data < 2)
goto err;
n2s(data, len);
- if (data + len != limit)
+ if (limit - data != len)
goto err;
- while (data <= (limit - 4)) {
+ while (limit - data >= 4) {
n2s(data, type);
n2s(data, size);
- if (data + size > (limit))
+ if (limit - data < size)
goto err;
# if 0
fprintf(stderr, "Received extension type %d size %d\n", type, size);
@@ -2472,18 +2472,18 @@ static int ssl_scan_clienthello_custom_tlsext(SSL *s,
if (s->hit || s->cert->srv_ext.meths_count == 0)
return 1;
- if (data >= limit - 2)
+ if (limit - data <= 2)
return 1;
n2s(data, len);
- if (data > limit - len)
+ if (limit - data < len)
return 1;
- while (data <= limit - 4) {
+ while (limit - data >= 4) {
n2s(data, type);
n2s(data, size);
- if (data + size > limit)
+ if (limit - data < size)
return 1;
if (custom_ext_parse(s, 1 /* server */ , type, data, size, al) <= 0)
return 0;
@@ -2569,20 +2569,20 @@ static int ssl_scan_serverhello_tlsext(SSL *s, unsigned char **p,
SSL_TLSEXT_HB_DONT_SEND_REQUESTS);
# endif
- if (data >= (d + n - 2))
+ if ((d + n) - data <= 2)
goto ri_check;
n2s(data, length);
- if (data + length != d + n) {
+ if ((d + n) - data != length) {
*al = SSL_AD_DECODE_ERROR;
return 0;
}
- while (data <= (d + n - 4)) {
+ while ((d + n) - data >= 4) {
n2s(data, type);
n2s(data, size);
- if (data + size > (d + n))
+ if ((d + n) - data < size)
goto ri_check;
if (s->tlsext_debug_cb)
@@ -3307,29 +3307,33 @@ int tls1_process_ticket(SSL *s, unsigned char *session_id, int len,
/* Skip past DTLS cookie */
if (SSL_IS_DTLS(s)) {
i = *(p++);
- p += i;
- if (p >= limit)
+
+ if (limit - p <= i)
return -1;
+
+ p += i;
}
/* Skip past cipher list */
n2s(p, i);
- p += i;
- if (p >= limit)
+ if (limit - p <= i)
return -1;
+ p += i;
+
/* Skip past compression algorithm list */
i = *(p++);
- p += i;
- if (p > limit)
+ if (limit - p < i)
return -1;
+ p += i;
+
/* Now at start of extensions */
- if ((p + 2) >= limit)
+ if (limit - p <= 2)
return 0;
n2s(p, i);
- while ((p + 4) <= limit) {
+ while (limit - p >= 4) {
unsigned short type, size;
n2s(p, type);
n2s(p, size);
- if (p + size > limit)
+ if (limit - p < size)
return 0;
if (type == TLSEXT_TYPE_session_ticket) {
int r;
--
1.9.1

View File

@ -106,26 +106,18 @@ let
in {
openssl_1_0_1 = common {
version = "1.0.1t";
sha256 = "4a6ee491a2fdb22e519c76fdc2a628bb3cec12762cd456861d207996c8a07088";
patches = [
# https://git.openssl.org/?p=openssl.git;a=commit;h=6f35f6deb5ca7daebe289f86477e061ce3ee5f46
./1.0.1-CVE-2016-2177.diff
];
version = "1.0.1u";
sha256 = "0fb7y9pwbd76pgzd7xzqfrzibmc0vf03sl07f34z5dhm2b5b84j3";
};
openssl_1_0_2 = common {
version = "1.0.2h";
sha256 = "1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919";
patches = [
# https://git.openssl.org/?p=openssl.git;a=commit;h=a004e72b95835136d3f1ea90517f706c24c03da7
./1.0.2-CVE-2016-2177.diff
];
version = "1.0.2i";
sha256 = "0vyy038676cv3m2523fi9ll9nkjxadqdnz18zdp5nm6925yli1wj";
};
openssl_1_1_0 = common {
version = "1.1.0";
sha256 = "10lcpmnxap9nw8ymdglys93cgkwd1lf1rz4fhq5whwhlmkwrzipm";
version = "1.1.0a";
sha256 = "0as40a1lipl9qfax7495jc1xfb049ygavkaxxk4y5kcn8birdrn2";
};
}

View File

@ -1,21 +0,0 @@
{ stdenv, fetchurl, cmake, openssl, popt, xmlto }:
stdenv.mkDerivation rec {
version = "0.4.1";
name = "rabbitmq-c-${version}";
src = fetchurl {
name = "${name}.tar.gz";
url = "https://github.com/alanxz/rabbitmq-c/releases/download/v${version}/${name}.tar.gz";
sha256 = "01m4n043hzhhxky8z67zj3r4gbg3mwcqbwqr9nms9lqbfaa70x93";
};
buildInputs = [ cmake openssl popt xmlto ];
meta = {
description = "RabbitMQ C AMQP client library";
homepage = https://github.com/alanxz/rabbitmq-c;
license = stdenv.lib.licenses.mit;
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
url = "http://www.vandenoever.info/software/strigi/${name}.tar.bz2";
sha256 = "12grxzqwnvbyqw7q1gnz42lypadxmq89vk2qpxczmpmc4nk63r23";
};
includeAllQtDirs = true;
CLUCENE_HOME = clucene_core;
@ -24,6 +24,15 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
# Strigi installs some libraries in an incorrect place
# ($out/$out/lib instead of $out/lib), so move them to the right
# place.
postInstall =
''
mv $out/$out/lib/* $out/lib
rm -rf $out/nix
'';
meta = {
homepage = http://strigi.sourceforge.net;
description = "A very fast and efficient crawler to index data on your harddrive";

View File

@ -1,86 +0,0 @@
{ stdenv, fetchurl, fetchpatch, perl, python, ruby, bison, gperf, cmake
, pkgconfig, gettext, gobjectIntrospection, libnotify
, gtk2, gtk3, wayland, libwebp, enchant
, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
, enableGeoLocation ? false, geoclue2, sqlite, xorg
, enableCredentialStorage ? !stdenv.isDarwin
, gst-plugins-base, readline, libedit
}:
assert enableGeoLocation -> geoclue2 != null;
assert stdenv.isDarwin -> !enableCredentialStorage;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "webkitgtk-${version}";
version = "2.10.9";
meta = {
description = "Web content rendering engine, GTK+ port";
homepage = "http://webkitgtk.org/";
license = licenses.bsd2;
platforms = platforms.linux;
hydraPlatforms = [];
maintainers = with maintainers; [ koral ];
};
preConfigure = "patchShebangs Tools";
src = fetchurl {
url = "http://webkitgtk.org/releases/${name}.tar.xz";
sha256 = "0sg935wpkgyd5ypd5fj25vd7ri8s6sbrmssb53xbgcc02xs8vcdv";
};
patches = [
./finding-harfbuzz-icu.patch
] ++ optional stdenv.isDarwin ./adding-libintl.patch;
cmakeFlags = [
"-DPORT=GTK"
"-DUSE_LIBHYPHEN=OFF"
] ++ optionals (!enableCredentialStorage) [
"-DENABLE_CREDENTIAL_STORAGE=OFF"
] ++ optionals (!enableGeoLocation) [
"-DENABLE_GEOLOCATION=OFF"
] ++ optionals stdenv.isDarwin [
"-DENABLE_WEBKIT=ON"
"-DENABLE_X11_TARGET=OFF"
"-DENABLE_QUARTZ_TARGET=ON"
"-DENABLE_TOOLS=ON"
"-DENABLE_MINIBROWSER=ON"
"-DENABLE_PLUGIN_PROCESS_GTK2=OFF"
"-DENABLE_VIDEO=OFF"
"-DENABLE_WEB_AUDIO=OFF"
"-DENABLE_OPENGL=OFF"
"-DENABLE_INTROSPECTION=OFF"
"-DUSE_LIBNOTIFY=OFF"
"-DCMAKE_SHARED_LINKER_FLAGS=-L/path/to/nonexistent/folder"
];
# XXX: WebKit2 missing include path for gst-plugins-base.
# Filled: https://bugs.webkit.org/show_bug.cgi?id=148894
NIX_CFLAGS_COMPILE = "-I${gst-plugins-base.dev}/include/gstreamer-1.0";
nativeBuildInputs = [
cmake perl python ruby bison gperf sqlite
pkgconfig gettext gobjectIntrospection
];
buildInputs = [
gtk2 libwebp enchant libnotify
libxml2 libxslt harfbuzz libpthreadstubs
gst-plugins-base xorg.libXt
] ++ optionals enableCredentialStorage [
libsecret
] ++ (if stdenv.isDarwin then [
readline libedit
] else [
wayland
]) ++ optional enableGeoLocation geoclue2;
propagatedBuildInputs = [
libsoup gtk3
];
enableParallelBuilding = true;
}

View File

@ -0,0 +1,63 @@
{ stdenv, fetchurl, perl, python, ruby, bison, gperf, cmake
, pkgconfig, gettext, gobjectIntrospection, libnotify, gnutls
, gtk2, gtk3, wayland, libwebp, enchant, xlibs, libxkbcommon, epoxy, at_spi2_core
, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
, enableGeoLocation ? true, geoclue2, sqlite
, gst-plugins-base
}:
assert enableGeoLocation -> geoclue2 != null;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "webkitgtk-${version}";
version = "2.14.0";
meta = {
description = "Web content rendering engine, GTK+ port";
homepage = "http://webkitgtk.org/";
license = licenses.bsd2;
platforms = platforms.linux;
hydraPlatforms = [];
maintainers = with maintainers; [ ];
};
preConfigure = "patchShebangs Tools";
src = fetchurl {
url = "http://webkitgtk.org/releases/${name}.tar.xz";
sha256 = "02paj0anbnqn1z3hn5c4csmq9nga995rzagiplj3sjk2dj1ss4q5";
};
# see if we can clean this up....
patches = [ ./finding-harfbuzz-icu.patch ];
cmakeFlags = [
"-DPORT=GTK"
"-DUSE_LIBHYPHEN=0"
"-DENABLE_GLES2=ON"
];
# XXX: WebKit2 missing include path for gst-plugins-base.
# Filled: https://bugs.webkit.org/show_bug.cgi?id=148894
#NIX_CFLAGS_COMPILE = "-I${gst-plugins-base.dev}/include/gstreamer-1.0";
nativeBuildInputs = [
cmake perl python ruby bison gperf sqlite
pkgconfig gettext gobjectIntrospection
];
buildInputs = [
gtk2 wayland libwebp enchant libnotify gnutls
libxml2 libsecret libxslt harfbuzz libpthreadstubs
gst-plugins-base libxkbcommon epoxy at_spi2_core
] ++ optional enableGeoLocation geoclue2
++ (with xlibs; [ libXdmcp libXt libXtst ]);
propagatedBuildInputs = [
libsoup gtk3
];
enableParallelBuilding = true;
}

View File

@ -1,5 +1,7 @@
NPM packages
===========
Node.js packages
===============
To add a package from [NPM](https://www.npmjs.com/) to nixpkgs:
1. Install node2nix: `nix-env -f '<nixpkgs>' -iA node2nix`.
2. Modify `pkgs/development/node-packages/node-packages.json`, to add, update,
or remove package entries.

View File

@ -1,5 +1,5 @@
{stdenv, buildOcaml, fetchurl, async_kernel,
async_unix, async_extra, pa_ounit}:
{stdenv, buildOcaml, fetchurl, async_kernel_p4,
async_unix_p4, async_extra_p4, pa_ounit}:
buildOcaml rec {
name = "async";
@ -12,7 +12,7 @@ buildOcaml rec {
sha256 = "ecc4ca939ab098e689332921b110dbaacd06d9f8d8bf697023dfff3ca37dc1e9";
};
propagatedBuildInputs = [ async_kernel async_unix async_extra pa_ounit ];
propagatedBuildInputs = [ async_kernel_p4 async_unix_p4 async_extra_p4 pa_ounit ];
meta = with stdenv.lib; {
homepage = https://github.com/janestreet/async;

View File

@ -1,6 +1,6 @@
{stdenv, buildOcaml, fetchurl, async_kernel, async_unix,
bin_prot, core, custom_printf, fieldslib, herelib, pa_ounit,
pipebang, pa_test, sexplib}:
{stdenv, buildOcaml, fetchurl, async_kernel_p4, async_unix_p4,
bin_prot_p4, core_p4, custom_printf, fieldslib_p4, herelib, pa_ounit,
pipebang, pa_test, sexplib_p4}:
buildOcaml rec {
name = "async_extra";
@ -14,8 +14,8 @@ buildOcaml rec {
};
buildInputs = [ pa_test pa_ounit ];
propagatedBuildInputs = [ async_kernel async_unix core bin_prot custom_printf
fieldslib herelib pipebang sexplib ];
propagatedBuildInputs = [ async_kernel_p4 async_unix_p4 core_p4 bin_prot_p4 custom_printf
fieldslib_p4 herelib pipebang sexplib_p4 ];
meta = with stdenv.lib; {
homepage = https://github.com/janestreet/async_extra;

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