From 1eb1fec3aee1f1d1084779acec001e13ee9cbd71 Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Mon, 8 Oct 2018 12:53:07 +0200 Subject: [PATCH 001/106] Fix build for rPackages.units --- pkgs/development/r-modules/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix index 9bbab76d4a2f..854ba88996c5 100644 --- a/pkgs/development/r-modules/default.nix +++ b/pkgs/development/r-modules/default.nix @@ -367,6 +367,7 @@ let tkrplot = [ pkgs.xorg.libX11 pkgs.tk.dev ]; topicmodels = [ pkgs.gsl_1 ]; udunits2 = [ pkgs.udunits pkgs.expat ]; + units = [ pkgs.udunits ]; V8 = [ pkgs.v8_3_14 ]; VBLPCM = [ pkgs.gsl_1 ]; WhopGenome = [ pkgs.zlib.dev ]; From 21293d2576ac6c041b8c26cd05664e54038dfcf2 Mon Sep 17 00:00:00 2001 From: pacien Date: Mon, 8 Oct 2018 16:51:37 +0200 Subject: [PATCH 002/106] tinc: 1.0.34 -> 1.0.35, 1.1pre16 -> 1.1pre17 Critical security update (CVE-2018-16737, CVE-2018-16738, CVE-2018-16758) (cherry picked from commit 15a190eb27167c1817e0d5154394d0b3d768a56c) --- pkgs/tools/networking/tinc/default.nix | 4 ++-- pkgs/tools/networking/tinc/pre.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/networking/tinc/default.nix b/pkgs/tools/networking/tinc/default.nix index bf039b653cc6..a17f382557ac 100644 --- a/pkgs/tools/networking/tinc/default.nix +++ b/pkgs/tools/networking/tinc/default.nix @@ -1,12 +1,12 @@ {stdenv, fetchurl, lzo, openssl, zlib}: stdenv.mkDerivation rec { - version = "1.0.34"; + version = "1.0.35"; name = "tinc-${version}"; src = fetchurl { url = "https://www.tinc-vpn.org/packages/tinc-${version}.tar.gz"; - sha256 = "1nngdp2x5kykrgh13q5wjry8m82vahqv53csvlb22ifxvrhrnfn0"; + sha256 = "0pl92sdwrkiwgll78x0ww06hfljd07mkwm62g8x17qn3gha3pj0q"; }; buildInputs = [ lzo openssl zlib ]; diff --git a/pkgs/tools/networking/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix index 09c737c048ae..0cc1fb99455a 100644 --- a/pkgs/tools/networking/tinc/pre.nix +++ b/pkgs/tools/networking/tinc/pre.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "tinc-${version}"; - version = "1.1pre16"; + version = "1.1pre17"; src = fetchgit { rev = "refs/tags/release-${version}"; url = "git://tinc-vpn.org/tinc"; - sha256 = "03dsm1kxagq8srskzg649xyhbdqbbqxc84pdwrz7yakpa9m6225c"; + sha256 = "12abmx9qglchgn94a1qwgzldf2kaz77p8705ylpggzyncxv6bw2q"; }; outputs = [ "out" "man" "info" ]; From d0b24be55da0949b73c5266e77089d5362a23e38 Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Mon, 8 Oct 2018 18:02:13 +0200 Subject: [PATCH 003/106] debian vm tools: use snapshot.debian.org snapshot.debian.org actually keeps track of all of the updates as they come in rather than doing arbitrary (?) snapshots. (cherry picked from commit 9cc18fa7f969e7671a34cf85e6296be9e9823f63) --- pkgs/build-support/vm/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 67c67c881776..7880d98e6b6a 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -990,8 +990,8 @@ rec { name = "debian-9.4-stretch-i386"; fullName = "Debian 9.4 Stretch (i386)"; packagesList = fetchurl { - url = mirror://debian/dists/stretch/main/binary-i386/Packages.xz; - sha256 = "05z5ccg4ysbrgallhai53sh83i0364w7a3fdq84dpv1li059jf10"; + url = http://snapshot.debian.org/archive/debian/20180912T154744Z/dists/stretch/main/binary-i386/Packages.xz; + sha256 = "0flvn8zn7vk04p10ndf3aq0mdr8k2ic01g51aq4lsllkv8lmwzyh"; }; urlPrefix = mirror://debian; packages = commonDebianPackages; @@ -1001,8 +1001,8 @@ rec { name = "debian-9.4-stretch-amd64"; fullName = "Debian 9.4 Stretch (amd64)"; packagesList = fetchurl { - url = mirror://debian/dists/stretch/main/binary-amd64/Packages.xz; - sha256 = "19j0c54b1b9lbk9fv2c2aswdh0s2c3klf97zrlmsz4hs8wm9jylq"; + url = http://snapshot.debian.org/archive/debian/20180912T154744Z/dists/stretch/main/binary-amd64/Packages.xz; + sha256 = "11vnn9bba2jabixvabfbw9zparl326c88xn99di7pbr5xsnl15jm"; }; urlPrefix = mirror://debian; packages = commonDebianPackages; From 76c1cd35d05506ae014fd0af90e3b9aeba614b13 Mon Sep 17 00:00:00 2001 From: Arian van Putten Date: Fri, 5 Oct 2018 15:42:15 +0200 Subject: [PATCH 004/106] nixos-container: Force container to talk to host nix-daemon When logging into a container by using nixos-container root-login all nix-related commands in the container would fail, as they tried to modify the nix db and nix store, which are mounted read-only in the container. We want nixos-container to not try to modify the nix store at all, but instead delegate any build commands to the nix daemon of the host operating system. This already works for non-root users inside a nixos-container, as it doesn't 'own' the nix-store, and thus defaults to talking to the daemon socket at /nix/var/nix/daemon-socket/, which is bind-mounted to the host daemon-socket, causing all nix commands to be delegated to the host. However, when we are the root user inside the container, we have the same uid as the nix store owner, eventhough it's not actually the same root user (due to user namespaces). Nix gets confused, and is convinced it's running in single-user mode, and tries to modify the nix store directly instead. By setting `NIX_REMOTE=daemon` in `/etc/profile`, we force nix to operate in multi-user mode, so that it will talk to the host daemon instead, which will modify the nix store for the container. This fixes #40355 (cherry picked from commit 3624bb536244ea99f9f9a6d18ff00bbe4a5204af) --- nixos/modules/virtualisation/container-config.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nixos/modules/virtualisation/container-config.nix b/nixos/modules/virtualisation/container-config.nix index 5e368acd6d8b..561db7cabcfb 100644 --- a/nixos/modules/virtualisation/container-config.nix +++ b/nixos/modules/virtualisation/container-config.nix @@ -22,6 +22,13 @@ with lib; # Not supported in systemd-nspawn containers. security.audit.enable = false; + # Make sure that root user in container will talk to host nix-daemon + environment.etc."profile".text = '' + export NIX_REMOTE=daemon + ''; + + + }; } From cf9b801b60882da6decfb7098e1d7728dade6894 Mon Sep 17 00:00:00 2001 From: Arian van Putten Date: Fri, 5 Oct 2018 15:48:41 +0200 Subject: [PATCH 005/106] Revert "Revert "Revert "doc: Update section about imperative containers""" nixos-container can now execute nix commands again inside the container This reverts commit 9622cd3b38ddbc7faa4cac2a48dbd70bd99570d0. (cherry picked from commit bb31835b1d2d1933a6c1d2cb196491ba1efa9233) --- .../administration/imperative-containers.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml index fa380477f6cb..9bb62bc2ece9 100644 --- a/nixos/doc/manual/administration/imperative-containers.xml +++ b/nixos/doc/manual/administration/imperative-containers.xml @@ -73,7 +73,8 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux - To change the configuration of the container, you can edit + There are several ways to change the configuration of the container. First, + on the host, you can edit /var/lib/container/name/etc/nixos/configuration.nix, and run @@ -86,7 +87,8 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux = true; = "foo@example.org"; = [ 80 ]; - ' +' + # curl http://$(nixos-container show-ip foo)/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">… @@ -95,13 +97,11 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux - Note that in previous versions of NixOS (17.09 and earlier) one could also - use all nix-related commands (like nixos-rebuild switch) - from inside the container. However, since the release of Nix 2.0 this is not - supported anymore. Supporting Nix commands inside the container might be - possible again in future versions. See - the github - issue for tracking progress on this issue. + Alternatively, you can change the configuration from within the container + itself by running nixos-rebuild switch inside the + container. Note that the container by default does not have a copy of the + NixOS channel, so you should run nix-channel --update + first. From 1ada6fcde10ab6cc766802d933d1e72f0828b155 Mon Sep 17 00:00:00 2001 From: Arian van Putten Date: Fri, 5 Oct 2018 16:13:42 +0200 Subject: [PATCH 006/106] nixos/containers: Add regression test for #40355 (cherry picked from commit 0668906e8470bb1bfa03a47cbedec5050a16a905) --- nixos/tests/containers-imperative.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/tests/containers-imperative.nix b/nixos/tests/containers-imperative.nix index 6f86819f4e88..782095a09dad 100644 --- a/nixos/tests/containers-imperative.nix +++ b/nixos/tests/containers-imperative.nix @@ -86,6 +86,9 @@ import ./make-test.nix ({ pkgs, ...} : { # Execute commands via the root shell. $machine->succeed("nixos-container run $id1 -- uname") =~ /Linux/ or die; + # Execute a nix command via the root shell. (regression test for #40355) + $machine->succeed("nixos-container run $id1 -- nix-instantiate -E 'derivation { name = \"empty\"; builder = \"false\"; system = \"false\"; }'"); + # Stop and start (regression test for #4989) $machine->succeed("nixos-container stop $id1"); $machine->succeed("nixos-container start $id1"); From 01762972bece00e4bdf39b0ae1e6189023db176a Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 8 Oct 2018 20:13:31 -0400 Subject: [PATCH 007/106] sbt: 1.2.3 -> 1.2.4 (cherry picked from commit 844bcbd13728fc55f5459341287e5e8943a5418f) --- pkgs/development/tools/build-managers/sbt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix index bbbbbf462ec8..60f342db12aa 100644 --- a/pkgs/development/tools/build-managers/sbt/default.nix +++ b/pkgs/development/tools/build-managers/sbt/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { name = "sbt-${version}"; - version = "1.2.3"; + version = "1.2.4"; src = fetchurl { urls = [ @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz" "https://cocl.us/sbt-${version}.tgz" ]; - sha256 = "1szyp9hgrvr3r5rhr98cn5mkhca1mr0qfs6cd8fiihm6hzjzn0nm"; + sha256 = "06zv1mm4rhl0h6qa7m4w5lbwjcyqp43r183q36q9zlyip965mnrn"; }; patchPhase = '' From de37b4c18c09bf9144bda1e0ea5c1513be04d42a Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Tue, 9 Oct 2018 13:25:11 +0200 Subject: [PATCH 008/106] vdirsyncer: fix build I'm not entirely sure what's going on here. The exact same code works on master. --- pkgs/tools/misc/vdirsyncer/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix index 0655264cc542..c273ef879682 100644 --- a/pkgs/tools/misc/vdirsyncer/default.nix +++ b/pkgs/tools/misc/vdirsyncer/default.nix @@ -41,7 +41,7 @@ in pythonPackages.buildPythonApplication rec { preBuild = '' mkdir -p rust/target/release - ln -s ${native}/bin/libvdirsyncer_rustext* rust/target/release/ + ln -s ${native}/lib/libvdirsyncer_rustext* rust/target/release/ ''; LC_ALL = "en_US.utf8"; From 9bf0cd9ccbe4c76ea63edbcdcecb3be4ce4befca Mon Sep 17 00:00:00 2001 From: Andreas Rammhold Date: Tue, 9 Oct 2018 22:44:29 +0200 Subject: [PATCH 009/106] net_snmp: fix CVE-2018-18065 (cherry picked from commit 2f7c24295357240da704cb28c4240ecef36bcd7c) --- .../monitoring/net-snmp/CVE-2018-18065.patch | 30 +++++++++++++++++++ pkgs/servers/monitoring/net-snmp/default.nix | 1 + 2 files changed, 31 insertions(+) create mode 100644 pkgs/servers/monitoring/net-snmp/CVE-2018-18065.patch diff --git a/pkgs/servers/monitoring/net-snmp/CVE-2018-18065.patch b/pkgs/servers/monitoring/net-snmp/CVE-2018-18065.patch new file mode 100644 index 000000000000..c33f7bb03fa8 --- /dev/null +++ b/pkgs/servers/monitoring/net-snmp/CVE-2018-18065.patch @@ -0,0 +1,30 @@ +commit 7ffb8e25a0db851953155de91f0170e9bf8c457d +Author: Robert Story +Date: Thu Oct 6 10:43:10 2016 -0400 + + CHANGES: BUG: 2743: snmpd crashes when receiving a GetNext PDU with multiple Varbinds + + skip out-of-range varbinds when calling next handler + +diff --git a/agent/helpers/table.c b/agent/helpers/table.c +index 32a08033a..2666638b5 100644 +--- a/agent/helpers/table.c ++++ b/agent/helpers/table.c +@@ -340,6 +340,8 @@ table_helper_handler(netsnmp_mib_handler *handler, + else if (reqinfo->mode == MODE_GET) + table_helper_cleanup(reqinfo, request, + SNMP_NOSUCHOBJECT); ++ else ++ request->processed = 1; /* skip if next handler called */ + continue; + } + +@@ -409,6 +411,8 @@ table_helper_handler(netsnmp_mib_handler *handler, + else if (reqinfo->mode == MODE_GET) + table_helper_cleanup(reqinfo, request, + SNMP_NOSUCHOBJECT); ++ else ++ request->processed = 1; /* skip if next handler called */ + continue; + } + /* diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix index a6b738270a9a..0e7a53306eb4 100644 --- a/pkgs/servers/monitoring/net-snmp/default.nix +++ b/pkgs/servers/monitoring/net-snmp/default.nix @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { (fetchAlpinePatch "fix-includes.patch" "0zpkbb6k366qpq4dax5wknwprhwnhighcp402mlm7950d39zfa3m") (fetchAlpinePatch "netsnmp-swinst-crash.patch" "0gh164wy6zfiwiszh58fsvr25k0ns14r3099664qykgpmickkqid") (fetchAlpinePatch "remove-U64-typedef.patch" "1msxyhcqkvhqa03dwb50288g7f6nbrcd9cs036m9xc8jdgjb8k8j") + ./CVE-2018-18065.patch ]; preConfigure = From 59fe4c7f17a8efd9fe182bb23f47554d4b1d98c2 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 9 Oct 2018 23:45:43 +0200 Subject: [PATCH 010/106] journaldriver: 1.0.0 -> 1.1.0 (#48106) Included changes: * upstream repository has moved, URLs changed accordingly * journaldriver bumped to new upstream release The new release includes an important workaround for an issue that could cause log-forwarding to fail after service restarts due to invalid journal cursors being persisted. (cherry picked from commit 5ead27394d6adf7ea41497768ada6faee1bf1f88) backported because of moved upstream repo --- nixos/modules/services/logging/journaldriver.nix | 2 +- pkgs/tools/misc/journaldriver/default.nix | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/logging/journaldriver.nix b/nixos/modules/services/logging/journaldriver.nix index 74ac3d4c2365..9bd581e9ec0e 100644 --- a/nixos/modules/services/logging/journaldriver.nix +++ b/nixos/modules/services/logging/journaldriver.nix @@ -7,7 +7,7 @@ # to be set. # # For further information please consult the documentation in the -# upstream repository at: https://github.com/aprilabank/journaldriver/ +# upstream repository at: https://github.com/tazjin/journaldriver/ { config, lib, pkgs, ...}: diff --git a/pkgs/tools/misc/journaldriver/default.nix b/pkgs/tools/misc/journaldriver/default.nix index 58c9ee770b7f..e97f4048f0ff 100644 --- a/pkgs/tools/misc/journaldriver/default.nix +++ b/pkgs/tools/misc/journaldriver/default.nix @@ -2,14 +2,14 @@ rustPlatform.buildRustPackage rec { name = "journaldriver-${version}"; - version = "1.0.0"; - cargoSha256 = "04llhriwsrjqnkbjgd22nhci6zmhadclnd8r2bw5092gwdamf49k"; + version = "1.1.0"; + cargoSha256 = "03rq96hzv97wh2gbzi8sz796bqgh6pbpvdn0zy6zgq2f2sgkavsl"; src = fetchFromGitHub { - owner = "aprilabank"; + owner = "tazjin"; repo = "journaldriver"; rev = "v${version}"; - sha256 = "1163ghf7dxxchyawdaa7zdi8ly2pxmc005c2k549larbirjjbmgc"; + sha256 = "0672iq6s9klb1p37hciyl7snbjgjw98kwrbfkypv07lplc5qcnrf"; }; buildInputs = [ openssl systemd ]; @@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "Log forwarder from journald to Stackdriver Logging"; - homepage = "https://github.com/aprilabank/journaldriver"; + homepage = "https://github.com/tazjin/journaldriver"; license = licenses.gpl3; maintainers = [ maintainers.tazjin ]; platforms = platforms.linux; From c93665d4404981c22da7d863c3495c8970643f8c Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 8 Oct 2018 23:05:15 +0200 Subject: [PATCH 011/106] nixos/gnome3: don't autoenable gdm This seems to cause problems if people have other display-managers enabled (cherry picked from commit 5a752ad8797f27e87490894a862b001560ab3c14) --- nixos/modules/services/x11/desktop-managers/gnome3.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index faf5214130db..b2bfec6b50fc 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -132,7 +132,6 @@ in { fonts.fonts = [ pkgs.dejavu_fonts pkgs.cantarell-fonts ]; - services.xserver.displayManager.gdm.enable = mkDefault true; services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ]; services.xserver.displayManager.sessionCommands = '' From 8cfce968b1a3a01d74421496a643caac6f3911ad Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Sun, 7 Oct 2018 20:08:03 -0400 Subject: [PATCH 012/106] nixos/doc: Actually fix partitioning instructions. The previous tentative to the fix got the order mixed up a bit. This new fix has been re-verified to get them in the good order as per the instructions in the following chapters. (cherry picked from commit 467bec34bb24d59c1178247935d92ac3195bac78) --- nixos/doc/manual/installation/installing.xml | 54 ++++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml index 2b68def95b70..8e94f946c5ee 100644 --- a/nixos/doc/manual/installation/installing.xml +++ b/nixos/doc/manual/installation/installing.xml @@ -115,10 +115,17 @@ - Add a swap partition. The size required will vary - according to needs, here a 8GiB one is created. The space left in front - (512MiB) will be used by the boot partition. -# parted /dev/sda -- mkpart primary linux-swap 512MiB 8.5GiB + Add the root partition. This will fill the disk + except for the end part, where the swap will live, and the space left in + front (512MiB) which will be used by the boot partition. +# parted /dev/sda -- mkpart primary 512MiB -8GiB + + + + + Next, add a swap partition. The size required will + vary according to needs, here a 8GiB one is created. +# parted /dev/sda -- mkpart primary linux-swap -8GiB 100% The swap partition size rules are no different than for other Linux @@ -127,20 +134,13 @@ - - - Next, add the root partition. This will fill the - remainder ending part of the disk. -# parted /dev/sda -- mkpart primary 8.5GiB -1MiB - - Finally, the boot partition. NixOS by default uses the ESP (EFI system partition) as its /boot partition. It uses the initially reserved 512MiB at the start of the disk. -# parted /dev/sda -- mkpart ESP fat32 1M 512MiB +# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB # parted /dev/sda -- set 3 boot on @@ -177,9 +177,16 @@ - Add a swap partition. The size required will vary - according to needs, here a 8GiB one is created. -# parted /dev/sda -- mkpart primary linux-swap 1M 8GiB + Add the root partition. This will fill the the disk + except for the end part, where the swap will live. +# parted /dev/sda -- mkpart primary 1MiB -8GiB + + + + + Finally, add a swap partition. The size required + will vary according to needs, here a 8GiB one is created. +# parted /dev/sda -- mkpart primary linux-swap -8GiB 100% The swap partition size rules are no different than for other Linux @@ -188,13 +195,6 @@ - - - Finally, add the root partition. This will fill the - remainder of the disk. -# parted /dev/sda -- mkpart primary 8GiB -1s - - @@ -486,17 +486,17 @@ $ nix-env -i w3m Example partition schemes for NixOS on <filename>/dev/sda</filename> (MBR) # parted /dev/sda -- mklabel msdos -# parted /dev/sda -- mkpart primary linux-swap 1M 8GiB -# parted /dev/sda -- mkpart primary 8GiB -1s +# parted /dev/sda -- mkpart primary 1MiB -8GiB +# parted /dev/sda -- mkpart primary linux-swap -8GiB 100% Example partition schemes for NixOS on <filename>/dev/sda</filename> (UEFI) # parted /dev/sda -- mklabel gpt -# parted /dev/sda -- mkpart primary linux-swap 512MiB 8.5GiB -# parted /dev/sda -- mkpart primary 8.5GiB -1MiB -# parted /dev/sda -- mkpart ESP fat32 1M 512MiB +# parted /dev/sda -- mkpart primary 512MiB -8GiB +# parted /dev/sda -- mkpart primary linux-swap -8GiB 100% +# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB # parted /dev/sda -- set 3 boot on From 383bbb9626fa2c83083219c4fd83ee1b0c62e03c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 18:05:27 +0200 Subject: [PATCH 013/106] git: Strip libsecret This reduces gitFull's closure size from 412 MiB to 271 MiB. (cherry picked from commit 7b9c4954f2edc116a8052be28674c22a4c40adcf) --- .../version-management/git-and-tools/git/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix index edad6acd78ff..b74bd9969167 100644 --- a/pkgs/applications/version-management/git-and-tools/git/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git/default.nix @@ -300,6 +300,8 @@ EOF disable_test t0028-working-tree-encoding ''; + stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ]; + meta = { homepage = https://git-scm.com/; From 1c3945ad252c990254daefb5925b4f95164611e8 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 24 Sep 2018 15:05:39 -0500 Subject: [PATCH 014/106] nfs-utils: properly strip system-generators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nfs-utils had a dependency on gcc through etc/systemd/system-generators/*-server-generator. It was not stripped correctly because it’s not in an expected path. This adds it to the strip list. (cherry picked from commit 1427c50cea8685daf8eb571301651cf347b27e23) --- pkgs/os-specific/linux/nfs-utils/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix index fa5fabdb3c48..05ce9595ceb4 100644 --- a/pkgs/os-specific/linux/nfs-utils/default.nix +++ b/pkgs/os-specific/linux/nfs-utils/default.nix @@ -90,6 +90,8 @@ in stdenv.mkDerivation rec { "statdpath=$(TMPDIR)" ]; + stripDebugList = [ "lib" "libexec" "bin" "etc/systemd/system-generators" ]; + postInstall = '' # Not used on NixOS From fd1e5b255098505d0bda01becea0f6b0a91aa65a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 21:59:26 +0200 Subject: [PATCH 015/106] lsof: Don't record compiler flags / build kernel This removed glibc.dev from the closure and improves binary reproducibility. (cherry picked from commit 1eff910a15c58873fc9bbb46934ba354bef612a3) --- pkgs/development/tools/misc/lsof/default.nix | 2 +- .../tools/misc/lsof/no-build-info.patch | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/tools/misc/lsof/no-build-info.patch diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix index 28c2660ac3d7..2399580d2c96 100644 --- a/pkgs/development/tools/misc/lsof/default.nix +++ b/pkgs/development/tools/misc/lsof/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { unpackPhase = "tar xvjf $src; cd lsof_*; tar xvf lsof_*.tar; sourceRoot=$( echo lsof_*/); "; - patches = stdenv.lib.optional stdenv.isDarwin ./darwin-dfile.patch; + patches = [ ./no-build-info.patch ] ++ stdenv.lib.optional stdenv.isDarwin ./darwin-dfile.patch; postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' substituteInPlace dialects/linux/dlsof.h --replace "defined(__UCLIBC__)" 1 diff --git a/pkgs/development/tools/misc/lsof/no-build-info.patch b/pkgs/development/tools/misc/lsof/no-build-info.patch new file mode 100644 index 000000000000..cf785e248f2a --- /dev/null +++ b/pkgs/development/tools/misc/lsof/no-build-info.patch @@ -0,0 +1,43 @@ +diff -ru -x '*~' lsof_4.91_src-orig/usage.c lsof_4.91_src/usage.c +--- lsof_4.91_src-orig/usage.c 2018-02-14 15:20:32.000000000 +0100 ++++ lsof_4.91_src/usage.c 2018-10-08 21:57:45.718560869 +0200 +@@ -930,26 +930,6 @@ + (void) fprintf(stderr, " configuration info: %s\n", cp); + #endif /* defined(LSOF_CINFO) */ + +- if ((cp = isnullstr(LSOF_CCDATE))) +- (void) fprintf(stderr, " constructed: %s\n", cp); +- cp = isnullstr(LSOF_HOST); +- if (!(cp1 = isnullstr(LSOF_LOGNAME))) +- cp1 = isnullstr(LSOF_USER); +- if (cp || cp1) { +- if (cp && cp1) +- cp2 = "by and on"; +- else if (cp) +- cp2 = "on"; +- else +- cp2 = "by"; +- (void) fprintf(stderr, " constructed %s: %s%s%s\n", +- cp2, +- cp1 ? cp1 : "", +- (cp && cp1) ? "@" : "", +- cp ? cp : "" +- ); +- } +- + #if defined(LSOF_BLDCMT) + if ((cp = isnullstr(LSOF_BLDCMT))) + (void) fprintf(stderr, " builder's comment: %s\n", cp); +@@ -959,12 +939,8 @@ + (void) fprintf(stderr, " compiler: %s\n", cp); + if ((cp = isnullstr(LSOF_CCV))) + (void) fprintf(stderr, " compiler version: %s\n", cp); +- if ((cp = isnullstr(LSOF_CCFLAGS))) +- (void) fprintf(stderr, " compiler flags: %s\n", cp); + if ((cp = isnullstr(LSOF_LDFLAGS))) + (void) fprintf(stderr, " loader flags: %s\n", cp); +- if ((cp = isnullstr(LSOF_SYSINFO))) +- (void) fprintf(stderr, " system info: %s\n", cp); + (void) report_SECURITY(" ", ".\n"); + (void) report_WARNDEVACCESS(" ", "are", ".\n"); + (void) report_HASKERNIDCK(" K", "is"); From 0465040d06453716de7aeced7b85ad843e066f5e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 15:32:48 +0200 Subject: [PATCH 016/106] qtgraphicaleffects: Add dev output This shrank my system closure by about 192 MiB. (cherry picked from commit 9bbd4f653fff6ac1b5befc7ff6095d0806e25369) --- pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix b/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix index 888f627baab8..d0be6ae77694 100644 --- a/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix +++ b/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix @@ -3,5 +3,5 @@ qtModule { name = "qtgraphicaleffects"; qtInputs = [ qtdeclarative ]; - outputs = [ "out" ]; + outputs = [ "out" "dev" ]; } From e11239eb6d20dc37f13033e9c9ac17c4deb2421f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 16:30:19 +0200 Subject: [PATCH 017/106] thunderbird: Remove buildconfig This reduces the closure size from 1689 MiB to 425 MiB. (cherry picked from commit 2be42950c3b726f3cbf8c0198c66190aed094121) --- .../networking/mailreaders/thunderbird/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix index e0bedeb2f045..419cc2fd2d84 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix @@ -47,14 +47,17 @@ in stdenv.mkDerivation rec { # from firefox + m4 + wrapperTool nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python wrapperTool cargo rustc ]; - # https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1479540 - # https://hg.mozilla.org/releases/mozilla-release/rev/bc651d3d910c patches = [ + # https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1479540 + # https://hg.mozilla.org/releases/mozilla-release/rev/bc651d3d910c (fetchpatch { name = "bc651d3d910c.patch"; url = "https://hg.mozilla.org/releases/mozilla-release/raw-rev/bc651d3d910c"; sha256 = "0iybkadsgsf6a3pq3jh8z1p110vmpkih8i35jfj8micdkhxzi89g"; }) + + # Remove buildconfig.html to prevent a dependency on clang etc. + ../../browsers/firefox/no-buildconfig.patch ]; configureFlags = @@ -191,6 +194,8 @@ in stdenv.mkDerivation rec { "$out/bin/thunderbird" --version ''; + disallowedRequisites = [ stdenv.cc ]; + meta = with stdenv.lib; { description = "A full-featured e-mail client"; homepage = http://www.mozilla.org/thunderbird/; From 70647250bb0fdbe3e98fd739ec7cecc5ac3a1b0e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 19:34:26 +0200 Subject: [PATCH 018/106] opencv3: Reduce closure size from 520 to 154 MiB (cherry picked from commit c8a2533516b4174455601572c80298d0c23b08c8) --- pkgs/development/libraries/opencv/3.x.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix index dd87fa932604..64aa11e17634 100644 --- a/pkgs/development/libraries/opencv/3.x.nix +++ b/pkgs/development/libraries/opencv/3.x.nix @@ -165,6 +165,11 @@ stdenv.mkDerivation rec { ${installExtraFiles face} ''); + postConfigure = '' + [ -e modules/core/version_string.inc ] + echo '"(build info elided)"' > modules/core/version_string.inc + ''; + buildInputs = [ zlib pcre hdf5 glog boost google-gflags protobuf ] ++ lib.optional enablePython pythonPackages.python From a1dc97e7bae2eda4e394faa2da3a04f7371f70d0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 21:50:48 +0200 Subject: [PATCH 019/106] digikam: libGLU_combined -> libGL + libGLU This prevents a runtime dependency on a large number of -dev outputs. (cherry picked from commit a3382a85b38227f9c82ce325150c57250c9514bb) --- pkgs/applications/graphics/digikam/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix index a31bbe8caeb6..fb99d3e38322 100644 --- a/pkgs/applications/graphics/digikam/default.nix +++ b/pkgs/applications/graphics/digikam/default.nix @@ -34,7 +34,8 @@ , libqtav , libusb1 , marble -, libGLU_combined +, libGL +, libGLU , opencv3 , pcre , threadweaver @@ -75,7 +76,8 @@ mkDerivation rec { liblqr1 libqtav libusb1 - libGLU_combined + libGL + libGLU opencv3 pcre From f8e3e22055f2b7b87e52aaf2ec9f88cee3cbbf05 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 21:20:34 +0200 Subject: [PATCH 020/106] marble: Add dev output (cherry picked from commit 13c1f26807140e3821262022d43378864543ebb4) --- pkgs/applications/kde/marble.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix index e0e80b05ebce..ea140cad5ee5 100644 --- a/pkgs/applications/kde/marble.nix +++ b/pkgs/applications/kde/marble.nix @@ -8,6 +8,7 @@ mkDerivation { name = "marble"; meta.license = with lib.licenses; [ lgpl21 gpl3 ]; + outputs = [ "out" "dev" ]; nativeBuildInputs = [ extra-cmake-modules kdoctools perl ]; propagatedBuildInputs = [ qtscript qtsvg qtquickcontrols qtwebkit shared-mime-info krunner kparts From 4dd9cd3f69e51dcb69d29a88335f06a544b0e508 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 8 Oct 2018 20:23:02 +0200 Subject: [PATCH 021/106] libqtav: Reduce closure size from 734 to 457 MiB (cherry picked from commit cd3a0b7f38e3872872db91556b6d277265e95b8e) --- pkgs/development/libraries/libqtav/default.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/libqtav/default.nix b/pkgs/development/libraries/libqtav/default.nix index b291ec2fdf0b..048ba48bb674 100644 --- a/pkgs/development/libraries/libqtav/default.nix +++ b/pkgs/development/libraries/libqtav/default.nix @@ -1,6 +1,6 @@ { mkDerivation, lib, fetchFromGitHub, extra-cmake-modules , qtbase, qtmultimedia, qtquick1, qttools -, libGLU_combined, libX11 +, libGL, libX11 , libass, openal, ffmpeg, libuchardet , alsaLib, libpulseaudio, libva }: @@ -14,7 +14,7 @@ mkDerivation rec { nativeBuildInputs = [ extra-cmake-modules qttools ]; buildInputs = [ qtbase qtmultimedia qtquick1 - libGLU_combined libX11 + libGL libX11 libass openal ffmpeg libuchardet alsaLib libpulseaudio libva ]; @@ -27,18 +27,20 @@ mkDerivation rec { fetchSubmodules = true; }; - # Make sure libqtav finds its libGL dependancy at both link and run time - # by adding libGLU_combined to rpath. Not sure why it wasn't done automatically like - # the other libraries as `libGLU_combined` is part of our `buildInputs`. - NIX_CFLAGS_LINK = [ "-Wl,-rpath,${libGLU_combined}/lib"]; + # Make sure libqtav finds its libGL dependency at both link and run time + # by adding libGL to rpath. Not sure why it wasn't done automatically like + # the other libraries as `libGL` is part of our `buildInputs`. + NIX_CFLAGS_LINK = [ "-Wl,-rpath,${libGL}/lib"]; preFixup = '' mkdir -p "$out/bin" cp -a "./bin/"* "$out/bin" ''; + stripDebugList = [ "lib" "libexec" "bin" "qml" ]; + meta = { - description = "A multimedia playback framework based on Qt + FFmpeg."; + description = "A multimedia playback framework based on Qt + FFmpeg"; #license = licenses.lgpl21; # For the libraries / headers only. license = licenses.gpl3; # With the examples (under bin) and most likely some of the optional dependencies used. homepage = http://www.qtav.org/; From e86dd58b29009b2f6446dc4079b59cdd5bcbebdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Th=C3=B8mt=20Ravneberg?= Date: Mon, 8 Oct 2018 14:54:32 +0200 Subject: [PATCH 022/106] gitaly: 0.117.2 -> 0.120.0 (cherry picked from commit 908a75a3ae8b84f7de7f4cafb627abc7c652606f) --- pkgs/applications/version-management/gitaly/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/version-management/gitaly/default.nix b/pkgs/applications/version-management/gitaly/default.nix index b7eee8926aa5..9523059b42f2 100644 --- a/pkgs/applications/version-management/gitaly/default.nix +++ b/pkgs/applications/version-management/gitaly/default.nix @@ -7,14 +7,14 @@ let gemdir = ./.; }; in buildGoPackage rec { - version = "0.120.0"; + version = "0.125.0"; name = "gitaly-${version}"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "gitaly"; rev = "v${version}"; - sha256 = "0jsk6n1vmddpnnccr8mjvcsfjzaagqy1600q5yss6lbz896w2bx4"; + sha256 = "14a4qgpnspzw9cjqh6gbw3771bxfm789ibvmvb8jc4pklvbyl4mi"; }; goPackagePath = "gitlab.com/gitlab-org/gitaly"; @@ -27,7 +27,7 @@ in buildGoPackage rec { postInstall = '' mkdir -p $ruby - cp -rv $src/ruby/{bin,lib,vendor} $ruby + cp -rv $src/ruby/{bin,lib} $ruby ''; outputs = [ "bin" "out" "ruby" ]; From dbd9fed2fb1d5027f35af42a06d9be229c9d596a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Th=C3=B8mt=20Ravneberg?= Date: Mon, 8 Oct 2018 14:56:52 +0200 Subject: [PATCH 023/106] gitlab-workhorse: 6.1.0 -> 6.1.1, make build deterministic (cherry picked from commit 998d4e4e2c2c71034b9232453d33d8a2c9fdbdb7) --- .../version-management/gitlab-workhorse/default.nix | 6 +++--- .../gitlab-workhorse/deterministic-build.patch | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch diff --git a/pkgs/applications/version-management/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab-workhorse/default.nix index 1fe8c844ebf0..16acf2a91d70 100644 --- a/pkgs/applications/version-management/gitlab-workhorse/default.nix +++ b/pkgs/applications/version-management/gitlab-workhorse/default.nix @@ -2,18 +2,18 @@ stdenv.mkDerivation rec { name = "gitlab-workhorse-${version}"; - version = "6.1.0"; + version = "6.1.1"; srcs = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-workhorse"; rev = "v${version}"; - sha256 = "0h0mqalia4ldb2icr2h6x75pnr5jb5y23pi4kv4ri3w3ddnl74bq"; + sha256 = "1dwvk86bfsqgkp0mwz71yis3i7aypjf96r3hsjkgpd27hwbjgxbr"; }; buildInputs = [ git go ]; - patches = [ ./remove-hardcoded-paths.patch ]; + patches = [ ./remove-hardcoded-paths.patch ./deterministic-build.patch ]; makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" ]; diff --git a/pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch b/pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch new file mode 100644 index 000000000000..da6dc5493ac5 --- /dev/null +++ b/pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch @@ -0,0 +1,11 @@ +--- a/Makefile 2018-10-08 12:45:15.206269937 +0200 ++++ b/Makefile 2018-10-08 12:45:24.435366307 +0200 +@@ -6,7 +6,7 @@ + BIN_BUILD_DIR := $(TARGET_DIR)/bin + PKG_BUILD_DIR := $(TARGET_DIR)/src/$(PKG) + COVERAGE_DIR := $(TARGET_DIR)/cover +-VERSION := $(shell git describe)-$(shell date -u +%Y%m%d.%H%M%S) ++VERSION := 6.1.1 + GOBUILD := go build -ldflags "-X main.Version=$(VERSION)" + EXE_ALL := gitlab-zip-cat gitlab-zip-metadata gitlab-workhorse + INSTALL := install From 0d110efa2b8def11adeefe6f32b2dbd04a9dea9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Th=C3=B8mt=20Ravneberg?= Date: Mon, 8 Oct 2018 15:01:29 +0200 Subject: [PATCH 024/106] gitlab: 11.2.3 -> 11.3.4 (cherry picked from commit d837338d6b16146cc4d388f223c8bed878546061) --- .../applications/version-management/gitlab/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix index 98e2e739e0d7..c66260912612 100644 --- a/pkgs/applications/version-management/gitlab/default.nix +++ b/pkgs/applications/version-management/gitlab/default.nix @@ -11,29 +11,29 @@ let groups = [ "default" "unicorn" "ed25519" "metrics" ]; }; - version = "11.3.0"; + version = "11.3.4"; sources = if gitlabEnterprise then { gitlabDeb = fetchurl { url = "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_${version}-ee.0_amd64.deb/download.deb"; - sha256 = "1l5cfbc45xa3gq90wyly3szn93szh162g9szc6dnkqx0db70j9l3"; + sha256 = "1cgwm6g1mij1958mdyds8f76qjw39nllsr23dvsqgf60h4vbsdfd"; }; gitlab = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-ee"; rev = "v${version}-ee"; - sha256 = "0gmainjhs21hipbvshga5dzkjrpmlkk9vxxnxgwjaqbg9wrhw47m"; + sha256 = "1ifaa879l85d4yfzrgszrgj04bfjxjh3n7v31zfb6lsqmh87xbm4"; }; } else { gitlabDeb = fetchurl { url = "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_${version}-ce.0_amd64.deb/download.deb"; - sha256 = "162xy8xpa2qhz10nh2dw0vbd0665pz9984vnim9i30xcafr5picq"; + sha256 = "0hls81ns9n10xrzw0b9pn1916445irqrysbicsdl8kdn83ds35p7"; }; gitlab = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-ce"; rev = "v${version}"; - sha256 = "158n2qnp1zsj5kk2w3v9xyakgdb739n955hlq3i9sl80q8f4xda3"; + sha256 = "0dymr706yn917niybg2gj1pkgrzgiirbv4ib9pkgs140kbf3hn0c"; }; }; From 71f195761f72a3a4227c94d3e3ce4f65a37f58f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Th=C3=B8mt=20Ravneberg?= Date: Mon, 8 Oct 2018 15:02:14 +0200 Subject: [PATCH 025/106] gitlab-ee: Add ee rubyEnv, fixes regression introduced by 11.3.0 in #45574 (cherry picked from commit 0083ca12664a4fbda9a8716267c5173676a8194a) --- .../version-management/gitlab/default.nix | 2 +- .../gitlab/{ => rubyEnv-ce}/Gemfile | 0 .../gitlab/{ => rubyEnv-ce}/Gemfile.lock | 0 .../gitlab/{ => rubyEnv-ce}/gemset.nix | 0 .../gitlab/rubyEnv-ee/Gemfile | 461 +++ .../gitlab/rubyEnv-ee/Gemfile.lock | 1239 ++++++ .../gitlab/rubyEnv-ee/gemset.nix | 3681 +++++++++++++++++ 7 files changed, 5382 insertions(+), 1 deletion(-) rename pkgs/applications/version-management/gitlab/{ => rubyEnv-ce}/Gemfile (100%) rename pkgs/applications/version-management/gitlab/{ => rubyEnv-ce}/Gemfile.lock (100%) rename pkgs/applications/version-management/gitlab/{ => rubyEnv-ce}/gemset.nix (100%) create mode 100644 pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile create mode 100644 pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock create mode 100644 pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix index c66260912612..c1a4392ec0ef 100644 --- a/pkgs/applications/version-management/gitlab/default.nix +++ b/pkgs/applications/version-management/gitlab/default.nix @@ -7,7 +7,7 @@ let rubyEnv = bundlerEnv { name = "gitlab-env-${version}"; inherit ruby; - gemdir = ./.; + gemdir = ./rubyEnv- + "${if gitlabEnterprise then "ee" else "ce"}"; groups = [ "default" "unicorn" "ed25519" "metrics" ]; }; diff --git a/pkgs/applications/version-management/gitlab/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile similarity index 100% rename from pkgs/applications/version-management/gitlab/Gemfile rename to pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile diff --git a/pkgs/applications/version-management/gitlab/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock similarity index 100% rename from pkgs/applications/version-management/gitlab/Gemfile.lock rename to pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock diff --git a/pkgs/applications/version-management/gitlab/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix similarity index 100% rename from pkgs/applications/version-management/gitlab/gemset.nix rename to pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile new file mode 100644 index 000000000000..86502db9d26e --- /dev/null +++ b/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile @@ -0,0 +1,461 @@ +# --- Special code for migrating to Rails 5.0 --- +def rails5? + %w[1 true].include?(ENV["RAILS5"]) +end + +gem_versions = {} +gem_versions['activerecord_sane_schema_dumper'] = rails5? ? '1.0' : '0.2' +gem_versions['default_value_for'] = rails5? ? '~> 3.0.5' : '~> 3.0.0' +gem_versions['rails'] = rails5? ? '5.0.7' : '4.2.10' +gem_versions['rails-i18n'] = rails5? ? '~> 5.1' : '~> 4.0.9' +# --- The end of special code for migrating to Rails 5.0 --- + +source 'https://rubygems.org' + +gem 'rails', gem_versions['rails'] +gem 'rails-deprecated_sanitizer', '~> 1.0.3' + +# Responders respond_to and respond_with +gem 'responders', '~> 2.0' + +gem 'sprockets', '~> 3.7.0' + +# Default values for AR models +gem 'default_value_for', gem_versions['default_value_for'] + +# Supported DBs +gem 'mysql2', '~> 0.4.10', group: :mysql +gem 'pg', '~> 0.18.2', group: :postgres + +gem 'rugged', '~> 0.27' +gem 'grape-path-helpers', '~> 1.0' + +gem 'faraday', '~> 0.12' + +# Authentication libraries +gem 'devise', '~> 4.4' +gem 'doorkeeper', '~> 4.3' +gem 'doorkeeper-openid_connect', '~> 1.5' +gem 'omniauth', '~> 1.8' +gem 'omniauth-auth0', '~> 2.0.0' +gem 'omniauth-azure-oauth2', '~> 0.0.9' +gem 'omniauth-cas3', '~> 1.1.4' +gem 'omniauth-facebook', '~> 4.0.0' +gem 'omniauth-github', '~> 1.3' +gem 'omniauth-gitlab', '~> 1.0.2' +gem 'omniauth-google-oauth2', '~> 0.5.3' +gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos +gem 'omniauth-oauth2-generic', '~> 0.2.2' +gem 'omniauth-saml', '~> 1.10' +gem 'omniauth-shibboleth', '~> 1.3.0' +gem 'omniauth-twitter', '~> 1.4' +gem 'omniauth_crowd', '~> 2.2.0' +gem 'omniauth-authentiq', '~> 0.3.3' +gem 'rack-oauth2', '~> 1.2.1' +gem 'jwt', '~> 1.5.6' + +# Kerberos authentication. EE-only +gem 'gssapi', group: :kerberos + +# Spam and anti-bot protection +gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails' +gem 'akismet', '~> 2.0' + +# Two-factor authentication +gem 'devise-two-factor', '~> 3.0.0' +gem 'rqrcode-rails3', '~> 0.1.7' +gem 'attr_encrypted', '~> 3.1.0' +gem 'u2f', '~> 0.2.1' + +# GitLab Pages +gem 'validates_hostname', '~> 1.0.6' + +# Browser detection +gem 'browser', '~> 2.5' + +# GPG +gem 'gpgme' + +# LDAP Auth +# GitLab fork with several improvements to original library. For full list of changes +# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master +gem 'gitlab_omniauth-ldap', '~> 2.0.4', require: 'omniauth-ldap' +gem 'net-ldap' + +# Git Wiki +# Required manually in config/initializers/gollum.rb to control load order +gem 'gitlab-gollum-lib', '~> 4.2', require: false + +gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false + +# Language detection +gem 'github-linguist', '~> 5.3.3', require: 'linguist' + +# API +gem 'grape', '~> 1.0' +gem 'grape-entity', '~> 0.7.1' +gem 'rack-cors', '~> 1.0.0', require: 'rack/cors' + +# GraphQL API +gem 'graphql', '~> 1.8.0' +gem 'graphiql-rails', '~> 1.4.10' + +# Disable strong_params so that Mash does not respond to :permitted? +gem 'hashie-forbidden_attributes' + +# Pagination +gem 'kaminari', '~> 1.0' + +# HAML +gem 'hamlit', '~> 2.8.8' + +# Files attachments +# Locked until https://github.com/carrierwaveuploader/carrierwave/pull/2332/files is merged. +# config/initializers/carrierwave_patch.rb can be removed once that change is released. +gem 'carrierwave', '= 1.2.3' +gem 'mini_magick' + +# Drag and Drop UI +gem 'dropzonejs-rails', '~> 0.7.1' + +# for backups +gem 'fog-aws', '~> 2.0.1' +gem 'fog-core', '~> 1.44' +gem 'fog-google', '~> 1.7.1' +gem 'fog-local', '~> 0.3' +gem 'fog-openstack', '~> 0.1' +gem 'fog-rackspace', '~> 0.1.1' +gem 'fog-aliyun', '~> 0.2.0' + +# for Google storage +gem 'google-api-client', '~> 0.23' + +# for aws storage +gem 'unf', '~> 0.1.4' + +# Seed data +gem 'seed-fu', '~> 2.3.7' + +# Search +gem 'elasticsearch-model', '~> 0.1.9' +gem 'elasticsearch-rails', '~> 0.1.9' +gem 'elasticsearch-api', '5.0.3' +gem 'aws-sdk' +gem 'faraday_middleware-aws-signers-v4' + +# Markdown and HTML processing +gem 'html-pipeline', '~> 2.8' +gem 'deckar01-task_list', '2.0.0' +gem 'gitlab-markup', '~> 1.6.4' +gem 'redcarpet', '~> 3.4' +gem 'commonmarker', '~> 0.17' +gem 'RedCloth', '~> 4.3.2' +gem 'rdoc', '~> 6.0' +gem 'org-ruby', '~> 0.9.12' +gem 'creole', '~> 0.5.0' +gem 'wikicloth', '0.8.1' +gem 'asciidoctor', '~> 1.5.6' +gem 'asciidoctor-plantuml', '0.0.8' +gem 'rouge', '~> 3.1' +gem 'truncato', '~> 0.7.9' +gem 'bootstrap_form', '~> 2.7.0' +gem 'nokogiri', '~> 1.8.2' + +# Calendar rendering +gem 'icalendar' + +# Diffs +gem 'diffy', '~> 3.1.0' + +# Application server +group :unicorn do + gem 'unicorn', '~> 5.1.0' + gem 'unicorn-worker-killer', '~> 0.4.4' +end + +# State machine +gem 'state_machines-activerecord', '~> 0.5.1' + +# Issue tags +gem 'acts-as-taggable-on', '~> 5.0' + +# Background jobs +gem 'sidekiq', '~> 5.1' +gem 'sidekiq-cron', '~> 0.6.0' +gem 'redis-namespace', '~> 1.6.0' +gem 'sidekiq-limit_fetch', '~> 3.4', require: false + +# Cron Parser +gem 'rufus-scheduler', '~> 3.4' + +# HTTP requests +gem 'httparty', '~> 0.13.3' + +# Colored output to console +gem 'rainbow', '~> 3.0' + +# Progress bar +gem 'ruby-progressbar' + +# GitLab settings +gem 'settingslogic', '~> 2.0.9' + +# Linear-time regex library for untrusted regular expressions +gem 're2', '~> 1.1.1' + +# Misc + +gem 'version_sorter', '~> 2.1.0' + +# Export Ruby Regex to Javascript +gem 'js_regex', '~> 2.2.1' + +# User agent parsing +gem 'device_detector' + +# Cache +gem 'redis-rails', '~> 5.0.2' + +# Redis +gem 'redis', '~> 3.2' +gem 'connection_pool', '~> 2.0' + +# HipChat integration +gem 'hipchat', '~> 1.5.0' + +# JIRA integration +gem 'jira-ruby', '~> 1.4' + +# Flowdock integration +gem 'gitlab-flowdock-git-hook', '~> 1.0.1' + +# Slack integration +gem 'slack-notifier', '~> 1.5.1' + +# Hangouts Chat integration +gem 'hangouts-chat', '~> 0.0.5' + +# Asana integration +gem 'asana', '~> 0.6.0' + +# FogBugz integration +gem 'ruby-fogbugz', '~> 0.2.1' + +# Kubernetes integration +gem 'kubeclient', '~> 3.1.0' + +# Sanitize user input +gem 'sanitize', '~> 4.6' +gem 'babosa', '~> 1.0.2' + +# Sanitizes SVG input +gem 'loofah', '~> 2.2' + +# Working with license +gem 'licensee', '~> 8.9' + +# Protect against bruteforcing +gem 'rack-attack', '~> 4.4.1' + +# Ace editor +gem 'ace-rails-ap', '~> 4.1.0' + +# Keyboard shortcuts +gem 'mousetrap-rails', '~> 1.4.6' + +# Detect and convert string character encoding +gem 'charlock_holmes', '~> 0.7.5' + +# Faster blank +gem 'fast_blank' + +# Parse time & duration +gem 'chronic', '~> 0.10.2' +gem 'chronic_duration', '~> 0.10.6' + +gem 'webpack-rails', '~> 0.9.10' +gem 'rack-proxy', '~> 0.6.0' + +gem 'sass-rails', '~> 5.0.6' +gem 'uglifier', '~> 2.7.2' + +gem 'addressable', '~> 2.5.2' +gem 'font-awesome-rails', '~> 4.7' +gem 'gemojione', '~> 3.3' +gem 'gon', '~> 6.2' +gem 'jquery-atwho-rails', '~> 1.3.2' +gem 'request_store', '~> 1.3' +gem 'select2-rails', '~> 3.5.9' +gem 'virtus', '~> 1.0.1' +gem 'base32', '~> 0.3.0' + +gem "gitlab-license", "~> 1.0" + +# Sentry integration +gem 'sentry-raven', '~> 2.7' + +gem 'premailer-rails', '~> 1.9.7' + +# I18n +gem 'ruby_parser', '~> 3.8', require: false +gem 'rails-i18n', gem_versions['rails-i18n'] +gem 'gettext_i18n_rails', '~> 1.8.0' +gem 'gettext_i18n_rails_js', '~> 1.3' +gem 'gettext', '~> 3.2.2', require: false, group: :development + +gem 'batch-loader', '~> 1.2.1' + +# Perf bar +gem 'peek', '~> 1.0.1' +gem 'peek-gc', '~> 0.0.2' +gem 'peek-mysql2', '~> 1.1.0', group: :mysql +gem 'peek-pg', '~> 1.3.0', group: :postgres +gem 'peek-rblineprof', '~> 0.2.0' +gem 'peek-redis', '~> 1.2.0' +gem 'peek-sidekiq', '~> 1.0.3' + +# Metrics +group :metrics do + gem 'method_source', '~> 0.8', require: false + gem 'influxdb', '~> 0.2', require: false + + # Prometheus + gem 'prometheus-client-mmap', '~> 0.9.4' + gem 'raindrops', '~> 0.18' +end + +group :development do + gem 'foreman', '~> 0.84.0' + gem 'brakeman', '~> 4.2', require: false + + gem 'letter_opener_web', '~> 1.3.0' + gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false + + # Better errors handler + gem 'better_errors', '~> 2.1.0' + gem 'binding_of_caller', '~> 0.7.2' + + # thin instead webrick + gem 'thin', '~> 1.7.0' +end + +group :development, :test do + gem 'bootsnap', '~> 1.3' + gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET'] + gem 'pry-byebug', '~> 3.4.1', platform: :mri + gem 'pry-rails', '~> 0.3.4' + + gem 'awesome_print', require: false + gem 'fuubar', '~> 2.2.0' + + gem 'database_cleaner', '~> 1.5.0' + gem 'factory_bot_rails', '~> 4.8.2' + gem 'rspec-rails', '~> 3.7.0' + gem 'rspec-retry', '~> 0.4.5' + gem 'rspec_profiling', '~> 0.0.5' + gem 'rspec-set', '~> 0.1.3' + gem 'rspec-parameterized', require: false + + # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) + gem 'minitest', '~> 5.7.0' + + # Generate Fake data + gem 'ffaker', '~> 2.4' + + gem 'capybara', '~> 2.15' + gem 'capybara-screenshot', '~> 1.0.0' + gem 'selenium-webdriver', '~> 3.12' + + gem 'spring', '~> 2.0.0' + gem 'spring-commands-rspec', '~> 1.0.4' + + gem 'gitlab-styles', '~> 2.4', require: false + # Pin these dependencies, otherwise a new rule could break the CI pipelines + gem 'rubocop', '~> 0.54.0' + gem 'rubocop-rspec', '~> 1.22.1' + + gem 'scss_lint', '~> 0.56.0', require: false + gem 'haml_lint', '~> 0.26.0', require: false + gem 'simplecov', '~> 0.14.0', require: false + gem 'bundler-audit', '~> 0.5.0', require: false + + gem 'benchmark-ips', '~> 2.3.0', require: false + + gem 'license_finder', '~> 5.4', require: false + gem 'knapsack', '~> 1.16' + + gem 'activerecord_sane_schema_dumper', gem_versions['activerecord_sane_schema_dumper'] + + gem 'stackprof', '~> 0.2.10', require: false + + gem 'simple_po_parser', '~> 1.1.2', require: false + + gem 'timecop', '~> 0.8.0' +end + +group :test do + gem 'shoulda-matchers', '~> 3.1.2', require: false + gem 'email_spec', '~> 2.2.0' + gem 'json-schema', '~> 2.8.0' + gem 'webmock', '~> 2.3.2' + gem 'rails-controller-testing' if rails5? # Rails5 only gem. + gem 'test_after_commit', '~> 1.1' unless rails5? # Remove this gem when migrated to rails 5.0. It's been integrated to rails 5.0. + gem 'sham_rack', '~> 1.3.6' + gem 'concurrent-ruby', '~> 1.0.5' + gem 'test-prof', '~> 0.2.5' + gem 'rspec_junit_formatter' +end + +gem 'octokit', '~> 4.9' + +gem 'mail_room', '~> 0.9.1' + +gem 'email_reply_trimmer', '~> 0.1' +gem 'html2text' + +gem 'ruby-prof', '~> 0.17.0' +gem 'rbtrace', '~> 0.4', require: false + +# OAuth +gem 'oauth2', '~> 1.4' + +# Health check +gem 'health_check', '~> 2.6.0' + +# System information +gem 'vmstat', '~> 2.3.0' +gem 'sys-filesystem', '~> 1.1.6' + +# NTP client +gem 'net-ntp' + +# SSH host key support +gem 'net-ssh', '~> 5.0' +gem 'sshkey', '~> 1.9.0' + +# Required for ED25519 SSH host key support +group :ed25519 do + gem 'ed25519', '~> 1.2' + gem 'bcrypt_pbkdf', '~> 1.0' +end + +# Gitaly GRPC client +gem 'gitaly-proto', '~> 0.117.0', require: 'gitaly' +gem 'grpc', '~> 1.11.0' + +# Locked until https://github.com/google/protobuf/issues/4210 is closed +gem 'google-protobuf', '= 3.5.1' + +gem 'toml-rb', '~> 1.0.0', require: false + +# Feature toggles +gem 'flipper', '~> 0.13.0' +gem 'flipper-active_record', '~> 0.13.0' +gem 'flipper-active_support_cache_store', '~> 0.13.0' + +# Structured logging +gem 'lograge', '~> 0.5' +gem 'grape_logging', '~> 1.7' + +# Asset synchronization +gem 'asset_sync', '~> 2.4' diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock new file mode 100644 index 000000000000..d7c4f80efd15 --- /dev/null +++ b/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock @@ -0,0 +1,1239 @@ +GEM + remote: https://rubygems.org/ + specs: + RedCloth (4.3.2) + abstract_type (0.0.7) + ace-rails-ap (4.1.2) + actionmailer (4.2.10) + actionpack (= 4.2.10) + actionview (= 4.2.10) + activejob (= 4.2.10) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 1.0, >= 1.0.5) + actionpack (4.2.10) + actionview (= 4.2.10) + activesupport (= 4.2.10) + rack (~> 1.6) + rack-test (~> 0.6.2) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (4.2.10) + activesupport (= 4.2.10) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (4.2.10) + activesupport (= 4.2.10) + globalid (>= 0.3.0) + activemodel (4.2.10) + activesupport (= 4.2.10) + builder (~> 3.1) + activerecord (4.2.10) + activemodel (= 4.2.10) + activesupport (= 4.2.10) + arel (~> 6.0) + activerecord_sane_schema_dumper (0.2) + rails (>= 4, < 5) + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + acts-as-taggable-on (5.0.0) + activerecord (>= 4.2.8) + adamantium (0.2.0) + ice_nine (~> 0.11.0) + memoizable (~> 0.4.0) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + aes_key_wrap (1.0.1) + akismet (2.0.0) + arel (6.0.4) + asana (0.6.0) + faraday (~> 0.9) + faraday_middleware (~> 0.9) + faraday_middleware-multi_json (~> 0.0) + oauth2 (~> 1.0) + asciidoctor (1.5.6.2) + asciidoctor-plantuml (0.0.8) + asciidoctor (~> 1.5) + asset_sync (2.4.0) + activemodel (>= 4.1.0) + fog-core + mime-types (>= 2.99) + unf + ast (2.4.0) + atomic (1.1.99) + attr_encrypted (3.1.0) + encryptor (~> 3.0.0) + attr_required (1.0.0) + awesome_print (1.8.0) + aws-sdk (2.9.32) + aws-sdk-resources (= 2.9.32) + aws-sdk-core (2.9.32) + aws-sigv4 (~> 1.0) + jmespath (~> 1.0) + aws-sdk-resources (2.9.32) + aws-sdk-core (= 2.9.32) + aws-sigv4 (1.0.0) + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + babosa (1.0.2) + base32 (0.3.2) + batch-loader (1.2.1) + bcrypt (3.1.12) + bcrypt_pbkdf (1.0.0) + benchmark-ips (2.3.0) + better_errors (2.1.1) + coderay (>= 1.0.0) + erubis (>= 2.6.6) + rack (>= 0.9.0) + bindata (2.4.3) + binding_of_caller (0.7.2) + debug_inspector (>= 0.0.1) + bootsnap (1.3.1) + msgpack (~> 1.0) + bootstrap_form (2.7.0) + brakeman (4.2.1) + browser (2.5.3) + builder (3.2.3) + bullet (5.5.1) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.10.0) + bundler-audit (0.5.0) + bundler (~> 1.2) + thor (~> 0.18) + byebug (9.0.6) + capybara (2.15.1) + addressable + mini_mime (>= 0.1.3) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + xpath (~> 2.0) + capybara-screenshot (1.0.14) + capybara (>= 1.0, < 3) + launchy + carrierwave (1.2.3) + activemodel (>= 4.0.0) + activesupport (>= 4.0.0) + mime-types (>= 1.16) + cause (0.1) + charlock_holmes (0.7.6) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + chronic (0.10.2) + chronic_duration (0.10.6) + numerizer (~> 0.1.1) + chunky_png (1.3.5) + citrus (3.0.2) + coderay (1.1.2) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concord (0.1.5) + adamantium (~> 0.2.0) + equalizer (~> 0.0.9) + concurrent-ruby (1.0.5) + concurrent-ruby-ext (1.0.5) + concurrent-ruby (= 1.0.5) + connection_pool (2.2.1) + crack (0.4.3) + safe_yaml (~> 1.0.0) + crass (1.0.4) + creole (0.5.0) + css_parser (1.5.0) + addressable + daemons (1.2.3) + database_cleaner (1.5.3) + debug_inspector (0.0.2) + debugger-ruby_core_source (1.3.8) + deckar01-task_list (2.0.0) + html-pipeline + declarative (0.0.10) + declarative-option (0.1.0) + default_value_for (3.0.2) + activerecord (>= 3.2.0, < 5.1) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + device_detector (1.0.0) + devise (4.4.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0, < 6.0) + responders + warden (~> 1.2.3) + devise-two-factor (3.0.0) + activesupport + attr_encrypted (>= 1.3, < 4, != 2) + devise (~> 4.0) + railties + rotp (~> 2.0) + diff-lcs (1.3) + diffy (3.1.0) + docile (1.1.5) + domain_name (0.5.20180417) + unf (>= 0.0.5, < 1.0.0) + doorkeeper (4.3.2) + railties (>= 4.2) + doorkeeper-openid_connect (1.5.0) + doorkeeper (~> 4.3) + json-jwt (~> 1.6) + dropzonejs-rails (0.7.2) + rails (> 3.1) + ed25519 (1.2.4) + elasticsearch (5.0.3) + elasticsearch-api (= 5.0.3) + elasticsearch-transport (= 5.0.3) + elasticsearch-api (5.0.3) + multi_json + elasticsearch-model (0.1.9) + activesupport (> 3) + elasticsearch (> 0.4) + hashie + elasticsearch-rails (0.1.9) + elasticsearch-transport (5.0.3) + faraday + multi_json + email_reply_trimmer (0.1.6) + email_spec (2.2.0) + htmlentities (~> 4.3.3) + launchy (~> 2.1) + mail (~> 2.7) + encryptor (3.0.0) + equalizer (0.0.11) + erubis (2.7.0) + escape_utils (1.1.1) + et-orbi (1.0.3) + tzinfo + eventmachine (1.0.8) + excon (0.62.0) + execjs (2.6.0) + expression_parser (0.9.0) + factory_bot (4.8.2) + activesupport (>= 3.0.0) + factory_bot_rails (4.8.2) + factory_bot (~> 4.8.2) + railties (>= 3.0.0) + faraday (0.12.2) + multipart-post (>= 1.2, < 3) + faraday_middleware (0.12.2) + faraday (>= 0.7.4, < 1.0) + faraday_middleware-aws-signers-v4 (0.1.7) + aws-sdk-resources (~> 2) + faraday (~> 0.9) + faraday_middleware-multi_json (0.0.6) + faraday_middleware + multi_json + fast_blank (1.0.0) + fast_gettext (1.6.0) + ffaker (2.4.0) + ffi (1.9.25) + flipper (0.13.0) + flipper-active_record (0.13.0) + activerecord (>= 3.2, < 6) + flipper (~> 0.13.0) + flipper-active_support_cache_store (0.13.0) + activesupport (>= 3.2, < 6) + flipper (~> 0.13.0) + flowdock (0.7.1) + httparty (~> 0.7) + multi_json + fog-aliyun (0.2.0) + fog-core (~> 1.27) + fog-json (~> 1.0) + ipaddress (~> 0.8) + xml-simple (~> 1.1) + fog-aws (2.0.1) + fog-core (~> 1.38) + fog-json (~> 1.0) + fog-xml (~> 0.1) + ipaddress (~> 0.8) + fog-core (1.45.0) + builder + excon (~> 0.58) + formatador (~> 0.2) + fog-google (1.7.1) + fog-core + fog-json + fog-xml + google-api-client (~> 0.23.0) + fog-json (1.0.2) + fog-core (~> 1.0) + multi_json (~> 1.10) + fog-local (0.3.1) + fog-core (~> 1.27) + fog-openstack (0.1.21) + fog-core (>= 1.40) + fog-json (>= 1.0) + ipaddress (>= 0.8) + fog-rackspace (0.1.1) + fog-core (>= 1.35) + fog-json (>= 1.0) + fog-xml (>= 0.1) + ipaddress (>= 0.8) + fog-xml (0.1.3) + fog-core + nokogiri (>= 1.5.11, < 2.0.0) + font-awesome-rails (4.7.0.1) + railties (>= 3.2, < 5.1) + foreman (0.84.0) + thor (~> 0.19.1) + formatador (0.2.5) + fuubar (2.2.0) + rspec-core (~> 3.0) + ruby-progressbar (~> 1.4) + gemojione (3.3.0) + json + get_process_mem (0.2.0) + gettext (3.2.9) + locale (>= 2.0.5) + text (>= 1.3.0) + gettext_i18n_rails (1.8.0) + fast_gettext (>= 0.9.0) + gettext_i18n_rails_js (1.3.0) + gettext (>= 3.0.2) + gettext_i18n_rails (>= 0.7.1) + po_to_json (>= 1.0.0) + rails (>= 3.2.0) + gitaly-proto (0.117.0) + google-protobuf (~> 3.1) + grpc (~> 1.10) + github-linguist (5.3.3) + charlock_holmes (~> 0.7.5) + escape_utils (~> 1.1.0) + mime-types (>= 1.19) + rugged (>= 0.25.1) + github-markup (1.7.0) + gitlab-flowdock-git-hook (1.0.1) + flowdock (~> 0.7) + gitlab-grit (>= 2.4.1) + multi_json + gitlab-gollum-lib (4.2.7.5) + gemojione (~> 3.2) + github-markup (~> 1.6) + gollum-grit_adapter (~> 1.0) + nokogiri (>= 1.6.1, < 2.0) + rouge (~> 3.1) + sanitize (~> 4.6.4) + stringex (~> 2.6) + gitlab-gollum-rugged_adapter (0.4.4.1) + mime-types (>= 1.15) + rugged (~> 0.25) + gitlab-grit (2.8.2) + charlock_holmes (~> 0.6) + diff-lcs (~> 1.1) + mime-types (>= 1.16) + posix-spawn (~> 0.3) + gitlab-license (1.0.0) + gitlab-markup (1.6.4) + gitlab-styles (2.4.1) + rubocop (~> 0.54.0) + rubocop-gitlab-security (~> 0.1.0) + rubocop-rspec (~> 1.19) + gitlab_omniauth-ldap (2.0.4) + net-ldap (~> 0.16) + omniauth (~> 1.3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) + globalid (0.4.1) + activesupport (>= 4.2.0) + gollum-grit_adapter (1.0.1) + gitlab-grit (~> 2.7, >= 2.7.1) + gon (6.2.0) + actionpack (>= 3.0) + multi_json + request_store (>= 1.0) + google-api-client (0.23.4) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.5, < 0.7.0) + httpclient (>= 2.8.1, < 3.0) + mime-types (~> 3.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + google-protobuf (3.5.1) + googleapis-common-protos-types (1.0.1) + google-protobuf (~> 3.0) + googleauth (0.6.2) + faraday (~> 0.12) + jwt (>= 1.4, < 3.0) + logging (~> 2.0) + memoist (~> 0.12) + multi_json (~> 1.11) + os (~> 0.9) + signet (~> 0.7) + gpgme (2.0.13) + mini_portile2 (~> 2.1) + grape (1.0.3) + activesupport + builder + mustermann-grape (~> 1.0.0) + rack (>= 1.3.0) + rack-accept + virtus (>= 1.0.0) + grape-entity (0.7.1) + activesupport (>= 4.0) + multi_json (>= 1.3.2) + grape-path-helpers (1.0.6) + activesupport (>= 4, < 5.1) + grape (~> 1.0) + rake (~> 12) + grape_logging (1.7.0) + grape + graphiql-rails (1.4.10) + railties + sprockets-rails + graphql (1.8.1) + grpc (1.11.0) + google-protobuf (~> 3.1) + googleapis-common-protos-types (~> 1.0.0) + googleauth (>= 0.5.1, < 0.7) + gssapi (1.2.0) + ffi (>= 1.0.1) + haml (5.0.4) + temple (>= 0.8.0) + tilt + haml_lint (0.26.0) + haml (>= 4.0, < 5.1) + rainbow + rake (>= 10, < 13) + rubocop (>= 0.49.0) + sysexits (~> 1.1) + hamlit (2.8.8) + temple (>= 0.8.0) + thor + tilt + hangouts-chat (0.0.5) + hashdiff (0.3.4) + hashie (3.5.7) + hashie-forbidden_attributes (0.1.1) + hashie (>= 3.0) + health_check (2.6.0) + rails (>= 4.0) + hipchat (1.5.2) + httparty + mimemagic + html-pipeline (2.8.4) + activesupport (>= 2) + nokogiri (>= 1.4) + html2text (0.2.0) + nokogiri (~> 1.6) + htmlentities (4.3.4) + http (2.2.2) + addressable (~> 2.3) + http-cookie (~> 1.0) + http-form_data (~> 1.0.1) + http_parser.rb (~> 0.6.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + http-form_data (1.0.3) + http_parser.rb (0.6.0) + httparty (0.13.7) + json (~> 1.8) + multi_xml (>= 0.5.2) + httpclient (2.8.3) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + icalendar (2.4.1) + ice_nine (0.11.2) + influxdb (0.2.3) + cause + json + ipaddress (0.8.3) + jira-ruby (1.4.1) + activesupport + multipart-post + oauth (~> 0.5, >= 0.5.0) + jmespath (1.3.1) + jquery-atwho-rails (1.3.2) + js_regex (2.2.1) + regexp_parser (>= 0.4.11, <= 0.5.0) + json (1.8.6) + json-jwt (1.9.4) + activesupport + aes_key_wrap + bindata + json-schema (2.8.0) + addressable (>= 2.4) + jwt (1.5.6) + kaminari (1.0.1) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.0.1) + kaminari-activerecord (= 1.0.1) + kaminari-core (= 1.0.1) + kaminari-actionview (1.0.1) + actionview + kaminari-core (= 1.0.1) + kaminari-activerecord (1.0.1) + activerecord + kaminari-core (= 1.0.1) + kaminari-core (1.0.1) + kgio (2.10.0) + knapsack (1.16.0) + rake + kubeclient (3.1.0) + http (~> 2.2.2) + recursive-open-struct (~> 1.0, >= 1.0.4) + rest-client (~> 2.0) + launchy (2.4.3) + addressable (~> 2.3) + letter_opener (1.4.1) + launchy (~> 2.2) + letter_opener_web (1.3.0) + actionmailer (>= 3.2) + letter_opener (~> 1.0) + railties (>= 3.2) + license_finder (5.4.0) + bundler + rubyzip + thor + toml (= 0.2.0) + with_env (= 1.1.0) + xml-simple + licensee (8.9.2) + rugged (~> 0.24) + little-plugger (1.1.4) + locale (2.1.2) + logging (2.2.2) + little-plugger (~> 1.1) + multi_json (~> 1.10) + lograge (0.10.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.2.2) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.0) + mini_mime (>= 0.1.1) + mail_room (0.9.1) + memoist (0.16.0) + memoizable (0.4.2) + thread_safe (~> 0.3, >= 0.3.1) + method_source (0.9.0) + mime-types (3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0521) + mimemagic (0.3.0) + mini_magick (4.8.0) + mini_mime (1.0.0) + mini_portile2 (2.3.0) + minitest (5.7.0) + mousetrap-rails (1.4.6) + msgpack (1.2.4) + multi_json (1.13.1) + multi_xml (0.6.0) + multipart-post (2.0.0) + mustermann (1.0.2) + mustermann-grape (1.0.0) + mustermann (~> 1.0.0) + mysql2 (0.4.10) + net-ldap (0.16.0) + net-ntp (2.1.3) + net-ssh (5.0.1) + netrc (0.11.0) + nokogiri (1.8.4) + mini_portile2 (~> 2.3.0) + nokogumbo (1.5.0) + nokogiri + numerizer (0.1.1) + oauth (0.5.4) + oauth2 (1.4.0) + faraday (>= 0.8, < 0.13) + jwt (~> 1.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 3) + octokit (4.9.0) + sawyer (~> 0.8.0, >= 0.5.3) + omniauth (1.8.1) + hashie (>= 3.4.6, < 3.6.0) + rack (>= 1.6.2, < 3) + omniauth-auth0 (2.0.0) + omniauth-oauth2 (~> 1.4) + omniauth-authentiq (0.3.3) + jwt (>= 1.5) + omniauth-oauth2 (>= 1.5) + omniauth-azure-oauth2 (0.0.9) + jwt (~> 1.0) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.4) + omniauth-cas3 (1.1.4) + addressable (~> 2.3) + nokogiri (~> 1.7, >= 1.7.1) + omniauth (~> 1.2) + omniauth-facebook (4.0.0) + omniauth-oauth2 (~> 1.2) + omniauth-github (1.3.0) + omniauth (~> 1.5) + omniauth-oauth2 (>= 1.4.0, < 2.0) + omniauth-gitlab (1.0.3) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.0) + omniauth-google-oauth2 (0.5.3) + jwt (>= 1.5) + omniauth (>= 1.1.1) + omniauth-oauth2 (>= 1.5) + omniauth-kerberos (0.3.0) + omniauth-multipassword + timfel-krb5-auth (~> 0.8) + omniauth-multipassword (0.4.2) + omniauth (~> 1.0) + omniauth-oauth (1.1.0) + oauth + omniauth (~> 1.0) + omniauth-oauth2 (1.5.0) + oauth2 (~> 1.1) + omniauth (~> 1.2) + omniauth-oauth2-generic (0.2.2) + omniauth-oauth2 (~> 1.0) + omniauth-saml (1.10.0) + omniauth (~> 1.3, >= 1.3.2) + ruby-saml (~> 1.7) + omniauth-shibboleth (1.3.0) + omniauth (>= 1.0.0) + omniauth-twitter (1.4.0) + omniauth-oauth (~> 1.1) + rack + omniauth_crowd (2.2.3) + activesupport + nokogiri (>= 1.4.4) + omniauth (~> 1.0) + org-ruby (0.9.12) + rubypants (~> 0.2) + orm_adapter (0.5.0) + os (0.9.6) + parallel (1.12.1) + parser (2.5.1.0) + ast (~> 2.4.0) + parslet (1.8.2) + peek (1.0.1) + concurrent-ruby (>= 0.9.0) + concurrent-ruby-ext (>= 0.9.0) + railties (>= 4.0.0) + peek-gc (0.0.2) + peek + peek-mysql2 (1.1.0) + atomic (>= 1.0.0) + mysql2 + peek + peek-pg (1.3.0) + concurrent-ruby + concurrent-ruby-ext + peek + pg + peek-rblineprof (0.2.0) + peek + rblineprof + peek-redis (1.2.0) + atomic (>= 1.0.0) + peek + redis + peek-sidekiq (1.0.3) + atomic (>= 1.0.0) + peek + sidekiq + pg (0.18.4) + po_to_json (1.0.1) + json (>= 1.6.0) + posix-spawn (0.3.13) + powerpack (0.1.1) + premailer (1.10.4) + addressable + css_parser (>= 1.4.10) + htmlentities (>= 4.0.0) + premailer-rails (1.9.7) + actionmailer (>= 3, < 6) + premailer (~> 1.7, >= 1.7.9) + proc_to_ast (0.1.0) + coderay + parser + unparser + procto (0.0.3) + prometheus-client-mmap (0.9.4) + pry (0.11.3) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + pry-byebug (3.4.3) + byebug (>= 9.0, < 9.1) + pry (~> 0.10) + pry-rails (0.3.5) + pry (>= 0.9.10) + public_suffix (3.0.2) + pyu-ruby-sasl (0.0.3.3) + rack (1.6.10) + rack-accept (0.4.5) + rack (>= 0.4) + rack-attack (4.4.1) + rack + rack-cors (1.0.2) + rack-oauth2 (1.2.3) + activesupport (>= 2.3) + attr_required (>= 0.0.5) + httpclient (>= 2.4) + multi_json (>= 1.3.6) + rack (>= 1.1) + rack-protection (2.0.1) + rack + rack-proxy (0.6.0) + rack + rack-test (0.6.3) + rack (>= 1.0) + rails (4.2.10) + actionmailer (= 4.2.10) + actionpack (= 4.2.10) + actionview (= 4.2.10) + activejob (= 4.2.10) + activemodel (= 4.2.10) + activerecord (= 4.2.10) + activesupport (= 4.2.10) + bundler (>= 1.3.0, < 2.0) + railties (= 4.2.10) + sprockets-rails + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (1.0.9) + activesupport (>= 4.2.0, < 5.0) + nokogiri (~> 1.6) + rails-deprecated_sanitizer (>= 1.0.1) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + rails-i18n (4.0.9) + i18n (~> 0.7) + railties (~> 4.0) + railties (4.2.10) + actionpack (= 4.2.10) + activesupport (= 4.2.10) + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rainbow (3.0.0) + raindrops (0.18.0) + rake (12.3.1) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rblineprof (0.3.6) + debugger-ruby_core_source (~> 1.3) + rbtrace (0.4.10) + ffi (>= 1.0.6) + msgpack (>= 0.4.3) + trollop (>= 1.16.2) + rdoc (6.0.4) + re2 (1.1.1) + recaptcha (3.0.0) + json + recursive-open-struct (1.1.0) + redcarpet (3.4.0) + redis (3.3.5) + redis-actionpack (5.0.2) + actionpack (>= 4.0, < 6) + redis-rack (>= 1, < 3) + redis-store (>= 1.1.0, < 2) + redis-activesupport (5.0.4) + activesupport (>= 3, < 6) + redis-store (>= 1.3, < 2) + redis-namespace (1.6.0) + redis (>= 3.0.4) + redis-rack (2.0.4) + rack (>= 1.5, < 3) + redis-store (>= 1.2, < 2) + redis-rails (5.0.2) + redis-actionpack (>= 5.0, < 6) + redis-activesupport (>= 5.0, < 6) + redis-store (>= 1.2, < 2) + redis-store (1.4.1) + redis (>= 2.2, < 5) + regexp_parser (0.5.0) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + request_store (1.3.1) + responders (2.4.0) + actionpack (>= 4.2.0, < 5.3) + railties (>= 4.2.0, < 5.3) + rest-client (2.0.2) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + retriable (3.1.2) + rinku (2.0.0) + rotp (2.1.2) + rouge (3.2.1) + rqrcode (0.7.0) + chunky_png + rqrcode-rails3 (0.1.7) + rqrcode (>= 0.4.2) + rspec (3.7.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-core (3.7.1) + rspec-support (~> 3.7.0) + rspec-expectations (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-mocks (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-parameterized (0.4.0) + binding_of_caller + parser + proc_to_ast + rspec (>= 2.13, < 4) + unparser + rspec-rails (3.7.2) + actionpack (>= 3.0) + activesupport (>= 3.0) + railties (>= 3.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-support (~> 3.7.0) + rspec-retry (0.4.5) + rspec-core + rspec-set (0.1.3) + rspec-support (3.7.1) + rspec_junit_formatter (0.2.3) + builder (< 4) + rspec-core (>= 2, < 4, != 2.12.0) + rspec_profiling (0.0.5) + activerecord + pg + rails + sqlite3 + rubocop (0.54.0) + parallel (~> 1.10) + parser (>= 2.5) + powerpack (~> 0.1) + rainbow (>= 2.2.2, < 4.0) + ruby-progressbar (~> 1.7) + unicode-display_width (~> 1.0, >= 1.0.1) + rubocop-gitlab-security (0.1.1) + rubocop (>= 0.51) + rubocop-rspec (1.22.2) + rubocop (>= 0.52.1) + ruby-enum (0.7.2) + i18n + ruby-fogbugz (0.2.1) + crack (~> 0.4) + ruby-prof (0.17.0) + ruby-progressbar (1.9.0) + ruby-saml (1.7.2) + nokogiri (>= 1.5.10) + ruby_parser (3.9.0) + sexp_processor (~> 4.1) + rubyntlm (0.6.2) + rubypants (0.2.0) + rubyzip (1.2.2) + rufus-scheduler (3.4.0) + et-orbi (~> 1.0) + rugged (0.27.4) + safe_yaml (1.0.4) + sanitize (4.6.6) + crass (~> 1.0.2) + nokogiri (>= 1.4.4) + nokogumbo (~> 1.4) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sass-rails (5.0.6) + railties (>= 4.0.0, < 6) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + scss_lint (0.56.0) + rake (>= 0.9, < 13) + sass (~> 3.5.3) + seed-fu (2.3.7) + activerecord (>= 3.1) + activesupport (>= 3.1) + select2-rails (3.5.9.3) + thor (~> 0.14) + selenium-webdriver (3.12.0) + childprocess (~> 0.5) + rubyzip (~> 1.2) + sentry-raven (2.7.2) + faraday (>= 0.7.6, < 1.0) + settingslogic (2.0.9) + sexp_processor (4.9.0) + sham_rack (1.3.6) + rack + shoulda-matchers (3.1.2) + activesupport (>= 4.0.0) + sidekiq (5.1.3) + concurrent-ruby (~> 1.0) + connection_pool (~> 2.2, >= 2.2.0) + rack-protection (>= 1.5.0) + redis (>= 3.3.5, < 5) + sidekiq-cron (0.6.0) + rufus-scheduler (>= 3.3.0) + sidekiq (>= 4.2.1) + sidekiq-limit_fetch (3.4.0) + sidekiq (>= 4) + signet (0.8.1) + addressable (~> 2.3) + faraday (~> 0.9) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simple_po_parser (1.1.2) + simplecov (0.14.1) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) + slack-notifier (1.5.1) + spring (2.0.1) + activesupport (>= 4.2) + spring-commands-rspec (1.0.4) + spring (>= 0.9.1) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.3.13) + sshkey (1.9.0) + stackprof (0.2.10) + state_machines (0.5.0) + state_machines-activemodel (0.5.1) + activemodel (>= 4.1, < 6.0) + state_machines (>= 0.5.0) + state_machines-activerecord (0.5.1) + activerecord (>= 4.1, < 6.0) + state_machines-activemodel (>= 0.5.0) + stringex (2.8.4) + sys-filesystem (1.1.6) + ffi + sysexits (1.2.0) + temple (0.8.0) + test-prof (0.2.5) + test_after_commit (1.1.0) + activerecord (>= 3.2) + text (1.3.1) + thin (1.7.0) + daemons (~> 1.0, >= 1.0.9) + eventmachine (~> 1.0, >= 1.0.4) + rack (>= 1, < 3) + thor (0.19.4) + thread_safe (0.3.6) + tilt (2.0.8) + timecop (0.8.1) + timfel-krb5-auth (0.8.3) + toml (0.2.0) + parslet (~> 1.8.0) + toml-rb (1.0.0) + citrus (~> 3.0, > 3.0) + trollop (2.1.3) + truncato (0.7.10) + htmlentities (~> 4.3.1) + nokogiri (~> 1.8.0, >= 1.7.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + u2f (0.2.1) + uber (0.1.0) + uglifier (2.7.2) + execjs (>= 0.3.0) + json (>= 1.8.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.5) + unicode-display_width (1.3.2) + unicorn (5.1.0) + kgio (~> 2.6) + raindrops (~> 0.7) + unicorn-worker-killer (0.4.4) + get_process_mem (~> 0) + unicorn (>= 4, < 6) + uniform_notifier (1.10.0) + unparser (0.2.7) + abstract_type (~> 0.0.7) + adamantium (~> 0.2.0) + concord (~> 0.1.5) + diff-lcs (~> 1.3) + equalizer (~> 0.0.9) + parser (>= 2.3.1.2, < 2.6) + procto (~> 0.0.2) + validates_hostname (1.0.6) + activerecord (>= 3.0) + activesupport (>= 3.0) + version_sorter (2.1.0) + virtus (1.0.5) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + equalizer (~> 0.0, >= 0.0.9) + vmstat (2.3.0) + warden (1.2.7) + rack (>= 1.0) + webmock (2.3.2) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff + webpack-rails (0.9.10) + railties (>= 3.2.0) + wikicloth (0.8.1) + builder + expression_parser + rinku + with_env (1.1.0) + xml-simple (1.1.5) + xpath (2.1.0) + nokogiri (~> 1.3) + +PLATFORMS + ruby + +DEPENDENCIES + RedCloth (~> 4.3.2) + ace-rails-ap (~> 4.1.0) + activerecord_sane_schema_dumper (= 0.2) + acts-as-taggable-on (~> 5.0) + addressable (~> 2.5.2) + akismet (~> 2.0) + asana (~> 0.6.0) + asciidoctor (~> 1.5.6) + asciidoctor-plantuml (= 0.0.8) + asset_sync (~> 2.4) + attr_encrypted (~> 3.1.0) + awesome_print + aws-sdk + babosa (~> 1.0.2) + base32 (~> 0.3.0) + batch-loader (~> 1.2.1) + bcrypt_pbkdf (~> 1.0) + benchmark-ips (~> 2.3.0) + better_errors (~> 2.1.0) + binding_of_caller (~> 0.7.2) + bootsnap (~> 1.3) + bootstrap_form (~> 2.7.0) + brakeman (~> 4.2) + browser (~> 2.5) + bullet (~> 5.5.0) + bundler-audit (~> 0.5.0) + capybara (~> 2.15) + capybara-screenshot (~> 1.0.0) + carrierwave (= 1.2.3) + charlock_holmes (~> 0.7.5) + chronic (~> 0.10.2) + chronic_duration (~> 0.10.6) + commonmarker (~> 0.17) + concurrent-ruby (~> 1.0.5) + connection_pool (~> 2.0) + creole (~> 0.5.0) + database_cleaner (~> 1.5.0) + deckar01-task_list (= 2.0.0) + default_value_for (~> 3.0.0) + device_detector + devise (~> 4.4) + devise-two-factor (~> 3.0.0) + diffy (~> 3.1.0) + doorkeeper (~> 4.3) + doorkeeper-openid_connect (~> 1.5) + dropzonejs-rails (~> 0.7.1) + ed25519 (~> 1.2) + elasticsearch-api (= 5.0.3) + elasticsearch-model (~> 0.1.9) + elasticsearch-rails (~> 0.1.9) + email_reply_trimmer (~> 0.1) + email_spec (~> 2.2.0) + factory_bot_rails (~> 4.8.2) + faraday (~> 0.12) + faraday_middleware-aws-signers-v4 + fast_blank + ffaker (~> 2.4) + flipper (~> 0.13.0) + flipper-active_record (~> 0.13.0) + flipper-active_support_cache_store (~> 0.13.0) + fog-aliyun (~> 0.2.0) + fog-aws (~> 2.0.1) + fog-core (~> 1.44) + fog-google (~> 1.7.1) + fog-local (~> 0.3) + fog-openstack (~> 0.1) + fog-rackspace (~> 0.1.1) + font-awesome-rails (~> 4.7) + foreman (~> 0.84.0) + fuubar (~> 2.2.0) + gemojione (~> 3.3) + gettext (~> 3.2.2) + gettext_i18n_rails (~> 1.8.0) + gettext_i18n_rails_js (~> 1.3) + gitaly-proto (~> 0.117.0) + github-linguist (~> 5.3.3) + gitlab-flowdock-git-hook (~> 1.0.1) + gitlab-gollum-lib (~> 4.2) + gitlab-gollum-rugged_adapter (~> 0.4.4) + gitlab-license (~> 1.0) + gitlab-markup (~> 1.6.4) + gitlab-styles (~> 2.4) + gitlab_omniauth-ldap (~> 2.0.4) + gon (~> 6.2) + google-api-client (~> 0.23) + google-protobuf (= 3.5.1) + gpgme + grape (~> 1.0) + grape-entity (~> 0.7.1) + grape-path-helpers (~> 1.0) + grape_logging (~> 1.7) + graphiql-rails (~> 1.4.10) + graphql (~> 1.8.0) + grpc (~> 1.11.0) + gssapi + haml_lint (~> 0.26.0) + hamlit (~> 2.8.8) + hangouts-chat (~> 0.0.5) + hashie-forbidden_attributes + health_check (~> 2.6.0) + hipchat (~> 1.5.0) + html-pipeline (~> 2.8) + html2text + httparty (~> 0.13.3) + icalendar + influxdb (~> 0.2) + jira-ruby (~> 1.4) + jquery-atwho-rails (~> 1.3.2) + js_regex (~> 2.2.1) + json-schema (~> 2.8.0) + jwt (~> 1.5.6) + kaminari (~> 1.0) + knapsack (~> 1.16) + kubeclient (~> 3.1.0) + letter_opener_web (~> 1.3.0) + license_finder (~> 5.4) + licensee (~> 8.9) + lograge (~> 0.5) + loofah (~> 2.2) + mail_room (~> 0.9.1) + method_source (~> 0.8) + mini_magick + minitest (~> 5.7.0) + mousetrap-rails (~> 1.4.6) + mysql2 (~> 0.4.10) + net-ldap + net-ntp + net-ssh (~> 5.0) + nokogiri (~> 1.8.2) + oauth2 (~> 1.4) + octokit (~> 4.9) + omniauth (~> 1.8) + omniauth-auth0 (~> 2.0.0) + omniauth-authentiq (~> 0.3.3) + omniauth-azure-oauth2 (~> 0.0.9) + omniauth-cas3 (~> 1.1.4) + omniauth-facebook (~> 4.0.0) + omniauth-github (~> 1.3) + omniauth-gitlab (~> 1.0.2) + omniauth-google-oauth2 (~> 0.5.3) + omniauth-kerberos (~> 0.3.0) + omniauth-oauth2-generic (~> 0.2.2) + omniauth-saml (~> 1.10) + omniauth-shibboleth (~> 1.3.0) + omniauth-twitter (~> 1.4) + omniauth_crowd (~> 2.2.0) + org-ruby (~> 0.9.12) + peek (~> 1.0.1) + peek-gc (~> 0.0.2) + peek-mysql2 (~> 1.1.0) + peek-pg (~> 1.3.0) + peek-rblineprof (~> 0.2.0) + peek-redis (~> 1.2.0) + peek-sidekiq (~> 1.0.3) + pg (~> 0.18.2) + premailer-rails (~> 1.9.7) + prometheus-client-mmap (~> 0.9.4) + pry-byebug (~> 3.4.1) + pry-rails (~> 0.3.4) + rack-attack (~> 4.4.1) + rack-cors (~> 1.0.0) + rack-oauth2 (~> 1.2.1) + rack-proxy (~> 0.6.0) + rails (= 4.2.10) + rails-deprecated_sanitizer (~> 1.0.3) + rails-i18n (~> 4.0.9) + rainbow (~> 3.0) + raindrops (~> 0.18) + rblineprof (~> 0.3.6) + rbtrace (~> 0.4) + rdoc (~> 6.0) + re2 (~> 1.1.1) + recaptcha (~> 3.0) + redcarpet (~> 3.4) + redis (~> 3.2) + redis-namespace (~> 1.6.0) + redis-rails (~> 5.0.2) + request_store (~> 1.3) + responders (~> 2.0) + rouge (~> 3.1) + rqrcode-rails3 (~> 0.1.7) + rspec-parameterized + rspec-rails (~> 3.7.0) + rspec-retry (~> 0.4.5) + rspec-set (~> 0.1.3) + rspec_junit_formatter + rspec_profiling (~> 0.0.5) + rubocop (~> 0.54.0) + rubocop-rspec (~> 1.22.1) + ruby-fogbugz (~> 0.2.1) + ruby-prof (~> 0.17.0) + ruby-progressbar + ruby_parser (~> 3.8) + rufus-scheduler (~> 3.4) + rugged (~> 0.27) + sanitize (~> 4.6) + sass-rails (~> 5.0.6) + scss_lint (~> 0.56.0) + seed-fu (~> 2.3.7) + select2-rails (~> 3.5.9) + selenium-webdriver (~> 3.12) + sentry-raven (~> 2.7) + settingslogic (~> 2.0.9) + sham_rack (~> 1.3.6) + shoulda-matchers (~> 3.1.2) + sidekiq (~> 5.1) + sidekiq-cron (~> 0.6.0) + sidekiq-limit_fetch (~> 3.4) + simple_po_parser (~> 1.1.2) + simplecov (~> 0.14.0) + slack-notifier (~> 1.5.1) + spring (~> 2.0.0) + spring-commands-rspec (~> 1.0.4) + sprockets (~> 3.7.0) + sshkey (~> 1.9.0) + stackprof (~> 0.2.10) + state_machines-activerecord (~> 0.5.1) + sys-filesystem (~> 1.1.6) + test-prof (~> 0.2.5) + test_after_commit (~> 1.1) + thin (~> 1.7.0) + timecop (~> 0.8.0) + toml-rb (~> 1.0.0) + truncato (~> 0.7.9) + u2f (~> 0.2.1) + uglifier (~> 2.7.2) + unf (~> 0.1.4) + unicorn (~> 5.1.0) + unicorn-worker-killer (~> 0.4.4) + validates_hostname (~> 1.0.6) + version_sorter (~> 2.1.0) + virtus (~> 1.0.1) + vmstat (~> 2.3.0) + webmock (~> 2.3.2) + webpack-rails (~> 0.9.10) + wikicloth (= 0.8.1) + +BUNDLED WITH + 1.16.4 diff --git a/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix new file mode 100644 index 000000000000..a067d1e42722 --- /dev/null +++ b/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix @@ -0,0 +1,3681 @@ +{ + abstract_type = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14"; + type = "gem"; + }; + version = "0.0.7"; + }; + ace-rails-ap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h"; + type = "gem"; + }; + version = "4.1.2"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ivyjsapqgn1xfb2p8yqjrg2jldqm5r7hxrjxq6kdr05gk4fsg59"; + type = "gem"; + }; + version = "4.2.10"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l6agrxdaishxjx2zc2x8md95plfp39bfskzgs6v9gsdp2y2arpx"; + type = "gem"; + }; + version = "4.2.10"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jrx2pmkywk70z7n17gw3jrcdw3n03wdzvg45bnq8wxshl1lmbhv"; + type = "gem"; + }; + version = "4.2.10"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10jsa5pqklcsd2npicqxr5abjlwi53di2brpzgz35k557fkpc1z8"; + type = "gem"; + }; + version = "4.2.10"; + }; + activemodel = { + dependencies = ["activesupport" "builder"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c4vj9xajxa906bqbcjpni74nya6rh2nbb15gl8xm0vl9zf3ll9v"; + type = "gem"; + }; + version = "4.2.10"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lws9y4p9c2vnmv3ddfpv8jh6azlddppl3fi31vahaz14ifxjk5s"; + type = "gem"; + }; + version = "4.2.10"; + }; + activerecord_sane_schema_dumper = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "122c7v7lvs0gwckvx2rar07waxnx1vv0lryz322nybb69d8vbhl6"; + type = "gem"; + }; + version = "0.2"; + }; + activesupport = { + dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7"; + type = "gem"; + }; + version = "4.2.10"; + }; + acts-as-taggable-on = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i"; + type = "gem"; + }; + version = "5.0.0"; + }; + adamantium = { + dependencies = ["ice_nine" "memoizable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak"; + type = "gem"; + }; + version = "0.2.0"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + type = "gem"; + }; + version = "2.5.2"; + }; + aes_key_wrap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07"; + type = "gem"; + }; + version = "1.0.1"; + }; + akismet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w"; + type = "gem"; + }; + version = "2.0.0"; + }; + arel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4"; + type = "gem"; + }; + version = "6.0.4"; + }; + asana = { + dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bn7f3sc2f02g871jd0y6qdhixn464mflkjchp56x6kcnyqy24z6"; + type = "gem"; + }; + version = "0.6.0"; + }; + asciidoctor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zq3az4836nxkc8g5wnnbzmarw7663s1ky6gf8pc04sfpa8n2l3f"; + type = "gem"; + }; + version = "1.5.6.2"; + }; + asciidoctor-plantuml = { + dependencies = ["asciidoctor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna"; + type = "gem"; + }; + version = "0.0.8"; + }; + asset_sync = { + dependencies = ["activemodel" "fog-core" "mime-types" "unf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wjd662yyg72dwwc6cav7gk2bjv9nkhn056f03h8zmyank451hdf"; + type = "gem"; + }; + version = "2.4.0"; + }; + ast = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; + type = "gem"; + }; + version = "2.4.0"; + }; + atomic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9"; + type = "gem"; + }; + version = "1.1.99"; + }; + attr_encrypted = { + dependencies = ["encryptor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg"; + type = "gem"; + }; + version = "3.1.0"; + }; + attr_required = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc"; + type = "gem"; + }; + version = "1.0.0"; + }; + awesome_print = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h"; + type = "gem"; + }; + version = "1.8.0"; + }; + aws-sdk = { + dependencies = ["aws-sdk-resources"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03r754cqa0jayf1nxpcmp1anaypxwpcjyjaq5cz7i04l9jdxvsnn"; + type = "gem"; + }; + version = "2.9.32"; + }; + aws-sdk-core = { + dependencies = ["aws-sigv4" "jmespath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pq09wwb74y4m5adk4hi4zlz05q6sxjxij6g71v6nkd0z83hi34x"; + type = "gem"; + }; + version = "2.9.32"; + }; + aws-sdk-resources = { + dependencies = ["aws-sdk-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15m56k12x9gzkcyhwrab1qhi3wqla0qmv84dkqcjwp44d7c2xjyi"; + type = "gem"; + }; + version = "2.9.32"; + }; + aws-sigv4 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cnrfxbaxn86qrxhfidg10f89ka1hddihakdhcvnri0dljaw7dsz"; + type = "gem"; + }; + version = "1.0.0"; + }; + axiom-types = { + dependencies = ["descendants_tracker" "ice_nine" "thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; + type = "gem"; + }; + version = "0.1.1"; + }; + babosa = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f"; + type = "gem"; + }; + version = "1.0.2"; + }; + base32 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk"; + type = "gem"; + }; + version = "0.3.2"; + }; + batch-loader = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nvmwzn8q6dkp2n8wz47z7gldj3yrj7h6syy0cwrkzi19bfvxba2"; + type = "gem"; + }; + version = "1.2.1"; + }; + bcrypt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy"; + type = "gem"; + }; + version = "3.1.12"; + }; + bcrypt_pbkdf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv"; + type = "gem"; + }; + version = "1.0.0"; + }; + benchmark-ips = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j"; + type = "gem"; + }; + version = "2.3.0"; + }; + better_errors = { + dependencies = ["coderay" "erubis" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11csk41yhijqvp0dkky0cjl8kn6blw4jhr8b6v4islfvvayddcxc"; + type = "gem"; + }; + version = "2.1.1"; + }; + bindata = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr"; + type = "gem"; + }; + version = "2.4.3"; + }; + binding_of_caller = { + dependencies = ["debug_inspector"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15jg6dkaq2nzcd602d7ppqbdxw3aji961942w93crs6qw4n6h9yk"; + type = "gem"; + }; + version = "0.7.2"; + }; + bootsnap = { + dependencies = ["msgpack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i3llrdqkndxzhv1a7a2yjpavmdabyq5ps296vmb32hv8fy95xk9"; + type = "gem"; + }; + version = "1.3.1"; + }; + bootstrap_form = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw"; + type = "gem"; + }; + version = "2.7.0"; + }; + brakeman = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v"; + type = "gem"; + }; + version = "4.2.1"; + }; + browser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f"; + type = "gem"; + }; + version = "2.5.3"; + }; + builder = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + bullet = { + dependencies = ["activesupport" "uniform_notifier"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5"; + type = "gem"; + }; + version = "5.5.1"; + }; + bundler-audit = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb"; + type = "gem"; + }; + version = "0.5.0"; + }; + byebug = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kbfcn65rgdhi72n8x9l393b89rvi5z542459k7d1ggchpb0idb0"; + type = "gem"; + }; + version = "9.0.6"; + }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bahhwrd1rpfhci1x57yz0df9plziipljbw3p4k6mlash4wq6w92"; + type = "gem"; + }; + version = "2.15.1"; + }; + capybara-screenshot = { + dependencies = ["capybara" "launchy"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xy79lf3rwn3602r4hqm9s8a03bhlf6hzwdi6345dzrkmhwwj2ij"; + type = "gem"; + }; + version = "1.0.14"; + }; + carrierwave = { + dependencies = ["activemodel" "activesupport" "mime-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k9kla5ncygm97vn33lsrs7ch5zy4qqhhvc8m3khm986yaqh75qs"; + type = "gem"; + }; + version = "1.2.3"; + }; + cause = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00"; + type = "gem"; + }; + version = "0.1"; + }; + charlock_holmes = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5"; + type = "gem"; + }; + version = "0.7.6"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; + chronic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"; + type = "gem"; + }; + version = "0.10.2"; + }; + chronic_duration = { + dependencies = ["numerizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs"; + type = "gem"; + }; + version = "0.10.6"; + }; + chunky_png = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn"; + type = "gem"; + }; + version = "1.3.5"; + }; + citrus = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf"; + type = "gem"; + }; + version = "3.0.2"; + }; + coderay = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + coercible = { + dependencies = ["descendants_tracker"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; + type = "gem"; + }; + version = "1.0.0"; + }; + commonmarker = { + dependencies = ["ruby-enum"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9"; + type = "gem"; + }; + version = "0.17.13"; + }; + concord = { + dependencies = ["adamantium" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg"; + type = "gem"; + }; + version = "0.1.5"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"; + type = "gem"; + }; + version = "1.0.5"; + }; + concurrent-ruby-ext = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "119l554zi3720d3rk670ldcqhsgmfii28a9z307v4mwdjckdm4gp"; + type = "gem"; + }; + version = "1.0.5"; + }; + connection_pool = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17vpaj6kyf2i8bimaxz7rg1kyadf4d10642ja67qiqlhwgczl2w7"; + type = "gem"; + }; + version = "2.2.1"; + }; + crack = { + dependencies = ["safe_yaml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"; + type = "gem"; + }; + version = "0.4.3"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + creole = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"; + type = "gem"; + }; + version = "0.5.0"; + }; + css_parser = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy"; + type = "gem"; + }; + version = "1.5.0"; + }; + daemons = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b839hryy9sg7x3knsa1d6vfiyvn0mlsnhsb6an8zsalyrz1zgqg"; + type = "gem"; + }; + version = "1.2.3"; + }; + database_cleaner = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fx6zmqznklmkbjl6f713jyl11d4g9q220rcl86m2jp82r8kfwjj"; + type = "gem"; + }; + version = "1.5.3"; + }; + debug_inspector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "109761g00dbrw5q0dfnbqg8blfm699z4jj70l4zrgf9mzn7ii50m"; + type = "gem"; + }; + version = "0.0.2"; + }; + debugger-ruby_core_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd"; + type = "gem"; + }; + version = "1.3.8"; + }; + deckar01-task_list = { + dependencies = ["html-pipeline"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j"; + type = "gem"; + }; + version = "2.0.0"; + }; + declarative = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j"; + type = "gem"; + }; + version = "0.0.10"; + }; + declarative-option = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p"; + type = "gem"; + }; + version = "0.1.0"; + }; + default_value_for = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "014482mxjrc227fxv6vff6ccjr9dr0ydz52flxslsa7biq542k73"; + type = "gem"; + }; + version = "3.0.2"; + }; + descendants_tracker = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; + type = "gem"; + }; + version = "0.0.4"; + }; + device_detector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q"; + type = "gem"; + }; + version = "1.0.0"; + }; + devise = { + dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj"; + type = "gem"; + }; + version = "4.4.3"; + }; + devise-two-factor = { + dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs"; + type = "gem"; + }; + version = "3.0.0"; + }; + diff-lcs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; + }; + version = "1.3"; + }; + diffy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj"; + type = "gem"; + }; + version = "3.1.0"; + }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; + domain_name = { + dependencies = ["unf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"; + type = "gem"; + }; + version = "0.5.20180417"; + }; + doorkeeper = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz"; + type = "gem"; + }; + version = "4.3.2"; + }; + doorkeeper-openid_connect = { + dependencies = ["doorkeeper" "json-jwt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95"; + type = "gem"; + }; + version = "1.5.0"; + }; + dropzonejs-rails = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vqqxzv6qdqy47m2q28adnmccfvc17p2bmkkaqjvrczrhvkkha64"; + type = "gem"; + }; + version = "0.7.2"; + }; + ed25519 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw"; + type = "gem"; + }; + version = "1.2.4"; + }; + elasticsearch = { + dependencies = ["elasticsearch-api" "elasticsearch-transport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fik4nrxyi28zy1xwi4rygn0pf1sm1gskcrvbsnmqfrsdd6l4ga4"; + type = "gem"; + }; + version = "5.0.3"; + }; + elasticsearch-api = { + dependencies = ["multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0aal128hq59l5kscl2ag2cv24g1sp5ysdb4jxkqmj0b1l9rv16mw"; + type = "gem"; + }; + version = "5.0.3"; + }; + elasticsearch-model = { + dependencies = ["activesupport" "elasticsearch" "hashie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10kbsdxd192g8x60fhaxs4gqpgwag68d53flcw8rwvdm0i8smyzf"; + type = "gem"; + }; + version = "0.1.9"; + }; + elasticsearch-rails = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "081hm2dc3l6kky027wm3s8k6lmiygg0hnrggnidchbl94nlalw2z"; + type = "gem"; + }; + version = "0.1.9"; + }; + elasticsearch-transport = { + dependencies = ["faraday" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a7fak70ajdqw1ahd2gmgijka52pjjfr3chaakkxa5fk3rwwna26"; + type = "gem"; + }; + version = "5.0.3"; + }; + email_reply_trimmer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz"; + type = "gem"; + }; + version = "0.1.6"; + }; + email_spec = { + dependencies = ["htmlentities" "launchy" "mail"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0"; + type = "gem"; + }; + version = "2.2.0"; + }; + encryptor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; + type = "gem"; + }; + version = "3.0.0"; + }; + equalizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; + type = "gem"; + }; + version = "0.0.11"; + }; + erubis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; + type = "gem"; + }; + version = "2.7.0"; + }; + escape_utils = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "088r5c2mz2vy2jbbx1xjbi8msnzg631ggli29nhik2spbcp1z6vh"; + type = "gem"; + }; + version = "1.1.1"; + }; + et-orbi = { + dependencies = ["tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi"; + type = "gem"; + }; + version = "1.0.3"; + }; + eventmachine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1frvpk3p73xc64qkn0ymll3flvn4xcycq5yx8a43zd3gyzc1ifjp"; + type = "gem"; + }; + version = "1.0.8"; + }; + excon = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2"; + type = "gem"; + }; + version = "0.62.0"; + }; + execjs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw"; + type = "gem"; + }; + version = "2.6.0"; + }; + expression_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib"; + type = "gem"; + }; + version = "0.9.0"; + }; + factory_bot = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx"; + type = "gem"; + }; + version = "4.8.2"; + }; + factory_bot_rails = { + dependencies = ["factory_bot" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2"; + type = "gem"; + }; + version = "4.8.2"; + }; + faraday = { + dependencies = ["multipart-post"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2"; + type = "gem"; + }; + version = "0.12.2"; + }; + faraday_middleware = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d"; + type = "gem"; + }; + version = "0.12.2"; + }; + faraday_middleware-aws-signers-v4 = { + dependencies = ["aws-sdk-resources" "faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y88xcbq8k2ijhsqdava5493p26k49agvnzca6vkl3qwfv3ambhp"; + type = "gem"; + }; + version = "0.1.7"; + }; + faraday_middleware-multi_json = { + dependencies = ["faraday_middleware" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q"; + type = "gem"; + }; + version = "0.0.6"; + }; + fast_blank = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56"; + type = "gem"; + }; + version = "1.0.0"; + }; + fast_gettext = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3"; + type = "gem"; + }; + version = "1.6.0"; + }; + ffaker = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rlfvf2iakphs3krxy1hiywr2jzmrhvhig8n8fw6rcivpz9v52ry"; + type = "gem"; + }; + version = "2.4.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q"; + type = "gem"; + }; + version = "1.9.25"; + }; + flipper = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw"; + type = "gem"; + }; + version = "0.13.0"; + }; + flipper-active_record = { + dependencies = ["activerecord" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1"; + type = "gem"; + }; + version = "0.13.0"; + }; + flipper-active_support_cache_store = { + dependencies = ["activesupport" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk"; + type = "gem"; + }; + version = "0.13.0"; + }; + flowdock = { + dependencies = ["httparty" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg"; + type = "gem"; + }; + version = "0.7.1"; + }; + fog-aliyun = { + dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m"; + type = "gem"; + }; + version = "0.2.0"; + }; + fog-aws = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3"; + type = "gem"; + }; + version = "2.0.1"; + }; + fog-core = { + dependencies = ["builder" "excon" "formatador"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3"; + type = "gem"; + }; + version = "1.45.0"; + }; + fog-google = { + dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2"; + type = "gem"; + }; + version = "1.7.1"; + }; + fog-json = { + dependencies = ["fog-core" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r"; + type = "gem"; + }; + version = "1.0.2"; + }; + fog-local = { + dependencies = ["fog-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn"; + type = "gem"; + }; + version = "0.3.1"; + }; + fog-openstack = { + dependencies = ["fog-core" "fog-json" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys"; + type = "gem"; + }; + version = "0.1.21"; + }; + fog-rackspace = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a"; + type = "gem"; + }; + version = "0.1.1"; + }; + fog-xml = { + dependencies = ["fog-core" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n"; + type = "gem"; + }; + version = "0.1.3"; + }; + font-awesome-rails = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw"; + type = "gem"; + }; + version = "4.7.0.1"; + }; + foreman = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0"; + type = "gem"; + }; + version = "0.84.0"; + }; + formatador = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; + type = "gem"; + }; + version = "0.2.5"; + }; + fuubar = { + dependencies = ["rspec-core" "ruby-progressbar"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv"; + type = "gem"; + }; + version = "2.2.0"; + }; + gemojione = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + type = "gem"; + }; + version = "3.3.0"; + }; + get_process_mem = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29"; + type = "gem"; + }; + version = "0.2.0"; + }; + gettext = { + dependencies = ["locale" "text"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr"; + type = "gem"; + }; + version = "3.2.9"; + }; + gettext_i18n_rails = { + dependencies = ["fast_gettext"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm"; + type = "gem"; + }; + version = "1.8.0"; + }; + gettext_i18n_rails_js = { + dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x"; + type = "gem"; + }; + version = "1.3.0"; + }; + gitaly-proto = { + dependencies = ["google-protobuf" "grpc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ixgzw4clmhjhmv3fy9niq4x16k1yn9iyjbc99z5674xlp7nm40i"; + type = "gem"; + }; + version = "0.117.0"; + }; + github-linguist = { + dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kgashbqpypv329m63b85ri1dx0gppwd0832hvwh124lk5b19drk"; + type = "gem"; + }; + version = "5.3.3"; + }; + github-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp"; + type = "gem"; + }; + version = "1.7.0"; + }; + gitlab-flowdock-git-hook = { + dependencies = ["flowdock" "gitlab-grit" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s3a10cdbh4xy732b92zcsm5zyc1lhi5v29d76j8mwbqmj11a2p8"; + type = "gem"; + }; + version = "1.0.1"; + }; + gitlab-gollum-lib = { + dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15h6a7lsfkm967d5dhjlbcm2lnl1l9akzvaq92qlxq40r5apw0kn"; + type = "gem"; + }; + version = "4.2.7.5"; + }; + gitlab-gollum-rugged_adapter = { + dependencies = ["mime-types" "rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "092i02k3kd4ghk1h1l5yrvi9b180dgfxrvwni26facb2kc9f3wbi"; + type = "gem"; + }; + version = "0.4.4.1"; + }; + gitlab-grit = { + dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xgs3l81ghlc5nm75n0pz7b2cj3hpscfq5iy27c483nnjn2v5mc4"; + type = "gem"; + }; + version = "2.8.2"; + }; + gitlab-license = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih"; + type = "gem"; + }; + version = "1.0.0"; + }; + gitlab-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v6w3z7smmkqnhphb4ghgpqg61vimflqzpszybji0li99f2k1jb6"; + type = "gem"; + }; + version = "1.6.4"; + }; + gitlab-styles = { + dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx"; + type = "gem"; + }; + version = "2.4.1"; + }; + gitlab_omniauth-ldap = { + dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv"; + type = "gem"; + }; + version = "2.0.4"; + }; + globalid = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38"; + type = "gem"; + }; + version = "0.4.1"; + }; + gollum-grit_adapter = { + dependencies = ["gitlab-grit"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b"; + type = "gem"; + }; + version = "1.0.1"; + }; + gon = { + dependencies = ["actionpack" "multi_json" "request_store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806"; + type = "gem"; + }; + version = "6.2.0"; + }; + google-api-client = { + dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k"; + type = "gem"; + }; + version = "0.23.4"; + }; + google-protobuf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s8ijd9wdrkqwsb6nasrsv7f9i5im2nyax7f7jlb5y9vh8nl98qi"; + type = "gem"; + }; + version = "3.5.1"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yf10s7w8wpa49hc86z7z2fkn9yz7j2njz0n8xmqb24ji090z4ck"; + type = "gem"; + }; + version = "1.0.1"; + }; + googleauth = { + dependencies = ["faraday" "jwt" "logging" "memoist" "multi_json" "os" "signet"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08z4zfj9cwry13y8c2w5p4xylyslxxjq4wahd95bk1ddl5pknd4f"; + type = "gem"; + }; + version = "0.6.2"; + }; + gpgme = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fclgx3pg3sihk9xn3amcf8db0q749dsqkycayn1c8x134zml3gb"; + type = "gem"; + }; + version = "2.0.13"; + }; + grape = { + dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lz17804lpip6cm3g0j9xyzc38lxsn84cl3v3ixn6djnwlmp6427"; + type = "gem"; + }; + version = "1.0.3"; + }; + grape-entity = { + dependencies = ["activesupport" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9"; + type = "gem"; + }; + version = "0.7.1"; + }; + grape-path-helpers = { + dependencies = ["activesupport" "grape" "rake"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw"; + type = "gem"; + }; + version = "1.0.6"; + }; + grape_logging = { + dependencies = ["grape"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza"; + type = "gem"; + }; + version = "1.7.0"; + }; + graphiql-rails = { + dependencies = ["railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8"; + type = "gem"; + }; + version = "1.4.10"; + }; + graphql = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl"; + type = "gem"; + }; + version = "1.8.1"; + }; + grpc = { + dependencies = ["google-protobuf" "googleapis-common-protos-types" "googleauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1is4czi3i7y6zyxzyrpsma1z91axmc0jz2ngr6ckixqd3629npkz"; + type = "gem"; + }; + version = "1.11.0"; + }; + gssapi = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix"; + type = "gem"; + }; + version = "1.2.0"; + }; + haml = { + dependencies = ["temple" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac"; + type = "gem"; + }; + version = "5.0.4"; + }; + haml_lint = { + dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04illnjl9hsg7wqf8x5s108m5is9aj52g80c6nrgsksyp4vh9ynn"; + type = "gem"; + }; + version = "0.26.0"; + }; + hamlit = { + dependencies = ["temple" "thor" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i"; + type = "gem"; + }; + version = "2.8.8"; + }; + hangouts-chat = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx"; + type = "gem"; + }; + version = "0.0.5"; + }; + hashdiff = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a"; + type = "gem"; + }; + version = "0.3.4"; + }; + hashie = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb"; + type = "gem"; + }; + version = "3.5.7"; + }; + hashie-forbidden_attributes = { + dependencies = ["hashie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis"; + type = "gem"; + }; + version = "0.1.1"; + }; + health_check = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8"; + type = "gem"; + }; + version = "2.6.0"; + }; + hipchat = { + dependencies = ["httparty" "mimemagic"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k"; + type = "gem"; + }; + version = "1.5.2"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad"; + type = "gem"; + }; + version = "2.8.4"; + }; + html2text = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii"; + type = "gem"; + }; + version = "0.2.0"; + }; + htmlentities = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + http = { + dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r"; + type = "gem"; + }; + version = "2.2.2"; + }; + http-cookie = { + dependencies = ["domain_name"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; + type = "gem"; + }; + version = "1.0.3"; + }; + http-form_data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m"; + type = "gem"; + }; + version = "1.0.3"; + }; + "http_parser.rb" = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + httparty = { + dependencies = ["json" "multi_xml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2"; + type = "gem"; + }; + version = "0.13.7"; + }; + httpclient = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; + type = "gem"; + }; + version = "0.9.5"; + }; + icalendar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd"; + type = "gem"; + }; + version = "2.4.1"; + }; + ice_nine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x"; + type = "gem"; + }; + version = "0.11.2"; + }; + influxdb = { + dependencies = ["cause" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w"; + type = "gem"; + }; + version = "0.2.3"; + }; + ipaddress = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; + type = "gem"; + }; + version = "0.8.3"; + }; + jira-ruby = { + dependencies = ["activesupport" "multipart-post" "oauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw"; + type = "gem"; + }; + version = "1.4.1"; + }; + jmespath = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07w8ipjg59qavijq59hl82zs74jf3jsp7vxl9q3a2d0wpv5akz3y"; + type = "gem"; + }; + version = "1.3.1"; + }; + jquery-atwho-rails = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9"; + type = "gem"; + }; + version = "1.3.2"; + }; + js_regex = { + dependencies = ["regexp_parser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf"; + type = "gem"; + }; + version = "2.2.1"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; + type = "gem"; + }; + version = "1.8.6"; + }; + json-jwt = { + dependencies = ["activesupport" "aes_key_wrap" "bindata"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r"; + type = "gem"; + }; + version = "1.9.4"; + }; + json-schema = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz"; + type = "gem"; + }; + version = "2.8.0"; + }; + jwt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "124zz1142bi2if7hl5pcrcamwchv4icyr5kaal9m2q6wqbdl6aw4"; + type = "gem"; + }; + version = "1.5.6"; + }; + kaminari = { + dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-actionview = { + dependencies = ["actionview" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-activerecord = { + dependencies = ["activerecord" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-core = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr"; + type = "gem"; + }; + version = "1.0.1"; + }; + kgio = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118"; + type = "gem"; + }; + version = "2.10.0"; + }; + knapsack = { + dependencies = ["rake"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q2y7mb8ii1ncdrlp46l9v2x909gdnjaid2dg5gcicj39hna36di"; + type = "gem"; + }; + version = "1.16.0"; + }; + kubeclient = { + dependencies = ["http" "recursive-open-struct" "rest-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1czzdp9lfsrah2jkaddkqzmphyvnk096zm1ra6jddh626d8d53r4"; + type = "gem"; + }; + version = "3.1.0"; + }; + launchy = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; + type = "gem"; + }; + version = "2.4.3"; + }; + letter_opener = { + dependencies = ["launchy"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21"; + type = "gem"; + }; + version = "1.4.1"; + }; + letter_opener_web = { + dependencies = ["actionmailer" "letter_opener" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv"; + type = "gem"; + }; + version = "1.3.0"; + }; + license_finder = { + dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v"; + type = "gem"; + }; + version = "5.4.0"; + }; + licensee = { + dependencies = ["rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc"; + type = "gem"; + }; + version = "8.9.2"; + }; + little-plugger = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym"; + type = "gem"; + }; + version = "1.1.4"; + }; + locale = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"; + type = "gem"; + }; + version = "2.1.2"; + }; + logging = { + dependencies = ["little-plugger" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn"; + type = "gem"; + }; + version = "2.2.2"; + }; + lograge = { + dependencies = ["actionpack" "activesupport" "railties" "request_store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd"; + type = "gem"; + }; + version = "0.10.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yjs6wbcj3n06d3xjqpy3qbpx0bfa12h3x2rbpc2k33ldjlkx6zy"; + type = "gem"; + }; + version = "2.2.2"; + }; + mail = { + dependencies = ["mini_mime"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10dyifazss9mgdzdv08p47p344wmphp5pkh5i73s7c04ra8y6ahz"; + type = "gem"; + }; + version = "2.7.0"; + }; + mail_room = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa"; + type = "gem"; + }; + version = "0.9.1"; + }; + memoist = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh"; + type = "gem"; + }; + version = "0.16.0"; + }; + memoizable = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"; + type = "gem"; + }; + version = "0.4.2"; + }; + method_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn"; + type = "gem"; + }; + version = "0.9.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"; + type = "gem"; + }; + version = "3.1"; + }; + mime-types-data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm"; + type = "gem"; + }; + version = "3.2016.0521"; + }; + mimemagic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "101lq4bnjs7ywdcicpw3vbz9amg5gbb4va1626fybd2hawgdx8d9"; + type = "gem"; + }; + version = "0.3.0"; + }; + mini_magick = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n"; + type = "gem"; + }; + version = "4.8.0"; + }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lwhlvjqaqfm6k3ms4v29sby9y7m518ylsqz2j74i740715yl5c8"; + type = "gem"; + }; + version = "1.0.0"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"; + type = "gem"; + }; + version = "5.7.0"; + }; + mousetrap-rails = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00n13r5pwrk4vq018128vcfh021dw0fa2bk4pzsv0fslfm8ayp2m"; + type = "gem"; + }; + version = "1.4.6"; + }; + msgpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864"; + type = "gem"; + }; + version = "1.2.4"; + }; + multi_json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + multi_xml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + multipart-post = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + type = "gem"; + }; + version = "2.0.0"; + }; + mustermann = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07sb7fckrraqh48fjnqf6yl7vxxabfx0qrsrhfdz67pd838g4k8g"; + type = "gem"; + }; + version = "1.0.2"; + }; + mustermann-grape = { + dependencies = ["mustermann"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr"; + type = "gem"; + }; + version = "1.0.0"; + }; + mysql2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq"; + type = "gem"; + }; + version = "0.4.10"; + }; + net-ldap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq"; + type = "gem"; + }; + version = "0.16.0"; + }; + net-ntp = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv"; + type = "gem"; + }; + version = "2.1.3"; + }; + net-ssh = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w"; + type = "gem"; + }; + version = "5.0.1"; + }; + netrc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; + type = "gem"; + }; + version = "0.11.0"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc"; + type = "gem"; + }; + version = "1.8.4"; + }; + nokogumbo = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj"; + type = "gem"; + }; + version = "1.5.0"; + }; + numerizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h"; + type = "gem"; + }; + version = "0.1.1"; + }; + oauth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y"; + type = "gem"; + }; + version = "0.5.4"; + }; + oauth2 = { + dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "094hmmfms8vpm6nwglpl7jmlv85nlfzl0kik4fizgx1rg70a6mr5"; + type = "gem"; + }; + version = "1.4.0"; + }; + octokit = { + dependencies = ["sawyer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298"; + type = "gem"; + }; + version = "4.9.0"; + }; + omniauth = { + dependencies = ["hashie" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1msqr4qq7mfdvl3rg89529isrv595hvjpj2gi0say4b8nwqfggmg"; + type = "gem"; + }; + version = "1.8.1"; + }; + omniauth-auth0 = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2"; + type = "gem"; + }; + version = "2.0.0"; + }; + omniauth-authentiq = { + dependencies = ["jwt" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi"; + type = "gem"; + }; + version = "0.3.3"; + }; + omniauth-azure-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ck5616fjik0dw89xvak1mi8ijcv10lsh6n9h4107l5dys2g3jfx"; + type = "gem"; + }; + version = "0.0.9"; + }; + omniauth-cas3 = { + dependencies = ["addressable" "nokogiri" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx"; + type = "gem"; + }; + version = "1.1.4"; + }; + omniauth-facebook = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5"; + type = "gem"; + }; + version = "4.0.0"; + }; + omniauth-github = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc"; + type = "gem"; + }; + version = "1.3.0"; + }; + omniauth-gitlab = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp"; + type = "gem"; + }; + version = "1.0.3"; + }; + omniauth-google-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rvdac08vgrxcblq8w2hqj080v2cwv3cigxdzs11gz4d538zjnym"; + type = "gem"; + }; + version = "0.5.3"; + }; + omniauth-kerberos = { + dependencies = ["omniauth-multipassword" "timfel-krb5-auth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7"; + type = "gem"; + }; + version = "0.3.0"; + }; + omniauth-multipassword = { + dependencies = ["omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8"; + type = "gem"; + }; + version = "0.4.2"; + }; + omniauth-oauth = { + dependencies = ["oauth" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037"; + type = "gem"; + }; + version = "1.1.0"; + }; + omniauth-oauth2 = { + dependencies = ["oauth2" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kscjf1y0lnggsl4z3w5bwllqshqjlsl5kmcya5haydajdnzvdjr"; + type = "gem"; + }; + version = "1.5.0"; + }; + omniauth-oauth2-generic = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273"; + type = "gem"; + }; + version = "0.2.2"; + }; + omniauth-saml = { + dependencies = ["omniauth" "ruby-saml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p"; + type = "gem"; + }; + version = "1.10.0"; + }; + omniauth-shibboleth = { + dependencies = ["omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh"; + type = "gem"; + }; + version = "1.3.0"; + }; + omniauth-twitter = { + dependencies = ["omniauth-oauth" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65"; + type = "gem"; + }; + version = "1.4.0"; + }; + omniauth_crowd = { + dependencies = ["activesupport" "nokogiri" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7"; + type = "gem"; + }; + version = "2.2.3"; + }; + org-ruby = { + dependencies = ["rubypants"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk"; + type = "gem"; + }; + version = "0.9.12"; + }; + orm_adapter = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; + type = "gem"; + }; + version = "0.5.0"; + }; + os = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1llv8w3g2jwggdxr5a5cjkrnbbfnvai3vxacxxc0fy84xmz3hymz"; + type = "gem"; + }; + version = "0.9.6"; + }; + parallel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"; + type = "gem"; + }; + version = "1.12.1"; + }; + parser = { + dependencies = ["ast"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1af7aa1c2npi8dkshgm3f8qyacabm94ckrdz7b8vd3f8zzswqzp9"; + type = "gem"; + }; + version = "2.5.1.0"; + }; + parslet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88"; + type = "gem"; + }; + version = "1.8.2"; + }; + peek = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn"; + type = "gem"; + }; + version = "1.0.1"; + }; + peek-gc = { + dependencies = ["peek"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9"; + type = "gem"; + }; + version = "0.0.2"; + }; + peek-mysql2 = { + dependencies = ["atomic" "mysql2" "peek"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb2fzx3dwj7k6sc87jwhjk8vzp8dskv49j141xx15vvkg603j8k"; + type = "gem"; + }; + version = "1.1.0"; + }; + peek-pg = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c"; + type = "gem"; + }; + version = "1.3.0"; + }; + peek-rblineprof = { + dependencies = ["peek" "rblineprof"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c"; + type = "gem"; + }; + version = "0.2.0"; + }; + peek-redis = { + dependencies = ["atomic" "peek" "redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33"; + type = "gem"; + }; + version = "1.2.0"; + }; + peek-sidekiq = { + dependencies = ["atomic" "peek" "sidekiq"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y7s32p6cp66z1hpd1wcv4crmvvvcag5i39aazclckjsfpdfn24x"; + type = "gem"; + }; + version = "1.0.3"; + }; + pg = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32"; + type = "gem"; + }; + version = "0.18.4"; + }; + po_to_json = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba"; + type = "gem"; + }; + version = "1.0.1"; + }; + posix-spawn = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw"; + type = "gem"; + }; + version = "0.3.13"; + }; + powerpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43"; + type = "gem"; + }; + version = "0.1.1"; + }; + premailer = { + dependencies = ["addressable" "css_parser" "htmlentities"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf"; + type = "gem"; + }; + version = "1.10.4"; + }; + premailer-rails = { + dependencies = ["actionmailer" "premailer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim"; + type = "gem"; + }; + version = "1.9.7"; + }; + proc_to_ast = { + dependencies = ["coderay" "parser" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj"; + type = "gem"; + }; + version = "0.1.0"; + }; + procto = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c"; + type = "gem"; + }; + version = "0.0.3"; + }; + prometheus-client-mmap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10"; + type = "gem"; + }; + version = "0.9.4"; + }; + pry = { + dependencies = ["coderay" "method_source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g"; + type = "gem"; + }; + version = "0.11.3"; + }; + pry-byebug = { + dependencies = ["byebug" "pry"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g820bqmlq8vvh78895zgrzgmj3g6n63px7cba11s02lpz56630n"; + type = "gem"; + }; + version = "3.4.3"; + }; + pry-rails = { + dependencies = ["pry"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v8xlzzb535k7wcl0vrpday237xwc04rr9v3gviqzasl7ydw32x6"; + type = "gem"; + }; + version = "0.3.5"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x5h1dh1i3gwc01jbg01rly2g6a1qwhynb1s8a30ic507z1nh09s"; + type = "gem"; + }; + version = "3.0.2"; + }; + pyu-ruby-sasl = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; + type = "gem"; + }; + version = "0.0.3.3"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0in0amn0kwvzmi8h5zg6ijrx5wpsf8h96zrfmnk1kwh2ql4sxs2q"; + type = "gem"; + }; + version = "1.6.10"; + }; + rack-accept = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"; + type = "gem"; + }; + version = "0.4.5"; + }; + rack-attack = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1"; + type = "gem"; + }; + version = "4.4.1"; + }; + rack-cors = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013"; + type = "gem"; + }; + version = "1.0.2"; + }; + rack-oauth2 = { + dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf"; + type = "gem"; + }; + version = "1.2.3"; + }; + rack-protection = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ywmgh7x8ljf7jfnq5hmfzki3f803waji3fcvi107w7mlyflbng7"; + type = "gem"; + }; + version = "2.0.1"; + }; + rack-proxy = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4"; + type = "gem"; + }; + version = "0.6.0"; + }; + rack-test = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; + type = "gem"; + }; + version = "0.6.3"; + }; + rails = { + dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vbdlkmlh470g7msqhmcmhxhi4finv3cjg595x9viafvphnf40l"; + type = "gem"; + }; + version = "4.2.10"; + }; + rails-deprecated_sanitizer = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; + type = "gem"; + }; + version = "1.0.3"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6"; + type = "gem"; + }; + version = "1.0.9"; + }; + rails-html-sanitizer = { + dependencies = ["loofah"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; + type = "gem"; + }; + version = "1.0.4"; + }; + rails-i18n = { + dependencies = ["i18n" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17a02f2671pw5r2hl2n3isiz6w9wy2dxq8g52srciyl1xcmvsw01"; + type = "gem"; + }; + version = "4.0.9"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "rake" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0snymfqj2cql0gp51i6a44avcirdridc15yggnxjj9raa9f3229p"; + type = "gem"; + }; + version = "4.2.10"; + }; + rainbow = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; + type = "gem"; + }; + version = "3.0.0"; + }; + raindrops = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz"; + type = "gem"; + }; + version = "0.18.0"; + }; + rake = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg"; + type = "gem"; + }; + version = "12.3.1"; + }; + rb-fsevent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"; + type = "gem"; + }; + version = "0.10.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"; + type = "gem"; + }; + version = "0.9.10"; + }; + rblineprof = { + dependencies = ["debugger-ruby_core_source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6"; + type = "gem"; + }; + version = "0.3.6"; + }; + rbtrace = { + dependencies = ["ffi" "msgpack" "trollop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv"; + type = "gem"; + }; + version = "0.4.10"; + }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7"; + type = "gem"; + }; + version = "6.0.4"; + }; + re2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i"; + type = "gem"; + }; + version = "1.1.1"; + }; + recaptcha = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n"; + type = "gem"; + }; + version = "3.0.0"; + }; + recursive-open-struct = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c"; + type = "gem"; + }; + version = "1.1.0"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + RedCloth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy"; + type = "gem"; + }; + version = "4.3.2"; + }; + redis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv"; + type = "gem"; + }; + version = "3.3.5"; + }; + redis-actionpack = { + dependencies = ["actionpack" "redis-rack" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63"; + type = "gem"; + }; + version = "5.0.2"; + }; + redis-activesupport = { + dependencies = ["activesupport" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5"; + type = "gem"; + }; + version = "5.0.4"; + }; + redis-namespace = { + dependencies = ["redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah"; + type = "gem"; + }; + version = "1.6.0"; + }; + redis-rack = { + dependencies = ["rack" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb"; + type = "gem"; + }; + version = "2.0.4"; + }; + redis-rails = { + dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40"; + type = "gem"; + }; + version = "5.0.2"; + }; + redis-store = { + dependencies = ["redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00yh8rhv91vxjlqs4ylic99m9npjxmgib2vjj8hgzk1174y6vcmq"; + type = "gem"; + }; + version = "1.4.1"; + }; + regexp_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb"; + type = "gem"; + }; + version = "0.5.0"; + }; + representable = { + dependencies = ["declarative" "declarative-option" "uber"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07"; + type = "gem"; + }; + version = "3.0.4"; + }; + request_store = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv"; + type = "gem"; + }; + version = "1.3.1"; + }; + responders = { + dependencies = ["actionpack" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn"; + type = "gem"; + }; + version = "2.4.0"; + }; + rest-client = { + dependencies = ["http-cookie" "mime-types" "netrc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j"; + type = "gem"; + }; + version = "2.0.2"; + }; + retriable = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha"; + type = "gem"; + }; + version = "3.1.2"; + }; + rinku = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y"; + type = "gem"; + }; + version = "2.0.0"; + }; + rotp = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d"; + type = "gem"; + }; + version = "2.1.2"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h79gn2wmn1wix2d27lgiaimccyj8gvizrllyym500pir408x62f"; + type = "gem"; + }; + version = "3.2.1"; + }; + rqrcode = { + dependencies = ["chunky_png"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb"; + type = "gem"; + }; + version = "0.7.0"; + }; + rqrcode-rails3 = { + dependencies = ["rqrcode"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg"; + type = "gem"; + }; + version = "0.1.7"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-parameterized = { + dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0"; + type = "gem"; + }; + version = "0.4.0"; + }; + rspec-rails = { + dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx"; + type = "gem"; + }; + version = "3.7.2"; + }; + rspec-retry = { + dependencies = ["rspec-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6"; + type = "gem"; + }; + version = "0.4.5"; + }; + rspec-set = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk"; + type = "gem"; + }; + version = "0.1.3"; + }; + rspec-support = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec_junit_formatter = { + dependencies = ["builder" "rspec-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hphl8iggqh1mpbbv0avf8735x6jgry5wmkqyzgv1zwnimvja1ai"; + type = "gem"; + }; + version = "0.2.3"; + }; + rspec_profiling = { + dependencies = ["activerecord" "pg" "rails" "sqlite3"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz"; + type = "gem"; + }; + version = "0.0.5"; + }; + rubocop = { + dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is"; + type = "gem"; + }; + version = "0.54.0"; + }; + rubocop-gitlab-security = { + dependencies = ["rubocop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln"; + type = "gem"; + }; + version = "0.1.1"; + }; + rubocop-rspec = { + dependencies = ["rubocop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla"; + type = "gem"; + }; + version = "1.22.2"; + }; + ruby-enum = { + dependencies = ["i18n"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx"; + type = "gem"; + }; + version = "0.7.2"; + }; + ruby-fogbugz = { + dependencies = ["crack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm"; + type = "gem"; + }; + version = "0.2.1"; + }; + ruby-prof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c"; + type = "gem"; + }; + version = "0.17.0"; + }; + ruby-progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk"; + type = "gem"; + }; + version = "1.9.0"; + }; + ruby-saml = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3"; + type = "gem"; + }; + version = "1.7.2"; + }; + ruby_parser = { + dependencies = ["sexp_processor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18apbsmmivgc1schfxmkp429aijrwy8psm30dwx5cpmpjf48ir3n"; + type = "gem"; + }; + version = "3.9.0"; + }; + rubyntlm = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy"; + type = "gem"; + }; + version = "0.6.2"; + }; + rubypants = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph"; + type = "gem"; + }; + version = "0.2.0"; + }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + rufus-scheduler = { + dependencies = ["et-orbi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8"; + type = "gem"; + }; + version = "3.4.0"; + }; + rugged = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y6k5yrfmhc1v4albbpa3xzl28vk5lric3si8ada28sp9mmk2x72"; + type = "gem"; + }; + version = "0.27.4"; + }; + safe_yaml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; + type = "gem"; + }; + version = "1.0.4"; + }; + sanitize = { + dependencies = ["crass" "nokogiri" "nokogumbo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv"; + type = "gem"; + }; + version = "4.6.6"; + }; + sass = { + dependencies = ["sass-listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v"; + type = "gem"; + }; + version = "3.5.5"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + sass-rails = { + dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb"; + type = "gem"; + }; + version = "5.0.6"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd"; + type = "gem"; + }; + version = "0.8.1"; + }; + scss_lint = { + dependencies = ["rake" "sass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g"; + type = "gem"; + }; + version = "0.56.0"; + }; + seed-fu = { + dependencies = ["activerecord" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi"; + type = "gem"; + }; + version = "2.3.7"; + }; + select2-rails = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj"; + type = "gem"; + }; + version = "3.5.9.3"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz"; + type = "gem"; + }; + version = "3.12.0"; + }; + sentry-raven = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yf2gysjw6sy1xcp2jw35z9cp83pwx33lq0qyvaqbs969j4993r4"; + type = "gem"; + }; + version = "2.7.2"; + }; + settingslogic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar"; + type = "gem"; + }; + version = "2.0.9"; + }; + sexp_processor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c6kp2qxq550hz7gsxqi37irxn3vynkz7ibgy9hfwqymf6y1jdik"; + type = "gem"; + }; + version = "4.9.0"; + }; + sham_rack = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i"; + type = "gem"; + }; + version = "1.3.6"; + }; + shoulda-matchers = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a"; + type = "gem"; + }; + version = "3.1.2"; + }; + sidekiq = { + dependencies = ["concurrent-ruby" "connection_pool" "rack-protection" "redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0af7sh9ckds36wv80azlanw1ch29nbvr1w3m00mlj1hbk2il6cxh"; + type = "gem"; + }; + version = "5.1.3"; + }; + sidekiq-cron = { + dependencies = ["rufus-scheduler" "sidekiq"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj"; + type = "gem"; + }; + version = "0.6.0"; + }; + sidekiq-limit_fetch = { + dependencies = ["sidekiq"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ykpqw2nc9fs4v0slk5n4m42n3ihwwkk5mcyw3rz51blrdzj92kr"; + type = "gem"; + }; + version = "3.4.0"; + }; + signet = { + dependencies = ["addressable" "faraday" "jwt" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0js81lxqirdza8gf2f6avh11fny49ygmxfi1qx7jp8l9wrhznbkv"; + type = "gem"; + }; + version = "0.8.1"; + }; + simple_po_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3"; + type = "gem"; + }; + version = "1.1.2"; + }; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww"; + type = "gem"; + }; + version = "0.14.1"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf"; + type = "gem"; + }; + version = "0.10.0"; + }; + slack-notifier = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6"; + type = "gem"; + }; + version = "1.5.1"; + }; + spring = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wwbyg2nab2k4hdpd1i65qmnfixry29b4yqynrqfnmjghn0xvc7x"; + type = "gem"; + }; + version = "2.0.1"; + }; + spring-commands-rspec = { + dependencies = ["spring"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; + type = "gem"; + }; + version = "1.0.4"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; + type = "gem"; + }; + version = "3.2.1"; + }; + sqlite3 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i"; + type = "gem"; + }; + version = "1.3.13"; + }; + sshkey = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h"; + type = "gem"; + }; + version = "1.9.0"; + }; + stackprof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski"; + type = "gem"; + }; + version = "0.2.10"; + }; + state_machines = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3"; + type = "gem"; + }; + version = "0.5.0"; + }; + state_machines-activemodel = { + dependencies = ["activemodel" "state_machines"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l"; + type = "gem"; + }; + version = "0.5.1"; + }; + state_machines-activerecord = { + dependencies = ["activerecord" "state_machines-activemodel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3"; + type = "gem"; + }; + version = "0.5.1"; + }; + stringex = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c5dfrjzkskzfsdvwsviq4111rwwpbk9022nxwdidz014mky5vi1"; + type = "gem"; + }; + version = "2.8.4"; + }; + sys-filesystem = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq"; + type = "gem"; + }; + version = "1.1.6"; + }; + sysexits = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr"; + type = "gem"; + }; + version = "1.2.0"; + }; + temple = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq"; + type = "gem"; + }; + version = "0.8.0"; + }; + test-prof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3"; + type = "gem"; + }; + version = "0.2.5"; + }; + test_after_commit = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s8pz00xq28lsa1rfczm83yqwk8wcb5dqw2imlj8gldnsdapcyc2"; + type = "gem"; + }; + version = "1.1.0"; + }; + text = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + thin = { + dependencies = ["daemons" "eventmachine" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dq9q7qyjyg4444bmn12r2s0mir8dqnvc037y0zidhbyaavrv95q"; + type = "gem"; + }; + version = "1.7.0"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns"; + type = "gem"; + }; + version = "0.19.4"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tilt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra"; + type = "gem"; + }; + version = "2.0.8"; + }; + timecop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx"; + type = "gem"; + }; + version = "0.8.1"; + }; + timfel-krb5-auth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b"; + type = "gem"; + }; + version = "0.8.3"; + }; + toml = { + dependencies = ["parslet"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki"; + type = "gem"; + }; + version = "0.2.0"; + }; + toml-rb = { + dependencies = ["citrus"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d"; + type = "gem"; + }; + version = "1.0.0"; + }; + trollop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq"; + type = "gem"; + }; + version = "2.1.3"; + }; + truncato = { + dependencies = ["htmlentities" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b"; + type = "gem"; + }; + version = "0.7.10"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + u2f = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr"; + type = "gem"; + }; + version = "0.2.1"; + }; + uber = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv"; + type = "gem"; + }; + version = "0.1.0"; + }; + uglifier = { + dependencies = ["execjs" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz"; + type = "gem"; + }; + version = "2.7.2"; + }; + unf = { + dependencies = ["unf_ext"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1"; + type = "gem"; + }; + version = "0.0.7.5"; + }; + unicode-display_width = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n"; + type = "gem"; + }; + version = "1.3.2"; + }; + unicorn = { + dependencies = ["kgio" "raindrops"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v"; + type = "gem"; + }; + version = "5.1.0"; + }; + unicorn-worker-killer = { + dependencies = ["get_process_mem" "unicorn"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva"; + type = "gem"; + }; + version = "0.4.4"; + }; + uniform_notifier = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l"; + type = "gem"; + }; + version = "1.10.0"; + }; + unparser = { + dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k2asbk9k5kzq8jidy3frqcmn58i9cvaizn8f6g5xlx1pn70bx1w"; + type = "gem"; + }; + version = "0.2.7"; + }; + validates_hostname = { + dependencies = ["activerecord" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja"; + type = "gem"; + }; + version = "1.0.6"; + }; + version_sorter = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr"; + type = "gem"; + }; + version = "2.1.0"; + }; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk"; + type = "gem"; + }; + version = "1.0.5"; + }; + vmstat = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b"; + type = "gem"; + }; + version = "2.3.0"; + }; + warden = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12"; + type = "gem"; + }; + version = "1.2.7"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5"; + type = "gem"; + }; + version = "2.3.2"; + }; + webpack-rails = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0jzw05yk1c19q874nhkanrn2ik7hjbr2vjcdnk1fqp2f3ypzvv"; + type = "gem"; + }; + version = "0.9.10"; + }; + wikicloth = { + dependencies = ["builder" "expression_parser" "rinku"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s"; + type = "gem"; + }; + version = "0.8.1"; + }; + with_env = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh"; + type = "gem"; + }; + version = "1.1.0"; + }; + xml-simple = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"; + type = "gem"; + }; + version = "1.1.5"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw"; + type = "gem"; + }; + version = "2.1.0"; + }; +} \ No newline at end of file From d60bd3f681450e5e5c30db92aec7f1a26b5ccd82 Mon Sep 17 00:00:00 2001 From: Justin Humm Date: Sun, 7 Oct 2018 12:46:15 +0200 Subject: [PATCH 026/106] ja2-stracciatella: fix build due to #47709 --- pkgs/games/ja2-stracciatella/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/games/ja2-stracciatella/default.nix b/pkgs/games/ja2-stracciatella/default.nix index 0e5702d46146..5dbab979272c 100644 --- a/pkgs/games/ja2-stracciatella/default.nix +++ b/pkgs/games/ja2-stracciatella/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { ./remove-rust-buildstep.patch ]; preConfigure = '' - sed -i -e 's|rust-stracciatella|${libstracciatella}/bin/libstracciatella.so|g' CMakeLists.txt + sed -i -e 's|rust-stracciatella|${libstracciatella}/lib/libstracciatella.so|g' CMakeLists.txt cmakeFlagsArray+=("-DEXTRA_DATA_DIR=$out/share/ja2") ''; From abd6a5bff3e5080551568d029524a541a0a18d50 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Wed, 10 Oct 2018 17:20:34 -0400 Subject: [PATCH 027/106] dia: fix on darwin (#48176) Fixes runtime error: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported (cherry picked from commit c047572a1798f142c24b1e9c673f5ce91ff48dfa) --- pkgs/applications/graphics/dia/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/dia/default.nix b/pkgs/applications/graphics/dia/default.nix index a1f26f7bc09f..222328d2b917 100644 --- a/pkgs/applications/graphics/dia/default.nix +++ b/pkgs/applications/graphics/dia/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkgconfig, perl, perlXMLParser, libxml2, gettext, python, libxml2Python, docbook5, docbook_xsl, libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui, hicolor-icon-theme, -gtk-mac-integration }: +gtk-mac-integration-gtk2 }: stdenv.mkDerivation rec { name = "dia-${version}"; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { [ gtk2 perlXMLParser libxml2 gettext python libxml2Python docbook5 libxslt docbook_xsl libart_lgpl hicolor-icon-theme ] ++ stdenv.lib.optional withGNOME libgnomeui - ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration; + ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration-gtk2; nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool perl ]; From cbf6eede269398fdd73ce4a127018cebee0c6d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Wed, 10 Oct 2018 23:47:09 +0200 Subject: [PATCH 028/106] resilio-sync: 2.6.0 -> 2.6.1 (#47973) Changelog: https://help.resilio.com/hc/en-us/articles/206216855-Sync-2-x-change-log (cherry picked from commit 632ae0502e1671c887c538097b431809762e8099) --- pkgs/applications/networking/resilio-sync/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix index b59219d99366..b6c54a6d4525 100644 --- a/pkgs/applications/networking/resilio-sync/default.nix +++ b/pkgs/applications/networking/resilio-sync/default.nix @@ -9,13 +9,13 @@ let in stdenv.mkDerivation rec { name = "resilio-sync-${version}"; - version = "2.6.0"; + version = "2.6.1"; src = fetchurl { url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz"; sha256 = { - "x86_64-linux" = "0041axi9carspkfaxvyirfvsa29zz55al01x90nh93nzxvpvywsz"; - "i686-linux" = "1ar36lp4f6a1z9i82g3gpak4q4ny09faqxdd59q1pvfzq25ypdhs"; + "x86_64-linux" = "02wbllrj80kqpyywfr05fsqpgwrv2i8smr3gfdpn7ni9b8hkj0ji"; + "i686-linux" = "02zhh6gfds6miznbx30ghzihhm330mh5xnm42mxj8j29aqlzgd95"; }.${stdenv.hostPlatform.system}; }; From 3997e8d617f32f64a7dd6e1af65ae1b878955587 Mon Sep 17 00:00:00 2001 From: xeji <36407913+xeji@users.noreply.github.com> Date: Wed, 10 Oct 2018 23:49:40 +0200 Subject: [PATCH 029/106] flashplayer: 31.0.0.108 -> 31.0.0.122 (#48126) previous version was removed upstream (404) (cherry picked from commit bde4483d1336333f7c0bcd099a110dd8954c539e) --- .../networking/browsers/chromium/plugins.nix | 4 ++-- .../browsers/mozilla-plugins/flashplayer/default.nix | 10 +++++----- .../mozilla-plugins/flashplayer/standalone.nix | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index 9faa7e5e31fd..60e94e137676 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -98,11 +98,11 @@ let flash = stdenv.mkDerivation rec { name = "flashplayer-ppapi-${version}"; - version = "31.0.0.108"; + version = "31.0.0.122"; src = fetchzip { url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; - sha256 = "0dcwyx0fp7wbsx0cyi7xpwq0nnvcvkzfgi6zyy75487820ssc4h1"; + sha256 = "16cx92lq7zx8k22mfnsfjj09kyh3fi266qc5vvjz5b2rj53rmkdg"; stripRoot = false; }; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix index 07ef1397f9fb..38b064ec6e29 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix @@ -73,7 +73,7 @@ let in stdenv.mkDerivation rec { name = "flashplayer-${version}"; - version = "31.0.0.108"; + version = "31.0.0.122"; src = fetchurl { url = @@ -84,14 +84,14 @@ stdenv.mkDerivation rec { sha256 = if debug then if arch == "x86_64" then - "1mn29ahxjf6pdy2zp2na14cz46jrl88f54kp3bs3cz75syyizyb6" + "0mjyb8mk4av8cia34gmqi0n4nq0spiblgn18z6f4nkx12wgdka2c" else - "0inpj6bcsn5lh8gdv1wxpgipzrmpc553nhr68a55b2wff9fkv1ci" + "07qgawd4xgy9690gbx0c6k97cp7lp04l70ccp4jd81y4xjsc9bq3" else if arch == "x86_64" then - "1dfgsl5jf8ja9f7wwkzj5bfz1v5rdsyf4qhg1shqqldadmyyha7p" + "0264kcn0frgcl7zfd60ybs4r7x1p3f8nj496z264ax6qc390qr02" else - "0yiqwwqs3z9zzkfgqzjwqqdr2vaj1ia5xychs9fgxix3y4j934da"; + "0w170wz920imca8wc7kggl2vldn9k7cqm2xwvx8yqqi1p42a1941"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix index 03255e6eecc0..108d7c5f4a1a 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { name = "flashplayer-standalone-${version}"; - version = "31.0.0.108"; + version = "31.0.0.122"; src = fetchurl { url = @@ -59,9 +59,9 @@ stdenv.mkDerivation rec { "https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_sa_linux.x86_64.tar.gz"; sha256 = if debug then - "0i047fvj3x9lx7x8bf7jl1ybf9xpmr6g77q0h7n2s8qvscsw0pmm" + "1psd49bxn6w6kgcjhml44g5wb4za18m8apas8qyly4xcapdylias" else - "19wfs452ix57yfi4cy2din6mi5jky9hjzbdjny1bl8w32fy8xmm3"; + "0g3h31pdxw91r3067zrkgyziwl18i5kidwx83y13ff4d17v999ss"; }; nativeBuildInputs = [ unzip ]; From 515f4a752207d83945cbcb45a1236042850b2d63 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Wed, 10 Oct 2018 19:47:41 -0400 Subject: [PATCH 030/106] linux: 4.4.159 -> 4.4.160 (cherry picked from commit 33b68f87680d138326a559625e38f138cef9a158) --- pkgs/os-specific/linux/kernel/linux-4.4.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix index bafa975b6184..39e96d4b5dc2 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.4.159"; + version = "4.4.160"; extraMeta.branch = "4.4"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1hivz1pyy4scp4s09ibz36ni4d1pwivizwls5dbh5qjy0pdvn00f"; + sha256 = "1i0wqccab2xxjsx58pgzgbmm5cclfd3hh3yjasnfrqsdaarxvgkd"; }; } // (args.argsOverride or {})) From a3a6780a529867522a194f09d8d4bde28d057373 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Wed, 10 Oct 2018 19:47:57 -0400 Subject: [PATCH 031/106] linux: 4.9.131 -> 4.9.132 (cherry picked from commit 8f9743d2b70143a88c8f08bcf443112df3b2e02f) --- pkgs/os-specific/linux/kernel/linux-4.9.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index cdd2c67d25b2..24c11fca7935 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.131"; + version = "4.9.132"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0q2xmbkh42ikw26bdxgk1f9192hygyq9ffkhjfpr0fcx8sak5nsp"; + sha256 = "1lz53r6p293y5fwx7pz9ymj9sss3wmip8hcc48zwkcwm8phnmrk7"; }; } // (args.argsOverride or {})) From f5bd6040ee189e27a8921806bbc7f1663d62d229 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Wed, 10 Oct 2018 19:48:16 -0400 Subject: [PATCH 032/106] linux: 4.14.74 -> 4.14.75 (cherry picked from commit fab0c8824ac1e56f1680c87ea2e28e70be4b279e) --- pkgs/os-specific/linux/kernel/linux-4.14.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index 6755e8f90ee1..9afc81eddf52 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.74"; + version = "4.14.75"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0wjw05brv7l1qpi38drc2z01sa7kpk3kadw36gx9cbvvzn4r3rkh"; + sha256 = "084176rl51ls0dhy39vpj9fhasm4436iqv6aa0s5a74g1cixg4sh"; }; } // (args.argsOverride or {})) From 42725274ef0855ff28bf01cffc7953326ca58e5c Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Wed, 10 Oct 2018 19:48:22 -0400 Subject: [PATCH 033/106] linux: 4.18.12 -> 4.18.13 (cherry picked from commit cf440dae56392484f893eb6913b56cb5865976e8) --- pkgs/os-specific/linux/kernel/linux-4.18.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.18.nix b/pkgs/os-specific/linux/kernel/linux-4.18.nix index aa936929a44c..2b65ed377ffc 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.18.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.18.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.18.12"; + version = "4.18.13"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1icz2nkhkb1xhpmc9gxfhc3ywkni8nywk25ixrmgcxp5rgcmlsl4"; + sha256 = "0l4n72gajgw2vqghl6ps0yjy1safnypyzkcp841zkkwinp3a31yw"; }; } // (args.argsOverride or {})) From 85b269a5d559d607a2f43634a025006bd7bdcb11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 11 Oct 2018 10:45:42 +0100 Subject: [PATCH 034/106] alacritty: 0.2.0 -> 0.2.1 (cherry picked from commit 3bc454fda771ac97cdc71dcc01c26929b11a1f9a) --- pkgs/applications/misc/alacritty/default.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix index 34e46e9fa0f0..e4dffa98f39a 100644 --- a/pkgs/applications/misc/alacritty/default.nix +++ b/pkgs/applications/misc/alacritty/default.nix @@ -1,6 +1,6 @@ { stdenv, lib, - fetchgit, + fetchFromGitHub, rustPlatform, cmake, makeWrapper, @@ -51,18 +51,16 @@ let ]; in buildRustPackage rec { name = "alacritty-unstable-${version}"; - version = "0.2.0"; + version = "0.2.1"; - # At the moment we cannot handle git dependencies in buildRustPackage. - # This fork only replaces rust-fontconfig/libfontconfig with a git submodules. - src = fetchgit { - url = https://github.com/Mic92/alacritty.git; - rev = "rev-${version}"; - sha256 = "1c9izflacm693rwkxwakxgnpkvxwc8mqasr5p7x0ys6xg91h9sxn"; - fetchSubmodules = true; + src = fetchFromGitHub { + owner = "jwilm"; + repo = "alacritty"; + rev = "v${version}"; + sha256 = "1402axwjz70gg6ylhhm82f1rl6xvxkr1qy0jx3r4r32vzfap1l67"; }; - cargoSha256 = "1ijgkwv9ij4haig1h6n2b9xbhp5vahy9vp1sx72wxaaj9476msjx"; + cargoSha256 = "0slcyn77svj0686g1vk7kgndzirpkba9jwwybgsdl755r53dswk0"; nativeBuildInputs = [ cmake From 97ba5aac8df253f90350cf58ea5f2c14eeb97079 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Thu, 11 Oct 2018 02:06:16 +0200 Subject: [PATCH 035/106] xsecurelock: hardcode path to xset (cherry picked from commit c04e6e04e2f5ed33816c59b1fade01ca3e00aa3f) --- pkgs/tools/X11/xsecurelock/default.nix | 7 ++++++- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/X11/xsecurelock/default.nix b/pkgs/tools/X11/xsecurelock/default.nix index 4ee51100b339..88e36bfde39c 100644 --- a/pkgs/tools/X11/xsecurelock/default.nix +++ b/pkgs/tools/X11/xsecurelock/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchFromGitHub, autoreconfHook, pkgconfig , libX11, libXcomposite, libXft, libXmu, pam, apacheHttpd, imagemagick -, pamtester, xscreensaver }: +, pamtester, xscreensaver, xset }: stdenv.mkDerivation rec { name = "xsecurelock-${version}"; @@ -24,6 +24,11 @@ stdenv.mkDerivation rec { "--with-xscreensaver=${xscreensaver}/libexec/xscreensaver" ]; + preInstall = '' + substituteInPlace helpers/saver_blank \ + --replace 'protect xset' 'protect ${xset}/bin/xset' + ''; + meta = with lib; { description = "X11 screen lock utility with security in mind"; homepage = https://github.com/google/xsecurelock; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 075221b8f95c..b9b017e56fe4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6135,7 +6135,9 @@ with pkgs; libxml2 = libxml2Python; }; - xsecurelock = callPackage ../tools/X11/xsecurelock { }; + xsecurelock = callPackage ../tools/X11/xsecurelock { + xset = xorg.xset; + }; xsel = callPackage ../tools/misc/xsel { }; From 6d6bc0a58c378e37fedad889fa53b486fd6fcba4 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Thu, 11 Oct 2018 02:07:24 +0200 Subject: [PATCH 036/106] equilux-theme: init at 20180927 (cherry picked from commit 6892cbce0905fed4f67904425478e5fb35d05582) --- pkgs/misc/themes/equilux-theme/default.nix | 39 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 41 insertions(+) create mode 100644 pkgs/misc/themes/equilux-theme/default.nix diff --git a/pkgs/misc/themes/equilux-theme/default.nix b/pkgs/misc/themes/equilux-theme/default.nix new file mode 100644 index 000000000000..42fe402a4860 --- /dev/null +++ b/pkgs/misc/themes/equilux-theme/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchFromGitHub, gnome3, libxml2, gtk-engine-murrine, gdk_pixbuf, librsvg, bc }: + +stdenv.mkDerivation rec { + name = "equilux-theme-${version}"; + version = "20180927"; + + src = fetchFromGitHub { + owner = "ddnexus"; + repo = "equilux-theme"; + rev = "equilux-v${version}"; + sha256 = "1j7ykygmwv3dmzqdc9byir86sjz6ykhv9bv1pll1bjvvnaalyzgk"; + }; + + nativeBuildInputs = [ gnome3.glib libxml2 bc ]; + + buildInputs = [ gnome3.gnome-themes-extra gdk_pixbuf librsvg ]; + + propagatedUserEnvPkgs = [ gtk-engine-murrine ]; + + dontBuild = true; + + installPhase = '' + patchShebangs install.sh + sed -i install.sh \ + -e "s|if .*which gnome-shell.*;|if true;|" \ + -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|" + mkdir -p $out/share/themes + ./install.sh --dest $out/share/themes + rm $out/share/themes/*/COPYING + ''; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "A Material Design theme for GNOME/GTK+ based desktop environments"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = [ maintainers.fpletz ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b9b017e56fe4..6d3863d5e56e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21451,6 +21451,8 @@ with pkgs; electricsheep = callPackage ../misc/screensavers/electricsheep { }; + equilux-theme = callPackage ../misc/themes/equilux-theme { }; + flam3 = callPackage ../tools/graphics/flam3 { }; glee = callPackage ../tools/graphics/glee { }; From a8ad1fbe92af22a955bcda9eb56e2f1e1d311ab9 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Thu, 11 Oct 2018 14:33:20 +0200 Subject: [PATCH 037/106] spotify: fix icon (cherry picked from commit 33171befdbbd4370343d2250fdc82309125fb2ac) --- pkgs/applications/audio/spotify/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 81cda4edaedb..cbcf5220564b 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -126,6 +126,9 @@ stdenv.mkDerivation { --prefix LD_LIBRARY_PATH : "$librarypath" \ --prefix PATH : "${gnome3.zenity}/bin" + # fix Icon line in the desktop file (#48062) + sed -i "s:^Icon=.*:Icon=spotify-client:" "$out/share/spotify/spotify.desktop" + # Desktop file mkdir -p "$out/share/applications/" cp "$out/share/spotify/spotify.desktop" "$out/share/applications/" From 59940fbcd6366396d738e00fd38b2097b9b17d8e Mon Sep 17 00:00:00 2001 From: WilliButz Date: Mon, 8 Oct 2018 16:28:35 +0200 Subject: [PATCH 038/106] nixos/prometheus-varnish-exporter: avoid crash on restart (cherry picked from commit 24320f4a9e398e03374d8dbca95d553850ac2ee4) --- .../modules/services/monitoring/prometheus/exporters/varnish.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix b/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix index 8dbf2d735ab9..aaed76175b84 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix @@ -69,6 +69,7 @@ in path = [ pkgs.varnish ]; serviceConfig = { DynamicUser = true; + RestartSec = mkDefault 1; ExecStart = '' ${pkgs.prometheus-varnish-exporter}/bin/prometheus_varnish_exporter \ --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ From 7277b1d90843b61bdc69f6b940501e7fa0612109 Mon Sep 17 00:00:00 2001 From: WilliButz Date: Mon, 8 Oct 2018 16:30:53 +0200 Subject: [PATCH 039/106] nixos/prometheus-exporters: fix unapplied service config Prior to this commit, the default values for `Restart`, `PrivateTmp` and `WorkingDirectory` were falsely ignored. I also added myself as maintainer. (cherry picked from commit fbb7e0c82f297815950e9153c21e561a704bfcd5) --- .../monitoring/prometheus/exporters.nix | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 1d5f400250fd..ae8caac436da 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -123,15 +123,13 @@ let systemd.services."prometheus-${name}-exporter" = mkMerge ([{ wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - serviceConfig = { - Restart = mkDefault "always"; - PrivateTmp = mkDefault true; - WorkingDirectory = mkDefault /tmp; - } // mkIf (!(serviceOpts.serviceConfig.DynamicUser or false)) { - User = conf.user; - Group = conf.group; - }; - } serviceOpts ]); + serviceConfig.Restart = mkDefault "always"; + serviceConfig.PrivateTmp = mkDefault true; + serviceConfig.WorkingDirectory = mkDefault /tmp; + } serviceOpts ] ++ optional (serviceOpts.serviceConfig.DynamicUser or false) { + serviceConfig.User = conf.user; + serviceConfig.Group = conf.group; + }); }; in { @@ -172,5 +170,8 @@ in }) exporterOpts) ); - meta.doc = ./exporters.xml; + meta = { + doc = ./exporters.xml; + maintainers = [ maintainers.willibutz ]; + }; } From 2cae2b9a84919052ec0d8eccbdccb3600c6d4a21 Mon Sep 17 00:00:00 2001 From: WilliButz Date: Mon, 8 Oct 2018 16:38:16 +0200 Subject: [PATCH 040/106] nixos/tests: add test for prometheus exporters (cherry picked from commit 0febc64ed1928e163d9747ee1a7d3d1c7c0f9c6d) --- nixos/release.nix | 1 + nixos/tests/prometheus-exporters.nix | 297 +++++++++++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 nixos/tests/prometheus-exporters.nix diff --git a/nixos/release.nix b/nixos/release.nix index a513056c5a03..f7e4e61d866e 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -385,6 +385,7 @@ in rec { tests.predictable-interface-names = callSubTests tests/predictable-interface-names.nix {}; tests.printing = callTest tests/printing.nix {}; tests.prometheus = callTest tests/prometheus.nix {}; + tests.prometheus-exporters = callTest tests/prometheus-exporters.nix {}; tests.prosody = callTest tests/prosody.nix {}; tests.proxy = callTest tests/proxy.nix {}; tests.quagga = callTest tests/quagga.nix {}; diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix new file mode 100644 index 000000000000..2f2c06dcb7d6 --- /dev/null +++ b/nixos/tests/prometheus-exporters.nix @@ -0,0 +1,297 @@ +import ./make-test.nix ({ lib, pkgs, ... }: +let + escape' = str: lib.replaceChars [''"'' "$" "\n"] [''\\\"'' "\\$" ""] str; + +/* + * The attrset `exporterTests` contains one attribute + * for each exporter test. Each of these attributes + * is expected to be an attrset containing: + * + * `exporterConfig`: + * this attribute set contains config for the exporter itself + * + * `exporterTest` + * this attribute set contains test instructions + * + * `metricProvider` (optional) + * this attribute contains additional machine config + * + * Example: + * exporterTests. = { + * exporterConfig = { + * enable = true; + * }; + * metricProvider = { + * services..enable = true; + * }; + * exporterTest = '' + * waitForUnit("prometheus--exporter.service"); + * waitForOpenPort("1234"); + * succeed("curl -sSf 'localhost:1234/metrics'"); + * ''; + * }; + * + * # this would generate the following test config: + * + * nodes. = { + * services.prometheus. = { + * enable = true; + * }; + * services..enable = true; + * }; + * + * testScript = '' + * $->start(); + * $->waitForUnit("prometheus--exporter.service"); + * $->waitForOpenPort("1234"); + * $->succeed("curl -sSf 'localhost:1234/metrics'"); + * $->shutdown(); + * ''; + */ + + exporterTests = { + + blackbox = { + exporterConfig = { + enable = true; + configFile = pkgs.writeText "config.yml" (builtins.toJSON { + modules.icmp_v6 = { + prober = "icmp"; + icmp.preferred_ip_protocol = "ip6"; + }; + }); + }; + exporterTest = '' + waitForUnit("prometheus-blackbox-exporter.service"); + waitForOpenPort(9115); + succeed("curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep -q 'probe_success 1'"); + ''; + }; + + collectd = { + exporterConfig = { + enable = true; + extraFlags = [ "--web.collectd-push-path /collectd" ]; + }; + exporterTest =let postData = escape' '' + [{ + "values":[23], + "dstypes":["gauge"], + "type":"gauge", + "interval":1000, + "host":"testhost", + "plugin":"testplugin", + "time":$(date +%s) + }] + ''; in '' + waitForUnit("prometheus-collectd-exporter.service"); + waitForOpenPort(9103); + succeed("curl -sSfH 'Content-Type: application/json' -X POST --data \"${postData}\" localhost:9103/collectd"); + succeed("curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'"); + ''; + }; + + dnsmasq = { + exporterConfig = { + enable = true; + leasesPath = "/var/lib/dnsmasq/dnsmasq.leases"; + }; + metricProvider = { + services.dnsmasq.enable = true; + }; + exporterTest = '' + waitForUnit("prometheus-dnsmasq-exporter.service"); + waitForOpenPort(9153); + succeed("curl -sSf http://localhost:9153/metrics | grep -q 'dnsmasq_leases 0'"); + ''; + }; + + dovecot = { + exporterConfig = { + enable = true; + scopes = [ "global" ]; + socketPath = "/var/run/dovecot2/old-stats"; + user = "root"; # <- don't use user root in production + }; + metricProvider = { + services.dovecot2.enable = true; + }; + exporterTest = '' + waitForUnit("prometheus-dovecot-exporter.service"); + waitForOpenPort(9166); + succeed("curl -sSf http://localhost:9166/metrics | grep -q 'dovecot_up{scope=\"global\"} 1'"); + ''; + }; + + fritzbox = { # TODO add proper test case + exporterConfig = { + enable = true; + }; + exporterTest = '' + waitForUnit("prometheus-fritzbox-exporter.service"); + waitForOpenPort(9133); + succeed("curl -sSf http://localhost:9133/metrics | grep -q 'fritzbox_exporter_collect_errors 0'"); + ''; + }; + + json = { + exporterConfig = { + enable = true; + url = "http://localhost"; + configFile = pkgs.writeText "json-exporter-conf.json" (builtins.toJSON [{ + name = "json_test_metric"; + path = "$.test"; + }]); + }; + metricProvider = { + systemd.services.prometheus-json-exporter.after = [ "nginx.service" ]; + services.nginx = { + enable = true; + virtualHosts.localhost.locations."/".extraConfig = '' + return 200 "{\"test\":1}"; + ''; + }; + }; + exporterTest = '' + waitForUnit("nginx.service"); + waitForOpenPort(80); + waitForUnit("prometheus-json-exporter.service"); + waitForOpenPort(7979); + succeed("curl -sSf localhost:7979/metrics | grep -q 'json_test_metric 1'"); + ''; + }; + + nginx = { + exporterConfig = { + enable = true; + }; + metricProvider = { + services.nginx = { + enable = true; + statusPage = true; + virtualHosts."/".extraConfig = "return 204;"; + }; + }; + exporterTest = '' + waitForUnit("nginx.service") + waitForUnit("prometheus-nginx-exporter.service") + waitForOpenPort(9113) + succeed("curl -sSf http://localhost:9113/metrics | grep -q 'nginx_up 1'") + ''; + }; + + node = { + exporterConfig = { + enable = true; + }; + exporterTest = '' + waitForUnit("prometheus-node-exporter.service"); + waitForOpenPort(9100); + succeed("curl -sSf http://localhost:9100/metrics | grep -q 'node_exporter_build_info{.\\+} 1'"); + ''; + }; + + postfix = { + exporterConfig = { + enable = true; + }; + metricProvider = { + services.postfix.enable = true; + }; + exporterTest = '' + waitForUnit("prometheus-postfix-exporter.service"); + waitForOpenPort(9154); + succeed("curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'"); + ''; + }; + + snmp = { + exporterConfig = { + enable = true; + configuration.default = { + version = 2; + auth.community = "public"; + }; + }; + exporterTest = '' + waitForUnit("prometheus-snmp-exporter.service"); + waitForOpenPort(9116); + succeed("curl -sSf localhost:9116/metrics | grep -q 'snmp_request_errors_total 0'"); + ''; + }; + + surfboard = { + exporterConfig = { + enable = true; + modemAddress = "localhost"; + }; + metricProvider = { + systemd.services.prometheus-surfboard-exporter.after = [ "nginx.service" ]; + services.nginx = { + enable = true; + virtualHosts.localhost.locations."/cgi-bin/status".extraConfig = '' + return 204; + ''; + }; + }; + exporterTest = '' + waitForUnit("nginx.service"); + waitForOpenPort(80); + waitForUnit("prometheus-surfboard-exporter.service"); + waitForOpenPort(9239); + succeed("curl -sSf localhost:9239/metrics | grep -q 'surfboard_up 1'"); + ''; + }; + + varnish = { + exporterConfig = { + enable = true; + instance = "/var/spool/varnish/varnish"; + group = "varnish"; + }; + metricProvider = { + systemd.services.prometheus-varnish-exporter.after = [ + "varnish.service" + ]; + services.varnish = { + enable = true; + config = '' + vcl 4.0; + backend default { + .host = "127.0.0.1"; + .port = "80"; + } + ''; + }; + }; + exporterTest = '' + waitForUnit("prometheus-varnish-exporter.service"); + waitForOpenPort(9131); + succeed("curl -sSf http://localhost:9131/metrics | grep -q 'varnish_up 1'"); + ''; + }; + }; + + nodes = lib.mapAttrs (exporter: testConfig: lib.mkMerge [{ + services.prometheus.exporters.${exporter} = testConfig.exporterConfig; + } testConfig.metricProvider or {}]) exporterTests; + + testScript = lib.concatStrings (lib.mapAttrsToList (exporter: testConfig: ('' + subtest "${exporter}", sub { + ${"$"+exporter}->start(); + ${lib.concatStringsSep " " (map (line: '' + ${"$"+exporter}->${line}; + '') (lib.splitString "\n" (lib.removeSuffix "\n" testConfig.exporterTest)))} + ${"$"+exporter}->shutdown(); + }; + '')) exporterTests); +in +{ + name = "prometheus-exporters"; + + inherit nodes testScript; + + meta = with lib.maintainers; { + maintainers = [ willibutz ]; + }; +}) From 5fdfc6f4aedf39f3882c0276f7e4dfcb28ef5cea Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 11 Oct 2018 11:48:46 -0400 Subject: [PATCH 041/106] Merge pull request #48216 from LumiGuide/fix-overrideScope-warning lib: fix wording of the `overrideScope` warning (cherry picked from commit 041119528ccf5422555070f064f00865af7b5a62) --- lib/customisation.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/customisation.nix b/lib/customisation.nix index df9d977e9ec7..68062dd0daf0 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -196,7 +196,7 @@ rec { newScope = scope: newScope (self // scope); callPackage = self.newScope {}; overrideScope = g: lib.warn - "`overrideScope` (from `lib.makeScope`) is deprecated. Do `overrideScope' (self: self: { … })` instead of `overrideScope (super: self: { … })`. All other overrides have the parameters in that order, including other definitions of `overrideScope`. This was the only definition violating the pattern." + "`overrideScope` (from `lib.makeScope`) is deprecated. Do `overrideScope' (self: super: { … })` instead of `overrideScope (super: self: { … })`. All other overrides have the parameters in that order, including other definitions of `overrideScope`. This was the only definition violating the pattern." (makeScope newScope (lib.fixedPoints.extends (lib.flip g) f)); overrideScope' = g: makeScope newScope (lib.fixedPoints.extends g f); packages = f; From 8d9756ef5651a49a38d0ccfdf925ce80c935ba2a Mon Sep 17 00:00:00 2001 From: zimbatm Date: Fri, 5 Oct 2018 23:07:56 +0200 Subject: [PATCH 042/106] vault: 0.11.1 -> 0.11.2 changelog: https://github.com/hashicorp/vault/blob/v0.11.2/CHANGELOG.md (cherry picked from commit 0bcbb978795bab0f1a45accc211b8b0e349f1cdb) --- pkgs/tools/security/vault/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix index 091b17c6ffe1..436aac1e8a53 100644 --- a/pkgs/tools/security/vault/default.nix +++ b/pkgs/tools/security/vault/default.nix @@ -9,13 +9,13 @@ let }; in stdenv.mkDerivation rec { name = "vault-${version}"; - version = "0.11.1"; + version = "0.11.2"; src = fetchFromGitHub { owner = "hashicorp"; repo = "vault"; rev = "v${version}"; - sha256 = "1ydnb9z6rd5ck6wza5ir6927xq375i1a9zh5p2xanp29ly6ijiiz"; + sha256 = "0lckpfp1yw6rfq2cardsp2qjiajg706qjk98cycrlsa5nr2csafa"; }; nativeBuildInputs = [ go gox removeReferencesTo ]; From dc214ed99b1de1441a052752616ea1a9f1e1bf64 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 11 Oct 2018 12:27:49 -0400 Subject: [PATCH 043/106] __splicedPackages: Don't include xorg For historical reasons, callPackage has the xorg packages in scope. This unstable building block is more versatile without the xorg hack baked in. --- pkgs/top-level/splice.nix | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix index 41fdc22d1477..82a781083e2c 100644 --- a/pkgs/top-level/splice.nix +++ b/pkgs/top-level/splice.nix @@ -24,15 +24,6 @@ lib: pkgs: actuallySplice: let - defaultBuildBuildScope = pkgs.buildPackages.buildPackages // pkgs.buildPackages.buildPackages.xorg; - defaultBuildHostScope = pkgs.buildPackages // pkgs.buildPackages.xorg; - defaultBuildTargetScope = - if pkgs.stdenv.targetPlatform == pkgs.stdenv.hostPlatform - then defaultBuildHostScope - else assert pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform; defaultHostTargetScope; - defaultHostHostScope = {}; # unimplemented - defaultHostTargetScope = pkgs // pkgs.xorg; - defaultTargetTargetScope = pkgs.targetPackages // pkgs.targetPackages.xorg or {}; spliceReal = { pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget , pkgsHostHost, pkgsHostTarget @@ -105,19 +96,24 @@ let } @ args: if actuallySplice then spliceReal args else pkgsHostTarget; - splicedPackages = splicePackages { - pkgsBuildBuild = defaultBuildBuildScope; - pkgsBuildHost = defaultBuildHostScope; - pkgsBuildTarget = defaultBuildTargetScope; - pkgsHostHost = defaultHostHostScope; - pkgsHostTarget = defaultHostTargetScope; - pkgsTargetTarget = defaultTargetTargetScope; + splicedPackages = splicePackages rec { + pkgsBuildBuild = pkgs.buildPackages.buildPackages; + pkgsBuildHost = pkgs.buildPackages; + pkgsBuildTarget = + if pkgs.stdenv.targetPlatform == pkgs.stdenv.hostPlatform + then pkgsBuildHost + else assert pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform; pkgsHostTarget; + pkgsHostHost = {}; # unimplemented + pkgsHostTarget = pkgs; + pkgsTargetTarget = pkgs.targetPackages; } // { # These should never be spliced under any circumstances inherit (pkgs) pkgs buildPackages targetPackages; inherit (pkgs.stdenv) buildPlatform targetPlatform hostPlatform; }; + splicedPackagesWithXorg = splicedPackages // splicedPackages.xorg; + in { @@ -128,9 +124,9 @@ in # `newScope' for sets of packages in `pkgs' (see e.g. `gnome' below). callPackage = pkgs.newScope {}; - callPackages = lib.callPackagesWith splicedPackages; + callPackages = lib.callPackagesWith splicedPackagesWithXorg; - newScope = extra: lib.callPackageWith (splicedPackages // extra); + newScope = extra: lib.callPackageWith (splicedPackagesWithXorg // extra); # Haskell package sets need this because they reimplement their own # `newScope`. From a582a32e247d4f7c18e80381d0bc14fa8ebff994 Mon Sep 17 00:00:00 2001 From: Symphorien Gibol Date: Sun, 23 Sep 2018 12:53:46 +0200 Subject: [PATCH 044/106] openvpn plugins: use absolute paths to configuration gui (cherry picked from commit 5bfe8bfceac79e8b9de09a898afd23b10944c9fb) --- pkgs/tools/networking/network-manager/fortisslvpn/default.nix | 1 + pkgs/tools/networking/network-manager/iodine/default.nix | 1 + pkgs/tools/networking/network-manager/l2tp/default.nix | 1 + pkgs/tools/networking/network-manager/openconnect/default.nix | 1 + pkgs/tools/networking/network-manager/openvpn/default.nix | 1 + pkgs/tools/networking/network-manager/vpnc/default.nix | 1 + 6 files changed, 6 insertions(+) diff --git a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix index 16964e4db945..facf1b6a6670 100644 --- a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix +++ b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix @@ -28,6 +28,7 @@ in stdenv.mkDerivation rec { "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/tmp" + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/iodine/default.nix b/pkgs/tools/networking/network-manager/iodine/default.nix index a6fd3e7303df..ad58dc97b0a6 100644 --- a/pkgs/tools/networking/network-manager/iodine/default.nix +++ b/pkgs/tools/networking/network-manager/iodine/default.nix @@ -31,6 +31,7 @@ in stdenv.mkDerivation rec { "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/" # needed for the management socket under /run/NetworkManager + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/l2tp/default.nix b/pkgs/tools/networking/network-manager/l2tp/default.nix index 3cac1b5e63cf..b44933f7f5f8 100644 --- a/pkgs/tools/networking/network-manager/l2tp/default.nix +++ b/pkgs/tools/networking/network-manager/l2tp/default.nix @@ -35,6 +35,7 @@ stdenv.mkDerivation rec { "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/var" "--sysconfdir=$(out)/etc" + "--enable-absolute-paths" ]; enableParallelBuilding = true; diff --git a/pkgs/tools/networking/network-manager/openconnect/default.nix b/pkgs/tools/networking/network-manager/openconnect/default.nix index 23d4c816a20d..0c02569aa27a 100644 --- a/pkgs/tools/networking/network-manager/openconnect/default.nix +++ b/pkgs/tools/networking/network-manager/openconnect/default.nix @@ -26,6 +26,7 @@ in stdenv.mkDerivation rec { configureFlags = [ "--with-gnome=${if withGnome then "yes" else "no"}" + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/openvpn/default.nix b/pkgs/tools/networking/network-manager/openvpn/default.nix index 0d3a4174744f..66a306ffb66c 100644 --- a/pkgs/tools/networking/network-manager/openvpn/default.nix +++ b/pkgs/tools/networking/network-manager/openvpn/default.nix @@ -28,6 +28,7 @@ in stdenv.mkDerivation rec { "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/" # needed for the management socket under /run/NetworkManager + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix index ef45defb7d5a..5d77be86dffe 100644 --- a/pkgs/tools/networking/network-manager/vpnc/default.nix +++ b/pkgs/tools/networking/network-manager/vpnc/default.nix @@ -26,6 +26,7 @@ in stdenv.mkDerivation rec { configureFlags = [ "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" + "--enable-absolute-paths" ]; passthru = { From 1a75f83903fd9abca1276f3ba52a44b78d7f2cc6 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Thu, 11 Oct 2018 15:32:43 +0000 Subject: [PATCH 045/106] Merge pull request #48189 from aanderse/redmine redmine: refactor, cleanup, bug fix, and add functionality (cherry picked from commit a29603344a478c0354b2c62cd0e30fcd23159202) --- nixos/modules/services/misc/redmine.nix | 170 ++++++++++++++---- nixos/release.nix | 1 + nixos/tests/redmine.nix | 40 +++++ .../version-management/redmine/Gemfile | 64 ++----- .../version-management/redmine/Gemfile.lock | 48 ++++- .../version-management/redmine/default.nix | 9 +- .../version-management/redmine/gemset.nix | 151 +++++++++++++++- pkgs/top-level/all-packages.nix | 2 +- 8 files changed, 394 insertions(+), 91 deletions(-) create mode 100644 nixos/tests/redmine.nix diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix index f763ba21d0b2..8d25ac5cb76f 100644 --- a/nixos/modules/services/misc/redmine.nix +++ b/nixos/modules/services/misc/redmine.nix @@ -5,7 +5,7 @@ with lib; let cfg = config.services.redmine; - bundle = "${pkgs.redmine}/share/redmine/bin/bundle"; + bundle = "${cfg.package}/share/redmine/bin/bundle"; databaseYml = pkgs.writeText "database.yml" '' production: @@ -15,6 +15,7 @@ let port: ${toString cfg.database.port} username: ${cfg.database.user} password: #dbpass# + ${optionalString (cfg.database.socket != null) "socket: ${cfg.database.socket}"} ''; configurationYml = pkgs.writeText "configuration.yml" '' @@ -29,6 +30,19 @@ let ${cfg.extraConfig} ''; + unpackTheme = unpack "theme"; + unpackPlugin = unpack "plugin"; + unpack = id: (name: source: + pkgs.stdenv.mkDerivation { + name = "redmine-${id}-${name}"; + buildInputs = [ pkgs.unzip ]; + buildCommand = '' + mkdir -p $out + cd $out + unpackFile ${source} + ''; + }); + in { @@ -40,6 +54,14 @@ in description = "Enable the Redmine service."; }; + package = mkOption { + type = types.package; + default = pkgs.redmine; + defaultText = "pkgs.redmine"; + description = "Which Redmine package to use."; + example = "pkgs.redmine.override { ruby = pkgs.ruby_2_3; }"; + }; + user = mkOption { type = types.str; default = "redmine"; @@ -52,6 +74,12 @@ in description = "Group under which Redmine is ran."; }; + port = mkOption { + type = types.int; + default = 3000; + description = "Port on which Redmine is ran."; + }; + stateDir = mkOption { type = types.str; default = "/var/lib/redmine"; @@ -66,6 +94,41 @@ in See https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration ''; + example = literalExample '' + email_delivery: + delivery_method: smtp + smtp_settings: + address: mail.example.com + port: 25 + ''; + }; + + themes = mkOption { + type = types.attrsOf types.path; + default = {}; + description = "Set of themes."; + example = literalExample '' + { + dkuk-redmine_alex_skin = builtins.fetchurl { + url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; + sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; + }; + } + ''; + }; + + plugins = mkOption { + type = types.attrsOf types.path; + default = {}; + description = "Set of plugins."; + example = literalExample '' + { + redmine_env_auth = builtins.fetchurl { + url = https://github.com/Intera/redmine_env_auth/archive/0.6.zip; + sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; + }; + } + ''; }; database = { @@ -78,7 +141,7 @@ in host = mkOption { type = types.str; - default = "127.0.0.1"; + default = (if cfg.database.socket != null then "localhost" else "127.0.0.1"); description = "Database host address."; }; @@ -119,6 +182,13 @@ in . ''; }; + + socket = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/mysqld/mysqld.sock"; + description = "Path to the unix socket file to use for authentication."; + }; }; }; }; @@ -126,17 +196,20 @@ in config = mkIf cfg.enable { assertions = [ - { assertion = cfg.database.passwordFile != null || cfg.database.password != ""; - message = "either services.redmine.database.passwordFile or services.redmine.database.password must be set"; + { assertion = cfg.database.passwordFile != null || cfg.database.password != "" || cfg.database.socket != null; + message = "one of services.redmine.database.socket, services.redmine.database.passwordFile, or services.redmine.database.password must be set"; + } + { assertion = cfg.database.socket != null -> (cfg.database.type == "mysql2"); + message = "Socket authentication is only available for the mysql2 database type"; } ]; - environment.systemPackages = [ pkgs.redmine ]; + environment.systemPackages = [ cfg.package ]; systemd.services.redmine = { after = [ "network.target" (if cfg.database.type == "mysql2" then "mysql.service" else "postgresql.service") ]; wantedBy = [ "multi-user.target" ]; - environment.HOME = "${pkgs.redmine}/share/redmine"; + environment.HOME = "${cfg.package}/share/redmine"; environment.RAILS_ENV = "production"; environment.RAILS_CACHE = "${cfg.stateDir}/cache"; environment.REDMINE_LANG = "en"; @@ -151,43 +224,80 @@ in subversion ]; preStart = '' - # start with a fresh config directory every time - rm -rf ${cfg.stateDir}/config - cp -r ${pkgs.redmine}/share/redmine/config.dist ${cfg.stateDir}/config + # ensure cache directory exists for db:migrate command + mkdir -p "${cfg.stateDir}/cache" - # create the basic state directory layout pkgs.redmine expects - mkdir -p /run/redmine + # create the basic directory layout the redmine package expects + mkdir -p /run/redmine/public for i in config files log plugins tmp; do - mkdir -p ${cfg.stateDir}/$i - ln -fs ${cfg.stateDir}/$i /run/redmine/$i + mkdir -p "${cfg.stateDir}/$i" + ln -fs "${cfg.stateDir}/$i" /run/redmine/ done - # ensure cache directory exists for db:migrate command - mkdir -p ${cfg.stateDir}/cache + for i in plugin_assets themes; do + mkdir -p "${cfg.stateDir}/public/$i" + ln -fs "${cfg.stateDir}/public/$i" /run/redmine/public/ + done + + + # start with a fresh config directory + # the config directory is copied instead of linked as some mutable data is stored in there + rm -rf "${cfg.stateDir}/config/"* + cp -r ${cfg.package}/share/redmine/config.dist/* "${cfg.stateDir}/config/" # link in the application configuration - ln -fs ${configurationYml} ${cfg.stateDir}/config/configuration.yml + ln -fs ${configurationYml} "${cfg.stateDir}/config/configuration.yml" - chmod -R ug+rwX,o-rwx+x ${cfg.stateDir}/ - # handle database.passwordFile + # link in all user specified themes + rm -rf "${cfg.stateDir}/public/themes/"* + for theme in ${concatStringsSep " " (mapAttrsToList unpackTheme cfg.themes)}; do + ln -fs $theme/* "${cfg.stateDir}/public/themes" + done + + # link in redmine provided themes + ln -sf ${cfg.package}/share/redmine/public/themes.dist/* "${cfg.stateDir}/public/themes/" + + + # link in all user specified plugins + rm -rf "${cfg.stateDir}/plugins/"* + for plugin in ${concatStringsSep " " (mapAttrsToList unpackPlugin cfg.plugins)}; do + ln -fs $plugin/* "${cfg.stateDir}/plugins/''${plugin##*-redmine-plugin-}" + done + + + # ensure correct permissions for most files + chmod -R ug+rwX,o-rwx+x "${cfg.stateDir}/" + + + # handle database.passwordFile & permissions DBPASS=$(head -n1 ${cfg.database.passwordFile}) - cp -f ${databaseYml} ${cfg.stateDir}/config/database.yml - sed -e "s,#dbpass#,$DBPASS,g" -i ${cfg.stateDir}/config/database.yml - chmod 440 ${cfg.stateDir}/config/database.yml + cp -f ${databaseYml} "${cfg.stateDir}/config/database.yml" + sed -e "s,#dbpass#,$DBPASS,g" -i "${cfg.stateDir}/config/database.yml" + chmod 440 "${cfg.stateDir}/config/database.yml" + # generate a secret token if required if ! test -e "${cfg.stateDir}/config/initializers/secret_token.rb"; then ${bundle} exec rake generate_secret_token - chmod 440 ${cfg.stateDir}/config/initializers/secret_token.rb + chmod 440 "${cfg.stateDir}/config/initializers/secret_token.rb" fi - # ensure everything is owned by ${cfg.user} - chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir} - ${bundle} exec rake db:migrate - ${bundle} exec rake redmine:load_default_data + # ensure everything is owned by ${cfg.user} + chown -R ${cfg.user}:${cfg.group} "${cfg.stateDir}" + + + # execute redmine required commands prior to starting the application + # NOTE: su required in case using mysql socket authentication + /run/wrappers/bin/su -s ${pkgs.bash}/bin/bash -m -l redmine -c '${bundle} exec rake db:migrate' + /run/wrappers/bin/su -s ${pkgs.bash}/bin/bash -m -l redmine -c '${bundle} exec rake redmine:load_default_data' + + + # log files don't exist until after first command has been executed + # correct ownership of files generated by calling exec rake ... + chown -R ${cfg.user}:${cfg.group} "${cfg.stateDir}/log" ''; serviceConfig = { @@ -196,13 +306,13 @@ in User = cfg.user; Group = cfg.group; TimeoutSec = "300"; - WorkingDirectory = "${pkgs.redmine}/share/redmine"; - ExecStart="${bundle} exec rails server webrick -e production -P ${cfg.stateDir}/redmine.pid"; + WorkingDirectory = "${cfg.package}/share/redmine"; + ExecStart="${bundle} exec rails server webrick -e production -p ${toString cfg.port} -P '${cfg.stateDir}/redmine.pid'"; }; }; - users.extraUsers = optionalAttrs (cfg.user == "redmine") (singleton + users.users = optionalAttrs (cfg.user == "redmine") (singleton { name = "redmine"; group = cfg.group; home = cfg.stateDir; @@ -210,7 +320,7 @@ in uid = config.ids.uids.redmine; }); - users.extraGroups = optionalAttrs (cfg.group == "redmine") (singleton + users.groups = optionalAttrs (cfg.group == "redmine") (singleton { name = "redmine"; gid = config.ids.gids.redmine; }); diff --git a/nixos/release.nix b/nixos/release.nix index f7e4e61d866e..74283faa4c15 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -392,6 +392,7 @@ in rec { tests.quake3 = callTest tests/quake3.nix {}; tests.rabbitmq = callTest tests/rabbitmq.nix {}; tests.radicale = callTest tests/radicale.nix {}; + tests.redmine = callTest tests/redmine.nix {}; tests.rspamd = callSubTests tests/rspamd.nix {}; tests.runInMachine = callTest tests/run-in-machine.nix {}; tests.rxe = callTest tests/rxe.nix {}; diff --git a/nixos/tests/redmine.nix b/nixos/tests/redmine.nix new file mode 100644 index 000000000000..330f72854cac --- /dev/null +++ b/nixos/tests/redmine.nix @@ -0,0 +1,40 @@ +import ./make-test.nix ({ pkgs, lib, ... }: +{ + name = "redmine"; + meta.maintainers = [ lib.maintainers.aanderse ]; + + machine = + { config, pkgs, ... }: + { services.mysql.enable = true; + services.mysql.package = pkgs.mariadb; + services.mysql.ensureDatabases = [ "redmine" ]; + services.mysql.ensureUsers = [ + { name = "redmine"; + ensurePermissions = { "redmine.*" = "ALL PRIVILEGES"; }; + } + ]; + + services.redmine.enable = true; + services.redmine.database.socket = "/run/mysqld/mysqld.sock"; + services.redmine.plugins = { + redmine_env_auth = pkgs.fetchurl { + url = https://github.com/Intera/redmine_env_auth/archive/0.6.zip; + sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; + }; + }; + services.redmine.themes = { + dkuk-redmine_alex_skin = pkgs.fetchurl { + url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; + sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; + }; + }; + }; + + testScript = '' + startAll; + + $machine->waitForUnit('redmine.service'); + $machine->waitForOpenPort('3000'); + $machine->succeed("curl --fail http://localhost:3000/"); + ''; +}) diff --git a/pkgs/applications/version-management/redmine/Gemfile b/pkgs/applications/version-management/redmine/Gemfile index 744d6bfdd74e..a5c509f81a9a 100644 --- a/pkgs/applications/version-management/redmine/Gemfile +++ b/pkgs/applications/version-management/redmine/Gemfile @@ -54,60 +54,26 @@ platforms :mri, :mingw, :x64_mingw do end end -# Include database gems for the adapters found in the database -# configuration file -require 'erb' -require 'yaml' - -# NixOS - manually added to ensure mysql and postgres will always be include +# Include database gems for the database adapters NixOS supports gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw] gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw] -database_file = File.join(File.dirname(__FILE__), "config/database.yml") -if File.exist?(database_file) - database_config = YAML::load(ERB.new(IO.read(database_file)).result) - adapters = database_config.values.map {|c| c['adapter']}.compact.uniq - if adapters.any? - adapters.each do |adapter| - case adapter - when 'mysql2' - gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw] - when /postgresql/ - gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw] - when /sqlite3/ - gem "sqlite3", (RUBY_VERSION < "2.0" && RUBY_PLATFORM =~ /mingw/ ? "1.3.12" : "~>1.3.12"), - :platforms => [:mri, :mingw, :x64_mingw] - when /sqlserver/ - gem "tiny_tds", (RUBY_VERSION >= "2.0" ? "~> 1.0.5" : "~> 0.7.0"), :platforms => [:mri, :mingw, :x64_mingw] - gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw] - else - warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems") - end - end - else - warn("No adapter found in config/database.yml, please configure it first") - end -else - warn("Please configure your config/database.yml first") +group :development do + gem "rdoc", "~> 4.3" + gem "yard" end -# NixOS - manually removed because I couldn't figure out how to get "bundle exec rails server webrick -e production" to ignore these groups -#group :development do -# gem "rdoc", "~> 4.3" -# gem "yard" -#end - -#group :test do -# gem "minitest" -# gem "rails-dom-testing" -# gem "mocha" -# gem "simplecov", "~> 0.9.1", :require => false -# # TODO: remove this after upgrading to Rails 5 -# gem "test_after_commit", "~> 0.4.2" -# # For running UI tests -# gem "capybara" -# gem "selenium-webdriver", "~> 2.53.4" -#end +group :test do + gem "minitest" + gem "rails-dom-testing" + gem "mocha" + gem "simplecov", "~> 0.9.1", :require => false + # TODO: remove this after upgrading to Rails 5 + gem "test_after_commit", "~> 0.4.2" + # For running UI tests + gem "capybara" + gem "selenium-webdriver", "~> 2.53.4" +end local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") if File.exists?(local_gemfile) diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock index 589537c2af75..54eed51cd868 100644 --- a/pkgs/applications/version-management/redmine/Gemfile.lock +++ b/pkgs/applications/version-management/redmine/Gemfile.lock @@ -41,12 +41,23 @@ GEM public_suffix (>= 2.0.2, < 4.0) arel (6.0.4) builder (3.2.3) + capybara (3.9.0) + addressable + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + xpath (~> 3.1) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) coderay (1.1.2) concurrent-ruby (1.0.5) crass (1.0.4) css_parser (1.6.0) addressable + docile (1.1.5) erubis (2.7.0) + ffi (1.9.25) globalid (0.4.1) activesupport (>= 4.2.0) htmlentities (4.3.4) @@ -59,15 +70,20 @@ GEM nokogiri (>= 1.5.9) mail (2.6.6) mime-types (>= 1.16, < 4) + metaclass (0.0.4) mime-types (3.2.2) mime-types-data (~> 3.2015) mime-types-data (3.2018.0812) mimemagic (0.3.2) + mini_mime (1.0.1) mini_portile2 (2.3.0) minitest (5.11.3) + mocha (1.7.0) + metaclass (~> 0.0.1) + multi_json (1.13.1) mysql2 (0.4.10) net-ldap (0.12.1) - nokogiri (1.8.4) + nokogiri (1.8.5) mini_portile2 (~> 2.3.0) pg (0.18.4) protected_attributes (1.1.4) @@ -104,10 +120,11 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (12.3.1) - rbpdf (1.19.5) + rbpdf (1.19.6) htmlentities rbpdf-font (~> 1.19.0) rbpdf-font (1.19.1) + rdoc (4.3.0) redcarpet (3.4.0) request_store (1.0.5) rmagick (2.16.0) @@ -118,6 +135,16 @@ GEM railties (>= 3.0, < 5.1) roadie (~> 3.1) ruby-openid (2.3.0) + rubyzip (1.2.2) + selenium-webdriver (2.53.4) + childprocess (~> 0.5) + rubyzip (~> 1.0) + websocket (~> 1.0) + simplecov (0.9.2) + docile (~> 1.1.0) + multi_json (~> 1.0) + simplecov-html (~> 0.9.0) + simplecov-html (0.9.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -125,22 +152,31 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) + test_after_commit (0.4.2) + activerecord (>= 3.2) thor (0.20.0) thread_safe (0.3.6) tzinfo (1.2.5) thread_safe (~> 0.1) + websocket (1.2.8) + xpath (3.1.0) + nokogiri (~> 1.8) + yard (0.9.16) PLATFORMS ruby DEPENDENCIES actionpack-xml_parser + capybara coderay (~> 1.1.1) i18n (~> 0.7.0) jquery-rails (~> 3.1.4) mail (~> 2.6.4) mime-types (~> 3.0) mimemagic + minitest + mocha mysql2 (~> 0.4.6) net-ldap (~> 0.12.0) nokogiri (~> 1.8.1) @@ -148,15 +184,21 @@ DEPENDENCIES protected_attributes rack-openid rails (= 4.2.8) + rails-dom-testing rails-html-sanitizer (>= 1.0.3) rbpdf (~> 1.19.3) + rdoc (~> 4.3) redcarpet (~> 3.4.0) request_store (= 1.0.5) rmagick (>= 2.14.0) roadie (~> 3.2.1) roadie-rails (~> 1.1.1) ruby-openid (~> 2.3.0) + selenium-webdriver (~> 2.53.4) + simplecov (~> 0.9.1) + test_after_commit (~> 0.4.2) tzinfo-data + yard BUNDLED WITH - 1.16.1 + 1.16.3 diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix index 3c3fd4da33d4..d07e0f3e4544 100644 --- a/pkgs/applications/version-management/redmine/default.nix +++ b/pkgs/applications/version-management/redmine/default.nix @@ -7,6 +7,7 @@ let inherit ruby; gemdir = ./.; + groups = [ "ldap" "openid" ]; }; in stdenv.mkDerivation rec { @@ -21,15 +22,15 @@ in buildPhase = '' mv config config.dist + mv public/themes public/themes.dist ''; installPhase = '' mkdir -p $out/share cp -r . $out/share/redmine - - for i in config files log plugins tmp; do + for i in config files log plugins public/plugin_assets public/themes tmp; do rm -rf $out/share/redmine/$i - ln -fs /run/redmine/$i $out/share/redmine/ + ln -fs /run/redmine/$i $out/share/redmine/$i done ''; @@ -39,4 +40,4 @@ in maintainers = [ maintainers.garbas ]; license = licenses.gpl2; }; - } + } \ No newline at end of file diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix index 7423fcdb9fb9..fe56298056b1 100644 --- a/pkgs/applications/version-management/redmine/gemset.nix +++ b/pkgs/applications/version-management/redmine/gemset.nix @@ -96,6 +96,24 @@ }; version = "3.2.3"; }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sz6ick0pn7886jh9fd4571wyplshnpb95pr22ds4hd51zcrnfi4"; + type = "gem"; + }; + version = "3.9.0"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; coderay = { source = { remotes = ["https://rubygems.org"]; @@ -129,6 +147,14 @@ }; version = "1.6.0"; }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; erubis = { source = { remotes = ["https://rubygems.org"]; @@ -137,6 +163,14 @@ }; version = "2.7.0"; }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q"; + type = "gem"; + }; + version = "1.9.25"; + }; globalid = { dependencies = ["activesupport"]; source = { @@ -189,6 +223,14 @@ }; version = "2.6.6"; }; + metaclass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5"; + type = "gem"; + }; + version = "0.0.4"; + }; mime-types = { dependencies = ["mime-types-data"]; source = { @@ -214,6 +256,14 @@ }; version = "0.3.2"; }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; mini_portile2 = { source = { remotes = ["https://rubygems.org"]; @@ -230,6 +280,23 @@ }; version = "5.11.3"; }; + mocha = { + dependencies = ["metaclass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13whjmrm4n48rwx7h7a2jwa5grar3m0fxspbm2pm4lyp7hi119c1"; + type = "gem"; + }; + version = "1.7.0"; + }; + multi_json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; mysql2 = { source = { remotes = ["https://rubygems.org"]; @@ -250,10 +317,10 @@ dependencies = ["mini_portile2"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc"; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; type = "gem"; }; - version = "1.8.4"; + version = "1.8.5"; }; pg = { source = { @@ -363,10 +430,10 @@ dependencies = ["htmlentities" "rbpdf-font"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "021fda3gcz9pyydxnn40vs1nrkycwslb9ip4q0yg3hlip41k1b49"; + sha256 = "159vg56bzy09f6zrh9h3rxm2r0vkvsfn9qczqmv1vi5xkd918s0d"; type = "gem"; }; - version = "1.19.5"; + version = "1.19.6"; }; rbpdf-font = { source = { @@ -376,6 +443,14 @@ }; version = "1.19.1"; }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c"; + type = "gem"; + }; + version = "4.3.0"; + }; redcarpet = { source = { remotes = ["https://rubygems.org"]; @@ -426,6 +501,40 @@ }; version = "2.3.0"; }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip" "websocket"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15qyf7b9fa2nxhhwp551b9fjj82kb3wmy65559yrrcwpdadqvcs4"; + type = "gem"; + }; + version = "2.53.4"; + }; + simplecov = { + dependencies = ["docile" "multi_json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3wy9zlmfwl3f47cibnxyxrgfz16y6fmy0dj1vyidzyys4mvy12"; + type = "gem"; + }; + version = "0.9.2"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jv9pmpaxihrcsgcf6mgl3qg7rhf9scl5l2k67d768w9cz63xgvc"; + type = "gem"; + }; + version = "0.9.0"; + }; sprockets = { dependencies = ["concurrent-ruby" "rack"]; source = { @@ -444,6 +553,15 @@ }; version = "3.2.1"; }; + test_after_commit = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fzg8qan6f0n0ynr594bld2k0rwwxj99yzhiga2f3pkj9ina1abb"; + type = "gem"; + }; + version = "0.4.2"; + }; thor = { source = { remotes = ["https://rubygems.org"]; @@ -469,4 +587,29 @@ }; version = "1.2.5"; }; + websocket = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x"; + type = "gem"; + }; + version = "1.2.8"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y61ijvv04bwga802s8py5xd7fcxci6478wgr9wkd35p45x20jzi"; + type = "gem"; + }; + version = "3.1.0"; + }; + yard = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67"; + type = "gem"; + }; + version = "0.9.16"; + }; } \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d3863d5e56e..ac98f9daa57e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4905,7 +4905,7 @@ with pkgs; redir = callPackage ../tools/networking/redir { }; - redmine = callPackage ../applications/version-management/redmine { }; + redmine = callPackage ../applications/version-management/redmine { ruby = pkgs.ruby_2_4; }; redsocks = callPackage ../tools/networking/redsocks { }; From 6e2c08b68c0198747b10c7c2eb3fdf9265b16bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Tue, 4 Sep 2018 14:22:20 +0200 Subject: [PATCH 046/106] nix-daemon service: Ensure `ssh` is on PATH. Fixes #46038. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes a regression introduced in commit 700e21d6dac4683ef40f20127a6eb2a74b9bd8c6 nix needs ssh on path for the SSH substituter functionality, not only the distributed builds functionality. Signed-off-by: Niklas Hambüchen (cherry picked from commit 31919bce6ba59e7fb117b34bd2b1f460ef208053) --- nixos/modules/services/misc/nix-daemon.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix index 24379ec27354..5e171c08d893 100644 --- a/nixos/modules/services/misc/nix-daemon.nix +++ b/nixos/modules/services/misc/nix-daemon.nix @@ -399,8 +399,8 @@ in systemd.sockets.nix-daemon.wantedBy = [ "sockets.target" ]; systemd.services.nix-daemon = - { path = [ nix pkgs.utillinux ] - ++ optionals cfg.distributedBuilds [ config.programs.ssh.package pkgs.gzip ] + { path = [ nix pkgs.utillinux config.programs.ssh.package ] + ++ optionals cfg.distributedBuilds [ pkgs.gzip ] ++ optionals (!isNix20) [ pkgs.openssl.bin ]; environment = cfg.envVars From d720d5f697c26f63e892b7a46c6079142b391269 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 25 Sep 2018 07:25:14 -0700 Subject: [PATCH 047/106] apacheHttpd: 2.4.34 -> 2.4.35 Picked from master since it fixes CVE-2018-11763 which allows a remote DoS against a server with HTTP/2 enabled. Reference: https://lists.apache.org/thread.html/d435b0267a76501b9e06c552b20c887171064cde38e46d678da4d3dd@%3Cannounce.httpd.apache.org%3E (cherry picked from commit 524c2120f92581791fea8bc98e1ea6e745b4db52) --- pkgs/servers/http/apache-httpd/2.4.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix index d7f7660bf61f..c7bb6cfb6cdc 100644 --- a/pkgs/servers/http/apache-httpd/2.4.nix +++ b/pkgs/servers/http/apache-httpd/2.4.nix @@ -16,12 +16,12 @@ assert ldapSupport -> aprutil.ldapSupport && openldap != null; assert http2Support -> nghttp2 != null; stdenv.mkDerivation rec { - version = "2.4.34"; + version = "2.4.35"; name = "apache-httpd-${version}"; src = fetchurl { url = "mirror://apache/httpd/httpd-${version}.tar.bz2"; - sha256 = "1w1q2smdgf6ln0x741lk5pv5r0gzrxj2iza1vslhifzy65bcjlzs"; + sha256 = "0mlvwsm7hmpc7db6lfc2nx3v4cll3qljjxhjhgsw6aniskywc1r6"; }; # FIXME: -dev depends on -doc From 3cff2fbc0a37a3e5fe89208c68ebe421a88dfa78 Mon Sep 17 00:00:00 2001 From: taku0 Date: Tue, 25 Sep 2018 22:52:05 +0900 Subject: [PATCH 048/106] oraclejdk: deprecate oraclejdk 10 (cherry picked from commit 628fa1d50f242f231bd39c954bbf02b30a2b2a72) --- pkgs/development/compilers/oraclejdk/jdk10-linux.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/oraclejdk/jdk10-linux.nix b/pkgs/development/compilers/oraclejdk/jdk10-linux.nix index de063500b709..23f44331dd89 100644 --- a/pkgs/development/compilers/oraclejdk/jdk10-linux.nix +++ b/pkgs/development/compilers/oraclejdk/jdk10-linux.nix @@ -150,6 +150,7 @@ let result = stdenv.mkDerivation rec { meta = with stdenv.lib; { license = licenses.unfree; platforms = [ "x86_64-linux" ]; # some inherit jre.meta.platforms + knownVulnerabilities = [ "Support ended in September 2018. Use OpenJDK or JDK 8." ]; }; }; in result From c0c5ea193fd0f332e76aa4d71135c5f56b7427a4 Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Wed, 3 Oct 2018 16:41:03 +0200 Subject: [PATCH 049/106] minikube: 0.28.1 -> 0.29.0 Hard-code kubernetes version as the upstream python script is broken/not-up-to-date Signed-off-by: Vincent Demeester (cherry picked from commit ba98a7aea19cf2b56de4ff39a085b840419f9eee) Backport of #47765 --- pkgs/applications/networking/cluster/minikube/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix index 37431b0fbc44..c68fb48fa1a4 100644 --- a/pkgs/applications/networking/cluster/minikube/default.nix +++ b/pkgs/applications/networking/cluster/minikube/default.nix @@ -14,7 +14,9 @@ let in buildGoPackage rec { pname = "minikube"; name = "${pname}-${version}"; - version = "0.28.1"; + version = "0.29.0"; + + kubernetesVersion = "1.11.2"; goPackagePath = "k8s.io/minikube"; @@ -22,7 +24,7 @@ in buildGoPackage rec { owner = "kubernetes"; repo = "minikube"; rev = "v${version}"; - sha256 = "0c36rzsdzxf9q6l4hl506bsd4qwmw033i0k1xhqszv9agg7qjlmm"; + sha256 = "09px8pxml7xrnfhyjvlhf1hw7zdj9sw47a0fv5wj5aard54lhs1l"; }; buildInputs = [ go-bindata makeWrapper gpgme ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin vmnet; @@ -35,7 +37,7 @@ in buildGoPackage rec { ISO_VERSION=$(grep "^ISO_VERSION" Makefile | sed "s/^.*\s//") ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//") - KUBERNETES_VERSION=$(${python}/bin/python hack/get_k8s_version.py --k8s-version-only 2>&1) || true + KUBERNETES_VERSION=${kubernetesVersion} export buildFlagsArray="-ldflags=\ -X k8s.io/minikube/pkg/version.version=v${version} \ From c0c867ddb739079d422a2e07a374f43fc8dcb1a4 Mon Sep 17 00:00:00 2001 From: Periklis Tsirakidis Date: Fri, 12 Oct 2018 10:24:56 +0200 Subject: [PATCH 050/106] minikube: bump version 0.29.0 -> 0.30.0 This is a fix release for CVE-2018-1002103. More details in https://github.com/kubernetes/minikube/issues/3208 (cherry picked from commit e5ee89f7583319672632866364ff4c1ed875e4a2) Backport of #48256 --- pkgs/applications/networking/cluster/minikube/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix index c68fb48fa1a4..c44b7ac1dc76 100644 --- a/pkgs/applications/networking/cluster/minikube/default.nix +++ b/pkgs/applications/networking/cluster/minikube/default.nix @@ -14,7 +14,7 @@ let in buildGoPackage rec { pname = "minikube"; name = "${pname}-${version}"; - version = "0.29.0"; + version = "0.30.0"; kubernetesVersion = "1.11.2"; @@ -24,7 +24,7 @@ in buildGoPackage rec { owner = "kubernetes"; repo = "minikube"; rev = "v${version}"; - sha256 = "09px8pxml7xrnfhyjvlhf1hw7zdj9sw47a0fv5wj5aard54lhs1l"; + sha256 = "02jxwh8qrvjn31rzjwx23908nd1i592drfdykxbc5b6a62fwp02z"; }; buildInputs = [ go-bindata makeWrapper gpgme ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin vmnet; From 589d270ce4403cd491b4532eb425434d6303b148 Mon Sep 17 00:00:00 2001 From: Uli Baum Date: Sun, 23 Sep 2018 22:55:59 +0200 Subject: [PATCH 051/106] nixos/network-interfaces-scripted: fix container networking bug When a bridge interface was reconfigured, running containers using this bridge lost connectivity: restarting network-addresses-brN.service triggered a restart of network-setup.service via a "partOf" relationship introduced in 07e0c0e0a2f237639600f2a0d62f6eac748b1e6e. This in turn restarted brN-netdev.service. The bridge was thus destroyed and recreated with the same name but a new interface id, causing attached veth interfaces to lose their connection. This change removes the "partOf" relationship between network-setup.service and network-addresses-brN.service for all bridges. (cherry picked from commit 27420636772da3301d8eed2af417869f7eceac4f) --- nixos/modules/tasks/network-interfaces-scripted.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix index af61c95da0af..93dfefdce902 100644 --- a/nixos/modules/tasks/network-interfaces-scripted.nix +++ b/nixos/modules/tasks/network-interfaces-scripted.nix @@ -85,7 +85,8 @@ let after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ]; before = [ "network.target" "shutdown.target" ]; wants = [ "network.target" ]; - partOf = map (i: "network-addresses-${i.name}.service") interfaces; + # exclude bridges from the partOf relationship to fix container networking bug #47210 + partOf = map (i: "network-addresses-${i.name}.service") (filter (i: !(hasAttr i.name cfg.bridges)) interfaces); conflicts = [ "shutdown.target" ]; wantedBy = [ "multi-user.target" ] ++ optional hasDefaultGatewaySet "network-online.target"; From b72998bbfc9f0540798d614cbd87d1e09f1d1243 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Fri, 28 Sep 2018 13:04:29 -0500 Subject: [PATCH 052/106] chromium: update to 69.0.3497.100 (and others), ran update.sh (cherry picked from commit ce6db5e36e1d01576d042b219b5208508696dab3) --- .../browsers/chromium/upstream-info.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index ebf730129079..a26c8b8ddded 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "0i3iz6c05ykqxbq58sx954nky0gd0schl7ik2r56p3jqsk8cfnhn"; - sha256bin64 = "03k5y1nyzx26mxwxmdijkl2kj49vm5vhbxhakfxxjg3r1v0rsqrs"; - version = "69.0.3497.81"; + sha256 = "16biicw86mnjrmjazfbml2pf4rykhbvsz854cyfnpjhcvmlh24jp"; + sha256bin64 = "07jr1sqsxfdy3rymylkbpbgi79j9b2pax4igdzj943d0nbka84y5"; + version = "70.0.3538.35"; }; dev = { - sha256 = "1lx6dfd6w675b4kyrci8ikc8rfmjc1aqmm7bimxp3h4p97j5wml1"; - sha256bin64 = "0fsxj9h25glp3akw0x2rc488w5zr5v5yvl6ry7fy8w70fqgynffj"; - version = "70.0.3538.9"; + sha256 = "0fmkhvvydinv5f543n7rrmsv99rf0skwwhlpmszvspx6y4wz9smv"; + sha256bin64 = "0plr8ph78kfg2dpyacjy3aw3msfif95fqpb8xx0n8whkkpbl9968"; + version = "71.0.3559.6"; }; stable = { - sha256 = "0i3iz6c05ykqxbq58sx954nky0gd0schl7ik2r56p3jqsk8cfnhn"; - sha256bin64 = "1f3shb85jynxq37vjxxkkxrjayqgvpss1zws5i28x6i9nygfzay7"; - version = "69.0.3497.81"; + sha256 = "0dcyzsb70ssx5hd2b25ab3ydpqh7crhxab9zzi5gn99ywxh1afg3"; + sha256bin64 = "0w56k7hmdi9knjaw67kdmyz0fdkjmk2ldh2n4l1c6szkr66vq30q"; + version = "69.0.3497.100"; }; } From d308e698f90634446a46acc2bcd369b81565d3a6 Mon Sep 17 00:00:00 2001 From: Nick Novitski Date: Thu, 11 Oct 2018 12:19:42 -0800 Subject: [PATCH 053/106] fastlane: disable update check (cherry picked from commit 63ed3c8c5ebbad8f22e49d799bc88fddd74ff41c) --- pkgs/tools/admin/fastlane/default.nix | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/admin/fastlane/default.nix b/pkgs/tools/admin/fastlane/default.nix index b9008c919bf3..8aba7524008b 100644 --- a/pkgs/tools/admin/fastlane/default.nix +++ b/pkgs/tools/admin/fastlane/default.nix @@ -1,11 +1,27 @@ -{ lib, bundlerEnv, ruby }: +{ stdenv, bundlerEnv, ruby, makeWrapper }: -bundlerEnv rec { - inherit ruby; +stdenv.mkDerivation rec { + name = "${pname}-${version}"; pname = "fastlane"; - gemdir = ./.; + version = (import ./gemset.nix).fastlane.version; - meta = with lib; { + nativeBuildInputs = [ makeWrapper ]; + + env = bundlerEnv { + name = "${name}-gems"; + inherit pname ruby; + gemdir = ./.; + }; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/bin + makeWrapper ${env}/bin/fastlane $out/bin/fastlane \ + --set FASTLANE_SKIP_UPDATE_CHECK 1 + ''; + + meta = with stdenv.lib; { description = "A tool to automate building and releasing iOS and Android apps"; longDescription = "fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application."; homepage = https://github.com/fastlane/fastlane; From 14bb2f42bf7a74bd3ef3a17f7039d9e88e3ada4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Gaspard?= Date: Sat, 13 Oct 2018 04:28:30 +0900 Subject: [PATCH 054/106] nheko: mark as insecure (#48281) The package is no longer maintained and includes potential security vulnerabilities (a use-after-free and several crashes) that are known and not fixed in the version present in nixpkgs. They don't look too bad judging from the trigger vectors mentioned in the changelog, but with the project going unmaintained one of them becoming a security vulnerability would likely not be noticed. (cherry picked from commit ad992cbde10879455a5359ceb17937fc57cf2fc9) --- .../applications/networking/instant-messengers/nheko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index 6716305df8b5..55db35598931 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -70,5 +70,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ ekleog fpletz ]; platforms = platforms.unix; license = licenses.gpl3Plus; + knownVulnerabilities = [ "No longer maintained" ]; }; } From 45dbf83bbc4d5aa4f4868f8e34c6c62b74f151dd Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 14:51:46 -0400 Subject: [PATCH 055/106] nixpkgs docs: finish up mapAttrsRecursive (cherry picked from commit e7549b96ad013da56e990440bb58986683d80d7c) --- doc/functions/library/attrsets.xml | 82 ++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index 6f23e267bab2..5d8182cc6097 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -966,5 +966,87 @@ lib.attrsets.mapAttrsToList (name: value: "${name}=${value}") itself to attribute sets. Also, the first argument of the argument function is a list of the names of the containing attributes. + + + + + f + + + + [ String ] -> Any -> Any + + + Given a list of attribute names and value, return a new value. + + + + + name_path + + + + The list of attribute names to this value. + + + For example, the name_path for the + example string in the attribute set { foo + = { bar = "example"; }; } is [ "foo" "bar" + ]. + + + + + + value + + + + The attribute's value. + + + + + + + + + set + + + + The attribute set to recursively map over. + + + + + + + A contrived example of using <function>lib.attrsets.mapAttrsRecursive</function> + { + n = { + a = "n-a-A"; + m = { + b = "n-m-b-B"; + c = "n-m-c-C"; + }; + }; + d = "d-D"; + } + ]]> + From 27b549342b3d22e69294238a8ab40730133315e1 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 15:22:41 -0400 Subject: [PATCH 056/106] nixpkgs docs: document mapAttrsRecursiveCond (cherry picked from commit d664b8f5e3aeff8d6cf826d103bca342a7cf81c2) --- doc/functions/library/attrsets.xml | 123 +++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index 5d8182cc6097..7a8ce95fd030 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1049,4 +1049,127 @@ mapAttrsRecursive ]]> + +
+ <function>lib.attrsets.mapAttrsRecursiveCond</function> + + mapAttrsRecursiveCond :: (AttrSet -> Bool) -> ([ String ] -> Any -> Any) -> AttrSet -> AttrSet + + + + + + Like mapAttrsRecursive, but it takes an additional + predicate function that tells it whether to recursive into an attribute set. + If it returns false, mapAttrsRecursiveCond does not + recurse, but does apply the map function. It is returns true, it does + recurse, and does not apply the map function. + + + + + + cond + + + + (AttrSet -> Bool) + + + Determine if mapAttrsRecursive should recurse deeper + in to the attribute set. + + + + + attributeset + + + + An attribute set. + + + + + + + + + f + + + + [ String ] -> Any -> Any + + + Given a list of attribute names and value, return a new value. + + + + + name_path + + + + The list of attribute names to this value. + + + For example, the name_path for the + example string in the attribute set { foo + = { bar = "example"; }; } is [ "foo" "bar" + ]. + + + + + + value + + + + The attribute's value. + + + + + + + + + set + + + + The attribute set to recursively map over. + + + + + + + Only convert attribute values to JSON if the containing attribute set is marked for recursion + { + dorecur = { + hello = "\"there\""; + recurse = "true"; + }; + dontrecur = "{\"converted-to\":\"json\"}"; + } + ]]> + +
+ From 16c53e041bc6f0f55fc00f4c959d677bc978cf20 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 15:29:09 -0400 Subject: [PATCH 057/106] nixpkgs docs: document genAttrs (cherry picked from commit ef05e1057b91647b7c2662437fd658e8b0286e80) --- doc/functions/library/attrsets.xml | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index 7a8ce95fd030..78d05589aa8f 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1172,4 +1172,63 @@ lib.attrsets.mapAttrsRecursiveCond +
+ <function>lib.attrsets.genAttrs</function> + + genAttrs :: [ String ] -> (String -> Any) -> AttrSet + + + + + + Generate an attribute set by mapping a function over a list of attribute + names. + + + + + + names + + + + Names of values in the resulting attribute set. + + + + + + f + + + + String -> Any + + + Takes the name of the attribute and return the attribute's value. + + + + + name + + + + The name of the attribute to generate a value for. + + + + + + + + + + Generate an attrset based on names only + { foo = "x_foo"; bar = "x_bar"; } + ]]> + +
From 1280a227f3cef980757ad3a9bb092031126e9842 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 15:29:52 -0400 Subject: [PATCH 058/106] nixpkgs docs: document isDerivation (cherry picked from commit f85a4ba9c30434f9e0a2e2a57489543304d29f42) --- doc/functions/library/attrsets.xml | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index 78d05589aa8f..f671c5f4e4be 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1231,4 +1231,47 @@ lib.attrsets.genAttrs [ "foo" "bar" ] (name: "x_${name}") ]]> + +
+ <function>lib.attrsets.isDerivation</function> + + isDerivation :: Any -> Bool + + + + + + Check whether the argument is a derivation. Any set with { type = + "derivation"; } counts as a derivation. + + + + + + value + + + + The value which is possibly a derivation. + + + + + + + A package is a derivation + {}).ruby +=> true + ]]> + + + + Anything else is not a derivation + false + ]]> + +
From 3736fcdc64a2775a8f191acfbb3c2411117e1611 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 15:34:57 -0400 Subject: [PATCH 059/106] nixpkgs docs: document toDerivation (cherry picked from commit c547c3fe8262270ab8ddf129ec2bb8ebd4a38766) --- doc/functions/library/attrsets.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index f671c5f4e4be..222b4a882917 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1274,4 +1274,30 @@ lib.attrsets.isDerivation "foobar" ]]> + +
+ <function>lib.attrsets.toDerivation</function> + + toDerivation :: Path -> Derivation + + + + + + Converts a store path to a fake derivation. + + + + + + path + + + + A store path to convert to a derivation. + + + + +
From 8b02f90f3a8793b395d604ad9eb185c5d861495e Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 15:42:39 -0400 Subject: [PATCH 060/106] nixpkgs docs: document optionalAttrs (cherry picked from commit e0c6981d19d39d41258ab626a6b9871ff0014af2) --- doc/functions/library/attrsets.xml | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index 222b4a882917..8206142d7df2 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1300,4 +1300,57 @@ lib.attrsets.isDerivation "foobar" + +
+ <function>lib.attrsets.optionalAttrs</function> + + optionalAttrs :: Bool -> AttrSet + + + + + + Conditionally return an attribute set or an empty attribute set. + + + + + + cond + + + + Condition under which the as attribute set is + returned. + + + + + + as + + + + The attribute set to return if cond is true. + + + + + + + Return the provided attribute set when <varname>cond</varname> is true + { my = "set"; } + ]]> + + + + Return an empty attribute set when <varname>cond</varname> is false + { } + ]]> + +
From b8f712ef61ade556e48856cad2ee07b35c4f5fd4 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 16:02:26 -0400 Subject: [PATCH 061/106] nixpkgs docs: document zipAttrsWithNames (cherry picked from commit 3b3bde463ba7092dffdb78f20bffff4520e1df76) --- doc/functions/library/attrsets.xml | 88 ++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index 8206142d7df2..b49ccaf739ac 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1353,4 +1353,92 @@ lib.attrsets.optionalAttrs false { my = "set"; } ]]> + +
+ <function>lib.attrsets.zipAttrsWithNames</function> + + zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet + + + + + + Merge sets of attributes and use the function f to merge + attribute values. + + + + + + names + + + + A list of attribute names to zip. + + + + + + f + + + + (String -> [ Any ] -> Any + + + Accepts an attribute name, all the values, and returns a combined value. + + + + + name + + + + The name of the attribute each value came from. + + + + + + vs + + + + A list of values collected from the list of attribute sets. + + + + + + + + + sets + + + + A list of attribute sets to zip together. + + + + + + + Summing a list of attribute sets of numbers + { a = "a 11"; b = "b 101"; } + ]]> + +
From 66ce692e62bb030fdbe868cef833de6105d5499c Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 16:23:49 -0400 Subject: [PATCH 062/106] nixpkgs docs: Clarify zipAttrsWithNames's docs (cherry picked from commit 4edb31882c9830d947202542a13bdb0ede17e782) --- doc/functions/library/attrsets.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index b49ccaf739ac..fe44dfe4f8e6 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1364,7 +1364,7 @@ lib.attrsets.optionalAttrs false { my = "set"; } Merge sets of attributes and use the function f to merge - attribute values. + attribute values where the attribute name is in names. From a02495dd478b4835535a8260e46283409cded517 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 16:26:56 -0400 Subject: [PATCH 063/106] nixpkgs docs: document zipAttrsWith (cherry picked from commit 655a5fa8bf47e104a50a2e627e1cf234fff1402e) --- doc/functions/library/attrsets.xml | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index fe44dfe4f8e6..da73e02e0561 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1441,4 +1441,83 @@ lib.attrsets.zipAttrsWithNames ]]> + +
+ <function>lib.attrsets.zipAttrsWith</function> + + zipAttrsWith :: (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet + + + + + + Merge sets of attributes and use the function f to merge + attribute values. Similar to where + all key names are passed for names. + + + + + + f + + + + (String -> [ Any ] -> Any + + + Accepts an attribute name, all the values, and returns a combined value. + + + + + name + + + + The name of the attribute each value came from. + + + + + + vs + + + + A list of values collected from the list of attribute sets. + + + + + + + + + sets + + + + A list of attribute sets to zip together. + + + + + + + Summing a list of attribute sets of numbers + { a = "a 11"; b = "b 101"; c = "c 1001"; } + ]]> + +
From 16826210578fc3aaf2e36abdee8e0bac2e21fa44 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 16:31:23 -0400 Subject: [PATCH 064/106] nixpkgs docs: document zipAttrs (cherry picked from commit 77140a9075ea651c060fcb91a7a5da832e3a1e68) --- doc/functions/library/attrsets.xml | 45 +++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index da73e02e0561..a719b7958458 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1452,7 +1452,8 @@ lib.attrsets.zipAttrsWithNames Merge sets of attributes and use the function f to merge - attribute values. Similar to where all key names are passed for names. @@ -1520,4 +1521,46 @@ lib.attrsets.zipAttrsWith ]]> + +
+ <function>lib.attrsets.zipAttrs</function> + + zipAttrsWith :: [ AttrSet ] -> AttrSet + + + + + + Merge sets of attributes and combine each attribute value in to a list. + Similar to + where the merge function returns a list of all values. + + + + + + sets + + + + A list of attribute sets to zip together. + + + + + + + Combining a list of attribute sets + { a = [ 1 10 ]; b = [ 1 100 ]; c = [ 1 1000 ]; } + ]]> + +
From c30b39cfb1b1b4852495f23b6a78e6a17494b9c0 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 16:51:05 -0400 Subject: [PATCH 065/106] nixpkgs docs: document recursivelyUpdateUntil (cherry picked from commit c100a456b1da162ea010e5880cded268aa68cec6) --- doc/functions/library/attrsets.xml | 108 +++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index a719b7958458..a6fa2ea0e295 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1563,4 +1563,112 @@ lib.attrsets.zipAttrs ]]> + +
+ <function>lib.attrsets.recursiveUpdateUntil</function> + + recursiveUpdateUntil :: ( [ String ] -> AttrSet -> AttrSet -> Bool ) -> AttrSet -> AttrSet -> AttrSet + + + + + + Does the same as the update operator // except that + attributes are merged until the given predicate is verified. The predicate + should accept 3 arguments which are the path to reach the attribute, a part + of the first attribute set and a part of the second attribute set. When the + predicate is verified, the value of the first attribute set is replaced by + the value of the second attribute set. + + + + + + pred + + + + [ String ] -> AttrSet -> AttrSet -> Bool + + + + + path + + + + The path to the values in the left and right hand sides. + + + + + + l + + + + The left hand side value. + + + + + + r + + + + The right hand side value. + + + + + + + + + lhs + + + + The left hand attribute set of the merge. + + + + + + rhs + + + + The right hand attribute set of the merge. + + + + + + + Recursively merging two attribute sets + { + foo.bar = 1; # 'foo.*' from the second set + foo.quz = 2; # + bar = 3; # 'bar' from the first set + baz = 4; # 'baz' from the second set +} + ]]> + +
From c8342644cf1cb683ad4d2d3d0973723b6fe23878 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Fri, 12 Oct 2018 16:53:50 -0400 Subject: [PATCH 066/106] nixpkgs docs: document recursivelyUpdate (cherry picked from commit 0eb3b93e1ae4ee6cea97768a1f24f90a88635753) --- doc/functions/library/attrsets.xml | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml index a6fa2ea0e295..65d0b40e2e82 100644 --- a/doc/functions/library/attrsets.xml +++ b/doc/functions/library/attrsets.xml @@ -1671,4 +1671,61 @@ lib.attrsets.recursiveUpdateUntil (path: l: r: path == ["foo"]) ]]> + +
+ <function>lib.attrsets.recursiveUpdate</function> + + recursiveUpdate :: AttrSet -> AttrSet -> AttrSet + + + + + + A recursive variant of the update operator //. The + recursion stops when one of the attribute values is not an attribute set, in + which case the right hand side value takes precedence over the left hand + side value. + + + + + + lhs + + + + The left hand attribute set of the merge. + + + + + + rhs + + + + The right hand attribute set of the merge. + + + + + + + Recursively merging two attribute sets + { + boot.loader.grub.enable = true; + boot.loader.grub.device = ""; +} +]]> + +
From 29b9fee3fc642ccb1a460620596e904fcd4e42f7 Mon Sep 17 00:00:00 2001 From: "Alexander V. Nikolaev" Date: Fri, 12 Oct 2018 17:28:48 +0300 Subject: [PATCH 067/106] nixos/rmilter: don't enable by default, if rspamd enabled (cherry picked from commit b61dd2bcb7e0c88fcc53f48f8430d352b87b3388) --- nixos/modules/services/mail/rmilter.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/mail/rmilter.nix b/nixos/modules/services/mail/rmilter.nix index 0d91b247cd34..492c64583219 100644 --- a/nixos/modules/services/mail/rmilter.nix +++ b/nixos/modules/services/mail/rmilter.nix @@ -52,7 +52,7 @@ in enable = mkOption { type = types.bool; - default = cfg.rspamd.enable; + default = false; description = "Whether to run the rmilter daemon."; }; From 03bf8cd4870c281bddc959a799a320e66306e5cd Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Thu, 11 Oct 2018 21:23:11 -0400 Subject: [PATCH 068/106] lib/types: enhances separatedString's description The previous description "string" is misleading in the full options manual pages; they are actually concatenated strings, with a specific character. The empty string version ("types.string") has been special-cased to provide a better message. (cherry picked from commit 0808c7cd31aaa329aba21430b8b26c3a233dd83f) --- lib/types.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/types.nix b/lib/types.nix index 4d6ac51c8988..6d8e58dc0be8 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -192,7 +192,10 @@ rec { # separator between the values). separatedString = sep: mkOptionType rec { name = "separatedString"; - description = "string"; + description = if sep == "" + then "Concatenated string" # for types.string. + else "strings concatenated with ${builtins.toJSON sep}" + ; check = isString; merge = loc: defs: concatStringsSep sep (getValues defs); functor = (defaultFunctor name) // { From a326dad536edefdf1803b08d830ed0728c7b97f7 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Fri, 12 Oct 2018 21:12:44 +0200 Subject: [PATCH 069/106] reattach-to-user-namespace: 2.6 -> 2.7 Adds macOS Mojave (10.14) support. (cherry picked from commit 42088e08b39cfc40b23fd7bb427fd3cf7521c2d8) --- .../darwin/reattach-to-user-namespace/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix b/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix index b14008e11f10..631c59523e2a 100644 --- a/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix +++ b/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "reattach-to-user-namespace-${version}"; - version = "2.6"; + version = "2.7"; src = fetchurl { - url = "https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/archive/v2.6.tar.gz"; - sha256 = "1d8ynzkdlxyyky9f88f7z50g9lwdydkpb2n7gkw3jgl2ac569xc0"; + url = "https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/archive/v${version}.tar.gz"; + sha256 = "00mjyj8yicrpnlm46rlbkvxgl5381l8xawh7rmjk10p3zrm56jbv"; }; buildFlags = "ARCHES=x86_64"; From ae53ed9d36cbc36d00db35721dbc37418b71c723 Mon Sep 17 00:00:00 2001 From: Justin Humm Date: Sun, 7 Oct 2018 14:08:16 +0200 Subject: [PATCH 070/106] haskellPackages.arbtt: unbreak with jailbreak (cherry picked from commit a01cab05c626f17632edb3776f16fabb89afc106) Backport of #48000 --- pkgs/development/haskell-modules/configuration-common.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 4fced9b8018f..4dc82d02b4b3 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1160,4 +1160,5 @@ self: super: { }; }; + arbtt = doJailbreak super.arbtt; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super From a95db4c83e78c934407e5071bbfd509d1d973206 Mon Sep 17 00:00:00 2001 From: Ben Challenor Date: Sat, 13 Oct 2018 09:55:29 +0100 Subject: [PATCH 071/106] jenkins: 2.138.1 -> 2.138.2 (cherry picked from commit 88e7d7b350c4012f413c0a308e7248f15a6524ab) --- .../tools/continuous-integration/jenkins/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix index a6a6e9a11054..0f7fc4804906 100644 --- a/pkgs/development/tools/continuous-integration/jenkins/default.nix +++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "jenkins-${version}"; - version = "2.138.1"; + version = "2.138.2"; src = fetchurl { url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war"; - sha256 = "09svkqii9lv1br0al6wjn1l0fsqf6s7fdrfc0awmfsg8fmjlpf7c"; + sha256 = "10qyr8izngnhlr1b03a9vdnbmwprbqsjnd55hjdalmxy6dq5mvfq"; }; buildCommand = '' From ce2715b2f696d2444563b139ed6d7dc55862e426 Mon Sep 17 00:00:00 2001 From: Yegor Timoshenko Date: Sat, 6 Oct 2018 19:34:30 +0000 Subject: [PATCH 072/106] wireguard: 0.0.20180925 -> 0.0.20181006 (cherry picked from commit 011a463d17031c0c5d54710cef90d48f0de0b9d8) --- pkgs/tools/networking/wireguard-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix index c0256787ea8e..ccd474839d62 100644 --- a/pkgs/tools/networking/wireguard-tools/default.nix +++ b/pkgs/tools/networking/wireguard-tools/default.nix @@ -4,11 +4,11 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "wireguard-tools-${version}"; - version = "0.0.20180925"; + version = "0.0.20181006"; src = fetchzip { url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz"; - sha256 = "10k63ld0f5q5aykpcrg9m3xmrsf3qmlkvhiv18q73hnky2cjfx62"; + sha256 = "0283slpyqb8d4cx9wyahqmqi4lwhzamc4i2710zid5y71vjgsgw3"; }; sourceRoot = "source/src/tools"; From 9787b0c11d295dd26497e387892ce75b8e7b3f59 Mon Sep 17 00:00:00 2001 From: Yegor Timoshenko Date: Sat, 13 Oct 2018 12:26:42 +0000 Subject: [PATCH 073/106] wireguard-go: 0.0.20180613 -> 0.0.20181001 (cherry picked from commit fed0a4ec94cacca2ebec9b6f2929d65bac0e60cd) --- pkgs/tools/networking/wireguard-go/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/wireguard-go/default.nix b/pkgs/tools/networking/wireguard-go/default.nix index c6b8cb242fdc..a6a32ccf12ad 100644 --- a/pkgs/tools/networking/wireguard-go/default.nix +++ b/pkgs/tools/networking/wireguard-go/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { name = "wireguard-go-${version}"; - version = "0.0.20180613"; + version = "0.0.20181001"; goPackagePath = "git.zx2c4.com/wireguard-go"; src = fetchzip { url = "https://git.zx2c4.com/wireguard-go/snapshot/wireguard-go-${version}.tar.xz"; - sha256 = "0pvg7s1kyn48az54lsnyn1ryhjk0flmpz5dx520rc94g6xn88fic"; + sha256 = "0yh9f58xn8kcq3wgx2s8j19k2h1vbmg70fn5gvw9k98f5mzynls3"; }; goDeps = ./deps.nix; From aa25fb3de4da907b9291f4d23f1b53f880610b31 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Sat, 13 Oct 2018 15:44:18 +0200 Subject: [PATCH 074/106] wireguard: 0.0.20181006 -> 0.0.20181007 (cherry picked from commit 97d2779059869653e2d97ed46da16842046eff81) --- pkgs/tools/networking/wireguard-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix index ccd474839d62..2e0a4c3804c3 100644 --- a/pkgs/tools/networking/wireguard-tools/default.nix +++ b/pkgs/tools/networking/wireguard-tools/default.nix @@ -4,11 +4,11 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "wireguard-tools-${version}"; - version = "0.0.20181006"; + version = "0.0.20181007"; src = fetchzip { url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz"; - sha256 = "0283slpyqb8d4cx9wyahqmqi4lwhzamc4i2710zid5y71vjgsgw3"; + sha256 = "1nrhwnccs6sqq1qs7yhxqb989inrc9n2saibpqs6ga6gb0pvpac6"; }; sourceRoot = "source/src/tools"; From 1b3c777a979ad5ef401f9c2627e4a2a910abb056 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Sat, 13 Oct 2018 12:40:53 -0400 Subject: [PATCH 075/106] linux: 4.4.160 -> 4.4.161 (cherry picked from commit 3ad8afbf3e5cda12b402fa0ee80241741c8cf4cb) --- pkgs/os-specific/linux/kernel/linux-4.4.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix index 39e96d4b5dc2..641e368f74e6 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.4.160"; + version = "4.4.161"; extraMeta.branch = "4.4"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1i0wqccab2xxjsx58pgzgbmm5cclfd3hh3yjasnfrqsdaarxvgkd"; + sha256 = "11rz66qvbcb6y3fz9k04jzn547sqdahqknd43imsr9sjgkaq60xy"; }; } // (args.argsOverride or {})) From 766d135c1ffec05d987774572a8d495373f8c071 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Sat, 13 Oct 2018 12:41:07 -0400 Subject: [PATCH 076/106] linux: 4.9.132 -> 4.9.133 (cherry picked from commit b4d4affe41285fb47ed6d9f57967c7998b91439d) --- pkgs/os-specific/linux/kernel/linux-4.9.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index 24c11fca7935..cdf7000fba89 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.132"; + version = "4.9.133"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1lz53r6p293y5fwx7pz9ymj9sss3wmip8hcc48zwkcwm8phnmrk7"; + sha256 = "0qv5n8vipkqcd0hpf5l41h023n46rgja39h895phlcxs4p00ywsk"; }; } // (args.argsOverride or {})) From d001ddcdca7b4205520d7b9908a600e718e8c1e4 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Sat, 13 Oct 2018 12:41:16 -0400 Subject: [PATCH 077/106] linux: 4.14.75 -> 4.14.76 (cherry picked from commit 43d8a40653c66ab72836d54a721d75db7728df8a) --- pkgs/os-specific/linux/kernel/linux-4.14.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index 9afc81eddf52..60b3ffb2d8dc 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.75"; + version = "4.14.76"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "084176rl51ls0dhy39vpj9fhasm4436iqv6aa0s5a74g1cixg4sh"; + sha256 = "1gl2wkq4sazvpr0xnn4vrajj3j7w6hfiwdiy34y7jhlazyj1jgzf"; }; } // (args.argsOverride or {})) From d96c7a356383302db4426a0d5a8383af921d964f Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Sat, 13 Oct 2018 12:41:21 -0400 Subject: [PATCH 078/106] linux: 4.18.13 -> 4.18.14 (cherry picked from commit 0ba1f0aa727bb76aa4ebc76a42ee3fb78844b932) --- pkgs/os-specific/linux/kernel/linux-4.18.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-4.18.nix b/pkgs/os-specific/linux/kernel/linux-4.18.nix index 2b65ed377ffc..9bf33c068b55 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.18.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.18.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.18.13"; + version = "4.18.14"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0l4n72gajgw2vqghl6ps0yjy1safnypyzkcp841zkkwinp3a31yw"; + sha256 = "1lv2hpxzlk1yzr5dcjb0q0ylvlwx4ln2jvfvf01b9smr1lvd3iin"; }; } // (args.argsOverride or {})) From e1fbfca6e0e8677c9d7851c01d35a5d4841c407e Mon Sep 17 00:00:00 2001 From: volth Date: Fri, 12 Oct 2018 00:45:59 +0000 Subject: [PATCH 079/106] bootStage1: fix cross build (cherry picked from commit 9dd5dc57a77b1b592708a6d27fef081be0b06fa8) --- nixos/modules/system/boot/stage-1.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index f58b68cb3353..8688b5ad9bfb 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -251,7 +251,8 @@ let postInstall = '' echo checking syntax # check both with bash - ${pkgs.bash}/bin/sh -n $target + ${pkgs.buildPackages.bash}/bin/sh -n $target + '' + optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) '' # and with ash shell, just in case ${extraUtils}/bin/ash -n $target ''; From eb1dc551af8091eaa2a74ba3b21e032c38e5d3cb Mon Sep 17 00:00:00 2001 From: volth Date: Fri, 12 Oct 2018 09:24:00 +0000 Subject: [PATCH 080/106] bootStage1: fix cross build (@matthewbauer's solution) (cherry picked from commit b3dff39105beb0190d9a576afba95cd2a6903540) --- nixos/modules/system/boot/stage-1.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 8688b5ad9bfb..f4cf9753c0a1 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -252,9 +252,8 @@ let echo checking syntax # check both with bash ${pkgs.buildPackages.bash}/bin/sh -n $target - '' + optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) '' # and with ash shell, just in case - ${extraUtils}/bin/ash -n $target + ${pkgs.buildPackages.busybox}/bin/ash -n $target ''; inherit udevRules extraUtils modulesClosure; From 08005ede0fc88c7222a898522dcee84af4827131 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Sun, 14 Oct 2018 10:26:38 -0400 Subject: [PATCH 081/106] fail2ban: 0.10.3.1 -> 0.10.4 (cherry picked from commit 2a4bfe20d5aa2709c40f4b1d2bf55b34d3131144) --- pkgs/tools/security/fail2ban/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix index 30e8d4303dc1..6b1d8e6c4f88 100644 --- a/pkgs/tools/security/fail2ban/default.nix +++ b/pkgs/tools/security/fail2ban/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, python, pythonPackages, gamin }: -let version = "0.10.3.1"; in +let version = "0.10.4"; in pythonPackages.buildPythonApplication { name = "fail2ban-${version}"; @@ -9,7 +9,7 @@ pythonPackages.buildPythonApplication { owner = "fail2ban"; repo = "fail2ban"; rev = version; - sha256 = "03gljmqykwwvwxcfhqqfccmnsjhsl93052i38r9mf7hj4jj8v7x5"; + sha256 = "07ik6rm856q0ic2r7vbg6j3hsdcdgkv44hh5ck0c2y21fqwrck3l"; }; propagatedBuildInputs = [ gamin ] @@ -27,7 +27,7 @@ pythonPackages.buildPythonApplication { preInstall = '' substituteInPlace setup.py --replace /usr/share/doc/ share/doc/ - + # see https://github.com/NixOS/nixpkgs/issues/4968 ${python}/bin/${python.executable} setup.py install_data --install-dir=$out --root=$out ''; From 9345561c18ffb735699fcbaf8f3d990c66af73bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 11 Oct 2018 14:18:13 +0100 Subject: [PATCH 082/106] rambox: 0.5.17 -> 0.6.1 (cherry picked from commit a25e765dc90a6896f33f1fdfe0fe535006c468f4) --- .../networking/instant-messengers/rambox/bare.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/rambox/bare.nix b/pkgs/applications/networking/instant-messengers/rambox/bare.nix index 334c50814d78..2a80349c4e62 100644 --- a/pkgs/applications/networking/instant-messengers/rambox/bare.nix +++ b/pkgs/applications/networking/instant-messengers/rambox/bare.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "rambox-bare-${version}"; - version = "0.5.17"; + version = "0.6.1"; src = fetchFromGitHub { owner = "saenzramiro"; repo = "rambox"; rev = version; - sha256 = "18adga0symhb825db80l4c7kjl3lzzh54p1qibqsfa087rjxx9ay"; + sha256 = "1cyxxgcv0qvm1la8yl5ag3j11spw7zvnj75zpf9c1y33pqmp44yc"; }; nativeBuildInputs = [ nodejs-8_x ruby sencha ]; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { inherit src; nodejs = nodejs-8_x; - sha256 = "1v7zwp8vs2pgy04qi92lvnxgfwkyxbid04lab8925wg1pvm2pk3k"; + sha256 = "0mg1ilz65qyxgh5zg1f8fhx7ygz10w8ifamflpwbk8mrvqpkjlvr"; }; patches = [ ./isDev.patch ]; From 320499ca338b1bc72c219ed6870f8e7ffa023745 Mon Sep 17 00:00:00 2001 From: Tycho Grouwstra Date: Sun, 14 Oct 2018 23:46:38 +0200 Subject: [PATCH 083/106] skypeforlinux: 8.28.0.41 -> 8.32.0.44 (#48391) * skypeforlinux: 8.28.0.41 -> 8.32.0.44 Fixes 404 on https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_8.28.0.41_amd64.deb, as only [more recent versions](https://repo.skype.com/deb/pool/main/s/skypeforlinux/) are still available, as previously noted at #31047. Avoiding `x.y.76.z` releases as per the comment. * update sha256 (cherry picked from commit 72128fcd9dc01b06b1acac4aecdded7a773c55f8) --- .../networking/instant-messengers/skypeforlinux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix index eaa9103a7b64..49e5a12d447c 100644 --- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix +++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -6,7 +6,7 @@ let # Please keep the version x.y.0.z and do not update to x.y.76.z because the # source of the latter disappears much faster. - version = "8.28.0.41"; + version = "8.32.0.44"; rpath = stdenv.lib.makeLibraryPath [ alsaLib @@ -56,7 +56,7 @@ let if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"; - sha256 = "1kydf71qbz35dx4674h3nxfx8a88k620217906i54ic4qq2mgy2x"; + sha256 = "0yzh4bmv8mrfp0ml9nhcpcy0lhi8jp1fnmnxy0krvnphkp8750c7"; } else throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}"; From 195a573cc8ce5722c78082d2a23c55fd44ae1599 Mon Sep 17 00:00:00 2001 From: Ambroz Bizjak Date: Sat, 30 Jun 2018 09:33:45 +0200 Subject: [PATCH 084/106] nixos/xserver: Implement configuration of NVIDIA Optimus via PRIME This adds configuration options which automate the configuration of NVIDIA Optimus using PRIME. This allows using the NVIDIA proprietary driver on Optimus laptops, in order to render using the NVIDIA GPU while outputting to displays connected only to the integrated Intel GPU. It also adds an option for enabling kernel modesetting for the NVIDIA driver (via a kernel command line flag); this is particularly useful together with Optimus/PRIME because it fixes tearing on PRIME-connected screens. The user still needs to enable the Optimus/PRIME feature and specify the bus IDs of the Intel and NVIDIA GPUs, but this is still much easier for users and more reliable. The implementation handles both the X configuration file as well as getting display managers to run certain necessary `xrandr` commands just after X has started. Configuration of commands run after X startup is done using a new configuration option `services.xserver.displayManager.setupCommands`. Support for this option is implemented for LightDM, GDM and SDDM; all of these have been tested with this feature including logging into a Plasma session. Note: support of `setupCommands` for GDM is implemented by making GDM run the session executable via a wrapper; the wrapper will run the `setupCommands` before execing. This seemed like the simplest and most reliable approach, and solves running these commands both for GDM's X server and user X servers (GDM starts separate X servers for itself and user sessions). An alternative approach would be with autostart files but that seems harder to set up and less reliable. Note that some simple features for X configuration file generation (in `xserver.nix`) are added which are used in the implementation: - `services.xserver.extraConfig`: Allows adding arbitrary new sections. This is used to add the Device section for the Intel GPU. - `deviceSection` and `screenSection` within `services.xserver.drivers`. This allows the nvidia configuration module to add additional contents into the `Device` and `Screen` sections of the "nvidia" driver, and not into such sections for other drivers that may be enabled. --- nixos/modules/hardware/video/nvidia.nix | 120 +++++++++++++++++- .../services/x11/display-managers/default.nix | 11 ++ .../services/x11/display-managers/gdm.nix | 12 ++ .../services/x11/display-managers/lightdm.nix | 6 + .../services/x11/display-managers/sddm.nix | 4 +- nixos/modules/services/x11/xserver.nix | 10 ++ pkgs/desktops/gnome-3/core/gdm/default.nix | 16 ++- .../gdm/gdm-session-worker_forward-vars.patch | 31 +++++ .../gdm/gdm-session-worker_xserver-path.patch | 17 --- .../gdm/gdm-x-session_session-wrapper.patch | 40 ++++++ 10 files changed, 244 insertions(+), 23 deletions(-) create mode 100644 pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch delete mode 100644 pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch create mode 100644 pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index eb1952280331..6944d1a4f76b 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -26,9 +26,73 @@ let nvidia_libs32 = (nvidiaForKernel pkgs_i686.linuxPackages).override { libsOnly = true; kernel = null; }; enabled = nvidia_x11 != null; + + cfg = config.hardware.nvidia; + optimusCfg = cfg.optimus_prime; in { + options = { + hardware.nvidia.modesetting.enable = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable kernel modesetting when using the NVIDIA proprietary driver. + + Enabling this fixes screen tearing when using Optimus via PRIME (see + . This is not enabled + by default because it is not officially supported by NVIDIA and would not + work with SLI. + ''; + }; + + hardware.nvidia.optimus_prime.enable = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Enable NVIDIA Optimus support using the NVIDIA proprietary driver via PRIME. + If enabled, the NVIDIA GPU will be always on and used for all rendering, + while enabling output to displays attached only to the integrated Intel GPU + without a multiplexer. + + Note that this option only has any effect if the "nvidia" driver is specified + in , and it should preferably + be the only driver there. + + If this is enabled, then the bus IDs of the NVIDIA and Intel GPUs have to be + specified ( and + ). + + If you enable this, you may want to also enable kernel modesetting for the + NVIDIA driver () in order + to prevent tearing. + + Note that this configuration will only be successful when a display manager + for which the + option is supported is used; notably, SLiM is not supported. + ''; + }; + + hardware.nvidia.optimus_prime.nvidiaBusId = lib.mkOption { + type = lib.types.string; + default = ""; + example = "PCI:1:0:0"; + description = '' + Bus ID of the NVIDIA GPU. You can find it using lspci; for example if lspci + shows the NVIDIA GPU at "01:00.0", set this option to "PCI:1:0:0". + ''; + }; + + hardware.nvidia.optimus_prime.intelBusId = lib.mkOption { + type = lib.types.string; + default = ""; + example = "PCI:0:2:0"; + description = '' + Bus ID of the Intel GPU. You can find it using lspci; for example if lspci + shows the Intel GPU at "00:02.0", set this option to "PCI:0:2:0". + ''; + }; + }; config = mkIf enabled { assertions = [ @@ -36,15 +100,61 @@ in assertion = config.services.xserver.displayManager.gdm.wayland; message = "NVidia drivers don't support wayland"; } + { + assertion = !optimusCfg.enable || + (optimusCfg.nvidiaBusId != "" && optimusCfg.intelBusId != ""); + message = '' + When NVIDIA Optimus via PRIME is enabled, the GPU bus IDs must configured. + ''; + } ]; - services.xserver.drivers = singleton - { name = "nvidia"; modules = [ nvidia_x11.bin ]; libPath = [ nvidia_x11 ]; }; + # If Optimus/PRIME is enabled, we: + # - Specify the configured NVIDIA GPU bus ID in the Device section for the + # "nvidia" driver. + # - Add the AllowEmptyInitialConfiguration option to the Screen section for the + # "nvidia" driver, in order to allow the X server to start without any outputs. + # - Add a separate Device section for the Intel GPU, using the "modesetting" + # driver and with the configured BusID. + # - Reference that Device section from the ServerLayout section as an inactive + # device. + # - Configure the display manager to run specific `xrandr` commands which will + # configure/enable displays connected to the Intel GPU. - services.xserver.screenSection = + services.xserver.drivers = singleton { + name = "nvidia"; + modules = [ nvidia_x11.bin ]; + libPath = [ nvidia_x11 ]; + deviceSection = optionalString optimusCfg.enable + '' + BusID "${optimusCfg.nvidiaBusId}" + ''; + screenSection = + '' + Option "RandRRotation" "on" + ${optionalString optimusCfg.enable "Option \"AllowEmptyInitialConfiguration\""} + ''; + }; + + services.xserver.extraConfig = optionalString optimusCfg.enable '' - Option "RandRRotation" "on" + Section "Device" + Identifier "nvidia-optimus-intel" + Driver "modesetting" + BusID "${optimusCfg.intelBusId}" + Option "AccelMethod" "none" + EndSection ''; + services.xserver.serverLayoutSection = optionalString optimusCfg.enable + '' + Inactive "nvidia-optimus-intel" + ''; + + services.xserver.displayManager.setupCommands = optionalString optimusCfg.enable '' + # Added by nvidia configuration module for Optimus/PRIME. + ${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource modesetting NVIDIA-0 + ${pkgs.xorg.xrandr}/bin/xrandr --auto + ''; environment.etc."nvidia/nvidia-application-profiles-rc" = mkIf nvidia_x11.useProfiles { source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc"; @@ -62,6 +172,8 @@ in boot.kernelModules = [ "nvidia-uvm" ] ++ lib.optionals config.services.xserver.enable [ "nvidia" "nvidia_modeset" "nvidia_drm" ]; + # If requested enable modesetting via kernel parameter. + boot.kernelParams = optional cfg.modesetting.enable "nvidia-drm.modeset=1"; # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded. services.udev.extraRules = diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index f561c5f8b7a9..f6ee839c2196 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -222,6 +222,17 @@ in description = "List of arguments for the X server."; }; + setupCommands = mkOption { + type = types.lines; + default = ""; + description = '' + Shell commands executed just after the X server has started. + + This option is only effective for display managers for which this feature + is supported; currently these are LightDM, GDM and SDDM. + ''; + }; + sessionCommands = mkOption { type = types.lines; default = ""; diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index a775dd0f0e04..f0089f9dc275 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -7,6 +7,13 @@ let cfg = config.services.xserver.displayManager; gdm = pkgs.gnome3.gdm; + xSessionWrapper = if (cfg.setupCommands == "") then null else + pkgs.writeScript "gdm-x-session-wrapper" '' + #!${pkgs.bash}/bin/bash + ${cfg.setupCommands} + exec "$@" + ''; + in { @@ -112,6 +119,11 @@ in GDM_SESSIONS_DIR = "${cfg.session.desktops}/share/xsessions"; # Find the mouse XCURSOR_PATH = "~/.icons:${pkgs.gnome3.adwaita-icon-theme}/share/icons"; + } // optionalAttrs (xSessionWrapper != null) { + # Make GDM use this wrapper before running the session, which runs the + # configured setupCommands. This relies on a patched GDM which supports + # this environment variable. + GDM_X_SESSION_WRAPPER = "${xSessionWrapper}"; }; execCmd = "exec ${gdm}/bin/gdm"; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 8078b93a7574..ec39d4cd1bfc 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -61,6 +61,12 @@ let ${optionalString hasDefaultUserSession '' user-session=${defaultSessionName} ''} + ${optionalString (dmcfg.setupCommands != "") '' + display-setup-script=${pkgs.writeScript "lightdm-display-setup" '' + #!${pkgs.bash}/bin/bash + ${dmcfg.setupCommands} + ''} + ''} ${cfg.extraSeatDefaults} ''; diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index 1635c0f9acc5..225e6309c9c4 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -20,6 +20,7 @@ let Xsetup = pkgs.writeScript "Xsetup" '' #!/bin/sh ${cfg.setupScript} + ${dmcfg.setupCommands} ''; Xstop = pkgs.writeScript "Xstop" '' @@ -137,7 +138,8 @@ in xrandr --auto ''; description = '' - A script to execute when starting the display server. + A script to execute when starting the display server. DEPRECATED, please + use . ''; }; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 75bfeaac1fa3..297e36311656 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -374,6 +374,12 @@ in description = "Contents of the first Monitor section of the X server configuration file."; }; + extraConfig = mkOption { + type = types.lines; + default = ""; + description = "Additional contents (sections) included in the X server configuration file"; + }; + xrandrHeads = mkOption { default = []; example = [ @@ -754,6 +760,7 @@ in Driver "${driver.driverName or driver.name}" ${if cfg.useGlamor then ''Option "AccelMethod" "glamor"'' else ""} ${cfg.deviceSection} + ${driver.deviceSection or ""} ${xrandrDeviceSection} EndSection @@ -765,6 +772,7 @@ in ''} ${cfg.screenSection} + ${driver.screenSection or ""} ${optionalString (cfg.defaultDepth != 0) '' DefaultDepth ${toString cfg.defaultDepth} @@ -794,6 +802,8 @@ in '')} ${xrandrMonitorSections} + + ${cfg.extraConfig} ''; fonts.enableDefaultFonts = mkDefault true; diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix index 6c810eb46342..f6049c8bda8c 100644 --- a/pkgs/desktops/gnome-3/core/gdm/default.nix +++ b/pkgs/desktops/gnome-3/core/gdm/default.nix @@ -37,13 +37,27 @@ stdenv.mkDerivation rec { # Disable Access Control because our X does not support FamilyServerInterpreted yet patches = [ + # Change hardcoded paths to nix store paths. (substituteAll { src = ./fix-paths.patch; inherit coreutils plymouth xwayland; }) + + # The following patches implement certain environment variables in GDM which are set by + # the gdm configuration module (nixos/modules/services/x11/display-managers/gdm.nix). + + # Look for session definition files in the directory specified by GDM_SESSIONS_DIR. ./sessions_dir.patch + + # Allow specifying X server arguments with GDM_X_SERVER_EXTRA_ARGS. ./gdm-x-session_extra_args.patch - ./gdm-session-worker_xserver-path.patch + + # Allow specifying a wrapper for running the session command. + ./gdm-x-session_session-wrapper.patch + + # Forwards certain environment variables to the gdm-x-session child process + # to ensure that the above two patches actually work. + ./gdm-session-worker_forward-vars.patch ]; installFlags = [ diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch new file mode 100644 index 000000000000..401b6aea0c28 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch @@ -0,0 +1,31 @@ +diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c +index 9ef4c5b..94da834 100644 +--- a/daemon/gdm-session-worker.c ++++ b/daemon/gdm-session-worker.c +@@ -1515,6 +1515,16 @@ gdm_session_worker_load_env_d (GdmSessionWorker *worker) + g_object_unref (dir); + } + ++static void ++gdm_session_worker_forward_var (GdmSessionWorker *worker, char const *var) ++{ ++ char const *value = g_getenv(var); ++ if (value != NULL) { ++ g_debug ("forwarding %s= %s", var, value); ++ gdm_session_worker_set_environment_variable(worker, var, value); ++ } ++} ++ + static gboolean + gdm_session_worker_accredit_user (GdmSessionWorker *worker, + GError **error) +@@ -1559,6 +1569,9 @@ gdm_session_worker_accredit_user (GdmSessionWorker *worker, + goto out; + } + ++ gdm_session_worker_forward_var(worker, "GDM_X_SERVER_EXTRA_ARGS"); ++ gdm_session_worker_forward_var(worker, "GDM_X_SESSION_WRAPPER"); ++ + gdm_session_worker_update_environment_from_passwd_info (worker, + uid, + gid, diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch deleted file mode 100644 index d020752fef3a..000000000000 --- a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/daemon/gdm-session-worker.c.orig b/daemon/gdm-session-worker.c -index 7bbda49..592691d 100644 ---- a/daemon/gdm-session-worker.c.orig -+++ b/daemon/gdm-session-worker.c -@@ -1557,6 +1557,12 @@ gdm_session_worker_accredit_user (GdmSessionWorker *worker, - goto out; - } - -+ if (g_getenv ("GDM_X_SERVER_EXTRA_ARGS") != NULL) { -+ g_debug ("forwarding GDM_X_SERVER_EXTRA_ARGS= %s", g_getenv("GDM_X_SERVER_EXTRA_ARGS")); -+ gdm_session_worker_set_environment_variable (worker, "GDM_X_SERVER_EXTRA_ARGS", -+ g_getenv("GDM_X_SERVER_EXTRA_ARGS")); -+ } -+ - gdm_session_worker_update_environment_from_passwd_info (worker, - uid, - gid, diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch new file mode 100644 index 000000000000..58481f0730fa --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch @@ -0,0 +1,40 @@ +diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c +index 88fe96f..b1b140a 100644 +--- a/daemon/gdm-x-session.c ++++ b/daemon/gdm-x-session.c +@@ -664,18 +664,34 @@ spawn_session (State *state, + state->session_command, + NULL); + } else { ++ char const *session_wrapper; ++ char *eff_session_command; + int ret; + char **argv; + +- ret = g_shell_parse_argv (state->session_command, ++ session_wrapper = g_getenv("GDM_X_SESSION_WRAPPER"); ++ if (session_wrapper != NULL) { ++ char *quoted_wrapper = g_shell_quote(session_wrapper); ++ eff_session_command = g_strjoin(" ", quoted_wrapper, state->session_command, NULL); ++ g_free(quoted_wrapper); ++ } else { ++ eff_session_command = state->session_command; ++ } ++ ++ ret = g_shell_parse_argv (eff_session_command, + NULL, + &argv, + &error); + ++ if (session_wrapper != NULL) { ++ g_free(eff_session_command); ++ } ++ + if (!ret) { + g_debug ("could not parse session arguments: %s", error->message); + goto out; + } ++ + subprocess = g_subprocess_launcher_spawnv (launcher, + (const char * const *) argv, + &error); From c06f5302f63af92c9ba0e10401f366e0c7bd7d49 Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Mon, 15 Oct 2018 02:09:55 -0400 Subject: [PATCH 085/106] dbeaver: 5.2.1 -> 5.2.2 (#48442) (cherry picked from commit 22c12da8aa6e12e6c92f687dff4b47660bc1b6ee) --- pkgs/applications/misc/dbeaver/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index 681ee5b0bece..412a2e9d4fd0 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { name = "dbeaver-ce-${version}"; - version = "5.2.1"; + version = "5.2.2"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "0zm320cdpypv2s58gcg89mdkir9xpz1824dscfqkmahx89g1ma81"; + sha256 = "1rrj0c7ksvv9irsz9hb4ip30qgmzps4dy1nj4vl8mzzf389xa43n"; }; installPhase = '' From 2334e37f5ae0be9d490701a9d57ee667d3e57b88 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Sun, 7 Oct 2018 16:45:05 +0200 Subject: [PATCH 086/106] haskellPackages.shell-conduit: fix build (cherry picked from commit 096be6d9418e6ead24db1a56738d8a3086c298c5) Reason: the package is broken in NixOS stable. --- pkgs/development/haskell-modules/configuration-common.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 4dc82d02b4b3..18b7784de441 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -103,18 +103,12 @@ self: super: { }; # Fix test trying to access /home directory - shell-conduit = (overrideCabal super.shell-conduit (drv: { + shell-conduit = overrideCabal super.shell-conduit (drv: { postPatch = "sed -i s/home/tmp/ test/Spec.hs"; # the tests for shell-conduit on Darwin illegitimatey assume non-GNU echo # see: https://github.com/psibi/shell-conduit/issues/12 doCheck = !pkgs.stdenv.isDarwin; - })).overrideScope (self: super: { - # shell-conduit doesn't build with conduit 1.3 - # see https://github.com/psibi/shell-conduit/issues/15 - conduit = self.conduit_1_2_13_1; - conduit-extra = self.conduit-extra_1_2_3_2; - resourcet = self.resourcet_1_1_11; }); # https://github.com/froozen/kademlia/issues/2 From 7d19c136e943daf42dbd0b30659ac099d8469365 Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Wed, 10 Oct 2018 14:55:38 +0200 Subject: [PATCH 087/106] pythonPackages.django: 1.11.15 -> 1.11.16 See https://docs.djangoproject.com/en/1.11/releases/1.11.16/ (cherry picked from commit 95a040f9b65ab3624a4d9a82c0fa07b6655f4790) --- pkgs/development/python-modules/django/1_11.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django/1_11.nix b/pkgs/development/python-modules/django/1_11.nix index ba65297dbb9c..c8c9267265d9 100644 --- a/pkgs/development/python-modules/django/1_11.nix +++ b/pkgs/development/python-modules/django/1_11.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "Django"; - version = "1.11.15"; + version = "1.11.16"; disabled = pythonOlder "2.7"; src = fetchurl { url = "http://www.djangoproject.com/m/releases/1.11/${pname}-${version}.tar.gz"; - sha256 = "0h2sl02x2mxr3rl3dy750pzm5kvmx77116fys8rrgw164kc3b0mi"; + sha256 = "14apywfi8mfy50xh07cagp24kx9mlqfzfq4f60klz90ng328q9i9"; }; patches = stdenv.lib.optionals withGdal [ From 145076a41f5c4d327a10b033ddf6fc05b6db0275 Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Wed, 10 Oct 2018 14:57:45 +0200 Subject: [PATCH 088/106] pythonPackages.django_2_1: 2.0.8 -> 2.0.9 See https://docs.djangoproject.com/en/2.0/releases/2.0.9/ (cherry picked from commit cd902644bfae044449de721bedae938119e68534) --- pkgs/development/python-modules/django/2_0.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django/2_0.nix b/pkgs/development/python-modules/django/2_0.nix index 0bfe43a20e18..bf04f5e61197 100644 --- a/pkgs/development/python-modules/django/2_0.nix +++ b/pkgs/development/python-modules/django/2_0.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "Django"; - version = "2.0.8"; + version = "2.0.9"; disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "12z3b9v0zl7w9bm5sl7dpkk5w35ypalizfmnaj9jac41k8vfmbk8"; + sha256 = "0sgx548zp5xf8dajiamdskbrphssiyajhgbw8iza6b68mda4bnfn"; }; patches = stdenv.lib.optionals withGdal [ From c6494972c10b4f6e1d34414e7a726fce991461d2 Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Wed, 10 Oct 2018 14:58:51 +0200 Subject: [PATCH 089/106] pythonPackages.django_2_1: 2.1.1 -> 2.1.2 See https://docs.djangoproject.com/en/2.1/releases/2.1.2/ (cherry picked from commit 50ad0f2cc79a68b2db9d4403eacbd311eedfe38e) --- pkgs/development/python-modules/django/2_1.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django/2_1.nix b/pkgs/development/python-modules/django/2_1.nix index f63822f363ab..f79a7c49ca9b 100644 --- a/pkgs/development/python-modules/django/2_1.nix +++ b/pkgs/development/python-modules/django/2_1.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "Django"; - version = "2.1"; + version = "2.1.2"; disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "0dv184lgp7scq8cr4422rrvkd8npyiqww0zw50ygcim5smw6093z"; + sha256 = "0ibbs76pzy8zd47yviljrp1s66fmbf5b62fixayaznj7pdzavg7g"; }; patches = stdenv.lib.optionals withGdal [ From 3b65a51174d7ddf0e2ead8320c26b58984496c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Gaspard?= Date: Mon, 15 Oct 2018 22:04:47 +0900 Subject: [PATCH 090/106] release-notes/18-09: add licenses marked as unfree (cherry picked from commit 2a2c99673bca1d30d53c530787a10a7d1c5b1de6) --- nixos/doc/manual/release-notes/rl-1809.xml | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-1809.xml b/nixos/doc/manual/release-notes/rl-1809.xml index c5521735428b..0ddf40acbfcc 100644 --- a/nixos/doc/manual/release-notes/rl-1809.xml +++ b/nixos/doc/manual/release-notes/rl-1809.xml @@ -475,6 +475,48 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull' + + + Some licenses that were incorrectly not marked as unfree now are. This is + the case for: + + + + cc-by-nc-sa-20: Creative Commons Attribution Non Commercial Share Alike + 2.0 + + + + + cc-by-nc-sa-25: Creative Commons Attribution Non Commercial Share Alike + 2.5 + + + + + cc-by-nc-sa-30: Creative Commons Attribution Non Commercial Share Alike + 3.0 + + + + + cc-by-nc-sa-40: Creative Commons Attribution Non Commercial Share Alike + 4.0 + + + + + cc-by-nd-30: Creative Commons Attribution-No Derivative Works v3.00 + + + + + msrla: Microsoft Research License Agreement + + + + + The deprecated services.cassandra module has seen a From 13e6a3e41a07c8dd1e859f5bd4fc23d8b93bb205 Mon Sep 17 00:00:00 2001 From: Aaron VonderHaar Date: Wed, 3 Oct 2018 11:41:58 -0700 Subject: [PATCH 091/106] elm-format: 0.8.0 -> 0.8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 67f58eee5ee8d21ccd914fbcde18e1be146dd490) Signed-off-by: Domen Kožar --- pkgs/development/compilers/elm/default.nix | 23 ++++--------------- .../compilers/elm/packages/elm-format.nix | 22 ++++++++++-------- .../elm/packages/tasty-quickcheck.nix | 14 +++++++++++ pkgs/development/compilers/elm/update.sh | 2 -- 4 files changed, 30 insertions(+), 31 deletions(-) create mode 100644 pkgs/development/compilers/elm/packages/tasty-quickcheck.nix diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 692404a19bf6..e9678ddc4ca1 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -107,26 +107,10 @@ let /* - This is not a core Elm package, and it's hosted on GitHub. - To update, run: - - cabal2nix --jailbreak --revision refs/tags/foo http://github.com/avh4/elm-format > packages/elm-format.nix - - where foo is a tag for a new version, for example "0.8.0". + The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo: + `pacakge/nix/build.sh` */ - elm-format = overrideCabal (self.callPackage ./packages/elm-format.nix { }) (drv: { - # https://github.com/avh4/elm-format/issues/529 - patchPhase = '' - cat >Setup.hs < packages/elm.nix -cabal2nix --no-check cabal://indents-0.3.3 > packages/indents.nix -cabal2nix --no-haddock --no-check --jailbreak --revision refs/tags/0.8.0 http://github.com/avh4/elm-format > packages/elm-format.nix From d66a253aad3895ba83ed3196d77b44b2677fe2b9 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Thu, 12 Jul 2018 08:42:52 +0000 Subject: [PATCH 092/106] dwarf-fortress: Support multiple unfuck/dfhack/TWBT versions (cherry picked from commit 4ada74e293212434114ac87a679c1432650f4b40) --- pkgs/games/dwarf-fortress/default.nix | 52 +++++++++++++------ pkgs/games/dwarf-fortress/dfhack/default.nix | 21 ++++++-- pkgs/games/dwarf-fortress/dfhack/dfhack.json | 38 ++++++++++++++ .../dwarf-therapist/dwarf-therapist.in | 26 ++++++++++ .../dwarf-therapist/wrapper.nix | 19 ++++--- pkgs/games/dwarf-fortress/game.nix | 3 -- pkgs/games/dwarf-fortress/lazy-pack.nix | 2 +- pkgs/games/dwarf-fortress/twbt/default.nix | 25 ++++++--- pkgs/games/dwarf-fortress/twbt/twbt.json | 32 ++++++++++++ pkgs/games/dwarf-fortress/unfuck.json | 26 ++++++++++ pkgs/games/dwarf-fortress/unfuck.nix | 32 ++++++------ pkgs/games/dwarf-fortress/wrapper/default.nix | 46 ++++++++-------- 12 files changed, 244 insertions(+), 78 deletions(-) create mode 100644 pkgs/games/dwarf-fortress/dfhack/dfhack.json create mode 100644 pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in create mode 100644 pkgs/games/dwarf-fortress/twbt/twbt.json create mode 100644 pkgs/games/dwarf-fortress/unfuck.json diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index aa4ff210812b..87bcc44b8156 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -5,7 +5,8 @@ # This directory menaces with spikes of Nix code. It is terrifying. # # If this is your first time here, you should probably install the dwarf-fortress-full package, -# for instance with `environment.systempackages = [ pkgs.dwarf-fortress.dwarf-fortress-full ];`. +# for instance with: +# `environment.systemPackages = [ pkgs.dwarf-fortress-packages.dwarf-fortress-full ];` # # You can adjust its settings by using override, or compile your own package by # using the other packages here. Take a look at lazy-pack.nix to get an idea of @@ -24,11 +25,36 @@ let callPackage = pkgs.newScope self; df-games = lib.listToAttrs (map (dfVersion: { - name = "dwarf-fortress_${lib.replaceStrings ["."] ["_"] dfVersion}"; - value = callPackage ./wrapper { - inherit (self) themes; - dwarf-fortress = callPackage ./game.nix { inherit dfVersion; }; - }; + name = "dwarf-fortress_${lib.replaceStrings ["."] ["_"] dfVersion}"; + value = + let + # I can't believe this syntax works. Spikes of Nix code indeed... + dwarf-fortress = callPackage ./game.nix { + inherit dfVersion; + inherit dwarf-fortress-unfuck; + }; + + # unfuck is linux-only right now, we will only use it there. + dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { inherit dfVersion; } + else null; + + twbt = callPackage ./twbt { inherit dfVersion; }; + + dfhack = callPackage ./dfhack { + inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT; + inherit dfVersion; + inherit twbt; + stdenv = gccStdenv; + }; + in + callPackage ./wrapper { + inherit (self) themes; + + dwarf-fortress = dwarf-fortress; + dwarf-fortress-unfuck = dwarf-fortress-unfuck; + twbt = twbt; + dfhack = dfhack; + }; }) (lib.attrNames self.df-hashes)); self = rec { @@ -37,17 +63,8 @@ let dwarf-fortress-full = callPackage ./lazy-pack.nix { }; - dfhack = callPackage ./dfhack { - inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT; - stdenv = gccStdenv; - }; - soundSense = callPackage ./soundsense.nix { }; - # unfuck is linux-only right now, we will only use it there. - dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { } - else null; - dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { inherit (dwarf-fortress) dwarf-fortress; dwarf-therapist = pkgs.qt5.callPackage ./dwarf-therapist { @@ -59,8 +76,9 @@ let legends-browser = callPackage ./legends-browser {}; - twbt = callPackage ./twbt {}; - themes = recurseIntoAttrs (callPackage ./themes { }); + themes = recurseIntoAttrs (callPackage ./themes { + stdenv = stdenvNoCC; + }); # aliases phoebus-theme = themes.phoebus; diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 4a8c84cf92dc..1c88cab02193 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -3,14 +3,25 @@ , enableStoneSense ? false, allegro5, libGLU_combined , enableTWBT ? true, twbt , SDL +, dfVersion }: +with lib; + let - dfVersion = "0.44.12"; - version = "${dfVersion}-r1"; + dfhack-releases = builtins.fromJSON (builtins.readFile ./dfhack.json); + + release = if hasAttr dfVersion dfhack-releases + then getAttr dfVersion dfhack-releases + else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; + + version = release.dfHackRelease; + + warning = if release.prerelease then builtins.trace "[DFHack] Version ${version} is a prerelease. Careful!" + else null; # revision of library/xml submodule - xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd5094"; + xmlRev = release.xmlRev; arch = if stdenv.hostPlatform.system == "x86_64-linux" then "64" @@ -41,8 +52,8 @@ let src = fetchFromGitHub { owner = "DFHack"; repo = "dfhack"; - sha256 = "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy"; - rev = version; + rev = release.dfHackRelease; + sha256 = release.sha256; fetchSubmodules = true; }; diff --git a/pkgs/games/dwarf-fortress/dfhack/dfhack.json b/pkgs/games/dwarf-fortress/dfhack/dfhack.json new file mode 100644 index 000000000000..d1907fb38afb --- /dev/null +++ b/pkgs/games/dwarf-fortress/dfhack/dfhack.json @@ -0,0 +1,38 @@ +{ + "0.43.05": { + "dfHackRelease": "0.43.05-r3.1", + "sha256": "1ds366i0qcfbn62w9qv98lsqcrm38npzgvcr35hf6ihqa6nc6xrl", + "xmlRev": "860a9041a75305609643d465123a4b598140dd7f", + "prerelease": false + }, + "0.44.05": { + "dfHackRelease": "0.44.05-r2", + "sha256": "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9", + "xmlRev": "2794f8a6d7405d4858bac486a0bb17b94740c142", + "prerelease": false + }, + "0.44.09": { + "dfHackRelease": "0.44.09-r1", + "sha256": "1nkfaa43pisbyik5inj5q2hja2vza5lwidg5z02jyh136jm64hwk", + "xmlRev": "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5", + "prerelease": false + }, + "0.44.10": { + "dfHackRelease": "0.44.10-r2", + "sha256": "19bxsghxzw3bilhr8sm4axz7p7z8lrvbdsd1vdjf5zbg04rs866i", + "xmlRev": "321bd48b10c4c3f694cc801a7dee6be392c09b7b", + "prerelease": false + }, + "0.44.11": { + "dfHackRelease": "0.44.11-beta2.1", + "sha256": "1jgwcqg9m1ybv3szgnklp6zfpiw5mswla464dlj2gfi5v82zqbv2", + "xmlRev": "f27ebae6aa8fb12c46217adec5a812cd49a905c8", + "prerelease": true + }, + "0.44.12": { + "dfHackRelease": "0.44.12-r1", + "sha256": "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy", + "xmlRev": "23500e4e9bd1885365d0a2ef1746c321c1dd5094", + "prerelease": false + } +} diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in b/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in new file mode 100644 index 000000000000..77936c430e2b --- /dev/null +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in @@ -0,0 +1,26 @@ +#!@stdenv_shell@ -e + +[ -z "$DT_DIR" ] && DT_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/dwarftherapist" + +install_dir="@install@" +therapist_dir="@therapist@" + +cat <&2 +Using $DT_DIR as Dwarf Therapist overlay directory. +EOF + +update_path() { + local path="$1" + + mkdir -p "$DT_DIR/$(dirname "$path")" + if [ ! -e "$DT_DIR/$path" ] || [ -L "$DT_DIR/$path" ]; then + rm -f "$DT_DIR/$path" + ln -s "$install_dir/share/dwarftherapist/$path" "$DT_DIR/$path" + fi +} + +cd "$install_dir/share/dwarftherapist" +update_path memory_layouts + +QT_QPA_PLATFORM_PLUGIN_PATH="@qt_plugin_path@" \ + exec "$therapist_dir/bin/dwarftherapist" "$@" diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index 322a21ec3ad9..f86ef4bea7ab 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -1,4 +1,4 @@ -{ stdenv, symlinkJoin, dwarf-therapist, dwarf-fortress, makeWrapper }: +{ pkgs, stdenv, symlinkJoin, lib, dwarf-therapist, dwarf-fortress, makeWrapper }: let platformSlug = if stdenv.targetPlatform.is32bit then @@ -7,6 +7,8 @@ let in symlinkJoin { name = "dwarf-therapist-${dwarf-therapist.version}"; + + wrapper = ./dwarf-therapist.in; paths = [ dwarf-therapist ]; @@ -14,13 +16,18 @@ in symlinkJoin { passthru = { inherit dwarf-fortress dwarf-therapist; }; - postBuild = '' - # DwarfTherapist assumes it's run in $out/share/dwarftherapist and - # therefore uses many relative paths. - wrapProgram $out/bin/dwarftherapist \ - --run "cd $out/share/dwarftherapist" + buildCommand = '' + mkdir -p $out/bin ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist + substitute $wrapper $out/bin/dwarftherapist \ + --subst-var-by stdenv_shell ${stdenv.shell} \ + --subst-var-by install $out \ + --subst-var-by therapist ${dwarf-therapist} \ + --subst-var-by qt_plugin_path "${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms" + chmod 755 $out/bin/dwarftherapist + + # Fix up memory layouts rm -rf $out/share/dwarftherapist/memory_layouts/linux mkdir -p $out/share/dwarftherapist/memory_layouts/linux origmd5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8) diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix index 2547bb83f3f5..b5c80a0a56dc 100644 --- a/pkgs/games/dwarf-fortress/game.nix +++ b/pkgs/games/dwarf-fortress/game.nix @@ -42,9 +42,6 @@ let in -assert dwarf-fortress-unfuck != null -> - dwarf-fortress-unfuck.dfVersion == dfVersion; - stdenv.mkDerivation { name = "dwarf-fortress-${dfVersion}"; diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix index 3e0d3dcc6d73..ca7ae4024289 100644 --- a/pkgs/games/dwarf-fortress/lazy-pack.nix +++ b/pkgs/games/dwarf-fortress/lazy-pack.nix @@ -6,7 +6,7 @@ , enableDFHack ? stdenvNoCC.isLinux , enableTWBT ? enableDFHack , enableSoundSense ? true -, enableStoneSense ? false # StoneSense is currently broken. +, enableStoneSense ? true , enableDwarfTherapist ? true, dwarf-therapist , enableLegendsBrowser ? true, legends-browser , theme ? themes.phoebus diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index d90812f5d05e..1bdbddb56de4 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -1,14 +1,28 @@ -{ stdenvNoCC, fetchurl, unzip }: +{ stdenvNoCC, lib, fetchurl, unzip +, dfVersion +}: +with lib; + +let + twbt-releases = builtins.fromJSON (builtins.readFile ./twbt.json); + + release = if hasAttr dfVersion twbt-releases + then getAttr dfVersion twbt-releases + else throw "[TWBT] Unsupported Dwarf Fortress version: ${dfVersion}"; + + warning = if release.prerelease then builtins.trace "[TWBT] Version ${version} is a prerelease. Careful!" + else null; + +in stdenvNoCC.mkDerivation rec { name = "twbt-${version}"; - version = "6.54"; - dfVersion = "0.44.12"; + version = release.twbtRelease; src = fetchurl { url = "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip"; - sha256 = "10gfd6vv0vk4v1r5hjbz7vf1zqys06dsad695gysc7fbcik2dakh"; + sha256 = release.sha256; }; sourceRoot = "."; @@ -24,10 +38,9 @@ stdenvNoCC.mkDerivation rec { cp -a *.png $art/data/art/ ''; - meta = with stdenvNoCC.lib; { description = "A plugin for Dwarf Fortress / DFHack that improves various aspects the game interface."; - maintainers = with maintainers; [ Baughn ]; + maintainers = with maintainers; [ Baughn numinit ]; license = licenses.mit; platforms = platforms.linux; homepage = https://github.com/mifki/df-twbt; diff --git a/pkgs/games/dwarf-fortress/twbt/twbt.json b/pkgs/games/dwarf-fortress/twbt/twbt.json new file mode 100644 index 000000000000..b455ff017fcd --- /dev/null +++ b/pkgs/games/dwarf-fortress/twbt/twbt.json @@ -0,0 +1,32 @@ +{ + "0.43.05": { + "twbtRelease": "6.22", + "sha256": "0di5d38f6jj9smsz0wjcs1zav4zba6hrk8cbn59kwpb1wamsh5c7", + "prerelease": false + }, + "0.44.05": { + "twbtRelease": "6.35", + "sha256": "0qjkgl7dsqzsd7pdq8a5bihhi1wplfkv1id7sj6dp3swjpsfxp8g", + "prerelease": false + }, + "0.44.09": { + "twbtRelease": "6.41", + "sha256": "0nsq15z05pbhqjvw2xqs1a9b1n2ma0aalhc3vh3mi4cd4k7lxh44", + "prerelease": false + }, + "0.44.10": { + "twbtRelease": "6.49", + "sha256": "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz", + "prerelease": false + }, + "0.44.11": { + "twbtRelease": "6.51", + "sha256": "1yclqmarjd97ch054h425a12r8a5ailmflsd7b39cg4qhdr1nii5", + "prerelease": true + }, + "0.44.12": { + "twbtRelease": "6.53", + "sha256": "05qc9x4zm0pamwg7j12j0084dq2sj7825fhd3l0wxfinphzk3was", + "prerelease": false + } +} diff --git a/pkgs/games/dwarf-fortress/unfuck.json b/pkgs/games/dwarf-fortress/unfuck.json new file mode 100644 index 000000000000..f7a4974c575c --- /dev/null +++ b/pkgs/games/dwarf-fortress/unfuck.json @@ -0,0 +1,26 @@ +{ + "0.43.05": { + "unfuckRelease": "0.43.05", + "sha256": "173dyrbxlzqvjf1j3n7vpns4gfjkpyvk9z16430xnmd5m6nda8p2" + }, + "0.44.05": { + "unfuckRelease": "0.44.05", + "sha256": "00yj4l4gazxg4i6fj9rwri6vm17i6bviy2mpkx0z5c0mvsr7s14b" + }, + "0.44.09": { + "unfuckRelease": "0.44.09", + "sha256": "138p0v8z2x47f0fk9k6g75ikw5wb3vxldwv5ggbkf4hhvlw6lvzm" + }, + "0.44.10": { + "unfuckRelease": "0.44.10", + "sha256": "0vb19qx2ibc79j4bgbk9lskb883qfb0815zw1dfz9k7rqwal8mzj" + }, + "0.44.11": { + "unfuckRelease": "0.44.11.1", + "sha256": "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz" + }, + "0.44.12": { + "unfuckRelease": "0.44.12", + "sha256": "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz" + } +} diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index 0c5a81a52f0f..732003118713 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -1,18 +1,27 @@ -{ stdenv, fetchFromGitHub, cmake +{ stdenv, lib, fetchFromGitHub, cmake , libGL, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft , ncurses, glib, gtk2, libsndfile, zlib +, dfVersion }: -let dfVersion = "0.44.12"; in +with lib; + +let + unfuck-releases = builtins.fromJSON (builtins.readFile ./unfuck.json); + + release = if hasAttr dfVersion unfuck-releases + then getAttr dfVersion unfuck-releases + else throw "[unfuck] Unknown Dwarf Fortress version: ${dfVersion}"; +in stdenv.mkDerivation { - name = "dwarf_fortress_unfuck-${dfVersion}"; + name = "dwarf_fortress_unfuck-${release.unfuckRelease}"; src = fetchFromGitHub { owner = "svenstaro"; repo = "dwarf_fortress_unfuck"; - rev = dfVersion; - sha256 = "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz"; + rev = release.unfuckRelease; + sha256 = release.sha256; }; cmakeFlags = [ @@ -20,23 +29,12 @@ stdenv.mkDerivation { "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" ]; - makeFlags = [ - ''CFLAGS="-fkeep-inline-functions"'' - ''CXXFLAGS="-fkeep-inline-functions"'' - ]; - nativeBuildInputs = [ cmake ]; buildInputs = [ libSM SDL SDL_image SDL_ttf glew openalSoft ncurses gtk2 libsndfile zlib libGL ]; - postPatch = '' - substituteInPlace CMakeLists.txt --replace \ - 'set(CMAKE_BUILD_TYPE Release)' \ - 'set(CMAKE_BUILD_TYPE Debug)' - ''; - # Don't strip unused symbols; dfhack hooks into some of them. dontStrip = true; @@ -56,6 +54,6 @@ stdenv.mkDerivation { homepage = https://github.com/svenstaro/dwarf_fortress_unfuck; license = licenses.free; platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; + maintainers = with maintainers; [ abbradar numinit ]; }; } diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 6efe004fa9e8..105143916d10 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -1,4 +1,5 @@ -{ stdenv, lib, buildEnv, dwarf-fortress, substituteAll +{ stdenv, lib, buildEnv, substituteAll +, dwarf-fortress, dwarf-fortress-unfuck , enableDFHack ? false, dfhack , enableSoundSense ? false, soundSense, jdk , enableStoneSense ? false @@ -37,34 +38,12 @@ let paths = themePkg ++ pkgs; pathsToLink = [ "/" "/hack" "/hack/scripts" ]; ignoreCollisions = true; - - postBuild = '' - # De-symlink init.txt - cp $out/data/init/init.txt init.txt - rm $out/data/init/init.txt - mv init.txt $out/data/init/init.txt - '' + lib.optionalString enableDFHack '' - rm $out/hack/symbols.xml - substitute ${dfhack_}/hack/symbols.xml $out/hack/symbols.xml \ - --replace $(cat ${dwarf-fortress}/hash.md5.orig) \ - $(cat ${dwarf-fortress}/hash.md5) - '' + lib.optionalString enableTWBT '' - substituteInPlace $out/data/init/init.txt \ - --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' - '' + '' - substituteInPlace $out/data/init/init.txt \ - --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ - --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ - --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' - ''; }; in stdenv.mkDerivation rec { name = "dwarf-fortress-${dwarf-fortress.dfVersion}"; - compatible = lib.all (x: assert (x.dfVersion == dwarf-fortress.dfVersion); true) pkgs; - dfInit = substituteAll { name = "dwarf-fortress-init"; src = ./dwarf-fortress-init.in; @@ -99,5 +78,26 @@ stdenv.mkDerivation rec { chmod 755 $out/bin/soundsense ''; + postBuild = '' + # De-symlink init.txt + cp $out/data/init/init.txt init.txt + rm $out/data/init/init.txt + mv init.txt $out/data/init/init.txt + '' + lib.optionalString enableDFHack '' + rm $out/hack/symbols.xml + echo "[$out/hack/symbols.xml] $(cat ${dwarf-fortress}/hash.md5.orig) => $(cat ${dwarf-fortress}/hash.md5)" + substitute ${dfhack_}/hack/symbols.xml $out/hack/symbols.xml \ + --replace $(cat ${dwarf-fortress}/hash.md5.orig) \ + $(cat ${dwarf-fortress}/hash.md5) + '' + lib.optionalString enableTWBT '' + substituteInPlace $out/data/init/init.txt \ + --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' + '' + '' + substituteInPlace $out/data/init/init.txt \ + --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ + --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ + --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' + ''; + preferLocalBuild = true; } From 5f563479b26f1c3ebfcacea69485a9d6ed782e6e Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 15 Jul 2018 03:58:37 +0000 Subject: [PATCH 093/106] Fix dfhack's Dwarf Fortress MD5 in the correct environment (cherry picked from commit f14d3b4795c173f5ff353031b8d32afab7090ab9) --- .../dwarf-therapist/wrapper.nix | 18 ++++--- pkgs/games/dwarf-fortress/wrapper/default.nix | 54 +++++++++++-------- 2 files changed, 45 insertions(+), 27 deletions(-) diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index f86ef4bea7ab..6e3a13692a72 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -30,11 +30,17 @@ in symlinkJoin { # Fix up memory layouts rm -rf $out/share/dwarftherapist/memory_layouts/linux mkdir -p $out/share/dwarftherapist/memory_layouts/linux - origmd5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8) - patchedmd5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8) - substitute \ - ${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile} \ - $out/share/dwarftherapist/memory_layouts/${inifile} \ - --replace "$origmd5" "$patchedmd5" + orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8) + patched_md5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8) + input_file="${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile}" + output_file="$out/share/dwarftherapist/memory_layouts/${inifile}" + + echo "[Dwarf Therapist Wrapper] Fixing Dwarf Fortress MD5 prefix:" + echo " Input: $input_file" + echo " Search: $orig_md5" + echo " Output: $output_file" + echo " Replace: $patched_md5" + + substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5" ''; } diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 105143916d10..33523270b19d 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -37,6 +37,39 @@ let paths = themePkg ++ pkgs; pathsToLink = [ "/" "/hack" "/hack/scripts" ]; + + postBuild = '' + # De-symlink init.txt + cp $out/data/init/init.txt init.txt + rm -f $out/data/init/init.txt + mv init.txt $out/data/init/init.txt + '' + lib.optionalString enableDFHack '' + # De-symlink symbols.xml + rm $out/hack/symbols.xml + + # Patch the MD5 + orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig") + patched_md5=$(cat "${dwarf-fortress}/hash.md5") + input_file="${dfhack_}/hack/symbols.xml" + output_file="$out/hack/symbols.xml" + + echo "[DFHack Wrapper] Fixing Dwarf Fortress MD5:" + echo " Input: $input_file" + echo " Search: $orig_md5" + echo " Output: $output_file" + echo " Replace: $patched_md5" + + substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5" + '' + lib.optionalString enableTWBT '' + substituteInPlace $out/data/init/init.txt \ + --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' + '' + '' + substituteInPlace $out/data/init/init.txt \ + --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ + --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ + --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' + ''; + ignoreCollisions = true; }; in @@ -78,26 +111,5 @@ stdenv.mkDerivation rec { chmod 755 $out/bin/soundsense ''; - postBuild = '' - # De-symlink init.txt - cp $out/data/init/init.txt init.txt - rm $out/data/init/init.txt - mv init.txt $out/data/init/init.txt - '' + lib.optionalString enableDFHack '' - rm $out/hack/symbols.xml - echo "[$out/hack/symbols.xml] $(cat ${dwarf-fortress}/hash.md5.orig) => $(cat ${dwarf-fortress}/hash.md5)" - substitute ${dfhack_}/hack/symbols.xml $out/hack/symbols.xml \ - --replace $(cat ${dwarf-fortress}/hash.md5.orig) \ - $(cat ${dwarf-fortress}/hash.md5) - '' + lib.optionalString enableTWBT '' - substituteInPlace $out/data/init/init.txt \ - --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' - '' + '' - substituteInPlace $out/data/init/init.txt \ - --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ - --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ - --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' - ''; - preferLocalBuild = true; } From aa12b850568a03742fe33de71eb3a4ac2c31060f Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 15 Jul 2018 05:38:30 +0000 Subject: [PATCH 094/106] Let the user override dfVersion in dwarf-fortress-full (cherry picked from commit 7a5521537a1715ac7f7f5e420cef865304383b82) --- pkgs/games/dwarf-fortress/default.nix | 47 +++++++++++++++++++------ pkgs/games/dwarf-fortress/lazy-pack.nix | 17 ++++++--- 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 87bcc44b8156..1ee33fb27f36 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -6,26 +6,48 @@ # # If this is your first time here, you should probably install the dwarf-fortress-full package, # for instance with: -# `environment.systemPackages = [ pkgs.dwarf-fortress-packages.dwarf-fortress-full ];` +# +# environment.systemPackages = [ pkgs.dwarf-fortress-packages.dwarf-fortress-full ]; # # You can adjust its settings by using override, or compile your own package by -# using the other packages here. Take a look at lazy-pack.nix to get an idea of -# how. +# using the other packages here. +# +# For example, you can enable the FPS indicator, disable the intro, pick a +# theme other than phoebus (the default for dwarf-fortress-full), _and_ use +# an older version with something like: +# +# environment.systemPackages = [ +# (pkgs.dwarf-fortress-packages.dwarf-fortress-full.override { +# dfVersion = "0.44.11"; +# theme = "cla"; +# enableIntro = false; +# enableFPS = true; +# }) +# ] +# +# Take a look at lazy-pack.nix to see all the other options. # # You will find the configuration files in ~/.local/share/df_linux/data/init. If # you un-symlink them and edit, then the scripts will avoid overwriting your # changes on later launches, but consider extending the wrapper with your # desired options instead. -# -# Although both dfhack and dwarf therapist are included in the lazy pack, you -# can only use one at a time. DFHack does have therapist-like features, so this -# may or may not be a problem. + +with lib; let callPackage = pkgs.newScope self; + # The latest Dwarf Fortress version. Maintainers: when a new version comes + # out, ensure that (unfuck|dfhack|twbt) are all up to date before changing + # this. + latestVersion = "0.44.12"; + + # Converts a version to a package name. + versionToName = version: "dwarf-fortress_${lib.replaceStrings ["."] ["_"] version}"; + + # A map of names to each Dwarf Fortress package we know about. df-games = lib.listToAttrs (map (dfVersion: { - name = "dwarf-fortress_${lib.replaceStrings ["."] ["_"] dfVersion}"; + name = versionToName dfVersion; value = let # I can't believe this syntax works. Spikes of Nix code indeed... @@ -59,9 +81,14 @@ let self = rec { df-hashes = builtins.fromJSON (builtins.readFile ./game.json); - dwarf-fortress = df-games.dwarf-fortress_0_44_12; + + dwarf-fortress = getAttr (versionToName latestVersion) df-games; - dwarf-fortress-full = callPackage ./lazy-pack.nix { }; + dwarf-fortress-full = callPackage ./lazy-pack.nix { + inherit versionToName; + inherit latestVersion; + inherit df-games; + }; soundSense = callPackage ./soundsense.nix { }; diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix index ca7ae4024289..a05ea49ce814 100644 --- a/pkgs/games/dwarf-fortress/lazy-pack.nix +++ b/pkgs/games/dwarf-fortress/lazy-pack.nix @@ -1,8 +1,9 @@ -{ stdenvNoCC, lib, buildEnv -, dwarf-fortress, themes +{ stdenvNoCC, lib, buildEnv, callPackage +, df-games, themes, latestVersion, versionToName +, dfVersion ? latestVersion # This package should, at any given time, provide an opinionated "optimal" # DF experience. It's the equivalent of the Lazy Newbie Pack, that is, and - # should contain every utility available. + # should contain every utility available unless you disable them. , enableDFHack ? stdenvNoCC.isLinux , enableTWBT ? enableDFHack , enableSoundSense ? true @@ -16,6 +17,14 @@ , enableFPS ? false }: +with lib; + +let + dfGame = versionToName dfVersion; + dwarf-fortress = if hasAttr dfGame df-games + then getAttr dfGame df-games + else throw "Unknown Dwarf Fortress version: ${dfVersion}"; +in buildEnv { name = "dwarf-fortress-full"; paths = [ @@ -28,7 +37,7 @@ buildEnv { meta = with stdenvNoCC.lib; { description = "An opinionated wrapper for Dwarf Fortress"; - maintainers = with maintainers; [ Baughn ]; + maintainers = with maintainers; [ Baughn numinit ]; license = licenses.mit; platforms = platforms.all; homepage = https://github.com/NixOS/nixpkgs/; From 99b1a44ab3e66dfdac76676fbe31fb240d8e7e12 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 15 Jul 2018 06:41:27 +0000 Subject: [PATCH 095/106] Therapist needs to depend on the DF version, since it uses its MD5 (cherry picked from commit fe847fcc929b824596aa049b08f06c8af9519a68) --- pkgs/games/dwarf-fortress/default.nix | 36 +++++++++---------- pkgs/games/dwarf-fortress/lazy-pack.nix | 3 +- pkgs/games/dwarf-fortress/wrapper/default.nix | 3 +- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 1ee33fb27f36..88a6d72bc485 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -64,10 +64,18 @@ let dfhack = callPackage ./dfhack { inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT; - inherit dfVersion; - inherit twbt; + inherit dfVersion twbt; stdenv = gccStdenv; }; + + dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { + inherit dwarf-fortress; + dwarf-therapist = pkgs.qt5.callPackage ./dwarf-therapist { + texlive = pkgs.texlive.combine { + inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem; + }; + }; + }; in callPackage ./wrapper { inherit (self) themes; @@ -76,41 +84,33 @@ let dwarf-fortress-unfuck = dwarf-fortress-unfuck; twbt = twbt; dfhack = dfhack; + dwarf-therapist = dwarf-therapist; }; }) (lib.attrNames self.df-hashes)); self = rec { df-hashes = builtins.fromJSON (builtins.readFile ./game.json); - + + # Aliases for the latest Dwarf Fortress and the selected Therapist install dwarf-fortress = getAttr (versionToName latestVersion) df-games; + dwarf-therapist = dwarf-fortress.dwarf-therapist; + dwarf-fortress-original = dwarf-fortress.dwarf-fortress; dwarf-fortress-full = callPackage ./lazy-pack.nix { - inherit versionToName; - inherit latestVersion; - inherit df-games; + inherit df-games versionToName latestVersion; }; - + soundSense = callPackage ./soundsense.nix { }; - dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { - inherit (dwarf-fortress) dwarf-fortress; - dwarf-therapist = pkgs.qt5.callPackage ./dwarf-therapist { - texlive = pkgs.texlive.combine { - inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem; - }; - }; - }; - legends-browser = callPackage ./legends-browser {}; themes = recurseIntoAttrs (callPackage ./themes { stdenv = stdenvNoCC; }); - # aliases + # Theme aliases phoebus-theme = themes.phoebus; cla-theme = themes.cla; - dwarf-fortress-original = dwarf-fortress.dwarf-fortress; }; in self // df-games diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix index a05ea49ce814..3a81dcc9c931 100644 --- a/pkgs/games/dwarf-fortress/lazy-pack.nix +++ b/pkgs/games/dwarf-fortress/lazy-pack.nix @@ -8,7 +8,7 @@ , enableTWBT ? enableDFHack , enableSoundSense ? true , enableStoneSense ? true -, enableDwarfTherapist ? true, dwarf-therapist +, enableDwarfTherapist ? true , enableLegendsBrowser ? true, legends-browser , theme ? themes.phoebus # General config options: @@ -24,6 +24,7 @@ let dwarf-fortress = if hasAttr dfGame df-games then getAttr dfGame df-games else throw "Unknown Dwarf Fortress version: ${dfVersion}"; + dwarf-therapist = dwarf-fortress.dwarf-therapist; in buildEnv { name = "dwarf-fortress-full"; diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 33523270b19d..8d9f06ffe143 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -1,5 +1,6 @@ { stdenv, lib, buildEnv, substituteAll , dwarf-fortress, dwarf-fortress-unfuck +, dwarf-therapist , enableDFHack ? false, dfhack , enableSoundSense ? false, soundSense, jdk , enableStoneSense ? false @@ -89,7 +90,7 @@ stdenv.mkDerivation rec { runDFHack = ./dfhack.in; runSoundSense = ./soundSense.in; - passthru = { inherit dwarf-fortress; }; + passthru = { inherit dwarf-fortress dwarf-therapist; }; buildCommand = '' mkdir -p $out/bin From 811d52713e717e768816eb1c8c1a39ea3154c3a7 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 15 Jul 2018 07:02:50 +0000 Subject: [PATCH 096/106] Fix dangling DFHack "Git:" version text (cherry picked from commit 870f05c975d95e9f05e0e2de3b039e4eef08d6c5) --- pkgs/games/dwarf-fortress/dfhack/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 1c88cab02193..5dcdeda7ba28 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -32,6 +32,10 @@ let #! ${stdenv.shell} if [ "$*" = "describe --tags --long" ]; then echo "${version}-unknown" + elif [ "$*" = "describe --tags --abbrev=8 --long" ]; then + echo "${version}-unknown" + elif [ "$*" = "describe --tags --abbrev=8 --exact-match" ]; then + echo "${version}" elif [ "$*" = "rev-parse HEAD" ]; then if [ "$(dirname "$(pwd)")" = "xml" ]; then echo "${xmlRev}" From 982080d18ba12d3adfaf0b9f003f7dfbe4ccc285 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 15 Jul 2018 07:34:26 +0000 Subject: [PATCH 097/106] Use stdenv.mkDerivation for Therapist wrapper (cherry picked from commit 5f1013d87576f89d391670e17725a897204a6cb9) --- pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index 6e3a13692a72..071ab2af0c5c 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -5,7 +5,9 @@ let "linux32" else "linux64"; inifile = "linux/v0.${dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}_${platformSlug}.ini"; -in symlinkJoin { +in + +stdenv.mkDerivation rec { name = "dwarf-therapist-${dwarf-therapist.version}"; wrapper = ./dwarf-therapist.in; @@ -43,4 +45,6 @@ in symlinkJoin { substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5" ''; + + preferLocalBuild = true; } From 0f3b98a39cf7f196084e5881923a6569ce996109 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 9 Sep 2018 07:03:53 +0000 Subject: [PATCH 098/106] Update twbt to 6.54 (cherry picked from commit 2cd2571edd0fef223e65d9039059871e3ab61d1c) --- pkgs/games/dwarf-fortress/twbt/twbt.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/games/dwarf-fortress/twbt/twbt.json b/pkgs/games/dwarf-fortress/twbt/twbt.json index b455ff017fcd..f7de1c14e6b6 100644 --- a/pkgs/games/dwarf-fortress/twbt/twbt.json +++ b/pkgs/games/dwarf-fortress/twbt/twbt.json @@ -25,8 +25,8 @@ "prerelease": true }, "0.44.12": { - "twbtRelease": "6.53", - "sha256": "05qc9x4zm0pamwg7j12j0084dq2sj7825fhd3l0wxfinphzk3was", + "twbtRelease": "6.54", + "sha256": "10gfd6vv0vk4v1r5hjbz7vf1zqys06dsad695gysc7fbcik2dakh", "prerelease": false } } From 35beccebbff9b11c88c6673bd042b5b778dca5c3 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Sun, 9 Sep 2018 07:12:36 +0000 Subject: [PATCH 099/106] Inline JSON files (cherry picked from commit 213b5457fc0a343d71c9ee1a84ea3722b3b05388) --- pkgs/games/dwarf-fortress/dfhack/default.nix | 39 +++++++++++++++++++- pkgs/games/dwarf-fortress/dfhack/dfhack.json | 38 ------------------- pkgs/games/dwarf-fortress/themes/default.nix | 2 +- pkgs/games/dwarf-fortress/twbt/default.nix | 33 ++++++++++++++++- pkgs/games/dwarf-fortress/twbt/twbt.json | 32 ---------------- pkgs/games/dwarf-fortress/unfuck.json | 26 ------------- pkgs/games/dwarf-fortress/unfuck.nix | 27 +++++++++++++- 7 files changed, 97 insertions(+), 100 deletions(-) delete mode 100644 pkgs/games/dwarf-fortress/dfhack/dfhack.json delete mode 100644 pkgs/games/dwarf-fortress/twbt/twbt.json delete mode 100644 pkgs/games/dwarf-fortress/unfuck.json diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 5dcdeda7ba28..d65bdab84911 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -9,7 +9,44 @@ with lib; let - dfhack-releases = builtins.fromJSON (builtins.readFile ./dfhack.json); + dfhack-releases = { + "0.43.05" = { + dfHackRelease = "0.43.05-r3.1"; + sha256 = "1ds366i0qcfbn62w9qv98lsqcrm38npzgvcr35hf6ihqa6nc6xrl"; + xmlRev = "860a9041a75305609643d465123a4b598140dd7f"; + prerelease = false; + }; + "0.44.05" = { + dfHackRelease = "0.44.05-r2"; + sha256 = "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9"; + xmlRev = "2794f8a6d7405d4858bac486a0bb17b94740c142"; + prerelease = false; + }; + "0.44.09" = { + dfHackRelease = "0.44.09-r1"; + sha256 = "1nkfaa43pisbyik5inj5q2hja2vza5lwidg5z02jyh136jm64hwk"; + xmlRev = "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5"; + prerelease = false; + }; + "0.44.10" = { + dfHackRelease = "0.44.10-r2"; + sha256 = "19bxsghxzw3bilhr8sm4axz7p7z8lrvbdsd1vdjf5zbg04rs866i"; + xmlRev = "321bd48b10c4c3f694cc801a7dee6be392c09b7b"; + prerelease = false; + }; + "0.44.11" = { + dfHackRelease = "0.44.11-beta2.1"; + sha256 = "1jgwcqg9m1ybv3szgnklp6zfpiw5mswla464dlj2gfi5v82zqbv2"; + xmlRev = "f27ebae6aa8fb12c46217adec5a812cd49a905c8"; + prerelease = true; + }; + "0.44.12" = { + dfHackRelease = "0.44.12-r1"; + sha256 = "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy"; + xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd5094"; + prerelease = false; + }; + }; release = if hasAttr dfVersion dfhack-releases then getAttr dfVersion dfhack-releases diff --git a/pkgs/games/dwarf-fortress/dfhack/dfhack.json b/pkgs/games/dwarf-fortress/dfhack/dfhack.json deleted file mode 100644 index d1907fb38afb..000000000000 --- a/pkgs/games/dwarf-fortress/dfhack/dfhack.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "0.43.05": { - "dfHackRelease": "0.43.05-r3.1", - "sha256": "1ds366i0qcfbn62w9qv98lsqcrm38npzgvcr35hf6ihqa6nc6xrl", - "xmlRev": "860a9041a75305609643d465123a4b598140dd7f", - "prerelease": false - }, - "0.44.05": { - "dfHackRelease": "0.44.05-r2", - "sha256": "1cwifdhi48a976xc472nf6q2k0ibwqffil5a4llcymcxdbgxdcc9", - "xmlRev": "2794f8a6d7405d4858bac486a0bb17b94740c142", - "prerelease": false - }, - "0.44.09": { - "dfHackRelease": "0.44.09-r1", - "sha256": "1nkfaa43pisbyik5inj5q2hja2vza5lwidg5z02jyh136jm64hwk", - "xmlRev": "3c0bf63674d5430deadaf7befaec42f0ec1e8bc5", - "prerelease": false - }, - "0.44.10": { - "dfHackRelease": "0.44.10-r2", - "sha256": "19bxsghxzw3bilhr8sm4axz7p7z8lrvbdsd1vdjf5zbg04rs866i", - "xmlRev": "321bd48b10c4c3f694cc801a7dee6be392c09b7b", - "prerelease": false - }, - "0.44.11": { - "dfHackRelease": "0.44.11-beta2.1", - "sha256": "1jgwcqg9m1ybv3szgnklp6zfpiw5mswla464dlj2gfi5v82zqbv2", - "xmlRev": "f27ebae6aa8fb12c46217adec5a812cd49a905c8", - "prerelease": true - }, - "0.44.12": { - "dfHackRelease": "0.44.12-r1", - "sha256": "0j03lq6j6w378z6cvm7jspxc7hhrqm8jaszlq0mzfvap0k13fgyy", - "xmlRev": "23500e4e9bd1885365d0a2ef1746c321c1dd5094", - "prerelease": false - } -} diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix index 0b8eb23a7b9d..feb4782d7c32 100644 --- a/pkgs/games/dwarf-fortress/themes/default.nix +++ b/pkgs/games/dwarf-fortress/themes/default.nix @@ -1,4 +1,4 @@ -{lib, fetchFromGitHub}: +{lib, fetchFromGitHub, ...}: with builtins; diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index 1bdbddb56de4..7c80c1012462 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -5,7 +5,38 @@ with lib; let - twbt-releases = builtins.fromJSON (builtins.readFile ./twbt.json); + twbt-releases = { + "0.43.05" = { + twbtRelease = "6.22"; + sha256 = "0di5d38f6jj9smsz0wjcs1zav4zba6hrk8cbn59kwpb1wamsh5c7"; + prerelease = false; + }; + "0.44.05" = { + twbtRelease = "6.35"; + sha256 = "0qjkgl7dsqzsd7pdq8a5bihhi1wplfkv1id7sj6dp3swjpsfxp8g"; + prerelease = false; + }; + "0.44.09" = { + twbtRelease = "6.41"; + sha256 = "0nsq15z05pbhqjvw2xqs1a9b1n2ma0aalhc3vh3mi4cd4k7lxh44"; + prerelease = false; + }; + "0.44.10" = { + twbtRelease = "6.49"; + sha256 = "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz"; + prerelease = false; + }; + "0.44.11" = { + twbtRelease = "6.51"; + sha256 = "1yclqmarjd97ch054h425a12r8a5ailmflsd7b39cg4qhdr1nii5"; + prerelease = true; + }; + "0.44.12" = { + twbtRelease = "6.54"; + sha256 = "10gfd6vv0vk4v1r5hjbz7vf1zqys06dsad695gysc7fbcik2dakh"; + prerelease = false; + }; + }; release = if hasAttr dfVersion twbt-releases then getAttr dfVersion twbt-releases diff --git a/pkgs/games/dwarf-fortress/twbt/twbt.json b/pkgs/games/dwarf-fortress/twbt/twbt.json deleted file mode 100644 index f7de1c14e6b6..000000000000 --- a/pkgs/games/dwarf-fortress/twbt/twbt.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "0.43.05": { - "twbtRelease": "6.22", - "sha256": "0di5d38f6jj9smsz0wjcs1zav4zba6hrk8cbn59kwpb1wamsh5c7", - "prerelease": false - }, - "0.44.05": { - "twbtRelease": "6.35", - "sha256": "0qjkgl7dsqzsd7pdq8a5bihhi1wplfkv1id7sj6dp3swjpsfxp8g", - "prerelease": false - }, - "0.44.09": { - "twbtRelease": "6.41", - "sha256": "0nsq15z05pbhqjvw2xqs1a9b1n2ma0aalhc3vh3mi4cd4k7lxh44", - "prerelease": false - }, - "0.44.10": { - "twbtRelease": "6.49", - "sha256": "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz", - "prerelease": false - }, - "0.44.11": { - "twbtRelease": "6.51", - "sha256": "1yclqmarjd97ch054h425a12r8a5ailmflsd7b39cg4qhdr1nii5", - "prerelease": true - }, - "0.44.12": { - "twbtRelease": "6.54", - "sha256": "10gfd6vv0vk4v1r5hjbz7vf1zqys06dsad695gysc7fbcik2dakh", - "prerelease": false - } -} diff --git a/pkgs/games/dwarf-fortress/unfuck.json b/pkgs/games/dwarf-fortress/unfuck.json deleted file mode 100644 index f7a4974c575c..000000000000 --- a/pkgs/games/dwarf-fortress/unfuck.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "0.43.05": { - "unfuckRelease": "0.43.05", - "sha256": "173dyrbxlzqvjf1j3n7vpns4gfjkpyvk9z16430xnmd5m6nda8p2" - }, - "0.44.05": { - "unfuckRelease": "0.44.05", - "sha256": "00yj4l4gazxg4i6fj9rwri6vm17i6bviy2mpkx0z5c0mvsr7s14b" - }, - "0.44.09": { - "unfuckRelease": "0.44.09", - "sha256": "138p0v8z2x47f0fk9k6g75ikw5wb3vxldwv5ggbkf4hhvlw6lvzm" - }, - "0.44.10": { - "unfuckRelease": "0.44.10", - "sha256": "0vb19qx2ibc79j4bgbk9lskb883qfb0815zw1dfz9k7rqwal8mzj" - }, - "0.44.11": { - "unfuckRelease": "0.44.11.1", - "sha256": "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz" - }, - "0.44.12": { - "unfuckRelease": "0.44.12", - "sha256": "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz" - } -} diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index 732003118713..c4d01b3ff392 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -7,7 +7,32 @@ with lib; let - unfuck-releases = builtins.fromJSON (builtins.readFile ./unfuck.json); + unfuck-releases = { + "0.43.05" = { + unfuckRelease = "0.43.05"; + sha256 = "173dyrbxlzqvjf1j3n7vpns4gfjkpyvk9z16430xnmd5m6nda8p2"; + }; + "0.44.05" = { + unfuckRelease = "0.44.05"; + sha256 = "00yj4l4gazxg4i6fj9rwri6vm17i6bviy2mpkx0z5c0mvsr7s14b"; + }; + "0.44.09" = { + unfuckRelease = "0.44.09"; + sha256 = "138p0v8z2x47f0fk9k6g75ikw5wb3vxldwv5ggbkf4hhvlw6lvzm"; + }; + "0.44.10" = { + unfuckRelease = "0.44.10"; + sha256 = "0vb19qx2ibc79j4bgbk9lskb883qfb0815zw1dfz9k7rqwal8mzj"; + }; + "0.44.11" = { + unfuckRelease = "0.44.11.1"; + sha256 = "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz"; + }; + "0.44.12" = { + unfuckRelease = "0.44.12"; + sha256 = "1kszkb1d1vll8p04ja41nangsaxb5lv4p3xh2jhmsmipfixw7nvz"; + }; + }; release = if hasAttr dfVersion unfuck-releases then getAttr dfVersion unfuck-releases From 12847b904380e5220d8259fac150ddaef1b1ca35 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 8 Oct 2018 22:21:09 +0200 Subject: [PATCH 100/106] dwarf-fortress: fix build error (cherry picked from commit 0d57159eca8f3bfc2d009da57a253298d127d0e4) --- pkgs/games/dwarf-fortress/wrapper/default.nix | 65 +++++++++---------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 8d9f06ffe143..058bb5f72ae6 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildEnv, substituteAll +{ stdenv, lib, buildEnv, substituteAll, runCommand , dwarf-fortress, dwarf-fortress-unfuck , dwarf-therapist , enableDFHack ? false, dfhack @@ -33,44 +33,41 @@ let ++ lib.optional enableTWBT twbt.art ++ [ dwarf-fortress ]; + fixup = lib.singleton (runCommand "fixup" {} '' + mkdir -p $out/data/init + cp ${dwarf-fortress}/data/init/init.txt $out/data/init/init.txt + '' + lib.optionalString enableDFHack '' + mkdir -p $out/hack + + # Patch the MD5 + orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig") + patched_md5=$(cat "${dwarf-fortress}/hash.md5") + input_file="${dfhack_}/hack/symbols.xml" + output_file="$out/hack/symbols.xml" + + echo "[DFHack Wrapper] Fixing Dwarf Fortress MD5:" + echo " Input: $input_file" + echo " Search: $orig_md5" + echo " Output: $output_file" + echo " Replace: $patched_md5" + + substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5" + '' + lib.optionalString enableTWBT '' + substituteInPlace $out/data/init/init.txt \ + --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' + '' + '' + substituteInPlace $out/data/init/init.txt \ + --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ + --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ + --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' + ''); + env = buildEnv { name = "dwarf-fortress-env-${dwarf-fortress.dfVersion}"; - paths = themePkg ++ pkgs; + paths = fixup ++ themePkg ++ pkgs; pathsToLink = [ "/" "/hack" "/hack/scripts" ]; - postBuild = '' - # De-symlink init.txt - cp $out/data/init/init.txt init.txt - rm -f $out/data/init/init.txt - mv init.txt $out/data/init/init.txt - '' + lib.optionalString enableDFHack '' - # De-symlink symbols.xml - rm $out/hack/symbols.xml - - # Patch the MD5 - orig_md5=$(cat "${dwarf-fortress}/hash.md5.orig") - patched_md5=$(cat "${dwarf-fortress}/hash.md5") - input_file="${dfhack_}/hack/symbols.xml" - output_file="$out/hack/symbols.xml" - - echo "[DFHack Wrapper] Fixing Dwarf Fortress MD5:" - echo " Input: $input_file" - echo " Search: $orig_md5" - echo " Output: $output_file" - echo " Replace: $patched_md5" - - substitute "$input_file" "$output_file" --replace "$orig_md5" "$patched_md5" - '' + lib.optionalString enableTWBT '' - substituteInPlace $out/data/init/init.txt \ - --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' - '' + '' - substituteInPlace $out/data/init/init.txt \ - --replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \ - --replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \ - --replace '[FPS:NO]' '[FPS:${unBool enableFPS}]' - ''; - ignoreCollisions = true; }; in From 38f5b076d77ce204a237a5dc9238c3586e607707 Mon Sep 17 00:00:00 2001 From: Florian Jacob Date: Tue, 9 Oct 2018 23:56:26 +0200 Subject: [PATCH 101/106] gitea: 1.5.1 -> 1.5.2 (cherry picked from commit 0a5c7cf512fcefb4b337186f0aee69ae8dd1df2c) --- .../version-management/gitea/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix index c6eb563155f6..58cfa1862604 100644 --- a/pkgs/applications/version-management/gitea/default.nix +++ b/pkgs/applications/version-management/gitea/default.nix @@ -7,13 +7,21 @@ with stdenv.lib; buildGoPackage rec { name = "gitea-${version}"; - version = "1.5.1"; + version = "1.5.2"; src = fetchFromGitHub { owner = "go-gitea"; repo = "gitea"; rev = "v${version}"; - sha256 = "06h6v9py35mm0xk9l8xrq02vvr5vzl15gfbw9qqvpn8kiamkn53r"; + sha256 = "168pbndlh7c148p8wzkd39kd7idiba9zw7v0alp9zqcqzzayaydj"; + # Required to generate the same checksum on MacOS due to unicode encoding differences + # More information: https://github.com/NixOS/nixpkgs/pull/48128 + extraPostFetch = '' + rm -rf $out/integrations + rm -rf $out/vendor/github.com/Unknown/cae/tz/testdata + rm -rf $out/vendor/github.com/Unknown/cae/zip/testdata + rm -rf $out/vendor/gopkg.in/macaron.v1/fixtures + ''; }; patches = [ ./static-root-path.patch ]; From f935d5ba86f2bbd33e7c95e6c9dfb4cadd2dc5a4 Mon Sep 17 00:00:00 2001 From: "Wael M. Nasreddine" Date: Sat, 13 Oct 2018 20:10:21 -0700 Subject: [PATCH 102/106] easyrsa: add support for darwin (cherry picked from commit 1828799f471a9d57392388215f9b80fba28ea13b) --- pkgs/tools/networking/easyrsa/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix index fcc6c1d86bdf..8205bddc7fe0 100644 --- a/pkgs/tools/networking/easyrsa/default.nix +++ b/pkgs/tools/networking/easyrsa/default.nix @@ -35,6 +35,6 @@ in stdenv.mkDerivation rec { homepage = https://openvpn.net/; license = licenses.gpl2; maintainers = [ maintainers.offline ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } From b5380ae73637194d810a1f7c4dc438c2f845a5ae Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 15 Oct 2018 21:43:16 +0200 Subject: [PATCH 103/106] ec2-amis.nix: Add 18.09 images (cherry picked from commit 47dfe25e1b17cd405b81052ffcdab6ca92b467fa) --- nixos/modules/virtualisation/ec2-amis.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix index 76facac39fc6..aaea06bb9a63 100644 --- a/nixos/modules/virtualisation/ec2-amis.nix +++ b/nixos/modules/virtualisation/ec2-amis.nix @@ -257,5 +257,22 @@ let self = { "18.03".sa-east-1.hvm-ebs = "ami-163e1f7a"; "18.03".ap-south-1.hvm-ebs = "ami-6a390b05"; - latest = self."18.03"; + # 18.09.910.c15e342304a + "18.09".eu-west-1.hvm-ebs = "ami-0f412186fb8a0ec97"; + "18.09".eu-west-2.hvm-ebs = "ami-0dada3805ce43c55e"; + "18.09".eu-west-3.hvm-ebs = "ami-074df85565f2e02e2"; + "18.09".eu-central-1.hvm-ebs = "ami-07c9b884e679df4f8"; + "18.09".us-east-1.hvm-ebs = "ami-009c9c3f1af480ff3"; + "18.09".us-east-2.hvm-ebs = "ami-08199961085ea8bc6"; + "18.09".us-west-1.hvm-ebs = "ami-07aa7f56d612ddd38"; + "18.09".us-west-2.hvm-ebs = "ami-01c84b7c368ac24d1"; + "18.09".ca-central-1.hvm-ebs = "ami-04f66113f76198f6c"; + "18.09".ap-southeast-1.hvm-ebs = "ami-0892c7e24ebf2194f"; + "18.09".ap-southeast-2.hvm-ebs = "ami-010730f36424b0a2c"; + "18.09".ap-northeast-1.hvm-ebs = "ami-0cdba8e998f076547"; + "18.09".ap-northeast-2.hvm-ebs = "ami-0400a698e6a9f4a15"; + "18.09".sa-east-1.hvm-ebs = "ami-0e4a8a47fd6db6112"; + "18.09".ap-south-1.hvm-ebs = "ami-0880a678d3f555313"; + + latest = self."18.09"; }; in self From fbb068dcc4f8ad5997e33e6bc45de0e1c7a006e2 Mon Sep 17 00:00:00 2001 From: Drew Hess Date: Mon, 15 Oct 2018 16:31:59 -0400 Subject: [PATCH 104/106] haskellPackages.cryptonite: re-enable tests. This has been fixed since cryptonite-0.7: https://github.com/haskell-crypto/cryptonite/issues/28 cryptonite is also no longer listed in expected-test-failures in Stackage. (cherry picked from commit c8a59e845369f24eb9518d6c5d1d4df105647aa7) Backport of #48485 --- pkgs/development/haskell-modules/configuration-common.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 18b7784de441..03e22129fca1 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -675,9 +675,6 @@ self: super: { # https://github.com/goldfirere/singletons/issues/122 singletons = dontCheck super.singletons; - # https://github.com/fpco/stackage/issues/838 - cryptonite = dontCheck super.cryptonite; - # We cannot build this package w/o the C library from . phash = markBroken super.phash; From 67a7354cd55f8d286ae0817c7956bd1fa920b633 Mon Sep 17 00:00:00 2001 From: Drew Hess Date: Mon, 15 Oct 2018 17:11:32 -0400 Subject: [PATCH 105/106] haskellPackages.cryptonite: fix for aarch64. This is a cherry-pick from upstream (see https://github.com/haskell-crypto/cryptonite/issues/234); there has been no upstream release since the fix was committed. (cherry picked from commit 321626d5ee6410e6a431e8e487cc1a5d7f4fa894) Backport of #48485 --- pkgs/development/haskell-modules/configuration-common.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 03e22129fca1..d933681ea335 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -675,6 +675,14 @@ self: super: { # https://github.com/goldfirere/singletons/issues/122 singletons = dontCheck super.singletons; + # Fix an aarch64 issue with cryptonite-0.25: + # https://github.com/haskell-crypto/cryptonite/issues/234 + # This has been committed upstream, but there is, as of yet, no new release. + cryptonite = appendPatch super.cryptonite (pkgs.fetchpatch { + url = https://github.com/haskell-crypto/cryptonite/commit/4622e5fc8ece82f4cf31358e31cd02cf020e558e.patch; + sha256 = "1m2d47ni4jbrpvxry50imj91qahr3r7zkqm157clrzlmw6gzpgnq"; + }); + # We cannot build this package w/o the C library from . phash = markBroken super.phash; From 8fe63a0c1e721c70b18c498279aef193240612d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Tue, 18 Sep 2018 08:29:28 -0300 Subject: [PATCH 106/106] greybird: remove license cc-by-nc-sa-30 (#46802) Greybird is dual-licensed as GPLv2 or later and CC-BY-SA 3.0 or later. The first is free, and the second is unfree in nixpkgs. Currently both licenses are listed in the package derivation. And nix takes that it is unfree. If one of the licenses in the list is unfree. nix consider that the software is unfree. Remove the unfree one. (cherry picked from commit 1944defa4c481344178ec2a20c53502e7e938f81) --- pkgs/misc/themes/greybird/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/misc/themes/greybird/default.nix b/pkgs/misc/themes/greybird/default.nix index 1221c6606872..bf2f109c22ec 100644 --- a/pkgs/misc/themes/greybird/default.nix +++ b/pkgs/misc/themes/greybird/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { description = "Grey and blue theme (Gtk, Xfce, Emerald, Metacity, Mutter, Unity)"; homepage = https://github.com/shimmerproject/Greybird; - license = with stdenv.lib.licenses; [ gpl2Plus cc-by-nc-sa-30 ]; + license = with stdenv.lib.licenses; [ gpl2Plus ]; # or alternatively: cc-by-nc-sa-30 platforms = stdenv.lib.platforms.linux; maintainers = [ stdenv.lib.maintainers.romildo ]; };