diff --git a/lib/licenses.nix b/lib/licenses.nix
index f01712500e7..4071fcfd70d 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -195,6 +195,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "Unspecified free software license";
};
+ g4sl = {
+ fullName = "Geant4 Software License";
+ url = https://geant4.web.cern.ch/geant4/license/LICENSE.html;
+ };
+
gpl1 = spdx {
spdxId = "GPL-1.0";
fullName = "GNU General Public License v1.0 only";
diff --git a/lib/sources.nix b/lib/sources.nix
index 535b04523b5..c1ec02b9c26 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -44,12 +44,12 @@ rec {
packedRefsName = toString path + "/packed-refs";
in if lib.pathExists fileName
then
- let fileContent = readFile fileName;
+ let fileContent = lib.fileContents fileName;
# Sometimes git stores the commitId directly in the file but
# sometimes it stores something like: «ref: refs/heads/branch-name»
- matchRef = match "^ref: (.*)\n$" fileContent;
+ matchRef = match "^ref: (.*)$" fileContent;
in if isNull matchRef
- then lib.removeSuffix "\n" fileContent
+ then fileContent
else readCommitFromFile path (lib.head matchRef)
# Sometimes, the file isn't there at all and has been packed away in the
# packed-refs file, so we have to grep through it:
diff --git a/lib/strings.nix b/lib/strings.nix
index 5e5f7b37866..daf84583934 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -479,4 +479,14 @@ rec {
absolutePaths = builtins.map (path: builtins.toPath (root + "/" + path)) relativePaths;
in
absolutePaths;
+
+ /* Read the contents of a file removing the trailing \n
+
+ Example:
+ $ echo "1.0" > ./version
+
+ fileContents ./version
+ => "1.0"
+ */
+ fileContents = file: removeSuffix "\n" (builtins.readFile file);
}
diff --git a/lib/trivial.nix b/lib/trivial.nix
index 9821e3c138d..f85c74ab88e 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -62,11 +62,13 @@ rec {
isInt add sub lessThan
seq deepSeq genericClosure;
+ inherit (import ./strings.nix) fileContents;
+
# Return the Nixpkgs version number.
nixpkgsVersion =
let suffixFile = ../.version-suffix; in
- readFile ../.version
- + (if pathExists suffixFile then readFile suffixFile else "pre-git");
+ fileContents ../.version
+ + (if pathExists suffixFile then fileContents suffixFile else "pre-git");
# Whether we're being called by nix-shell.
inNixShell = builtins.getEnv "IN_NIX_SHELL" == "1";
diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml
index 48810cc6ac6..26f8ebad734 100644
--- a/nixos/doc/manual/configuration/configuration.xml
+++ b/nixos/doc/manual/configuration/configuration.xml
@@ -31,6 +31,7 @@ effect after you run nixos-rebuild.
+
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 83dad5fd8dc..2592766ee49 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -60,6 +60,7 @@ let
cp ${../../modules/services/misc/taskserver/doc.xml} configuration/taskserver.xml
cp ${../../modules/security/acme.xml} configuration/acme.xml
cp ${../../modules/i18n/input-method/default.xml} configuration/input-methods.xml
+ cp ${../../modules/services/editors/emacs.xml} configuration/emacs.xml
ln -s ${optionsDocBook} options-db.xml
echo "${version}" > version
'';
@@ -122,7 +123,7 @@ let
Allows for cross-referencing olinks between the manpages
- and the HTML/PDF manuals.
+ and manual.
&manualtargets;
@@ -221,34 +222,14 @@ in rec {
mkdir -p $dst/epub/OEBPS/images/callouts
cp -r ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/epub/OEBPS/images/callouts
echo "application/epub+zip" > mimetype
- zip -0Xq "$dst/NixOS Manual - NixOS community.epub" mimetype
- zip -Xr9D "$dst/NixOS Manual - NixOS community.epub" $dst/epub/*
+ manual="$dst/nixos-manual.epub"
+ zip -0Xq "$manual" mimetype
+ cd $dst/epub && zip -Xr9D "$manual" *
+
+ rm -rf $dst/epub
mkdir -p $out/nix-support
- echo "doc-epub manual $dst/NixOS Manual - NixOS community.epub" >> $out/nix-support/hydra-build-products
- '';
- };
-
-
- manualPDF = stdenv.mkDerivation {
- name = "nixos-manual-pdf";
-
- inherit sources;
-
- buildInputs = [ libxml2 libxslt dblatex dblatex.tex ];
-
- buildCommand = ''
- ${copySources}
-
- dst=$out/share/doc/nixos
- mkdir -p $dst
- xmllint --xinclude manual.xml | dblatex -o $dst/manual.pdf - \
- -P target.database.document="${olinkDB}/olinkdb.xml" \
- -P doc.collab.show=0 \
- -P latex.output.revhistory=0
-
- mkdir -p $out/nix-support
- echo "doc-pdf manual $dst/manual.pdf" >> $out/nix-support/hydra-build-products
+ echo "doc-epub manual $manual" >> $out/nix-support/hydra-build-products
'';
};
diff --git a/nixos/doc/manual/release-notes/rl-1609.xml b/nixos/doc/manual/release-notes/rl-1609.xml
index 0bea6cbbf2d..8dbf03ee42b 100644
--- a/nixos/doc/manual/release-notes/rl-1609.xml
+++ b/nixos/doc/manual/release-notes/rl-1609.xml
@@ -33,12 +33,19 @@ has the following highlights:
following incompatible changes:
+
Shell aliases for systemd sub-commands
were dropped:
start, stop,
restart, status.
+
+
+ Redis now binds to 127.0.0.1 only instead of listening to all network interfaces. This is the default
+ behavior of Redis 3.2
+
+
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 9a37f595093..6af310a9d87 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -35,57 +35,42 @@ in
nixosLabel = mkOption {
type = types.str;
description = ''
- NixOS version name to be used in the names of generated
- outputs and boot labels.
-
- If you ever wanted to influence the labels in your GRUB menu,
- this is option is for you.
-
- Can be set directly or with NIXOS_LABEL
- environment variable for nixos-rebuild,
- e.g.:
-
-
- #!/bin/sh
- today=`date +%Y%m%d`
- branch=`(cd nixpkgs ; git branch 2>/dev/null | sed -n '/^\* / { s|^\* ||; p; }')`
- revision=`(cd nixpkgs ; git rev-parse HEAD)`
- export NIXOS_LABEL="$today.$branch-''${revision:0:7}"
- nixos-rebuild switch
+ Label to be used in the names of generated outputs and boot
+ labels.
'';
};
nixosVersion = mkOption {
internal = true;
type = types.str;
- description = "NixOS version.";
+ description = "The full NixOS version (e.g. 16.03.1160.f2d4ee1).";
};
nixosRelease = mkOption {
readOnly = true;
type = types.str;
- default = readFile releaseFile;
- description = "NixOS release.";
+ default = fileContents releaseFile;
+ description = "The NixOS release (e.g. 16.03).";
};
nixosVersionSuffix = mkOption {
internal = true;
type = types.str;
- default = if pathExists suffixFile then readFile suffixFile else "pre-git";
- description = "NixOS version suffix.";
+ default = if pathExists suffixFile then fileContents suffixFile else "pre-git";
+ description = "The NixOS version suffix (e.g. 1160.f2d4ee1).";
};
nixosRevision = mkOption {
internal = true;
type = types.str;
- default = if pathExists revisionFile then readFile revisionFile else "master";
- description = "NixOS Git revision hash.";
+ default = if pathExists revisionFile then fileContents revisionFile else "master";
+ description = "The Git revision from which this NixOS configuration was built.";
};
nixosCodeName = mkOption {
readOnly = true;
type = types.str;
- description = "NixOS release code name.";
+ description = "The NixOS release code name (e.g. Emu).";
};
defaultChannel = mkOption {
@@ -102,8 +87,8 @@ in
system = {
# These defaults are set here rather than up there so that
# changing them would not rebuild the manual
- nixosLabel = mkDefault (maybeEnv "NIXOS_LABEL" cfg.nixosVersion);
- nixosVersion = mkDefault (maybeEnv "NIXOS_VERSION" (cfg.nixosRelease + cfg.nixosVersionSuffix));
+ nixosLabel = mkDefault cfg.nixosVersion;
+ nixosVersion = mkDefault (cfg.nixosRelease + cfg.nixosVersionSuffix);
nixosRevision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
nixosVersionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
diff --git a/nixos/modules/security/grsecurity.nix b/nixos/modules/security/grsecurity.nix
index 4b9a11cf6dc..6b4dbe8e11f 100644
--- a/nixos/modules/security/grsecurity.nix
+++ b/nixos/modules/security/grsecurity.nix
@@ -97,7 +97,7 @@ in
# Configure system tunables
boot.kernel.sysctl = {
- # Removed under grsecurity
+ # Read-only under grsecurity
"kernel.kptr_restrict" = mkForce null;
} // optionalAttrs config.nix.useSandbox {
# chroot(2) restrictions that conflict with sandboxed Nix builds
diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix
index 9981b065f28..029b14ab472 100644
--- a/nixos/modules/services/audio/mopidy.nix
+++ b/nixos/modules/services/audio/mopidy.nix
@@ -47,6 +47,7 @@ in {
};
configuration = mkOption {
+ default = "";
type = types.lines;
description = ''
The configuration that Mopidy should use.
diff --git a/nixos/modules/services/editors/emacs.xml b/nixos/modules/services/editors/emacs.xml
new file mode 100644
index 00000000000..ee8ef512bc7
--- /dev/null
+++ b/nixos/modules/services/editors/emacs.xml
@@ -0,0 +1,578 @@
+
+
+ Emacs
+
+
+
+
+ Emacs
+ is an extensible, customizable, self-documenting real-time display
+ editor — and more. At its core is an interpreter for Emacs Lisp, a
+ dialect of the Lisp programming language with extensions to
+ support text editing.
+
+
+
+ Emacs runs within a graphical desktop environment using the X
+ Window System, but works equally well on a text terminal. Under
+ OS X, a "Mac port" edition is
+ available, which uses Apple's native GUI frameworks.
+
+
+
+ Nixpkgs provides a superior environment
+ for running Emacs. It's simple to
+ create custom builds by overriding the default packages. Chaotic
+ collections of Emacs Lisp code and extensions can be brought under
+ control using declarative package
+ management. NixOS even provides a
+ systemd user service for automatically
+ starting the Emacs daemon.
+
+
+
+ Installing Emacs
+
+
+ Emacs can installed in the normal way for Nix (see ). In addition, a NixOS
+ service can be enabled.
+
+
+
+ The Different Releases of Emacs
+
+
+ Nixpkgs defines several basic Emacs
+ packages. The following are attributes belonging to the
+ pkgs set:
+
+
+
+ emacs
+ emacs24
+
+
+ The latest stable version of Emacs 24 using the GTK+ 2 widget
+ toolkit.
+
+
+
+
+ emacs24-nox
+
+
+ Emacs 24 built without any dependency on X11
+ libraries.
+
+
+
+
+ emacs24Macport
+
+
+ Emacs 24 with the "Mac port" patches, providing a more
+ native look and feel under OS X.
+
+
+
+
+ emacs25pre
+
+
+ A pretest version of what will become the first
+ version of Emacs 25.
+
+
+
+
+
+
+
+ If those aren't suitable, then the following imitation Emacs
+ editors are also available in Nixpkgs:
+ Zile,
+ mg,
+ Yi.
+
+
+
+
+ Adding Packages to Emacs
+
+ Emacs includes an entire ecosystem of functionality beyond
+ text editing, including a project planner, mail and news
+ reader, debugger interface, calendar, and more.
+
+
+
+ Most extensions are gotten with the Emacs packaging system
+ (package.el) from Emacs Lisp Package Archive
+ (ELPA),
+ MELPA,
+ MELPA Stable,
+ and Org ELPA.
+ Nixpkgs is regularly updated to mirror all these archives.
+
+
+
+ Under NixOS, you can continue to use
+ package-list-packages and
+ package-install to install packages. You
+ can also declare the set of Emacs packages you need using the
+ derivations from Nixpkgs. The rest of this section discusses
+ declarative installation of Emacs packages through nixpkgs.
+
+
+
+
+ This documentation describes the new Emacs packages
+ framework in NixOS 16.03
+ (emacsPackagesNg) which should not be
+ confused with the previous and deprecated framework
+ (emacs24Packages).
+
+
+
+
+ The first step to declare the list of packages you want in
+ your Emacs installation is to create a dedicated
+ derivation. This can be done in a dedicated
+ emacs.nix file such as:
+
+
+ Nix expression to build Emacs with packages (emacs.nix)
+
+/*
+This is a nix expression to build Emacs and some Emacs packages I like
+from source on any distribution where Nix is installed. This will install
+all the dependencies from the nixpkgs repository and build the binary files
+without interfering with the host distribution.
+
+To build the project, type the following from the current directory:
+
+$ nix-build emacs.nix
+
+To run the newly compiled executable:
+
+$ ./result/bin/emacs
+*/
+{ pkgs ? import <nixpkgs> {} }:
+
+let
+ myEmacs = pkgs.emacs;
+ emacsWithPackages = (pkgs.emacsPackagesNgGen myEmacs).emacsWithPackages;
+in
+ emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
+ magit # ; Integrate git <C-x g>
+ zerodark-theme # ; Nicolas' theme
+ ]) ++ (with epkgs.melpaPackages; [
+ undo-tree # ; <C-x u> to show the undo tree
+ zoom-frm # ; increase/decrease font size for all buffers %lt;C-x C-+>
+ ]) ++ (with epkgs.elpaPackages; [
+ auctex # ; LaTeX mode
+ beacon # ; highlight my cursor when scrolling
+ nameless # ; hide current package name everywhere in elisp code
+ ]) ++ [
+ pkgs.notmuch # From main packages set
+ ])
+
+
+
+
+
+
+ The first non-comment line in this file
+ ({ pkgs ? ... })
+ indicates that the whole file represents a function.
+
+
+
+
+
+ The let expression below defines a
+ myEmacs binding pointing to the current
+ stable version of Emacs. This binding is here to separate the
+ choice of the Emacs binary from the specification of the
+ required packages.
+
+
+
+
+
+ This generates an emacsWithPackages
+ function. It takes a single argument: a function from a
+ package set to a list of packages (the packages that will
+ be available in Emacs).
+
+
+
+
+
+ The rest of the file specifies the list of packages to
+ install. In the example, two packages
+ (magit and
+ zerodark-theme) are taken from MELPA
+ stable.
+
+
+
+
+
+ Two packages (undo-tree and
+ zoom-frm) are taken from MELPA.
+
+
+
+
+ Three packages are taken from GNU ELPA.
+
+
+
+
+ notmuch is taken from a nixpkgs derivation
+ which contains an Emacs mode.
+
+
+
+
+
+
+
+ The result of this configuration will be an
+ emacs command which launches Emacs with all
+ of your chosen packages in the load-path.
+
+
+
+ You can check that it works by executing this in a terminal:
+
+
+$ nix-build emacs.nix
+$ ./result/bin/emacs -q
+
+
+ and then typing M-x package-initialize.
+ Check that you can use all the packages you want in this
+ Emacs instance. For example, try switching to the zerodark
+ theme through
+ M-x load-theme <RET> zerodark <RET> y.
+
+
+
+
+ A few popular extensions worth checking out are: auctex,
+ company, edit-server, flycheck, helm, iedit, magit,
+ multiple-cursors, projectile, and yasnippet.
+
+
+
+
+ The list of available packages in the various ELPA
+ repositories can be seen with the following commands:
+
+ Querying Emacs packages
+ " -qaP -A emacsPackagesNg.elpaPackages
+nix-env -f "" -qaP -A emacsPackagesNg.melpaPackages
+nix-env -f "" -qaP -A emacsPackagesNg.melpaStablePackages
+nix-env -f "" -qaP -A emacsPackagesNg.orgPackages
+]]>
+
+
+
+
+ If you are on NixOS, you can install this particular Emacs for
+ all users by adding it to the list of system packages
+ (see ). Simply
+ modify your file configuration.nix to
+ make it contain:
+
+ Custom Emacs in configuration.nix
+
+
+
+
+
+ In this case, the next nixos-rebuild switch
+ will take care of adding your emacs to the
+ PATH environment variable
+ (see ).
+
+
+
+
+ If you are not on NixOS or want to install this particular
+ Emacs only for yourself, you can do so by adding it to your
+ ~/.nixpkgs/config.nix
+ (see Nixpkgs manual):
+
+ Custom Emacs in ~/.nixpkgs/system.nix
+
+
+
+
+
+ In this case, the next
+ nix-env -f '<nixpkgs>' -iA myemacs
+ will take care of adding your emacs to the
+ PATH environment variable.
+
+
+
+
+ Advanced Emacs Configuration
+
+
+ If you want, you can tweak the Emacs package itself from your
+ emacs.nix. For example, if you want to
+ have a GTK+3-based Emacs instead of the default GTK+2-based
+ binary and remove the automatically generated
+ emacs.desktop (useful is you only use
+ emacsclient), you can change your file
+ emacs.nix in this way:
+
+
+
+ Custom Emacs build
+ {} }:
+let
+ myEmacs = pkgs.lib.overrideDerivation (pkgs.emacs.override {
+ # Use gtk3 instead of the default gtk2
+ withGTK3 = true;
+ withGTK2 = false;
+ }) (attrs: {
+ # I don't want emacs.desktop file because I only use
+ # emacsclient.
+ postInstall = attrs.postInstall + ''
+ rm $out/share/applications/emacs.desktop
+ '';
+ });
+in [...]
+]]>
+
+
+
+ After building this file as shown in ,
+ you will get an GTK3-based Emacs binary pre-loaded with your
+ favorite packages.
+
+
+
+
+
+ Running Emacs as a Service
+
+ NixOS provides an optional
+ systemd service which launches
+
+ Emacs daemon
+
+ with the user's login session.
+
+
+
+ Source:
+ modules/services/editors/emacs.nix
+
+
+
+ Enabling the Service
+
+
+ To install and enable the systemd
+ user service for Emacs daemon, add the following to your
+ configuration.nix:
+
+
+
+
+
+ The services.emacs.package option allows a
+ custom derivation to be used, for example, one created by
+ emacsWithPackages.
+
+
+
+ Ensure that the Emacs server is enabled for your user's Emacs
+ configuration, either by customizing the
+ server-mode variable, or by adding
+ (server-start) to
+ ~/.emacs.d/init.el.
+
+
+
+ To start the daemon, execute the following:
+
+
+$ nixos-rebuild switch # to activate the new configuration.nix
+$ systemctl --user daemon-reload # to force systemd reload
+$ systemctl --user start emacs.service # to start the Emacs daemon
+
+
+ The server should now be ready to serve Emacs clients.
+
+
+
+
+
+ Starting the client
+
+ Ensure that the emacs server is enabled, either by customizing
+ the server-mode variable, or by adding
+ (server-start) to
+ ~/.emacs.
+
+
+
+ To connect to the emacs daemon, run one of the following:
+
+
+
+
+
+ Configuring the EDITOR variable
+
+
+
+ If services.emacs.defaultEditor is
+ true, the EDITOR variable
+ will be set to a wrapper script which launches
+ emacsclient.
+
+
+
+ Any setting of EDITOR in the shell config
+ files will override
+ services.emacs.defaultEditor.
+ To make sure EDITOR refers to the Emacs
+ wrapper script, remove any existing EDITOR
+ assignment from .profile,
+ .bashrc, .zshenv or
+ any other shell config file.
+
+
+
+ If you have formed certain bad habits when editing files,
+ these can be corrected with a shell alias to the wrapper
+ script:
+ alias vi=$EDITOR
+
+
+
+
+ Per-User Enabling of the Service
+
+
+ In general, systemd user services
+ are globally enabled by symlinks in
+ /etc/systemd/user. In the case where
+ Emacs daemon is not wanted for all users, it is possible to
+ install the service but not globally enable it:
+
+
+
+
+
+ To enable the systemd user service for just
+ the currently logged in user, run:
+
+ systemctl --user enable emacs
+
+ This will add the symlink
+ ~/.config/systemd/user/emacs.service.
+
+
+
+
+
+ Configuring Emacs
+
+
+ The Emacs init file should be changed to load the extension
+ packages at startup:
+
+
+ Package initialization in .emacs
+
+
+
+
+
+ After the declarative emacs package configuration has been
+ tested, previously downloaded packages can be cleaned up by
+ removing ~/.emacs.d/elpa (do make a backup
+ first, in case you forgot a package).
+
+
+
+
+
+ A Major Mode for Nix Expressions
+
+
+ Of interest may be melpaPackages.nix-mode,
+ which provides syntax highlighting for the Nix language. This is
+ particularly convenient if you regularly edit Nix files.
+
+
+
+
+ Accessing man pages
+
+ You can use woman to get completion of all
+ available man pages. For example, type M-x woman
+ <RET> nixos-rebuild <RET>.
+
+
+
+
+
diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix
index 37ea339300d..a60d5f7983b 100644
--- a/nixos/modules/services/misc/nixos-manual.nix
+++ b/nixos/modules/services/misc/nixos-manual.nix
@@ -11,12 +11,6 @@ let
cfg = config.services.nixosManual;
- versionModule =
- { system.nixosVersionSuffix = config.system.nixosVersionSuffix;
- system.nixosRevision = config.system.nixosRevision;
- nixpkgs.system = config.nixpkgs.system;
- };
-
/* For the purpose of generating docs, evaluate options with each derivation
in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".
It isn't perfect, but it seems to cover a vast majority of use cases.
@@ -24,12 +18,12 @@ let
the path above will be shown and not e.g. `${config.services.foo.package}`. */
manual = import ../../../doc/manual {
inherit pkgs;
- version = config.system.nixosVersion;
- revision = config.system.nixosRevision;
+ version = config.system.nixosRelease;
+ revision = "release-${config.system.nixosRelease}";
options =
let
scrubbedEval = evalModules {
- modules = [ versionModule ] ++ baseModules;
+ modules = [ { nixpkgs.system = config.nixpkgs.system; } ] ++ baseModules;
args = (config._module.args) // { modules = [ ]; };
specialArgs = { pkgs = scrubDerivations "pkgs" pkgs; };
};
diff --git a/nixos/modules/services/networking/dnscrypt-proxy.nix b/nixos/modules/services/networking/dnscrypt-proxy.nix
index 227e38acc4a..cf36ccf0572 100644
--- a/nixos/modules/services/networking/dnscrypt-proxy.nix
+++ b/nixos/modules/services/networking/dnscrypt-proxy.nix
@@ -55,7 +55,7 @@ in
''; };
localAddress = mkOption {
default = "127.0.0.1";
- type = types.string;
+ type = types.str;
description = ''
Listen for DNS queries to relay on this address. The only reason to
change this from its default value is to proxy queries on behalf
@@ -74,7 +74,7 @@ in
};
resolverName = mkOption {
default = "dnscrypt.eu-nl";
- type = types.nullOr types.string;
+ type = types.nullOr types.str;
description = ''
The name of the upstream DNSCrypt resolver to use, taken from the
list named in the resolverList option.
@@ -90,7 +90,7 @@ in
example = literalExample "${pkgs.dnscrypt-proxy}/share/dnscrypt-proxy/dnscrypt-resolvers.csv";
default = pkgs.fetchurl {
url = https://raw.githubusercontent.com/jedisct1/dnscrypt-proxy/master/dnscrypt-resolvers.csv;
- sha256 = "171zvdqcqqvcw3zr7wl9h1wmdmk6m3h55xr4gq2z1j7a0x0ba2in";
+ sha256 = "1i9wzw4zl052h5nyp28bwl8d66cgj0awvjhw5wgwz0warkjl1g8g";
};
defaultText = "pkgs.fetchurl { url = ...; sha256 = ...; }";
};
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 27a33f33ff9..8385d8e6026 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -4,31 +4,222 @@ with lib;
let
cfg = config.services.nginx;
- nginx = cfg.package;
+ virtualHosts = mapAttrs (vhostName: vhostConfig:
+ vhostConfig // (optionalAttrs vhostConfig.enableACME {
+ sslCertificate = "/var/lib/acme/${vhostName}/fullchain.pem";
+ sslCertificateKey = "/var/lib/acme/${vhostName}/key.pem";
+ })
+ ) cfg.virtualHosts;
+
configFile = pkgs.writeText "nginx.conf" ''
user ${cfg.user} ${cfg.group};
+ error_log stderr;
daemon off;
${cfg.config}
+ ${optionalString (cfg.httpConfig == "") ''
+ http {
+ include ${cfg.package}/conf/mime.types;
+ include ${cfg.package}/conf/fastcgi.conf;
+
+ ${optionalString (cfg.recommendedOptimisation) ''
+ # optimisation
+ sendfile on;
+ tcp_nopush on;
+ tcp_nodelay on;
+ keepalive_timeout 65;
+ types_hash_max_size 2048;
+ ''}
+
+ ssl_protocols ${cfg.sslProtocols};
+ ssl_ciphers ${cfg.sslCiphers};
+ ${optionalString (cfg.sslDhparam != null) "ssl_dhparam ${cfg.sslDhparam};"}
+
+ ${optionalString (cfg.recommendedTlsSettings) ''
+ ssl_session_cache shared:SSL:42m;
+ ssl_session_timeout 23m;
+ ssl_ecdh_curve secp384r1;
+ ssl_prefer_server_ciphers on;
+ ssl_stapling on;
+ ssl_stapling_verify on;
+ ''}
+
+ ${optionalString (cfg.recommendedGzipSettings) ''
+ gzip on;
+ gzip_disable "msie6";
+ gzip_proxied any;
+ gzip_comp_level 9;
+ gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
+ ''}
+
+ ${optionalString (cfg.recommendedProxySettings) ''
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-Server $host;
+ proxy_set_header Accept-Encoding "";
+
+ proxy_redirect off;
+ proxy_connect_timeout 90;
+ proxy_send_timeout 90;
+ proxy_read_timeout 90;
+ proxy_http_version 1.0;
+ ''}
+
+ client_max_body_size ${cfg.clientMaxBodySize};
+
+ server_tokens ${if cfg.serverTokens then "on" else "off"};
+
+ ${vhosts}
+
+ ${optionalString cfg.statusPage ''
+ server {
+ listen 80;
+ listen [::]:80;
+
+ server_name localhost;
+
+ location /nginx_status {
+ stub_status on;
+ access_log off;
+ allow 127.0.0.1;
+ allow ::1;
+ deny all;
+ }
+ }
+ ''}
+
+ ${cfg.appendHttpConfig}
+ }''}
+
${optionalString (cfg.httpConfig != "") ''
http {
include ${cfg.package}/conf/mime.types;
+ include ${cfg.package}/conf/fastcgi.conf;
${cfg.httpConfig}
- }
- ''}
+ }''}
+
${cfg.appendConfig}
'';
+
+ vhosts = concatStringsSep "\n" (mapAttrsToList (serverName: vhost:
+ let
+ ssl = vhost.enableSSL || vhost.forceSSL;
+ port = if vhost.port != null then vhost.port else (if ssl then 443 else 80);
+ listenString = toString port + optionalString ssl " ssl http2"
+ + optionalString vhost.default " default";
+ acmeLocation = optionalString vhost.enableACME ''
+ location /.well-known/acme-challenge {
+ try_files $uri @acme-fallback;
+ root ${vhost.acmeRoot};
+ auth_basic off;
+ }
+ location @acme-fallback {
+ auth_basic off;
+ proxy_pass http://${vhost.acmeFallbackHost};
+ }
+ '';
+ in ''
+ ${optionalString vhost.forceSSL ''
+ server {
+ listen 80 ${optionalString vhost.default "default"};
+ listen [::]:80 ${optionalString vhost.default "default"};
+
+ server_name ${serverName} ${concatStringsSep " " vhost.serverAliases};
+ ${acmeLocation}
+ location / {
+ return 301 https://$host${optionalString (port != 443) ":${port}"}$request_uri;
+ }
+ }
+ ''}
+
+ server {
+ listen ${listenString};
+ listen [::]:${listenString};
+
+ server_name ${serverName} ${concatStringsSep " " vhost.serverAliases};
+ ${acmeLocation}
+ ${optionalString (vhost.root != null) "root ${vhost.root};"}
+ ${optionalString (vhost.globalRedirect != null) ''
+ return 301 http${optionalString ssl "s"}://${vhost.globalRedirect}$request_uri;
+ ''}
+ ${optionalString ssl ''
+ ssl_certificate ${vhost.sslCertificate};
+ ssl_certificate_key ${vhost.sslCertificateKey};
+ ''}
+
+ ${optionalString (vhost.basicAuth != {}) (mkBasicAuth serverName vhost.basicAuth)}
+
+ ${mkLocations vhost.locations}
+
+ ${vhost.extraConfig}
+ }
+ ''
+ ) virtualHosts);
+ mkLocations = locations: concatStringsSep "\n" (mapAttrsToList (location: config: ''
+ location ${location} {
+ ${optionalString (config.proxyPass != null) "proxy_pass ${config.proxyPass};"}
+ ${optionalString (config.root != null) "root ${config.root};"}
+ ${config.extraConfig}
+ }
+ '') locations);
+ mkBasicAuth = serverName: authDef: let
+ htpasswdFile = pkgs.writeText "${serverName}.htpasswd" (
+ concatStringsSep "\n" (mapAttrsToList (user: password: ''
+ ${user}:{PLAIN}${password}
+ '') authDef)
+ );
+ in ''
+ auth_basic secured;
+ auth_basic_user_file ${htpasswdFile};
+ '';
in
{
options = {
services.nginx = {
- enable = mkOption {
+ enable = mkEnableOption "Nginx Web Server";
+
+ statusPage = mkOption {
default = false;
type = types.bool;
description = "
- Enable the nginx Web Server.
+ Enable status page reachable from localhost on http://127.0.0.1/nginx_status.
+ ";
+ };
+
+ recommendedTlsSettings = mkOption {
+ default = false;
+ type = types.bool;
+ description = "
+ Enable recommended TLS settings.
+ ";
+ };
+
+ recommendedOptimisation = mkOption {
+ default = false;
+ type = types.bool;
+ description = "
+ Enable recommended optimisation settings.
+ ";
+ };
+
+ recommendedGzipSettings = mkOption {
+ default = false;
+ type = types.bool;
+ description = "
+ Enable recommended gzip settings.
+ ";
+ };
+
+ recommendedProxySettings = mkOption {
+ default = false;
+ type = types.bool;
+ description = "
+ Enable recommended proxy settings.
";
};
@@ -64,7 +255,22 @@ in
httpConfig = mkOption {
type = types.lines;
default = "";
- description = "Configuration lines to be appended inside of the http {} block.";
+ description = "
+ Configuration lines to be set inside the http block.
+ This is mutually exclusive with the structured configuration
+ via virtualHosts and the recommendedXyzSettings configuration
+ options. See appendHttpConfig for appending to the generated http block.
+ ";
+ };
+
+ appendHttpConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = "
+ Configuration lines to be appended to the generated http block.
+ This is mutually exclusive with using httpConfig for specifying the whole
+ http block verbatim.
+ ";
};
stateDir = mkOption {
@@ -86,8 +292,59 @@ in
description = "Group account under which nginx runs.";
};
- };
+ serverTokens = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Show nginx version in headers and error pages.";
+ };
+ clientMaxBodySize = mkOption {
+ type = types.string;
+ default = "10m";
+ description = "Set nginx global client_max_body_size.";
+ };
+
+ sslCiphers = mkOption {
+ type = types.str;
+ default = "EECDH+aRSA+AESGCM:EDH+aRSA:EECDH+aRSA:+AES256:+AES128:+SHA1:!CAMELLIA:!SEED:!3DES:!DES:!RC4:!eNULL";
+ description = "Ciphers to choose from when negotiating tls handshakes.";
+ };
+
+ sslProtocols = mkOption {
+ type = types.str;
+ default = "TLSv1.2";
+ example = "TLSv1 TLSv1.1 TLSv1.2";
+ description = "Allowed TLS protocol versions.";
+ };
+
+ sslDhparam = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ example = "/path/to/dhparams.pem";
+ description = "Path to DH parameters file.";
+ };
+
+ virtualHosts = mkOption {
+ type = types.attrsOf (types.submodule (import ./vhost-options.nix {
+ inherit lib;
+ }));
+ default = {
+ localhost = {};
+ };
+ example = literalExample ''
+ {
+ "hydra.example.com" = {
+ forceSSL = true;
+ enableACME = true;
+ locations."/" = {
+ proxyPass = "http://localhost:3000";
+ };
+ };
+ };
+ '';
+ description = "Declarative vhost config";
+ };
+ };
};
config = mkIf cfg.enable {
@@ -97,7 +354,6 @@ in
description = "Nginx Web Server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- path = [ nginx ];
preStart =
''
mkdir -p ${cfg.stateDir}/logs
@@ -105,14 +361,23 @@ in
chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir}
'';
serviceConfig = {
- ExecStart = "${nginx}/bin/nginx -c ${configFile} -p ${cfg.stateDir}";
+ ExecStart = "${cfg.package}/bin/nginx -c ${configFile} -p ${cfg.stateDir}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
- Restart = "on-failure";
+ Restart = "always";
RestartSec = "10s";
StartLimitInterval = "1min";
};
};
+ security.acme.certs = filterAttrs (n: v: v != {}) (
+ mapAttrs (vhostName: vhostConfig:
+ optionalAttrs vhostConfig.enableACME {
+ webroot = vhostConfig.acmeRoot;
+ extraDomains = genAttrs vhostConfig.serverAliases (alias: null);
+ }
+ ) virtualHosts
+ );
+
users.extraUsers = optionalAttrs (cfg.user == "nginx") (singleton
{ name = "nginx";
group = cfg.group;
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
new file mode 100644
index 00000000000..8aaa3e96f80
--- /dev/null
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -0,0 +1,40 @@
+# This file defines the options that can be used both for the Apache
+# main server configuration, and for the virtual hosts. (The latter
+# has additional options that affect the web server as a whole, like
+# the user/group to run under.)
+
+{ lib }:
+
+with lib;
+
+{
+ options = {
+ proxyPass = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "http://www.example.org/";
+ description = ''
+ Adds proxy_pass directive and sets default proxy headers Host, X-Real-Ip
+ and X-Forwarded-For.
+ '';
+ };
+
+ root = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ example = "/your/root/directory";
+ description = ''
+ Root directory for requests.
+ '';
+ };
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ These lines go to the end of the location verbatim.
+ '';
+ };
+ };
+}
+
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
new file mode 100644
index 00000000000..ee3f68bf805
--- /dev/null
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -0,0 +1,140 @@
+# This file defines the options that can be used both for the Apache
+# main server configuration, and for the virtual hosts. (The latter
+# has additional options that affect the web server as a whole, like
+# the user/group to run under.)
+
+{ lib }:
+
+with lib;
+{
+ options = {
+ serverAliases = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ example = ["www.example.org" "example.org"];
+ description = ''
+ Additional names of virtual hosts served by this virtual host configuration.
+ '';
+ };
+
+ port = mkOption {
+ type = types.nullOr types.int;
+ default = null;
+ description = ''
+ Port for the server. Defaults to 80 for http
+ and 443 for https (i.e. when enableSSL is set).
+ '';
+ };
+
+ enableACME = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to ask Let's Encrypt to sign a certificate for this vhost.";
+ };
+
+ acmeRoot = mkOption {
+ type = types.str;
+ default = "/var/lib/acme/acme-challenge";
+ description = "Directory to store certificates and keys managed by the ACME service.";
+ };
+
+ acmeFallbackHost = mkOption {
+ type = types.str;
+ default = "0.0.0.0";
+ description = ''
+ Host which to proxy requests to if acme challenge is not found. Useful
+ if you want multiple hosts to be able to verify the same domain name.
+ '';
+ };
+
+ enableSSL = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to enable SSL (https) support.";
+ };
+
+ forceSSL = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to always redirect to https.";
+ };
+
+ sslCertificate = mkOption {
+ type = types.path;
+ example = "/var/host.cert";
+ description = "Path to server SSL certificate.";
+ };
+
+ sslCertificateKey = mkOption {
+ type = types.path;
+ example = "/var/host.key";
+ description = "Path to server SSL certificate key.";
+ };
+
+ root = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ example = "/data/webserver/docs";
+ description = ''
+ The path of the web root directory.
+ '';
+ };
+
+ default = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Makes this vhost the default.
+ '';
+ };
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ These lines go to the end of the vhost verbatim.
+ '';
+ };
+
+ globalRedirect = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = http://newserver.example.org/;
+ description = ''
+ If set, all requests for this host are redirected permanently to
+ the given URL.
+ '';
+ };
+
+ basicAuth = mkOption {
+ type = types.attrsOf types.str;
+ default = {};
+ example = literalExample ''
+ {
+ user = "password";
+ };
+ '';
+ description = ''
+ Basic Auth protection for a vhost.
+
+ WARNING: This is implemented to store the password in plain text in the
+ nix store.
+ '';
+ };
+
+ locations = mkOption {
+ type = types.attrsOf (types.submodule (import ./location-options.nix {
+ inherit lib;
+ }));
+ default = {};
+ example = literalExample ''
+ {
+ "/" = {
+ proxyPass = "http://localhost:3000";
+ };
+ };
+ '';
+ description = "Declarative location config";
+ };
+ };
+}
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 8cfe90e67d1..d83841452f9 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -6,35 +6,212 @@ let
# The container's init script, a small wrapper around the regular
# NixOS stage-2 init script.
- containerInit = pkgs.writeScript "container-init"
+ containerInit = (cfg:
+ let
+ renderExtraVeth = (name: cfg:
+ ''
+ echo "Bringing ${name} up"
+ ip link set dev ${name} up
+ ${optionalString (cfg . "localAddress" or null != null) ''
+ echo "Setting ip for ${name}"
+ ip addr add ${cfg . "localAddress"} dev ${name}
+ ''}
+ ${optionalString (cfg . "localAddress6" or null != null) ''
+ echo "Setting ip6 for ${name}"
+ ip -6 addr add ${cfg . "localAddress6"} dev ${name}
+ ''}
+ ${optionalString (cfg . "hostAddress" or null != null) ''
+ echo "Setting route to host for ${name}"
+ ip route add ${cfg . "hostAddress"} dev ${name}
+ ''}
+ ${optionalString (cfg . "hostAddress6" or null != null) ''
+ echo "Setting route6 to host for ${name}"
+ ip -6 route add ${cfg . "hostAddress6"} dev ${name}
+ ''}
+ ''
+ );
+ in
+ pkgs.writeScript "container-init"
+ ''
+ #! ${pkgs.stdenv.shell} -e
+
+ # Initialise the container side of the veth pair.
+ if [ "$PRIVATE_NETWORK" = 1 ]; then
+
+ ip link set host0 name eth0
+ ip link set dev eth0 up
+
+ if [ -n "$LOCAL_ADDRESS" ]; then
+ ip addr add $LOCAL_ADDRESS dev eth0
+ fi
+ if [ -n "$LOCAL_ADDRESS6" ]; then
+ ip -6 addr add $LOCAL_ADDRESS6 dev eth0
+ fi
+ if [ -n "$HOST_ADDRESS" ]; then
+ ip route add $HOST_ADDRESS dev eth0
+ ip route add default via $HOST_ADDRESS
+ fi
+ if [ -n "$HOST_ADDRESS6" ]; then
+ ip -6 route add $HOST_ADDRESS6 dev eth0
+ ip -6 route add default via $HOST_ADDRESS6
+ fi
+
+ ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg . "extraVeths" or {})}
+ ip a
+ ip r
+ fi
+
+ # Start the regular stage 1 script.
+ exec "$1"
+ ''
+ );
+
+ nspawnExtraVethArgs = (name: cfg: "--network-veth-extra=${name}");
+ startScript = (cfg:
''
- #! ${pkgs.stdenv.shell} -e
+ mkdir -p -m 0755 "$root/etc" "$root/var/lib"
+ mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers
+ if ! [ -e "$root/etc/os-release" ]; then
+ touch "$root/etc/os-release"
+ fi
+
+ if ! [ -e "$root/etc/machine-id" ]; then
+ touch "$root/etc/machine-id"
+ fi
+
+ mkdir -p -m 0755 \
+ "/nix/var/nix/profiles/per-container/$INSTANCE" \
+ "/nix/var/nix/gcroots/per-container/$INSTANCE"
+
+ cp --remove-destination /etc/resolv.conf "$root/etc/resolv.conf"
- # Initialise the container side of the veth pair.
if [ "$PRIVATE_NETWORK" = 1 ]; then
-
- ip link set host0 name eth0
- ip link set dev eth0 up
-
- if [ -n "$LOCAL_ADDRESS" ]; then
- ip addr add $LOCAL_ADDRESS dev eth0
- fi
- if [ -n "$LOCAL_ADDRESS6" ]; then
- ip -6 addr add $LOCAL_ADDRESS6 dev eth0
- fi
- if [ -n "$HOST_ADDRESS" ]; then
- ip route add $HOST_ADDRESS dev eth0
- ip route add default via $HOST_ADDRESS
- fi
- if [ -n "$HOST_ADDRESS6" ]; then
- ip -6 route add $HOST_ADDRESS6 dev eth0
- ip -6 route add default via $HOST_ADDRESS6
+ extraFlags+=" --network-veth"
+ if [ -n "$HOST_BRIDGE" ]; then
+ extraFlags+=" --network-bridge=$HOST_BRIDGE"
fi
fi
- # Start the regular stage 1 script.
- exec "$1"
- '';
+ ${if cfg . "extraVeths" or null != null then
+ ''extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg . "extraVeths" or {})}"''
+ else
+ ''# No extra veth pairs to create''
+ }
+
+ for iface in $INTERFACES; do
+ extraFlags+=" --network-interface=$iface"
+ done
+
+ for iface in $MACVLANS; do
+ extraFlags+=" --network-macvlan=$iface"
+ done
+
+ # If the host is 64-bit and the container is 32-bit, add a
+ # --personality flag.
+ ${optionalString (config.nixpkgs.system == "x86_64-linux") ''
+ if [ "$(< ''${SYSTEM_PATH:-/nix/var/nix/profiles/per-container/$INSTANCE/system}/system)" = i686-linux ]; then
+ extraFlags+=" --personality=x86"
+ fi
+ ''}
+
+ # Run systemd-nspawn without startup notification (we'll
+ # wait for the container systemd to signal readiness).
+ EXIT_ON_REBOOT=1 \
+ exec ${config.systemd.package}/bin/systemd-nspawn \
+ --keep-unit \
+ -M "$INSTANCE" -D "$root" $extraFlags \
+ $EXTRA_NSPAWN_FLAGS \
+ --notify-ready=yes \
+ --bind-ro=/nix/store \
+ --bind-ro=/nix/var/nix/db \
+ --bind-ro=/nix/var/nix/daemon-socket \
+ --bind="/nix/var/nix/profiles/per-container/$INSTANCE:/nix/var/nix/profiles" \
+ --bind="/nix/var/nix/gcroots/per-container/$INSTANCE:/nix/var/nix/gcroots" \
+ --setenv PRIVATE_NETWORK="$PRIVATE_NETWORK" \
+ --setenv HOST_BRIDGE="$HOST_BRIDGE" \
+ --setenv HOST_ADDRESS="$HOST_ADDRESS" \
+ --setenv LOCAL_ADDRESS="$LOCAL_ADDRESS" \
+ --setenv HOST_ADDRESS6="$HOST_ADDRESS6" \
+ --setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \
+ --setenv PATH="$PATH" \
+ ${containerInit cfg} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
+ ''
+ );
+
+ preStartScript = (cfg:
+ ''
+ # Clean up existing machined registration and interfaces.
+ machinectl terminate "$INSTANCE" 2> /dev/null || true
+
+ if [ "$PRIVATE_NETWORK" = 1 ]; then
+ ip link del dev "ve-$INSTANCE" 2> /dev/null || true
+ ip link del dev "vb-$INSTANCE" 2> /dev/null || true
+ fi
+
+ ${concatStringsSep "\n" (
+ mapAttrsToList (name: cfg:
+ ''ip link del dev ${name} 2> /dev/null || true ''
+ ) cfg . "extraVeths" or {}
+ )}
+ ''
+ );
+ postStartScript = (cfg:
+ let
+ ipcall = (cfg: ipcmd: variable: attribute:
+ if cfg . attribute or null == 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
+ ''
+ # 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}
+ ''}
+ ''
+ );
+ in
+ ''
+ if [ "$PRIVATE_NETWORK" = 1 ]; then
+ if [ -z "$HOST_BRIDGE" ]; then
+ ifaceHost=ve-$INSTANCE
+ ip link set dev $ifaceHost up
+
+ ${ipcall cfg "ip addr" "$HOST_ADDRESS" "hostAddress"}
+ ${ipcall cfg "ip -6 addr" "$HOST_ADDRESS6" "hostAddress6"}
+ ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"}
+ ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"}
+ fi
+ ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg . "extraVeths" or {})}
+ fi
+
+ # Get the leader PID so that we can signal it in
+ # preStop. We can't use machinectl there because D-Bus
+ # might be shutting down. FIXME: in systemd 219 we can
+ # just signal systemd-nspawn to do a clean shutdown.
+ machinectl show "$INSTANCE" | sed 's/Leader=\(.*\)/\1/;t;d' > "/run/containers/$INSTANCE.pid"
+ ''
+ );
system = config.nixpkgs.system;
@@ -73,6 +250,63 @@ let
mkBindFlags = bs: concatMapStrings mkBindFlag (lib.attrValues bs);
+ networkOptions = {
+ hostBridge = mkOption {
+ type = types.nullOr types.string;
+ default = null;
+ example = "br0";
+ description = ''
+ Put the host-side of the veth-pair into the named bridge.
+ Only one of hostAddress* or hostBridge can be given.
+ '';
+ };
+
+ hostAddress = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "10.231.136.1";
+ description = ''
+ The IPv4 address assigned to the host interface.
+ (Not used when hostBridge is set.)
+ '';
+ };
+
+ hostAddress6 = mkOption {
+ type = types.nullOr types.string;
+ default = null;
+ example = "fc00::1";
+ description = ''
+ The IPv6 address assigned to the host interface.
+ (Not used when hostBridge is set.)
+ '';
+ };
+
+ localAddress = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "10.231.136.2";
+ description = ''
+ The IPv4 address assigned to the interface in the container.
+ If a hostBridge is used, this should be given with netmask to access
+ the whole network. Otherwise the default netmask is /32 and routing is
+ set up from localAddress to hostAddress and back.
+ '';
+ };
+
+ localAddress6 = mkOption {
+ type = types.nullOr types.string;
+ default = null;
+ example = "fc00::2";
+ description = ''
+ The IPv6 address assigned to the interface in the container.
+ If a hostBridge is used, this should be given with netmask to access
+ the whole network. Otherwise the default netmask is /128 and routing is
+ set up from localAddress6 to hostAddress6 and back.
+ '';
+ };
+
+ };
+
in
{
@@ -133,56 +367,6 @@ in
'';
};
- hostBridge = mkOption {
- type = types.nullOr types.string;
- default = null;
- example = "br0";
- description = ''
- Put the host-side of the veth-pair into the named bridge.
- Only one of hostAddress* or hostBridge can be given.
- '';
- };
-
- hostAddress = mkOption {
- type = types.nullOr types.str;
- default = null;
- example = "10.231.136.1";
- description = ''
- The IPv4 address assigned to the host interface.
- (Not used when hostBridge is set.)
- '';
- };
-
- hostAddress6 = mkOption {
- type = types.nullOr types.string;
- default = null;
- example = "fc00::1";
- description = ''
- The IPv6 address assigned to the host interface.
- (Not used when hostBridge is set.)
- '';
- };
-
- localAddress = mkOption {
- type = types.nullOr types.str;
- default = null;
- example = "10.231.136.2";
- description = ''
- The IPv4 address assigned to eth0
- in the container.
- '';
- };
-
- localAddress6 = mkOption {
- type = types.nullOr types.string;
- default = null;
- example = "fc00::2";
- description = ''
- The IPv6 address assigned to eth0
- in the container.
- '';
- };
-
interfaces = mkOption {
type = types.listOf types.string;
default = [];
@@ -192,6 +376,15 @@ in
'';
};
+ extraVeths = mkOption {
+ type = types.attrsOf types.optionSet;
+ default = {};
+ options = networkOptions;
+ description = ''
+ Extra veth-pairs to be created for the container
+ '';
+ };
+
autoStart = mkOption {
type = types.bool;
default = false;
@@ -214,7 +407,7 @@ in
'';
};
- };
+ } // networkOptions;
config = mkMerge
[ (mkIf options.config.isDefined {
@@ -272,108 +465,11 @@ in
environment.INSTANCE = "%i";
environment.root = "/var/lib/containers/%i";
- preStart =
- ''
- # Clean up existing machined registration and interfaces.
- machinectl terminate "$INSTANCE" 2> /dev/null || true
+ preStart = preStartScript {};
- if [ "$PRIVATE_NETWORK" = 1 ]; then
- ip link del dev "ve-$INSTANCE" 2> /dev/null || true
- ip link del dev "vb-$INSTANCE" 2> /dev/null || true
- fi
- '';
+ script = startScript {};
- script =
- ''
- mkdir -p -m 0755 "$root/etc" "$root/var/lib"
- mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers
- if ! [ -e "$root/etc/os-release" ]; then
- touch "$root/etc/os-release"
- fi
-
- if ! [ -e "$root/etc/machine-id" ]; then
- touch "$root/etc/machine-id"
- fi
-
- mkdir -p -m 0755 \
- "/nix/var/nix/profiles/per-container/$INSTANCE" \
- "/nix/var/nix/gcroots/per-container/$INSTANCE"
-
- cp --remove-destination /etc/resolv.conf "$root/etc/resolv.conf"
-
- if [ "$PRIVATE_NETWORK" = 1 ]; then
- extraFlags+=" --network-veth"
- if [ -n "$HOST_BRIDGE" ]; then
- extraFlags+=" --network-bridge=$HOST_BRIDGE"
- fi
- fi
-
- for iface in $INTERFACES; do
- extraFlags+=" --network-interface=$iface"
- done
-
- for iface in $MACVLANS; do
- extraFlags+=" --network-macvlan=$iface"
- done
-
- # If the host is 64-bit and the container is 32-bit, add a
- # --personality flag.
- ${optionalString (config.nixpkgs.system == "x86_64-linux") ''
- if [ "$(< ''${SYSTEM_PATH:-/nix/var/nix/profiles/per-container/$INSTANCE/system}/system)" = i686-linux ]; then
- extraFlags+=" --personality=x86"
- fi
- ''}
-
- # Run systemd-nspawn without startup notification (we'll
- # wait for the container systemd to signal readiness).
- EXIT_ON_REBOOT=1 \
- exec ${config.systemd.package}/bin/systemd-nspawn \
- --keep-unit \
- -M "$INSTANCE" -D "$root" $extraFlags \
- $EXTRA_NSPAWN_FLAGS \
- --notify-ready=yes \
- --bind-ro=/nix/store \
- --bind-ro=/nix/var/nix/db \
- --bind-ro=/nix/var/nix/daemon-socket \
- --bind="/nix/var/nix/profiles/per-container/$INSTANCE:/nix/var/nix/profiles" \
- --bind="/nix/var/nix/gcroots/per-container/$INSTANCE:/nix/var/nix/gcroots" \
- --setenv PRIVATE_NETWORK="$PRIVATE_NETWORK" \
- --setenv HOST_BRIDGE="$HOST_BRIDGE" \
- --setenv HOST_ADDRESS="$HOST_ADDRESS" \
- --setenv LOCAL_ADDRESS="$LOCAL_ADDRESS" \
- --setenv HOST_ADDRESS6="$HOST_ADDRESS6" \
- --setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \
- --setenv PATH="$PATH" \
- ${containerInit} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
- '';
-
- postStart =
- ''
- if [ "$PRIVATE_NETWORK" = 1 ]; then
- if [ -z "$HOST_BRIDGE" ]; then
- ifaceHost=ve-$INSTANCE
- ip link set dev $ifaceHost up
- if [ -n "$HOST_ADDRESS" ]; then
- ip addr add $HOST_ADDRESS dev $ifaceHost
- fi
- if [ -n "$HOST_ADDRESS6" ]; then
- ip -6 addr add $HOST_ADDRESS6 dev $ifaceHost
- fi
- if [ -n "$LOCAL_ADDRESS" ]; then
- ip route add $LOCAL_ADDRESS dev $ifaceHost
- fi
- if [ -n "$LOCAL_ADDRESS6" ]; then
- ip -6 route add $LOCAL_ADDRESS6 dev $ifaceHost
- fi
- fi
- fi
-
- # Get the leader PID so that we can signal it in
- # preStop. We can't use machinectl there because D-Bus
- # might be shutting down. FIXME: in systemd 219 we can
- # just signal systemd-nspawn to do a clean shutdown.
- machinectl show "$INSTANCE" | sed 's/Leader=\(.*\)/\1/;t;d' > "/run/containers/$INSTANCE.pid"
- '';
+ postStart = postStartScript {};
preStop =
''
@@ -425,15 +521,20 @@ in
[{ name = "container@"; value = unit; }]
# declarative containers
++ (mapAttrsToList (name: cfg: nameValuePair "container@${name}" (
+ unit // {
+ preStart = preStartScript cfg;
+ script = startScript cfg;
+ postStart = postStartScript cfg;
+ } // (
if cfg.autoStart then
- unit // {
+ {
wantedBy = [ "multi-user.target" ];
wants = [ "network.target" ];
after = [ "network.target" ];
restartTriggers = [ cfg.path ];
reloadIfChanged = true;
}
- else null
+ else {})
)) config.containers)
));
@@ -462,11 +563,11 @@ in
LOCAL_ADDRESS6=${cfg.localAddress6}
''}
''}
- INTERFACES="${toString cfg.interfaces}"
- ${optionalString cfg.autoStart ''
- AUTO_START=1
- ''}
- EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts}"
+ INTERFACES="${toString cfg.interfaces}"
+ ${optionalString cfg.autoStart ''
+ AUTO_START=1
+ ''}
+ EXTRA_NSPAWN_FLAGS="${mkBindFlags cfg.bindMounts}"
'';
}) config.containers;
diff --git a/nixos/release.nix b/nixos/release.nix
index b059de34132..4647a02afb1 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -7,7 +7,7 @@ with import ../lib;
let
- version = builtins.readFile ../.version;
+ version = fileContents ../.version;
versionSuffix =
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
@@ -96,7 +96,6 @@ in rec {
manual = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manual);
manualEpub = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manualEpub));
- manualPDF = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manualPDF)).x86_64-linux;
manpages = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manpages);
options = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux;
@@ -218,6 +217,7 @@ in rec {
tests.containers-ipv6 = callTest tests/containers-ipv6.nix {};
tests.containers-bridge = callTest tests/containers-bridge.nix {};
tests.containers-imperative = callTest tests/containers-imperative.nix {};
+ tests.containers-extra_veth = callTest tests/containers-extra_veth.nix {};
tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; });
tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; });
tests.dnscrypt-proxy = callTest tests/dnscrypt-proxy.nix { system = "x86_64-linux"; };
diff --git a/nixos/tests/containers-bridge.nix b/nixos/tests/containers-bridge.nix
index 8c3340b60a7..bb32d852a6f 100644
--- a/nixos/tests/containers-bridge.nix
+++ b/nixos/tests/containers-bridge.nix
@@ -10,7 +10,7 @@ in
import ./make-test.nix ({ pkgs, ...} : {
name = "containers-bridge";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ aristid aszlig eelco chaoflow ];
+ maintainers = [ aristid aszlig eelco chaoflow kampfschlaefer ];
};
machine =
diff --git a/nixos/tests/containers-extra_veth.nix b/nixos/tests/containers-extra_veth.nix
new file mode 100644
index 00000000000..2a54b1d961c
--- /dev/null
+++ b/nixos/tests/containers-extra_veth.nix
@@ -0,0 +1,103 @@
+# Test for NixOS' container support.
+
+import ./make-test.nix ({ pkgs, ...} : {
+ name = "containers-bridge";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ kampfschlaefer ];
+ };
+
+ machine =
+ { config, pkgs, ... }:
+ { imports = [ ../modules/installer/cd-dvd/channel.nix ];
+ virtualisation.writableStore = true;
+ virtualisation.memorySize = 768;
+ virtualisation.vlans = [];
+
+ networking.bridges = {
+ br0 = {
+ interfaces = [];
+ };
+ br1 = { interfaces = []; };
+ };
+ networking.interfaces = {
+ br0 = {
+ ip4 = [{ address = "192.168.0.1"; prefixLength = 24; }];
+ ip6 = [{ address = "fc00::1"; prefixLength = 7; }];
+ };
+ br1 = {
+ ip4 = [{ address = "192.168.1.1"; prefixLength = 24; }];
+ };
+ };
+
+ containers.webserver =
+ {
+ autoStart = true;
+ privateNetwork = true;
+ hostBridge = "br0";
+ localAddress = "192.168.0.100/24";
+ localAddress6 = "fc00::2/7";
+ extraVeths = {
+ veth1 = { hostBridge = "br1"; localAddress = "192.168.1.100/24"; };
+ veth2 = { hostAddress = "192.168.2.1"; localAddress = "192.168.2.100"; };
+ };
+ config =
+ {
+ networking.firewall.allowedTCPPorts = [ 80 ];
+ networking.firewall.allowPing = true;
+ };
+ };
+
+ virtualisation.pathsInNixDB = [ pkgs.stdenv ];
+ };
+
+ testScript =
+ ''
+ $machine->waitForUnit("default.target");
+ $machine->succeed("nixos-container list") =~ /webserver/ or die;
+
+ # Status of the webserver container.
+ $machine->succeed("nixos-container status webserver") =~ /up/ or die;
+
+ # Debug
+ #$machine->succeed("nixos-container run webserver -- ip link >&2");
+
+ # Ensure that the veths are inside the container
+ $machine->succeed("nixos-container run webserver -- ip link show veth1") =~ /state UP/ or die;
+ $machine->succeed("nixos-container run webserver -- ip link show veth2") =~ /state UP/ or die;
+
+ # Debug
+ #$machine->succeed("ip link >&2");
+
+ # Ensure the presence of the extra veths
+ $machine->succeed("ip link show veth1") =~ /state UP/ or die;
+ $machine->succeed("ip link show veth2") =~ /state UP/ or die;
+
+ # Ensure the veth1 is part of br1 on the host
+ $machine->succeed("ip link show veth1") =~ /master br1/ or die;
+
+ # Debug
+ #$machine->succeed("ip -4 a >&2");
+ #$machine->succeed("ip -4 r >&2");
+ #$machine->succeed("nixos-container run webserver -- ip link >&2");
+ #$machine->succeed("nixos-container run webserver -- ip -4 a >&2");
+ #$machine->succeed("nixos-container run webserver -- ip -4 r >&2");
+
+ # Ping on main veth
+ $machine->succeed("ping -n -c 1 192.168.0.100");
+ $machine->succeed("ping6 -n -c 1 fc00::2");
+
+ # Ping on the first extra veth
+ $machine->succeed("ping -n -c 1 192.168.1.100 >&2");
+
+ # Ping on the second extra veth
+ $machine->succeed("ping -n -c 1 192.168.2.100 >&2");
+
+ # Stop the container.
+ $machine->succeed("nixos-container stop webserver");
+ $machine->fail("ping -n -c 1 192.168.1.100 >&2");
+ $machine->fail("ping -n -c 1 192.168.2.100 >&2");
+
+ # Destroying a declarative container should fail.
+ $machine->fail("nixos-container destroy webserver");
+ '';
+})
diff --git a/nixos/tests/containers-imperative.nix b/nixos/tests/containers-imperative.nix
index 89babdcc476..7e2a5497638 100644
--- a/nixos/tests/containers-imperative.nix
+++ b/nixos/tests/containers-imperative.nix
@@ -3,7 +3,7 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "containers-imperative";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ aristid aszlig eelco chaoflow ];
+ maintainers = [ aristid aszlig eelco chaoflow kampfschlaefer ];
};
machine =
diff --git a/nixos/tests/containers-ipv4.nix b/nixos/tests/containers-ipv4.nix
index 8f1ab40221a..31d05990a67 100644
--- a/nixos/tests/containers-ipv4.nix
+++ b/nixos/tests/containers-ipv4.nix
@@ -3,7 +3,7 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "containers-ipv4";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ aristid aszlig eelco chaoflow ];
+ maintainers = [ aristid aszlig eelco chaoflow kampfschlaefer ];
};
machine =
diff --git a/nixos/tests/containers-ipv6.nix b/nixos/tests/containers-ipv6.nix
index 0c1b8e88564..320465ebb95 100644
--- a/nixos/tests/containers-ipv6.nix
+++ b/nixos/tests/containers-ipv6.nix
@@ -8,7 +8,7 @@ in
import ./make-test.nix ({ pkgs, ...} : {
name = "containers-ipv6";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ aristid aszlig eelco chaoflow ];
+ maintainers = [ aristid aszlig eelco chaoflow kampfschlaefer ];
};
machine =
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index c1bdab8622c..5feabbf4206 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -22,7 +22,7 @@ pythonPackages.buildPythonApplication rec {
];
propagatedBuildInputs = with pythonPackages; [
- gst-python pygobject3 pykka tornado requests2
+ gst-python pygobject3 pykka tornado requests2 dbus
];
# There are no tests
diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix
index 70051e587cd..b79083ee402 100644
--- a/pkgs/applications/audio/zam-plugins/default.nix
+++ b/pkgs/applications/audio/zam-plugins/default.nix
@@ -2,20 +2,19 @@
stdenv.mkDerivation rec {
name = "zam-plugins-${version}";
- version = "3.6";
+ version = "3.7";
src = fetchgit {
url = "https://github.com/zamaudio/zam-plugins.git";
deepClone = true;
- rev = "91fe56931a3e57b80f18c740d2dde6b44f962aee";
- sha256 = "1ldrqh6nk0m1axb553wjp1gfznw8b6b3k0v0z1jdwy425sl6g07d";
+ rev = "932046905a57f698406318765a60807a1f81257d";
+ sha256 = "0zgkmq3jgysrsb6cm6sfbgqpgfpwv8nxlgkqm29zzvb97j56bm7z";
};
buildInputs = [ boost libX11 mesa liblo libjack2 ladspaH lv2 pkgconfig rubberband libsndfile ];
patchPhase = ''
patchShebangs ./dpf/utils/generate-ttl.sh
- substituteInPlace Makefile --replace "ZaMaximX2" "ZaMaximX2 ZamPiano ZamChild670"
'';
makeFlags = [
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 620d0fb629e..13816f8bfdc 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "atom-${version}";
- version = "1.8.0";
+ version = "1.9.0";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
- sha256 = "0x73n64y3jfwbwg6s9pmsajryrjrrx1a0dzf3ff6dbi5gvv950xi";
+ sha256 = "0hhv1yfs2h5x86pjbkbdg1mn15afdd3baddwpf3p0fl8x2gv9z7m";
name = "${name}.deb";
};
diff --git a/pkgs/applications/editors/kile/frameworks.nix b/pkgs/applications/editors/kile/frameworks.nix
index 2fd8dfe4128..f42e9fa4335 100644
--- a/pkgs/applications/editors/kile/frameworks.nix
+++ b/pkgs/applications/editors/kile/frameworks.nix
@@ -1,9 +1,9 @@
-{ stdenv
+{ kdeDerivation
, lib
, fetchgit
-, extra-cmake-modules
+, ecm
, kdoctools
-, makeQtWrapper
+, kdeWrapper
, qtscript
, kconfig
, kcrash
@@ -13,54 +13,55 @@
, kiconthemes
, kinit
, khtml
+, konsole
, kparts
, ktexteditor
, kwindowsystem
, poppler
}:
-stdenv.mkDerivation rec {
- name = "kile-${version}";
- version = "2016-07-02";
+let
+ unwrapped =
+ kdeDerivation rec {
+ name = "kile-${version}";
+ version = "2016-07-02";
- src = fetchgit {
- url = git://anongit.kde.org/kile.git;
- rev = "d38bc7069667119cc891b351188484ca6fb88973";
- sha256 = "1nha71i16fs7nq2812b5565nbmbsbs3ak5czas6xg1dg5bsvdqh8";
+ src = fetchgit {
+ url = git://anongit.kde.org/kile.git;
+ rev = "d38bc7069667119cc891b351188484ca6fb88973";
+ sha256 = "1nha71i16fs7nq2812b5565nbmbsbs3ak5czas6xg1dg5bsvdqh8";
- };
+ };
- nativeBuildInputs = [
- extra-cmake-modules
- kdoctools
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
- buildInputs = [
- qtscript
- kconfig
- kcrash
- kdbusaddons
- kdelibs4support
- kdoctools
- kguiaddons
- kiconthemes
- kinit
- khtml
- kparts
- ktexteditor
- kwindowsystem
- poppler
- ];
+ buildInputs = [
+ kconfig
+ kcrash
+ kdbusaddons
+ kdelibs4support
+ kdoctools
+ kguiaddons
+ kiconthemes
+ kinit
+ khtml
+ kparts
+ ktexteditor
+ kwindowsystem
+ poppler
+ qtscript
+ ];
- postInstall = ''
- wrapQtProgram "$out/bin/kile"
- '';
-
- meta = {
- description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
- homepage = https://www.kde.org/applications/office/kile/;
- maintainers = with lib.maintainers; [ fridh ];
- license = lib.licenses.gpl2Plus;
- };
+ meta = {
+ description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
+ homepage = https://www.kde.org/applications/office/kile/;
+ maintainers = with lib.maintainers; [ fridh ];
+ license = lib.licenses.gpl2Plus;
+ };
+ };
+in
+kdeWrapper unwrapped
+{
+ targets = [ "bin/kile" ];
+ paths = [ konsole.unwrapped ];
}
diff --git a/pkgs/applications/gis/qgis/default.nix b/pkgs/applications/gis/qgis/default.nix
index b771d2552d8..a8c1428f8cb 100644
--- a/pkgs/applications/gis/qgis/default.nix
+++ b/pkgs/applications/gis/qgis/default.nix
@@ -1,15 +1,16 @@
{ stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
, qwt, fcgi, pythonPackages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper
+, qjson, qca2, txt2tags
, withGrass ? false, grass
}:
stdenv.mkDerivation rec {
- name = "qgis-2.10.1";
+ name = "qgis-2.16.1";
buildInputs = [ gdal qt4 flex bison proj geos xlibsWrapper sqlite gsl qwt qscintilla
- fcgi libspatialindex libspatialite postgresql ] ++
+ fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags ] ++
(stdenv.lib.optional withGrass grass) ++
- (with pythonPackages; [ numpy psycopg2 ]) ++ [ pythonPackages.qscintilla ];
+ (with pythonPackages; [ numpy psycopg2 requests2 ]) ++ [ pythonPackages.qscintilla ];
nativeBuildInputs = [ cmake makeWrapper ];
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://qgis.org/downloads/${name}.tar.bz2";
- sha256 = "79119b54642edaffe3cda513531eb7b81913e013954a49c6d3b21c8b00143307";
+ sha256 = "4a526cd8ae76fc06bb2b6a158e86db5dc0c94545137a8233cd465ef867acdc8b";
};
cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
diff --git a/pkgs/applications/misc/moonlight-embedded/default.nix b/pkgs/applications/misc/moonlight-embedded/default.nix
new file mode 100644
index 00000000000..9171e012807
--- /dev/null
+++ b/pkgs/applications/misc/moonlight-embedded/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchgit, cmake, perl
+, alsaLib, libevdev, libopus, libudev, SDL2
+, ffmpeg, pkgconfig, xorg, libvdpau, libpulseaudio, libcec
+, curl, expat, avahi, enet, libuuid
+}:
+
+stdenv.mkDerivation rec {
+ name = "moonlight-embedded-${version}";
+ version = "2.2.1";
+
+ # fetchgit used to ensure submodules are available
+ src = fetchgit {
+ url = "git://github.com/irtimmer/moonlight-embedded";
+ rev = "refs/tags/v${version}";
+ sha256 = "0m1114dsz44rvq402b4v5ib2cwj2vbasir0l8vi0q5iymwmsvxj4";
+ };
+
+ outputs = [ "out" "doc" ];
+
+ nativeBuildInputs = [ cmake perl ];
+ buildInputs = [
+ alsaLib libevdev libopus libudev SDL2
+ ffmpeg pkgconfig xorg.libxcb libvdpau libpulseaudio libcec
+ xorg.libpthreadstubs curl expat avahi enet libuuid
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Open source implementation of NVIDIA's GameStream";
+ homepage = https://github.com/irtimmer/moonlight-embedded;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.globin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/applications/misc/yakuake/3.0.nix b/pkgs/applications/misc/yakuake/3.0.nix
index f3aff480914..4ccef7f435a 100644
--- a/pkgs/applications/misc/yakuake/3.0.nix
+++ b/pkgs/applications/misc/yakuake/3.0.nix
@@ -1,8 +1,9 @@
-{ stdenv
+{ kdeDerivation
, lib
, fetchurl
-, cmake
-, extra-cmake-modules
+, kdoctools
+, kdeWrapper
+, ecm
, karchive
, kcrash
, kdbusaddons
@@ -14,53 +15,49 @@
, konsole
, kparts
, kwindowsystem
-, makeQtWrapper
-
}:
let
- pname = "yakuake";
- version = "3.0.2";
+ unwrapped = let
+ pname = "yakuake";
+ version = "3.0.2";
+ in kdeDerivation rec {
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz";
+ sha256 = "0vcdji1k8d3pz7k6lkw8ighkj94zff2l2cf9v1avf83f4hjyfhg5";
+ };
+
+ buildInputs = [
+ karchive
+ kcrash
+ kdbusaddons
+ ki18n
+ kiconthemes
+ knewstuff
+ knotifications
+ knotifyconfig
+ kparts
+ kwindowsystem
+ ];
+
+ nativeBuildInputs = [
+ ecm kdoctools
+ ];
+
+ meta = {
+ homepage = https://yakuake.kde.org;
+ description = "Quad-style terminal emulator for KDE";
+ maintainers = with lib.maintainers; [ fridh ];
+ };
+ };
+
+
in
-stdenv.mkDerivation rec {
- name = "${pname}-${version}";
-
- src = fetchurl {
- url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz";
- sha256 = "0vcdji1k8d3pz7k6lkw8ighkj94zff2l2cf9v1avf83f4hjyfhg5";
- };
-
- buildInputs = [
- cmake
- extra-cmake-modules
- karchive
- kcrash
- kdbusaddons
- ki18n
- kiconthemes
- knewstuff
- knotifications
- knotifyconfig
- kparts
- kwindowsystem
- ];
-
- nativeBuildInputs = [
- extra-cmake-modules
- makeQtWrapper
- ];
-
- propagatedUserEnvPkgs = [
- konsole
- ];
-
- postInstall = ''
- wrapQtProgram "$out/bin/yakuake"
- '';
-
- meta = {
- homepage = https://yakuake.kde.org;
- description = "Quad-style terminal emulator for KDE";
- maintainers = with lib.maintainers; [ fridh ];
- };
+kdeWrapper unwrapped
+{
+ targets = [ "bin/yakuake" ];
+ paths = [ konsole.unwrapped ];
}
+
diff --git a/pkgs/applications/networking/browsers/firefox-bin/sources.nix b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
index 90749b914f1..6751193f237 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
@@ -4,189 +4,189 @@
# ruby generate_sources.rb 46.0.1 > sources.nix
{
- version = "47.0.1";
+ version = "48.0";
sources = [
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ach/firefox-47.0.1.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "a5391e45d1e59a7c14d8d421286033e3e760bf2b4afddfec3d1767b2ebc957b053c39f17f8185a6c9ca2542c76f6c9612d95d474c01bd5ecc62e5d4f4e43e8df"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ach/firefox-47.0.1.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "48681328033b694adfc6149bd965a3dff90ef014db6f65641ddd3d79ba7901604623735555bad024dc2425f226c65e332a0875d6b18fe1c06b18a1e407b70294"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/af/firefox-47.0.1.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "7757ba99ce9991f67a45d9a19615a93c0a1bf0e35d35c5fe653f04d47c068054c8d91327641a48cd20fb9531cd1e842066c0e6f2dd8b23bff216a9fc727ec84d"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/af/firefox-47.0.1.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "7e3d70da29aeb5fc81f5e6dc52a4b8f831813f8c025b1a105df631cc5b675905c82dae842459ad30c5257b74bd5654e9aec5dcfcdee93eb42443c45cda81138e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/an/firefox-47.0.1.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "1051e1e3a6c25ba6b3aa4ce5adfdc60bcb3c612f3facd5edb702385ea8c0837cc53e95b064a424e0c055a56a11f3a54a7ba37e2ef35045c8cbb834aaec0f6327"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/an/firefox-47.0.1.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "27fb75ce402c0d47f8542d3d6d6992587e6ea0caaba2249e763f0f9c4f1d233b37a4b87ebb7e730d16704c7d2abab690660e409e721850875fc09deb0c433252"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ar/firefox-47.0.1.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "296e23fff265bcc08ec0f81608d50428181163d216fd896c80a1a8c31e95f243112aeedf3bbd96b1efbaa1d6d576a9bfc75e5fe8df434cbb74bb9576f7d90a83"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ar/firefox-47.0.1.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "15f0e7cbf5a98ffa9d2d7befcb11938b76194dff29b1d93ddcbb8f5c655ef33659534874a72aea18f98af06e5fa4392aee5412582ef43292d70603dff2c42c60"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/as/firefox-47.0.1.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "67883c8cb7ffb6c05288b316b2aa5bc3274372dd82ab4c771fcf1e5a968e550d12c89027440704d8479a906beeef24a18ca72ad243628a5ece45918ed990c793"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/as/firefox-47.0.1.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "f7718b0dc9bcbfd109591f87263d7791dcd7612b0312d0bf93e68b1f2014d3732dc6740c57a8e64dfc1af7946da14dde617945e38842eb19cfe39376cb12ad44"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ast/firefox-47.0.1.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "f29b883932752bfa947c48f7c1ff6084b1cf215ea84cf63beaea808702b0b90f50e85aa4cefa4d2c1234b0d366c8f6e3d8fdf7a0f92d432cba790adab6d24174"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ast/firefox-47.0.1.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "8b656c6b08640c125b94f90e1dc8259c90af2e764cee73b02b9dc3c0246b3195906d9208bc2a6b3ca31091d8cdfca8338fa6c489b7caa5685a23133e98847a39"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/az/firefox-47.0.1.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "5ee1247e37964274bbea8021c8e4e5116fedca95712fbd91d709c5c580bd1618c6319cae73278b2f0ba82031e94bd3fb382d2b4dcfc9a5d7ad47ecd80f4fca43"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/az/firefox-47.0.1.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "c369046c29dd0dfcf40e69e1f5b5a63423833a376d2b143d3fbf2ee1e23dedb3baf24843ba1178bda94b86f357724898a147d4adfac1e469cbf44166d7ffd16c"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/be/firefox-47.0.1.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "f8a1ab05b8d25a7a30e755a551f0851a308ba0720180685f6946a510363988717f8274ac2c8ef826c60232a62c394b86829d289e7d74e24b7656b55238129b15"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/be/firefox-47.0.1.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "df05271371de5fa25ec11164eaac0b253bc892749d421a6ca730dfeceb4ef89492c42ce83a87eccbe91cb03ab001bf0a1d9a20a7296b69841cab8c6b5d2acc36"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bg/firefox-47.0.1.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "80644b86f9296b708e74843a51f81d368e3508f0f2f74de1a998d30a15f6e3af08ffd70dcc5c79adb76c03be9ff4713fc8403b8433cbc33ca3493941c4fb2fe0"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bg/firefox-47.0.1.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "0e6cdc5b3cc706031c95a550b0c800c9e8e2d7bf241010c22f0872eca4bab018a5f0d4a94abb4f8291c279476700f2101a69ac0c57ae79994fba38b88b00fddb"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bn-BD/firefox-47.0.1.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "4c697f1dcd68634e2ab712d4f2415e57cf8be0017fff3602223d8af19a1f3a5c973489d13951baaab95924fad42212a485fdff622d2b559be36e246c8a847b67"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bn-BD/firefox-47.0.1.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "1931035a9d92dd9246a00b32443e282dc405096407a4feff7856125b7ee156840114c9be0dd58a020c250fa54c4ccb22052d2be291eeec9b5f76303fdf6c4cc5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bn-IN/firefox-47.0.1.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "fbab6f7e4205c803a50990624d58aa80cfd3aa76fed02cbf9ea390f4ecdcc1a97bda9b51791cec49f2a7e1010109d5f81a1c9b6ac224f1f70df49407df5f7386"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bn-IN/firefox-47.0.1.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "c705ec8356796060c6782261086011bc0bf3ac9f08bc821ce2305c9aac11c522abb802a9d9ab7dcb53b0d38468bb6e667d45b187355d769acb43a8b252c4f400"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/br/firefox-47.0.1.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "c58cd77139a0ae7f3bb8f6f25c40856aca18a831c8f5d6f5d59a45ec615420bd55205093fb66a77591835b0d9493f774b1801a168b9c071086d510a1446cc914"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/br/firefox-47.0.1.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "b6bde26d478eac081007ef43a6d588f70dc4d54afc423b019468dc91bfcb117d3b4989c4cbb4cf77a1a11847a58ec74fbf822b6e6f0ef86fdb0065c301294850"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/bs/firefox-47.0.1.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "16ee40d079996f42be77167b73645d389045648c9d36b76e34d0398c7b5b6dee54712d109f93d054236ac7076fc3edb06ee82acae40ad22825a23d92d0e2c636"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/bs/firefox-47.0.1.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "ef674f409df5c32fe4584f9de65cc6558d6b3ec78d8a83f5cec829bc1ae09f30399567915e32584334704d12264c2592fecc9e4952beabc8b0d4eb49a7186854"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ca/firefox-47.0.1.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "fe522bd836c82cb68bb21ad1c7f36bd9a7af1642abf7c035e2d0999b4cc07c58124e4d8de81344598036159102ee12f22c12e44a8a087e54d6c661c3f453b63e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ca/firefox-47.0.1.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "b618da984d35fbde3819d101c103d8d9a5a4de98f0e254c67e894656019ebb6adc56e14a57410a61430d9aa9c1e0a01339b39a5272164af372544f27329a1644"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/cak/firefox-47.0.1.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "82659aa2fbd091224aef6800b3df1d2e5141b6a295918e4fc4ea09b671184f62c670e3dedd7040b2f167581b0c8a0e8799d861256b273b01b2455d0937722273"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/cak/firefox-47.0.1.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "a507cff511c6337f805a27c0f73548342d2fb2cffa683874d66b054b844b17c354cc6da5c3d15618006c2279099b0cd9172b17d9d4b21a3863b5e395db686b22"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/cs/firefox-47.0.1.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "9af91acffc2beeb53280a6cbd21656a91a686c03342fad90dd91314c49535acef1a8abac8fe54bcfc250ca8b8f07e3550c890094f3bcee6baece983cec68bd8a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/cs/firefox-47.0.1.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "c8bea48dc11c021fff9df5ee1a67a6b6e9193ffb2a07e17014d7448254d8a8f4d1512f862ea73bf84dc15b40edbba3fd94cd3d2d18872255bbfc7fa9a7b8ec29"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/cy/firefox-47.0.1.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "7cc062c3b9b4bbfd0b1f7247f06505ae99458514b607d4d9062836085798bab7ade6c4d1c8903b1b961243c6fb6adb4c4f94780f1194f745cf62d786e2c4f5c6"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/cy/firefox-47.0.1.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "abafa600b941e17f8aea0e778a937f5fb34cbc8803c93e59febc5d9fde6ad3347ba0bc7aa07ab57a61f6b9d6b11d582b987100364aa8401bca539dc6e14584e3"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/da/firefox-47.0.1.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "d4a9141779f52b78a51b9682b6b44e5ccffdecf5582358ab8a02efe133d9a52023e03c238e106a79e41a8aeaabcc58e0757c1af66837768e7bf4732f26182915"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/da/firefox-47.0.1.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "48f0c48aa273cec9830bf806330c7a630185262838007628acad904a45b3186450a8973938c36db636bdef9042c78ce94a4a456e1682ef561abaabab6ac20863"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/de/firefox-47.0.1.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "01675b3a8ecfa10da1d101cba36295b226b130e1cdb2c760541cd76c9b21436ae84ca7228e063402b1ca2eb59acadcac7720c9dd47db8b406675fb273af206c6"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/de/firefox-47.0.1.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "6a7ef802a8109f58504b2accb9ef0ee38986f6c8980e0831c30b470f2ee768169557cdbde1a58d7c72996b27596e553185ded476cecdd7114b75d82428b7846e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/dsb/firefox-47.0.1.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "55528fca4d276b2b0430949686845e3d7d88975129c9a9846408f758b4f9c8f154425db891e5c1930197e36137d6c15ba29de90dad624bad23090015849d0ab5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/dsb/firefox-47.0.1.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "f21c14a57f6f973be824340fcd417ce03765d5826114462f62adbd933661bccbfbe90b66935083619c62d48401c511830574ccc373ca2110093b06fad59734ff"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/el/firefox-47.0.1.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "ac5a808db1ba68286a7199eef33794f7aeeafa26e97a20738fb21be479462bcaeb1e8a7995720d5c7dcaadd0cebe91bb2a3e019873d0cf74f42838f7d5c1a427"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/el/firefox-47.0.1.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "c02e6587d99fc3ca66debe854c778a8b3dbf9b514e6ed74fa15e3035a54643b2bc324ff59f1705c6bd392c37ad1996f80dbabbb57df10aff954ed0ff3f5b01d5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/en-GB/firefox-47.0.1.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "c458c70db0408d627a904781adc9af18011f243689f4c5a606c8f1508b4e9417a8df499673c4ba56d32ea77d0f79ab85ff88852f7c518e7fd124e5970615b2f9"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/en-GB/firefox-47.0.1.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "28ccaebc4f7613d7ea8c3b47504923f2d59bdf4afd6e386a67dcb6b6923a9374c1c783e4f904da0b6e0f716ec87a046fc12f3781b732389d1d680745d6955c58"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/en-US/firefox-47.0.1.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "e1ea34bd0829656c04c471b66d2013fc07cbd5cf40b47bf3a932326cca71f9a502c52d1d5e6dd902d274d307079475b0e75d7ff552fcb2fadf31b2883efba79e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/en-US/firefox-47.0.1.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "a56b2ad26df424f008d96968a4e6a10406694b33f42d962f19dff1a0bcdf261bca5dd0e5c6f3af32d892c3268da5ebee8ce182090f04f8480d37d232ccd23b9f"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/en-ZA/firefox-47.0.1.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "d5efc3d4e624f34c81df068f4d6c184cb8a63ad0667695e9ce7099e069b23715eb77cf2004adee41bf355452179959e5ef7450f167f87be70339abb4cf70844a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/en-ZA/firefox-47.0.1.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "859730132549691b61e936813f0f5fd3e62f3ef6fa9899e3f68bd3178b7438b4c6b49f54f00d4898b568d6abccdd55a0f9fc6c51858e95735fefcc13de460d73"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/eo/firefox-47.0.1.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "8ef290bf1eb3504ace393b32c2da64d14435edc327c4f13a40cd925efaf7e042a03b6877689b3f2290f85625410a4e48dfb2cf676f138fdba87ffc597b25f4b6"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/eo/firefox-47.0.1.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "7d6167749d2a57a9c12180302a825fee14555e9050b6be3c83dd35183678bc36e10391cedcc864ca0dd96d297997a68627dc4fc1a9cd8922e789dcfa814f18eb"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-AR/firefox-47.0.1.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "07768e3b3ed903f4327881a132f192a65842a376eeca6d10ec0de69fefb4ddf3d7fee2a704bbc8d229c78556478814d9e53940cca9edee58270d9790d6b76998"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-AR/firefox-47.0.1.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "cac021af09abd742273dc77291fb1528dd5d6d38cef3a5e36e615fbb9f3908655fdc96ceb93fd131c4879acf24e702a044471136e7575f3b550ebcecd982047e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-CL/firefox-47.0.1.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "e92ce6bec5b1ee8cf3db0a604eb4cae6245fb6d04a48eec64b6dd55139f3606cbbcb65511e29a3164d6572929b7216afbaa7f034a2191eba100ecb7403740504"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-CL/firefox-47.0.1.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "98e57146481a53061c0b30872290ecabc2d14c73805a9461d82aaaf4cf9f301521fd55b01c8159c09a56f52a1580d83c9527986b1390f496d0fbd11227216e7f"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-ES/firefox-47.0.1.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "c44df66e140ea9190112f89aedff9519b6bee18f5e2b54aea19acd233e623c299aecf134cdba70d366fcaf6b7795d220052ff75409c7a04394a7aa02d9ea708e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-ES/firefox-47.0.1.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "c2d70bc5a304df7b2484c8fb2b374f8e31a69049eb223a53dbd0e4b51e4ccce907efb1674eb637370ce7c3947ba5c09e65f433d10e0f328b80d482f3de9cae12"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/es-MX/firefox-47.0.1.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "96dcb75cffeb85b85f092e295e38ee55c272714c40609ca90cfaac5fa0cfdb3efe8e993319ee690b4a7938c42346bf39f063ab1f3db606e743c1e4720de5a93f"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/es-MX/firefox-47.0.1.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "60b50d6726b2e1985564bc02263eb88c9b4c1bb39e6d19812ecc6751d6ad223ba04f65a7755a946fb15dceab90628b057bda89c55fdd4972604586f52c5a4b1c"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/et/firefox-47.0.1.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "0a4bef2277f729c93db413b68f8263eb356f7b3278880574b8ebe010e2db9067b803967e1f0d6912f128a9ad5ef204466f52ae277f3addfb8fe9ac377c3b8a3a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/et/firefox-47.0.1.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "ed1bd4fd67262958601f1107edc589bb28e9b7f9faf0edebdcaf0c07ec6007f527a9eab434582a65271a8f68edac8178601da54eab9398f48b31126657a21b0b"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/eu/firefox-47.0.1.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "8c5c9406345e2a1fca3544aeb742dc0d254c804d887e3614613280c050a63b69320d4488b017ee16b0a2a07bea862e8b245baf7edc9df65689d509986f3c5958"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/eu/firefox-47.0.1.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "d8f7004e24033f377391b577c549b66f73cf0e899ce5f580eaccd07713ec03b4362db7b222ce6345d113641d3e6a951302939bbb155c47ec0fa46a201a631427"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fa/firefox-47.0.1.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "f4e02737e20b6ffd3bc2b3a5e5fa59fc80a8e37dc8459ad4a6b99e7621a4d3f360884915f7136dc201830efe371de37977ef3e27f34f84e2cb734c1fff8f6e36"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fa/firefox-47.0.1.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "8f624b066faa39341b750dbb702dd60ee6ad75b3850c659dac2e21969ebed1f792423e9fb0a9cae7fc456943020f9a0155af5d7c596433eedaaa9990ce07b7d4"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ff/firefox-47.0.1.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "22a2c5376b1e8d770659475085d98ac1f1020cd816ff3ec6ccfcd68f2484b1b0dc25bb84ca52f4ad27144f4da356ce5e7fd54411d12ae7c852064509470d5828"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ff/firefox-47.0.1.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "bcb3dabc250045b8ad444219055fd9d14902296ef3f9c320bec1bef940f84eeb0d4a50249805188ae96ed0288a70f0216350ee79191beba49aeba890ae515b41"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fi/firefox-47.0.1.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "0c505a0e1d3030038b61ea159eece3892bcc7d947b6d7010c0be8791525c9d91ad1170d4cb45260584c93a78a4bc831b7acd9f28e95ae62e5b96b31745dcbe50"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fi/firefox-47.0.1.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "f347cde005c6b61366c633db5a8cbc5260dfa0d68230a938d847e3f80bff2f1bed09dddded7b1728f4ef9525610ecd046743f9e71eefb467943fe6b72ed198ca"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fr/firefox-47.0.1.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "8fb8ea2eab82740657a6b822b330fa0c289c31ad900683b4ad07b1e9b0c6c4e14f50af39d6d0f787642010628800b0a99b5ab0c4cad62e4a579390509b1ddd13"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fr/firefox-47.0.1.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "ae79c5b7f9f8305c3631f4f913baa341a9beaa7a2ee5df1c6c1826030c21bf22b92095ee579affb8911110bf3bcc359793c0beca18d4c32b1fcc1f3d1dbcc4b9"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/fy-NL/firefox-47.0.1.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "1c57d02fdc33ff53de48ed9aa9e89ecd5a56d35b432d5651e71bbfbd5f9dfd18aeaf14d10b881f72df871afd00a12b31ff05cf9d5c5a55cd44a92c7a0156523d"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/fy-NL/firefox-47.0.1.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "f30f59d630c5d289b61dc7440f7bbb976eb16732370f827365a477090cdf9f2859f39afb7ff9d9be7e8a022f181f2aeb7a3005c00f4c14e6505a28db7ae48a9a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ga-IE/firefox-47.0.1.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "739d5feec4bffee67876227f6783d35675f4c0d168b7abbe5f97b6e8edce7fe4b8f04f8240087f7f208db4180f3417997b661c93ebe046decff3f4f4fecac839"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ga-IE/firefox-47.0.1.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "cb4344df6e07db839ce8c9fffd1b7b310c8108b5218cea3602972806c1a40f56bf1355ede4cb3595f54179b16e3470e25bfbddc8e39d726c7d6c1e99d128ca8b"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gd/firefox-47.0.1.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "91004d62bb5f1f6a1d65b35fee9e594d21d9877669e042cb4c9a834b01b35797363e1433a9ce5a8d0a9f64c8b256da6a6d09fa3342b74b7c2af8ce8afb3e4e56"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gd/firefox-47.0.1.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "f04034cafed25c34713ffe4109e53b107b8fe81321c0c0c035f54ff0ce67ac393b42db7598edc658d3f026e447f9ff1c4d1cfdedd31066eefb6019117248e4c0"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gl/firefox-47.0.1.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "107bdebb92ce86f39cdc45d6bb24a9c4d104820eca6bb77950693ccbd55e7f8a2f143fc3a5bbb1bfda161e7a33c8f6d8d2686b09da1497215defbca2b4e4e109"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gl/firefox-47.0.1.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "c841af5c73343475150b5404b4b54396bda845aa5b231a742aa17ecb7fdbbc5cd4123efc3ac2ede1c24f485d04bd87e8bf7cb00b7135bef236ce56afa0c27a19"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gn/firefox-47.0.1.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "20954e218967772488bd895ebf069522c3f4c56ebfa09a7c8efb740158cb95b6be76cee8f4d7f2c1c6c505ca9071a0ddc1914784a54f669d337d5196f18b6f4a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gn/firefox-47.0.1.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "aaed68f13e326792671669883b452b65556998ed757ed5b745c6453d6bae8865a06f137709de37ace2688e2e09f1b96ecf2e5b6374b4170d29100c6f83ce22ce"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/gu-IN/firefox-47.0.1.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "205093ecc0dfcddb2b90e05b1a17f75805a4597bbfad214d67442fd0d952f765b031ba63a3c399ba9c1c46e4d05b3cf786f01c46eb8990240a16431964c93a94"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/gu-IN/firefox-47.0.1.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "a84ec5015f6922a22a284eaca985010586067370d818e77d401b58782f86dcf2f534f1ef021719c170f1f502525ce25c94760d3b75481c15fade3c25b969b563"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/he/firefox-47.0.1.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "5727fc4699316c4b34be1c2596c5cc20d5fc9d2062b1e106087cdb34b788fe3ebbc098acc8c690bc83c9d9be59ac3b3977fd9116d766ce908aa088660fe34771"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/he/firefox-47.0.1.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "c399969bc24b10ca1c1eff17d3414f214cfe3e5b73282942ead5b2ba4d2c58b74d665b13031ccf42956cd45f0fc7b206dd2f9674103c1e3a8861a33577b5caa7"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hi-IN/firefox-47.0.1.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "f014c47a143d425aa3452be2bbed199a8b5e75d278c35fa86bb6bcac40bfb32bdee22d030386c881c818b465451b35c81f97bf29f9ccfbea606d52c822057899"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hi-IN/firefox-47.0.1.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "0e5dc0970680886dc02448d7118b6864092699fe44f3276ca17cba160aee59418f8e39338247897b118de0e1fb7634cf725ddc6a34a8b6f002b7a78d92deffb0"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hr/firefox-47.0.1.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "a9af43f6cf6f493f728b8942d3a600f3cb3a23eb0818d284ddabb8766f7d274aa0a232f9925b65625bb56d00864946dc6b0567491cbecdd6a7cf626b6964d9b1"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hr/firefox-47.0.1.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "d97951148ca0ba80a67020f323859ea3f508e40906ecfd18f7a8fbe7a2bc85ea4635945b5c6063e1d5d18456471604075e6767da9a4fda6a09dd3e992a7d3a88"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hsb/firefox-47.0.1.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "2f7adccdc894f345e861b29a6d65909b1cde2649c69ec9223f784e659e8e3f4668f815b3683fe691de0749483167d26885a0199bee88e8524377c7eee3afbe99"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hsb/firefox-47.0.1.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "70e39341ede01e18c653a0eb56b48e31c73ee3df54ebc11bcd220e2d8e19c67c3e248095c4d070b12a0eac5c24acf5a8ad83069673dcaa684229f4706103685e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hu/firefox-47.0.1.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "1fc01c6dd873e2194e6196b1bdb0246e95d0b0520f558b21a2052251d2a5202141c09410c4631b3f025479169d8f68411c2a24f32825261fa8d65696fc7cbe0f"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hu/firefox-47.0.1.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "b4509d671d7eac055812add85ae571f52c90b4eeb172d21c22ce844c70192ba235f37a732e94a0edd6794ecd5a8caa5e8bb6ce05a26d3705902d3628420af871"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/hy-AM/firefox-47.0.1.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "a2b7cd1ec95a0b5eb064e816cfcfc6a74a92806772592947267c4b266bf7ce77d1beb17a7c25b905251cf497ca8dfabf16bca367cf6d9e9e635182f306bd71ca"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/hy-AM/firefox-47.0.1.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "9997ca45051e609e289d7730caf1254adacefbf8e618a165750d5bb7ff7933d014781af76501296c89a4236fd3ac477df6e6be5a5dd45f214983c851a856ce5a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/id/firefox-47.0.1.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "bda5a7c599885bef966daa35a3f34297e38534e32967142ff9cc720a34c7aa9730e3f24623c240637838eca03f78f9b2ee30af3ac3dc8ba48f9664c56b64c789"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/id/firefox-47.0.1.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "97d16c5b4382c7fc6ccee416d671e47d345834a44ab111aa486a41c756b25eb894628d0128e8454fc15f38937bc40436b12e60752ce7b7c1fe35a230abaca337"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/is/firefox-47.0.1.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "576b904fb836ea735f652c6b9c91891dee164edd3523c5f99d68cccb4bd6689c29e4c579b6cc44e699a8900101fb8d223f9e0b0860f71a2814ae0ee2c70609e5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/is/firefox-47.0.1.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "592d65977c34c6133f5745a85722f822efa5956bafc6e880954a0b318fa59712c754e882768755fc08f5e08a1c99493c0b30b4219c46169ba663258e3fd3f3fc"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/it/firefox-47.0.1.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "4d749e1b5d8432df789f29a247ab48a688d4aa16fb25dcf7209783c6036bfccb9ff8ac32dcd09dab1708f71896fa034576d6048eef077d1a6c0a3dc58d3cdb26"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/it/firefox-47.0.1.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "087c456d691225d9aef54b2013af69cc7bf2501f83060179112e9c40c1d6762202f68e6329a936df091a1ae6aa5f20bcc96a4c8b0451b71270426bddfb45d15c"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ja/firefox-47.0.1.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "cb4b0bbff7d322f2f04fdaa50b365d4e0a1ff1786206539cd124870ebd69a9305b88d39b9fbed41c64ddbe68098e02c51a0dc665262424f8eff882b1497ea1fd"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ja/firefox-47.0.1.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "b6c9b419a3e746957f93a4bdba9043adc3911b6f76e1eea2e4e31e77e9aa9057ce720205db4af5586a90df4d6b774b90829f1d7689e77c560c50ccae755400b9"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/kk/firefox-47.0.1.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "ae7711d86ce8180997f44f9309a63a436bd8b70ed0dccda773c34ba816daae99b3b1ae913ee87f4d1f9a4e8f016aea670e89652823df16b5e8414bb58ac28225"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/kk/firefox-47.0.1.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "49fb6b5ab6aa12535373927519bf36099da6fab7c2e1bcd6f5ce73d91679f58e81eddd3556df65b305fc2d1cd439cf6de081980fa98ff79df16b620ed41290fd"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/km/firefox-47.0.1.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "29dd1808c1430c01dbb395d5e5a833bfbde85453278d4efd32f1afa1eac19a651c0c3a42eb4ba3402f56a8492e80746d753986c0ec0f1a6dc0e5eb6778b5c6ae"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/km/firefox-47.0.1.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "f53966aed30b57a601152f09a26414e11bff4ff31683989eb1e47546eaa32fce8cbb6511043f9753cae076d23d6f2172c2b224313cf5f3262f109b49119175e5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/kn/firefox-47.0.1.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "17dc37df2b3d5a87bbadc4d5c80d4ddff03752b7a80f5c76171ce9f0bc4b8926964b6315cd4f0c6c9dd3142cec56b464503bde34ec3c69e2b8a66ddcae72b0ec"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/kn/firefox-47.0.1.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "2af5ac5c254bd0ed2d08656a6fee7966d73aa89973cfad67fd18d7d88fd1f18a2b882de7854af46a3ebc6acba4cceacc06942db7ae495faa2c6ef21c65e94158"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ko/firefox-47.0.1.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "415fc260f3dcc2ede6c43194501d9522fdfb106f7c86e5d8f5929df6615c73023fffc3efd190deb68bf08bb2a0d4ab34f7605e222301c8350b980f2dbc289c8a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ko/firefox-47.0.1.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "c991c0b9a89b618ac046882b929fd7e3689e19dd96edf4535b25f9172b6baaa801a4490ae4fd35e82ca3c776afab74a0a09b993f8ae8c2a603d210f2cf248f73"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/lij/firefox-47.0.1.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "3cd367654397d14b782cea4ef8c96f1f6938f011576a8dba92dd4ca832ca3c8682f3e0e161a4288b112fca550d556080d0ece5a79e4c4f6ec99a9298feb6fa12"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/lij/firefox-47.0.1.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "2d7475c544df807a956feb9361f889ba0f5e43dc52a9e1dc9c469d86e97f344b4f2995e3fa149a77662969f3acbcc998f430973b2b9d28b23c82c5058b4a9dfc"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/lt/firefox-47.0.1.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "35c8a452ca845576739d5faa9dab6f3c34dcecf9ce95870f68699836f3534b4807c91fbe80007950abbbca662e6d01b406205b3e4cdf4d33e0717ea5d6f57006"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/lt/firefox-47.0.1.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "8791df09d841d5ddabd552d0fb0dc7e9446d23092bae1010d92bc3b056a9ad4a6dad01c5d8db531a273945eaaf4c30c922cd03d7b17e1b6be263e0bcb91b8384"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/lv/firefox-47.0.1.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "22b865a344a46096c53a72ff6b1402d00808bb3b49ecabe6f4115ea60e40e522d64afc701648772616fcb784a963bc6d5bb3f89517d7f8407f22fa82d81bad98"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/lv/firefox-47.0.1.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "3c66af306b1a8d0a684c12511d95353c0bdda0bea981ce4e577c928be03e12b582b19dcaccdccec551b3cb0fb716323b1079180aa7a8f1204f5e4b5a84b72831"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/mai/firefox-47.0.1.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "780fe423a3cd56a7452df32679ee07a0e328b21cadc78faa2721cec59185c4a4467aeeb75e9237cc86d38dfa2cd71530f02156c4fb9515582ca564dd53d47543"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/mai/firefox-47.0.1.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "d27218b59edf004dc57cfa9ffd70dbeb59b7d3c0871b00388a56b505629fd82ddd6f6e0147f5b4c67a8ad72a674e384b66ba2f9455fa9ff218c9ada4b27d1d7d"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/mk/firefox-47.0.1.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "da7ae3718f3c69ec9b62aaaea93951375d82d8d02818d6855fa9f085a64b69c155a1336585d786ae2d33d657110b787f62909dc9e4d54c62d2ea94d2fa8fee3e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/mk/firefox-47.0.1.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "95136f8bf86014a63bcbf4a5cfbd778c4c7e6a84618aa0f6a6948bb597638569b3702e0569b50c5dc9b46339e723377faea8964b921ae9802043fb7983a2c4e4"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ml/firefox-47.0.1.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "56743acb54283715fb2a910caa85dda61f7e2c1c5e012aa222dc07e3b522572500056fddf990b7ef03a175ff8901fb11b113bcad5c2adf4a6e6e032644ccca2f"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ml/firefox-47.0.1.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "134f35f5f6616c2a7eec48f637277fc02e23b57bf38eccff9777bb08c70a41fe79967b69567f75f9c8bcbad4b22d2ddaf16bec98e399c4b8ca9db9b70e99ef58"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/mr/firefox-47.0.1.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "f29de7ae7dba03465baf86f93d778c9faf3055d50295977c0207c7e4daae6f7ad733ed38e1323263cebe4f737d9a1616024333a97139156470de1a9fe3c16276"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/mr/firefox-47.0.1.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "731b4f143fd1303ab54ea3f1b6aca6c4f78ce935caae32fed0b8cdcd46c0ade8c8977131a3be786ea929a7d284c3d45d34851a0d81242761f722f0bceb126957"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ms/firefox-47.0.1.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "d372bac105f2012b189efedc449c7c183d0daf64cd7a40822ef9d685ce4a1550ca9699620440dd198b13f95513a577766e9f1a8e88b212492831bf7ffcac7e0a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ms/firefox-47.0.1.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "1287f36a742fa834d5f31e6bc2f6d3651e54f2bc8845a1f0f647e9a9e38ba66c58138961185897c8832107cffff06167a35dc3ee1f0ff830f997f65fb0854a63"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/nb-NO/firefox-47.0.1.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "ac3e46080e188e56a6b67ff77aeffdba7982d7c3aa4156a6f2781ef6b8fe63cac50d678e5afc91aca4ad16c4384d2b2727f74ddc4083da91a1e3590ac98ec9d2"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/nb-NO/firefox-47.0.1.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "dca52381e45b5c2d89f590971d830010a9ec1a2a513fe655ee93c3fbd980adcea78787701595a95402bdb660c2f3e0a489e001deba13798337493655798c713a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/nl/firefox-47.0.1.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "6ec01f8eb18384aadb5715a996c8410ffa94b801ee1f1b1ab43bdeb492e179e781e8b85acbeff4a25cb4fef847ce3e2335968458d9f6e47d046083264e91f6f7"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/nl/firefox-47.0.1.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "7d5840518312dd167d914a8f7fa5670fe17f9a6fc39ccd128e30f689005b35bd352d0602993713c3d05288f2b036829be8e08398d536e4aebf2341ae2290e633"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/nn-NO/firefox-47.0.1.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "a185f7592649a91214363cf2a0474b5895f33342c98cd4bdc48fafb0cc76310b2ba4f46575970d723c76b2ecfeba8e2b39d9671e6059a15bcb2565258096156c"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/nn-NO/firefox-47.0.1.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "7f8e7277bcbfbe5f40c161f1ebbeed86159c2b6205a5ea55cd8b6253fa6742bcfede11d4de6c1aba36e2b1e98f9c9a7b8e26f9aa35e1eaadc1d011636d429be3"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/or/firefox-47.0.1.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "a543a7d3f4e24364be7e4df65a81da82d955d1268a4cbce741ad7ddd5f4e9916573e271f02af1e92b123a4da2c7f312c17f6ce714e3057a1b204484ef12133d8"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/or/firefox-47.0.1.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "7672596470cd8f49f9c4558b05bd637af1650da729bc518681a8cde3ec785358121fa7ef209e123fca4b59df1a63878832bc32d2ff404b5d2a818b60ba10c15e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pa-IN/firefox-47.0.1.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "a99b60ae1eb479e31f838fd41d5de325c418762fdcfa5e0f3bc3d5da8df108d3b64ce5bfac0af09663007becf5327164db8dea0ea7a3876586cc43030a780199"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pa-IN/firefox-47.0.1.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "f0110b74842f924808f74979061151fec711d10a6005d2da2fbb8d46fa2a25ecd5a2c804e58c10a918efe570d4d67d05578b0245f526e1aede4bbc786e9f304e"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pl/firefox-47.0.1.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "7eaa2bad351429d76b476819a1529ed1609388968327382cc13df235a294f2e9fb14295341ff15fe3b2815ffd1c6c8978e2aa104a847fd2cb4adcf2ae3b0b974"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pl/firefox-47.0.1.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "a40e2c15cff0e7f7bff8a5c0bc4cf39df948a21bd37b34ffc93dd87e1f5256526a25526e457fcfd8d081bc872dc1bec13e67da3cf671b6a16dfa17850be4743c"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pt-BR/firefox-47.0.1.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "c9cd96e68fa2e1f73a49e71c287a25be8d45a8ebb56262e02c40ba5869fc58c7fc43a1f6958592bb377e7dd4064d64f5ebcbcb5cd3a9fe0a007c2da665f50a66"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pt-BR/firefox-47.0.1.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "1184751c1d1a0a9044f8df2d20aee7dfe332dc5f851802ebaf2c5c83fa2bcccfd913cb6e16d2baa449cff1b02aa18f828489914c0741a2ef2a46d54fefecc268"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/pt-PT/firefox-47.0.1.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "86538057ae91b1297acc11c9bf3f7d24ba1950edead89d4733f7c898cf53e3848054bf391a975f19766b69f4c56f576ca54e4b8da806db7416f3e3d91777c3c3"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/pt-PT/firefox-47.0.1.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "0a480c26e5dfe2bb9b536e122ae32e18a6dac999004493839cb506c1ad615e095c554d296f1a77bfccbbb86b58bcf549db83f7de51d02b68d1eb752b421f23cc"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/rm/firefox-47.0.1.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "751ffe931cd60296490c7164f49f61f4a51bac5210328a18d02261a07eb607e181b2bab4fa0b59d2df15334152386bf816a984840d2331b7e801171be9c90594"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/rm/firefox-47.0.1.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "3e526c9a1a876e5d2c548c9a68803dd11c04c8214e18eb09c0b1c3fb3833f64c8a3362db8083ac5de81c59268439b53effa3bf1c64807fafc874eb8ed9baf188"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ro/firefox-47.0.1.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "73cf6a18deafb7ba93fd60cba3ba0bb0191471f977c41bac11bf2fd6cc6f7fd7cf2ad125ac5cf168ef577d71dfb0e893e182f39be6ad186ddc642d87c40041a5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ro/firefox-47.0.1.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "b62c54b8694b4a662c1d336056d404a8d432ba0a3d4f2964b5c5acc0e39b668fd228105e1c4e307bfab1acfa5c3ce223db4229df01866cdbbc7c1ac95e70fe2c"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ru/firefox-47.0.1.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "6ebd3b3a1f3613905313129cde7cf113bdd777fd0f600496231ba813a95b04309b25016dd69891d31189a93ccad3f87b9c69d54d6219ad39dd38d1181b1f3102"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ru/firefox-47.0.1.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "539a22d13587cdcc21b6f76ff24ccfd1df98cbaaacac802aed46ba8f2bfed27cb2f3e5c146cbd2c3559aaff22297e692030b9612041a05a6bfca08f49bf0d2fb"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/si/firefox-47.0.1.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "bb0d1621f5b9af886fca0ea7cf7fd851d7c22d2d8f279a7b88e9bce98be33ad7b75d6a51ab47ea859802ed39b467815db60409285afaa0bbf4bb1ce6d590eabc"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/si/firefox-47.0.1.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "90337d193df7db41a1384856938bb62212952a80144dcc319a725a9b567ffd4deb7bb7af89b57891d3c17499ff466990e656edf7d0b017b8f4e0370aab445477"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sk/firefox-47.0.1.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "23a15e6ad5ce9b03c218be4e26e603a412de4d870d5f64b599ae511bfc66bf2cf04613cc06fc1a054d06b80435e284456c0b08e33f34d8c9482f5ca23da6ae62"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sk/firefox-47.0.1.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "a86cbed60f65e4ebb36c614d846fbb2515945112fd4f2482c3a63b49a62c3acb310f050dcbd57cc76a808c049eefd8f779d6aeea53362dd81798bb8d7177c86a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sl/firefox-47.0.1.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "8ae008f0077081ef40de3bf08c2de294231f41439a83d8a41a485f53e95ba3f4fc6ef03d6ac98e8848c3f3dad290978f1607d8c847f1622bd86b7d38cd0be730"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sl/firefox-47.0.1.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "34efb560c65329c7f3f6b341cc49ac4952f24e6e9b34e7f5bd45d98618a4d03ac89c6f62580223efd2d37db24a03f76a54381d4162f5430b887122bb56eb49d9"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/son/firefox-47.0.1.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "d3e5a25fbc4a786239a7ae543fefb7b7e3ecc34192c8326af915f18b9b08436656bf68faa4953a34bdc464e32305baecce800f91ef0152bb4b4a8323ab448f33"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/son/firefox-47.0.1.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "ffee5d1a23e91911fd1dedb5ecf24bfc6b1733fb582e64a5e07d4df4b7afd9a6c502a70ab3af6624b4594f5ddcd81bc8962ede5b693cc035a96a561389f6bfca"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sq/firefox-47.0.1.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "1cbaf8c32d1d3205cd85127839eed11b416903960c9e411b9adc71c42ba4add47acddd32a9217bb68f27b90d6765892edf2d356e21235c5bfd5cf69d1ee719f9"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sq/firefox-47.0.1.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "16d93961a53ecc3e1ae3480be9e34f2a22dec2bdab55dbd35d1ea79ecf2ee48f195380bd52efc7d39529601610793b75daadeeb54dd76c9a3702c786af25acdd"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sr/firefox-47.0.1.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "0b2c5234f1787cd972fad398dc270766fbc3015dc1bba29755e5316f207af9f5787d4aa41e96cffd2c9d31c57a5d1896e63fcd04e6235a4a6798469e738fa10d"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sr/firefox-47.0.1.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "e7c7e7ff7fd81ca86f45997faed7244e4d807c3e5ad7ed66d6feb38c3e9173eaf136bd34af690ce28534f0c531c7f1d11595ec6502dfa42778cc19dee4334c49"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/sv-SE/firefox-47.0.1.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "dffb94b0ddb4b9d2effba3894b408c9f191f2079dc4b47e214347a235c9bf1adf77e520465691d14a274c3f3344c7f8b7d41965051d506728347e0af1117ad27"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/sv-SE/firefox-47.0.1.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "b601906d28f071c6beb3dbd6b37fa68f50809c9c47c9db69d631127ccc7b784e7d3b278aea6de060b34d83b6c78137da32b77f8e17ed199c3213b89dd9391264"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/ta/firefox-47.0.1.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "1a496470ef8e0899bfce66b41490f54d4d32776eaf60aca8725c4732512f1d3befb2e1fc3b942ebea95fe2359509c43d41649e5f90498264b8e02a3352244260"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/ta/firefox-47.0.1.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "00e6dbc43ad3c77693903fe534722094826637698df691b266eb801b27cd5e63502c21ca3e34ff939a7645a1f75d36fce6154626019eb96bc73cc39ab845c952"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/te/firefox-47.0.1.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "70ed539571cadf241f819b68ff24829db32f56287aadab31656fdf66c0ed94ccc6cc11b6cef6e2e963203cda47af2c6032db6e5689c37aaaf495b1e4fa970207"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/te/firefox-47.0.1.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "d491acd4635ab9b22f76531740c7ee7a85832678aef9ed646e75f56755c02538440adeea71e9ca5a7a5e11f3f2f6941c3c4c1e47380547179f63baaf6c20ad07"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/th/firefox-47.0.1.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "0414f74c6266fc204f2741b6860f7919c957364bd56ccc2cec5ef4b9c4be812c554ab584e6ce53387e6b7a18ad02991a44d9507a16da59a4aabfd44e7fb5b754"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/th/firefox-47.0.1.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "2952cceaecdd4013882150e8158607639e4ab2cffdef563d4fd1a015c41f1eff6c5ac22c0b9301a05ab6f9fef9659d54916275d5a50d97ad43bf69f10da7b3c8"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/tr/firefox-47.0.1.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "c5c6273bae2b9a46108a433af3a85b5cbbba4cd3154ee124ccc49f46c4a76264836a76d1b2da4b1064e9a913cc9fe461911c53e44f40343c5f780be04da932e5"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/tr/firefox-47.0.1.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "f0b5bef1ea4b948d699a79d902055d5b31afbe5c4f1814d98cadef1ca820ce39212ec009f68d875860a48942e9d797bda88eec4f6ed591dd8b3b260e04170974"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/uk/firefox-47.0.1.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "3a069ba914716ce122c4a89612988708d811b9350d333aab203dde212527c0e0cc86ec4781e6aa23f40b77f2266f76eca366cf355651870f43e180b97aa25c43"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/uk/firefox-47.0.1.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "db7931aa3f1d150e4b5b8c87b9d069df4a515fb2aa5e250b8f8a1bae0d8fd9a210ae949df056c47e3c88e8faf28f2571311ce2d6f179e3365720b42f1335b546"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/uz/firefox-47.0.1.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "110a82749e187f39d77f63b16ad515218e5512e5974916e4145e625a40d797e23fdbb5d110a23f061448cfc3d3c597858636c9304e941a34c68368f749c3c900"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/uz/firefox-47.0.1.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "1dbf94cef034449e8d1342822384bf1761dc61748e2d876aec1ac628dd161f92b62da832fe397b2fe4f8a1b82f9adf1c3690f26e07ee3e48c6299f95969533cf"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/vi/firefox-47.0.1.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "af97e1dcfc9bfbdce95a5cd35025b2540ad928d3238863471116e071a51b354b7818577bc3e7427c513e7b335bc1510605ba3ad1a37221389de7c7fedf6e2103"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/vi/firefox-47.0.1.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "cc938935395e66ef721fdbb8c8b781ef648b5419393ed1687a116a4d9ae12dd18f2edbc8287235504aa6782bbd6a41f9f5dd89c9c712ed4980fb9fa44f46ef38"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/xh/firefox-47.0.1.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "a76dbac054cdb7f5c194766dc54f215de4cb4cca4aacd7c883e0e3632b9dfc18cc25d7a54788e213bc65c894dd26ca9b863199b55b649133f93da9fed9a58fe4"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/xh/firefox-47.0.1.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "cfd8bbb81637c19464ec34788254740e999c13bc8a64b4289b0e1c64f76d711a5a5a8380995271f309444032739066f06334da2f81b6ca2b2be33ff55d3ff402"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/zh-CN/firefox-47.0.1.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "d11637b0c28aa1c45b315322ff12392e133aebe21f435564da278b9e301f0c8515ccb721df2bd55c175c48c3e24934837abbba4b84c9fa659b7a58db1da68f04"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/zh-CN/firefox-47.0.1.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "27a06d87f23eaeec170d1ea7f3df636198bfd4787001e178948fe9b8a3f1aafff3be59b9d01ed5b5851902b550601f061e923a4cda3a972f0ac68928cab28577"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-i686/zh-TW/firefox-47.0.1.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "7c6ef5592b273749ccbf7b37c09984b11722beb7f49d4ed25555b84f0521e0dbac5197c7642ac508a21a1a40c5578dcfb49310858819875cc9407c85426d599a"; }
- { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/zh-TW/firefox-47.0.1.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "9ccce84a292144f3758190ff2858c077d1e7ec6d49ff5e1efb404b8dfb3bcfebf96eab15d0ec32325e4d96d94f4c6bcc67f4e43dd22af418b822d82a2afaf6f1"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ach/firefox-48.0.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "57ecf646fdb81b48be76e79d9ca514d2d1bdf76cc5e577545be6bafce466938e14a508819e69e1a28905a278ccf48c2f958f8e404f312f90e63cbe9317b39314"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ach/firefox-48.0.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "ebb5273a458eeb62a48575ece8c1c20f760ff0c015073e13d4103d3f2d9db5ffa085df6e59b6a651c39a743852ec0fff4455e9d9cc8c0dcff1554a948726de47"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/af/firefox-48.0.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "efbd8aa1118a76d37e79970928c622f382eacb10441fce578ad0d782e7c900b22c197f1b70057c1142fe7c7eaf4bdffb7af9f9662e9cf7b32123a332278c5be8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/af/firefox-48.0.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "ee623538bf68b42961fa921d03b69181ed901f55fb853bf435afc5de7942ffde3bc4bb70a4baaa613b7d679002be2e11f3405eeabf2a0d8cf9338c4a4354e841"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/an/firefox-48.0.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "73591c7ce176834de04c8d8ed45239502199b3b34b0884dc87a56580e8548de2e0c3b2a9cb7d03c463ee6022bd3c2c8e08cb40697ecbf1368e276658f3fe3d68"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/an/firefox-48.0.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "489d88b99ff4adc9edb919f5cefca944577391d19c9b10797d7447db5468a43e143234bdfc884c8d98c4ac715b8c29388aebc9efe3e79ec68694e33ff1f21987"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ar/firefox-48.0.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "606bb3823834020e6110ef2cae2732ba8e4b2a3f38450a38ed23355d0f16dba7c98ef29df8b6fb6e76fd12e99b4ee97dc066cf74b3156e99af7c0929d9b2af0f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ar/firefox-48.0.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "af7970892dba0afb677c478ee296cd4ddb75064f229d13f74f6102d45ab7af819d911eafc84cd4351e3eb50bc47e69ac7a3c204b7e96cbb946fc13f46fc1a4af"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/as/firefox-48.0.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "cfd631ca2893eee802a9bc82dee3d8d348fe48010080fc82521dc61a6efe1271513f0f1b9a0cf2866050fb1ba3d41ee9a7ad7283b3e669bf8537d8cb38bfbbc2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/as/firefox-48.0.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "ff94b9f687da69ca541f03e720dab47dc805e2ae86ab297615195302cfdef13bff294bd9f0a3bc802cca9f855e83c6f346833847d7dddcd4f1cc19404dabd752"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ast/firefox-48.0.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "3ec1c5a9c73cca3d637cd6045a1110c729cd1ee83d5b4e7452ba45cfb0e01cdc1f87bca870ca0af595769607154364bc03bf88ab99067f1c1be82fd8584a439c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ast/firefox-48.0.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "84a6961c164cb6279ecfda6bf07f81ee40fe59636bcda0970bb20880d0337447fbc7fe12699627d3544b9f748426c3bf5b9ac2168ad9951c5a04a63a54acfc73"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/az/firefox-48.0.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "95b2228952c52d1daf5d34813fc9ab83261899e8f43208b06146c44cf969167c63f71cb1846386d2d657cfcd283c398ee3363a28e0b8febee1d7704c392b6064"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/az/firefox-48.0.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "d87b848645c779a1ce5c989a95dcf9a4ebdf305aaec5cd16ecded438a5f0a0e69ef1d6285a4c9fc9f2c9da0bbb26e2b79c24bd27b1d3a1b3df4ba18e2de4b465"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/be/firefox-48.0.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "9dbf3497d52dd7e4260aee089fa77d888db7f97f6512c53a410a7440683e58759686f543ca5052c8a1fbd6372c924e83800299fa0e9454c74ff4a03cf29e8fca"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/be/firefox-48.0.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "a9fdc05f4cc123dfe672cf8b31cd47f2b25f0f1685d09839a0e86709994e31851ad78bae36f6156f273cb8e94c01319be08bfd4e5ee931a88ddbe40b06336b63"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/bg/firefox-48.0.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "46df725d41d0229af74205e3e0afa16b89841a0161902cbdf69faa065067db387fe6480ca80e10d3f805c98301d576e279b3405313bf10146a78085b2c05dd7c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/bg/firefox-48.0.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "fbe69e3b48f7c7baba07b23fce7cf266258851427b2bbf8c21b7a870177a499574ae937ce88270abebe3030a289bce236ab1d4f806a223a309e9ced9d5549de8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/bn-BD/firefox-48.0.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "c82e3f2192be0e8aca9f0cdd8eb06e7c8b193c151c4ae52a5ffa1908c62382de9938ca97da44d10cdcb8dd98bb17362887811df41496a389c49e20dc42229f96"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/bn-BD/firefox-48.0.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "14dc923c5db1b49a1ca98eda1e45d5978f7a0e034bb26462da25ab7b160303f3f546e4aaeac3b712fa1a7dc8c70433ad09d11ab7493234bf5bd1ef73eede930f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/bn-IN/firefox-48.0.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "9e86a9dcbfd1516a134670f17c2734c9624daeb28a0eebb9e81f40f7a1f49ef8d7b9ecbe501beac1e5cd895502cebeae0dde9dfcb91758b5dba5ee42cc061cc4"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/bn-IN/firefox-48.0.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "4cee2c673cd4dc14c33849e93c0bd2aead14c631940aee255fd75391b5588610cdd79c71e85264981d44e06892d1ec99bd484e72e7e56d207db9911cc5f3dcba"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/br/firefox-48.0.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "5f420addb318b9c5fa11ca83f837758b49e2358448347cbfc13b2cf644f4f5bafebadfbebe5522d790d5a03d4c35406bb49268e40d62161288f0592235c0aa6c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/br/firefox-48.0.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "0dc0bec866a3d4471e3b1928a9bb32549bfe09b9c77d28406cc8f8c9e5d6064581c148701e4e650b28e1b95ba6db85c27de7625ddd39caf1b92e2d6d1a357889"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/bs/firefox-48.0.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "0e2563650a9cf9ed48928e49c2cd9aa9c295106ae5147a2ec87e5fbf28acf303da071e9f586315159db72e93cb7611a3eb8607da1dcda9c2645b9af19faaec31"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/bs/firefox-48.0.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "4324112ba0112db3dddd7cec05ae3965a7b656f7e0e05e28a00b127dc0885814064219c1c2f9bce9dce0a0237a4f0def79d6cdc15a8f46c23efde1c34b89cc91"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ca/firefox-48.0.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "3977d2c8b5a05659f5c160e2ea1a25729ce4565821a67d4da9649fd57c1451f1b136a147faaf9987c719518028dc2be14df1edbef083220c9de40a377612f9f8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ca/firefox-48.0.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "e9a3ad240e7d6fbcf7b54e350c297b40cb224e75390919c737b2380c5af7ddc93834469ee5dc4c93115fda44ee97b21d01b002f35f69630dc667fba8333620bc"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/cak/firefox-48.0.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "ab7b9d41f3686ae77c72c332e04775785741a2b81a3a8b8ca2059dae3a27aad26585a59d99e5c99486d75b7c8c5571a5c9524ec142e7f75f29ecc34c824d5d92"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/cak/firefox-48.0.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "be80d95ebfa0d79869257a788aa59cc88849bfe14ccd148bb46caa6db32046a62ffd17d36c6451caa0b4f500153e7f607616f4313fb42c0576e669bacc6b117c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/cs/firefox-48.0.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "8c0873fcea5ff7aa6f0a78fb6cbe59f7514ad5b0e64ac0d10f03cf3747ef3b6b1cfce01d12f0e11d5f3ed7a7b248e0dd5250850edd4a3a8c8d5f692b6fdc9d75"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/cs/firefox-48.0.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "fe5d78ce15f041ab006f5d3b445deb26acd2c5e5d079f6789a0e5f56c2d9077b43595f1dddea3b03d4d7a2fc5565b5da4cc8d138b541d88a31475eb5ce219d68"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/cy/firefox-48.0.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "0c66565a03806c33ecb92c9c7106122283213b5b5cd171b93337a14d446cf0d4d36d298680d286d57c4f09f532f5794a67a426ff7e2d7044c65800d1a6e2ef81"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/cy/firefox-48.0.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "2c52f2e204a86afe6f1016fde6aa13cd6b34fc22f7a1943e81b7e6ec0e2136c51156b57bbf12a1cee95aad66d415356cbbd47c2aa94d944672169526b8f1bd94"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/da/firefox-48.0.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "fc0e9ba7db425e4a209022487f796f646ba82e4ba9e06153f094037ccb4a959b6fe2ceeadee96b906eb0cb8eab72e34b29f6d024cf34d93cf4e54dc16fccef9c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/da/firefox-48.0.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "a6a4c67f9bfe80ff83f99e459c49c58635739da0967f9e8bb1a37568084c4c2f83057e0daa969d6fb844d93994107ea29982f515217a18e79ac8b04c766a0fd0"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/de/firefox-48.0.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "40f912539b1bbaf1291270b109d455de1f080a68490950fc9acfb675179d37e75d3cd09cc25ed01bd9f0d970b6d988caaf7d3510a00bbe696139e68dda1aea25"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/de/firefox-48.0.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "b41cbe809060c2fbaf19688f450532ef71f8d7d995e382aedeaf394b00742d8256aca9560f069f60efe7dfb24d05f884fd7160e3cfa9a15437124b8c4de38786"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/dsb/firefox-48.0.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "cbbfedfe185cced2644ed6aa34ae754f7c79a18fae8e6b2846d7a1a9b3b141f95def6d7b9c2b2c8b58c0b1e777d36291164866dbf43e93e3ffc8c1e319aa3ca6"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/dsb/firefox-48.0.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "dbef6f6acd1e5cff574e9f456fe0d7ab3c2982d90c15ffcc1195e693357849ffe01091b2be997203d56a580774bba71334635c1f5a0aed57ebb7f7ca6c95b879"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/el/firefox-48.0.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "7cd345924f3113d22c338d1bde94c9ec3157531c38aebee0048e81258fe60e600b11449e1db78fca15073636c2fdd120e90f12c3eee461a43718c8de0e89e646"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/el/firefox-48.0.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "47a500294df276b752d6728b47dff65aa34cfd87ec861d55357ddcf2386e53c646c24ab7e29f70e547986ac6311b2961bcd245a51333c5c4d46912d0bf84547c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/en-GB/firefox-48.0.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "2ee0c7b3653c18a4c26cb78e6b579e0f22cba9dd0a6d54dc0028df6635a9ac912eb8c8958af5ffb4e572ae45b54891a19efd7f6efb407027130a3e444e435968"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/en-GB/firefox-48.0.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "8ea361476983e9677ad6d9b5c833f114566c528b72158d18664ee66dfe5c00bbcec1ab8c5b1293755348282b4e86ba3f033a86aad3ce943a695ace06a43bd252"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/en-US/firefox-48.0.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "b7d35e0664012ed45e8256bde69ce6c64a984160185082e3caea8762bf81adde8eb9caa9b4b83ba79083217fb202642face8c660623a87002bd61bbf9092ff7a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/en-US/firefox-48.0.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "1c66c802af9ca1a665074ebbde5ee349b14cbe5a7e911f42c71334ebd15fadfacd33759b8bac92f56b117a66661c7602aa7c5bcd21e1e186f6d669d5d7957bc8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/en-ZA/firefox-48.0.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "2db66b79129bff445e9a5fb6ae982453b5fc2b18f3c9b017afb739ec774465f098e11ef02b8d00049a5ca3289acd117bc076d578934a215626f246efdf41c6d3"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/en-ZA/firefox-48.0.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "1473001924b17825893f0e0d9a65bff0be03369e6b07e9ad51a2d0c6afb4c4faeece06aadd53ffaa941de364c54708c483a21088a4c6afaffa24291ac97c679c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/eo/firefox-48.0.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "64b8b4e1bd0afcde46fc431ebc7579813b16554ac5a55b06835eb58b317b93590d34a3925195d4cd93aee04c3c86c99242a9a4454572141100c4873f1ee9d2a7"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/eo/firefox-48.0.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "414f7411db27fe462d030e937d0549a35f735747b736b713192887947f0492734ff2bdd1654706e9eda15410b2b240f3d747f3c8905a31ad5c72a73b621ef0c2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/es-AR/firefox-48.0.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "f25942436f05c0a1029a5f9921e9cc7a0d0a40c57a0742207c336e73ca382b881319c67961b240924266650731b806c7f07ff67937d503d8e94e43f2387cf7da"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/es-AR/firefox-48.0.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "c4ccbaf8741e339bdf0faba2a95d6e481bc10408064248a2b27e447637d53e3f866ee671d61d8d0663b6dab48553b3ab1b0680fa37dfe13ffcb5119fd3996b72"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/es-CL/firefox-48.0.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "b77df1944974a2bde0482c0fb2d36f9e3d38d09b5182faf6c008174525fa598f52910547fb1ea7e692968407279dfef9a576e1748e0d6de7382937e4258b7d41"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/es-CL/firefox-48.0.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "6d62e95696d8ab3a227fd176dfc4555aa37482585d3f575cf6cc62e2573bf0085c2ba3ca64dd597e68ffb0abca9cb8e11bbd6040a7e5df2e2371328a029e298e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/es-ES/firefox-48.0.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "7064370188a13d7918925ca727af1291d009651dd562af17e461cccc59f5f62df6a29f3919be847f968004421ebcdbc0ab67b32d994079b55528894733e1079b"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/es-ES/firefox-48.0.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "7562fc8cf2e8a80c59ce3893b01fe56b62ed81ccc04703a6e1d8da372e15198626a16378697e71079ecb129bef9ea70eebcfca1da8a8b4567ee96e9fdc8ac83a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/es-MX/firefox-48.0.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "cdc43dae9bb8cb5e7e5816fde84ec6a4ca072bf3e594dc3cc0f77bc4fd2cb3a28bd5950dbfe2d1864ffd313f304beb5c1173f53e560fd4ededdc249e276f0dd1"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/es-MX/firefox-48.0.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "d0a118ea015d709191ac654a22806186a3e62ee540c6efceb6a05d9cfa8fee9a611d2f3f19430988ade7a77ea02fe62383574d41b18c4a8d2925a5c09b65a1c4"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/et/firefox-48.0.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "3218dc25082bb1e6047445542e902934346c104843ef10efaed5c283372734662737829a3edc7ba7025558566b7b0e4485f02ecd24802c781bb8037f92478deb"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/et/firefox-48.0.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "81c14a517b59dcba904950559ba6388c75fc39bc498dae4106dee555a3f1d737f9a258327f3130c85dc6c6b52e17b741056b4095dae7cc8cf8dd612965ad7f99"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/eu/firefox-48.0.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "31c0c182f84468aa15b03410b1cdfbba35b7e74474d506e9bc32168941e210e93fe441de9df77e48fe9996c77d45255a513e6acfb733e179fbbda0a75318b7a7"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/eu/firefox-48.0.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "5bf898af06d2b9fd6be194adf4453f8c271cd2c2d3b166e788427d4edc45f814787265956120619a5347df7c2fb5a7002954eb70d9745143e540055a7105a05e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/fa/firefox-48.0.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "53a86ce6b5a0312b1380fc17bf7eaa879f266307934bfc46cfa18bd385021f875fa306836a796ed2777271758f2a0201b385ba8aaef076e6a54c94cf24fe03bf"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/fa/firefox-48.0.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "a5a961f0a93be6fcbdd7fcfdf356b937b946974a96876ac9cc1e9ff60f54a4f61634d4c4b9cce5b979d4fa1b6084f4f68b2265f503c70fa1b3a5f4392ee0e3d5"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ff/firefox-48.0.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "4b2dd232f326efd720fce08a91222476cf10f33b90ecc9b43cba715ede44b3d00dbf05cb54616db4a32bcfa8c5b593e2981a69454a015e8e9baad927ad5162d9"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ff/firefox-48.0.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "23d4b17bddfb62f947a4b07eed55dfbe13232f98d0197e5ce06bd6e53758f3af172e878f47031a1b0a551b68bbc0cb684e614f8b217523a1b7d7485da8df4a57"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/fi/firefox-48.0.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "d68b48a97fbc3bfa00cca45ec48bc08f0c736c1d4ca04cddb9519d5fbeeadf88da1602750e4d58c46e258eeb83e32e740f539f556776ab05f01f6ddd2fb2630d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/fi/firefox-48.0.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "1ad0df0c9f4c3c6e179c5df2fc982fdb8878038fe85f622042613f80a4556d8791d82569ed8ee03237936564987b3a21e2f8e9d2dc40c676ffbae2aecb93f032"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/fr/firefox-48.0.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "725abc4ab51cdf3be84958de058350341a8d27a484ff3d2a021dfee018b1419f560c8920f18b6d6d592bac82b89556a662d244e492634248c970a3630e4fea8b"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/fr/firefox-48.0.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "076a780821a4de51d38a51254c5f53c91545f48b72ab8b869500cd1afae7d113329889c75766de3061cd423f28917c3125991a36bf97c515b1bc473aa89dc7f2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/fy-NL/firefox-48.0.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "bae1c596a488af768865942129e906adec9fab6c79be6f9b09a21a8dc5db7d36f38299fb19126b03d9158618d9cff62fa2143fe524aa068ca58f51af223a7104"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/fy-NL/firefox-48.0.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "077be175984e50d5ba64b62576c9632a6c9924af99e330eb029ad8a6bc9d2c54f5d505771b0d8fcd1aeccea35624b50318eaf921b34b8e86cde592ab3bc4a449"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ga-IE/firefox-48.0.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "861f9e61f9c355628fd923d1167e4db71697526ea87c5280cc976056e27505401b407e3348294177cd77204fdd43ee6497c8fcf89ec7e9215a09acaeb3d6d328"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ga-IE/firefox-48.0.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "2d945375532a35b53f8416129010d6cd7d2c3bbba0fd44dd647a61ada38637b044daaf51189de4c7e04c440254c4fba88aba97fb20d2ee4ad5bc55e1ce61da6d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/gd/firefox-48.0.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "5a08ccb0b2c3fb9886cac45e69c7641053ef18d652fdd4528f5ef06b9c51e412fae4e6301c078df314de8dccc4ffd87907571906f4df9c382492ef1d94c6d6ef"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/gd/firefox-48.0.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "66e643754812be465d3884758d1e2db405486633e08aff79ef7dc142e70183eab1ba357794ffd3920392e0e80c3b9729590e8c4e803c5c030e0aee8a758eac84"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/gl/firefox-48.0.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "3cceaab829a2f80d0b329a4a035b34fe67653ea6637272f2ffc2235d4bcc491096846e927773ec7a9bbd53f987b3c1cee982c7e8c9cf900883e8b15393b36023"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/gl/firefox-48.0.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "65a35cf89bdc168cfe1e3f14c1aa799ee0a728c9d4b34e7f6a99bb20a88da872de3df3df6b77094035c6baa4487a3a1583591d60741f125cf14d85ea20b55545"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/gn/firefox-48.0.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "b7164178349bdccbccad6e32fcac29f5c3acb512f3e8e1db57f7c7cbb8e6950ec5e8985779116eafe6b237d39d8ba36b3adeaa70813ff3a3a978618808765740"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/gn/firefox-48.0.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "c0526f1aca929a77beec1b54393751d3b985753843239892818da4727e3ccf0d3a94e14114e842c7dcb99d2fa7421f3821e3a9f2aa33c6944d62e27963c4154a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/gu-IN/firefox-48.0.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "ec0675aee25136317c9e9f861947e3fc8fe3bafacda7169590398ed5abe125b0ee7104bfb56988ea7312039418e356a4255e98735167a3bbc4def7b2f326e9ef"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/gu-IN/firefox-48.0.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "4d7b83c829dc8fa4eeac364880b90dae4a9a7d33036c92e72d358b5e235c36ccd6b4cc578f786b6f28ea49b665b0ae611046b5c05ecde8bfa89b0396d43b4791"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/he/firefox-48.0.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "5f2bb563531130410e67735146a62dcdd8646e401ad8fd468b1bea56de36e1e1a248d3580c2408b6f30a3cabe58a69d13525413a2b7cdc926722f2434408797c"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/he/firefox-48.0.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "9958faec273e584efbb438791af10971e0e795c33850000f967b060eb73f898ae73a780b2c6707772a233d2f6aff8d664d4ecd327b959210ceefe5efbc4110a2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/hi-IN/firefox-48.0.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "48ca543b4d3dec309bd443a9cda5a9f6fffe2d467a665eb08454cee0914387aaff863629cb156ed92d98aa878f804454cf4af6f5bcb04d4d4d1221c4854ec554"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/hi-IN/firefox-48.0.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "672ec5bb5154c1edddbf6f0586065482bd8a54c5b8b8bb9678eec1825fa10f5ab9142437b96beef0b865740d6426ae4da9122549df1e242cdfdb2a86abbe9d3e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/hr/firefox-48.0.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "68dd6692de0d72c41dd058a505c508cf365ec688850be7e87aea7b99164e8e5eb3eea547fa54753c76ff6b8fbede44c73f047cac3f4cee700617da55329a5e84"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/hr/firefox-48.0.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "146dd255b89fcb616032d04dbe0d4a4e8b3098cb79758b4adebd45ec83c153832fc332486b3cd11e771284d14e2c0eabd407373abc5466d7ae7a081368ce868d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/hsb/firefox-48.0.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "768ea8eb848e26664af47c3b93e6906d2f81a1890b43801f4e00a90be321b9ab66827a082c2f42182532722c913149bb4d1d40af3c9fe0d2ba691447f41552b8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/hsb/firefox-48.0.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "869997277e071e3eb654479c497792640d836cb96a20c9a1974f9915b616d5bcac8dd635c3a9509b365c62719941b7751a5d87e3874ca095926b7c80596c7cec"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/hu/firefox-48.0.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "9cfe20df539646f445d9edc0bf30b00cff660875bfb334abb6a05658dd420869ca34114d5c5c16c183afdc58dda5075b08a4e93d789c3e3c0d661c4c5a3a58b8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/hu/firefox-48.0.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "f7d5e6802f2389aa62b4448e50468e2fd6eb24cc4044b91f33fe47d83eda14f6b27a2024c7d77be7282d568b177ecb3a563b4123ab9cab6ab6aa275ddab2567b"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/hy-AM/firefox-48.0.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "d449ffe339181ed8fbeeb91074d5a04ef4b81ad92b2203d48c6d7f3a7eda22922f0a946310b1e810b384b4c05fb434fd2067537d9d46561490905468e9fc327f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/hy-AM/firefox-48.0.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "2ea54b459c15782a61fd1b56d66278d2ee76a91bfbaf5fede2ef6adb81255bab7401f587ed33b827d4a04272bbbd222f942e6bb34d8463940cb580ad34c08d10"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/id/firefox-48.0.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "5c9f65c9cee48477f778891abd6a943ead2f08e0f66e9270e73e74cb5f2a281b2a061e06c0eba3d134b868d7747d50a0d5a6cd4b4f3cc7690776405f1204140d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/id/firefox-48.0.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "67824631456a2f92c073e7a11b4e6bdbd802611a8dec857db264ea85aac63e84d5e34e44a4470796fd7b02afc62912b1d8deac3cf28dad7e11ca5db2c98d7668"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/is/firefox-48.0.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "f49a88c16729605553806839645bd85a8ffb82b903fc2a64928319c849ab57edc300ade3d2831ae30a258e601f34b9cd356ccf8886d0ca5444781b9cfd6dbd83"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/is/firefox-48.0.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "69422bbce98fd6974d3ba6f3f1e88d552381cbe346ce726ab31891f612999bed2a4fa20723bf858736708410e43e4c68962fbaa17f675076cf2720135ddeaebd"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/it/firefox-48.0.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "6a421e08e72d29223a8440ebbe6965866a6bfb3b982ebf2012a314b8132bd21823a00e65e974f057df390b874d90a6f6428d01d00fe594c33b57e533b2db2bc5"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/it/firefox-48.0.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "f321b707772adcb15cadf4c13126cd3e5db40124acb012d2188a0e07ab5b184a9a2b43ee2474146c0d48415f3c160d69a3e82fe19688eb71b225ea70c5531f09"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ja/firefox-48.0.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "73a8bd6e32c728246ef8f14a916f7012f2b758ef5d154a898fa0975a723e767ea10d5ca0dc2deacb73741ac48ea3b6007bf7e0b5872143162ad46d452dc689fc"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ja/firefox-48.0.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "d61fd9a87e158f27aa82f659d84292a3aefe8df57938b677be94258505259a110d8e3dc051012031f91adb41f34764b759306e362fc1d6be0181588c2301cde6"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/kk/firefox-48.0.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "51ac197ee684f770970a5973289255ef62ebcdbe59ba2197135e326fc0885b5891b7616b3755a6812bee4c23b1e2fbf31f336113cb3da9b6d1bf12bcbee7b2a0"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/kk/firefox-48.0.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "e437542b5f4922c35fd0a3c3d8b0199115d12b1cac4db07da46d0e6de7106d6222cfec0d73af481ee7e754486af3a795174a28d8c545360a7602a2b9d2123bbe"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/km/firefox-48.0.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "d7dae5e1ca04aebe076c291ce54d7b626109f3e27e1018576cdf09607968b5e6ef4f05c32ea004a5b3cf5f0c297a436f4091ca88a1f7c0891f3da7d2e60d4aaf"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/km/firefox-48.0.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "49fb1bcf8e56692227afbfab13d7edd31ee5aaaad60f4400ac54d66d4be5acca5b77ab4e18f9476c87086f482c586f607671b065be0196da786e9fa0e4a6b5f2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/kn/firefox-48.0.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "724ffda3f3b69c6539f07ad55763fc34f61b3fa45b2b141c7d7d7ae1ac421ee8f27226f6d9cbab7bc36a1c2ae246020f9ee8ea894e9262d019cbf8a1c3a391b9"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/kn/firefox-48.0.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "ab757a4a3d2c916ea588b6701cce2fc63e44d926138ce6c95dc4138169a0db49205d243361bca045ef01632e6989743330b351e8448b2e2b60d99a308598b0d8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ko/firefox-48.0.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "9bcbf38241a52bbf374c0f8c78acfdff5ca2ae773234ae9b5d4e5019f9d499310e329e87c8d8430712f74256fc9f68a3687af4d148fb5998ca61c0b4772e8f8e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ko/firefox-48.0.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "01f32d8f63a40d3d57b298219d889746fb340f631d62ce14a6d85632c7e9c4c3a2da4c0cc1fb738289040addf2e0d2d2e823581d67928b3c4f82ed9b05aa95fa"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/lij/firefox-48.0.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "3e168e0ed92f982f9215317a7fa8d088abefa5a3820cb7e61f16099f5111b654d199960f2dc23f59816d6b6992703aaa36bfc61316e82ba07b6fec5b6abd77f6"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/lij/firefox-48.0.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "a79e2a75c7e94bddb9d44708f68f0462bd9a7d2926c2e9334d6e3d879f083dcc5faf716ac3b0f1acf522f29dc20e44ac28a3c6f7667f7a8402c215fb5da00f1f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/lt/firefox-48.0.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "22e060b0fdddfafde0ade9d985af9a2fc5097b226104bdd30c8d0c06da7c44a663384893eea67c95363124c91d5e2ff395162d0a504d54ed3ef36656e0de17fc"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/lt/firefox-48.0.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "e8648f3e0b4b3b93b936f5b5343ab2fb397cce8f9829108011de0b7332246dcdb904374530a20d40a78e5d1ed264bba7809b79afeb9d71f61a17e963d5b4e03d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/lv/firefox-48.0.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "133f9da47452b1f444674d02300a20295c67d35d44f722d082c087d78cc2d91bfab1efeb2a9a30e2566b182dcbe64edcfe899aa6bb86d40f4be18ff27e5649d2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/lv/firefox-48.0.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "2a1ba8da43090bbd17eee75d3b08910e5a416c044ddecbe831fd63d8e9fc7a6393ce944ef4e698c008025ce4e489e90c7a26fc90f823d06b59c48a06ac5e9712"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/mai/firefox-48.0.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "66d7f8da81ed7e430633727904b69ef2e9cda8efc51e1335a49c6ca633d16e2f8412ca5eb2c7b4e1c52006c0c2687ab9ff7e6b822ebc5da49db3288419d0804d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/mai/firefox-48.0.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "5f5109907b04a4e1ca195cce93dc1350d2a62a6308ab1f1dbc3c5427765376af02147ec08478af21fae9ee925900d820015727f47eb2654fc54b17ff4eada2a4"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/mk/firefox-48.0.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "50989bd953deddd04da3da12b42c869db68785decc4336ac4f5ed889524ed5630f28b71cef8198e2c5a5194f8bbde825996bcbe636c03609ed835a9a2e21109a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/mk/firefox-48.0.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "8d94075342c67c02974d101d7537b07237662590df31feebdd81b672f09593fcf5b4f306bb5eb083943866872a78a1d02f7669844a0b2746fa9d04487d8e09e9"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ml/firefox-48.0.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "7176048a887e7847487e82fe3c38d585d05b415be60b7f4ad102e97f6294034da57d4d6094d7c9f0f5edc977133055e2e02819d7ea2b56e80d5c85e8c5f7ac9a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ml/firefox-48.0.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "ef2db6b3e924fee6210ea1b52fbfdf9087d32a56c7238297f38e1e5ef9e6f6a0b5cb27a741224f8f07540e6c469d231b11c366c10c70d8e9aef9695ca5d50dd3"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/mr/firefox-48.0.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "0500bcf8b6b2ab8abacc73eea7f1c268b4e65f7fc6b86c92eda6a941051c84d1fda4060590e3c8dd6e0e176670cad098efe07389ad42151e3901b121dfb460f5"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/mr/firefox-48.0.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "4518cba5968661dffd5bf7b6d0084cf6eee3e4b654ab63af928a6c29ad8a7cf077328f3e52c2331e965939571fa0a8ddbd538c4aedd8edd4f0c213e1104fefa4"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ms/firefox-48.0.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "8fab40915ddde779e1c3589335c32f3d0054b73052a6659cfd45a733f0a05f05f3ab5d776588514e648848ab75f8d36ee911296b5ea701e8cda40e10a214f0c2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ms/firefox-48.0.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "94b3fffb74c8113caf423a77ef9f24a93513e08c90e242acd581d4b4fa2e23a4acb1295e1abf67dcf70ae034455c32e19b0e4ddc3f32547eca736fcdace01170"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/nb-NO/firefox-48.0.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "c5d2cdfab387e5f3380be0132ea52768e4d08a5da6f1c8b101920817166d1cdb077a1138e1ea5c2e938975fc2c745e8b0707221cf9cf8c942f45a07d5496674e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/nb-NO/firefox-48.0.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "4ecc38821e83b8170a410dc994738806027806fdf69298b51c0387b234e58ddf74801014da50cf3f7531b793968512ed4d2bc659044b82b65574cef154f99dfe"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/nl/firefox-48.0.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "e5baa58c1f0e92635220f9b07d1bc10b3439461fefe33a03fc85e3535e64ef20c06e2aa2ac7bb3cddcd15ff9c9aa40dec7ac9ee4e7cc11069503287210e745aa"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/nl/firefox-48.0.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "ceae5e1b50de221e858d89053f38c5bbc8eac1875136401b0c5188017d3fa35ad73faf2c1f45b6175a30ab0a9b47ed8f3c19f21a3abe1a07e1e6f2a88160cd61"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/nn-NO/firefox-48.0.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "89bcd86969fe09cd86a2694a4d93abaa32a1b4fe0f74e6d3d1ef66346af86ab77b85fd9c94196835220c2caa1af4bd52d11a9f2394a1c9347d6ddd72d93f43a7"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/nn-NO/firefox-48.0.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "0e9d74c2c4d05740c19dbfe660c9bf116a3f328c5e35b85dcf317f1a77b52d224bfd84e4a82718bbf44323dfdad4ed6955c7b18f2b6000cd6af47abeb4b93cb2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/or/firefox-48.0.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "3e797ba54bdb312d468dbc528eb23bc8b40489b061d8597262fd5a8b4689ee814ece54373dc823e378d73abc1caae9af2c8adc0a7d3df8673e486fd5f31084d9"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/or/firefox-48.0.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "c7abba3faefca9ea4ec6241444894d935611b5b855be58f52671e7ffecff1c29fb59854a89e546921ed70d3cb6d3f42808d8dbebf8c0555daad6325131de128e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/pa-IN/firefox-48.0.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "d8714bd35288aa565afcd493a21c76d1c8485a289008f28ecc7fc5c077f9b779c485648cbb556490db140d5d5791f4041e138b94b5fc9c66980180c9a7e63bc9"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/pa-IN/firefox-48.0.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "052e90ea858141bbdbf808c18b9e5b6bfb0f235daac84828c9cc35130c6d8e7324b44b3db7a982ac148dc5349a972796c3274e39f61a944f1d0f580152cccfa3"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/pl/firefox-48.0.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "d45227a3936d522fd44c3526a0d78e8572b392630dc71d1c75de2f89af9f60c1a4b6b8096cd5db308f111a88b7d9da649e353a67f592ced07fbe601a8f2267db"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/pl/firefox-48.0.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "90bd5b1fb555942fd5a20e923fb7effcee67e43e413f3581c6cff91e9437fe330bc39eef324a82a68d26fd7d5ffaddd2b7f32e7f8c97784002405c35e0a6a45f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/pt-BR/firefox-48.0.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "740a6f543e2e93cc83c1bd5285c00bbc7324d443197c38b069ff912d0e9ed13451b77490fcfa85c4507938f538b3fc50729130754bb13e36806d5d03ad6b83ba"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/pt-BR/firefox-48.0.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "bd8db956583b18a629b39d02dc6f60e31da287e3e834cb7b2ad9c618e8647877e07637afb8993d5605acb746ee948e8fbed7fe5692fc25a1215c98c8e98b3ca0"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/pt-PT/firefox-48.0.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "452fc407467c3a6a2837543889d0978569e48ef45ab24141450635b5f7b10e7b6b0ceed805783b700a223bfa8f97c9e46cf59236bb89050ce65a33e183b539ac"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/pt-PT/firefox-48.0.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "29610bc8fd02d36c7acb018105290d06d625530d2e9e62e52732c553d26b4b38a22319dc1701416b3c0c533a34902e7237322f34c35beb49a6053eb9d7c40c4a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/rm/firefox-48.0.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "6f267154c8a612ab6026a5b71a4b906ef6bc773e796dce63f7daeffba4196722218f6b2631180069a8820082e72b97796023bde163ac4b1103887b14c8fec57d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/rm/firefox-48.0.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "fbcfa337605725848d9786fd43be6ace0b68eb0e2750ec07707abc40ce4813a3fe77860f71eca714bf2dfd933eef735d16b7623f13affa9073c9c6535c9d1759"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ro/firefox-48.0.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "e053c7a6e968dd8dabc8e9ca1a92abe1f97ac754c9eb0acf12e80c9f507f63f8b32a322623eac0914d1f640b5ae30abf158f2889e2fc6a2acfc41cd5881b6630"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ro/firefox-48.0.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "4b75367765b4bb2a89b6b0316a824b58a0440749055e30ccf997d129e251fcfd43b3d5453e792fb34c4e675bd4155b61a6d9bb98b8c5e7a5cd574f22637b3c88"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ru/firefox-48.0.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "4d91d076a6d8241b9209cbb8b5d1ea8f0238197e0a7c151efd03849e56b9ffb825844d67e2810247d524a96c9cb8ba360d07d3dfc71cf548a8db3df428505255"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ru/firefox-48.0.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "dce443a48e515f40862631f5310a56a774c014e21d02ddfda17fb499b7d3bb5260b868e8465d320bc19e8638a79ec63ea9ea70a46bcfb4b08f8fbafb293b614d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/si/firefox-48.0.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "81f99b788a395676f837b2ba1972d1e6eb05eeb6a0b4a40ebf7e79e9bcb82f9399188252f8782ab84fcc021e9e8ef3f8eb95d333166a4ceb205613f7bd105704"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/si/firefox-48.0.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "6abe3abb6771e8bcf1880e777df1f7517b6c784d320e3ca8ae709befe802adca51ddc5996910c6bf7d570e12bc6e3564872001bcb28a1f0143eddd33be3af9c8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/sk/firefox-48.0.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "dc6c4bce34a4eae6c9217e116dc558956fd500b3c4ddb8d88a6067c7d6ef746f19901014c1cc3fcb826695519a62aecfa8091eb58f360cfa4c1e65b34df9c2b2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/sk/firefox-48.0.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "56771e20b4148ef16445ebb8f59b87b00eb7aa1d3174beb77eefdc2868a3468e6cc4e811cafddeca8b7b9e5b88b8c75101cb3a78600c17fe0376580d8cc4ad54"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/sl/firefox-48.0.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "737a878720bbf0038145aff1a460debb7065b68a07db5d6ff46234fbb39eb06d0a3d5b6b2b188997259e6e8e41af30b401646b2064e55e7b6ee25cf5c63b3a02"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/sl/firefox-48.0.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "a5767047a75bdb5839e9ef55c50adac95c6f6d60bd0e4bbbee531657c4cb37db0e51b82a9db498c3cb151496cb0f2f72126efe45627d0c6c8057a081d2c2be35"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/son/firefox-48.0.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "3f9f457096b086e35757594305c446591f33d414b9a056c4869aea05d841d378abd9c36c4ede67d461afd7ad1433ffbc091da45d49df8c98829e6ba303778791"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/son/firefox-48.0.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "702df22f5564d3ae3db222d6ebf0ba96653233c8596a910a7a599f43021dbaaa2f2911a6c3414f78305ab428877d303bb7e8a42336633c359a1f96918b5ef048"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/sq/firefox-48.0.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "3bfdd90de86a74c5f9dfece1878884ac652a04e3d6bfc9245d40703ff30ca000834cf71333596f5c84e7bbaecd02b0068b4e221aa8515924011afebe82c3018f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/sq/firefox-48.0.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "d1b26f23a8ce2023f4b191b33871ea03ef361d9defd81c9ede4508ac9f8d2902999258bf2975e0f92120aa9109808f5818ad546d059b052327911b854f5a09cd"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/sr/firefox-48.0.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "4834ecae89b424d1152650a1a2f3c1f9f900afff09a713fc9158834bc904fd0063742f47cba7afe05c9c32048ae2a9929dad9485717f759946348c081ef09e4a"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/sr/firefox-48.0.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "a625bcf7277694a8ec2bea0a561b581b9fa5062d67c6f5a247f8b1cbf29860838a6d24902208cdee3116b6ef2bd97ff094a7088b45b70ad66f9d638febb12e01"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/sv-SE/firefox-48.0.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "7a4bde2aa79928adc3dcf75f4d1e267e26cae47fa03086aa4586760551b78219a78a22da41144eb402e6efd77830200858d01415d434020da433447119494e68"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/sv-SE/firefox-48.0.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "b2de3cee2384b183cff272b1856f3911655346704d768a874d44ae7a78bf2debe3fd006ee5fbcd1f44f3cc0687fd851832231c5c36c317952d5dd9e06d3a9f66"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/ta/firefox-48.0.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "0e7483aadeb8a588075c688de52dc7c9278f3f72b003e10115cf5353d0100e63001691f8e09e5155f0f544e847c3965a3e938b2e4b640a4dbdb9eaa837d5fa1e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/ta/firefox-48.0.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "73bdb7c53dcd17a14ffbdfe34d5053b00d8f1f096869be84a5a2dcd64effe14670081da3ff71fdab8cd636b76ab63fa09f4f03d6da8fee61007eaa2395b1eff0"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/te/firefox-48.0.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "35f4e0914262392b491c1379ffc81bc70206965511c54b14fcca3004a67938b0dfcacdb89bf1fb1485e5f43b4bca1b9f0ccb7bc1a7734d55ec9b6e6fea9f7050"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/te/firefox-48.0.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "2aa1f92a0d3d60e1e9a38fa08b76d951cbedba208f48298cc41dcb52bb60f904fd34bb124b7ad92da672a921df13abf32cf4defc05aed0a714de7b8503d240d9"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/th/firefox-48.0.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "b70ced17faae84781ab512e2d84d31204dea6fb074072bd60529f52209135a71d4270d4ad7c21173de9e545e65785d066d453fa16ee28ada39708e256451be2f"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/th/firefox-48.0.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "91767bda7438695142b9eb16d311ecdc8e884d572775627867a03e85564ca20499f1892cf948dc7daee17fcc39885c811bb37759db406393cbc263dcb8bf95e4"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/tr/firefox-48.0.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "44ffbf4cf5993243ffe6308ff91aa4025020546cee5d446481ae1b9dade1c4f98a726ec9ebed15ecf63437a0039e42265a4d4444dc3560ea42201832c0db03f1"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/tr/firefox-48.0.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "48869a5d1c60a43c7bdabe9d55060f6211dbd18e8f4e438cc0245c151f37eea748c3c05c9e9811e522df7bff7a6b531ce1bba062738e95244aa2e0e47fbe9ee2"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/uk/firefox-48.0.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "93a0617b74fd8e19b7289cba78182b56d76e754e55b5e666fe8ad34e7f0b8529d3b5575a1d695f5a8eb19085a2e09d5c223a5663c11e5cb1011700b0ab80ca3e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/uk/firefox-48.0.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "a0cfb64b8ceb111509778c2af0d6846eb2b212db04bef166c74b47c7c85dba51379ad1b4d97f0955c75ef04518742136fc9cf018359465c9faaea082cd379906"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/uz/firefox-48.0.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "9ff52914522dffde0c4f2767daefc4cf8e3f15075cdee1bd63fb8cbdf052c081ccb82cf22091b066d5a4ad1243c7efdc384b972fcad6985b4c0d47de03ec9131"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/uz/firefox-48.0.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "85f029d028611d25055ec115eef07b1433c61c0d1c8364c8fb8aaa9ad8d89ea8ac477fdae90a79653a45a47a936397c0f4f758aa2a708ce9b12d2872909f1a01"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/vi/firefox-48.0.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "deb75ecd16deae76ed58caa155234c22e5829c087be9a7a1309a13fab822c524f879aa752b76945a7ff1bb0527006757583180cd7cdcee22dd6430cdf43b3fb5"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/vi/firefox-48.0.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "b36d4a40c11c2cd4e0bc92afd4147c2114554f87d852090f94e13854da2b27ad4a1bfee349d8a92993fa40783adbd4203d2e13767734176b47548ea81c365619"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/xh/firefox-48.0.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "8efda5736eaff631c1d8a752fcc58a57c6bb3b9ad10cd2f1803e31c25ccfeaac53b5118ceaac994131b40aefa2822bbffc584f54a9f46bcb31a87d76c9eb7024"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/xh/firefox-48.0.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "108ddf05b9552eb25165e093fed70f99fb91f14ba7db17a32c55715da22da702c3cc0d52e1c54ec48b8111e570dff00c88efc2be665ab39f804f733f2778e62d"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/zh-CN/firefox-48.0.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "56bc566490056d46e9adb2a63fe37353eff79f41d7f657d67265045b57394e67578e8dc8485f8500603ec94f6326a2f643d3fd7dbb522912ecbc4571863d804b"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/zh-CN/firefox-48.0.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "0da88b26ca2fba192bce4462945f284addd1b660c81baec7e102daad61c18471b4a76a0c4c66dd85e061278dd69e418e999c58bd7c6606426d126ff8ecaf2e3e"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-i686/zh-TW/firefox-48.0.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "1d410032e898d0437cf1ed669fdbafe9103944c35c135240c25a3e56116bdd2d926e3632556fbc916d465287e78ec67bc7204d8147596d0411d10f914fefccd8"; }
+ { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0/linux-x86_64/zh-TW/firefox-48.0.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "6c39f409eb4b48a5b38dc4d6a82f4d9d82b78ea82af10f338108f0237ecd1075cb9a00d5786b7aa9d83051a994e0a05f59f91f12d2b52953bacfdcfd05411ed0"; }
];
}
diff --git a/pkgs/applications/networking/irc/konversation/1.6.nix b/pkgs/applications/networking/irc/konversation/1.6.nix
index 158fe886b8b..995eddd9321 100644
--- a/pkgs/applications/networking/irc/konversation/1.6.nix
+++ b/pkgs/applications/networking/irc/konversation/1.6.nix
@@ -1,14 +1,14 @@
-{ stdenv
+{ kdeDerivation
, lib
, fetchurl
-, cmake
-, extra-cmake-modules
+, ecm
, kbookmarks
, karchive
, kconfig
, kconfigwidgets
, kcoreaddons
, kdbusaddons
+, kdeWrapper
, kdoctools
, kemoticons
, kglobalaccel
@@ -24,61 +24,58 @@
, makeQtWrapper
, solid
, sonnet
-, phonon}:
+, phonon
+}:
let
- pn = "konversation";
- v = "1.6";
-in
+ unwrapped = let
+ pname = "konversation";
+ version = "1.6.1";
+ in kdeDerivation rec {
+ name = "${pname}-${version}";
-stdenv.mkDerivation rec {
- name = "${pn}-${v}";
+ src = fetchurl {
+ url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+ sha256 = "28346d6629261a5328c43ffa09c12e37743b3ef4f4bc4c411d39bc19f7bf06c6";
+ };
- src = fetchurl {
- url = "mirror://kde/stable/${pn}/${v}/src/${name}.tar.xz";
- sha256 = "789fd75644bf54606778971310433dbe2bc01ac0917b34bc4e8cac88e204d5b6";
- };
-
- buildInputs = [
- cmake
- extra-cmake-modules
- kbookmarks
- karchive
- kconfig
- kconfigwidgets
- kcoreaddons
- kdbusaddons
- kdoctools
- kemoticons
- kglobalaccel
- ki18n
- kiconthemes
- kidletime
- kitemviews
- knotifications
- knotifyconfig
- kio
- kparts
- kwallet
- solid
- sonnet
- phonon
- ];
-
- nativeBuildInputs = [
- extra-cmake-modules
- kdoctools
- makeQtWrapper
- ];
-
- postInstall = ''
- wrapQtProgram "$out/bin/konversation"
- '';
-
- meta = {
- description = "Integrated IRC client for KDE";
- license = with lib.licenses; [ gpl2 ];
- maintainers = with lib.maintainers; [ fridh ];
- homepage = https://konversation.kde.org;
+ buildInputs = [
+ kbookmarks
+ karchive
+ kconfig
+ kconfigwidgets
+ kcoreaddons
+ kdbusaddons
+ kdoctools
+ kemoticons
+ kglobalaccel
+ ki18n
+ kiconthemes
+ kidletime
+ kitemviews
+ knotifications
+ knotifyconfig
+ kio
+ kparts
+ kwallet
+ solid
+ sonnet
+ phonon
+ ];
+
+ nativeBuildInputs = [
+ ecm
+ kdoctools
+ ];
+
+ meta = {
+ description = "Integrated IRC client for KDE";
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ fridh ];
+ homepage = https://konversation.kde.org;
+ };
};
+in kdeWrapper unwrapped {
+ targets = [ "bin/konversation" ];
}
+
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index b9fc84d2058..bbf92ea0462 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -5,10 +5,12 @@
}:
stdenv.mkDerivation rec {
- name = "notmuch-0.22";
+ version = "0.22";
+ name = "notmuch-${version}";
passthru = {
pythonSourceRoot = "${name}/bindings/python";
+ inherit version;
};
src = fetchurl {
diff --git a/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
new file mode 100644
index 00000000000..6d08ad724b2
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, perl, perlPackages, makeWrapper, coreutils, notmuch }:
+
+stdenv.mkDerivation rec {
+ name = "notmuch-mutt-${version}";
+ version = notmuch.version;
+
+ outputs = [ "out" ];
+
+ dontStrip = true;
+
+ buildInputs = [
+ perl
+ makeWrapper
+ ] ++ (with perlPackages; [
+ FileRemove
+ DigestSHA1
+ Later
+ MailBox
+ MailMaildir
+ MailTools
+ StringShellQuote
+ TermReadLineGnu
+ ]);
+
+ src = notmuch.src;
+
+ phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ ${coreutils}/bin/install -Dm755 \
+ ./contrib/notmuch-mutt/notmuch-mutt \
+ $out/bin/notmuch-mutt
+
+ wrapProgram $out/bin/notmuch-mutt \
+ --prefix PERL5LIB : $PERL5LIB
+ '';
+
+ meta = with lib; {
+ inherit version;
+ description = "Mutt support for notmuch";
+ homepage = http://notmuchmua.org/;
+ license = with licenses; mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 63af5babca2..6b206bb13d9 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -76,7 +76,9 @@ in stdenv.mkDerivation rec {
# For some reason librdf_redland sometimes refers to rasqal.h instead
# of rasqal/rasqal.h
- NIX_CFLAGS_COMPILE="-I${librdf_rasqal}/include/rasqal";
+ # curl upgrade to 7.50.0 (#17152) changes the libcurl headers slightly and
+ # therefore requires the -fpermissive flag until this package gets updated
+ NIX_CFLAGS_COMPILE="-I${librdf_rasqal}/include/rasqal -fpermissive";
# If we call 'configure', 'make' will then call configure again without parameters.
# It's their system.
diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix
index eadf4135630..248772b759f 100644
--- a/pkgs/applications/office/libreoffice/still.nix
+++ b/pkgs/applications/office/libreoffice/still.nix
@@ -76,7 +76,9 @@ in stdenv.mkDerivation rec {
# For some reason librdf_redland sometimes refers to rasqal.h instead
# of rasqal/rasqal.h
- NIX_CFLAGS_COMPILE="-I${librdf_rasqal}/include/rasqal";
+ # curl upgrade to 7.50.0 (#17152) changes the libcurl headers slightly and
+ # therefore requires the -fpermissive flag until this package gets updated
+ NIX_CFLAGS_COMPILE="-I${librdf_rasqal}/include/rasqal -fpermissive";
# If we call 'configure', 'make' will then call configure again without parameters.
# It's their system.
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index fa7107bd738..7ac1b2cc519 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -2,7 +2,7 @@
, kernel ? pkgs.linux
, img ? "bzImage"
, rootModules ?
- [ "virtio_pci" "virtio_blk" "virtio_balloon" "ext4" "unix" "9p" "9pnet_virtio" "rtc_cmos" ]
+ [ "virtio_pci" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "rtc_cmos" ]
}:
with pkgs;
@@ -218,6 +218,7 @@ rec {
${qemuProg} \
${lib.optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \
-nographic -no-reboot \
+ -device virtio-rng-pci \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-drive file=$diskImage,if=virtio,cache=unsafe,werror=report \
diff --git a/pkgs/desktops/kde-5/applications/ark/default.nix b/pkgs/desktops/kde-5/applications/ark/default.nix
index 503ea6d8cfc..24902757066 100644
--- a/pkgs/desktops/kde-5/applications/ark/default.nix
+++ b/pkgs/desktops/kde-5/applications/ark/default.nix
@@ -1,7 +1,7 @@
{
- kdeApp, lib,
+ kdeApp, lib, kdeWrapper,
- ecm, kdoctools, makeQtWrapper,
+ ecm, kdoctools, makeWrapper,
karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, khtml, kio,
kservice, kpty, kwidgetsaddons, libarchive,
@@ -10,26 +10,33 @@
p7zip, unrar, unzipNLS, zip
}:
-kdeApp {
- name = "ark";
- nativeBuildInputs = [
- ecm kdoctools makeQtWrapper
- ];
- propagatedBuildInputs = [
- khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice
- kpty kwidgetsaddons libarchive
- ];
- postInstall =
- let
- PATH = lib.makeBinPath [
- p7zip unrar unzipNLS zip
+let
+ unwrapped =
+ kdeApp {
+ name = "ark";
+ nativeBuildInputs = [
+ ecm kdoctools makeWrapper
];
- in ''
- wrapQtProgram "$out/bin/ark" \
- --prefix PATH : "${PATH}"
- '';
- meta = {
- license = with lib.licenses; [ gpl2 lgpl3 ];
- maintainers = [ lib.maintainers.ttuegel ];
- };
+ propagatedBuildInputs = [
+ khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice
+ kpty kwidgetsaddons libarchive
+ ];
+ postInstall =
+ let
+ PATH = lib.makeBinPath [
+ p7zip unrar unzipNLS zip
+ ];
+ in ''
+ wrapProgram "$out/bin/ark" \
+ --prefix PATH : "${PATH}"
+ '';
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl3 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ };
+in
+kdeWrapper unwrapped
+{
+ targets = [ "bin/ark" ];
}
diff --git a/pkgs/desktops/kde-5/applications/dolphin-plugins.nix b/pkgs/desktops/kde-5/applications/dolphin-plugins.nix
index 500dd29c100..e9932adc5dc 100644
--- a/pkgs/desktops/kde-5/applications/dolphin-plugins.nix
+++ b/pkgs/desktops/kde-5/applications/dolphin-plugins.nix
@@ -11,5 +11,7 @@ kdeApp {
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [ ecm kdoctools ];
- propagatedBuildInputs = [ dolphin kdelibs4support ki18n kio kxmlgui ];
+ propagatedBuildInputs = [
+ dolphin.unwrapped kdelibs4support ki18n kio kxmlgui
+ ];
}
diff --git a/pkgs/desktops/kde-5/applications/dolphin.nix b/pkgs/desktops/kde-5/applications/dolphin.nix
index 8145d948391..4e636ae3186 100644
--- a/pkgs/desktops/kde-5/applications/dolphin.nix
+++ b/pkgs/desktops/kde-5/applications/dolphin.nix
@@ -1,26 +1,31 @@
{
- kdeApp, lib,
+ kdeApp, lib, kdeWrapper,
ecm, kdoctools, makeQtWrapper,
- baloo, baloo-widgets, kactivities, kbookmarks, kcmutils, kcompletion, kconfig,
- kcoreaddons, kdelibs4support, kdbusaddons, kfilemetadata, ki18n, kiconthemes,
- kinit, kio, knewstuff, knotifications, kparts, ktexteditor, kwindowsystem,
- phonon, solid
+ baloo, baloo-widgets, dolphin-plugins, kactivities, kbookmarks, kcmutils,
+ kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
+ kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
+ konsole, kparts, ktexteditor, kwindowsystem, phonon, solid
}:
-kdeApp {
- name = "dolphin";
- meta = {
- license = with lib.licenses; [ gpl2 fdl12 ];
- maintainers = [ lib.maintainers.ttuegel ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
- kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
- kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem phonon
- solid
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/dolphin"
- '';
+let
+ unwrapped =
+ kdeApp {
+ name = "dolphin";
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
+ propagatedBuildInputs = [
+ baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
+ kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+ kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
+ phonon solid
+ ];
+ };
+in
+kdeWrapper unwrapped
+{
+ targets = [ "bin/dolphin" ];
+ paths = [ dolphin-plugins konsole.unwrapped ];
}
diff --git a/pkgs/desktops/kde-5/applications/filelight.nix b/pkgs/desktops/kde-5/applications/filelight.nix
index 523c236ba26..acc5808b4a3 100644
--- a/pkgs/desktops/kde-5/applications/filelight.nix
+++ b/pkgs/desktops/kde-5/applications/filelight.nix
@@ -1,20 +1,21 @@
{
- kdeApp, lib,
- ecm, kdoctools, makeQtWrapper,
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
kio, kparts, kxmlgui, qtscript, solid
}:
-kdeApp {
- name = "filelight";
- meta = {
- license = with lib.licenses; [ gpl2 ];
- maintainers = with lib.maintainers; [ fridh vcunat ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- kio kparts kxmlgui qtscript solid
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/filelight"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "filelight";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = with lib.maintainers; [ fridh vcunat ];
+ };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ kio kparts kxmlgui qtscript solid
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/filelight" ]; }
diff --git a/pkgs/desktops/kde-5/applications/gwenview.nix b/pkgs/desktops/kde-5/applications/gwenview.nix
index e2b2fa014a9..66df17f2e44 100644
--- a/pkgs/desktops/kde-5/applications/gwenview.nix
+++ b/pkgs/desktops/kde-5/applications/gwenview.nix
@@ -1,21 +1,23 @@
{
- kdeApp, lib,
- ecm, kdoctools, makeQtWrapper,
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
baloo, exiv2, kactivities, kdelibs4support, kio, lcms2, phonon,
qtsvg, qtx11extras
}:
-kdeApp {
- name = "gwenview";
- meta = {
- license = with lib.licenses; [ gpl2 fdl12 ];
- maintainers = [ lib.maintainers.ttuegel ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- baloo kactivities kdelibs4support kio qtx11extras exiv2 lcms2 phonon qtsvg
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/gwenview"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "gwenview";
+ meta = {
+ license = with lib.licenses; [ gpl2 fdl12 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ baloo kactivities kdelibs4support kio qtx11extras exiv2 lcms2 phonon
+ qtsvg
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/gwenview" ]; }
diff --git a/pkgs/desktops/kde-5/applications/kate.nix b/pkgs/desktops/kde-5/applications/kate.nix
index 4459dea8063..ab0087930c0 100644
--- a/pkgs/desktops/kde-5/applications/kate.nix
+++ b/pkgs/desktops/kde-5/applications/kate.nix
@@ -1,26 +1,31 @@
{
- kdeApp, lib, makeQtWrapper, ecm, kdoctools,
- kactivities, kconfig, kcrash, kguiaddons, kiconthemes, ki18n, kinit,
- kjobwidgets, kio, kparts, ktexteditor, kwindowsystem, kxmlgui, kdbusaddons,
- kwallet, plasma-framework, kitemmodels, knotifications, qtscript,
- threadweaver, knewstuff, libgit2
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
+ kactivities, kconfig, kcrash, kdbusaddons, kguiaddons, kiconthemes, ki18n,
+ kinit, kio, kitemmodels, kjobwidgets, knewstuff, knotifications, konsole,
+ kparts, ktexteditor, kwindowsystem, kwallet, kxmlgui, libgit2,
+ plasma-framework, qtscript, threadweaver
}:
-kdeApp {
- name = "kate";
- meta = {
- license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
- maintainers = [ lib.maintainers.ttuegel ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- kactivities ki18n kio ktexteditor kwindowsystem plasma-framework qtscript
- kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts kxmlgui
- kdbusaddons kwallet kitemmodels knotifications threadweaver knewstuff
- libgit2
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/kate"
- wrapQtProgram "$out/bin/kwrite"
- '';
+let
+ unwrapped =
+ kdeApp {
+ name = "kate";
+ meta = {
+ license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
+ qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
+ kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
+ knewstuff libgit2
+ ];
+ };
+in
+kdeWrapper unwrapped
+{
+ targets = [ "bin/kate" "bin/kwrite" ];
+ paths = [ konsole.unwrapped ];
}
diff --git a/pkgs/desktops/kde-5/applications/kcalc.nix b/pkgs/desktops/kde-5/applications/kcalc.nix
index ca1254e6974..f6d87e3e6e9 100644
--- a/pkgs/desktops/kde-5/applications/kcalc.nix
+++ b/pkgs/desktops/kde-5/applications/kcalc.nix
@@ -1,20 +1,21 @@
{
- kdeApp, lib, makeQtWrapper, kdoctools,
- ecm, kconfig, kconfigwidgets, kguiaddons, kinit,
- knotifications, gmp
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
+ kconfig, kconfigwidgets, kguiaddons, kinit, knotifications, gmp
}:
-kdeApp {
- name = "kcalc";
- meta = {
- license = with lib.licenses; [ gpl2 ];
- maintainers = [ lib.maintainers.fridh ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- gmp kconfig kconfigwidgets kguiaddons kinit knotifications
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/kcalc"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "kcalc";
+ meta = {
+ license = with lib.licenses; [ gpl2 ];
+ maintainers = [ lib.maintainers.fridh ];
+ };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ gmp kconfig kconfigwidgets kguiaddons kinit knotifications
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/kcalc" ]; }
diff --git a/pkgs/desktops/kde-5/applications/kcolorchooser.nix b/pkgs/desktops/kde-5/applications/kcolorchooser.nix
index d5e0eff21e4..45a72a0bbc1 100644
--- a/pkgs/desktops/kde-5/applications/kcolorchooser.nix
+++ b/pkgs/desktops/kde-5/applications/kcolorchooser.nix
@@ -1,14 +1,18 @@
{
- kdeApp, lib,
+ kdeApp, lib, kdeWrapper,
ecm, ki18n, kwidgetsaddons, kxmlgui
}:
-kdeApp {
- name = "kcolorchooser";
- meta = {
- license = with lib.licenses; [ mit ];
- maintainers = [ lib.maintainers.ttuegel ];
- };
- nativeBuildInputs = [ ecm ];
- propagatedBuildInputs = [ ki18n kwidgetsaddons kxmlgui ];
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "kcolorchooser";
+ meta = {
+ license = with lib.licenses; [ mit ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ ecm ];
+ propagatedBuildInputs = [ ki18n kwidgetsaddons kxmlgui ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/kcolorchooser" ]; }
diff --git a/pkgs/desktops/kde-5/applications/khelpcenter.nix b/pkgs/desktops/kde-5/applications/khelpcenter.nix
index aab0c051e80..934f13425e8 100644
--- a/pkgs/desktops/kde-5/applications/khelpcenter.nix
+++ b/pkgs/desktops/kde-5/applications/khelpcenter.nix
@@ -1,17 +1,19 @@
{
- kdeApp, ecm, kdoctools, makeQtWrapper,
+ kdeApp, kdeWrapper,
+ ecm, kdoctools,
grantlee, kconfig, kcoreaddons, kdbusaddons, ki18n, kinit, kcmutils,
kdelibs4support, khtml, kservice, xapian
}:
-kdeApp {
- name = "khelpcenter";
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- buildInputs = [
- grantlee kdelibs4support khtml ki18n kconfig kcoreaddons kdbusaddons kinit
- kcmutils kservice xapian
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/khelpcenter"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "khelpcenter";
+ nativeBuildInputs = [ ecm kdoctools ];
+ buildInputs = [
+ grantlee kdelibs4support khtml ki18n kconfig kcoreaddons kdbusaddons
+ kinit kcmutils kservice xapian
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/khelpcenter" ]; }
diff --git a/pkgs/desktops/kde-5/applications/kompare.nix b/pkgs/desktops/kde-5/applications/kompare.nix
index de2dd9338a2..3b2143af615 100644
--- a/pkgs/desktops/kde-5/applications/kompare.nix
+++ b/pkgs/desktops/kde-5/applications/kompare.nix
@@ -1,19 +1,18 @@
{
- kdeApp, lib, ecm, kdoctools, makeQtWrapper,
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
kparts, ktexteditor, kwidgetsaddons, libkomparediff2
}:
-kdeApp {
- name = "kompare";
- meta = {
- license = with lib.licenses; [ gpl2 ];
- };
-
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
-
- propagatedBuildInputs = [ kparts ktexteditor kwidgetsaddons libkomparediff2 ];
-
- postInstall = ''
- wrapQtProgram "$out/bin/kompare"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "kompare";
+ meta = { license = with lib.licenses; [ gpl2 ]; };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ kparts ktexteditor kwidgetsaddons libkomparediff2
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/kompare" ]; }
diff --git a/pkgs/desktops/kde-5/applications/konsole.nix b/pkgs/desktops/kde-5/applications/konsole.nix
index 1d12c671fa8..bf3a497fefa 100644
--- a/pkgs/desktops/kde-5/applications/konsole.nix
+++ b/pkgs/desktops/kde-5/applications/konsole.nix
@@ -1,25 +1,27 @@
{
- kdeApp, lib,
- ecm, kdoctools, makeQtWrapper,
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons,
ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications,
knotifyconfig, kparts, kpty, kservice, ktextwidgets, kwidgetsaddons,
kwindowsystem, kxmlgui, qtscript
}:
-kdeApp {
- name = "konsole";
- meta = {
- license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
- maintainers = [ lib.maintainers.ttuegel ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- kdelibs4support ki18n kwindowsystem qtscript kbookmarks kcompletion kconfig
- kconfigwidgets kcoreaddons kguiaddons kiconthemes kinit kio knotifications
- knotifyconfig kparts kpty kservice ktextwidgets kwidgetsaddons kxmlgui
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/konsole"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "konsole";
+ meta = {
+ license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+ maintainers = [ lib.maintainers.ttuegel ];
+ };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ kdelibs4support ki18n kwindowsystem qtscript kbookmarks kcompletion
+ kconfig kconfigwidgets kcoreaddons kguiaddons kiconthemes kinit kio
+ knotifications knotifyconfig kparts kpty kservice ktextwidgets
+ kwidgetsaddons kxmlgui
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/konsole" ]; }
diff --git a/pkgs/desktops/kde-5/applications/spectacle.nix b/pkgs/desktops/kde-5/applications/spectacle.nix
index 2665d840c38..26faea2678a 100644
--- a/pkgs/desktops/kde-5/applications/spectacle.nix
+++ b/pkgs/desktops/kde-5/applications/spectacle.nix
@@ -1,20 +1,20 @@
{
- kdeApp, lib, ecm, kdoctools, makeQtWrapper,
+ kdeApp, lib, kdeWrapper,
+ ecm, kdoctools,
kconfig, kcoreaddons, kdbusaddons, kdeclarative, ki18n, kio, knotifications,
kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi, xcb-util-cursor
}:
-kdeApp {
- name = "spectacle";
- meta = with lib; {
- maintainers = with maintainers; [ ttuegel ];
- };
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
- propagatedBuildInputs = [
- kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
- kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi xcb-util-cursor
- ];
- postInstall = ''
- wrapQtProgram "$out/bin/spectacle"
- '';
-}
+let
+ unwrapped =
+ kdeApp {
+ name = "spectacle";
+ meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
+ nativeBuildInputs = [ ecm kdoctools ];
+ propagatedBuildInputs = [
+ kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
+ kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi xcb-util-cursor
+ ];
+ };
+in
+kdeWrapper unwrapped { targets = [ "bin/spectacle" ]; }
diff --git a/pkgs/desktops/kde-5/plasma/bluedevil.nix b/pkgs/desktops/kde-5/plasma/bluedevil.nix
index 677a6ce961b..1deef241a62 100644
--- a/pkgs/desktops/kde-5/plasma/bluedevil.nix
+++ b/pkgs/desktops/kde-5/plasma/bluedevil.nix
@@ -1,22 +1,18 @@
-{ plasmaPackage, ecm, bluez-qt, kcoreaddons
-, kdbusaddons, kded, ki18n, kiconthemes, kio, knotifications
-, kwidgetsaddons, kwindowsystem, makeQtWrapper, plasma-framework
-, qtdeclarative, shared_mime_info
+{
+ plasmaPackage, ecm, shared_mime_info,
+ bluez-qt, kcoreaddons, kdbusaddons, kded, ki18n, kiconthemes, kio,
+ knotifications, kwidgetsaddons, kwindowsystem, plasma-framework, qtdeclarative
}:
plasmaPackage {
name = "bluedevil";
- nativeBuildInputs = [
- ecm makeQtWrapper shared_mime_info
- ];
+ nativeBuildInputs = [ ecm shared_mime_info ];
propagatedBuildInputs = [
bluez-qt ki18n kio kwindowsystem plasma-framework qtdeclarative kcoreaddons
kdbusaddons kded kiconthemes knotifications kwidgetsaddons
];
- propagatedUserEnvPkgs = [ bluez-qt ];
+ propagatedUserEnvPkgs = [ bluez-qt.out ];
postInstall = ''
- wrapQtProgram "$out/bin/bluedevil-wizard"
- wrapQtProgram "$out/bin/bluedevil-sendfile"
# Fix the location of logic.js for the plasmoid
ln -s $out/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/code/logic.js $out/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/ui/logic.js
'';
diff --git a/pkgs/desktops/kde-5/plasma/kde-cli-tools.nix b/pkgs/desktops/kde-5/plasma/kde-cli-tools.nix
index e6216650c8a..33a7340cb85 100644
--- a/pkgs/desktops/kde-5/plasma/kde-cli-tools.nix
+++ b/pkgs/desktops/kde-5/plasma/kde-cli-tools.nix
@@ -1,25 +1,14 @@
-{ plasmaPackage, ecm, kcmutils, kconfig
-, kdelibs4support, kdesu, kdoctools, ki18n, kiconthemes
-, kwindowsystem, makeQtWrapper, qtsvg, qtx11extras
+{
+ plasmaPackage, ecm,
+ kcmutils, kconfig, kdelibs4support, kdesu, kdoctools, ki18n, kiconthemes,
+ kwindowsystem, qtsvg, qtx11extras
}:
plasmaPackage {
name = "kde-cli-tools";
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
- kdelibs4support ki18n kwindowsystem qtsvg qtx11extras kcmutils kconfig kdesu
- kiconthemes
+ kcmutils kconfig kdesu kdelibs4support ki18n kiconthemes kwindowsystem qtsvg
+ qtx11extras
];
- postInstall = ''
- wrapQtProgram "$out/bin/kmimetypefinder5"
- wrapQtProgram "$out/bin/ksvgtopng5"
- wrapQtProgram "$out/bin/ktraderclient5"
- wrapQtProgram "$out/bin/kioclient5"
- wrapQtProgram "$out/bin/kdecp5"
- wrapQtProgram "$out/bin/keditfiletype5"
- wrapQtProgram "$out/bin/kcmshell5"
- wrapQtProgram "$out/bin/kdemv5"
- wrapQtProgram "$out/bin/kstart5"
- wrapQtProgram "$out/bin/kde-open5"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/kinfocenter.nix b/pkgs/desktops/kde-5/plasma/kinfocenter.nix
index 1d2918ae27b..dd9bdbd31bd 100644
--- a/pkgs/desktops/kde-5/plasma/kinfocenter.nix
+++ b/pkgs/desktops/kde-5/plasma/kinfocenter.nix
@@ -1,23 +1,16 @@
{ plasmaPackage, ecm, kdoctools, kcmutils
, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons
, kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kpackage
-, kservice, kwidgetsaddons, kxmlgui, libraw1394, makeQtWrapper
+, kservice, kwidgetsaddons, kxmlgui, libraw1394
, pciutils, solid
}:
plasmaPackage {
name = "kinfocenter";
- nativeBuildInputs = [
- ecm
- kdoctools
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
kdeclarative kdelibs4support ki18n kio kcmutils kcompletion kconfig
kconfigwidgets kcoreaddons kdbusaddons kiconthemes kpackage kservice
kwidgetsaddons kxmlgui libraw1394 pciutils solid
];
- postInstall = ''
- wrapQtProgram "$out/bin/kinfocenter"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/kmenuedit.nix b/pkgs/desktops/kde-5/plasma/kmenuedit.nix
index 377f39076d9..3adb77a0051 100644
--- a/pkgs/desktops/kde-5/plasma/kmenuedit.nix
+++ b/pkgs/desktops/kde-5/plasma/kmenuedit.nix
@@ -1,18 +1,11 @@
{ plasmaPackage, ecm, kdoctools, ki18n, kxmlgui
-, kdbusaddons, kiconthemes, kio, sonnet, kdelibs4support, makeQtWrapper
+, kdbusaddons, kiconthemes, kio, sonnet, kdelibs4support
}:
plasmaPackage {
name = "kmenuedit";
- nativeBuildInputs = [
- ecm
- kdoctools
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
kdelibs4support ki18n kio sonnet kxmlgui kdbusaddons kiconthemes
];
- postInstall = ''
- wrapQtProgram "$out/bin/kmenuedit"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/kscreen.nix b/pkgs/desktops/kde-5/plasma/kscreen.nix
index 28e0f7af33d..ecbd88c2146 100644
--- a/pkgs/desktops/kde-5/plasma/kscreen.nix
+++ b/pkgs/desktops/kde-5/plasma/kscreen.nix
@@ -1,19 +1,13 @@
{ plasmaPackage, ecm, kconfig, kconfigwidgets
, kdbusaddons, kglobalaccel, ki18n, kwidgetsaddons, kxmlgui
-, libkscreen, makeQtWrapper, qtdeclarative, qtgraphicaleffects
+, libkscreen, qtdeclarative, qtgraphicaleffects
}:
plasmaPackage {
name = "kscreen";
- nativeBuildInputs = [
- ecm
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm ];
propagatedBuildInputs = [
kglobalaccel ki18n libkscreen qtdeclarative qtgraphicaleffects kconfig
kconfigwidgets kdbusaddons kwidgetsaddons kxmlgui
];
- postInstall = ''
- wrapQtProgram "$out/bin/kscreen-console"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/kscreenlocker.nix b/pkgs/desktops/kde-5/plasma/kscreenlocker.nix
index 9a28a800a64..8fb5d9e708b 100644
--- a/pkgs/desktops/kde-5/plasma/kscreenlocker.nix
+++ b/pkgs/desktops/kde-5/plasma/kscreenlocker.nix
@@ -5,10 +5,7 @@
plasmaPackage {
name = "kscreenlocker";
- nativeBuildInputs = [
- ecm
- kdoctools
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
kdeclarative plasma-framework qtdeclarative kcmutils kcrash kdelibs4support
kglobalaccel kidletime kwayland libXcursor pam wayland
diff --git a/pkgs/desktops/kde-5/plasma/ksshaskpass.nix b/pkgs/desktops/kde-5/plasma/ksshaskpass.nix
index 0adfb6de238..80b529a6668 100644
--- a/pkgs/desktops/kde-5/plasma/ksshaskpass.nix
+++ b/pkgs/desktops/kde-5/plasma/ksshaskpass.nix
@@ -1,12 +1,9 @@
{ plasmaPackage, ecm, kdoctools, kcoreaddons
-, ki18n, kwallet, kwidgetsaddons, makeQtWrapper
+, ki18n, kwallet, kwidgetsaddons
}:
plasmaPackage {
name = "ksshaskpass";
- nativeBuildInputs = [ ecm kdoctools makeQtWrapper ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [ kcoreaddons ki18n kwallet kwidgetsaddons ];
- postInstall = ''
- wrapQtProgram "$out/bin/ksshaskpass"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/ksysguard.nix b/pkgs/desktops/kde-5/plasma/ksysguard.nix
index 44335c5fa74..b0e94c6a595 100644
--- a/pkgs/desktops/kde-5/plasma/ksysguard.nix
+++ b/pkgs/desktops/kde-5/plasma/ksysguard.nix
@@ -1,20 +1,13 @@
{ plasmaPackage, ecm, kdoctools, kconfig
, kcoreaddons, kdelibs4support, ki18n, kitemviews, knewstuff
-, kiconthemes, libksysguard, makeQtWrapper
+, kiconthemes, libksysguard
}:
plasmaPackage {
name = "ksysguard";
- nativeBuildInputs = [
- ecm
- kdoctools
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
kdelibs4support ki18n
];
- postInstall = ''
- wrapQtProgram "$out/bin/ksysguardd"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/kwin/default.nix b/pkgs/desktops/kde-5/plasma/kwin/default.nix
index 382ed3ef939..d121ba84dd0 100644
--- a/pkgs/desktops/kde-5/plasma/kwin/default.nix
+++ b/pkgs/desktops/kde-5/plasma/kwin/default.nix
@@ -13,7 +13,6 @@ plasmaPackage {
nativeBuildInputs = [
ecm
kdoctools
- makeQtWrapper
];
propagatedBuildInputs = [
kactivities kdeclarative kglobalaccel ki18n kio kscreenlocker kwindowsystem
@@ -25,8 +24,4 @@ plasmaPackage {
];
patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" ];
- postInstall = ''
- wrapQtProgram "$out/bin/kwin_x11"
- wrapQtProgram "$out/bin/kwin_wayland"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/plasma-desktop/default.nix b/pkgs/desktops/kde-5/plasma/plasma-desktop/default.nix
index 6b54dcd20d4..dc4e81ef4ea 100644
--- a/pkgs/desktops/kde-5/plasma/plasma-desktop/default.nix
+++ b/pkgs/desktops/kde-5/plasma/plasma-desktop/default.nix
@@ -6,17 +6,13 @@
, plasma-framework, plasma-workspace, qtdeclarative, qtx11extras
, qtsvg, libXcursor, libXft, libxkbfile, xf86inputevdev
, xf86inputsynaptics, xinput, xkeyboard_config, xorgserver
-, libcanberra_kde, libpulseaudio, makeQtWrapper, utillinux
+, libcanberra_kde, libpulseaudio, utillinux
, qtquickcontrols, ksysguard
}:
plasmaPackage rec {
name = "plasma-desktop";
- nativeBuildInputs = [
- ecm
- kdoctools
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
buildInputs = [
attica boost fontconfig kcmutils kdbusaddons kded kitemmodels knewstuff
knotifications knotifyconfig kwallet libcanberra_kde libXcursor
@@ -42,14 +38,4 @@ plasmaPackage rec {
"-DEvdev_INCLUDE_DIRS=${xf86inputevdev.dev}/include/xorg"
"-DSynaptics_INCLUDE_DIRS=${xf86inputsynaptics}/include/xorg"
];
- postInstall = ''
- wrapQtProgram "$out/bin/kaccess"
- wrapQtProgram "$out/bin/solid-action-desktop-gen"
- wrapQtProgram "$out/bin/knetattach"
- wrapQtProgram "$out/bin/krdb"
- wrapQtProgram "$out/bin/kapplymousetheme"
- wrapQtProgram "$out/bin/kfontinst"
- wrapQtProgram "$out/bin/kcm-touchpad-list-devices"
- wrapQtProgram "$out/bin/kfontview"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/plasma-nm/default.nix b/pkgs/desktops/kde-5/plasma/plasma-nm/default.nix
index 0deef373f4f..b6d18dbf91d 100644
--- a/pkgs/desktops/kde-5/plasma/plasma-nm/default.nix
+++ b/pkgs/desktops/kde-5/plasma/plasma-nm/default.nix
@@ -2,7 +2,7 @@
, kcompletion, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
, kdelibs4support, ki18n, kiconthemes, kinit, kio, kitemviews
, knotifications, kservice, kwallet, kwidgetsaddons, kwindowsystem
-, kxmlgui, makeQtWrapper, mobile_broadband_provider_info
+, kxmlgui, mobile_broadband_provider_info
, modemmanager-qt, networkmanager-qt, openconnect, plasma-framework
, qca-qt5, qtdeclarative, solid
}:
@@ -15,11 +15,7 @@ plasmaPackage {
inherit mobile_broadband_provider_info;
})
];
- nativeBuildInputs = [
- ecm
- kdoctools
- makeQtWrapper
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
kdeclarative kdelibs4support ki18n kio kwindowsystem plasma-framework
qtdeclarative kcompletion kconfigwidgets kcoreaddons kdbusaddons kiconthemes
@@ -27,7 +23,4 @@ plasmaPackage {
mobile_broadband_provider_info modemmanager-qt networkmanager-qt openconnect
qca-qt5 solid
];
- postInstall = ''
- wrapQtProgram "$out/bin/kde5-nm-connection-editor"
- '';
}
diff --git a/pkgs/desktops/kde-5/plasma/plasma-workspace-wallpapers.nix b/pkgs/desktops/kde-5/plasma/plasma-workspace-wallpapers.nix
index da2a5b59d2d..6ffdb17cbea 100644
--- a/pkgs/desktops/kde-5/plasma/plasma-workspace-wallpapers.nix
+++ b/pkgs/desktops/kde-5/plasma/plasma-workspace-wallpapers.nix
@@ -4,6 +4,7 @@
plasmaPackage {
name = "plasma-workspace-wallpapers";
+ outputs = [ "out" ];
nativeBuildInputs = [
ecm
];
diff --git a/pkgs/desktops/kde-5/plasma/plasma-workspace/default.nix b/pkgs/desktops/kde-5/plasma/plasma-workspace/default.nix
index 39788a4d7c4..09bba4a709f 100644
--- a/pkgs/desktops/kde-5/plasma/plasma-workspace/default.nix
+++ b/pkgs/desktops/kde-5/plasma/plasma-workspace/default.nix
@@ -14,9 +14,7 @@
plasmaPackage {
name = "plasma-workspace";
- nativeBuildInputs = [
- ecm kdoctools
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
buildInputs = [
baloo kactivities kcmutils kconfig kcrash kdbusaddons kdeclarative
kdelibs4support kdesu kglobalaccel kidletime kjsembed knewstuff
diff --git a/pkgs/desktops/kde-5/plasma/polkit-kde-agent.nix b/pkgs/desktops/kde-5/plasma/polkit-kde-agent.nix
index 1016912de29..002c2bb10ff 100644
--- a/pkgs/desktops/kde-5/plasma/polkit-kde-agent.nix
+++ b/pkgs/desktops/kde-5/plasma/polkit-kde-agent.nix
@@ -1,22 +1,12 @@
-{ plasmaPackage
-, ecm
-, ki18n
-, kwindowsystem
-, kdbusaddons
-, kwidgetsaddons
-, kcoreaddons
-, kcrash
-, kconfig
-, kiconthemes
-, knotifications
-, polkit-qt
+{
+ plasmaPackage, ecm,
+ kcoreaddons, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, knotifications,
+ kwidgetsaddons, kwindowsystem, polkit-qt
}:
plasmaPackage {
name = "polkit-kde-agent";
- nativeBuildInputs = [
- ecm
- ];
+ nativeBuildInputs = [ ecm ];
propagatedBuildInputs = [
kdbusaddons kwidgetsaddons kcoreaddons kcrash kconfig ki18n kiconthemes
knotifications kwindowsystem polkit-qt
diff --git a/pkgs/desktops/kde-5/plasma/powerdevil.nix b/pkgs/desktops/kde-5/plasma/powerdevil.nix
index ba08fa86ef0..c0c18a6eae6 100644
--- a/pkgs/desktops/kde-5/plasma/powerdevil.nix
+++ b/pkgs/desktops/kde-5/plasma/powerdevil.nix
@@ -6,10 +6,7 @@
plasmaPackage {
name = "powerdevil";
- nativeBuildInputs = [
- ecm
- kdoctools
- ];
+ nativeBuildInputs = [ ecm kdoctools ];
propagatedBuildInputs = [
kconfig kdbusaddons knotifyconfig solid udev bluez-qt kactivities kauth
kdelibs4support kglobalaccel ki18n kio kidletime kwayland libkscreen
diff --git a/pkgs/desktops/kde-5/plasma/systemsettings.nix b/pkgs/desktops/kde-5/plasma/systemsettings.nix
index 1e1c396a44d..407d0e91626 100644
--- a/pkgs/desktops/kde-5/plasma/systemsettings.nix
+++ b/pkgs/desktops/kde-5/plasma/systemsettings.nix
@@ -11,7 +11,4 @@ plasmaPackage {
kcmutils kconfig kdbusaddons khtml ki18n kiconthemes kio kitemviews kservice
kwindowsystem kxmlgui qtquickcontrols
];
- postInstall = ''
- wrapQtProgram "$out/bin/systemsettings5"
- '';
}
diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix
index ef355e64e1e..30b96822cab 100644
--- a/pkgs/development/compilers/ponyc/default.nix
+++ b/pkgs/development/compilers/ponyc/default.nix
@@ -1,29 +1,35 @@
-{stdenv, glibc, fetchFromGitHub, llvm, makeWrapper, openssl, pcre2 }:
+{stdenv, glibc, fetchFromGitHub, llvm, makeWrapper, openssl, pcre2, coreutils }:
stdenv.mkDerivation {
- name = "ponyc-0.2.1";
+ name = "ponyc-2016-07-26";
src = fetchFromGitHub {
- owner = "CausalityLtd";
+ owner = "ponylang";
repo = "ponyc";
- rev = "0.2.1";
- sha256 = "1wmvqrj9v2kjqha9fcs10vfnhdxhc3rf67wpn36ldhs1hq0k25jy";
+ rev = "4eec8a9b0d9936b2a0249bd17fd7a2caac6aaa9c";
+ sha256 = "184x2jivp7826i60rf0dpx0a9dg5rsj56dv0cll28as4nyqfmna2";
};
buildInputs = [ llvm makeWrapper ];
- makeFlags = [ "config=release" ];
- doCheck = true;
- checkTarget = "test";
-
- patchPhase = ''
- sed 's|/usr/lib/x86_64-linux-gnu/|${glibc.out}/lib/|g' -i src/libponyc/codegen/genexe.c
- sed 's|/lib/x86_64-linux-gnu/|${stdenv.cc.cc.lib}/lib/|g' -i src/libponyc/codegen/genexe.c
- '';
+ # Disable problematic networking tests
+ patches = [ ./disable-tests.patch ];
preBuild = ''
- export LLVM_CONFIG=${llvm}/bin/llvm-config
- '';
+ # Fix tests
+ substituteInPlace packages/process/_test.pony \
+ --replace "/bin/cat" "${coreutils}/bin/cat"
+
+ export LLVM_CONFIG=${llvm}/bin/llvm-config
+ '';
+
+ makeFlags = [ "config=release" ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ checkTarget = "test";
preCheck = ''
export LIBRARY_PATH="$out/lib:${openssl.out}/lib:${pcre2}/lib"
diff --git a/pkgs/development/compilers/ponyc/disable-tests.patch b/pkgs/development/compilers/ponyc/disable-tests.patch
new file mode 100644
index 00000000000..9335ebd6eea
--- /dev/null
+++ b/pkgs/development/compilers/ponyc/disable-tests.patch
@@ -0,0 +1,16 @@
+diff --git a/packages/net/_test.pony b/packages/net/_test.pony
+index d6c3e56..dc37dd9 100644
+--- a/packages/net/_test.pony
++++ b/packages/net/_test.pony
+@@ -7,11 +7,6 @@ actor Main is TestList
+ fun tag tests(test: PonyTest) =>
+ test(_TestReadBuffer)
+ test(_TestWriteBuffer)
+- test(_TestBroadcast)
+- ifdef not windows then
+- test(_TestTCPExpect)
+- test(_TestTCPWritev)
+- end
+
+ class iso _TestReadBuffer is UnitTest
+ """
diff --git a/pkgs/development/interpreters/python/2.6/default.nix b/pkgs/development/interpreters/python/cpython/2.6/default.nix
similarity index 97%
rename from pkgs/development/interpreters/python/2.6/default.nix
rename to pkgs/development/interpreters/python/cpython/2.6/default.nix
index 6641eb24b24..e5c33cd7b2b 100644
--- a/pkgs/development/interpreters/python/2.6/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.6/default.nix
@@ -99,8 +99,8 @@ let
inherit zlibSupport;
isPy2 = true;
isPy26 = true;
- buildEnv = callPackage ../wrapper.nix { python = self; };
- withPackages = import ../with-packages.nix { inherit buildEnv; pythonPackages = python26Packages; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = python26Packages; };
libPrefix = "python${majorVersion}";
executable = libPrefix;
sitePackages = "lib/${libPrefix}/site-packages";
diff --git a/pkgs/development/interpreters/python/2.6/nix-store-mtime.patch b/pkgs/development/interpreters/python/cpython/2.6/nix-store-mtime.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.6/nix-store-mtime.patch
rename to pkgs/development/interpreters/python/cpython/2.6/nix-store-mtime.patch
diff --git a/pkgs/development/interpreters/python/2.6/python2.6-fix-parallel-make.patch b/pkgs/development/interpreters/python/cpython/2.6/python2.6-fix-parallel-make.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.6/python2.6-fix-parallel-make.patch
rename to pkgs/development/interpreters/python/cpython/2.6/python2.6-fix-parallel-make.patch
diff --git a/pkgs/development/interpreters/python/2.6/search-path.patch b/pkgs/development/interpreters/python/cpython/2.6/search-path.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.6/search-path.patch
rename to pkgs/development/interpreters/python/cpython/2.6/search-path.patch
diff --git a/pkgs/development/interpreters/python/2.6/setup-hook.sh b/pkgs/development/interpreters/python/cpython/2.6/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/python/2.6/setup-hook.sh
rename to pkgs/development/interpreters/python/cpython/2.6/setup-hook.sh
diff --git a/pkgs/development/interpreters/python/2.7/2.5.2-ctypes-util-find_library.patch b/pkgs/development/interpreters/python/cpython/2.7/2.5.2-ctypes-util-find_library.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.5.2-ctypes-util-find_library.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.5.2-ctypes-util-find_library.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.5.2-tkinter-x11.patch b/pkgs/development/interpreters/python/cpython/2.7/2.5.2-tkinter-x11.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.5.2-tkinter-x11.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.5.2-tkinter-x11.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.6.2-ssl-threads.patch b/pkgs/development/interpreters/python/cpython/2.7/2.6.2-ssl-threads.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.6.2-ssl-threads.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.6.2-ssl-threads.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.6.5-FD_SETSIZE.patch b/pkgs/development/interpreters/python/cpython/2.7/2.6.5-FD_SETSIZE.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.6.5-FD_SETSIZE.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.6.5-FD_SETSIZE.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.6.5-export-PySignal_SetWakeupFd.patch b/pkgs/development/interpreters/python/cpython/2.7/2.6.5-export-PySignal_SetWakeupFd.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.6.5-export-PySignal_SetWakeupFd.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.6.5-export-PySignal_SetWakeupFd.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.6.5-ncurses-abi6.patch b/pkgs/development/interpreters/python/cpython/2.7/2.6.5-ncurses-abi6.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.6.5-ncurses-abi6.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.6.5-ncurses-abi6.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.7.3-dbm.patch b/pkgs/development/interpreters/python/cpython/2.7/2.7.3-dbm.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.7.3-dbm.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.7.3-dbm.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.7.3-dylib.patch b/pkgs/development/interpreters/python/cpython/2.7/2.7.3-dylib.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.7.3-dylib.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.7.3-dylib.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch b/pkgs/development/interpreters/python/cpython/2.7/2.7.3-getpath-exe-extension.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.7.3-getpath-exe-extension.patch
diff --git a/pkgs/development/interpreters/python/2.7/2.7.3-no-libm.patch b/pkgs/development/interpreters/python/cpython/2.7/2.7.3-no-libm.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/2.7.3-no-libm.patch
rename to pkgs/development/interpreters/python/cpython/2.7/2.7.3-no-libm.patch
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
similarity index 98%
rename from pkgs/development/interpreters/python/2.7/default.nix
rename to pkgs/development/interpreters/python/cpython/2.7/default.nix
index aca88f504a0..96c098c82dc 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -160,8 +160,8 @@ let
inherit zlibSupport;
isPy2 = true;
isPy27 = true;
- buildEnv = callPackage ../wrapper.nix { python = self; };
- withPackages = import ../with-packages.nix { inherit buildEnv; pythonPackages = python27Packages; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = python27Packages; };
libPrefix = "python${majorVersion}";
executable = libPrefix;
sitePackages = "lib/${libPrefix}/site-packages";
diff --git a/pkgs/development/interpreters/python/2.7/deterministic-build.patch b/pkgs/development/interpreters/python/cpython/2.7/deterministic-build.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/deterministic-build.patch
rename to pkgs/development/interpreters/python/cpython/2.7/deterministic-build.patch
diff --git a/pkgs/development/interpreters/python/2.7/nix-store-mtime.patch b/pkgs/development/interpreters/python/cpython/2.7/nix-store-mtime.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/nix-store-mtime.patch
rename to pkgs/development/interpreters/python/cpython/2.7/nix-store-mtime.patch
diff --git a/pkgs/development/interpreters/python/2.7/no-ldconfig.patch b/pkgs/development/interpreters/python/cpython/2.7/no-ldconfig.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/no-ldconfig.patch
rename to pkgs/development/interpreters/python/cpython/2.7/no-ldconfig.patch
diff --git a/pkgs/development/interpreters/python/2.7/properly-detect-curses.patch b/pkgs/development/interpreters/python/cpython/2.7/properly-detect-curses.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/properly-detect-curses.patch
rename to pkgs/development/interpreters/python/cpython/2.7/properly-detect-curses.patch
diff --git a/pkgs/development/interpreters/python/2.7/search-path.patch b/pkgs/development/interpreters/python/cpython/2.7/search-path.patch
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/search-path.patch
rename to pkgs/development/interpreters/python/cpython/2.7/search-path.patch
diff --git a/pkgs/development/interpreters/python/2.7/setup-hook.sh b/pkgs/development/interpreters/python/cpython/2.7/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/python/2.7/setup-hook.sh
rename to pkgs/development/interpreters/python/cpython/2.7/setup-hook.sh
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/cpython/3.3/default.nix
similarity index 95%
rename from pkgs/development/interpreters/python/3.3/default.nix
rename to pkgs/development/interpreters/python/cpython/3.3/default.nix
index 8a36e03c784..1d2312fdc15 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.3/default.nix
@@ -88,8 +88,8 @@ stdenv.mkDerivation {
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
libPrefix = "python${majorVersion}";
executable = "python3.3m";
- buildEnv = callPackage ../wrapper.nix { python = self; };
- withPackages = import ../with-packages.nix { inherit buildEnv; pythonPackages = python33Packages; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = python33Packages; };
isPy3 = true;
isPy33 = true;
is_py3k = true; # deprecated
diff --git a/pkgs/development/interpreters/python/3.3/setup-hook.sh b/pkgs/development/interpreters/python/cpython/3.3/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/python/3.3/setup-hook.sh
rename to pkgs/development/interpreters/python/cpython/3.3/setup-hook.sh
diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/cpython/3.4/default.nix
similarity index 95%
rename from pkgs/development/interpreters/python/3.4/default.nix
rename to pkgs/development/interpreters/python/cpython/3.4/default.nix
index 7ea6adc4370..64c61e504b7 100644
--- a/pkgs/development/interpreters/python/3.4/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.4/default.nix
@@ -111,8 +111,8 @@ stdenv.mkDerivation {
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
libPrefix = "python${majorVersion}";
executable = "python3.4m";
- buildEnv = callPackage ../wrapper.nix { python = self; };
- withPackages = import ../with-packages.nix { inherit buildEnv; pythonPackages = python34Packages; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = python34Packages; };
isPy3 = true;
isPy34 = true;
is_py3k = true; # deprecated
diff --git a/pkgs/development/interpreters/python/3.4/setup-hook.sh b/pkgs/development/interpreters/python/cpython/3.4/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/python/3.4/setup-hook.sh
rename to pkgs/development/interpreters/python/cpython/3.4/setup-hook.sh
diff --git a/pkgs/development/interpreters/python/3.5/default.nix b/pkgs/development/interpreters/python/cpython/3.5/default.nix
similarity index 95%
rename from pkgs/development/interpreters/python/3.5/default.nix
rename to pkgs/development/interpreters/python/cpython/3.5/default.nix
index 21716c87386..c36d7c2a6eb 100644
--- a/pkgs/development/interpreters/python/3.5/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.5/default.nix
@@ -111,8 +111,8 @@ stdenv.mkDerivation {
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
libPrefix = "python${majorVersion}";
executable = "python${majorVersion}m";
- buildEnv = callPackage ../wrapper.nix { python = self; };
- withPackages = import ../with-packages.nix { inherit buildEnv; pythonPackages = python35Packages; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = python35Packages; };
isPy3 = true;
isPy35 = true;
is_py3k = true; # deprecated
diff --git a/pkgs/development/interpreters/python/3.5/setup-hook.sh b/pkgs/development/interpreters/python/cpython/3.5/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/python/3.5/setup-hook.sh
rename to pkgs/development/interpreters/python/cpython/3.5/setup-hook.sh
diff --git a/pkgs/development/interpreters/python/3.6/default.nix b/pkgs/development/interpreters/python/cpython/3.6/default.nix
similarity index 95%
rename from pkgs/development/interpreters/python/3.6/default.nix
rename to pkgs/development/interpreters/python/cpython/3.6/default.nix
index 9515e1587d7..a337b28859b 100644
--- a/pkgs/development/interpreters/python/3.6/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.6/default.nix
@@ -115,8 +115,8 @@ stdenv.mkDerivation {
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
libPrefix = "python${majorVersion}";
executable = "python${majorVersion}m";
- buildEnv = callPackage ../wrapper.nix { python = self; };
- withPackages = import ../with-packages.nix { inherit buildEnv; pythonPackages = python36Packages; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = python36Packages; };
isPy3 = true;
isPy35 = true;
is_py3k = true; # deprecated
diff --git a/pkgs/development/interpreters/python/3.6/setup-hook.sh b/pkgs/development/interpreters/python/cpython/3.6/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/python/3.6/setup-hook.sh
rename to pkgs/development/interpreters/python/cpython/3.6/setup-hook.sh
diff --git a/pkgs/development/interpreters/python/docs/2.6-html.nix b/pkgs/development/interpreters/python/cpython/docs/2.6-html.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.6-html.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.6-html.nix
diff --git a/pkgs/development/interpreters/python/docs/2.6-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/2.6-pdf-a4.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.6-pdf-a4.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.6-pdf-a4.nix
diff --git a/pkgs/development/interpreters/python/docs/2.6-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/2.6-pdf-letter.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.6-pdf-letter.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.6-pdf-letter.nix
diff --git a/pkgs/development/interpreters/python/docs/2.6-text.nix b/pkgs/development/interpreters/python/cpython/docs/2.6-text.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.6-text.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.6-text.nix
diff --git a/pkgs/development/interpreters/python/docs/2.7-html.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.7-html.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.7-html.nix
diff --git a/pkgs/development/interpreters/python/docs/2.7-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.7-pdf-a4.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix
diff --git a/pkgs/development/interpreters/python/docs/2.7-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.7-pdf-letter.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix
diff --git a/pkgs/development/interpreters/python/docs/2.7-text.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/2.7-text.nix
rename to pkgs/development/interpreters/python/cpython/docs/2.7-text.nix
diff --git a/pkgs/development/interpreters/python/docs/3.3-html.nix b/pkgs/development/interpreters/python/cpython/docs/3.3-html.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/3.3-html.nix
rename to pkgs/development/interpreters/python/cpython/docs/3.3-html.nix
diff --git a/pkgs/development/interpreters/python/docs/3.3-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/3.3-pdf-a4.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/3.3-pdf-a4.nix
rename to pkgs/development/interpreters/python/cpython/docs/3.3-pdf-a4.nix
diff --git a/pkgs/development/interpreters/python/docs/3.3-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/3.3-pdf-letter.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/3.3-pdf-letter.nix
rename to pkgs/development/interpreters/python/cpython/docs/3.3-pdf-letter.nix
diff --git a/pkgs/development/interpreters/python/docs/3.3-text.nix b/pkgs/development/interpreters/python/cpython/docs/3.3-text.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/3.3-text.nix
rename to pkgs/development/interpreters/python/cpython/docs/3.3-text.nix
diff --git a/pkgs/development/interpreters/python/docs/default.nix b/pkgs/development/interpreters/python/cpython/docs/default.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/default.nix
rename to pkgs/development/interpreters/python/cpython/docs/default.nix
diff --git a/pkgs/development/interpreters/python/docs/generate.sh b/pkgs/development/interpreters/python/cpython/docs/generate.sh
similarity index 100%
rename from pkgs/development/interpreters/python/docs/generate.sh
rename to pkgs/development/interpreters/python/cpython/docs/generate.sh
diff --git a/pkgs/development/interpreters/python/docs/template.nix b/pkgs/development/interpreters/python/cpython/docs/template.nix
similarity index 100%
rename from pkgs/development/interpreters/python/docs/template.nix
rename to pkgs/development/interpreters/python/cpython/docs/template.nix
diff --git a/pkgs/development/interpreters/pypy/default.nix b/pkgs/development/interpreters/python/pypy/2.7/default.nix
similarity index 96%
rename from pkgs/development/interpreters/pypy/default.nix
rename to pkgs/development/interpreters/python/pypy/2.7/default.nix
index f07e53e592f..ba6f5706bbd 100644
--- a/pkgs/development/interpreters/pypy/default.nix
+++ b/pkgs/development/interpreters/python/pypy/2.7/default.nix
@@ -117,10 +117,10 @@ let
inherit zlibSupport libPrefix;
executable = "pypy";
isPypy = true;
- buildEnv = callPackage ../python/wrapper.nix { python = self; };
+ buildEnv = callPackage ../../wrapper.nix { python = self; };
interpreter = "${self}/bin/${executable}";
sitePackages = "site-packages";
- withPackages = import ../python/with-packages.nix { inherit buildEnv; pythonPackages = pypyPackages; };
+ withPackages = import ../../with-packages.nix { inherit buildEnv; pythonPackages = pypyPackages; };
};
enableParallelBuilding = true; # almost no parallelization without STM
diff --git a/pkgs/development/interpreters/pypy/setup-hook.sh b/pkgs/development/interpreters/python/pypy/2.7/setup-hook.sh
similarity index 100%
rename from pkgs/development/interpreters/pypy/setup-hook.sh
rename to pkgs/development/interpreters/python/pypy/2.7/setup-hook.sh
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index 36019bdd7f7..f19f760c748 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -6,24 +6,18 @@
}:
composableDerivation.composableDerivation {} (fixed: rec {
- version = "2.0.2";
+ version = "2.1.1";
name = "gdal-${version}";
src = fetchurl {
url = "http://download.osgeo.org/gdal/${version}/${name}.tar.gz";
- sha256 = "db7722caf8d9dd798ec18012b9cacf40a518918466126a88b9fd277bd7d40cc4";
+ sha256 = "55fc6ffbe76e9d2e7e6cf637010e5d4bba6a966d065f40194ff798544198236b";
};
buildInputs = [ unzip libjpeg libtiff libpng proj openssl ]
++ (with pythonPackages; [ python numpy wrapPython ])
++ (stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ]);
- patches = [
- # This ensures that the python package is installed into gdal's prefix,
- # rather than trying to install into python's prefix.
- ./python.patch
- ];
-
# Don't use optimization for gcc >= 4.3. That's said to be causing segfaults.
# Unset CC and CXX as they confuse libtool.
preConfigure = "export CFLAGS=-O0 CXXFLAGS=-O0; unset CC CXX";
diff --git a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
index bf6df87a972..c87ba75b2b4 100644
--- a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
+++ b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
@@ -5,6 +5,6 @@ kdeFramework {
meta = { maintainers = [ lib.maintainers.ttuegel ]; };
outputs = [ "out" ];
nativeBuildInputs = [ ecm ];
- propagatedBuildInputs = [ qtsvg ];
+ buildInputs = [ qtsvg ];
propagatedUserEnvPkgs = [ qtsvg.out ];
}
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 74e9df114f0..bf27d52dceb 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -26,6 +26,9 @@ let
outputs = args.outputs or [ "dev" "out" ];
+ propagatedUserEnvPkgs =
+ builtins.map lib.getBin (args.propagatedBuildInputs or []);
+
cmakeFlags =
(args.cmakeFlags or [])
++ [ "-DBUILD_TESTING=OFF" ]
@@ -50,6 +53,16 @@ let
} // (args.meta or {});
});
+ kdeEnv = import ./kde-env.nix {
+ inherit (pkgs) stdenv lib;
+ inherit (pkgs.xorg) lndir;
+ };
+
+ kdeWrapper = import ./kde-wrapper.nix {
+ inherit (pkgs) stdenv lib makeWrapper;
+ inherit kdeEnv;
+ };
+
attica = callPackage ./attica.nix {};
baloo = callPackage ./baloo.nix {};
bluez-qt = callPackage ./bluez-qt.nix {};
diff --git a/pkgs/development/libraries/kde-frameworks/kde-env.nix b/pkgs/development/libraries/kde-frameworks/kde-env.nix
new file mode 100644
index 00000000000..c77ff49bfea
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kde-env.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, lndir }:
+
+drv: pkgs:
+
+stdenv.mkDerivation {
+ name = "kde-env-${drv.name}";
+ nativeBuildInputs = [ lndir ];
+ propagatedUserEnvPkgs = builtins.map lib.getBin ([drv] ++ pkgs);
+ unpackPhase = "true";
+ configurePhase = "runHook preConfigure; runHook postConfigure";
+ buildPhase = "true";
+ installPhase = ''
+ runHook preInstall
+
+ propagated=""
+ for i in $propagatedUserEnvPkgs; do
+ findInputs $i propagated propagated-user-env-packages
+ done
+
+ for tgt in bin etc/xdg lib/libexec lib/qt5 share; do
+ mkdir -p "$out/$tgt"
+ for p in $propagated; do
+ if [ -d "$p/$tgt" ]; then
+ lndir -silent "$p/$tgt" "$out/$tgt" >/dev/null 2>&1
+ fi
+ done
+ done
+
+ runHook postInstall
+ '';
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kde-wrapper.nix b/pkgs/development/libraries/kde-frameworks/kde-wrapper.nix
new file mode 100644
index 00000000000..95f9cdcecb7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kde-wrapper.nix
@@ -0,0 +1,47 @@
+{ stdenv, lib, makeWrapper, kdeEnv }:
+
+drv:
+
+{ targets, paths ? [] }:
+
+let
+ env = kdeEnv drv paths;
+in
+stdenv.mkDerivation {
+ inherit (drv) name;
+
+ drv = lib.getBin drv;
+ inherit env targets;
+ passthru = { unwrapped = drv; };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ unpackPhase = "true";
+ configurePhase = "runHook preConfigure; runHook postConfigure";
+ buildPhase = "true";
+
+ installPhase = ''
+ for t in $targets; do
+ if [ -a "$drv/$t" ]; then
+ makeWrapper "$drv/$t" "$out/$t" \
+ --argv0 '"$0"' \
+ --suffix PATH : "$out/bin:$env/bin" \
+ --prefix XDG_CONFIG_DIRS : "$env/etc/xdg" \
+ --prefix XDG_DATA_DIRS : "$env/share" \
+ --set QML_IMPORT_PATH "$env/lib/qt5/imports" \
+ --set QML2_IMPORT_PATH "$env/lib/qt5/qml" \
+ --set QT_PLUGIN_PATH "$env/lib/qt5/plugins"
+ else
+ echo "no such file or directory: $drv/$t"
+ exit 1
+ fi
+ done
+
+ for s in applications dbus-1 desktop-directories icons mime polkit-1; do
+ if [ -d "$env/share/$s" ]; then
+ mkdir -p "$out/share"
+ ln -s "$env/share/$s" "$out/share/$s"
+ fi
+ done
+ '';
+}
diff --git a/pkgs/development/libraries/kde-frameworks/setup-hook.sh b/pkgs/development/libraries/kde-frameworks/setup-hook.sh
index 5363f4e30fd..a1638ca541b 100644
--- a/pkgs/development/libraries/kde-frameworks/setup-hook.sh
+++ b/pkgs/development/libraries/kde-frameworks/setup-hook.sh
@@ -1,57 +1,9 @@
_ecmSetXdgDirs() {
addToSearchPathOnce XDG_DATA_DIRS "$1/share"
addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg"
- addToSearchPathOnce RUNTIME_XDG_CONFIG_DIRS "$1/etc/xdg"
}
-_ecmSharePaths=( \
- "appdata" \
- "applications" \
- "config.cfg" \
- "dbus-1" \
- "desktop-directories" \
- "doc" \
- "icons" \
- "kconf_update" \
- "kservices5" \
- "kservicetypes5" \
- "knotifications5" \
- "kxmlgui5" \
- "locale" \
- "mime" \
- "polkit-1" \
- "sounds" \
- "templates" \
- "wallpapers" \
- )
-
-_ecmPropagateNative() {
- for dir in ${_ecmSharePaths[@]}; do
- if [ -d "$1/share/$dir" ]; then
- propagateOnce propagatedNativeBuildInputs "$1"
- if [ -z "$crossConfig" ]; then
- propagateOnce propagatedUserEnvPkgs "$1"
- addToSearchPathOnce RUNTIME_XDG_DATA_DIRS "$1/share"
- fi
- break
- fi
- done
-}
-
-envHooks+=(_ecmSetXdgDirs _ecmPropagate)
-
-_ecmPropagate() {
- for dir in ${_ecmSharePaths[@]}; do
- if [ -d "$1/share/$dir" ]; then
- propagateOnce propagatedBuildInputs "$1"
- propagateOnce propagatedUserEnvPkgs "$1"
- addToSearchPathOnce RUNTIME_XDG_DATA_DIRS "$1/share"
- break
- fi
- done
-}
-
-crossEnvHooks+=(_ecmPropagate)
+envHooks+=(_ecmSetXdgDirs)
_ecmConfig() {
# Because we need to use absolute paths here, we must set *all* the paths.
@@ -59,41 +11,41 @@ _ecmConfig() {
cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib"
- cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec"
+ cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputBin}/lib/libexec"
cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
- cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins"
- cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins"
- cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports"
- cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml"
+ cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputBin}/lib/qt5/plugins"
+ cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputBin}/lib/qt5/plugins"
+ cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputBin}/lib/qt5/imports"
+ cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputBin}/lib/qt5/qml"
cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
- cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share"
- cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share"
- cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML"
- cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg"
- cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update"
- cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5"
- cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5"
- cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5"
- cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5"
- cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons"
- cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
- cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds"
- cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates"
- cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers"
- cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications"
- cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories"
- cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages"
- cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata"
- cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man"
- cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info"
- cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1"
- cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces"
- cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services"
- cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services"
- cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc"
- cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg"
- cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart"
+ cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputBin}/share"
+ cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputBin}/share"
+ cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputBin}/share/doc/HTML"
+ cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputBin}/share/config.kcfg"
+ cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputBin}/share/kconf_update"
+ cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputBin}/share/kservices5"
+ cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputBin}/share/kservicetypes5"
+ cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputBin}/share/kxmlgui5"
+ cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputBin}/share/knotifications5"
+ cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputBin}/share/icons"
+ cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputBin}/share/locale"
+ cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputBin}/share/sounds"
+ cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputBin}/share/templates"
+ cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputBin}/share/wallpapers"
+ cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputBin}/share/applications"
+ cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputBin}/share/desktop-directories"
+ cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputBin}/share/mime/packages"
+ cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputBin}/share/appdata"
+ cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputBin}/share/man"
+ cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputBin}/share/info"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputBin}/share/dbus-1"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputBin}/share/dbus-1/interfaces"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputBin}/share/dbus-1/services"
+ cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputBin}/share/dbus-1/system-services"
+ cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputBin}/etc"
+ cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputBin}/etc/xdg"
+ cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputBin}/etc/xdg/autostart"
}
preConfigureHooks+=(_ecmConfig)
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 3dfc9e2990e..a4b007fa399 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
buildInputs = [ boost cmake curl ];
+ # curl upgrade to 7.50.0 (#17152) broke the curl mock tests, disabling for now
+ # upstream bug raised https://tickets.puppetlabs.com/browse/LTH-108
+ cmakeFlags = [ "-DLEATHERMAN_MOCK_CURL=OFF" ];
+
meta = with stdenv.lib; {
homepage = https://github.com/puppetlabs/leatherman/;
description = "A collection of C++ and CMake utility libraries";
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 51b5ac5981e..e445af46e09 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,6 +1,8 @@
{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, libiconv, libintlOrEmpty
, zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg
-, minimal ? false, qt4Support ? false, qt4 ? null, qt5Support ? false, qtbase ? null
+, minimal ? false
+, qt4Support ? false, qt4 ? null
+, qt5Support ? false, qtbase ? null
, utils ? false, suffix ? "glib"
}:
@@ -31,6 +33,9 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
+ # Any package depending on Qt >= 5.7 must build using the C++11 standard.
+ CXXFLAGS = lib.optional qt5Support "-std=c++11";
+
configureFlags = with lib;
[
"--enable-xpdf-headers"
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index d01bc684f69..290b0d98fe0 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
homepage = http://pypi.python.org/pypi/setuptools;
license = with lib.licenses; [ psfl zpt20 ];
platforms = platforms.all;
+ priority = 10;
};
}
diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix
index f94b489908e..0c9e83cdb9a 100644
--- a/pkgs/games/construo/default.nix
+++ b/pkgs/games/construo/default.nix
@@ -1,29 +1,25 @@
-{ stdenv, fetchurl, builderDefs, libX11, zlib, xproto, mesa ? null, freeglut ? null }:
+{ stdenv, fetchurl, libX11, zlib, xproto, mesa ? null, freeglut ? null }:
- let localDefs = builderDefs.passthru.function {
- src = /* put a fetchurl here */
- fetchurl {
- url = http://savannah.nongnu.org/download/construo/construo-0.2.2.tar.gz;
- sha256 = "0c661rjasax4ykw77dgqj39jhb4qi48m0bhhdy42vd5a4rfdrcck";
- };
-
- buildInputs = [ libX11 zlib xproto ]
- ++ stdenv.lib.optional (mesa != null) mesa
- ++ stdenv.lib.optional (freeglut != null) freeglut;
- preConfigure = builderDefs.stringsWithDeps.fullDepEntry (''
- sed -e 's/math[.]h/cmath/' -i vector.cxx
- sed -e 's/games/bin/' -i Makefile.in
- sed -e '1i\#include ' -i construo_main.cxx -i command_line.cxx -i config.hxx
- sed -e '1i\#include ' -i command_line.cxx -i lisp_reader.cxx -i unix_system.cxx \
- -i world.cxx construo_main.cxx
- '') ["doUnpack" "minInit"];
- };
- in with localDefs;
stdenv.mkDerivation rec {
- name = "construo-0.2.2";
- builder = writeScript (name + "-builder")
- (textClosure localDefs ["preConfigure" "doConfigure" "doMakeInstall" "doForceShare" "doPropagate"]);
- meta = {
- description = "Masses and springs simulation game";
- };
+ name = "construo-${version}";
+ version = "0.2.3";
+
+ src = fetchurl {
+ url = "https://github.com/Construo/construo/releases/download/v${version}/${name}.tar.gz";
+ sha256 = "1wmj527hbj1qv44cdsj6ahfjrnrjwg2dp8gdick8nd07vm062qxa";
+ };
+
+ buildInputs = [ libX11 zlib xproto ]
+ ++ stdenv.lib.optional (mesa != null) mesa
+ ++ stdenv.lib.optional (freeglut != null) freeglut;
+
+ preConfigure = ''
+ substituteInPlace src/Makefile.in \
+ --replace games bin
+ '';
+
+ meta = {
+ description = "Masses and springs simulation game";
+ homepage = http://fs.fsf.org/construo/;
+ };
}
diff --git a/pkgs/games/holdingnuts/default.nix b/pkgs/games/holdingnuts/default.nix
new file mode 100644
index 00000000000..e6d6febeac6
--- /dev/null
+++ b/pkgs/games/holdingnuts/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, SDL, qt4 }:
+
+let mirror = "http://download.holdingnuts.net";
+in stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ pname = "holdingnuts";
+ version = "0.0.5";
+
+ src = fetchurl {
+ url = "${mirror}/release/${version}/${name}.tar.bz2";
+ sha256 = "0iw25jmnqzscg34v66d4zz70lvgjp4l7gi16nna6491xnqha5a8g";
+ };
+
+ patches = [
+ (fetchurl {
+ url = "${mirror}/patches/holdingnuts-0.0.5-wheel.patch";
+ sha256 = "0hap5anxgc19s5qi64mjpi3wpgphy4dqdxqw34q19dw3gwxw5g8n";
+ })
+ (fetchurl {
+ url = "${mirror}/patches/holdingnuts-qpixmapcache-workaround.patch";
+ sha256 = "15cf9j9mdm85f0h7w5f5852ic7xpim0243yywkd2qrfp37mi93pd";
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace src/system/SysAccess.c --replace /usr/share $out/share
+ '';
+
+ buildInputs = [ cmake SDL qt4 ];
+
+ meta = with stdenv.lib; {
+ homepage = http://www.holdingnuts.net/;
+ description = "Open Source Poker client and server";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ obadz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/misc/drivers/dell-530cdn/default.nix b/pkgs/misc/drivers/dell-530cdn/default.nix
new file mode 100644
index 00000000000..9b2f8bd47b3
--- /dev/null
+++ b/pkgs/misc/drivers/dell-530cdn/default.nix
@@ -0,0 +1,13 @@
+{ runCommand, fetchurl, rpm, cpio }: let
+ version = "1.3-1";
+
+ src = fetchurl {
+ url = "http://downloads.dell.com/printer/Dell-5130cdn-Color-Laser-${version}.noarch.rpm";
+ md5 = "7fb7122e67e40b99deb9665d88df62d1";
+ };
+in runCommand "Dell-5130cdn-Color-Laser-1.3-1" {} ''
+ mkdir -p usr/share/cups/model
+ ${rpm}/bin/rpm2cpio ${src} | ${cpio}/bin/cpio -i
+ mkdir -p $out/share/ppd
+ mv usr/share/cups/model/Dell $out/share/ppd
+''
diff --git a/pkgs/misc/long-shebang/default.nix b/pkgs/misc/long-shebang/default.nix
new file mode 100644
index 00000000000..17bf0e95fee
--- /dev/null
+++ b/pkgs/misc/long-shebang/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }: let
+ version = "1.0.0";
+in stdenv.mkDerivation {
+ name = "long-shebang-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/shlevy/long-shebang/releases/download/v1.0.0/long-shebang-1.0.0.tar.xz";
+ sha256 = "15f5rmihj3r53rmalix1bn1agybbzrc3g2a9xzjyd4v3vfd2vckr";
+ };
+
+ meta = {
+ description = "A tool for #! scripts with more than one argument";
+
+ homepage = https://github.com/shlevy/long-shebang;
+
+ license = stdenv.lib.licenses.mit;
+
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 64a0c3138c9..28b23a61ff0 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -1,43 +1,47 @@
{ stdenv, fetchurl, kernel }:
+
let
- version = "6.30.223.248";
+ version = "6.30.223.271";
+ hashes = {
+ i686-linux = "1kaqa2dw3nb8k23ffvx46g8jj3wdhz8xa6jp1v3wb35cjfr712sg";
+ x86_64-linux = "1gj485qqr190idilacpxwgqyw21il03zph2rddizgj7fbd6pfyaz";
+ };
+
+ arch = stdenv.lib.optionalString (stdenv.system == "x86_64-linux") "_64";
+ tarballVersion = stdenv.lib.replaceStrings ["."] ["_"] version;
+ tarball = "hybrid-v35${arch}-nodebug-pcoem-${tarballVersion}.tar.gz";
in
stdenv.mkDerivation {
name = "broadcom-sta-${version}-${kernel.version}";
- src = if stdenv.system == "i686-linux" then (
- fetchurl {
- url = http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz;
- sha256 = "1bd13pq5hj4yzp32rx71sg1i5wkzdsg1s32xsywb48lw88x595mi";
- } ) else (
- fetchurl {
- url = http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz;
- sha256 = "08ihbhwnqpnazskw9rlrk0alanp4x70kl8bsy2vg962iq334r69x";
- }
- );
+ src = fetchurl {
+ url = "http://www.broadcom.com/docs/linux_sta/${tarball}";
+ sha256 = hashes.${stdenv.system};
+ };
patches = [
+ ./i686-build-failure.patch
./license.patch
- ./linux-recent.patch
+ ./linux-4.7.patch
+ ./null-pointer-fix.patch
./gcc.patch
];
makeFlags = "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}";
unpackPhase = ''
- sourceRoot=broadcom-sta
- mkdir "$sourceRoot"
- tar xvf "$src" -C "$sourceRoot"
+ sourceRoot=broadcom-sta
+ mkdir "$sourceRoot"
+ tar xvf "$src" -C "$sourceRoot"
'';
- installPhase =
- ''
- binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
- docDir="$out/share/doc/broadcom-sta/"
- mkdir -p "$binDir" "$docDir"
- cp wl.ko "$binDir"
- cp lib/LICENSE.txt "$docDir"
- '';
+ installPhase = ''
+ binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+ docDir="$out/share/doc/broadcom-sta/"
+ mkdir -p "$binDir" "$docDir"
+ cp wl.ko "$binDir"
+ cp lib/LICENSE.txt "$docDir"
+ '';
meta = {
description = "Kernel module driver for some Broadcom's wireless cards";
diff --git a/pkgs/os-specific/linux/broadcom-sta/i686-build-failure.patch b/pkgs/os-specific/linux/broadcom-sta/i686-build-failure.patch
new file mode 100644
index 00000000000..cfa16075409
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/i686-build-failure.patch
@@ -0,0 +1,18 @@
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b
+
+diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c
+--- a/src/shared/linux_osl.c 2015-09-19 01:47:15.000000000 +0300
++++ b/src/shared/linux_osl.c 2015-11-21 15:20:30.585902518 +0200
+@@ -932,7 +932,11 @@
+ uint cycles;
+
+ #if defined(__i386__)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
++ cycles = (u32)rdtsc();
++#else
+ rdtscl(cycles);
++#endif
+ #else
+ cycles = 0;
+ #endif
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.7.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.7.patch
new file mode 100644
index 00000000000..566680a0914
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-4.7.patch
@@ -0,0 +1,109 @@
+Since Linux 4.7, the enum ieee80211_band is no longer used
+
+This shall cause no problem's since both enums ieee80211_band
+and nl80211_band were added in the same commit:
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475c
+
+This patch refactors the references of IEEE80211_BAND_* to NL80211_BAND_*
+
+Reference:
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa3
+
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:57:36.159340297 -0500
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:58:18.442323435 -0500
+@@ -236,7 +236,7 @@
+ #endif
+
+ #define CHAN2G(_channel, _freq, _flags) { \
+- .band = IEEE80211_BAND_2GHZ, \
++ .band = NL80211_BAND_2GHZ, \
+ .center_freq = (_freq), \
+ .hw_value = (_channel), \
+ .flags = (_flags), \
+@@ -245,7 +245,7 @@
+ }
+
+ #define CHAN5G(_channel, _flags) { \
+- .band = IEEE80211_BAND_5GHZ, \
++ .band = NL80211_BAND_5GHZ, \
+ .center_freq = 5000 + (5 * (_channel)), \
+ .hw_value = (_channel), \
+ .flags = (_flags), \
+@@ -379,7 +379,7 @@
+ };
+
+ static struct ieee80211_supported_band __wl_band_2ghz = {
+- .band = IEEE80211_BAND_2GHZ,
++ .band = NL80211_BAND_2GHZ,
+ .channels = __wl_2ghz_channels,
+ .n_channels = ARRAY_SIZE(__wl_2ghz_channels),
+ .bitrates = wl_g_rates,
+@@ -387,7 +387,7 @@
+ };
+
+ static struct ieee80211_supported_band __wl_band_5ghz_a = {
+- .band = IEEE80211_BAND_5GHZ,
++ .band = NL80211_BAND_5GHZ,
+ .channels = __wl_5ghz_a_channels,
+ .n_channels = ARRAY_SIZE(__wl_5ghz_a_channels),
+ .bitrates = wl_a_rates,
+@@ -395,7 +395,7 @@
+ };
+
+ static struct ieee80211_supported_band __wl_band_5ghz_n = {
+- .band = IEEE80211_BAND_5GHZ,
++ .band = NL80211_BAND_5GHZ,
+ .channels = __wl_5ghz_n_channels,
+ .n_channels = ARRAY_SIZE(__wl_5ghz_n_channels),
+ .bitrates = wl_a_rates,
+@@ -1876,8 +1876,8 @@
+ wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX;
+ #endif
+ wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
+- wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz;
+- wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a;
++ wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz;
++ wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a;
+ wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
+ wdev->wiphy->cipher_suites = __wl_cipher_suites;
+ wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites);
+@@ -2000,7 +2000,7 @@
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
+ freq = ieee80211_channel_to_frequency(notif_bss_info->channel,
+ (notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ?
+- IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
++ NL80211_BAND_2GHZ : NL80211_BAND_5GHZ);
+ #else
+ freq = ieee80211_channel_to_frequency(notif_bss_info->channel);
+ #endif
+@@ -2116,7 +2116,7 @@
+ return err;
+ }
+ chan = wf_chspec_ctlchan(chanspec);
+- band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ;
++ band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ;
+ freq = ieee80211_channel_to_frequency(chan, band);
+ channel = ieee80211_get_channel(wiphy, freq);
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
+@@ -2250,10 +2250,10 @@
+ join_params->params.chanspec_list[0] =
+ ieee80211_frequency_to_channel(chan->center_freq);
+
+- if (chan->band == IEEE80211_BAND_2GHZ) {
++ if (chan->band == NL80211_BAND_2GHZ) {
+ chanspec |= WL_CHANSPEC_BAND_2G;
+ }
+- else if (chan->band == IEEE80211_BAND_5GHZ) {
++ else if (chan->band == NL80211_BAND_5GHZ) {
+ chanspec |= WL_CHANSPEC_BAND_5G;
+ }
+ else {
+@@ -2885,7 +2885,7 @@
+
+ if (phy == 'n' || phy == 'a' || phy == 'v') {
+ wiphy = wl_to_wiphy(wl);
+- wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n;
++ wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n;
+ }
+
+ return err;
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-recent.patch b/pkgs/os-specific/linux/broadcom-sta/linux-recent.patch
deleted file mode 100644
index a690558eb5b..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta/linux-recent.patch
+++ /dev/null
@@ -1,386 +0,0 @@
---- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
-+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-04-13 13:20:08.140013177 +0200
-@@ -63,8 +63,13 @@
- static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_ibss_params *params);
- static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
- static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
- struct net_device *dev, u8 *mac, struct station_info *sinfo);
-+#else
-+static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
-+ struct net_device *dev, const u8 *mac, struct station_info *sinfo);
-+#endif
- static s32 wl_cfg80211_set_power_mgmt(struct wiphy *wiphy,
- struct net_device *dev, bool enabled, s32 timeout);
- static int wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
-@@ -1387,7 +1392,7 @@
- key_endian_to_host(&key);
-
- params.key_len = (u8) min_t(u8, DOT11_MAX_KEY_SIZE, key.len);
-- memcpy(params.key, key.data, params.key_len);
-+ memcpy((char *)params.key, key.data, params.key_len);
-
- if ((err = wl_dev_ioctl(dev, WLC_GET_WSEC, &wsec, sizeof(wsec)))) {
- return err;
-@@ -1421,9 +1426,15 @@
- return err;
- }
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
- static s32
- wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac, struct station_info *sinfo)
-+#else
-+static s32
-+wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
-+ const u8 *mac, struct station_info *sinfo)
-+#endif
- {
- struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
- scb_val_t scb_val;
-@@ -1441,7 +1452,11 @@
- WL_DBG(("Could not get rate (%d)\n", err));
- } else {
- rate = dtoh32(rate);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
- sinfo->filled |= STATION_INFO_TX_BITRATE;
-+#else
-+ sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
-+#endif
- sinfo->txrate.legacy = rate * 5;
- WL_DBG(("Rate %d Mbps\n", (rate / 2)));
- }
-@@ -1454,7 +1469,11 @@
- return err;
- }
- rssi = dtoh32(scb_val.val);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
- sinfo->filled |= STATION_INFO_SIGNAL;
-+#else
-+ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
-+#endif
- sinfo->signal = rssi;
- WL_DBG(("RSSI %d dBm\n", rssi));
- }
-@@ -2010,9 +2029,15 @@
-
- notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
- notify_ielen = le32_to_cpu(bi->ie_length);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
-+#else
-+ cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
-+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
-+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
-+#endif
-
- if (unlikely(!cbss))
- return -ENOMEM;
-@@ -2047,7 +2072,11 @@
- }
- else if ((event == WLC_E_LINK && ~(flags & WLC_EVENT_MSG_LINK)) ||
- event == WLC_E_DEAUTH_IND || event == WLC_E_DISASSOC_IND) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
-+ cfg80211_disconnected(ndev, 0, NULL, 0, false, GFP_KERNEL);
-+#else
- cfg80211_disconnected(ndev, 0, NULL, 0, GFP_KERNEL);
-+#endif
- clear_bit(WL_STATUS_CONNECTED, &wl->status);
- wl_link_down(wl);
- wl_init_prof(wl->profile);
-@@ -2071,7 +2100,26 @@
- wl_get_assoc_ies(wl);
- memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
- wl_update_bss_info(wl);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
-+ {
-+ struct wl_bss_info *bi;
-+ u16 bss_info_channel;
-+ struct ieee80211_channel *channel;
-+ u32 freq;
-+
-+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
-+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
-+
-+ freq = ieee80211_channel_to_frequency(bss_info_channel,
-+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
-+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
-+
-+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
-+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
-+ }
-+#else
- cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
-+#endif
- set_bit(WL_STATUS_CONNECTED, &wl->status);
- wl->profile->active = true;
- }
-@@ -2629,7 +2677,15 @@
-
- void wl_cfg80211_detach(struct net_device *ndev)
- {
-- struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
-+ struct wl_cfg80211_priv *wl;
-+ struct wireless_dev *wdev;
-+
-+ wdev = ndev->ieee80211_ptr;
-+ if (wdev == NULL) {
-+ printk(KERN_ERR "[%s()] in ndev=%p: IEEE80211ptr=%p\n", __FUNCTION__, ndev, wdev);
-+ return;
-+ }
-+ wl = ndev_to_wl(ndev);
-
- wl_deinit_cfg80211_priv(wl);
- wl_free_wdev(wl);
---- a/src/wl/sys/wl_dbg.h 2014-06-26 12:42:08.000000000 +0200
-+++ b/src/wl/sys/wl_dbg.h 2015-04-13 13:19:52.443345832 +0200
-@@ -55,10 +55,12 @@
-
- #define WL_NONE(args)
-
-+#define FORCE_TRACE_LEVEL(fmt, ...) do { printk(KERN_ERR fmt, ## __VA_ARGS__); } while (0) /* ## is GCC specific syntax to remove comma when single arg */
-+
- #ifdef BCMDBG_ERR
- #define WL_ERROR(args) WL_PRINT(args)
- #else
--#define WL_ERROR(args)
-+#define WL_ERROR(args) FORCE_TRACE_LEVEL args
- #endif
- #define WL_TRACE(args)
- #define WL_APSTA_UPDN(args)
---- a/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
-+++ b/src/wl/sys/wl_linux.c 2015-04-13 13:19:52.443345832 +0200
-@@ -878,7 +878,7 @@
- static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
- #endif
-
--static struct pci_driver wl_pci_driver = {
-+static struct pci_driver wl_pci_driver __refdata = {
- .name = "wl",
- .probe = wl_pci_probe,
- .remove = __devexit_p(wl_remove),
-@@ -1270,6 +1270,7 @@
- MFREE(wl->osh, wlif->dev, sizeof(struct net_device));
- #else
- free_netdev(wlif->dev);
-+ wlif->dev = NULL;
- #endif
- }
-
-@@ -1307,7 +1308,12 @@
- dev->priv = priv_link;
- #else
-
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
- dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
-+#else
-+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
-+ ether_setup);
-+#endif
- if (!dev) {
- WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
- (wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
-@@ -1651,11 +1657,7 @@
- }
-
- WL_LOCK(wl);
-- if (!capable(CAP_NET_ADMIN)) {
-- bcmerror = BCME_EPERM;
-- } else {
-- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
-- }
-+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
- WL_UNLOCK(wl);
-
- done1:
-@@ -2157,8 +2159,8 @@
- wlif = WL_DEV_IF(dev);
- wl = WL_INFO(dev);
-
-+ skb->prev = NULL;
- if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
-- skb->prev = NULL;
-
- TXQ_LOCK(wl);
-
-@@ -2455,8 +2457,10 @@
- p80211msg_t *phdr;
-
- len = sizeof(p80211msg_t) + oskb->len - D11_PHY_HDR_LEN;
-- if ((skb = dev_alloc_skb(len)) == NULL)
-+ if ((skb = dev_alloc_skb(len)) == NULL) {
-+ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
- return;
-+ }
-
- skb_put(skb, len);
- phdr = (p80211msg_t*)skb->data;
-@@ -2535,8 +2539,10 @@
- rtap_len = sizeof(wl_radiotap_ht_brcm_2_t);
-
- len = rtap_len + (oskb->len - D11_PHY_HDR_LEN);
-- if ((skb = dev_alloc_skb(len)) == NULL)
-+ if ((skb = dev_alloc_skb(len)) == NULL) {
-+ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
- return;
-+ }
-
- skb_put(skb, len);
-
-@@ -2664,8 +2670,10 @@
- len += amsdu_len;
- }
-
-- if ((skb = dev_alloc_skb(len)) == NULL)
-+ if ((skb = dev_alloc_skb(len)) == NULL) {
-+ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
- return;
-+ }
-
- skb_put(skb, len);
-
-@@ -2990,7 +2998,7 @@
- }
-
- void
--wl_set_monitor(wl_info_t *wl, int val)
-+wl_set_monitor(wl_info_t *wl, int val) /* public => is called by wlc_hybrid.o_shipped */
- {
- const char *devname;
- wl_if_t *wlif;
-@@ -3224,42 +3232,75 @@
- #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
- static int
- wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
-+{
-+ wl_info_t * wl = (wl_info_t *)data;
- #else
- static ssize_t
--wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *data)
--#endif
-+wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp)
- {
-- wl_info_t * wl = (wl_info_t *)data;
-- int to_user;
-- int len;
-+ wl_info_t * wl = PDE_DATA(file_inode(filp));
-+#endif
-+ int bcmerror, len;
-+ int to_user = 0;
-+ char tmp[8];
-
- #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
- if (offset > 0) {
- *eof = 1;
- return 0;
- }
-+#else
-+ if (*offp > 0) { /* for example, stop: cat /proc/brcm_monitor0 */
-+ return 0; /* 0 <=> EOF */
-+ }
- #endif
-
-- if (!length) {
-- WL_ERROR(("%s: Not enough return buf space\n", __FUNCTION__));
-- return 0;
-- }
- WL_LOCK(wl);
-- wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
-- len = sprintf(buffer, "%d\n", to_user);
-- WL_UNLOCK(wl);
-- return len;
-+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
-+ WL_UNLOCK(wl);
-+
-+ if (bcmerror != BCME_OK) {
-+ WL_ERROR(("%s: GET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
-+ return -EIO;
-+ }
-+
-+ len = snprintf(tmp, ARRAY_SIZE(tmp), "%d\n", to_user);
-+ tmp[ARRAY_SIZE(tmp) - 1] = '\0';
-+ if (len >= ARRAY_SIZE(tmp)) {
-+ printk(KERN_ERR "%s:%d [%s()] output would be truncated (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len);
-+ return -ERANGE;
-+ }
-+ else if (len < 0) {
-+ printk(KERN_ERR "%s:%d [%s()] unable to convert value (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len);
-+ return len;
-+ }
-+ if (length < len) {
-+ printk(KERN_ERR "%s:%d [%s()] user buffer is too small (at least=%d ; user=%d)!", __FILE__, __LINE__, __FUNCTION__, len, (int)length);
-+ return -EMSGSIZE;
-+ }
-+ if (copy_to_user(buffer, tmp, len) != 0) {
-+ printk(KERN_ERR "%s:%d [%s()] unable to copy data!", __FILE__, __LINE__, __FUNCTION__);
-+ return -EFAULT;
-+ }
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
-+ *offp += len;
-+#endif
-+
-+ return len;
- }
-
- #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
- static int
- wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *data)
-+{
-+ wl_info_t * wl = (wl_info_t *)data;
- #else
- static ssize_t
--wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *data)
--#endif
-+wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp)
- {
-- wl_info_t * wl = (wl_info_t *)data;
-+ wl_info_t * wl = PDE_DATA(file_inode(filp));
-+#endif
- int from_user = 0;
- int bcmerror;
-
-@@ -3270,7 +3311,11 @@
- }
- if (copy_from_user(&from_user, buff, 1)) {
- WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
-- return -EIO;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
-+ return -EIO;
-+#else
-+ return -EFAULT;
-+#endif
- }
-
- if (from_user >= 0x30)
-@@ -3280,10 +3325,15 @@
- bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
- WL_UNLOCK(wl);
-
-- if (bcmerror < 0) {
-+ if (bcmerror != BCME_OK) {
- WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
- return -EIO;
- }
-+
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) && 0 /* no need to update offset because this file should only trigger action... */
-+ *offp += length;
-+#endif
-+
- return length;
- }
-
-@@ -3304,8 +3354,8 @@
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
- WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
- #else
-- if ((wl->proc_entry = proc_create(tmp, 0644, NULL, &wl_fops)) == NULL) {
-- WL_ERROR(("%s: proc_create %s failed\n", __FUNCTION__, tmp));
-+ if ((wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_fops, wl)) == NULL) {
-+ WL_ERROR(("%s: proc_create_data %s failed\n", __FUNCTION__, tmp));
- #endif
- ASSERT(0);
- return -1;
diff --git a/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch b/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch
new file mode 100644
index 00000000000..76379729430
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch
@@ -0,0 +1,13 @@
+diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c 2015-01-06 12:33:42.981659618 +0100
++++ b/src/wl/sys/wl_linux.c 2015-01-06 12:34:05.647395418 +0100
+@@ -2157,8 +2157,8 @@
+ wlif = WL_DEV_IF(dev);
+ wl = WL_INFO(dev);
+
++ skb->prev = NULL;
+ if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+- skb->prev = NULL;
+
+ TXQ_LOCK(wl);
+
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index e538a527f50..375f0e3b0b4 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -94,8 +94,8 @@ rec {
grsecurity_testing = grsecPatch
{ kver = "4.6.5";
- grrev = "201607272152";
- sha256 = "120rj3cpvbchihj3w3i9j2fxvap3270kfxjfznw2ljglzf7pi8zc";
+ grrev = "201607312210";
+ sha256 = "17dnp6w092kvqxqxbdgjpl4mrsn2wkb7z8q5d8ck7dfanpmqap0w";
};
# This patch relaxes grsec constraints on the location of usermode helpers,
diff --git a/pkgs/os-specific/linux/nvidia-x11/365.35-kernel-4.7.patch b/pkgs/os-specific/linux/nvidia-x11/365.35-kernel-4.7.patch
new file mode 100644
index 00000000000..8d1436c5094
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/365.35-kernel-4.7.patch
@@ -0,0 +1,40 @@
+diff -Naur NVIDIA-Linux-x86_64-367.35-no-compat32-upstream/kernel/nvidia-drm/nvidia-drm-fb.c NVIDIA-Linux-x86_64-367.35-no-compat32/kernel/nvidia-drm/nvidia-drm-fb.c
+--- NVIDIA-Linux-x86_64-367.35-no-compat32-upstream/kernel/nvidia-drm/nvidia-drm-fb.c 2016-07-31 19:07:06.595038290 -0400
++++ NVIDIA-Linux-x86_64-367.35-no-compat32/kernel/nvidia-drm/nvidia-drm-fb.c 2016-07-31 19:09:18.532197060 -0400
+@@ -114,7 +114,7 @@
+ * We don't support any planar format, pick up first buffer only.
+ */
+
+- gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
++ gem = drm_gem_object_lookup(file, cmd->handles[0]);
+
+ if (gem == NULL)
+ {
+diff -Naur NVIDIA-Linux-x86_64-367.35-no-compat32-upstream/kernel/nvidia-drm/nvidia-drm-gem.c NVIDIA-Linux-x86_64-367.35-no-compat32/kernel/nvidia-drm/nvidia-drm-gem.c
+--- NVIDIA-Linux-x86_64-367.35-no-compat32-upstream/kernel/nvidia-drm/nvidia-drm-gem.c 2016-07-31 19:07:06.595038290 -0400
++++ NVIDIA-Linux-x86_64-367.35-no-compat32/kernel/nvidia-drm/nvidia-drm-gem.c 2016-07-31 19:08:56.187492736 -0400
+@@ -408,7 +408,7 @@
+
+ mutex_lock(&dev->struct_mutex);
+
+- gem = drm_gem_object_lookup(dev, file, handle);
++ gem = drm_gem_object_lookup(file, handle);
+
+ if (gem == NULL)
+ {
+diff -Naur NVIDIA-Linux-x86_64-367.35-no-compat32-upstream/kernel/nvidia-uvm/uvm_linux.h NVIDIA-Linux-x86_64-367.35-no-compat32/kernel/nvidia-uvm/uvm_linux.h
+--- NVIDIA-Linux-x86_64-367.35-no-compat32-upstream/kernel/nvidia-uvm/uvm_linux.h 2016-07-31 19:07:06.600038448 -0400
++++ NVIDIA-Linux-x86_64-367.35-no-compat32/kernel/nvidia-uvm/uvm_linux.h 2016-07-31 19:08:06.506926763 -0400
+@@ -554,12 +554,6 @@
+ INIT_RADIX_TREE(tree, GFP_NOWAIT);
+ }
+
+-static bool radix_tree_empty(struct radix_tree_root *tree)
+-{
+- void *dummy;
+- return radix_tree_gang_lookup(tree, &dummy, 0, 1) == 0;
+-}
+-
+
+ #if !defined(NV_USLEEP_RANGE_PRESENT)
+ static void __sched usleep_range(unsigned long min, unsigned long max)
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index e3be760700b..5edf03bf409 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -12,7 +12,7 @@ assert (!libsOnly) -> kernel != null;
let
- versionNumber = "361.45.11";
+ versionNumber = "367.35";
# Policy: use the highest stable version as the default (on our master).
inherit (stdenv.lib) makeLibraryPath;
@@ -28,12 +28,12 @@ stdenv.mkDerivation {
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
- sha256 = "036v7bzh9zy7zvaz2wf7zsamrynbg1yr1dll7sf1l928w059i6pb";
+ sha256 = "05g36bxcfk21ab8b0ay3zy21k5nd71468p9y1nbflx7ghpx25jrq";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
- sha256 = "1f8bxmf8cr3cgzxgap5ccb1yrqyrrdig19dp282y6z9xjq27l074";
+ sha256 = "0m4k8f0212l63h22wk6hgi8fbfsgxqih5mizsw4ixqqmjd75av4a";
}
else throw "nvidia-x11 does not support platform ${stdenv.system}";
@@ -53,6 +53,8 @@ stdenv.mkDerivation {
[ gtk atk pango glib gdk_pixbuf cairo ] );
programPath = makeLibraryPath [ xorg.libXv ];
+ patches = if versionAtLeast kernel.version "4.7" then [ ./365.35-kernel-4.7.patch ] else [];
+
buildInputs = [ perl nukeReferences ];
disallowedReferences = if libsOnly then [] else [ kernel.dev ];
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 26cdb3d78ef..96f874139d5 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -27,7 +27,7 @@ buildPythonApplication rec {
blist canonicaljson daemonize dateutil frozendict pillow pybcrypt pyasn1
pydenticon pymacaroons-pynacl pynacl pyopenssl pysaml2 pytz requests2
service-identity signedjson systemd twisted ujson unpaddedbase64 pyyaml
- matrix-angular-sdk bleach netaddr jinja2 psycopg2
+ matrix-angular-sdk bleach netaddr jinja2 psycopg2 python.modules.curses
];
# Checks fail because of Tox.
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index 16a2ec21079..69d6377b664 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
{ stdenv, fetchurl, lua }:
stdenv.mkDerivation rec {
- version = "3.0.7";
+ version = "3.2.2";
name = "redis-${version}";
src = fetchurl {
url = "http://download.redis.io/releases/${name}.tar.gz";
- sha256 = "08vzfdr67gp3lvk770qpax2c5g2sx8hn6p64jn3jddrvxb2939xj";
+ sha256 = "05cf63502b2248b5d39588962100bfa4fcb47dabd56931a8cb60b301b1d8daea";
};
buildInputs = [ lua ];
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 33de429d531..9dcfbd10b35 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -6,7 +6,6 @@
, enableBadfiles ? true, flac ? null, mp3val ? null
, enableConvert ? true, ffmpeg ? null
, enableDiscogs ? true
-, enableEchonest ? true
, enableEmbyupdate ? true
, enableFetchart ? true
, enableLastfm ? true
@@ -25,7 +24,6 @@ assert enableAcoustid -> pythonPackages.pyacoustid != null;
assert enableBadfiles -> flac != null && mp3val != null;
assert enableConvert -> ffmpeg != null;
assert enableDiscogs -> pythonPackages.discogs_client != null;
-assert enableEchonest -> pythonPackages.pyechonest != null;
assert enableFetchart -> pythonPackages.responses != null;
assert enableLastfm -> pythonPackages.pylast != null;
assert enableMpd -> pythonPackages.mpd != null;
@@ -42,7 +40,6 @@ let
chroma = enableAcoustid;
convert = enableConvert;
discogs = enableDiscogs;
- echonest = enableEchonest;
embyupdate = enableEmbyupdate;
fetchart = enableFetchart;
lastgenre = enableLastfm;
@@ -55,8 +52,8 @@ let
};
pluginsWithoutDeps = [
- "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
- "filefilter" "freedesktop" "fromfilename" "ftintitle" "fuzzy" "ihate"
+ "beatport" "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
+ "export" "filefilter" "freedesktop" "fromfilename" "ftintitle" "fuzzy" "hook" "ihate"
"importadded" "importfeeds" "info" "inline" "ipfs" "keyfinder" "lyrics"
"mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "permissions" "play"
"plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
@@ -73,14 +70,14 @@ let
in buildPythonApplication rec {
name = "beets-${version}";
- version = "1.3.17";
+ version = "1.3.19";
namePrefix = "";
src = fetchFromGitHub {
owner = "sampsyo";
repo = "beets";
rev = "v${version}";
- sha256 = "1fskxx5xxjqf4xmfjrinh7idjiq6qncb24hiyccv09l47fr1yipc";
+ sha256 = "0f2v1924ryx5xijpv1jycanl4471vcd7c5lld58lm0viyvh5k28x";
};
propagatedBuildInputs = [
@@ -101,7 +98,6 @@ in buildPythonApplication rec {
pythonPackages.requests2
++ optional enableConvert ffmpeg
++ optional enableDiscogs pythonPackages.discogs_client
- ++ optional enableEchonest pythonPackages.pyechonest
++ optional enableLastfm pythonPackages.pylast
++ optional enableMpd pythonPackages.mpd
++ optional enableThumbnails pythonPackages.pyxdg
diff --git a/pkgs/tools/backup/rdup/default.nix b/pkgs/tools/backup/rdup/default.nix
new file mode 100644
index 00000000000..8ca07e2c823
--- /dev/null
+++ b/pkgs/tools/backup/rdup/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, glib, pcre }:
+
+stdenv.mkDerivation rec {
+ name = "rdup-${version}";
+ version = "1.1.15";
+
+ src = fetchFromGitHub {
+ owner = "miekg";
+ repo = "rdup";
+ rev = "d66e4320cd0bbcc83253baddafe87f9e0e83caa6";
+ sha256 = "0bzyv6qmnivxnv9nw7lnfn46k0m1dlxcjj53zcva6v8y8084l1iw";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ glib pcre ];
+
+ meta = {
+ description = "The only backup program that doesn't make backups";
+ homepage = "https://github.com/miekg/rdup";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ lukasepple ];
+ };
+}
diff --git a/pkgs/tools/misc/cpuminer-multi/default.nix b/pkgs/tools/misc/cpuminer-multi/default.nix
index 5657703d3f2..9c8a54b5545 100644
--- a/pkgs/tools/misc/cpuminer-multi/default.nix
+++ b/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -2,8 +2,8 @@
, aesni ? true }:
let
- rev = "977dad27e18627e5b723800f5f4201e385fe0d2e";
- date = "20140723";
+ rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
+ date = "20160316";
in
stdenv.mkDerivation rec {
name = "cpuminer-multi-${date}-${stdenv.lib.strings.substring 0 7 rev}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
src = fetchgit {
inherit rev;
url = https://github.com/wolf9466/cpuminer-multi.git;
- sha256 = "1lzaiwy2wk9awpzpfnp3d6dymnb4bvgw1vg2433plfqhi9jfdrqj";
+ sha256 = "11dg4rra4dgfb9x6q85irn0hrkx2lkwyrdpgdh10pag09s3vhy4v";
};
buildInputs = [ autoconf automake curl jansson ];
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/wolf9466/cpuminer-multi;
license = licenses.gpl2;
maintainers = [ maintainers.ehmry ];
+ platforms = platforms.linux;
};
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
new file mode 100644
index 00000000000..08dcc184b3c
--- /dev/null
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ name = "tmuxp-${version}";
+ version = "1.2.0";
+
+ namePrefix = "";
+
+ src = fetchurl {
+ url = "mirror://pypi/t/tmuxp/${name}.tar.gz";
+ sha256 = "05z5ssv9glsqmcy9fdq06bawy1274dnzqsqd3a4z4jd0w6j09smn";
+ };
+
+ propagatedBuildInputs = with pythonPackages; [
+ click colorama kaptan libtmux
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Manage tmux workspaces from JSON and YAML";
+ homepage = "http://tmuxp.readthedocs.io";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jgeerds ];
+ };
+}
diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix
index 1a8621effd5..51762006b62 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -3,12 +3,12 @@
# Packaging documentation at:
# https://github.com/untitaker/vdirsyncer/blob/master/docs/packaging.rst
pythonPackages.buildPythonApplication rec {
- version = "0.11.2";
+ version = "0.11.3";
name = "vdirsyncer-${version}";
src = fetchurl {
url = "mirror://pypi/v/vdirsyncer/${name}.tar.gz";
- sha256 = "15isw2jhjfxi213wdj9d8mwq2m58k8bwf831qnxrjcz7j7bwy7mj";
+ sha256 = "10majl58vdpxgbddjqgwblvl7akvvr4c2c8iaxnf3kgyh01jq6k9";
};
propagatedBuildInputs = with pythonPackages; [
diff --git a/pkgs/tools/networking/dnscrypt-proxy/default.nix b/pkgs/tools/networking/dnscrypt-proxy/default.nix
index 3dadbeedd4d..1eac3cf6c02 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "dnscrypt-proxy-${version}";
- version = "1.6.1";
+ version = "1.7.0";
src = fetchurl {
url = "https://download.dnscrypt.org/dnscrypt-proxy/${name}.tar.bz2";
- sha256 = "16lif3qhyfjpgg54vjlwpslxk90akmbhlpnn1szxm628bmpw6nl9";
+ sha256 = "1qw2nib0d5ia8581lbdnjxgn9c7pf2qw8vhpnnh1wjcjj3gpgbqx";
};
configureFlags = optional stdenv.isLinux "--with-systemd";
diff --git a/pkgs/tools/networking/unbound/python.nix b/pkgs/tools/networking/unbound/python.nix
new file mode 100644
index 00000000000..5d7096ab168
--- /dev/null
+++ b/pkgs/tools/networking/unbound/python.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, openssl, expat, libevent, swig, pythonPackages }:
+
+let
+ inherit (pythonPackages) python;
+in stdenv.mkDerivation rec {
+ pname = "pyunbound";
+ name = "${pname}-${version}";
+ version = "1.5.9";
+
+ src = fetchurl {
+ url = "http://unbound.net/downloads/unbound-${version}.tar.gz";
+ sha256 = "01328cfac99ab5b8c47115151896a244979e442e284eb962c0ea84b7782b6990";
+ };
+
+ buildInputs = [ openssl expat libevent swig python ];
+
+ patchPhase = ''substituteInPlace Makefile.in \
+ --replace "\$(DESTDIR)\$(PYTHON_SITE_PKG)" "$out/${python.sitePackages}" \
+ --replace "\$(LIBTOOL) --mode=install cp _unbound.la" "cp _unbound.la"
+ '';
+
+ preConfigure = "export PYTHON_VERSION=${python.majorVersion}";
+
+ configureFlags = [
+ "--with-ssl=${openssl.dev}"
+ "--with-libexpat=${expat.dev}"
+ "--with-libevent=${libevent.dev}"
+ "--localstatedir=/var"
+ "--sysconfdir=/etc"
+ "--sbindir=\${out}/bin"
+ "--enable-pie"
+ "--enable-relro-now"
+ "--with-pyunbound"
+ "DESTDIR=$out PREFIX="
+ ];
+
+ preInstall = ''
+ mkdir -p $out/${python.sitePackages} $out/etc/${pname}
+ cp .libs/_unbound.so .libs/libunbound.so* $out/${python.sitePackages}
+ substituteInPlace _unbound.la \
+ --replace "-L.libs $PWD/libunbound.la" "-L$out/${python.sitePackages}" \
+ --replace "libdir=\'$PWD/${python.sitePackages}\'" "libdir=\'$out/${python.sitePackages}\'"
+ '';
+
+ installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf pyunbound-install lib" ];
+
+ # All we want is the Unbound Python module
+ postInstall = ''
+ # Generate the built in root anchor and root key and store these in a logical place
+ # to be used by tools depending only on the Python module
+ $out/bin/unbound-anchor -l | head -1 > $out/etc/${pname}/root.anchor
+ $out/bin/unbound-anchor -l | tail --lines=+2 - > $out/etc/${pname}/root.key
+ # We don't need anything else
+ rm -fR $out/bin $out/share $out/include $out/etc/unbound
+ patchelf --replace-needed libunbound.so.2 $out/${python.sitePackages}/libunbound.so.2 $out/${python.sitePackages}/_unbound.so
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Python library for Unbound, the validating, recursive, and caching DNS resolver";
+ license = licenses.bsd3;
+ homepage = http://www.unbound.net;
+ maintainers = with maintainers; [ leenaars ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/pkgs/tools/security/afl/default.nix b/pkgs/tools/security/afl/default.nix
index a252dad5ea1..eac593e0076 100644
--- a/pkgs/tools/security/afl/default.nix
+++ b/pkgs/tools/security/afl/default.nix
@@ -9,11 +9,11 @@ let
in
stdenv.mkDerivation rec {
name = "afl-${version}";
- version = "2.10b";
+ version = "2.23b";
src = fetchurl {
url = "http://lcamtuf.coredump.cx/afl/releases/${name}.tgz";
- sha256 = "1qxz3szsdr3ciz496mjb5v2k8p90nilgnlbwwv9csk828qb2jhc1";
+ sha256 = "152pqrc0py6jk1i3pwn2k928bsgax0d4yavpa3ca29bmrbzpnadh";
};
# Note: libcgroup isn't needed for building, just for the afl-cgroup
diff --git a/pkgs/tools/security/hash-slinger/default.nix b/pkgs/tools/security/hash-slinger/default.nix
new file mode 100644
index 00000000000..4d60b11f977
--- /dev/null
+++ b/pkgs/tools/security/hash-slinger/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, pythonPackages, openssh, gnupg, unbound, libreswan }:
+
+let
+ inherit (pythonPackages) python;
+in stdenv.mkDerivation rec {
+ pname = "hash-slinger";
+ name = "${pname}-${version}";
+ version = "2.7";
+
+ src = fetchFromGitHub {
+ owner = "letoams";
+ repo = "${pname}";
+ rev = "${version}";
+ sha256 = "05wn744ydclpnpyah6yfjqlfjlasrrhzj48lqmm5a91nyps5yqyn";
+ };
+
+ pythonPath = with pythonPackages; [ dns m2crypto ipaddr python-gnupg
+ pyunbound ];
+
+ buildInputs = [ pythonPackages.wrapPython ];
+ propagatedBuildInputs = [ unbound libreswan ] ++ pythonPath;
+ propagatedUserEnvPkgs = [ unbound libreswan ];
+
+ patchPhase = ''
+ substituteInPlace Makefile \
+ --replace "$(DESTDIR)/usr" "$out"
+ substituteInPlace ipseckey \
+ --replace "/usr/sbin/ipsec" "${libreswan}/sbin/ipsec"
+ substituteInPlace tlsa \
+ --replace "/var/lib/unbound/root" "${pythonPackages.pyunbound}/etc/pyunbound/root"
+ patchShebangs *
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/man $out/${python.sitePackages}/
+ make install
+ wrapPythonPrograms
+ '';
+
+ meta = {
+ description = "Various tools to generate special DNS records";
+ homepage = "https://github.com/letoams/hash-slinger";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.leenaars ];
+ };
+}
diff --git a/pkgs/tools/system/acct/default.nix b/pkgs/tools/system/acct/default.nix
index c99d20d7953..4263709fe9a 100644
--- a/pkgs/tools/system/acct/default.nix
+++ b/pkgs/tools/system/acct/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
homepage = http://www.gnu.org/software/acct/;
maintainers = with maintainers; [ pSub ];
- platforms = with platforms; allBut cygwin;
+ platforms = platforms.linux;
};
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c1b5613e11c..a716d5bc5af 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -823,6 +823,8 @@ in
interlock = callPackage ../servers/interlock {};
+ long-shebang = callPackage ../misc/long-shebang {};
+
mathics = pythonPackages.mathics;
mcrl = callPackage ../tools/misc/mcrl { };
@@ -1962,6 +1964,8 @@ in
hashcat = callPackage ../tools/security/hashcat { };
+ hash-slinger = callPackage ../tools/security/hash-slinger { };
+
hal-flash = callPackage ../os-specific/linux/hal-flash { };
halibut = callPackage ../tools/typesetting/halibut { };
@@ -3698,6 +3702,8 @@ in
tmux-cssh = callPackage ../tools/misc/tmux-cssh { };
+ tmuxp = callPackage ../tools/misc/tmuxp { };
+
tmuxinator = callPackage ../tools/misc/tmuxinator { };
tmin = callPackage ../tools/security/tmin { };
@@ -5457,9 +5463,7 @@ in
stdenv = overrideCC stdenv gcc49;
};
- ponyc = callPackage ../development/compilers/ponyc {
- llvm = llvm_36;
- };
+ ponyc = callPackage ../development/compilers/ponyc { };
qcmm = callPackage ../development/compilers/qcmm {
lua = lua4;
@@ -5883,31 +5887,34 @@ in
python2Packages = python27Packages;
python3Packages = python35Packages;
- python26 = callPackage ../development/interpreters/python/2.6 {
+ python26 = callPackage ../development/interpreters/python/cpython/2.6 {
db = db47;
self = python26;
};
- python27 = callPackage ../development/interpreters/python/2.7 {
+ python27 = callPackage ../development/interpreters/python/cpython/2.7 {
self = python27;
inherit (darwin) CF configd;
};
- python33 = callPackage ../development/interpreters/python/3.3 {
+ python33 = callPackage ../development/interpreters/python/cpython/3.3 {
self = python33;
};
- python34 = hiPrio (callPackage ../development/interpreters/python/3.4 {
+ python34 = hiPrio (callPackage ../development/interpreters/python/cpython/3.4 {
inherit (darwin) CF configd;
self = python34;
});
- python35 = hiPrio (callPackage ../development/interpreters/python/3.5 {
+ python35 = hiPrio (callPackage ../development/interpreters/python/cpython/3.5 {
inherit (darwin) CF configd;
self = python35;
});
- python36 = callPackage ../development/interpreters/python/3.6 {
+ python36 = callPackage ../development/interpreters/python/cpython/3.6 {
inherit (darwin) CF configd;
self = python36;
};
- pypy = callPackage ../development/interpreters/pypy {
- self = pypy;
+
+ pypy = pypy27;
+
+ pypy27 = callPackage ../development/interpreters/python/pypy/2.7 {
+ self = pypy27;
};
pythonFull = python2Full;
@@ -5923,7 +5930,7 @@ in
python2nix = callPackage ../tools/package-management/python2nix { };
- pythonDocs = recurseIntoAttrs (callPackage ../development/interpreters/python/docs {});
+ pythonDocs = recurseIntoAttrs (callPackage ../development/interpreters/python/cpython/docs {});
pypi2nix = callPackage ../development/tools/pypi2nix { python = python35; };
@@ -13884,6 +13891,8 @@ in
inherit (gnome) libgnomecanvas glib;
};
+ moonlight-embedded = callPackage ../applications/misc/moonlight-embedded { };
+
mop = callPackage ../applications/misc/mop { };
mopidy = callPackage ../applications/audio/mopidy { };
@@ -14112,6 +14121,8 @@ in
sphinx = pythonPackages.sphinx;
};
+ notmuch-mutt = callPackage ../applications/networking/mailreaders/notmuch/mutt.nix { };
+
# Open Stack
nova = callPackage ../applications/virtualization/openstack/nova.nix { };
keystone = callPackage ../applications/virtualization/openstack/keystone.nix { };
@@ -14427,6 +14438,8 @@ in
rdesktop = callPackage ../applications/networking/remote/rdesktop { };
+ rdup = callPackage ../tools/backup/rdup { };
+
recode = callPackage ../tools/text/recode { };
remotebox = callPackage ../applications/virtualization/remotebox { };
@@ -15654,6 +15667,8 @@ in
hexen = callPackage ../games/hexen { };
+ holdingnuts = callPackage ../games/holdingnuts { };
+
icbm3d = callPackage ../games/icbm3d { };
ingen = callPackage ../applications/audio/ingen {
@@ -16993,6 +17008,8 @@ in
dbus-map = callPackage ../tools/misc/dbus-map { };
+ dell-530cdn = callPackage ../misc/drivers/dell-530cdn {};
+
dosbox = callPackage ../misc/emulators/dosbox { };
dpkg = callPackage ../tools/package-management/dpkg { };
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index b664dceaa95..2fe69390ec5 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -15,7 +15,7 @@ releaseTools.sourceTarball rec {
src = nixpkgs;
inherit officialRelease;
- version = builtins.readFile ../../.version;
+ version = pkgs.lib.fileContents ../../.version;
versionSuffix = "pre${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
buildInputs = [ nix.out jq ];
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index e87964fd9a6..d746a45753c 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -6956,6 +6956,15 @@ let self = _self // overrides; _self = with self; {
};
};
+ Later = buildPerlPackage rec {
+ version = "0.19";
+ name = "Object-Realize-Later-${version}";
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/M/MA/MARKOV/${name}.tar.gz";
+ sha256 = "0ka0qar51kk5wlvd2s3yis3w9qc14h0ngn0ds0v6c8ssmjvfcgbz";
+ };
+ };
+
lib_ = buildPerlPackage {
name = "lib-0.63";
src = fetchurl {
@@ -7601,6 +7610,36 @@ let self = _self // overrides; _self = with self; {
inherit fetchurl buildPerlPackage stdenv DBDmysql;
};
+ MailMaildir = buildPerlPackage rec {
+ version = "1.0.0";
+ name = "Mail-Maildir-${version}";
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/Z/ZE/ZEROALTI/Mail-Maildir-100/${name}.tar.bz2";
+ sha256 = "1krkqfps6q3ifrhi9450l5gm9199qyfcm6vidllr0dv65kdaqpj4";
+ };
+ };
+
+ MailBox = buildPerlPackage rec {
+ version = "2.118";
+ name = "Mail-Box-${version}";
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/M/MA/MARKOV/${name}.tar.gz";
+ sha256 = "1ixi7xpvj8kn2y0l8rxkvdnnl7x5wqg7mi2av0viwdh5l828dcfc";
+ };
+
+ doCheck = false;
+
+ propagatedBuildInputs = [
+ Later
+
+ DevelGlobalDestruction
+ FileRemove
+ IOStringy
+ MailTools
+ MIMETypes
+ ];
+ };
+
MailMboxMessageParser = buildPerlPackage rec {
name = "Mail-Mbox-MessageParser-1.5105";
src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 76fd4596e54..2e70212bc13 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -24,16 +24,6 @@ let
buildPythonApplication = args: buildPythonPackage ({namePrefix="";} // args );
- # Unique python version identifier
- pythonName =
- if isPy26 then "python26" else
- if isPy27 then "python27" else
- if isPy33 then "python33" else
- if isPy34 then "python34" else
- if isPy35 then "python35" else
- if isPy36 then "python36" else
- if isPyPy then "pypy" else "";
-
modules = python.modules or {
readline = null;
sqlite3 = null;
@@ -44,7 +34,7 @@ let
in modules // {
- inherit python bootstrapped-pip isPy26 isPy27 isPy33 isPy34 isPy35 isPy36 isPyPy isPy3k pythonName buildPythonPackage buildPythonApplication;
+ inherit python bootstrapped-pip isPy26 isPy27 isPy33 isPy34 isPy35 isPy36 isPyPy isPy3k buildPythonPackage buildPythonApplication;
# helpers
@@ -327,6 +317,8 @@ in modules // {
hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
};
+ pyunbound = callPackage ../tools/networking/unbound/python.nix { };
+
# packages defined here
aafigure = buildPythonPackage rec {
@@ -846,13 +838,13 @@ in modules // {
};
ansible2 = buildPythonPackage rec {
- version = "2.1.0.0";
+ version = "2.1.1.0";
name = "ansible-${version}";
disabled = isPy3k;
src = pkgs.fetchurl {
url = "http://releases.ansible.com/ansible/${name}.tar.gz";
- sha256 = "1bfc2xiplpad6f2nwi48y0kps7xqnsll85dlz63cy8k5bysl6d20";
+ sha256 = "12v7smivjz8d2skk5qxl83nmkxqxypjm8b7ld40sjfwj4g0kkrv1";
};
prePatch = ''
@@ -1359,13 +1351,13 @@ in modules // {
awscli = buildPythonPackage rec {
name = "awscli-${version}";
- version = "1.10.46";
+ version = "1.10.51";
namePrefix = "";
src = pkgs.fetchurl {
url = "mirror://pypi/a/awscli/${name}.tar.gz";
- sha256 = "1d2xjhdmjna9zxa4ybk7cjypib5yq2gd3w5fgpb4lfs6bh3mr554";
+ sha256 = "19n7r6fwnwpi0cyrqh20w80mrcj0b6j3if5p58hi1k3fdp60nscq";
};
# No tests included
@@ -2776,12 +2768,12 @@ in modules // {
};
botocore = buildPythonPackage rec {
- version = "1.4.36"; # This version is required by awscli
+ version = "1.4.41"; # This version is required by awscli
name = "botocore-${version}";
src = pkgs.fetchurl {
url = "mirror://pypi/b/botocore/${name}.tar.gz";
- sha256 = "0mkydnbbn0x97nfzwqia68zw2y5j7i9yzpq5kasvc80n2z999h39";
+ sha256 = "0c3abr2rxiilqklika8x360pr0mgx7hlhbhj8w72izs2r6ww4dys";
};
propagatedBuildInputs =
@@ -3225,7 +3217,7 @@ in modules // {
name = "celery-${version}";
version = "3.1.23";
- disabled = pythonOlder "2.6";
+ disabled = (pythonOlder "2.6") || isPy35;
src = pkgs.fetchurl {
url = "mirror://pypi/c/celery/${name}.tar.gz";
@@ -4926,6 +4918,24 @@ in modules // {
};
};
+ libtmux = buildPythonPackage rec {
+ name = "libtmux-${version}";
+ version = "0.5.0";
+
+ src = pkgs.fetchurl {
+ url = "mirror://pypi/l/libtmux/${name}.tar.gz";
+ sha256 = "0fwydaahgflz9w753v1cmkfzrlfq1vb8zp4i20m2d3lvkm4crv93";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Scripting library for tmux";
+ homepage = https://libtmux.readthedocs.io/;
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jgeerds ];
+ };
+ };
+
locket = buildPythonPackage rec {
name = "locket-${version}";
version = "0.2.0";
@@ -6517,14 +6527,12 @@ in modules // {
};
git-up = buildPythonPackage rec {
- version = "1.4.0";
+ version = "1.4.1";
name = "git-up-${version}";
- src = pkgs.fetchFromGitHub {
- owner = "msiemens";
- repo = "PyGitUp";
- rev = "v${version}";
- sha256 = "1g7sxiqg6vxx2jlgg8pg9fqsk1xgvm80d7mcpw8i3mw7r835q4bi";
+ src = pkgs.fetchurl {
+ url = "mirror://pypi/g/git-up/${name}.zip";
+ sha256 = "1nsdzjnla0926fzfsqnwyzg3f7g253n8lk4wgw8nj2rv0awbdmas";
};
buildInputs = with self; [ pkgs.git nose ];
@@ -8494,6 +8502,23 @@ in modules // {
};
};
+ schedule = buildPythonPackage rec {
+ name = "schedule-0.3.2";
+
+ src = pkgs.fetchurl {
+ url = "https://pypi.python.org/packages/10/96/d101fab391753ebc81fa3bb0e744df1ddcfb032c31b036d38083f8994db1/schedule-0.3.2.tar.gz";
+ sha256 = "1h0waw4jd5ql68y5kxb9irwapkbkwfs1w0asvbl24fq5f8czdijm";
+ };
+
+ buildInputs = with self; [ mock ];
+
+ meta = with stdenv.lib; {
+ description = "Python job scheduling for humans";
+ homepage = https://github.com/dbader/schedule;
+ license = licenses.mit;
+ };
+ };
+
substanced = buildPythonPackage rec {
# no release yet
rev = "089818bc61c3dc5eca023254e37a280b041ea8cc";
@@ -9023,8 +9048,6 @@ in modules // {
name = "django-colorful-${version}";
version = "1.2";
- disabled = isPy35;
-
src = pkgs.fetchurl {
url = "mirror://pypi/d/django-colorful/${name}.tar.gz";
sha256 = "0y34hzvfrm1xbxrd8frybc9yzgqvz4c07frafipjikw7kfjsw8az";
@@ -9227,6 +9250,25 @@ in modules // {
};
};
+ django_raster = buildPythonPackage rec {
+ name = "django-raster-${version}";
+ version = "0.2";
+
+ src = pkgs.fetchurl {
+ url = "mirror://pypi/d/django-raster/${name}.tar.gz";
+ sha256 = "1zdcxzj43qrv7cl6q9nb2dkfnsyn74dzf2igpnd6nbbfdnkif9bm";
+ };
+
+ propagatedBuildInputs = with self ; [ numpy django_colorful pillow psycopg2
+ pyparsing django celery ];
+
+ meta = {
+ description = "Basic raster data integration for Django";
+ homepage = https://github.com/geodesign/django-raster;
+ license = licenses.mit;
+ };
+ };
+
django_redis = buildPythonPackage rec {
name = "django-redis-${version}";
version = "4.2.0";
@@ -9406,6 +9448,25 @@ in modules // {
};
};
+ kaptan = buildPythonPackage rec {
+ name = "kaptan-${version}";
+ version = "0.5.8";
+
+ src = pkgs.fetchurl {
+ url = "mirror://pypi/k/kaptan/${name}.tar.gz";
+ sha256 = "1b8r86yyvdvyxd6f10mhkl6cr2jhxm80jjqr4zch96w9hs9rh5vq";
+ };
+
+ propagatedBuildInputs = with self; [ pyyaml ];
+
+ meta = with stdenv.lib; {
+ description = "Configuration manager for python applications";
+ homepage = https://emre.github.io/kaptan/;
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ jgeerds ];
+ };
+ };
keepalive = buildPythonPackage rec {
name = "keepalive-${version}";
@@ -12081,13 +12142,13 @@ in modules // {
};
# most of these are simply to allow the test suite to do its job
- buildInputs = with self; [ mock unittest2 nose redis qpid-python pymongo sqlalchemy pyyaml msgpack boto ];
+ buildInputs = with self; optionals isPy27 [ mock unittest2 nose redis qpid-python pymongo sqlalchemy pyyaml msgpack boto ];
propagatedBuildInputs = with self; [ amqp anyjson ] ++
(optionals (pythonOlder "2.7") [ importlib ordereddict ]);
# tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806
- doCheck = (pythonAtLeast "2.7");
+ doCheck = isPy27;
meta = {
description = "Messaging library for Python";
@@ -13418,15 +13479,26 @@ in modules // {
};
mutagen = buildPythonPackage (rec {
- name = "mutagen-1.27";
+ name = "mutagen-1.32";
src = pkgs.fetchurl {
url = "mirror://pypi/m/mutagen/${name}.tar.gz";
- sha256 = "cc884fe1e20fe220be7ce7c3b269f4cadc69a8310150a3a41162fba1ca9c88bd";
+ sha256 = "1d9sxl442xjj7pdyjj5h0dsjyd7d3wqswr8icqqgqdmg9k8dw8bp";
};
# Needed for tests only
- buildInputs = [ pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz ];
+ buildInputs = [ pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz
+ pkgs.glibcLocales
+ ];
+ LC_ALL = "en_US.UTF-8";
+
+ # Remove test that fails due to missing encoding in nix_run_setup.py, a
+ # file that buildPythonPackage copies to source trees at build time.
+ # PR with fix: https://github.com/NixOS/nixpkgs/pull/17430
+ # ("python: add file encoding to run_setup.py")
+ preBuild = ''
+ rm tests/test_encoding.py
+ '';
meta = {
description = "Python multimedia tagging library";