diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml
index 6f23e267bab2..65d0b40e2e82 100644
--- a/doc/functions/library/attrsets.xml
+++ b/doc/functions/library/attrsets.xml
@@ -966,5 +966,766 @@ 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 lib.attrsets.mapAttrsRecursive
+ {
+ n = {
+ a = "n-a-A";
+ m = {
+ b = "n-m-b-B";
+ c = "n-m-c-C";
+ };
+ };
+ d = "d-D";
+ }
+ ]]>
+
+
+
+
+ lib.attrsets.mapAttrsRecursiveCond
+
+ 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\"}";
+ }
+ ]]>
+
+
+
+
+ lib.attrsets.genAttrs
+
+ 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"; }
+ ]]>
+
+
+
+
+ lib.attrsets.isDerivation
+
+ 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
+ ]]>
+
+
+
+
+ lib.attrsets.toDerivation
+
+ toDerivation :: Path -> Derivation
+
+
+
+
+
+ Converts a store path to a fake derivation.
+
+
+
+
+
+ path
+
+
+
+ A store path to convert to a derivation.
+
+
+
+
+
+
+
+ lib.attrsets.optionalAttrs
+
+ 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 cond is true
+ { my = "set"; }
+ ]]>
+
+
+
+ Return an empty attribute set when cond is false
+ { }
+ ]]>
+
+
+
+
+ lib.attrsets.zipAttrsWithNames
+
+ zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
+
+
+
+
+
+ Merge sets of attributes and use the function f to merge
+ attribute values where the attribute name is in names .
+
+
+
+
+
+ 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"; }
+ ]]>
+
+
+
+
+ lib.attrsets.zipAttrsWith
+
+ 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"; }
+ ]]>
+
+
+
+
+ lib.attrsets.zipAttrs
+
+ 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 ]; }
+ ]]>
+
+
+
+
+ lib.attrsets.recursiveUpdateUntil
+
+ 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
+}
+ ]]>
+
+
+
+
+ lib.attrsets.recursiveUpdate
+
+ 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 = "";
+}
+]]>
+
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;
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) // {
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.
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 /dev/sda (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 /dev/sda (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
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
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
+ hardware.nvidia.optimus_prime.enable . 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 services.xserver.videoDrivers , 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 (hardware.nvidia.optimus_prime.nvidiaBusId and
+ hardware.nvidia.optimus_prime.intelBusId ).
+
+ If you enable this, you may want to also enable kernel modesetting for the
+ NVIDIA driver (hardware.nvidia.modesetting.enable ) in order
+ to prevent tearing.
+
+ Note that this configuration will only be successful when a display manager
+ for which the services.xserver.displayManager.setupCommands
+ 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/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/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.";
};
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
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
database.user .
'';
};
+
+ 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/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 ];
+ };
}
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} \
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 = ''
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 services.xserver.displayManager.setupCommands .
'';
};
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/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index f58b68cb3353..f4cf9753c0a1 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -251,9 +251,9 @@ let
postInstall = ''
echo checking syntax
# check both with bash
- ${pkgs.bash}/bin/sh -n $target
+ ${pkgs.buildPackages.bash}/bin/sh -n $target
# and with ash shell, just in case
- ${extraUtils}/bin/ash -n $target
+ ${pkgs.buildPackages.busybox}/bin/ash -n $target
'';
inherit udevRules extraUtils modulesClosure;
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";
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
+ '';
+
+
+
};
}
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
diff --git a/nixos/release.nix b/nixos/release.nix
index a513056c5a03..74283faa4c15 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -385,12 +385,14 @@ 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 {};
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/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");
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 ];
+ };
+})
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/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/"
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 ];
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
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
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
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 = ''
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/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";
};
}
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 ];
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 37431b0fbc44..c44b7ac1dc76 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.30.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 = "02jxwh8qrvjn31rzjwx23908nd1i592drfdykxbc5b6a62fwp02z";
};
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} \
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" ];
};
}
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 ];
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}";
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/;
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};
};
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/;
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" ];
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 ];
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
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index 98e2e739e0d7..c1a4392ec0ef 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -7,33 +7,33 @@ let
rubyEnv = bundlerEnv {
name = "gitlab-env-${version}";
inherit ruby;
- gemdir = ./.;
+ gemdir = ./rubyEnv- + "${if gitlabEnterprise then "ee" else "ce"}";
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";
};
};
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
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/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;
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);
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
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
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 4fced9b8018f..d933681ea335 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
@@ -681,8 +675,13 @@ self: super: {
# https://github.com/goldfirere/singletons/issues/122
singletons = dontCheck super.singletons;
- # https://github.com/fpco/stackage/issues/838
- cryptonite = dontCheck super.cryptonite;
+ # 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;
@@ -1160,4 +1159,5 @@ self: super: {
};
};
+ arbtt = doJailbreak super.arbtt;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
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/;
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
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" ];
}
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 [
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 [
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 [
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 ];
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 = ''
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 = ''
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");
diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix
index aa4ff210812b..88a6d72bc485 100644
--- a/pkgs/games/dwarf-fortress/default.nix
+++ b/pkgs/games/dwarf-fortress/default.nix
@@ -5,67 +5,112 @@
# 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
-# 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}";
- value = callPackage ./wrapper {
- inherit (self) themes;
- dwarf-fortress = callPackage ./game.nix { inherit dfVersion; };
- };
+ name = versionToName 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 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;
+
+ dwarf-fortress = dwarf-fortress;
+ 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);
- dwarf-fortress = df-games.dwarf-fortress_0_44_12;
- dwarf-fortress-full = callPackage ./lazy-pack.nix { };
+ # 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;
- dfhack = callPackage ./dfhack {
- inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT;
- stdenv = gccStdenv;
+ dwarf-fortress-full = callPackage ./lazy-pack.nix {
+ inherit df-games versionToName latestVersion;
};
-
+
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 {
- texlive = pkgs.texlive.combine {
- inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem;
- };
- };
- };
-
legends-browser = callPackage ./legends-browser {};
- twbt = callPackage ./twbt {};
- themes = recurseIntoAttrs (callPackage ./themes { });
+ 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/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index 4a8c84cf92dc..d65bdab84911 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -3,14 +3,62 @@
, enableStoneSense ? false, allegro5, libGLU_combined
, enableTWBT ? true, twbt
, SDL
+, dfVersion
}:
+with lib;
+
let
- dfVersion = "0.44.12";
- version = "${dfVersion}-r1";
+ 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
+ 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"
@@ -21,6 +69,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}"
@@ -41,8 +93,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/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..071ab2af0c5c 100644
--- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
+++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
@@ -1,12 +1,16 @@
-{ stdenv, symlinkJoin, dwarf-therapist, dwarf-fortress, makeWrapper }:
+{ pkgs, stdenv, symlinkJoin, lib, dwarf-therapist, dwarf-fortress, makeWrapper }:
let
platformSlug = if stdenv.targetPlatform.is32bit then
"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;
paths = [ dwarf-therapist ];
@@ -14,20 +18,33 @@ 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)
- 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"
'';
+
+ preferLocalBuild = true;
}
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..3a81dcc9c931 100644
--- a/pkgs/games/dwarf-fortress/lazy-pack.nix
+++ b/pkgs/games/dwarf-fortress/lazy-pack.nix
@@ -1,13 +1,14 @@
-{ 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
-, enableStoneSense ? false # StoneSense is currently broken.
-, enableDwarfTherapist ? true, dwarf-therapist
+, enableStoneSense ? true
+, enableDwarfTherapist ? true
, enableLegendsBrowser ? true, legends-browser
, theme ? themes.phoebus
# General config options:
@@ -16,6 +17,15 @@
, 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}";
+ dwarf-therapist = dwarf-fortress.dwarf-therapist;
+in
buildEnv {
name = "dwarf-fortress-full";
paths = [
@@ -28,7 +38,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/;
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 d90812f5d05e..7c80c1012462 100644
--- a/pkgs/games/dwarf-fortress/twbt/default.nix
+++ b/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -1,14 +1,59 @@
-{ stdenvNoCC, fetchurl, unzip }:
+{ stdenvNoCC, lib, fetchurl, unzip
+, dfVersion
+}:
+with lib;
+
+let
+ 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
+ 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 +69,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/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix
index 0c5a81a52f0f..c4d01b3ff392 100644
--- a/pkgs/games/dwarf-fortress/unfuck.nix
+++ b/pkgs/games/dwarf-fortress/unfuck.nix
@@ -1,18 +1,52 @@
-{ 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 = {
+ "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
+ 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 +54,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 +79,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..058bb5f72ae6 100644
--- a/pkgs/games/dwarf-fortress/wrapper/default.nix
+++ b/pkgs/games/dwarf-fortress/wrapper/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, lib, buildEnv, dwarf-fortress, substituteAll
+{ stdenv, lib, buildEnv, substituteAll, runCommand
+, dwarf-fortress, dwarf-fortress-unfuck
+, dwarf-therapist
, enableDFHack ? false, dfhack
, enableSoundSense ? false, soundSense, jdk
, enableStoneSense ? false
@@ -31,40 +33,48 @@ 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" ];
- 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}]'
- '';
+ ignoreCollisions = true;
};
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;
@@ -77,7 +87,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
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")
'';
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/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 ];
};
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";
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 6755e8f90ee1..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.74";
+ 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 = "0wjw05brv7l1qpi38drc2z01sa7kpk3kadw36gx9cbvvzn4r3rkh";
+ sha256 = "1gl2wkq4sazvpr0xnn4vrajj3j7w6hfiwdiy34y7jhlazyj1jgzf";
};
} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.18.nix b/pkgs/os-specific/linux/kernel/linux-4.18.nix
index aa936929a44c..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.12";
+ 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 = "1icz2nkhkb1xhpmc9gxfhc3ywkni8nywk25ixrmgcxp5rgcmlsl4";
+ sha256 = "1lv2hpxzlk1yzr5dcjb0q0ylvlwx4ln2jvfvf01b9smr1lvd3iin";
};
} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index bafa975b6184..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.159";
+ version = "4.4.161";
extraMeta.branch = "4.4";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
- sha256 = "1hivz1pyy4scp4s09ibz36ni4d1pwivizwls5dbh5qjy0pdvn00f";
+ sha256 = "11rz66qvbcb6y3fz9k04jzn547sqdahqknd43imsr9sjgkaq60xy";
};
} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index cdd2c67d25b2..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.131";
+ version = "4.9.133";
extraMeta.branch = "4.9";
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
- sha256 = "0q2xmbkh42ikw26bdxgk1f9192hygyq9ffkhjfpr0fcx8sak5nsp";
+ sha256 = "0qv5n8vipkqcd0hpf5l41h023n46rgja39h895phlcxs4p00ywsk";
};
} // (args.argsOverride or {}))
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
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
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 =
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/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;
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;
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";
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;
};
}
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 = {
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" ];
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;
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index c0256787ea8e..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.20180925";
+ version = "0.0.20181007";
src = fetchzip {
url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
- sha256 = "10k63ld0f5q5aykpcrg9m3xmrsf3qmlkvhiv18q73hnky2cjfx62";
+ sha256 = "1nrhwnccs6sqq1qs7yhxqb989inrc9n2saibpqs6ga6gb0pvpac6";
};
sourceRoot = "source/src/tools";
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
'';
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 ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 075221b8f95c..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 { };
@@ -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 { };
@@ -21449,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 { };
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`.