Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2017-09-03 10:51:11 +02:00
commit 37242d98de
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
328 changed files with 22148 additions and 9014 deletions

View File

@ -774,6 +774,21 @@ The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` and
Both are also exported in `nix-shell`. Both are also exported in `nix-shell`.
### Automatic tests
It is recommended to test packages as part of the build process.
Source distributions (`sdist`) often include test files, but not always.
By default the command `python setup.py test` is run as part of the
`checkPhase`, but often it is necessary to pass a custom `checkPhase`. An
example of such a situation is when `py.test` is used.
#### Common issues
- Non-working tests can often be deselected. In the case of `py.test`: `py.test -k 'not function_name and not other_function'`.
- Unicode issues can typically be fixed by including `glibcLocales` in `buildInputs` and exporting `LC_ALL=en_US.utf-8`.
- Tests that attempt to access `$HOME` can be fixed by using the following work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)`
## FAQ ## FAQ
### How to solve circular dependencies? ### How to solve circular dependencies?
@ -985,8 +1000,9 @@ rec {
Following rules are desired to be respected: Following rules are desired to be respected:
* Python libraries are supposed to be called from `python-packages.nix` and packaged with `buildPythonPackage`. The expression of a library should be in `pkgs/development/python-modules/<name>/default.nix`. Libraries in `pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid merge conflicts. * Python libraries are called from `python-packages.nix` and packaged with `buildPythonPackage`. The expression of a library should be in `pkgs/development/python-modules/<name>/default.nix`. Libraries in `pkgs/top-level/python-packages.nix` are sorted quasi-alphabetically to avoid merge conflicts.
* Python applications live outside of `python-packages.nix` and are packaged with `buildPythonApplication`. * Python applications live outside of `python-packages.nix` and are packaged with `buildPythonApplication`.
* Make sure libraries build for all Python interpreters. * Make sure libraries build for all Python interpreters.
* By default we enable tests. Make sure the tests are found and, in the case of libraries, are passing for all interpreters. If certain tests fail they can be disabled individually. Try to avoid disabling the tests altogether. In any case, when you disable tests, leave a comment explaining why. * By default we enable tests. Make sure the tests are found and, in the case of libraries, are passing for all interpreters. If certain tests fail they can be disabled individually. Try to avoid disabling the tests altogether. In any case, when you disable tests, leave a comment explaining why.
* Commit names of Python libraries should include `pythonPackages`, for example `pythonPackages.numpy: 1.11 -> 1.12`. * Commit names of Python libraries should reflect that they are Python libraries, so write for example `pythonPackages.numpy: 1.11 -> 1.12`.

View File

@ -113,6 +113,7 @@
cleverca22 = "Michael Bishop <cleverca22@gmail.com>"; cleverca22 = "Michael Bishop <cleverca22@gmail.com>";
cmcdragonkai = "Roger Qiu <roger.qiu@matrix.ai>"; cmcdragonkai = "Roger Qiu <roger.qiu@matrix.ai>";
cmfwyp = "cmfwyp <cmfwyp@riseup.net>"; cmfwyp = "cmfwyp <cmfwyp@riseup.net>";
cobbal = "Andrew Cobb <andrew.cobb@gmail.com>";
coconnor = "Corey O'Connor <coreyoconnor@gmail.com>"; coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
codsl = "codsl <codsl@riseup.net>"; codsl = "codsl <codsl@riseup.net>";
codyopel = "Cody Opel <codyopel@gmail.com>"; codyopel = "Cody Opel <codyopel@gmail.com>";

View File

@ -176,7 +176,7 @@ following incompatible changes:</para>
streamlined. Desktop users should be able to simply set streamlined. Desktop users should be able to simply set
<programlisting>security.grsecurity.enable = true</programlisting> to get <programlisting>security.grsecurity.enable = true</programlisting> to get
a reasonably secure system without having to sacrifice too much a reasonably secure system without having to sacrifice too much
functionality. See <xref linkend="sec-grsecurity" /> for documentation functionality.
</para></listitem> </para></listitem>
<listitem><para>Special filesystems, like <literal>/proc</literal>, <listitem><para>Special filesystems, like <literal>/proc</literal>,

View File

@ -184,6 +184,15 @@ rmdir /var/lib/ipfs/.ipfs
<literal>services.xserver.libinput.enable</literal>. <literal>services.xserver.libinput.enable</literal>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
grsecurity/PaX support has been dropped, following upstream's
decision to cease free support. See
<link xlink:href="https://grsecurity.net/passing_the_baton.php">
upstream's announcement</link> for more information.
No complete replacement for grsecurity/PaX is available presently.
</para>
</listitem>
</itemizedlist> </itemizedlist>
<para>Other notable improvements:</para> <para>Other notable improvements:</para>

View File

@ -121,7 +121,6 @@
./security/chromium-suid-sandbox.nix ./security/chromium-suid-sandbox.nix
./security/dhparams.nix ./security/dhparams.nix
./security/duosec.nix ./security/duosec.nix
./security/grsecurity.nix
./security/hidepid.nix ./security/hidepid.nix
./security/lock-kernel-modules.nix ./security/lock-kernel-modules.nix
./security/oath.nix ./security/oath.nix

View File

@ -124,26 +124,6 @@ with lib;
(mkRenamedOptionModule [ "services" "iodined" "extraConfig" ] [ "services" "iodine" "server" "extraConfig" ]) (mkRenamedOptionModule [ "services" "iodined" "extraConfig" ] [ "services" "iodine" "server" "extraConfig" ])
(mkRemovedOptionModule [ "services" "iodined" "client" ] "") (mkRemovedOptionModule [ "services" "iodined" "client" ] "")
# Grsecurity
(mkRemovedOptionModule [ "security" "grsecurity" "kernelPatch" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "mode" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "priority" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "system" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "virtualisationConfig" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "hardwareVirtualisation" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "virtualisationSoftware" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "sysctl" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "denyChrootChmod" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "denyChrootCaps" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "denyUSB" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "restrictProc" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "restrictProcWithGroup" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "unrestrictProcGid" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "disableRBAC" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "disableSimultConnect" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "verboseVersion" ] "")
(mkRemovedOptionModule [ "security" "grsecurity" "config" "kernelExtraConfig" ] "")
# Unity3D # Unity3D
(mkRenamedOptionModule [ "programs" "unity3d" "enable" ] [ "security" "chromiumSuidSandbox" "enable" ]) (mkRenamedOptionModule [ "programs" "unity3d" "enable" ] [ "security" "chromiumSuidSandbox" "enable" ])

View File

@ -19,9 +19,6 @@ in
Also, if the URL chrome://sandbox tells you that "You are not adequately Also, if the URL chrome://sandbox tells you that "You are not adequately
sandboxed!", turning this on might resolve the issue. sandboxed!", turning this on might resolve the issue.
Finally, if you have <option>security.grsecurity</option> enabled and you
use Chromium, you probably need this.
''; '';
}; };

View File

@ -1,169 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.security.grsecurity;
grsecLockPath = "/proc/sys/kernel/grsecurity/grsec_lock";
# Ascertain whether NixOS container support is required
containerSupportRequired =
config.boot.enableContainers && config.containers != {};
in
{
meta = {
maintainers = with maintainers; [ ];
doc = ./grsecurity.xml;
};
options.security.grsecurity = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable grsecurity/PaX.
'';
};
lockTunables = mkOption {
type = types.bool;
default = true;
description = ''
Whether to automatically lock grsecurity tunables
(<option>boot.kernel.sysctl."kernel.grsecurity.*"</option>). Disable
this to allow runtime configuration of grsecurity features. Activate
the <literal>grsec-lock</literal> service unit to prevent further
configuration until the next reboot.
'';
};
disableEfiRuntimeServices = mkOption {
type = types.bool;
default = true;
description = ''
Whether to disable access to EFI runtime services. Enabling EFI runtime
services creates a venue for code injection attacks on the kernel and
should be disabled if at all possible. Changing this option enters into
effect upon reboot.
'';
};
};
config = mkIf cfg.enable {
boot.kernelPackages = mkForce pkgs.linuxPackages_grsec_nixos;
boot.kernelParams = [ "grsec_sysfs_restrict=0" ]
++ optional cfg.disableEfiRuntimeServices "noefi";
nixpkgs.config.grsecurity = true;
# Install PaX related utillities into the system profile.
environment.systemPackages = with pkgs; [ gradm paxctl pax-utils ];
# Install rules for the grsec device node
services.udev.packages = [ pkgs.gradm ];
# This service unit is responsible for locking the grsecurity tunables. The
# unit is always defined, but only activated on bootup if lockTunables is
# toggled. When lockTunables is toggled, failure to activate the unit will
# enter emergency mode. The intent is to make it difficult to silently
# enter multi-user mode without having locked the tunables. Some effort is
# made to ensure that starting the unit is an idempotent operation.
systemd.services.grsec-lock = {
description = "Lock grsecurity tunables";
wantedBy = optional cfg.lockTunables "multi-user.target";
wants = [ "local-fs.target" "systemd-sysctl.service" ];
after = [ "local-fs.target" "systemd-sysctl.service" ];
conflicts = [ "shutdown.target" ];
restartIfChanged = false;
script = ''
if ${pkgs.gnugrep}/bin/grep -Fq 0 ${grsecLockPath} ; then
echo -n 1 > ${grsecLockPath}
fi
'';
unitConfig = {
ConditionPathIsReadWrite = grsecLockPath;
DefaultDependencies = false;
} // optionalAttrs cfg.lockTunables {
OnFailure = "emergency.target";
};
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
};
# Configure system tunables
boot.kernel.sysctl = {
# Read-only under grsecurity
"kernel.kptr_restrict" = mkForce null;
# All grsec tunables default to off, those not enabled below are
# *disabled*. We use mkDefault to allow expert users to override
# our choices, but use mkForce where tunables would outright
# conflict with other settings.
# Enable all chroot restrictions by default (overwritten as
# necessary below)
"kernel.grsecurity.chroot_caps" = mkDefault 1;
"kernel.grsecurity.chroot_deny_bad_rename" = mkDefault 1;
"kernel.grsecurity.chroot_deny_chmod" = mkDefault 1;
"kernel.grsecurity.chroot_deny_chroot" = mkDefault 1;
"kernel.grsecurity.chroot_deny_fchdir" = mkDefault 1;
"kernel.grsecurity.chroot_deny_mknod" = mkDefault 1;
"kernel.grsecurity.chroot_deny_mount" = mkDefault 1;
"kernel.grsecurity.chroot_deny_pivot" = mkDefault 1;
"kernel.grsecurity.chroot_deny_shmat" = mkDefault 1;
"kernel.grsecurity.chroot_deny_sysctl" = mkDefault 1;
"kernel.grsecurity.chroot_deny_unix" = mkDefault 1;
"kernel.grsecurity.chroot_enforce_chdir" = mkDefault 1;
"kernel.grsecurity.chroot_findtask" = mkDefault 1;
"kernel.grsecurity.chroot_restrict_nice" = mkDefault 1;
# Enable various grsec protections
"kernel.grsecurity.consistent_setxid" = mkDefault 1;
"kernel.grsecurity.deter_bruteforce" = mkDefault 1;
"kernel.grsecurity.fifo_restrictions" = mkDefault 1;
"kernel.grsecurity.harden_ipc" = mkDefault 1;
"kernel.grsecurity.harden_ptrace" = mkDefault 1;
"kernel.grsecurity.harden_tty" = mkDefault 1;
"kernel.grsecurity.ip_blackhole" = mkDefault 1;
"kernel.grsecurity.linking_restrictions" = mkDefault 1;
"kernel.grsecurity.ptrace_readexec" = mkDefault 1;
# Enable auditing
"kernel.grsecurity.audit_ptrace" = mkDefault 1;
"kernel.grsecurity.forkfail_logging" = mkDefault 1;
"kernel.grsecurity.rwxmap_logging" = mkDefault 1;
"kernel.grsecurity.signal_logging" = mkDefault 1;
"kernel.grsecurity.timechange_logging" = mkDefault 1;
} // optionalAttrs config.nix.useSandbox {
# chroot(2) restrictions that conflict with sandboxed Nix builds
"kernel.grsecurity.chroot_caps" = mkForce 0;
"kernel.grsecurity.chroot_deny_chmod" = mkForce 0;
"kernel.grsecurity.chroot_deny_chroot" = mkForce 0;
"kernel.grsecurity.chroot_deny_mount" = mkForce 0;
"kernel.grsecurity.chroot_deny_pivot" = mkForce 0;
} // optionalAttrs containerSupportRequired {
# chroot(2) restrictions that conflict with NixOS lightweight containers
"kernel.grsecurity.chroot_caps" = mkForce 0;
"kernel.grsecurity.chroot_deny_chmod" = mkForce 0;
"kernel.grsecurity.chroot_deny_mount" = mkForce 0;
"kernel.grsecurity.chroot_restrict_nice" = mkForce 0;
# Disable privileged IO by default, unless X is enabled
} // optionalAttrs (!config.services.xserver.enable) {
"kernel.grsecurity.disable_priv_io" = mkDefault 1;
};
};
}

View File

@ -1,385 +0,0 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-grsecurity">
<title>Grsecurity/PaX</title>
<para>
Grsecurity/PaX is a set of patches against the Linux kernel that
implements an extensive suite of
<link xlink:href="https://grsecurity.net/features.php">features</link>
designed to increase the difficulty of exploiting kernel and
application bugs.
</para>
<para>
The NixOS grsecurity/PaX module is designed with casual users in mind and is
intended to be compatible with normal desktop usage, without
<emphasis>unnecessarily</emphasis> compromising security. The
following sections describe the configuration and administration of
a grsecurity/PaX enabled NixOS system. For more comprehensive
coverage, please refer to the
<link xlink:href="https://en.wikibooks.org/wiki/Grsecurity">grsecurity wikibook</link>
and the
<link xlink:href="https://wiki.archlinux.org/index.php/Grsecurity">Arch
Linux wiki page on grsecurity</link>.
<warning><para>Upstream has ceased free support for grsecurity/PaX. See
<link xlink:href="https://grsecurity.net/passing_the_baton.php">
the announcement</link> for more information. Consequently, NixOS
support for grsecurity/PaX also must cease. Enabling this module will
result in a build error.</para></warning>
<note><para>We standardise on a desktop oriented configuration primarily due
to lack of resources. The grsecurity/PaX configuration state space is huge
and each configuration requires quite a bit of testing to ensure that the
resulting packages work as advertised. Defining additional package sets
would likely result in a large number of functionally broken packages, to
nobody's benefit.</para></note>
</para>
<sect1 xml:id="sec-grsec-enable"><title>Enabling grsecurity/PaX</title>
<para>
To make use of grsecurity/PaX on NixOS, add the following to your
<filename>configuration.nix</filename>:
<programlisting>
security.grsecurity.enable = true;
</programlisting>
followed by
<programlisting>
# nixos-rebuild boot
# reboot
</programlisting>
<note><para>
Enabling the grsecurity module overrides
<option>boot.kernelPackages</option>, to reduce the risk of
misconfiguration. <xref linkend="sec-grsec-custom-kernel" />
describes how to use a custom kernel package set.
</para></note>
For most users, further configuration should be unnecessary. All users
are encouraged to look over <xref linkend="sec-grsec-security" /> before
using the system, however. If you experience problems, please refer to
<xref linkend="sec-grsec-issues" />.
</para>
<para>
Once booted into the new system, you can optionally use
<command>paxtest</command> to exercise various PaX features:
<screen><![CDATA[
# nix-shell -p paxtest --command 'paxtest blackhat'
Executable anonymous mapping : Killed
Executable bss : Killed
# ... remaining output truncated for brevity
]]></screen>
</para>
</sect1>
<sect1 xml:id="sec-grsec-declarative-tuning"><title>Declarative tuning</title>
<para>
The default configuration mode is strictly declarative. Some features
simply cannot be changed at all after boot, while others are locked once the
system is up and running. Moreover, changes to the configuration enter
into effect only upon booting into the new system.
</para>
<para>
The NixOS module exposes a limited number of options for tuning the behavior
of grsecurity/PaX. These are options thought to be of particular interest
to most users. For experts, further tuning is possible via
<option>boot.kernelParams</option> (see
<xref linkend="sec-grsec-kernel-params" />) and
<option>boot.kernel.sysctl."kernel.grsecurity.*"</option> (the wikibook
contains an <link xlink:href="https://en.wikibooks.org/wiki/Grsecurity/Appendix/Sysctl_Options">
exhaustive listing of grsecurity sysctl tunables</link>).
</para>
</sect1>
<sect1 xml:id="sec-grsec-manual-tuning"><title>Manual tuning</title>
<para>
To permit manual tuning of grsecurity runtime parameters, set:
<programlisting>
security.grsecurity.lockTunables = false;
</programlisting>
Once booted into this system, grsecurity features that have a corresponding
sysctl tunable can be changed without rebooting, either by switching into
a new system profile or via the <command>sysctl</command> utility.
</para>
<para>
To lock all grsecurity tunables until the next boot, do:
<screen>
# systemctl start grsec-lock
</screen>
</para>
</sect1>
<sect1 xml:id="sec-grsec-security"><title>Security considerations</title>
<para>
The NixOS kernel is built using upstream's recommended settings for a
desktop deployment that generally favours security over performance. This
section details deviations from upstream's recommendations that may
compromise security.
<warning><para>There may be additional problems not covered here!</para>
</warning>
</para>
<itemizedlist>
<listitem><para>
The following hardening features are disabled in the NixOS kernel:
<itemizedlist>
<listitem><para>Kernel symbol hiding: rendered useless by redistributing
kernel objects.</para></listitem>
<listitem><para>Randomization of kernel structures: rendered useless by
redistributing kernel objects.</para></listitem>
<listitem><para>TCP simultaneous OPEN connection is permitted: breaking
strict TCP conformance is inappropriate for a general purpose kernel.
The trade-off is that an attacker may be able to deny outgoing
connections if they are able to guess the source port allocated by your
OS for that connection <emphasis>and</emphasis> also manage to initiate
a TCP simultaneous OPEN on that port before the connection is actually
established.</para></listitem>
<listitem><para>Trusted path execution: a desirable feature, but
requires some more work to operate smoothly on NixOS.</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para>
The NixOS module conditionally weakens <command>chroot</command>
restrictions to accommodate NixOS lightweight containers and sandboxed Nix
builds. This can be problematic if the deployment also runs privileged
network facing processes that <emphasis>rely</emphasis> on
<command>chroot</command> for isolation.
</para></listitem>
<listitem><para>
The NixOS kernel is patched to allow usermode helpers from anywhere in the
Nix store. A usermode helper is an executable called by the kernel in
certain circumstances, e.g., <command>modprobe</command>. Vanilla
grsecurity only allows usermode helpers from paths typically owned by the
super user. The NixOS kernel allows an attacker to inject malicious code
into the Nix store which could then be executed by the kernel as a
usermode helper.
</para></listitem>
<listitem><para>
The following features are disabled because they overlap with
vanilla kernel mechanisms:
<itemizedlist>
<listitem><para><filename class="directory">/proc</filename> hardening:
use <option>security.hideProcessInformation</option> instead. This
trades weaker protection for greater compatibility.
</para></listitem>
<listitem><para><command>dmesg</command> restrictions:
use <option>boot.kernel.sysctl."kernel.dmesg_restrict"</option> instead
</para></listitem>
</itemizedlist>
</para></listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="sec-grsec-custom-kernel"><title>Using a custom grsecurity/PaX kernel</title>
<para>
The NixOS kernel is likely to be either too permissive or too restrictive
for many deployment scenarios. In addition to producing a kernel more
suitable for a particular deployment, a custom kernel may improve security
by depriving an attacker the ability to study the kernel object code, adding
yet more guesswork to successfully carry out certain exploits.
</para>
<para>
To build a custom kernel using upstream's recommended settings for server
deployments, while still using the NixOS module:
<programlisting>
nixpkgs.config.packageOverrides = super: {
linux_grsec_nixos = super.linux_grsec_nixos.override {
extraConfig = ''
GRKERNSEC_CONFIG_AUTO y
GRKERNSEC_CONFIG_SERVER y
GRKERNSEC_CONFIG_SECURITY y
'';
};
};
</programlisting>
</para>
<para>
The grsecurity/PaX wikibook provides an exhaustive listing of
<link xlink:href="https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options">kernel configuration options</link>.
</para>
<para>
The NixOS module makes several assumptions about the kernel and so
may be incompatible with your customised kernel. Currently, the only way
to work around these incompatibilities is to eschew the NixOS
module.
</para>
<para>
If not using the NixOS module, a custom grsecurity package set can
be specified inline instead, as in
<programlisting>
boot.kernelPackages =
let
kernel = pkgs.linux_grsec_nixos.override {
extraConfig = /* as above */;
};
self = pkgs.linuxPackagesFor kernel self;
in self;
</programlisting>
</para>
</sect1>
<sect1 xml:id="sec-grsec-pax-flags"><title>Per-executable PaX flags</title>
<para>
Manual tuning of per-file PaX flags for executables in the Nix store is
impossible on a properly configured system. If a package in Nixpkgs fails
due to PaX, that is a bug in the package recipe and should be reported to
the maintainer (including relevant <command>dmesg</command> output).
</para>
<para>
For executables installed outside of the Nix store, PaX flags can be set
using the <command>paxctl</command> utility:
<programlisting>
paxctl -czem <replaceable>foo</replaceable>
</programlisting>
<warning>
<para><command>paxctl</command> overwrites files in-place.</para>
</warning>
Equivalently, on file systems that support extended attributes:
<programlisting>
setfattr -n user.pax.flags -v em <replaceable>foo</replaceable>
</programlisting>
<!-- TODO: PaX flags via RBAC policy -->
</para>
</sect1>
<sect1 xml:id="sec-grsec-issues"><title>Issues and work-arounds</title>
<itemizedlist>
<listitem><para>User namespaces require <literal>CAP_SYS_ADMIN</literal>:
consequently, unprivileged namespaces are unsupported. Applications that
rely on namespaces for sandboxing must use a privileged helper. For chromium
there is <option>security.chromiumSuidSandbox.enable</option>.</para></listitem>
<listitem><para>Access to EFI runtime services is disabled by default:
this plugs a potential code injection attack vector; use
<option>security.grsecurity.disableEfiRuntimeServices</option> to override
this behavior.</para></listitem>
<listitem><para>User initiated autoloading of modules (e.g., when
using fuse or loop devices) is disallowed; either load requisite modules
as root or add them to <option>boot.kernelModules</option>.</para></listitem>
<listitem><para>Virtualization: KVM is the preferred virtualization
solution. Xen, Virtualbox, and VMWare are
<emphasis>unsupported</emphasis> and most likely require a custom kernel.
</para></listitem>
<listitem><para>
Attaching <command>gdb</command> to a running process is disallowed by
default: unprivileged users can only ptrace processes that are children of
the ptracing process. To relax this restriction, set
<programlisting>
boot.kernel.sysctl."kernel.grsecurity.harden_ptrace" = 0;
</programlisting>
</para></listitem>
<listitem><para>
Overflows in boot critical code (e.g., the root filesystem module) can
render the system unbootable. Work around by setting
<programlisting>
boot.kernelParams = [ "pax_size_overflow_report_only" ];
</programlisting>
</para></listitem>
<listitem><para>
The <citerefentry><refentrytitle>modify_ldt
</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall is disabled
by default. This restriction can interfere with programs designed to run
legacy 16-bit or segmented 32-bit code. To support applications that rely
on this syscall, set
<programlisting>
boot.kernel.sysctl."kernel.modify_ldt" = 1;
</programlisting>
</para></listitem>
<listitem><para>
The gitlab service (<xref linkend="module-services-gitlab" />)
requires a variant of the <literal>ruby</literal> interpreter
built without `mprotect()` hardening, as in
<programlisting>
services.gitlab.packages.gitlab = pkgs.gitlab.override {
ruby = pkgs.ruby.overrideAttrs (attrs: {
postFixup = "paxmark m $out/bin/ruby";
});
};
</programlisting>
</para></listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="sec-grsec-kernel-params"><title>Grsecurity/PaX kernel parameters</title>
<para>
The NixOS kernel supports the following kernel command line parameters:
<itemizedlist>
<listitem><para>
<literal>pax_nouderef</literal>: disable UDEREF (separate kernel and
user address spaces).
</para></listitem>
<listitem><para>
<literal>pax_weakuderef</literal>: enable a faster but
weaker variant of UDEREF on 64-bit processors with PCID support
(check <code>grep pcid /proc/cpuinfo</code>).
</para></listitem>
<listitem><para>
<literal>pax_sanitize_slab={off|fast|full}</literal>: control kernel
slab object sanitization. Defaults to <literal>fast</literal>
</para></listitem>
<listitem><para>
<literal>pax_size_overflow_report_only</literal>: log size overflow
violations but leave the violating task running
</para></listitem>
<listitem><para>
<literal>grsec_sysfs_restrict=[0|1]</literal>: toggle sysfs
restrictions. The NixOS module sets this to <literal>0</literal>
for systemd compatibility
</para></listitem>
</itemizedlist>
</para>
</sect1>
</chapter>

View File

@ -270,8 +270,8 @@ in
${optionalString haveLocalDB '' ${optionalString haveLocalDB ''
if ! [ -e ${baseDir}/.db-created ]; then if ! [ -e ${baseDir}/.db-created ]; then
${config.services.postgresql.package}/bin/createuser hydra ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createuser hydra
${config.services.postgresql.package}/bin/createdb -O hydra hydra ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} ${config.services.postgresql.package}/bin/createdb -O hydra hydra
touch ${baseDir}/.db-created touch ${baseDir}/.db-created
fi fi
''} ''}

View File

@ -38,9 +38,6 @@ let
pre84 = versionOlder (builtins.parseDrvName postgresql.name).version "8.4"; pre84 = versionOlder (builtins.parseDrvName postgresql.name).version "8.4";
# NixOS traditionally used `root` as superuser, most other distros use `postgres`. From 17.09
# we also try to follow this standard
superuser = (if versionAtLeast config.system.stateVersion "17.09" then "postgres" else "root");
in in
@ -151,6 +148,16 @@ in
Contents of the <filename>recovery.conf</filename> file. Contents of the <filename>recovery.conf</filename> file.
''; '';
}; };
superUser = mkOption {
type = types.str;
default= if versionAtLeast config.system.stateVersion "17.09" then "postgres" else "root";
internal = true;
description = ''
NixOS traditionally used `root` as superuser, most other distros use `postgres`.
From 17.09 we also try to follow this standard. Internal since changing this value
would lead to breakage while setting up databases.
'';
};
}; };
}; };
@ -215,7 +222,7 @@ in
'' ''
# Initialise the database. # Initialise the database.
if ! test -e ${cfg.dataDir}/PG_VERSION; then if ! test -e ${cfg.dataDir}/PG_VERSION; then
initdb -U ${superuser} initdb -U ${cfg.superUser}
# See postStart! # See postStart!
touch "${cfg.dataDir}/.first_startup" touch "${cfg.dataDir}/.first_startup"
fi fi
@ -247,14 +254,14 @@ in
# Wait for PostgreSQL to be ready to accept connections. # Wait for PostgreSQL to be ready to accept connections.
postStart = postStart =
'' ''
while ! ${pkgs.sudo}/bin/sudo -u ${superuser} psql --port=${toString cfg.port} -d postgres -c "" 2> /dev/null; do while ! ${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql --port=${toString cfg.port} -d postgres -c "" 2> /dev/null; do
if ! kill -0 "$MAINPID"; then exit 1; fi if ! kill -0 "$MAINPID"; then exit 1; fi
sleep 0.1 sleep 0.1
done done
if test -e "${cfg.dataDir}/.first_startup"; then if test -e "${cfg.dataDir}/.first_startup"; then
${optionalString (cfg.initialScript != null) '' ${optionalString (cfg.initialScript != null) ''
${pkgs.sudo}/bin/sudo -u ${superuser} psql -f "${cfg.initialScript}" --port=${toString cfg.port} -d postgres ${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql -f "${cfg.initialScript}" --port=${toString cfg.port} -d postgres
''} ''}
rm -f "${cfg.dataDir}/.first_startup" rm -f "${cfg.dataDir}/.first_startup"
fi fi

View File

@ -10,10 +10,12 @@ let
ruby = cfg.packages.gitlab.ruby; ruby = cfg.packages.gitlab.ruby;
bundler = pkgs.bundler; bundler = pkgs.bundler;
gemHome = "${cfg.packages.gitlab.env}/${ruby.gemPath}"; gemHome = "${cfg.packages.gitlab.ruby-env}/${ruby.gemPath}";
gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket"; gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket";
gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket";
pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url; pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url;
pgSuperUser = config.services.postgresql.superUser;
databaseYml = '' databaseYml = ''
production: production:
@ -25,6 +27,17 @@ let
encoding: utf8 encoding: utf8
''; '';
gitalyToml = pkgs.writeText "gitaly.toml" ''
socket_path = "${lib.escape ["\""] gitalySocket}"
# prometheus metrics
${concatStringsSep "\n" (attrValues (mapAttrs (k: v: ''
[[storage]]
name = "${lib.escape ["\""] k}"
path = "${lib.escape ["\""] v.path}"
'') gitlabConfig.production.repositories.storages))}
'';
gitlabShellYml = '' gitlabShellYml = ''
user: ${cfg.user} user: ${cfg.user}
gitlab_url: "http+unix://${pathUrlQuote gitlabSocket}" gitlab_url: "http+unix://${pathUrlQuote gitlabSocket}"
@ -46,6 +59,7 @@ let
secret_key_base: ${cfg.secrets.secret} secret_key_base: ${cfg.secrets.secret}
otp_key_base: ${cfg.secrets.otp} otp_key_base: ${cfg.secrets.otp}
db_key_base: ${cfg.secrets.db} db_key_base: ${cfg.secrets.db}
jws_private_key: ${builtins.toJSON cfg.secrets.jws}
''; '';
gitlabConfig = { gitlabConfig = {
@ -69,7 +83,8 @@ let
container_registry = true; container_registry = true;
}; };
}; };
repositories.storages.default = "${cfg.statePath}/repositories"; repositories.storages.default.path = "${cfg.statePath}/repositories";
repositories.storages.default.gitaly_address = "unix:${gitalySocket}";
artifacts.enabled = true; artifacts.enabled = true;
lfs.enabled = true; lfs.enabled = true;
gravatar.enabled = true; gravatar.enabled = true;
@ -105,9 +120,9 @@ let
GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads"; GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads";
GITLAB_LOG_PATH = "${cfg.statePath}/log"; GITLAB_LOG_PATH = "${cfg.statePath}/log";
GITLAB_SHELL_PATH = "${cfg.packages.gitlab-shell}"; GITLAB_SHELL_PATH = "${cfg.packages.gitlab-shell}";
GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/shell/config.yml"; GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/home/config.yml";
GITLAB_SHELL_SECRET_PATH = "${cfg.statePath}/config/gitlab_shell_secret"; GITLAB_SHELL_SECRET_PATH = "${cfg.statePath}/config/gitlab_shell_secret";
GITLAB_SHELL_HOOKS_PATH = "${cfg.statePath}/shell/hooks"; GITLAB_SHELL_HOOKS_PATH = "${cfg.statePath}/home/hooks";
RAILS_ENV = "production"; RAILS_ENV = "production";
}; };
@ -115,15 +130,15 @@ let
gitlab-rake = pkgs.stdenv.mkDerivation rec { gitlab-rake = pkgs.stdenv.mkDerivation rec {
name = "gitlab-rake"; name = "gitlab-rake";
buildInputs = [ cfg.packages.gitlab cfg.packages.gitlab.env pkgs.makeWrapper ]; buildInputs = [ cfg.packages.gitlab cfg.packages.gitlab.ruby-env pkgs.makeWrapper ];
phases = "installPhase fixupPhase"; phases = "installPhase fixupPhase";
buildPhase = ""; buildPhase = "";
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${cfg.packages.gitlab.env}/bin/bundle $out/bin/gitlab-bundle \ makeWrapper ${cfg.packages.gitlab.ruby-env}/bin/bundle $out/bin/gitlab-bundle \
${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \ ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
--set GITLAB_CONFIG_PATH '${cfg.statePath}/config' \ --set GITLAB_CONFIG_PATH '${cfg.statePath}/config' \
--set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip config.services.postgresql.package ]}:$PATH' \ --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar config.services.postgresql.package ]}:$PATH' \
--set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \ --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
--run 'cd ${cfg.packages.gitlab}/share/gitlab' --run 'cd ${cfg.packages.gitlab}/share/gitlab'
makeWrapper $out/bin/gitlab-bundle $out/bin/gitlab-rake \ makeWrapper $out/bin/gitlab-bundle $out/bin/gitlab-rake \
@ -182,6 +197,13 @@ in {
description = "Reference to the gitlab-workhorse package"; description = "Reference to the gitlab-workhorse package";
}; };
packages.gitaly = mkOption {
type = types.package;
default = pkgs.gitaly;
defaultText = "pkgs.gitaly";
description = "Reference to the gitaly package";
};
statePath = mkOption { statePath = mkOption {
type = types.str; type = types.str;
default = "/var/gitlab/state"; default = "/var/gitlab/state";
@ -359,6 +381,19 @@ in {
''; '';
}; };
secrets.jws = mkOption {
type = types.str;
description = ''
The secret is used to encrypt session keys. If you change or lose
this key, users will be disconnected.
Make sure the secret is an RSA private key in PEM format. You can
generate one with
openssl genrsa 2048openssl genpkey -algorithm RSA -out - -pkeyopt rsa_keygen_bits:2048
'';
};
extraConfig = mkOption { extraConfig = mkOption {
type = types.attrs; type = types.attrs;
default = {}; default = {};
@ -428,7 +463,24 @@ in {
TimeoutSec = "300"; TimeoutSec = "300";
Restart = "on-failure"; Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab"; WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
ExecStart="${cfg.packages.gitlab.env}/bin/bundle exec \"sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid\""; ExecStart="${cfg.packages.gitlab.ruby-env}/bin/bundle exec \"sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid\"";
};
};
systemd.services.gitaly = {
after = [ "network.target" "gitlab.service" ];
wantedBy = [ "multi-user.target" ];
environment.HOME = gitlabEnv.HOME;
path = with pkgs; [ gitAndTools.git ];
serviceConfig = {
#PermissionsStartOnly = true; # preStart must be run as root
Type = "simple";
User = cfg.user;
Group = cfg.group;
TimeoutSec = "300";
Restart = "on-failure";
WorkingDirectory = gitlabEnv.HOME;
ExecStart = "${cfg.packages.gitaly}/bin/gitaly ${gitalyToml}";
}; };
}; };
@ -477,6 +529,7 @@ in {
gitAndTools.git gitAndTools.git
openssh openssh
nodejs nodejs
procps
]; ];
preStart = '' preStart = ''
mkdir -p ${cfg.backupPath} mkdir -p ${cfg.backupPath}
@ -486,12 +539,11 @@ in {
mkdir -p ${gitlabConfig.production.shared.path}/lfs-objects mkdir -p ${gitlabConfig.production.shared.path}/lfs-objects
mkdir -p ${gitlabConfig.production.shared.path}/pages mkdir -p ${gitlabConfig.production.shared.path}/pages
mkdir -p ${cfg.statePath}/log mkdir -p ${cfg.statePath}/log
mkdir -p ${cfg.statePath}/shell
mkdir -p ${cfg.statePath}/tmp/pids mkdir -p ${cfg.statePath}/tmp/pids
mkdir -p ${cfg.statePath}/tmp/sockets mkdir -p ${cfg.statePath}/tmp/sockets
rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks rm -rf ${cfg.statePath}/config ${cfg.statePath}/home/hooks
mkdir -p ${cfg.statePath}/config ${cfg.statePath}/shell mkdir -p ${cfg.statePath}/config
tr -dc A-Za-z0-9 < /dev/urandom | head -c 32 > ${cfg.statePath}/config/gitlab_shell_secret tr -dc A-Za-z0-9 < /dev/urandom | head -c 32 > ${cfg.statePath}/config/gitlab_shell_secret
@ -507,7 +559,6 @@ in {
mkdir -p ${gitlabEnv.HOME}/.ssh mkdir -p ${gitlabEnv.HOME}/.ssh
touch ${gitlabEnv.HOME}/.ssh/authorized_keys touch ${gitlabEnv.HOME}/.ssh/authorized_keys
chown -R ${cfg.user}:${cfg.group} ${gitlabEnv.HOME}/ chown -R ${cfg.user}:${cfg.group} ${gitlabEnv.HOME}/
chmod -R u+rwX,go-rwx+X ${gitlabEnv.HOME}/
cp -rf ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config cp -rf ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
${optionalString cfg.smtp.enable '' ${optionalString cfg.smtp.enable ''
@ -532,14 +583,14 @@ in {
if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then if [ "${cfg.databaseHost}" = "127.0.0.1" ]; then
if ! test -e "${cfg.statePath}/db-created"; then if ! test -e "${cfg.statePath}/db-created"; then
psql postgres -c "CREATE ROLE ${cfg.databaseUsername} WITH LOGIN NOCREATEDB NOCREATEROLE NOCREATEUSER ENCRYPTED PASSWORD '${cfg.databasePassword}'" ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql postgres -c "CREATE ROLE ${cfg.databaseUsername} WITH LOGIN NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD '${cfg.databasePassword}'"
${config.services.postgresql.package}/bin/createdb --owner ${cfg.databaseUsername} ${cfg.databaseName} || true ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} ${config.services.postgresql.package}/bin/createdb --owner ${cfg.databaseUsername} ${cfg.databaseName}
touch "${cfg.statePath}/db-created" touch "${cfg.statePath}/db-created"
fi fi
fi fi
# enable required pg_trgm extension for gitlab # enable required pg_trgm extension for gitlab
psql gitlab -c "CREATE EXTENSION IF NOT EXISTS pg_trgm" ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} psql gitlab -c "CREATE EXTENSION IF NOT EXISTS pg_trgm"
# Always do the db migrations just to be sure the database is up-to-date # Always do the db migrations just to be sure the database is up-to-date
${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production ${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production
@ -555,7 +606,8 @@ in {
# Change permissions in the last step because some of the # Change permissions in the last step because some of the
# intermediary scripts like to create directories as root. # intermediary scripts like to create directories as root.
chown -R ${cfg.user}:${cfg.group} ${cfg.statePath} chown -R ${cfg.user}:${cfg.group} ${cfg.statePath}
chmod -R u+rwX,go-rwx+X ${cfg.statePath} chmod -R ug+rwX,o-rwx+X ${cfg.statePath}
chmod -R u+rwX,go-rwx+X ${gitlabEnv.HOME}
''; '';
serviceConfig = { serviceConfig = {
@ -566,7 +618,7 @@ in {
TimeoutSec = "300"; TimeoutSec = "300";
Restart = "on-failure"; Restart = "on-failure";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab"; WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
ExecStart = "${cfg.packages.gitlab.env}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\""; ExecStart = "${cfg.packages.gitlab.ruby-env}/bin/bundle exec \"unicorn -c ${cfg.statePath}/config/unicorn.rb -E production\"";
}; };
}; };

View File

@ -57,7 +57,7 @@ in {
after = [ "network.target" ]; after = [ "network.target" ];
description = "Deluge BitTorrent WebUI"; description = "Deluge BitTorrent WebUI";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ pkgs.pythonPackages.deluge ]; path = [ pkgs.deluge ];
serviceConfig.ExecStart = "${pkgs.deluge}/bin/deluge --ui web"; serviceConfig.ExecStart = "${pkgs.deluge}/bin/deluge --ui web";
serviceConfig.User = "deluge"; serviceConfig.User = "deluge";
serviceConfig.Group = "deluge"; serviceConfig.Group = "deluge";

View File

@ -60,10 +60,7 @@ in
''; '';
}; };
environment.systemPackages = [ environment.systemPackages =
pkgs.hicolor_icon_theme
pkgs.mate.mate-icon-theme
] ++
pkgs.mate.basePackages ++ pkgs.mate.basePackages ++
(removePackagesByName (removePackagesByName
pkgs.mate.extraPackages pkgs.mate.extraPackages

View File

@ -12,6 +12,9 @@ import warnings
import ctypes import ctypes
libc = ctypes.CDLL("libc.so.6") libc = ctypes.CDLL("libc.so.6")
import re import re
import datetime
import glob
import os.path
def copy_if_not_exists(source, dest): def copy_if_not_exists(source, dest):
if not os.path.exists(dest): if not os.path.exists(dest):
@ -24,7 +27,7 @@ def system_dir(profile, generation):
return "/nix/var/nix/profiles/system-%d-link" % (generation) return "/nix/var/nix/profiles/system-%d-link" % (generation)
BOOT_ENTRY = """title NixOS{profile} BOOT_ENTRY = """title NixOS{profile}
version Generation {generation} version Generation {generation} {description}
linux {kernel} linux {kernel}
initrd {initrd} initrd {initrd}
options {kernel_params} options {kernel_params}
@ -54,6 +57,26 @@ def copy_from_profile(profile, generation, name, dry_run=False):
copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path)) copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path))
return efi_file_path return efi_file_path
def describe_generation(generation_dir):
try:
with open("%s/nixos-version" % generation_dir) as f:
nixos_version = f.read()
except IOError:
nixos_version = "Unknown"
kernel_dir = os.path.dirname(os.path.realpath("%s/kernel" % generation_dir))
module_dir = glob.glob("%s/lib/modules/*" % kernel_dir)[0]
kernel_version = os.path.basename(module_dir)
build_time = int(os.path.getctime(generation_dir))
build_date = datetime.datetime.fromtimestamp(build_time).strftime('%F')
description = "NixOS {}, Linux Kernel {}, Built on {}".format(
nixos_version, kernel_version, build_date
)
return description
def write_entry(profile, generation, machine_id): def write_entry(profile, generation, machine_id):
kernel = copy_from_profile(profile, generation, "kernel") kernel = copy_from_profile(profile, generation, "kernel")
initrd = copy_from_profile(profile, generation, "initrd") initrd = copy_from_profile(profile, generation, "initrd")
@ -69,6 +92,7 @@ def write_entry(profile, generation, machine_id):
generation_dir = os.readlink(system_dir(profile, generation)) generation_dir = os.readlink(system_dir(profile, generation))
tmp_path = "%s.tmp" % (entry_file) tmp_path = "%s.tmp" % (entry_file)
kernel_params = "systemConfig=%s init=%s/init " % (generation_dir, generation_dir) kernel_params = "systemConfig=%s init=%s/init " % (generation_dir, generation_dir)
with open("%s/kernel-params" % (generation_dir)) as params_file: with open("%s/kernel-params" % (generation_dir)) as params_file:
kernel_params = kernel_params + params_file.read() kernel_params = kernel_params + params_file.read()
with open(tmp_path, 'w') as f: with open(tmp_path, 'w') as f:
@ -76,7 +100,8 @@ def write_entry(profile, generation, machine_id):
generation=generation, generation=generation,
kernel=kernel, kernel=kernel,
initrd=initrd, initrd=initrd,
kernel_params=kernel_params)) kernel_params=kernel_params,
description=describe_generation(generation_dir)))
if machine_id is not None: if machine_id is not None:
f.write("machine-id %s\n" % machine_id) f.write("machine-id %s\n" % machine_id)
os.rename(tmp_path, entry_file) os.rename(tmp_path, entry_file)

32
nixos/tests/hydra.nix Normal file
View File

@ -0,0 +1,32 @@
import ./make-test.nix ({ pkgs, ...} : {
name = "hydra-init-localdb";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ pstn ];
};
machine =
{ config, pkgs, ... }:
{
services.hydra = {
enable = true;
#Hydra needs those settings to start up, so we add something not harmfull.
hydraURL = "example.com";
notificationSender = "example@example.com";
};
};
testScript =
''
# let the system boot up
$machine->waitForUnit("multi-user.target");
# test whether the database is running
$machine->succeed("systemctl status postgresql.service");
# test whether the actual hydra daemons are running
$machine->succeed("systemctl status hydra-queue-runner.service");
$machine->succeed("systemctl status hydra-init.service");
$machine->succeed("systemctl status hydra-evaluator.service");
$machine->succeed("systemctl status hydra-send-stats.service");
'';
})

View File

@ -1,8 +1,9 @@
{ {
alsaLib,
boost, boost,
cln, cln,
cmake, cmake,
fetchgit, fetchFromGitHub,
gcc, gcc,
ginac, ginac,
jamomacore, jamomacore,
@ -10,9 +11,13 @@
libsndfile, libsndfile,
ninja, ninja,
portaudio, portaudio,
portmidi,
qtbase, qtbase,
qtdeclarative, qtdeclarative,
qtimageformats, qtimageformats,
qtmultimedia,
qtquickcontrols2,
qtserialport,
qtsvg, qtsvg,
qttools, qttools,
qtwebsockets, qtwebsockets,
@ -21,18 +26,19 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.0.0-a67"; version = "1.0.0-b31";
name = "i-score-${version}"; name = "i-score-${version}";
src = fetchgit { src = fetchFromGitHub {
url = "https://github.com/OSSIA/i-score.git"; owner = "OSSIA";
rev = "ede2453b139346ae46702b5e2643c5488f8c89fb"; repo = "i-score";
sha256 = "0cl9vdmxkshdacgpp7s2rg40b7xbsjrzw916jds9i3rpq1pcy5pj"; rev = "v${version}";
leaveDotGit = true; sha256 = "0g7s6n11w3wflrv5i2047dxx56lryms7xj0mznnlk5bii7g8dxzb";
deepClone = true; fetchSubmodules = true;
}; };
buildInputs = [ buildInputs = [
alsaLib
boost boost
cln cln
cmake cmake
@ -43,9 +49,13 @@ stdenv.mkDerivation rec {
libsndfile libsndfile
ninja ninja
portaudio portaudio
portmidi
qtbase qtbase
qtdeclarative qtdeclarative
qtimageformats qtimageformats
qtmultimedia
qtquickcontrols2
qtserialport
qtsvg qtsvg
qttools qttools
qtwebsockets qtwebsockets
@ -59,17 +69,11 @@ stdenv.mkDerivation rec {
"-DISCORE_BUILD_FOR_PACKAGE_MANAGER=True" "-DISCORE_BUILD_FOR_PACKAGE_MANAGER=True"
]; ];
patchPhase = ''
sed -e '77d' -i CMake/modules/GetGitRevisionDescription.cmake
'';
preConfigure = '' preConfigure = ''
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")" export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$(echo "${jamomacore}/jamoma/share/cmake/Jamoma")"
''; '';
installPhase = '' postInstall = ''rm $out/bin/i-score.sh'';
cmake --build . --target install
'';
meta = { meta = {
description = "An interactive sequencer for the intermedia arts"; description = "An interactive sequencer for the intermedia arts";

View File

@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ scons pkgconfig libsamplerate libsndfile liblo libjack2 boost ]; buildInputs = [ scons pkgconfig libsamplerate libsndfile liblo libjack2 boost ];
NIX_CFLAGS_COMPILE = "-fpermissive";
buildPhase = '' buildPhase = ''
mkdir -p $out mkdir -p $out

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2 { stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
, intltool, xlibsWrapper, libxklavier, libgcrypt, libaudit, gcc6 , intltool, xlibsWrapper, libxklavier, libgcrypt, libaudit
, qt4 ? null , qt4 ? null
, withQt5 ? false, qtbase , withQt5 ? false, qtbase
}: }:
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig intltool ]; nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [ buildInputs = [
pam libxcb glib libXdmcp itstool libxml2 libxklavier libgcrypt pam libxcb glib libXdmcp itstool libxml2 libxklavier libgcrypt
qt4 libaudit gcc6 qt4 libaudit
] ++ optional withQt5 qtbase; ] ++ optional withQt5 qtbase;
configureFlags = [ configureFlags = [

View File

@ -27,9 +27,9 @@ in rec {
preview = mkStudio rec { preview = mkStudio rec {
pname = "android-studio-preview"; pname = "android-studio-preview";
version = "3.0.0.10"; # "Android Studio 3.0 Beta 2" version = "3.0.0.12"; # "Android Studio 3.0 Beta 4"
build = "171.4263559"; build = "171.4304935";
sha256Hash = "0bya69qa50s6dbvlzb198b5w6ixs21y6b56v3v1xjb3kndf9y44w"; sha256Hash = "127ys250m1gdglj5y2qzxl73kh5qb4zlwyf79as7765mmcfcikn5";
meta = stable.meta // { meta = stable.meta // {
description = "The Official IDE for Android (preview version)"; description = "The Official IDE for Android (preview version)";

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, libjpeg, mesa, freeglut, zlib, cmake, libX11, libxml2, libpng, { stdenv, fetchurl, libjpeg, mesa, freeglut, zlib, cmake, libX11, libxml2, libpng,
libXxf86vm, gcc6 }: libXxf86vm }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "freepv-0.3.0"; name = "freepv-0.3.0";
@ -10,7 +10,7 @@ stdenv.mkDerivation {
}; };
buildInputs = [ libjpeg mesa freeglut zlib cmake libX11 libxml2 libpng buildInputs = [ libjpeg mesa freeglut zlib cmake libX11 libxml2 libpng
libXxf86vm gcc6 ]; libXxf86vm ];
postPatch = '' postPatch = ''
sed -i -e '/GECKO/d' CMakeLists.txt sed -i -e '/GECKO/d' CMakeLists.txt

View File

@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
name = "lensfun-0.3.patch"; name = "lensfun-0.3.patch";
sha256 = "0ys45x4r4bjjlx0zpd5d56rgjz7k8gxili4r4k8zx3zfka4a3zwv"; sha256 = "0ys45x4r4bjjlx0zpd5d56rgjz7k8gxili4r4k8zx3zfka4a3zwv";
}) })
./gcc6.patch
]; ];
postPatch = '' # kinda icky postPatch = '' # kinda icky

View File

@ -0,0 +1,13 @@
diff --git c/Sources/ptImage.cpp i/Sources/ptImage.cpp
index 9c95093..623c157 100755
--- c/Sources/ptImage.cpp
+++ i/Sources/ptImage.cpp
@@ -5291,7 +5291,7 @@ ptImage* ptImage::Box(const uint16_t MaxRadius, float* Mask) {
NewRow = NewRow < 0? -NewRow : NewRow > Height1? Height1_2-NewRow : NewRow ;
NewRow *= m_Width;
for(j = -IntRadius; j <= IntRadius; j++) {
- if (Dist[abs(i)][abs(j)] < Radius) {
+ if (Dist[int16_t(abs(i))][int16_t(abs(j))] < Radius) {
NewCol = Col+j;
NewCol = NewCol < 0? -NewCol : NewCol > Width1? Width1_2-NewCol : NewCol ;

View File

@ -9,10 +9,13 @@ stdenv.mkDerivation {
sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv"; sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv";
}; };
patches = fetchurl { patches = [
url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-3.diff.gz; (fetchurl {
sha256 = "0cp4jz3sg9g86vprh90pmwpcfla79f0dr50w14yh01k0yaq70fs8"; url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-4.diff.gz;
}; sha256 = "03zsh57fijciiv23lf55k6fbfhhzm866xjhx83x54v5s1g2h6m8y";
})
./sizewidth.patch
];
buildInputs = [ db gtk2 bzip2 ]; buildInputs = [ db gtk2 bzip2 ];

View File

@ -0,0 +1,40 @@
diff --git i/src/mkimage.cc w/src/mkimage.cc
index 02e65b1..b263796 100755
--- i/src/mkimage.cc
+++ w/src/mkimage.cc
@@ -285,27 +285,27 @@ bostream& JigdoDescVec::put(bostream& file, MD5Sum* md) const {
//______________________________________________________________________
namespace {
- const int SIZE_WIDTH = 12;
+ const int MKIMAGE_SIZE_WIDTH = 12;
}
ostream& JigdoDesc::ImageInfo::put(ostream& s) const {
- s << "image-info " << setw(SIZE_WIDTH) << size() << " "
+ s << "image-info " << setw(MKIMAGE_SIZE_WIDTH) << size() << " "
<< md5() << ' ' << blockLength() << '\n';
return s;
}
ostream& JigdoDesc::UnmatchedData::put(ostream& s) const {
- s << "in-template " << setw(SIZE_WIDTH) << offset() << ' '
- << setw(SIZE_WIDTH) << size() << '\n';
+ s << "in-template " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' '
+ << setw(MKIMAGE_SIZE_WIDTH) << size() << '\n';
return s;
}
ostream& JigdoDesc::MatchedFile::put(ostream& s) const {
- s << "need-file " << setw(SIZE_WIDTH) << offset() << ' '
- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
+ s << "need-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' '
+ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
return s;
}
ostream& JigdoDesc::WrittenFile::put(ostream& s) const {
- s << "have-file " << setw(SIZE_WIDTH) << offset() << ' '
- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
+ s << "have-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' '
+ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n';
return s;
}

View File

@ -0,0 +1,66 @@
{ stdenv
, makeWrapper
, fetchurl
, intltool
, python3Packages
, gtk3
, dbus
, libwnck3
, keybinder3
, hicolor_icon_theme
, wrapGAppsHook
}:
with python3Packages;
buildPythonApplication rec {
name = "kupfer-${version}";
version = "319";
src = fetchurl {
url = "https://github.com/kupferlauncher/kupfer/releases/download/v${version}/kupfer-v${version}.tar.xz";
sha256 = "0c9xjx13r8ckfr4az116bhxsd3pk78v04c3lz6lqhraak0rp4d92";
};
nativeBuildInputs = [ wrapGAppsHook intltool ];
buildInputs = [ hicolor_icon_theme docutils libwnck3 keybinder3 ];
propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ];
configurePhase = ''
runHook preConfigure
python ./waf configure --prefix=$prefix
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
python ./waf
runHook postBuild
'';
installPhase = let
pythonPath = (stdenv.lib.concatMapStringsSep ":"
(m: "${m}/lib/${python.libPrefix}/site-packages")
propagatedBuildInputs);
in ''
runHook preInstall
python ./waf install
gappsWrapperArgs+=(
"--prefix" "PYTHONPATH" : "${pythonPath}"
"--set" "PYTHONNOUSERSITE" "1"
)
runHook postInstall
'';
doCheck = false; # no tests
meta = with stdenv.lib; {
description = "A smart, quick launcher";
homepage = "https://kupferlauncher.github.io/";
license = licenses.gpl3;
maintainers = with maintainers; [ cobbal ];
platforms = platforms.linux;
};
}

View File

@ -1,11 +0,0 @@
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@
AC_PREREQ([2.53])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR(src/ekiga.cpp)
-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar])
+AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
AM_MAINTAINER_MODE([enable])
AC_CONFIG_HEADERS([config.h])

View File

@ -1,31 +0,0 @@
--- a/m4/ax_boost_base.m4
+++ b/m4/ax_boost_base.m4
@@ -33,7 +33,7 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 20
+#serial 22
AC_DEFUN([AX_BOOST_BASE],
[
@@ -91,9 +91,17 @@ if test "x$want_boost" = "xyes"; then
dnl are found, e.g. when only header-only libraries are installed!
libsubdirs="lib"
ax_arch=`uname -m`
- if test $ax_arch = x86_64 -o $ax_arch = ppc64 -o $ax_arch = s390x -o $ax_arch = sparc64; then
+ case $ax_arch in
+ x86_64|ppc64|s390x|sparc64|aarch64)
libsubdirs="lib64 lib lib64"
- fi
+ ;;
+ esac
+
+ dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
+ dnl them priority over the other paths since, if libs are found there, they
+ dnl are almost assuredly the ones desired.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs"
dnl first we check the system location for boost libraries
dnl this location ist chosen if boost libraries are installed with the --layout=system option

View File

@ -1,4 +1,4 @@
{ stdenv, glib, fetchurl, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool { stdenv, glib, fetchurl, fetchpatch, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool
, perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi, autoreconfHook , perl, perlXMLParser, evolution_data_server, gnome_doc_utils, avahi, autoreconfHook
, libsigcxx, gtk, dbus_glib, libnotify, libXext, xextproto, gnome3, boost, libsecret , libsigcxx, gtk, dbus_glib, libnotify, libXext, xextproto, gnome3, boost, libsecret
, pkgconfig, libxml2, videoproto, unixODBC, db, nspr, nss, zlib, hicolor_icon_theme , pkgconfig, libxml2, videoproto, unixODBC, db, nspr, nss, zlib, hicolor_icon_theme
@ -34,7 +34,17 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
patches = [ ./autofoo.patch ./boost.patch ]; patches = [
(fetchpatch { url = https://sources.debian.net/data/main/e/ekiga/4.0.1-7/debian/patches/autofoo.patch;
sha256 = "1vyagslws4mm9yfz1m5p1kv9sxmk5lls9vxpm6j72q2ahsgydzx4";
})
(fetchpatch { url = https://sources.debian.net/data/main/e/ekiga/4.0.1-7/debian/patches/boost.patch;
sha256 = "01k0rw8ibrrf9zn9lx6dzbrgy58w089hqxqxqdv9whb65cldlj5s";
})
(fetchpatch { url = https://src.fedoraproject.org/rpms/ekiga/raw/dbf5f5ba449d22bd79f0394cddb7d4d8a88ec6ac/f/ekiga-4.0.1-libresolv.patch;
sha256 = "18wc68im8422ibpa0gkrkgjq41m7hikaha3xqmjs2km45i1cwcaz";
})
];
postInstall = '' postInstall = ''
wrapProgram "$out"/bin/ekiga \ wrapProgram "$out"/bin/ekiga \
@ -45,7 +55,6 @@ stdenv.mkDerivation rec {
description = "VOIP/Videoconferencing app with full SIP and H.323 support"; description = "VOIP/Videoconferencing app with full SIP and H.323 support";
maintainers = [ maintainers.raskin ]; maintainers = [ maintainers.raskin ];
platforms = platforms.linux; platforms = platforms.linux;
broken = true; # because of glibc-2.25
}; };
passthru = { passthru = {

View File

@ -20,11 +20,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mutt-${version}"; name = "mutt-${version}";
version = "1.8.3"; version = "1.9.0";
src = fetchurl { src = fetchurl {
url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz"; url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
sha256 = "0hpd896mw630sd6ps60hpka8cg691nvr627n8kmabv7zcxnp90cv"; sha256 = "1m72z5schbagd0a00fv8q0nrnkz9zrgvmdb5yplnmwm1sfapavgc";
}; };
patchPhase = optionalString (openssl != null) '' patchPhase = optionalString (openssl != null) ''

View File

@ -6,7 +6,7 @@ stdenv.mkDerivation rec
{ name = "iv-19"; { name = "iv-19";
src = fetchurl src = fetchurl
{ url = "http://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/${name}.tar.gz"; { url = "http://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/${name}.tar.gz";
sha256 = "1q22vjngvn3m61mjxynkik7pxvsgc9a0ym46qpa84hmz1v86mdrw"; sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
}; };
nativeBuildInputs = [ patchelf ]; nativeBuildInputs = [ patchelf ];
buildInputs = [ libXext ]; buildInputs = [ libXext ];

View File

@ -14,14 +14,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "neuron-${version}"; name = "neuron-${version}";
version = "7.4"; version = "7.5";
nativeBuildInputs = [ which pkgconfig automake autoconf libtool ]; nativeBuildInputs = [ which pkgconfig automake autoconf libtool ];
buildInputs = [ ncurses readline python mpi iv ]; buildInputs = [ ncurses readline python mpi iv ];
src = fetchurl { src = fetchurl {
url = "http://www.neuron.yale.edu/ftp/neuron/versions/v${version}/nrn-${version}.tar.gz"; url = "http://www.neuron.yale.edu/ftp/neuron/versions/v${version}/nrn-${version}.tar.gz";
sha256 = "1rid8cmv5mca0vqkgwahm0prkwkbdvchgw2bdwvx4adkn8bbl0ql"; sha256 = "0f26v3qvzblcdjg7isq0m9j2q8q7x3vhmkfllv8lsr3gyj44lljf";
}; };
patches = (stdenv.lib.optional (stdenv.isDarwin) [ ./neuron-carbon-disable.patch ]); patches = (stdenv.lib.optional (stdenv.isDarwin) [ ./neuron-carbon-disable.patch ]);

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "iverilog-${version}"; name = "iverilog-${version}";
version = "2016.05.21"; version = "2017.08.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "steveicarus"; owner = "steveicarus";
repo = "iverilog"; repo = "iverilog";
rev = "45fbf558065c0fdac9aa088ecd34e9bf49e81305"; rev = "ac87138c44cd6089046668c59a328b4d14c16ddc";
sha256 = "137p7gkmp5kwih93i2a3lcf36a6k38j7fxglvw9y59w0233vj452"; sha256 = "1npv0533h0h2wxrxkgiaxqiasw2p4kj2vv5bd69w5xld227xcwpg";
}; };
patchPhase = '' patchPhase = ''

View File

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A high-performance theorem prover and SMT solver"; description = "A high-performance theorem prover and SMT solver";
homepage = "http://yices.csl.sri.com"; homepage = "http://yices.csl.sri.com";
license = licenses.unfreeRedistributable; license = licenses.gpl3;
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
maintainers = [ maintainers.thoughtpolice ]; maintainers = [ maintainers.thoughtpolice ];
}; };

View File

@ -1,46 +0,0 @@
{ stdenv, fetchFromGitHub, python2 }:
# Copied shamelessly from the normal z3 .nix
let
python = python2;
in stdenv.mkDerivation rec {
name = "z3_opt-${version}";
version = "4.3.2";
src = fetchFromGitHub {
owner = "Z3Prover";
repo = "z3";
rev = "9377779e5818b2ca15c4f39921b2ba3a42f948e7";
sha256 = "15d6hsb61hrm5vy3l2gnkrfnqr68lvspnznm17vyhm61ld33yaff";
};
buildInputs = [ python ];
enableParallelBuilding = true;
configurePhase = "${python.interpreter} scripts/mk_make.py --prefix=$out && cd build";
# z3's install phase is stupid because it tries to calculate the
# python package store location itself, meaning it'll attempt to
# write files into the nix store, and fail.
soext = if stdenv.system == "x86_64-darwin" then ".dylib" else ".so";
installPhase = ''
mkdir -p $out/bin $out/${python.sitePackages} $out/include
cp ../src/api/z3*.h $out/include
cp ../src/api/c++/z3*.h $out/include
cp z3 $out/bin
cp libz3${soext} $out/lib
cp libz3${soext} $out/${python.sitePackages}
cp z3*.pyc $out/${python.sitePackages}
cp ../src/api/python/*.py $out/${python.sitePackages}
'';
meta = {
description = "A high-performance theorem prover and SMT solver, optimization edition";
homepage = "https://github.com/Z3Prover/z3";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice sheganinans ];
};
}

View File

@ -0,0 +1,31 @@
{ stdenv, fetchFromGitLab, git, go }:
stdenv.mkDerivation rec {
version = "0.21.2";
name = "gitaly-${version}";
srcs = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
sha256 = "025r6vcra2bjm6xggcgnsqgkpvd7y2w73ff6lxrn06lbr4dfbfrf";
};
buildInputs = [ git go ];
buildPhase = ''
make PREFIX=$out
'';
installPhase = ''
mkdir -p $out/bin
make install PREFIX=$out
'';
meta = with stdenv.lib; {
homepage = http://www.gitlab.com/;
platforms = platforms.unix;
maintainers = with maintainers; [ roblabla ];
license = licenses.mit;
};
}

View File

@ -1,23 +1,24 @@
{ stdenv, ruby, bundler, fetchFromGitLab }: { stdenv, ruby, bundler, fetchFromGitLab, go }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "4.1.1"; version = "5.3.1";
name = "gitlab-shell-${version}"; name = "gitlab-shell-${version}";
srcs = fetchFromGitLab { srcs = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-shell"; repo = "gitlab-shell";
rev = "v${version}"; rev = "v${version}";
sha256 = "1i7dqs0csqcjwkvg8csz5f1zxy1inrzxzz3g9j618aldqxzjfgnr"; sha256 = "1w5j66qq9kzcjzz9hhd2zdmvffzk9986m8nprfy5q4k9kglph53q";
}; };
buildInputs = [ buildInputs = [
ruby bundler ruby bundler go
]; ];
patches = [ ./remove-hardcoded-locations.patch ]; patches = [ ./remove-hardcoded-locations.patch ./fixes.patch ];
installPhase = '' installPhase = ''
ruby bin/compile
mkdir -p $out/ mkdir -p $out/
cp -R . $out/ cp -R . $out/
@ -49,7 +50,7 @@ stdenv.mkDerivation rec {
# #
# TODO: Are there any security implications? The commit adding # TODO: Are there any security implications? The commit adding
# unsetenv_others didn't mention anything... # unsetenv_others didn't mention anything...
# #
# Kernel::exec({'PATH' => ENV['PATH'], 'LD_LIBRARY_PATH' => ENV['LD_LIBRARY_PATH'], 'GL_ID' => ENV['GL_ID']}, *args, unsetenv_others: true) # Kernel::exec({'PATH' => ENV['PATH'], 'LD_LIBRARY_PATH' => ENV['LD_LIBRARY_PATH'], 'GL_ID' => ENV['GL_ID']}, *args, unsetenv_others: true)
substituteInPlace lib/gitlab_shell.rb --replace\ substituteInPlace lib/gitlab_shell.rb --replace\
" *args, unsetenv_others: true)"\ " *args, unsetenv_others: true)"\

View File

@ -0,0 +1,17 @@
diff --git a/support/go_build.rb b/support/go_build.rb
index 82f94d2..40ba35e 100644
--- a/support/go_build.rb
+++ b/support/go_build.rb
@@ -25,9 +25,8 @@ module GoBuild
def run!(env, cmd)
raise "env must be a hash" unless env.is_a?(Hash)
raise "cmd must be an array" unless cmd.is_a?(Array)
-
- if !system(env, *cmd)
- abort "command failed: #{env.inspect} #{cmd.join(' ')}"
- end
+ puts "Starting #{env.inspect} #{cmd.join(' ')}"
+ Process::wait(Process::spawn(env, *cmd))
+ abort "command failed: #{env.inspect} #{cmd.join(' ')}" unless $?.exitstatus == 0
end
end

View File

@ -1,9 +1,9 @@
diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb
index c1d175a..7f7fd2f 100644 index 0b11ce3..ffc3faf 100644
--- a/lib/gitlab_projects.rb --- a/lib/gitlab_projects.rb
+++ b/lib/gitlab_projects.rb +++ b/lib/gitlab_projects.rb
@@ -5,7 +5,7 @@ require_relative 'gitlab_config' @@ -8,7 +8,7 @@ require_relative 'gitlab_metrics'
require_relative 'gitlab_logger' require_relative 'gitlab_reference_counter'
class GitlabProjects class GitlabProjects
- GLOBAL_HOOKS_DIRECTORY = File.join(ROOT_PATH, 'hooks') - GLOBAL_HOOKS_DIRECTORY = File.join(ROOT_PATH, 'hooks')
@ -11,3 +11,17 @@ index c1d175a..7f7fd2f 100644
# Project name is a directory name for repository with .git at the end # Project name is a directory name for repository with .git at the end
# It may be namespaced or not. Like repo.git or gitlab/repo.git # It may be namespaced or not. Like repo.git or gitlab/repo.git
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
index e7d0254..181ec8a 100644
--- a/lib/gitlab_shell.rb
+++ b/lib/gitlab_shell.rb
@@ -163,7 +163,8 @@ class GitlabShell
end
# We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
- Kernel::exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
+ # Except we don't, because we're already in the right directory on nixos !
+ Kernel::exec(env, *args, unsetenv_others: true)
end
def api

View File

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitLab, git, go }: { stdenv, fetchFromGitLab, git, go }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.3.0"; version = "2.3.0";
name = "gitlab-workhorse-${version}"; name = "gitlab-workhorse-${version}";
srcs = fetchFromGitLab { srcs = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-workhorse"; repo = "gitlab-workhorse";
rev = "v${version}"; rev = "v${version}";
sha256 = "06pxnb675c5fwk7rv6fjh0cwbdylrdbjcyf8b0pins8jl0ix0szy"; sha256 = "07b82kjfm8r3ql55ifl0zbifnnsbvng4zlzjpbsb7lisg26s97w8";
}; };
buildInputs = [ git go ]; buildInputs = [ git go ];

View File

@ -1,6 +1,6 @@
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'rails', '4.2.7.1' gem 'rails', '4.2.8'
gem 'rails-deprecated_sanitizer', '~> 1.0.3' gem 'rails-deprecated_sanitizer', '~> 1.0.3'
# Responders respond_to and respond_with # Responders respond_to and respond_with
@ -15,27 +15,31 @@ gem 'default_value_for', '~> 3.0.0'
gem 'mysql2', '~> 0.3.16', group: :mysql gem 'mysql2', '~> 0.3.16', group: :mysql
gem 'pg', '~> 0.18.2', group: :postgres gem 'pg', '~> 0.18.2', group: :postgres
gem 'rugged', '~> 0.24.0' gem 'rugged', '~> 0.25.1.1'
gem 'faraday', '~> 0.12'
# Authentication libraries # Authentication libraries
gem 'devise', '~> 4.2' gem 'devise', '~> 4.2'
gem 'doorkeeper', '~> 4.2.0' gem 'doorkeeper', '~> 4.2.0'
gem 'omniauth', '~> 1.3.2' gem 'doorkeeper-openid_connect', '~> 1.1.0'
gem 'omniauth-auth0', '~> 1.4.1' gem 'omniauth', '~> 1.4.2'
gem 'omniauth-azure-oauth2', '~> 0.0.6' gem 'omniauth-auth0', '~> 1.4.1'
gem 'omniauth-cas3', '~> 1.1.2' gem 'omniauth-azure-oauth2', '~> 0.0.6'
gem 'omniauth-facebook', '~> 4.0.0' gem 'omniauth-cas3', '~> 1.1.2'
gem 'omniauth-github', '~> 1.1.1' gem 'omniauth-facebook', '~> 4.0.0'
gem 'omniauth-gitlab', '~> 1.0.2' gem 'omniauth-github', '~> 1.1.1'
gem 'omniauth-gitlab', '~> 1.0.2'
gem 'omniauth-google-oauth2', '~> 0.4.1' gem 'omniauth-google-oauth2', '~> 0.4.1'
gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
gem 'omniauth-saml', '~> 1.7.0' gem 'omniauth-oauth2-generic', '~> 0.2.2'
gem 'omniauth-shibboleth', '~> 1.2.0' gem 'omniauth-saml', '~> 1.7.0'
gem 'omniauth-twitter', '~> 1.2.0' gem 'omniauth-shibboleth', '~> 1.2.0'
gem 'omniauth_crowd', '~> 2.2.0' gem 'omniauth-twitter', '~> 1.2.0'
gem 'omniauth-authentiq', '~> 0.2.0' gem 'omniauth_crowd', '~> 2.2.0'
gem 'rack-oauth2', '~> 1.2.1' gem 'omniauth-authentiq', '~> 0.3.0'
gem 'jwt', '~> 1.5.6' gem 'rack-oauth2', '~> 1.2.1'
gem 'jwt', '~> 1.5.6'
# Spam and anti-bot protection # Spam and anti-bot protection
gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails' gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails'
@ -56,20 +60,24 @@ gem 'browser', '~> 2.2'
# LDAP Auth # LDAP Auth
# GitLab fork with several improvements to original library. For full list of changes # GitLab fork with several improvements to original library. For full list of changes
# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master # see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: 'omniauth-ldap' gem 'gitlab_omniauth-ldap', '~> 2.0.2', require: 'omniauth-ldap'
gem 'net-ldap'
# Git Wiki # Git Wiki
# Required manually in config/initializers/gollum.rb to control load order # Required manually in config/initializers/gollum.rb to control load order
gem 'gollum-lib', '~> 4.2', require: false gem 'gollum-lib', '~> 4.2', require: false
gem 'gollum-rugged_adapter', '~> 0.4.2', require: false gem 'gollum-rugged_adapter', '~> 0.4.4', require: false
# Language detection # Language detection
gem 'github-linguist', '~> 4.7.0', require: 'linguist' gem 'github-linguist', '~> 4.7.0', require: 'linguist'
# API # API
gem 'grape', '~> 0.18.0' gem 'grape', '~> 0.19.0'
gem 'grape-entity', '~> 0.6.0' gem 'grape-entity', '~> 0.6.0'
gem 'rack-cors', '~> 0.4.0', require: 'rack/cors' gem 'rack-cors', '~> 0.4.0', require: 'rack/cors'
# Disable strong_params so that Mash does not respond to :permitted?
gem 'hashie-forbidden_attributes'
# Pagination # Pagination
gem 'kaminari', '~> 0.17.0' gem 'kaminari', '~> 0.17.0'
@ -78,18 +86,19 @@ gem 'kaminari', '~> 0.17.0'
gem 'hamlit', '~> 2.6.1' gem 'hamlit', '~> 2.6.1'
# Files attachments # Files attachments
gem 'carrierwave', '~> 0.10.0' gem 'carrierwave', '~> 1.1'
# Drag and Drop UI # Drag and Drop UI
gem 'dropzonejs-rails', '~> 0.7.1' gem 'dropzonejs-rails', '~> 0.7.1'
# for backups # for backups
gem 'fog-aws', '~> 0.9' gem 'fog-aws', '~> 0.9'
gem 'fog-core', '~> 1.40' gem 'fog-core', '~> 1.44'
gem 'fog-google', '~> 0.5' gem 'fog-google', '~> 0.5'
gem 'fog-local', '~> 0.3' gem 'fog-local', '~> 0.3'
gem 'fog-openstack', '~> 0.1' gem 'fog-openstack', '~> 0.1'
gem 'fog-rackspace', '~> 0.1.1' gem 'fog-rackspace', '~> 0.1.1'
gem 'fog-aliyun', '~> 0.1.0'
# for Google storage # for Google storage
gem 'google-api-client', '~> 0.8.6' gem 'google-api-client', '~> 0.8.6'
@ -101,23 +110,24 @@ gem 'unf', '~> 0.1.4'
gem 'seed-fu', '~> 2.3.5' gem 'seed-fu', '~> 2.3.5'
# Markdown and HTML processing # Markdown and HTML processing
gem 'html-pipeline', '~> 1.11.0' gem 'html-pipeline', '~> 1.11.0'
gem 'deckar01-task_list', '1.0.6', require: 'task_list/railtie' gem 'deckar01-task_list', '2.0.0'
gem 'gitlab-markup', '~> 1.5.1' gem 'gitlab-markup', '~> 1.5.1'
gem 'redcarpet', '~> 3.3.3' gem 'redcarpet', '~> 3.4'
gem 'RedCloth', '~> 4.3.2' gem 'RedCloth', '~> 4.3.2'
gem 'rdoc', '~> 4.2' gem 'rdoc', '~> 4.2'
gem 'org-ruby', '~> 0.9.12' gem 'org-ruby', '~> 0.9.12'
gem 'creole', '~> 0.5.0' gem 'creole', '~> 0.5.0'
gem 'wikicloth', '0.8.1' gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 1.5.2' gem 'asciidoctor', '~> 1.5.2'
gem 'asciidoctor-plantuml', '0.0.7' gem 'asciidoctor-plantuml', '0.0.7'
gem 'rouge', '~> 2.0' gem 'rouge', '~> 2.0'
gem 'truncato', '~> 0.7.8' gem 'truncato', '~> 0.7.8'
gem 'bootstrap_form', '~> 2.7.0'
# See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s # See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s
# and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM # and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM
gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2', '< 1.6.8' gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2'
# Diffs # Diffs
gem 'diffy', '~> 3.1.0' gem 'diffy', '~> 3.1.0'
@ -137,20 +147,26 @@ gem 'after_commit_queue', '~> 1.3.0'
gem 'acts-as-taggable-on', '~> 4.0' gem 'acts-as-taggable-on', '~> 4.0'
# Background jobs # Background jobs
gem 'sidekiq', '~> 4.2.7' gem 'sidekiq', '~> 5.0'
gem 'sidekiq-cron', '~> 0.4.4' gem 'sidekiq-cron', '~> 0.6.0'
gem 'redis-namespace', '~> 1.5.2' gem 'redis-namespace', '~> 1.5.2'
gem 'sidekiq-limit_fetch', '~> 3.4' gem 'sidekiq-limit_fetch', '~> 3.4'
# Cron Parser
gem 'rufus-scheduler', '~> 3.4'
# HTTP requests # HTTP requests
gem 'httparty', '~> 0.13.3' gem 'httparty', '~> 0.13.3'
# Colored output to console # Colored output to console
gem 'rainbow', '~> 2.1.0' gem 'rainbow', '~> 2.2'
# GitLab settings # GitLab settings
gem 'settingslogic', '~> 2.0.9' gem 'settingslogic', '~> 2.0.9'
# Linear-time regex library for untrusted regular expressions
gem 're2', '~> 1.0.0'
# Misc # Misc
gem 'version_sorter', '~> 2.1.0' gem 'version_sorter', '~> 2.1.0'
@ -178,7 +194,7 @@ gem 'gemnasium-gitlab-service', '~> 0.2'
gem 'slack-notifier', '~> 1.5.1' gem 'slack-notifier', '~> 1.5.1'
# Asana integration # Asana integration
gem 'asana', '~> 0.4.0' gem 'asana', '~> 0.6.0'
# FogBugz integration # FogBugz integration
gem 'ruby-fogbugz', '~> 0.2.1' gem 'ruby-fogbugz', '~> 0.2.1'
@ -200,7 +216,7 @@ gem 'babosa', '~> 1.0.2'
gem 'loofah', '~> 2.0.3' gem 'loofah', '~> 2.0.3'
# Working with license # Working with license
gem 'licensee', '~> 8.0.0' gem 'licensee', '~> 8.7.0'
# Protect against bruteforcing # Protect against bruteforcing
gem 'rack-attack', '~> 4.4.1' gem 'rack-attack', '~> 4.4.1'
@ -221,50 +237,69 @@ gem 'oj', '~> 2.17.4'
gem 'chronic', '~> 0.10.2' gem 'chronic', '~> 0.10.2'
gem 'chronic_duration', '~> 0.10.6' gem 'chronic_duration', '~> 0.10.6'
gem 'webpack-rails', '~> 0.9.9' gem 'webpack-rails', '~> 0.9.10'
gem 'rack-proxy', '~> 0.6.0' gem 'rack-proxy', '~> 0.6.0'
gem 'sass-rails', '~> 5.0.6' gem 'sass-rails', '~> 5.0.6'
gem 'coffee-rails', '~> 4.1.0' gem 'coffee-rails', '~> 4.1.0'
gem 'uglifier', '~> 2.7.2' gem 'uglifier', '~> 2.7.2'
gem 'addressable', '~> 2.3.8' gem 'addressable', '~> 2.3.8'
gem 'bootstrap-sass', '~> 3.3.0' gem 'bootstrap-sass', '~> 3.3.0'
gem 'font-awesome-rails', '~> 4.6.1' gem 'font-awesome-rails', '~> 4.7'
gem 'gemojione', '~> 3.0' gem 'gemojione', '~> 3.0'
gem 'gon', '~> 6.1.0' gem 'gon', '~> 6.1.0'
gem 'jquery-atwho-rails', '~> 1.3.2' gem 'jquery-atwho-rails', '~> 1.3.2'
gem 'jquery-rails', '~> 4.1.0' gem 'jquery-rails', '~> 4.1.0'
gem 'jquery-ui-rails', '~> 5.0.0' gem 'request_store', '~> 1.3'
gem 'request_store', '~> 1.3' gem 'select2-rails', '~> 3.5.9'
gem 'select2-rails', '~> 3.5.9' gem 'virtus', '~> 1.0.1'
gem 'virtus', '~> 1.0.1' gem 'net-ssh', '~> 3.0.1'
gem 'net-ssh', '~> 3.0.1' gem 'base32', '~> 0.3.0'
gem 'base32', '~> 0.3.0'
# Sentry integration # Sentry integration
gem 'sentry-raven', '~> 2.0.0' gem 'sentry-raven', '~> 2.5.3'
gem 'premailer-rails', '~> 1.9.0' gem 'premailer-rails', '~> 1.9.7'
# I18n
gem 'ruby_parser', '~> 3.8', require: false
gem 'rails-i18n', '~> 4.0.9'
gem 'gettext_i18n_rails', '~> 1.8.0'
gem 'gettext_i18n_rails_js', '~> 1.2.0'
gem 'gettext', '~> 3.2.2', require: false, group: :development
# Perf bar
gem 'peek', '~> 1.0.1'
gem 'peek-gc', '~> 0.0.2'
gem 'peek-host', '~> 1.0.0'
gem 'peek-mysql2', '~> 1.1.0', group: :mysql
gem 'peek-performance_bar', '~> 1.2.1'
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 # Metrics
group :metrics do group :metrics do
gem 'allocations', '~> 1.0', require: false, platform: :mri gem 'allocations', '~> 1.0', require: false, platform: :mri
gem 'method_source', '~> 0.8', require: false gem 'method_source', '~> 0.8', require: false
gem 'influxdb', '~> 0.2', require: false gem 'influxdb', '~> 0.2', require: false
# Prometheus
gem 'prometheus-client-mmap', '~>0.7.0.beta11'
gem 'raindrops', '~> 0.18'
end end
group :development do group :development do
gem 'foreman', '~> 0.78.0' gem 'foreman', '~> 0.78.0'
gem 'brakeman', '~> 3.4.0', require: false gem 'brakeman', '~> 3.6.0', require: false
gem 'letter_opener_web', '~> 1.3.0' gem 'letter_opener_web', '~> 1.3.0'
gem 'bullet', '~> 5.2.0', require: false
gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
gem 'web-console', '~> 2.0'
# Better errors handler # Better errors handler
gem 'better_errors', '~> 1.0.1' gem 'better_errors', '~> 2.1.0'
gem 'binding_of_caller', '~> 0.7.2' gem 'binding_of_caller', '~> 0.7.2'
# thin instead webrick # thin instead webrick
@ -272,19 +307,21 @@ group :development do
end end
group :development, :test do group :development, :test do
gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
gem 'pry-byebug', '~> 3.4.1', platform: :mri gem 'pry-byebug', '~> 3.4.1', platform: :mri
gem 'pry-rails', '~> 0.3.4' gem 'pry-rails', '~> 0.3.4'
gem 'awesome_print', '~> 1.2.0', require: false gem 'awesome_print', '~> 1.2.0', require: false
gem 'fuubar', '~> 2.0.0' gem 'fuubar', '~> 2.0.0'
gem 'database_cleaner', '~> 1.5.0' gem 'database_cleaner', '~> 1.5.0'
gem 'factory_girl_rails', '~> 4.7.0' gem 'factory_girl_rails', '~> 4.7.0'
gem 'rspec-rails', '~> 3.5.0' gem 'rspec-rails', '~> 3.5.0'
gem 'rspec-retry', '~> 0.4.5' gem 'rspec-retry', '~> 0.4.5'
gem 'spinach-rails', '~> 0.2.1' gem 'spinach-rails', '~> 0.2.1'
gem 'spinach-rerun-reporter', '~> 0.0.2' gem 'spinach-rerun-reporter', '~> 0.0.2'
gem 'rspec_profiling' gem 'rspec_profiling', '~> 0.0.5'
gem 'rspec-set', '~> 0.1.3'
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
gem 'minitest', '~> 5.7.0' gem 'minitest', '~> 5.7.0'
@ -292,20 +329,20 @@ group :development, :test do
# Generate Fake data # Generate Fake data
gem 'ffaker', '~> 2.4' gem 'ffaker', '~> 2.4'
gem 'capybara', '~> 2.6.2' gem 'capybara', '~> 2.6.2'
gem 'capybara-screenshot', '~> 1.0.0' gem 'capybara-screenshot', '~> 1.0.0'
gem 'poltergeist', '~> 1.9.0' gem 'poltergeist', '~> 1.9.0'
gem 'spring', '~> 1.7.0' gem 'spring', '~> 2.0.0'
gem 'spring-commands-rspec', '~> 1.0.4' gem 'spring-commands-rspec', '~> 1.0.4'
gem 'spring-commands-spinach', '~> 1.1.0' gem 'spring-commands-spinach', '~> 1.1.0'
gem 'rubocop', '~> 0.46.0', require: false gem 'rubocop', '~> 0.47.1', require: false
gem 'rubocop-rspec', '~> 1.9.1', require: false gem 'rubocop-rspec', '~> 1.15.0', require: false
gem 'scss_lint', '~> 0.47.0', require: false gem 'scss_lint', '~> 0.47.0', require: false
gem 'haml_lint', '~> 0.18.2', require: false gem 'haml_lint', '~> 0.21.0', require: false
gem 'simplecov', '0.12.0', require: false gem 'simplecov', '~> 0.14.0', require: false
gem 'flay', '~> 2.6.1', require: false gem 'flay', '~> 2.8.0', require: false
gem 'bundler-audit', '~> 0.5.0', require: false gem 'bundler-audit', '~> 0.5.0', require: false
gem 'benchmark-ips', '~> 2.3.0', require: false gem 'benchmark-ips', '~> 2.3.0', require: false
@ -322,17 +359,16 @@ group :test do
gem 'shoulda-matchers', '~> 2.8.0', require: false gem 'shoulda-matchers', '~> 2.8.0', require: false
gem 'email_spec', '~> 1.6.0' gem 'email_spec', '~> 1.6.0'
gem 'json-schema', '~> 2.6.2' gem 'json-schema', '~> 2.6.2'
gem 'webmock', '~> 1.21.0' gem 'webmock', '~> 2.3.2'
gem 'test_after_commit', '~> 1.1' gem 'test_after_commit', '~> 1.1'
gem 'sham_rack', '~> 1.3.6' gem 'sham_rack', '~> 1.3.6'
gem 'timecop', '~> 0.8.0' gem 'timecop', '~> 0.8.0'
gem 'concurrent-ruby', '~> 1.0.5'
end end
gem 'newrelic_rpm', '~> 3.16'
gem 'octokit', '~> 4.6.2' gem 'octokit', '~> 4.6.2'
gem 'mail_room', '~> 0.9.0' gem 'mail_room', '~> 0.9.1'
gem 'email_reply_trimmer', '~> 0.1' gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text' gem 'html2text'
@ -340,16 +376,25 @@ gem 'html2text'
gem 'ruby-prof', '~> 0.16.2' gem 'ruby-prof', '~> 0.16.2'
# OAuth # OAuth
gem 'oauth2', '~> 1.2.0' gem 'oauth2', '~> 1.4'
# Soft deletion # Soft deletion
gem 'paranoia', '~> 2.2' gem 'paranoia', '~> 2.3.1'
# Health check # Health check
gem 'health_check', '~> 2.2.0' gem 'health_check', '~> 2.6.0'
# System information # System information
gem 'vmstat', '~> 2.3.0' gem 'vmstat', '~> 2.3.0'
gem 'sys-filesystem', '~> 1.1.6' gem 'sys-filesystem', '~> 1.1.6'
gem "activerecord-nulldb-adapter" # Gitaly GRPC client
gem 'gitaly', '~> 0.14.0'
gem 'toml-rb', '~> 0.3.15', require: false
# Feature toggles
gem 'flipper', '~> 0.10.2'
gem 'flipper-active_record', '~> 0.10.2'
gem 'activerecord-nulldb-adapter'

View File

@ -2,43 +2,42 @@ GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
RedCloth (4.3.2) RedCloth (4.3.2)
ace-rails-ap (4.1.0) ace-rails-ap (4.1.2)
actionmailer (4.2.7.1) actionmailer (4.2.8)
actionpack (= 4.2.7.1) actionpack (= 4.2.8)
actionview (= 4.2.7.1) actionview (= 4.2.8)
activejob (= 4.2.7.1) activejob (= 4.2.8)
mail (~> 2.5, >= 2.5.4) mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5) rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.7.1) actionpack (4.2.8)
actionview (= 4.2.7.1) actionview (= 4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
rack (~> 1.6) rack (~> 1.6)
rack-test (~> 0.6.2) rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5) rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2) rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (4.2.7.1) actionview (4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
builder (~> 3.1) builder (~> 3.1)
erubis (~> 2.7.0) erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5) rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.2) rails-html-sanitizer (~> 1.0, >= 1.0.3)
activejob (4.2.7.1) activejob (4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
globalid (>= 0.3.0) globalid (>= 0.3.0)
activemodel (4.2.7.1) activemodel (4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
builder (~> 3.1) builder (~> 3.1)
activerecord (4.2.7.1) activerecord (4.2.8)
activemodel (= 4.2.7.1) activemodel (= 4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
arel (~> 6.0) arel (~> 6.0)
activerecord-nulldb-adapter (0.3.3) activerecord-nulldb-adapter (0.3.7)
activerecord (>= 2.0.0) activerecord (>= 2.0.0)
activerecord_sane_schema_dumper (0.2) activerecord_sane_schema_dumper (0.2)
rails (>= 4, < 5) rails (>= 4, < 5)
activesupport (4.2.7.1) activesupport (4.2.8)
i18n (~> 0.7) i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1) minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4) thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1) tzinfo (~> 1.1)
@ -49,8 +48,8 @@ GEM
activerecord (>= 3.0) activerecord (>= 3.0)
akismet (2.0.0) akismet (2.0.0)
allocations (1.0.5) allocations (1.0.5)
arel (6.0.3) arel (6.0.4)
asana (0.4.0) asana (0.6.0)
faraday (~> 0.9) faraday (~> 0.9)
faraday_middleware (~> 0.9) faraday_middleware (~> 0.9)
faraday_middleware-multi_json (~> 0.0) faraday_middleware-multi_json (~> 0.0)
@ -59,6 +58,7 @@ GEM
asciidoctor-plantuml (0.0.7) asciidoctor-plantuml (0.0.7)
asciidoctor (~> 1.5) asciidoctor (~> 1.5)
ast (2.3.0) ast (2.3.0)
atomic (1.1.99)
attr_encrypted (3.0.3) attr_encrypted (3.0.3)
encryptor (~> 3.0.0) encryptor (~> 3.0.0)
attr_required (1.0.0) attr_required (1.0.0)
@ -78,18 +78,21 @@ GEM
base32 (0.3.2) base32 (0.3.2)
bcrypt (3.1.11) bcrypt (3.1.11)
benchmark-ips (2.3.0) benchmark-ips (2.3.0)
better_errors (1.0.1) better_errors (2.1.1)
coderay (>= 1.0.0) coderay (>= 1.0.0)
erubis (>= 2.6.6) erubis (>= 2.6.6)
rack (>= 0.9.0)
bindata (2.3.5)
binding_of_caller (0.7.2) binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1) debug_inspector (>= 0.0.1)
bootstrap-sass (3.3.6) bootstrap-sass (3.3.6)
autoprefixer-rails (>= 5.2.1) autoprefixer-rails (>= 5.2.1)
sass (>= 3.3.4) sass (>= 3.3.4)
brakeman (3.4.1) bootstrap_form (2.7.0)
brakeman (3.6.1)
browser (2.2.0) browser (2.2.0)
builder (3.2.2) builder (3.2.3)
bullet (5.2.0) bullet (5.5.1)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
uniform_notifier (~> 1.10.0) uniform_notifier (~> 1.10.0)
bundler-audit (0.5.0) bundler-audit (0.5.0)
@ -103,13 +106,12 @@ GEM
rack (>= 1.0.0) rack (>= 1.0.0)
rack-test (>= 0.5.4) rack-test (>= 0.5.4)
xpath (~> 2.0) xpath (~> 2.0)
capybara-screenshot (1.0.11) capybara-screenshot (1.0.14)
capybara (>= 1.0, < 3) capybara (>= 1.0, < 3)
launchy launchy
carrierwave (0.10.0) carrierwave (1.1.0)
activemodel (>= 3.2.0) activemodel (>= 4.0.0)
activesupport (>= 3.2.0) activesupport (>= 4.0.0)
json (>= 1.7)
mime-types (>= 1.16) mime-types (>= 1.16)
cause (0.1) cause (0.1)
charlock_holmes (0.7.3) charlock_holmes (0.7.3)
@ -117,8 +119,9 @@ GEM
chronic_duration (0.10.6) chronic_duration (0.10.6)
numerizer (~> 0.1.1) numerizer (~> 0.1.1)
chunky_png (1.3.5) chunky_png (1.3.5)
citrus (3.0.2)
cliver (0.3.2) cliver (0.3.2)
coderay (1.1.0) coderay (1.1.1)
coercible (1.0.0) coercible (1.0.0)
descendants_tracker (~> 0.0.1) descendants_tracker (~> 0.0.1)
coffee-rails (4.1.1) coffee-rails (4.1.1)
@ -129,12 +132,14 @@ GEM
execjs execjs
coffee-script-source (1.10.0) coffee-script-source (1.10.0)
colorize (0.7.7) colorize (0.7.7)
concurrent-ruby (1.0.2) concurrent-ruby (1.0.5)
concurrent-ruby-ext (1.0.5)
concurrent-ruby (= 1.0.5)
connection_pool (2.2.1) connection_pool (2.2.1)
crack (0.4.3) crack (0.4.3)
safe_yaml (~> 1.0.0) safe_yaml (~> 1.0.0)
creole (0.5.0) creole (0.5.0)
css_parser (1.4.1) css_parser (1.5.0)
addressable addressable
d3_rails (3.5.11) d3_rails (3.5.11)
railties (>= 3.1.0) railties (>= 3.1.0)
@ -142,10 +147,8 @@ GEM
database_cleaner (1.5.3) database_cleaner (1.5.3)
debug_inspector (0.0.2) debug_inspector (0.0.2)
debugger-ruby_core_source (1.3.8) debugger-ruby_core_source (1.3.8)
deckar01-task_list (1.0.6) deckar01-task_list (2.0.0)
activesupport (~> 4.0)
html-pipeline html-pipeline
rack (~> 1.0)
default_value_for (3.0.2) default_value_for (3.0.2)
activerecord (>= 3.2.0, < 5.1) activerecord (>= 3.2.0, < 5.1)
descendants_tracker (0.0.4) descendants_tracker (0.0.4)
@ -169,6 +172,9 @@ GEM
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
doorkeeper (4.2.0) doorkeeper (4.2.0)
railties (>= 4.2) railties (>= 4.2)
doorkeeper-openid_connect (1.1.2)
doorkeeper (~> 4.0)
json-jwt (~> 1.6)
dropzonejs-rails (0.7.2) dropzonejs-rails (0.7.2)
rails (> 3.1) rails (> 3.1)
email_reply_trimmer (0.1.6) email_reply_trimmer (0.1.6)
@ -179,8 +185,10 @@ GEM
equalizer (0.0.11) equalizer (0.0.11)
erubis (2.7.0) erubis (2.7.0)
escape_utils (1.1.1) escape_utils (1.1.1)
et-orbi (1.0.3)
tzinfo
eventmachine (1.0.8) eventmachine (1.0.8)
excon (0.52.0) excon (0.55.0)
execjs (2.6.0) execjs (2.6.0)
expression_parser (0.9.0) expression_parser (0.9.0)
extlib (0.9.16) extlib (0.9.16)
@ -189,27 +197,39 @@ GEM
factory_girl_rails (4.7.0) factory_girl_rails (4.7.0)
factory_girl (~> 4.7.0) factory_girl (~> 4.7.0)
railties (>= 3.0.0) railties (>= 3.0.0)
faraday (0.9.2) faraday (0.12.1)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
faraday_middleware (0.10.0) faraday_middleware (0.11.0.1)
faraday (>= 0.7.4, < 0.10) faraday (>= 0.7.4, < 1.0)
faraday_middleware-multi_json (0.0.6) faraday_middleware-multi_json (0.0.6)
faraday_middleware faraday_middleware
multi_json multi_json
fast_gettext (1.4.0)
ffaker (2.4.0) ffaker (2.4.0)
ffi (1.9.10) ffi (1.9.10)
flay (2.6.1) flay (2.8.1)
erubis (~> 2.7.0)
path_expander (~> 1.0)
ruby_parser (~> 3.0) ruby_parser (~> 3.0)
sexp_processor (~> 4.0) sexp_processor (~> 4.0)
flipper (0.10.2)
flipper-active_record (0.10.2)
activerecord (>= 3.2, < 6)
flipper (~> 0.10.2)
flowdock (0.7.1) flowdock (0.7.1)
httparty (~> 0.7) httparty (~> 0.7)
multi_json multi_json
fog-aws (0.11.0) fog-aliyun (0.1.0)
fog-core (~> 1.27)
fog-json (~> 1.0)
ipaddress (~> 0.8)
xml-simple (~> 1.1)
fog-aws (0.13.0)
fog-core (~> 1.38) fog-core (~> 1.38)
fog-json (~> 1.0) fog-json (~> 1.0)
fog-xml (~> 0.1) fog-xml (~> 0.1)
ipaddress (~> 0.8) ipaddress (~> 0.8)
fog-core (1.42.0) fog-core (1.44.1)
builder builder
excon (~> 0.49) excon (~> 0.49)
formatador (~> 0.2) formatador (~> 0.2)
@ -231,10 +251,10 @@ GEM
fog-json (>= 1.0) fog-json (>= 1.0)
fog-xml (>= 0.1) fog-xml (>= 0.1)
ipaddress (>= 0.8) ipaddress (>= 0.8)
fog-xml (0.1.2) fog-xml (0.1.3)
fog-core fog-core
nokogiri (~> 1.5, >= 1.5.11) nokogiri (>= 1.5.11, < 2.0.0)
font-awesome-rails (4.6.1.0) font-awesome-rails (4.7.0.1)
railties (>= 3.2, < 5.1) railties (>= 3.2, < 5.1)
foreman (0.78.0) foreman (0.78.0)
thor (~> 0.19.1) thor (~> 0.19.1)
@ -247,7 +267,20 @@ GEM
gemojione (3.0.1) gemojione (3.0.1)
json json
get_process_mem (0.2.0) get_process_mem (0.2.0)
gettext (3.2.2)
locale (>= 2.0.5)
text (>= 1.3.0)
gettext_i18n_rails (1.8.0)
fast_gettext (>= 0.9.0)
gettext_i18n_rails_js (1.2.0)
gettext (>= 3.0.2)
gettext_i18n_rails (>= 0.7.1)
po_to_json (>= 1.0.0)
rails (>= 3.2.0)
gherkin-ruby (0.3.2) gherkin-ruby (0.3.2)
gitaly (0.14.0)
google-protobuf (~> 3.1)
grpc (~> 1.0)
github-linguist (4.7.6) github-linguist (4.7.6)
charlock_holmes (~> 0.7.3) charlock_holmes (~> 0.7.3)
escape_utils (~> 1.1.0) escape_utils (~> 1.1.0)
@ -264,11 +297,11 @@ GEM
mime-types (>= 1.16, < 3) mime-types (>= 1.16, < 3)
posix-spawn (~> 0.3) posix-spawn (~> 0.3)
gitlab-markup (1.5.1) gitlab-markup (1.5.1)
gitlab_omniauth-ldap (1.2.1) gitlab_omniauth-ldap (2.0.2)
net-ldap (~> 0.9) net-ldap (~> 0.16)
omniauth (~> 1.0) omniauth (~> 1.3)
pyu-ruby-sasl (~> 0.0.3.1) pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
rubyntlm (~> 0.3) rubyntlm (~> 0.5)
globalid (0.3.7) globalid (0.3.7)
activesupport (>= 4.1.0) activesupport (>= 4.1.0)
gollum-grit_adapter (1.0.1) gollum-grit_adapter (1.0.1)
@ -280,9 +313,9 @@ GEM
rouge (~> 2.0) rouge (~> 2.0)
sanitize (~> 2.1.0) sanitize (~> 2.1.0)
stringex (~> 2.5.1) stringex (~> 2.5.1)
gollum-rugged_adapter (0.4.2) gollum-rugged_adapter (0.4.4)
mime-types (>= 1.15) mime-types (>= 1.15)
rugged (~> 0.24.0, >= 0.21.3) rugged (~> 0.25)
gon (6.1.0) gon (6.1.0)
actionpack (>= 3.0) actionpack (>= 3.0)
json json
@ -299,6 +332,7 @@ GEM
multi_json (~> 1.10) multi_json (~> 1.10)
retriable (~> 1.4) retriable (~> 1.4)
signet (~> 0.6) signet (~> 0.6)
google-protobuf (3.2.0.2)
googleauth (0.5.1) googleauth (0.5.1)
faraday (~> 0.9) faraday (~> 0.9)
jwt (~> 1.4) jwt (~> 1.4)
@ -307,7 +341,7 @@ GEM
multi_json (~> 1.11) multi_json (~> 1.11)
os (~> 0.9) os (~> 0.9)
signet (~> 0.7) signet (~> 0.7)
grape (0.18.0) grape (0.19.1)
activesupport activesupport
builder builder
hashie (>= 2.1.0) hashie (>= 2.1.0)
@ -320,19 +354,25 @@ GEM
grape-entity (0.6.0) grape-entity (0.6.0)
activesupport activesupport
multi_json (>= 1.3.2) multi_json (>= 1.3.2)
grpc (1.4.0)
google-protobuf (~> 3.1)
googleauth (~> 0.5.1)
haml (4.0.7) haml (4.0.7)
tilt tilt
haml_lint (0.18.2) haml_lint (0.21.0)
haml (~> 4.0) haml (~> 4.0)
rake (>= 10, < 12) rake (>= 10, < 13)
rubocop (>= 0.36.0) rubocop (>= 0.47.0)
sysexits (~> 1.1) sysexits (~> 1.1)
hamlit (2.6.1) hamlit (2.6.1)
temple (~> 0.7.6) temple (~> 0.7.6)
thor thor
tilt tilt
hashie (3.4.4) hashdiff (0.3.4)
health_check (2.2.1) hashie (3.5.5)
hashie-forbidden_attributes (0.1.1)
hashie (>= 3.0)
health_check (2.6.0)
rails (>= 4.0) rails (>= 4.0)
hipchat (1.5.2) hipchat (1.5.2)
httparty httparty
@ -356,8 +396,8 @@ GEM
json (~> 1.8) json (~> 1.8)
multi_xml (>= 0.5.2) multi_xml (>= 0.5.2)
httpclient (2.8.2) httpclient (2.8.2)
i18n (0.7.0) i18n (0.8.1)
ice_nine (0.11.1) ice_nine (0.11.2)
influxdb (0.2.3) influxdb (0.2.3)
cause cause
json json
@ -370,9 +410,13 @@ GEM
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0) railties (>= 4.2.0)
thor (>= 0.14, < 2.0) thor (>= 0.14, < 2.0)
jquery-ui-rails (5.0.5) json (1.8.6)
railties (>= 3.2.16) json-jwt (1.7.1)
json (1.8.3) activesupport
bindata
multi_json (>= 1.3)
securecompare
url_safe_base64
json-schema (2.6.2) json-schema (2.6.2)
addressable (~> 2.3.8) addressable (~> 2.3.8)
jwt (1.5.6) jwt (1.5.6)
@ -401,56 +445,56 @@ GEM
rubyzip rubyzip
thor thor
xml-simple xml-simple
licensee (8.0.0) licensee (8.7.0)
rugged (>= 0.24b) rugged (~> 0.24)
little-plugger (1.1.4) little-plugger (1.1.4)
logging (2.1.0) locale (2.1.2)
logging (2.2.2)
little-plugger (~> 1.1) little-plugger (~> 1.1)
multi_json (~> 1.10) multi_json (~> 1.10)
loofah (2.0.3) loofah (2.0.3)
nokogiri (>= 1.5.9) nokogiri (>= 1.5.9)
mail (2.6.4) mail (2.6.5)
mime-types (>= 1.16, < 4) mime-types (>= 1.16, < 4)
mail_room (0.9.0) mail_room (0.9.1)
memoist (0.15.0) memoist (0.15.0)
method_source (0.8.2) method_source (0.8.2)
mime-types (2.99.3) mime-types (2.99.3)
mimemagic (0.3.0) mimemagic (0.3.0)
mini_portile2 (2.1.0) mini_portile2 (2.1.0)
minitest (5.7.0) minitest (5.7.0)
mmap2 (2.2.7)
mousetrap-rails (1.4.6) mousetrap-rails (1.4.6)
multi_json (1.12.1) multi_json (1.12.1)
multi_xml (0.5.5) multi_xml (0.6.0)
multipart-post (2.0.0) multipart-post (2.0.0)
mustermann (0.4.0) mustermann (0.4.0)
tool (~> 0.2) tool (~> 0.2)
mustermann-grape (0.4.0) mustermann-grape (0.4.0)
mustermann (= 0.4.0) mustermann (= 0.4.0)
mysql2 (0.3.20) mysql2 (0.3.20)
net-ldap (0.12.1) net-ldap (0.16.0)
net-ssh (3.0.1) net-ssh (3.0.1)
netrc (0.11.0) netrc (0.11.0)
newrelic_rpm (3.16.0.318) nokogiri (1.6.8.1)
nokogiri (1.6.7.2)
mini_portile2 (~> 2.1.0) mini_portile2 (~> 2.1.0)
pkg-config (~> 1.1.7)
numerizer (0.1.1) numerizer (0.1.1)
oauth (0.5.1) oauth (0.5.1)
oauth2 (1.2.0) oauth2 (1.4.0)
faraday (>= 0.8, < 0.10) faraday (>= 0.8, < 0.13)
jwt (~> 1.0) jwt (~> 1.0)
multi_json (~> 1.3) multi_json (~> 1.3)
multi_xml (~> 0.5) multi_xml (~> 0.5)
rack (>= 1.2, < 3) rack (>= 1.2, < 3)
octokit (4.6.2) octokit (4.6.2)
sawyer (~> 0.8.0, >= 0.5.3) sawyer (~> 0.8.0, >= 0.5.3)
oj (2.17.4) oj (2.17.5)
omniauth (1.3.2) omniauth (1.4.2)
hashie (>= 1.2, < 4) hashie (>= 1.2, < 4)
rack (>= 1.0, < 3) rack (>= 1.0, < 3)
omniauth-auth0 (1.4.1) omniauth-auth0 (1.4.1)
omniauth-oauth2 (~> 1.1) omniauth-oauth2 (~> 1.1)
omniauth-authentiq (0.2.2) omniauth-authentiq (0.3.0)
omniauth-oauth2 (~> 1.3, >= 1.3.1) omniauth-oauth2 (~> 1.3, >= 1.3.1)
omniauth-azure-oauth2 (0.0.6) omniauth-azure-oauth2 (0.0.6)
jwt (~> 1.0) jwt (~> 1.0)
@ -469,11 +513,10 @@ GEM
omniauth (~> 1.0) omniauth (~> 1.0)
omniauth-oauth2 (~> 1.0) omniauth-oauth2 (~> 1.0)
omniauth-google-oauth2 (0.4.1) omniauth-google-oauth2 (0.4.1)
addressable (~> 2.3) jwt (~> 1.5.2)
jwt (~> 1.0)
multi_json (~> 1.3) multi_json (~> 1.3)
omniauth (>= 1.1.1) omniauth (>= 1.1.1)
omniauth-oauth2 (~> 1.3.1) omniauth-oauth2 (>= 1.3.1)
omniauth-kerberos (0.3.0) omniauth-kerberos (0.3.0)
omniauth-multipassword omniauth-multipassword
timfel-krb5-auth (~> 0.8) timfel-krb5-auth (~> 0.8)
@ -485,6 +528,8 @@ GEM
omniauth-oauth2 (1.3.1) omniauth-oauth2 (1.3.1)
oauth2 (~> 1.0) oauth2 (~> 1.0)
omniauth (~> 1.2) omniauth (~> 1.2)
omniauth-oauth2-generic (0.2.2)
omniauth-oauth2 (~> 1.0)
omniauth-saml (1.7.0) omniauth-saml (1.7.0)
omniauth (~> 1.3) omniauth (~> 1.3)
ruby-saml (~> 1.4) ruby-saml (~> 1.4)
@ -501,12 +546,44 @@ GEM
rubypants (~> 0.2) rubypants (~> 0.2)
orm_adapter (0.5.0) orm_adapter (0.5.0)
os (0.9.6) os (0.9.6)
paranoia (2.2.0) paranoia (2.3.1)
activerecord (>= 4.0, < 5.1) activerecord (>= 4.0, < 5.2)
parser (2.3.1.4) parser (2.4.0.0)
ast (~> 2.2) ast (~> 2.2)
path_expander (1.0.1)
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-host (1.0.0)
peek
peek-mysql2 (1.1.0)
atomic (>= 1.0.0)
mysql2
peek
peek-performance_bar (1.2.1)
peek (>= 0.1.0)
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) pg (0.18.4)
pkg-config (1.1.7) po_to_json (1.0.1)
json (>= 1.6.0)
poltergeist (1.9.0) poltergeist (1.9.0)
capybara (~> 2.1) capybara (~> 2.1)
cliver (~> 0.3.1) cliver (~> 0.3.1)
@ -514,20 +591,23 @@ GEM
websocket-driver (>= 0.2.0) websocket-driver (>= 0.2.0)
posix-spawn (0.3.11) posix-spawn (0.3.11)
powerpack (0.1.1) powerpack (0.1.1)
premailer (1.8.6) premailer (1.10.4)
css_parser (>= 1.3.6) addressable
css_parser (>= 1.4.10)
htmlentities (>= 4.0.0) htmlentities (>= 4.0.0)
premailer-rails (1.9.2) premailer-rails (1.9.7)
actionmailer (>= 3, < 6) actionmailer (>= 3, < 6)
premailer (~> 1.7, >= 1.7.9) premailer (~> 1.7, >= 1.7.9)
pry (0.10.3) prometheus-client-mmap (0.7.0.beta11)
mmap2 (~> 2.2, >= 2.2.7)
pry (0.10.4)
coderay (~> 1.1.0) coderay (~> 1.1.0)
method_source (~> 0.8.1) method_source (~> 0.8.1)
slop (~> 3.4) slop (~> 3.4)
pry-byebug (3.4.1) pry-byebug (3.4.2)
byebug (~> 9.0) byebug (~> 9.0)
pry (~> 0.10) pry (~> 0.10)
pry-rails (0.3.4) pry-rails (0.3.5)
pry (>= 0.9.10) pry (>= 0.9.10)
pyu-ruby-sasl (0.0.3.3) pyu-ruby-sasl (0.0.3.3)
rack (1.6.5) rack (1.6.5)
@ -548,42 +628,47 @@ GEM
rack rack
rack-test (0.6.3) rack-test (0.6.3)
rack (>= 1.0) rack (>= 1.0)
rails (4.2.7.1) rails (4.2.8)
actionmailer (= 4.2.7.1) actionmailer (= 4.2.8)
actionpack (= 4.2.7.1) actionpack (= 4.2.8)
actionview (= 4.2.7.1) actionview (= 4.2.8)
activejob (= 4.2.7.1) activejob (= 4.2.8)
activemodel (= 4.2.7.1) activemodel (= 4.2.8)
activerecord (= 4.2.7.1) activerecord (= 4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
bundler (>= 1.3.0, < 2.0) bundler (>= 1.3.0, < 2.0)
railties (= 4.2.7.1) railties (= 4.2.8)
sprockets-rails sprockets-rails
rails-deprecated_sanitizer (1.0.3) rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha) activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.7) rails-dom-testing (1.0.8)
activesupport (>= 4.2.0.beta, < 5.0) activesupport (>= 4.2.0.beta, < 5.0)
nokogiri (~> 1.6.0) nokogiri (~> 1.6)
rails-deprecated_sanitizer (>= 1.0.1) rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.3) rails-html-sanitizer (1.0.3)
loofah (~> 2.0) loofah (~> 2.0)
railties (4.2.7.1) rails-i18n (4.0.9)
actionpack (= 4.2.7.1) i18n (~> 0.7)
activesupport (= 4.2.7.1) railties (~> 4.0)
railties (4.2.8)
actionpack (= 4.2.8)
activesupport (= 4.2.8)
rake (>= 0.8.7) rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0) thor (>= 0.18.1, < 2.0)
rainbow (2.1.0) rainbow (2.2.2)
raindrops (0.17.0) rake
raindrops (0.18.0)
rake (10.5.0) rake (10.5.0)
rblineprof (0.3.6) rblineprof (0.3.6)
debugger-ruby_core_source (~> 1.3) debugger-ruby_core_source (~> 1.3)
rdoc (4.2.2) rdoc (4.2.2)
json (~> 1.4) json (~> 1.4)
re2 (1.0.0)
recaptcha (3.0.0) recaptcha (3.0.0)
json json
recursive-open-struct (1.0.0) recursive-open-struct (1.0.0)
redcarpet (3.3.3) redcarpet (3.4.0)
redis (3.2.2) redis (3.3.3)
redis-actionpack (5.0.1) redis-actionpack (5.0.1)
actionpack (>= 4.0, < 6) actionpack (>= 4.0, < 6)
redis-rack (>= 1, < 3) redis-rack (>= 1, < 3)
@ -612,7 +697,7 @@ GEM
retriable (1.4.1) retriable (1.4.1)
rinku (2.0.0) rinku (2.0.0)
rotp (2.1.2) rotp (2.1.2)
rouge (2.0.7) rouge (2.1.0)
rqrcode (0.7.0) rqrcode (0.7.0)
chunky_png chunky_png
rqrcode-rails3 (0.1.7) rqrcode-rails3 (0.1.7)
@ -639,19 +724,20 @@ GEM
rspec-support (~> 3.5.0) rspec-support (~> 3.5.0)
rspec-retry (0.4.5) rspec-retry (0.4.5)
rspec-core rspec-core
rspec-set (0.1.3)
rspec-support (3.5.0) rspec-support (3.5.0)
rspec_profiling (0.0.4) rspec_profiling (0.0.5)
activerecord activerecord
pg pg
rails rails
sqlite3 sqlite3
rubocop (0.46.0) rubocop (0.47.1)
parser (>= 2.3.1.1, < 3.0) parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1) powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0) rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1) unicode-display_width (~> 1.0, >= 1.0.1)
rubocop-rspec (1.9.1) rubocop-rspec (1.15.0)
rubocop (>= 0.42.0) rubocop (>= 0.42.0)
ruby-fogbugz (0.2.1) ruby-fogbugz (0.2.1)
crack (~> 0.4) crack (~> 0.4)
@ -659,13 +745,14 @@ GEM
ruby-progressbar (1.8.1) ruby-progressbar (1.8.1)
ruby-saml (1.4.1) ruby-saml (1.4.1)
nokogiri (>= 1.5.10) nokogiri (>= 1.5.10)
ruby_parser (3.8.2) ruby_parser (3.9.0)
sexp_processor (~> 4.1) sexp_processor (~> 4.1)
rubyntlm (0.5.2) rubyntlm (0.6.2)
rubypants (0.2.0) rubypants (0.2.0)
rubyzip (1.2.1) rubyzip (1.2.1)
rufus-scheduler (3.1.10) rufus-scheduler (3.4.0)
rugged (0.24.0) et-orbi (~> 1.0)
rugged (0.25.1.1)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sanitize (2.1.0) sanitize (2.1.0)
nokogiri (>= 1.4.4) nokogiri (>= 1.4.4)
@ -682,27 +769,27 @@ GEM
scss_lint (0.47.1) scss_lint (0.47.1)
rake (>= 0.9, < 11) rake (>= 0.9, < 11)
sass (~> 3.4.15) sass (~> 3.4.15)
securecompare (1.0.0)
seed-fu (2.3.6) seed-fu (2.3.6)
activerecord (>= 3.1) activerecord (>= 3.1)
activesupport (>= 3.1) activesupport (>= 3.1)
select2-rails (3.5.9.3) select2-rails (3.5.9.3)
thor (~> 0.14) thor (~> 0.14)
sentry-raven (2.0.2) sentry-raven (2.5.3)
faraday (>= 0.7.6, < 0.10.x) faraday (>= 0.7.6, < 1.0)
settingslogic (2.0.9) settingslogic (2.0.9)
sexp_processor (4.7.0) sexp_processor (4.9.0)
sham_rack (1.3.6) sham_rack (1.3.6)
rack rack
shoulda-matchers (2.8.0) shoulda-matchers (2.8.0)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
sidekiq (4.2.7) sidekiq (5.0.0)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
connection_pool (~> 2.2, >= 2.2.0) connection_pool (~> 2.2, >= 2.2.0)
rack-protection (>= 1.5.0) rack-protection (>= 1.5.0)
redis (~> 3.2, >= 3.2.1) redis (~> 3.3, >= 3.3.3)
sidekiq-cron (0.4.4) sidekiq-cron (0.6.0)
redis-namespace (>= 1.5.2) rufus-scheduler (>= 3.3.0)
rufus-scheduler (>= 2.0.24)
sidekiq (>= 4.2.1) sidekiq (>= 4.2.1)
sidekiq-limit_fetch (3.4.0) sidekiq-limit_fetch (3.4.0)
sidekiq (>= 4) sidekiq (>= 4)
@ -711,7 +798,7 @@ GEM
faraday (~> 0.9) faraday (~> 0.9)
jwt (~> 1.5) jwt (~> 1.5)
multi_json (~> 1.10) multi_json (~> 1.10)
simplecov (0.12.0) simplecov (0.14.1)
docile (~> 1.1.0) docile (~> 1.1.0)
json (>= 1.8, < 3) json (>= 1.8, < 3)
simplecov-html (~> 0.10.0) simplecov-html (~> 0.10.0)
@ -728,19 +815,20 @@ GEM
spinach (>= 0.4) spinach (>= 0.4)
spinach-rerun-reporter (0.0.2) spinach-rerun-reporter (0.0.2)
spinach (~> 0.8) spinach (~> 0.8)
spring (1.7.2) spring (2.0.1)
activesupport (>= 4.2)
spring-commands-rspec (1.0.4) spring-commands-rspec (1.0.4)
spring (>= 0.9.1) spring (>= 0.9.1)
spring-commands-spinach (1.1.0) spring-commands-spinach (1.1.0)
spring (>= 0.9.1) spring (>= 0.9.1)
sprockets (3.7.0) sprockets (3.7.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
rack (> 1, < 3) rack (> 1, < 3)
sprockets-rails (3.1.1) sprockets-rails (3.2.0)
actionpack (>= 4.0) actionpack (>= 4.0)
activesupport (>= 4.0) activesupport (>= 4.0)
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
sqlite3 (1.3.11) sqlite3 (1.3.13)
stackprof (0.2.10) stackprof (0.2.10)
state_machines (0.4.0) state_machines (0.4.0)
state_machines-activemodel (0.4.0) state_machines-activemodel (0.4.0)
@ -756,15 +844,18 @@ GEM
temple (0.7.7) temple (0.7.7)
test_after_commit (1.1.0) test_after_commit (1.1.0)
activerecord (>= 3.2) activerecord (>= 3.2)
text (1.3.1)
thin (1.7.0) thin (1.7.0)
daemons (~> 1.0, >= 1.0.9) daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4) eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3) rack (>= 1, < 3)
thor (0.19.1) thor (0.19.4)
thread_safe (0.3.5) thread_safe (0.3.6)
tilt (2.0.5) tilt (2.0.6)
timecop (0.8.1) timecop (0.8.1)
timfel-krb5-auth (0.8.3) timfel-krb5-auth (0.8.3)
toml-rb (0.3.15)
citrus (~> 3.0, > 3.0)
tool (0.2.3) tool (0.2.3)
truncato (0.7.8) truncato (0.7.8)
htmlentities (~> 4.3.1) htmlentities (~> 4.3.1)
@ -779,7 +870,7 @@ GEM
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.7.2) unf_ext (0.0.7.2)
unicode-display_width (1.1.1) unicode-display_width (1.1.3)
unicorn (5.1.0) unicorn (5.1.0)
kgio (~> 2.6) kgio (~> 2.6)
raindrops (~> 0.7) raindrops (~> 0.7)
@ -787,6 +878,7 @@ GEM
get_process_mem (~> 0) get_process_mem (~> 0)
unicorn (>= 4, < 6) unicorn (>= 4, < 6)
uniform_notifier (1.10.0) uniform_notifier (1.10.0)
url_safe_base64 (0.2.2)
validates_hostname (1.0.6) validates_hostname (1.0.6)
activerecord (>= 3.0) activerecord (>= 3.0)
activesupport (>= 3.0) activesupport (>= 3.0)
@ -799,16 +891,12 @@ GEM
vmstat (2.3.0) vmstat (2.3.0)
warden (1.2.6) warden (1.2.6)
rack (>= 1.0) rack (>= 1.0)
web-console (2.3.0) webmock (2.3.2)
activemodel (>= 4.0)
binding_of_caller (>= 0.7.2)
railties (>= 4.0)
sprockets-rails (>= 2.0, < 4.0)
webmock (1.21.0)
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
webpack-rails (0.9.9) hashdiff
rails (>= 3.2.0) webpack-rails (0.9.10)
railties (>= 3.2.0)
websocket-driver (0.6.3) websocket-driver (0.6.3)
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2) websocket-extensions (0.1.2)
@ -833,7 +921,7 @@ DEPENDENCIES
after_commit_queue (~> 1.3.0) after_commit_queue (~> 1.3.0)
akismet (~> 2.0) akismet (~> 2.0)
allocations (~> 1.0) allocations (~> 1.0)
asana (~> 0.4.0) asana (~> 0.6.0)
asciidoctor (~> 1.5.2) asciidoctor (~> 1.5.2)
asciidoctor-plantuml (= 0.0.7) asciidoctor-plantuml (= 0.0.7)
attr_encrypted (~> 3.0.0) attr_encrypted (~> 3.0.0)
@ -841,60 +929,72 @@ DEPENDENCIES
babosa (~> 1.0.2) babosa (~> 1.0.2)
base32 (~> 0.3.0) base32 (~> 0.3.0)
benchmark-ips (~> 2.3.0) benchmark-ips (~> 2.3.0)
better_errors (~> 1.0.1) better_errors (~> 2.1.0)
binding_of_caller (~> 0.7.2) binding_of_caller (~> 0.7.2)
bootstrap-sass (~> 3.3.0) bootstrap-sass (~> 3.3.0)
brakeman (~> 3.4.0) bootstrap_form (~> 2.7.0)
brakeman (~> 3.6.0)
browser (~> 2.2) browser (~> 2.2)
bullet (~> 5.2.0) bullet (~> 5.5.0)
bundler-audit (~> 0.5.0) bundler-audit (~> 0.5.0)
capybara (~> 2.6.2) capybara (~> 2.6.2)
capybara-screenshot (~> 1.0.0) capybara-screenshot (~> 1.0.0)
carrierwave (~> 0.10.0) carrierwave (~> 1.1)
charlock_holmes (~> 0.7.3) charlock_holmes (~> 0.7.3)
chronic (~> 0.10.2) chronic (~> 0.10.2)
chronic_duration (~> 0.10.6) chronic_duration (~> 0.10.6)
coffee-rails (~> 4.1.0) coffee-rails (~> 4.1.0)
concurrent-ruby (~> 1.0.5)
connection_pool (~> 2.0) connection_pool (~> 2.0)
creole (~> 0.5.0) creole (~> 0.5.0)
d3_rails (~> 3.5.0) d3_rails (~> 3.5.0)
database_cleaner (~> 1.5.0) database_cleaner (~> 1.5.0)
deckar01-task_list (= 1.0.6) deckar01-task_list (= 2.0.0)
default_value_for (~> 3.0.0) default_value_for (~> 3.0.0)
devise (~> 4.2) devise (~> 4.2)
devise-two-factor (~> 3.0.0) devise-two-factor (~> 3.0.0)
diffy (~> 3.1.0) diffy (~> 3.1.0)
doorkeeper (~> 4.2.0) doorkeeper (~> 4.2.0)
doorkeeper-openid_connect (~> 1.1.0)
dropzonejs-rails (~> 0.7.1) dropzonejs-rails (~> 0.7.1)
email_reply_trimmer (~> 0.1) email_reply_trimmer (~> 0.1)
email_spec (~> 1.6.0) email_spec (~> 1.6.0)
factory_girl_rails (~> 4.7.0) factory_girl_rails (~> 4.7.0)
faraday (~> 0.12)
ffaker (~> 2.4) ffaker (~> 2.4)
flay (~> 2.6.1) flay (~> 2.8.0)
flipper (~> 0.10.2)
flipper-active_record (~> 0.10.2)
fog-aliyun (~> 0.1.0)
fog-aws (~> 0.9) fog-aws (~> 0.9)
fog-core (~> 1.40) fog-core (~> 1.44)
fog-google (~> 0.5) fog-google (~> 0.5)
fog-local (~> 0.3) fog-local (~> 0.3)
fog-openstack (~> 0.1) fog-openstack (~> 0.1)
fog-rackspace (~> 0.1.1) fog-rackspace (~> 0.1.1)
font-awesome-rails (~> 4.6.1) font-awesome-rails (~> 4.7)
foreman (~> 0.78.0) foreman (~> 0.78.0)
fuubar (~> 2.0.0) fuubar (~> 2.0.0)
gemnasium-gitlab-service (~> 0.2) gemnasium-gitlab-service (~> 0.2)
gemojione (~> 3.0) gemojione (~> 3.0)
gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.2.0)
gitaly (~> 0.14.0)
github-linguist (~> 4.7.0) github-linguist (~> 4.7.0)
gitlab-flowdock-git-hook (~> 1.0.1) gitlab-flowdock-git-hook (~> 1.0.1)
gitlab-markup (~> 1.5.1) gitlab-markup (~> 1.5.1)
gitlab_omniauth-ldap (~> 1.2.1) gitlab_omniauth-ldap (~> 2.0.2)
gollum-lib (~> 4.2) gollum-lib (~> 4.2)
gollum-rugged_adapter (~> 0.4.2) gollum-rugged_adapter (~> 0.4.4)
gon (~> 6.1.0) gon (~> 6.1.0)
google-api-client (~> 0.8.6) google-api-client (~> 0.8.6)
grape (~> 0.18.0) grape (~> 0.19.0)
grape-entity (~> 0.6.0) grape-entity (~> 0.6.0)
haml_lint (~> 0.18.2) haml_lint (~> 0.21.0)
hamlit (~> 2.6.1) hamlit (~> 2.6.1)
health_check (~> 2.2.0) hashie-forbidden_attributes
health_check (~> 2.6.0)
hipchat (~> 1.5.0) hipchat (~> 1.5.0)
html-pipeline (~> 1.11.0) html-pipeline (~> 1.11.0)
html2text html2text
@ -903,7 +1003,6 @@ DEPENDENCIES
jira-ruby (~> 1.1.2) jira-ruby (~> 1.1.2)
jquery-atwho-rails (~> 1.3.2) jquery-atwho-rails (~> 1.3.2)
jquery-rails (~> 4.1.0) jquery-rails (~> 4.1.0)
jquery-ui-rails (~> 5.0.0)
json-schema (~> 2.6.2) json-schema (~> 2.6.2)
jwt (~> 1.5.6) jwt (~> 1.5.6)
kaminari (~> 0.17.0) kaminari (~> 0.17.0)
@ -911,22 +1010,22 @@ DEPENDENCIES
kubeclient (~> 2.2.0) kubeclient (~> 2.2.0)
letter_opener_web (~> 1.3.0) letter_opener_web (~> 1.3.0)
license_finder (~> 2.1.0) license_finder (~> 2.1.0)
licensee (~> 8.0.0) licensee (~> 8.7.0)
loofah (~> 2.0.3) loofah (~> 2.0.3)
mail_room (~> 0.9.0) mail_room (~> 0.9.1)
method_source (~> 0.8) method_source (~> 0.8)
minitest (~> 5.7.0) minitest (~> 5.7.0)
mousetrap-rails (~> 1.4.6) mousetrap-rails (~> 1.4.6)
mysql2 (~> 0.3.16) mysql2 (~> 0.3.16)
net-ldap
net-ssh (~> 3.0.1) net-ssh (~> 3.0.1)
newrelic_rpm (~> 3.16) nokogiri (~> 1.6.7, >= 1.6.7.2)
nokogiri (< 1.6.8, ~> 1.6.7, >= 1.6.7.2) oauth2 (~> 1.4)
oauth2 (~> 1.2.0)
octokit (~> 4.6.2) octokit (~> 4.6.2)
oj (~> 2.17.4) oj (~> 2.17.4)
omniauth (~> 1.3.2) omniauth (~> 1.4.2)
omniauth-auth0 (~> 1.4.1) omniauth-auth0 (~> 1.4.1)
omniauth-authentiq (~> 0.2.0) omniauth-authentiq (~> 0.3.0)
omniauth-azure-oauth2 (~> 0.0.6) omniauth-azure-oauth2 (~> 0.0.6)
omniauth-cas3 (~> 1.1.2) omniauth-cas3 (~> 1.1.2)
omniauth-facebook (~> 4.0.0) omniauth-facebook (~> 4.0.0)
@ -934,28 +1033,42 @@ DEPENDENCIES
omniauth-gitlab (~> 1.0.2) omniauth-gitlab (~> 1.0.2)
omniauth-google-oauth2 (~> 0.4.1) omniauth-google-oauth2 (~> 0.4.1)
omniauth-kerberos (~> 0.3.0) omniauth-kerberos (~> 0.3.0)
omniauth-oauth2-generic (~> 0.2.2)
omniauth-saml (~> 1.7.0) omniauth-saml (~> 1.7.0)
omniauth-shibboleth (~> 1.2.0) omniauth-shibboleth (~> 1.2.0)
omniauth-twitter (~> 1.2.0) omniauth-twitter (~> 1.2.0)
omniauth_crowd (~> 2.2.0) omniauth_crowd (~> 2.2.0)
org-ruby (~> 0.9.12) org-ruby (~> 0.9.12)
paranoia (~> 2.2) paranoia (~> 2.3.1)
peek (~> 1.0.1)
peek-gc (~> 0.0.2)
peek-host (~> 1.0.0)
peek-mysql2 (~> 1.1.0)
peek-performance_bar (~> 1.2.1)
peek-pg (~> 1.3.0)
peek-rblineprof (~> 0.2.0)
peek-redis (~> 1.2.0)
peek-sidekiq (~> 1.0.3)
pg (~> 0.18.2) pg (~> 0.18.2)
poltergeist (~> 1.9.0) poltergeist (~> 1.9.0)
premailer-rails (~> 1.9.0) premailer-rails (~> 1.9.7)
prometheus-client-mmap (~> 0.7.0.beta11)
pry-byebug (~> 3.4.1) pry-byebug (~> 3.4.1)
pry-rails (~> 0.3.4) pry-rails (~> 0.3.4)
rack-attack (~> 4.4.1) rack-attack (~> 4.4.1)
rack-cors (~> 0.4.0) rack-cors (~> 0.4.0)
rack-oauth2 (~> 1.2.1) rack-oauth2 (~> 1.2.1)
rack-proxy (~> 0.6.0) rack-proxy (~> 0.6.0)
rails (= 4.2.7.1) rails (= 4.2.8)
rails-deprecated_sanitizer (~> 1.0.3) rails-deprecated_sanitizer (~> 1.0.3)
rainbow (~> 2.1.0) rails-i18n (~> 4.0.9)
rainbow (~> 2.2)
raindrops (~> 0.18)
rblineprof (~> 0.3.6) rblineprof (~> 0.3.6)
rdoc (~> 4.2) rdoc (~> 4.2)
re2 (~> 1.0.0)
recaptcha (~> 3.0) recaptcha (~> 3.0)
redcarpet (~> 3.3.3) redcarpet (~> 3.4)
redis (~> 3.2) redis (~> 3.2)
redis-namespace (~> 1.5.2) redis-namespace (~> 1.5.2)
redis-rails (~> 5.0.1) redis-rails (~> 5.0.1)
@ -965,29 +1078,32 @@ DEPENDENCIES
rqrcode-rails3 (~> 0.1.7) rqrcode-rails3 (~> 0.1.7)
rspec-rails (~> 3.5.0) rspec-rails (~> 3.5.0)
rspec-retry (~> 0.4.5) rspec-retry (~> 0.4.5)
rspec_profiling rspec-set (~> 0.1.3)
rubocop (~> 0.46.0) rspec_profiling (~> 0.0.5)
rubocop-rspec (~> 1.9.1) rubocop (~> 0.47.1)
rubocop-rspec (~> 1.15.0)
ruby-fogbugz (~> 0.2.1) ruby-fogbugz (~> 0.2.1)
ruby-prof (~> 0.16.2) ruby-prof (~> 0.16.2)
rugged (~> 0.24.0) ruby_parser (~> 3.8)
rufus-scheduler (~> 3.4)
rugged (~> 0.25.1.1)
sanitize (~> 2.0) sanitize (~> 2.0)
sass-rails (~> 5.0.6) sass-rails (~> 5.0.6)
scss_lint (~> 0.47.0) scss_lint (~> 0.47.0)
seed-fu (~> 2.3.5) seed-fu (~> 2.3.5)
select2-rails (~> 3.5.9) select2-rails (~> 3.5.9)
sentry-raven (~> 2.0.0) sentry-raven (~> 2.5.3)
settingslogic (~> 2.0.9) settingslogic (~> 2.0.9)
sham_rack (~> 1.3.6) sham_rack (~> 1.3.6)
shoulda-matchers (~> 2.8.0) shoulda-matchers (~> 2.8.0)
sidekiq (~> 4.2.7) sidekiq (~> 5.0)
sidekiq-cron (~> 0.4.4) sidekiq-cron (~> 0.6.0)
sidekiq-limit_fetch (~> 3.4) sidekiq-limit_fetch (~> 3.4)
simplecov (= 0.12.0) simplecov (~> 0.14.0)
slack-notifier (~> 1.5.1) slack-notifier (~> 1.5.1)
spinach-rails (~> 0.2.1) spinach-rails (~> 0.2.1)
spinach-rerun-reporter (~> 0.0.2) spinach-rerun-reporter (~> 0.0.2)
spring (~> 1.7.0) spring (~> 2.0.0)
spring-commands-rspec (~> 1.0.4) spring-commands-rspec (~> 1.0.4)
spring-commands-spinach (~> 1.1.0) spring-commands-spinach (~> 1.1.0)
sprockets (~> 3.7.0) sprockets (~> 3.7.0)
@ -997,6 +1113,7 @@ DEPENDENCIES
test_after_commit (~> 1.1) test_after_commit (~> 1.1)
thin (~> 1.7.0) thin (~> 1.7.0)
timecop (~> 0.8.0) timecop (~> 0.8.0)
toml-rb (~> 0.3.15)
truncato (~> 0.7.8) truncato (~> 0.7.8)
u2f (~> 0.2.1) u2f (~> 0.2.1)
uglifier (~> 2.7.2) uglifier (~> 2.7.2)
@ -1008,10 +1125,9 @@ DEPENDENCIES
version_sorter (~> 2.1.0) version_sorter (~> 2.1.0)
virtus (~> 1.0.1) virtus (~> 1.0.1)
vmstat (~> 2.3.0) vmstat (~> 2.3.0)
web-console (~> 2.0) webmock (~> 2.3.2)
webmock (~> 1.21.0) webpack-rails (~> 0.9.10)
webpack-rails (~> 0.9.9)
wikicloth (= 0.8.1) wikicloth (= 0.8.1)
BUNDLED WITH BUNDLED WITH
1.14.5 1.15.1

View File

@ -1,29 +1,85 @@
{ stdenv, lib, bundler, fetchurl, fetchFromGitHub, bundlerEnv, libiconv, ruby { pkgs, stdenv, lib, bundler, fetchurl, fetchFromGitHub, bundlerEnv, libiconv
, tzdata, git, nodejs, procps, dpkg , ruby, tzdata, git, nodejs, procps, dpkg, yarn
}: }:
/* When updating the Gemfile add `gem "activerecord-nulldb-adapter"` /* When updating the Gemfile add `gem "activerecord-nulldb-adapter"`
to allow building the assets without a database */ to allow building the assets without a database */
let let
env = bundlerEnv { # Taken from yarn2nix
buildYarnPackageDeps = {
name,
packageJson,
yarnLock,
yarnNix,
pkgConfig ? {},
yarnFlags ? []
}:
let
offlineCache = (pkgs.callPackage yarnNix {}).offline_cache;
extraBuildInputs = (lib.flatten (builtins.map (key:
pkgConfig.${key} . buildInputs or []
) (builtins.attrNames pkgConfig)));
postInstall = (builtins.map (key:
if (pkgConfig.${key} ? postInstall) then
''
for f in $(find -L -path '*/node_modules/${key}' -type d); do
(cd "$f" && (${pkgConfig.${key}.postInstall}))
done
''
else
""
) (builtins.attrNames pkgConfig));
in
stdenv.mkDerivation {
name = "${name}-modules";
phases = ["buildPhase"];
buildInputs = [ yarn nodejs ] ++ extraBuildInputs;
buildPhase = ''
# Yarn writes cache directories etc to $HOME.
export HOME=`pwd`/yarn_home
cp ${packageJson} ./package.json
cp ${yarnLock} ./yarn.lock
chmod +w ./yarn.lock
yarn config --offline set yarn-offline-mirror ${offlineCache}
# Do not look up in the registry, but in the offline cache.
# TODO: Ask upstream to fix this mess.
sed -i -E 's|^(\s*resolved\s*")https?://.*/|\1|' yarn.lock
yarn install ${lib.escapeShellArgs yarnFlags}
${lib.concatStringsSep "\n" postInstall}
mkdir $out
mv node_modules $out/
patchShebangs $out
'';
};
node-env = buildYarnPackageDeps {
name = "gitlab"; name = "gitlab";
packageJson = ./package.json;
yarnLock = ./yarn.lock;
yarnNix = ./yarn.nix;
yarnFlags = [
"--offline"
"--frozen-lockfile"
"--ignore-engines"
"--ignore-scripts"
];
# pkgConfig might need to come from node-packages ?
};
ruby-env = bundlerEnv {
name = "gitlab-env-0.2";
inherit ruby; inherit ruby;
gemdir = ./.; gemdir = ./.;
meta = with lib; { meta = with lib; {
homepage = http://www.gitlab.com/; homepage = http://www.gitlab.com/;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ fpletz ]; maintainers = with maintainers; [ fpletz globin ];
license = licenses.mit; license = licenses.mit;
}; };
}; };
version = "8.17.8"; version = "9.4.5";
gitlabDeb = fetchurl {
url = "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_${version}-ce.0_amd64.deb/download";
sha256 = "0r4f1illaalhrvc6zgq19g4jcs77jf665l8bgx6pyvw45yn6wv7h";
};
in in
@ -31,14 +87,14 @@ stdenv.mkDerivation rec {
name = "gitlab-${version}"; name = "gitlab-${version}";
buildInputs = [ buildInputs = [
env ruby bundler tzdata git nodejs procps dpkg ruby-env ruby bundler tzdata git nodejs procps dpkg yarn
]; ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gitlabhq"; owner = "gitlabhq";
repo = "gitlabhq"; repo = "gitlabhq";
rev = "v${version}"; rev = "v${version}";
sha256 = "041ld3na8m42akqpljipid984d0mv0wzk2p1630fncc1w3iaq06d"; sha256 = "1jdvgpzkrap9n9pclyi5ln5l5qfhj4y8ygb1w90jkgrd785bg573";
}; };
patches = [ patches = [
@ -73,13 +129,18 @@ stdenv.mkDerivation rec {
buildPhase = '' buildPhase = ''
mv config/gitlab.yml.example config/gitlab.yml mv config/gitlab.yml.example config/gitlab.yml
dpkg --fsys-tarfile ${gitlabDeb} | tar -x --no-same-permissions --no-same-owner # Emulate yarn install --production --pure-lockfile
mv -v opt/gitlab/embedded/service/gitlab-rails/public/assets public mkdir -p node_modules/
rm -rf opt ln -s ${node-env}/node_modules/* node_modules/
ln -s ${node-env}/node_modules/.bin node_modules/
# Compile assets. We skip the yarn check because it fails
export GITLAB_DATABASE_ADAPTER=nulldb export GITLAB_DATABASE_ADAPTER=nulldb
export SKIP_STORAGE_VALIDATION=true export SKIP_STORAGE_VALIDATION=true
rake assets:precompile RAILS_ENV=production rake gettext:compile RAILS_ENV=production
rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production
rake webpack:compile RAILS_ENV=production NODE_ENV=production
rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production
mv config/gitlab.yml config/gitlab.yml.example mv config/gitlab.yml config/gitlab.yml.example
rm config/secrets.yml rm config/secrets.yml
@ -98,7 +159,7 @@ stdenv.mkDerivation rec {
''; '';
passthru = { passthru = {
inherit env; inherit ruby-env;
inherit ruby; inherit ruby;
}; };
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +1,27 @@
diff --git a/Gemfile b/Gemfile diff --git a/Gemfile b/Gemfile
index 68547b6..60aaf99 100644 index 3748ae7aee..25d2938b78 100644
--- a/Gemfile --- a/Gemfile
+++ b/Gemfile +++ b/Gemfile
@@ -118,7 +118,7 @@ gem 'rouge', '~> 2.0' @@ -389,3 +389,5 @@ gem 'toml-rb', '~> 0.3.15', require: false
# Feature toggles
# See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s gem 'flipper', '~> 0.10.2'
# and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM gem 'flipper-active_record', '~> 0.10.2'
-gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2'
+gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2', '< 1.6.8'
# Diffs
gem 'diffy', '~> 3.0.3'
@@ -351,3 +351,5 @@ gem 'health_check', '~> 2.1.0'
# System information
gem 'vmstat', '~> 2.1.1'
gem 'sys-filesystem', '~> 1.1.6'
+ +
+gem "activerecord-nulldb-adapter" +gem 'activerecord-nulldb-adapter'
diff --git a/Gemfile.lock b/Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock
index 5511d71..38d357e 100644 index 0de8746109..f263c643bd 100644
--- a/Gemfile.lock --- a/Gemfile.lock
+++ b/Gemfile.lock +++ b/Gemfile.lock
@@ -32,6 +32,8 @@ GEM @@ -32,6 +32,8 @@ GEM
activemodel (= 4.2.7.1) activemodel (= 4.2.8)
activesupport (= 4.2.7.1) activesupport (= 4.2.8)
arel (~> 6.0) arel (~> 6.0)
+ activerecord-nulldb-adapter (0.3.3) + activerecord-nulldb-adapter (0.3.7)
+ activerecord (>= 2.0.0) + activerecord (>= 2.0.0)
activerecord_sane_schema_dumper (0.2) activerecord_sane_schema_dumper (0.2)
rails (>= 4, < 5) rails (>= 4, < 5)
activesupport (4.2.7.1) activesupport (4.2.8)
@@ -396,7 +398,7 @@ GEM @@ -906,6 +908,7 @@ PLATFORMS
method_source (0.8.2)
mime-types (2.99.2)
mimemagic (0.3.0)
- mini_portile2 (2.1.0)
+ mini_portile2 (2.0.0)
minitest (5.7.0)
mousetrap-rails (1.4.6)
multi_json (1.12.1)
@@ -407,8 +409,8 @@ GEM
net-ldap (0.12.1)
net-ssh (3.0.1)
newrelic_rpm (3.16.0.318)
- nokogiri (1.6.8)
- mini_portile2 (~> 2.1.0)
+ nokogiri (1.6.7.2)
+ mini_portile2 (~> 2.0.0.rc2)
pkg-config (~> 1.1.7)
numerizer (0.1.1)
oauth (0.4.7)
@@ -800,6 +802,7 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
RedCloth (~> 4.3.2) RedCloth (~> 4.3.2)
ace-rails-ap (~> 4.1.0) ace-rails-ap (~> 4.1.0)

View File

@ -0,0 +1,88 @@
{
"private": true,
"scripts": {
"dev-server": "nodemon --watch config/webpack.config.js -- ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js",
"eslint": "eslint --max-warnings 0 --ext .js,.vue .",
"eslint-fix": "eslint --max-warnings 0 --ext .js,.vue --fix .",
"eslint-report": "eslint --max-warnings 0 --ext .js,.vue --format html --output-file ./eslint-report.html .",
"karma": "karma start config/karma.config.js --single-run",
"karma-coverage": "BABEL_ENV=coverage karma start config/karma.config.js --single-run",
"karma-start": "karma start config/karma.config.js",
"webpack": "webpack --config config/webpack.config.js",
"webpack-prod": "NODE_ENV=production webpack --config config/webpack.config.js"
},
"dependencies": {
"babel-core": "^6.22.1",
"babel-eslint": "^7.2.1",
"babel-loader": "^6.2.10",
"babel-plugin-transform-define": "^1.2.0",
"babel-preset-latest": "^6.24.0",
"babel-preset-stage-2": "^6.22.0",
"bootstrap-sass": "^3.3.6",
"compression-webpack-plugin": "^0.3.2",
"core-js": "^2.4.1",
"css-loader": "^0.28.0",
"d3": "^3.5.11",
"deckar01-task_list": "^2.0.0",
"document-register-element": "^1.3.0",
"dropzone": "^4.2.0",
"emoji-unicode-version": "^0.2.1",
"eslint-plugin-html": "^2.0.1",
"exports-loader": "^0.6.4",
"file-loader": "^0.11.1",
"jed": "^1.1.1",
"jquery": "^2.2.1",
"jquery-ujs": "^1.2.1",
"js-cookie": "^2.1.3",
"jszip": "^3.1.3",
"jszip-utils": "^0.0.2",
"marked": "^0.3.6",
"mousetrap": "^1.4.6",
"name-all-modules-plugin": "^1.0.1",
"pdfjs-dist": "^1.8.252",
"pikaday": "^1.5.1",
"prismjs": "^1.6.0",
"raphael": "^2.2.7",
"raven-js": "^3.14.0",
"raw-loader": "^0.5.1",
"react-dev-utils": "^0.5.2",
"select2": "3.5.2-browserify",
"sql.js": "^0.4.0",
"stats-webpack-plugin": "^0.4.3",
"three": "^0.84.0",
"three-orbit-controls": "^82.1.0",
"three-stl-loader": "^1.0.4",
"timeago.js": "^2.0.5",
"underscore": "^1.8.3",
"url-loader": "^0.5.8",
"visibilityjs": "^1.2.4",
"vue": "^2.2.6",
"vue-loader": "^11.3.4",
"vue-resource": "^0.9.3",
"vue-template-compiler": "^2.2.6",
"webpack": "^2.6.1",
"webpack-bundle-analyzer": "^2.8.2"
},
"devDependencies": {
"babel-plugin-istanbul": "^4.0.0",
"eslint": "^3.10.1",
"eslint-config-airbnb-base": "^10.0.1",
"eslint-import-resolver-webpack": "^0.8.1",
"eslint-plugin-filenames": "^1.1.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jasmine": "^2.1.0",
"eslint-plugin-promise": "^3.5.0",
"istanbul": "^0.4.5",
"jasmine-core": "^2.6.3",
"jasmine-jquery": "^2.1.1",
"karma": "^1.7.0",
"karma-chrome-launcher": "^2.1.1",
"karma-coverage-istanbul-reporter": "^0.2.0",
"karma-jasmine": "^1.1.0",
"karma-mocha-reporter": "^2.2.2",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^2.0.2",
"nodemon": "^1.11.0",
"webpack-dev-server": "^2.4.2"
}
}

View File

@ -1,5 +1,5 @@
diff --git a/config/environments/production.rb b/config/environments/production.rb diff --git a/config/environments/production.rb b/config/environments/production.rb
index a9d8ac4..85f13f5 100644 index c5cbfcf64c..e40f10e25f 100644
--- a/config/environments/production.rb --- a/config/environments/production.rb
+++ b/config/environments/production.rb +++ b/config/environments/production.rb
@@ -70,14 +70,16 @@ Rails.application.configure do @@ -70,14 +70,16 @@ Rails.application.configure do
@ -24,10 +24,10 @@ index a9d8ac4..85f13f5 100644
+ config.active_record.dump_schema_after_migration = false + config.active_record.dump_schema_after_migration = false
end end
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index 1470a6e..1b2660d 100644 index 0b33783869..cd4e41d9bd 100644
--- a/config/gitlab.yml.example --- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example +++ b/config/gitlab.yml.example
@@ -476,7 +476,7 @@ production: &base @@ -521,7 +521,7 @@ production: &base
# CAUTION! # CAUTION!
# Use the default values unless you really know what you are doing # Use the default values unless you really know what you are doing
git: git:
@ -37,10 +37,10 @@ index 1470a6e..1b2660d 100644
# Given in number of bytes per git object (e.g. a commit) # Given in number of bytes per git object (e.g. a commit)
# This value can be increased if you have very large commits # This value can be increased if you have very large commits
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 195108b..e55b11d 100644 index 8ddf8e4d2e..559cf9adf7 100644
--- a/config/initializers/1_settings.rb --- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb
@@ -192,7 +192,7 @@ Settings.gitlab['user'] ||= 'git' @@ -219,7 +219,7 @@ Settings.gitlab['user'] ||= 'git'
Settings.gitlab['user_home'] ||= begin Settings.gitlab['user_home'] ||= begin
Etc.getpwnam(Settings.gitlab['user']).dir Etc.getpwnam(Settings.gitlab['user']).dir
rescue ArgumentError # no user configured rescue ArgumentError # no user configured
@ -49,7 +49,7 @@ index 195108b..e55b11d 100644
end end
Settings.gitlab['time_zone'] ||= nil Settings.gitlab['time_zone'] ||= nil
Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil? Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
@@ -362,7 +362,7 @@ Settings.backup['upload']['encryption'] ||= nil @@ -454,7 +454,7 @@ Settings.backup['upload']['storage_class'] ||= nil
# #
Settings['git'] ||= Settingslogic.new({}) Settings['git'] ||= Settingslogic.new({})
Settings.git['max_size'] ||= 20971520 # 20.megabytes Settings.git['max_size'] ||= 20971520 # 20.megabytes
@ -59,7 +59,7 @@ index 195108b..e55b11d 100644
# Important: keep the satellites.path setting until GitLab 9.0 at # Important: keep the satellites.path setting until GitLab 9.0 at
diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb
index 59b2114..4f4a39a 100644 index 59b21149a9..4f4a39a06c 100644
--- a/lib/gitlab/logger.rb --- a/lib/gitlab/logger.rb
+++ b/lib/gitlab/logger.rb +++ b/lib/gitlab/logger.rb
@@ -13,20 +13,20 @@ module Gitlab @@ -13,20 +13,20 @@ module Gitlab
@ -87,51 +87,74 @@ index 59b2114..4f4a39a 100644
end end
end end
diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb
index be8fcc7..7642d74 100644 index b5f4124052..f72c556983 100644
--- a/lib/gitlab/uploads_transfer.rb --- a/lib/gitlab/uploads_transfer.rb
+++ b/lib/gitlab/uploads_transfer.rb +++ b/lib/gitlab/uploads_transfer.rb
@@ -29,7 +29,7 @@ module Gitlab @@ -1,7 +1,7 @@
end module Gitlab
class UploadsTransfer < ProjectTransfer
def root_dir def root_dir
- File.join(Rails.root, "public", "uploads") - File.join(CarrierWave.root, FileUploader.base_dir)
+ ENV['GITLAB_UPLOADS_PATH'] || File.join(Rails.root, "public", "uploads") + ENV['GITLAB_UPLOADS_PATH'] || File.join(CarrierWave.root, FileUploader.base_dir)
end end
end end
end end
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb
index 5f4a6bb..01b4cfd 100644 index 3e0c436d6e..28cefc5514 100644
--- a/lib/tasks/gitlab/check.rake --- a/lib/system_check/app/log_writable_check.rb
+++ b/lib/tasks/gitlab/check.rake +++ b/lib/system_check/app/log_writable_check.rb
@@ -223,7 +223,7 @@ namespace :gitlab do @@ -21,7 +21,7 @@ module SystemCheck
def check_log_writable private
print "Log directory writable? ... "
- log_path = Rails.root.join("log") def log_path
+ log_path = ENV["GITLAB_LOG_PATH"] - Rails.root.join('log')
+ ENV["GITLAB_LOG_PATH"]
end
end
end
diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb
index 7026d0ba07..6d88b8b9fb 100644
--- a/lib/system_check/app/uploads_directory_exists_check.rb
+++ b/lib/system_check/app/uploads_directory_exists_check.rb
@@ -4,12 +4,13 @@ module SystemCheck
set_name 'Uploads directory exists?'
if File.writable?(log_path) def check?
puts "yes".color(:green) - File.directory?(Rails.root.join('public/uploads'))
@@ -263,10 +263,11 @@ namespace :gitlab do + File.directory?(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads'))
def check_uploads end
print "Uploads directory setup correctly? ... "
- unless File.directory?(Rails.root.join('public/uploads')) def show_error
+ uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') + uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
+ unless File.directory?(uploads_dir)
puts "no".color(:red)
try_fixing_it( try_fixing_it(
- "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads" - "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads"
+ "sudo -u #{gitlab_user} mkdir #{uploads_dir}" + "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
) )
for_more_information( for_more_information(
see_installation_guide_section "GitLab" see_installation_guide_section 'GitLab'
@@ -275,7 +276,7 @@ namespace :gitlab do diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb
return index 7df6c06025..bb447c16b2 100644
--- a/lib/system_check/app/uploads_path_permission_check.rb
+++ b/lib/system_check/app/uploads_path_permission_check.rb
@@ -25,7 +25,7 @@ module SystemCheck
private
def rails_uploads_path
- Rails.root.join('public/uploads')
+ ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
end end
- upload_path = File.realpath(Rails.root.join('public/uploads')) def uploads_fullpath
+ upload_path = File.realpath(Rails.root.join(uploads_dir)) diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb
upload_path_tmp = File.join(upload_path, 'tmp') index b276a81eac..070e3ebd81 100644
--- a/lib/system_check/app/uploads_path_tmp_permission_check.rb
+++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb
@@ -33,7 +33,7 @@ module SystemCheck
end
if File.stat(upload_path).mode == 040700 def uploads_fullpath
- File.realpath(Rails.root.join('public/uploads'))
+ File.realpath(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads'))
end
end
end

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libxml2, libsecret, poppler, itstool, mate, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, intltool, gtk3, libxml2, libsecret, poppler, itstool, mate, hicolor_icon_theme, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "atril-${version}"; name = "atril-${version}";
@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
libsecret libsecret
libxml2 libxml2
poppler poppler
hicolor_icon_theme
mate.mate-desktop mate.mate-desktop
]; ];

View File

@ -23,6 +23,7 @@ let
mate-icon-theme = callPackage ./mate-icon-theme { }; mate-icon-theme = callPackage ./mate-icon-theme { };
mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { }; mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { };
mate-menus = callPackage ./mate-menus { }; mate-menus = callPackage ./mate-menus { };
mate-notification-daemon = callPackage ./mate-notification-daemon { };
mate-panel = callPackage ./mate-panel { }; mate-panel = callPackage ./mate-panel { };
mate-session-manager = callPackage ./mate-session-manager { }; mate-session-manager = callPackage ./mate-session-manager { };
mate-settings-daemon = callPackage ./mate-settings-daemon { }; mate-settings-daemon = callPackage ./mate-settings-daemon { };
@ -41,6 +42,7 @@ let
mate-desktop mate-desktop
mate-icon-theme mate-icon-theme
mate-menus mate-menus
mate-notification-daemon
mate-panel mate-panel
mate-session-manager mate-session-manager
mate-settings-daemon mate-settings-daemon

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, gnome3, mate, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, gnome3, mate, hicolor_icon_theme, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "engrampa-${version}"; name = "engrampa-${version}";
@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
libxml2 libxml2
gnome3.gtk gnome3.gtk
mate.caja mate.caja
hicolor_icon_theme
mate.mate-desktop mate.mate-desktop
]; ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, itstool, dbus_glib, exempi, lcms2, libexif, libjpeg, librsvg, libxml2, shared_mime_info, gnome3, mate, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, intltool, itstool, dbus_glib, exempi, lcms2, libexif, libjpeg, librsvg, libxml2, shared_mime_info, gnome3, mate, hicolor_icon_theme, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "eom-${version}"; name = "eom-${version}";
@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
pkgconfig pkgconfig
intltool intltool
itstool itstool
hicolor_icon_theme
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
"--enable-locations-compression" "--enable-locations-compression"
]; ];
preFixup = "rm -f $out/share/icons/mate/icon-theme.cache";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Library to access weather information from online services for MATE"; description = "Library to access weather information from online services for MATE";
homepage = https://github.com/mate-desktop/libmateweather; homepage = https://github.com/mate-desktop/libmateweather;

View File

@ -1,4 +1,7 @@
{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, dbus_glib, libxklavier, libcanberra_gtk3, desktop_file_utils, gnome3, mate, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, dbus_glib,
libxklavier, libcanberra_gtk3, librsvg, libappindicator-gtk3,
desktop_file_utils, gnome3, mate, hicolor_icon_theme, wrapGAppsHook
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mate-control-center-${version}"; name = "mate-control-center-${version}";
@ -24,8 +27,11 @@ stdenv.mkDerivation rec {
dbus_glib dbus_glib
libxklavier libxklavier
libcanberra_gtk3 libcanberra_gtk3
librsvg
libappindicator-gtk3
gnome3.gtk gnome3.gtk
gnome3.dconf gnome3.dconf
hicolor_icon_theme
mate.mate-desktop mate.mate-desktop
mate.libmatekbd mate.libmatekbd
mate.mate-menus mate.mate-menus

View File

@ -20,11 +20,6 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
gnome3.dconf gnome3.dconf
gnome3.gtk gnome3.gtk
gnome3.defaultIconTheme
];
propagatedUserEnvPkgs = [
gnome3.gnome_themes_standard
]; ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,36 @@
{ stdenv, fetchurl, pkgconfig, intltool, dbus_glib, libcanberra_gtk3,
libnotify, libwnck3, gnome3, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "mate-notification-daemon-${version}";
version = "${major-ver}.${minor-ver}";
major-ver = "1.18";
minor-ver = "0";
src = fetchurl {
url = "http://pub.mate-desktop.org/releases/${major-ver}/${name}.tar.xz";
sha256 = "0rhhv99ipxy7l4fdgwvqp3g0c3d4njq0fhkag2vs1nwc6kx0h7sc";
};
nativeBuildInputs = [
pkgconfig
intltool
wrapGAppsHook
];
buildInputs = [
dbus_glib
libcanberra_gtk3
libnotify
libwnck3
gnome3.gtk
];
meta = with stdenv.lib; {
description = "Notification daemon for MATE";
homepage = https://github.com/mate-desktop/mate-notification-daemon;
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, itstool, glib, dbus_glib, libwnck3, librsvg, libxml2, gnome3, mate, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, intltool, itstool, glib, dbus_glib, libwnck3, librsvg, libxml2, gnome3, mate, hicolor_icon_theme, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mate-panel-${version}"; name = "mate-panel-${version}";
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
libwnck3 libwnck3
librsvg librsvg
libxml2 libxml2
hicolor_icon_theme
gnome3.gtk gnome3.gtk
gnome3.dconf gnome3.dconf
mate.libmateweather mate.libmateweather

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, itstool, dbus_glib, systemd, xtrans, xorg, gnome3, mate, wrapGAppsHook }: { stdenv, fetchurl, pkgconfig, intltool, itstool, dbus_glib, systemd, xtrans, xorg, gnome3, mate, hicolor_icon_theme, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mate-session-manager-${version}"; name = "mate-session-manager-${version}";
@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
dbus_glib dbus_glib
systemd systemd
xtrans xtrans
hicolor_icon_theme
xorg.libSM xorg.libSM
gnome3.gtk3 gnome3.gtk3
gnome3.gsettings_desktop_schemas gnome3.gsettings_desktop_schemas

View File

@ -131,11 +131,11 @@
}; };
}; };
kscreenlocker = { kscreenlocker = {
version = "5.10.5"; version = "5.10.5.1";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.10.5/kscreenlocker-5.10.5.tar.xz"; url = "${mirror}/stable/plasma/5.10.5/kscreenlocker-5.10.5.1.tar.xz";
sha256 = "07c8x4pj9adwwm5036wbrrw2sj8xi9d8b6d7qya6bam9xrq0mxkb"; sha256 = "03ih0dyyjljv40wl7mpbssfirkkljw8mnpjjhzk357lzadkplzvp";
name = "kscreenlocker-5.10.5.tar.xz"; name = "kscreenlocker-5.10.5.1.tar.xz";
}; };
}; };
ksshaskpass = { ksshaskpass = {

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "arachne-pnr-${version}"; name = "arachne-pnr-${version}";
version = "2016.08.18"; version = "2017.06.29";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cseed"; owner = "cseed";
repo = "arachne-pnr"; repo = "arachne-pnr";
rev = "52e69ed207342710080d85c7c639480e74a021d7"; rev = "7e135edb31feacde85ec5b7e5c03fc9157080977";
sha256 = "15bdw5yxj76lxrwksp6liwmr6l1x77isf4bs50ys9rsnmiwh8c3w"; sha256 = "1wszcx6hgw4q4r778zswrlwdwvwxq834bkajck8w9yfqwxs9lmq8";
}; };
preBuild = '' preBuild = ''
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
the IceStorm [2] icepack command. the IceStorm [2] icepack command.
''; '';
homepage = https://github.com/cseed/arachne-pnr; homepage = https://github.com/cseed/arachne-pnr;
license = stdenv.lib.licenses.gpl2; license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.shell ]; maintainers = [ stdenv.lib.maintainers.shell ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.linux;
}; };

View File

@ -21,42 +21,42 @@ let
else else
throw "openjdk requires i686-linux or x86_64 linux"; throw "openjdk requires i686-linux or x86_64 linux";
update = "152"; update = "144";
build = "04"; build = "01";
baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u"; baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
repover = "jdk8u${update}-b${build}"; repover = "jdk8u${update}-b${build}";
paxflags = if stdenv.isi686 then "msp" else "m"; paxflags = if stdenv.isi686 then "msp" else "m";
jdk8 = fetchurl { jdk8 = fetchurl {
url = "${baseurl}/archive/${repover}.tar.gz"; url = "${baseurl}/archive/${repover}.tar.gz";
sha256 = "1hnpbx0v89jmbg58ym4zm255da11zf5jq8y5s58zj4x2z6b1fpxi"; sha256 = "08b7ia2ifvcl8xnpflf019ak3xcbdjnxcy1mhfp3nbfsbk2sia45";
}; };
langtools = fetchurl { langtools = fetchurl {
url = "${baseurl}/langtools/archive/${repover}.tar.gz"; url = "${baseurl}/langtools/archive/${repover}.tar.gz";
sha256 = "060q01msfyspn14c9mkf9x0l8sprki9n8zb3cwlgglhnr2d4gfbr"; sha256 = "0g7q6ljvn79psrcak3l4imd27w047ngavn9jcn3xwivg5wppsfks";
}; };
hotspot = fetchurl { hotspot = fetchurl {
url = "${baseurl}/hotspot/archive/${repover}.tar.gz"; url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
sha256 = "0705667y6llsmszvdcbhbxzbn1csv1f2rlyghwggx5xnaq46dhx6"; sha256 = "1hbbzf0m2a78dm8pyvc11jwfpj7q67pvjrp3hf0cnc38k9mzrn8q";
}; };
corba = fetchurl { corba = fetchurl {
url = "${baseurl}/corba/archive/${repover}.tar.gz"; url = "${baseurl}/corba/archive/${repover}.tar.gz";
sha256 = "13f4h43lw9q1292fymn2d7whwvccpkcqraasdhvzf904101xcpsl"; sha256 = "1znc0prsb814ggm6qjgbsykm864mwypnxgi9w9f9riq8gs0578gh";
}; };
jdk = fetchurl { jdk = fetchurl {
url = "${baseurl}/jdk/archive/${repover}.tar.gz"; url = "${baseurl}/jdk/archive/${repover}.tar.gz";
sha256 = "16wqinqv0aqyf6jg3nsn6rj5s7ggq82wvx86zm584g56011vkgf6"; sha256 = "0gx5md1v1jmqhdwcc7smpf46sgp4alvb6jz3n6yjlcyfzk92yi78";
}; };
jaxws = fetchurl { jaxws = fetchurl {
url = "${baseurl}/jaxws/archive/${repover}.tar.gz"; url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
sha256 = "0japl4nyb8y3w1mpfpkxn5vkf8fap1rg340vjnb6qm6fpqvl964f"; sha256 = "0ad9w7gnwlpdssw2p3kfny02mmvzc6z8i2n7qq0177ml48c88iji";
}; };
jaxp = fetchurl { jaxp = fetchurl {
url = "${baseurl}/jaxp/archive/${repover}.tar.gz"; url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
sha256 = "024zphx9r92ws9xjihvhyrbbbamfl7js0s24ff577v5z5gdb1lly"; sha256 = "14yzbbishsyrzmymws6mnndqj6hvs69ivfdbjhgwi0wl23g9siym";
}; };
nashorn = fetchurl { nashorn = fetchurl {
url = "${baseurl}/nashorn/archive/${repover}.tar.gz"; url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
sha256 = "1crnbjjv1s6ndqpllcrggcpsxvqcnpr58zp51y0hjz3m3gpsxwcq"; sha256 = "175q29n4bfmm1cyyga7x58zhh6ann9rm3wibw0scrhgy23lx052x";
}; };
openjdk8 = stdenv.mkDerivation { openjdk8 = stdenv.mkDerivation {
name = "openjdk-8u${update}b${build}"; name = "openjdk-8u${update}b${build}";
@ -100,8 +100,9 @@ let
substituteInPlace hotspot/make/linux/makefiles/dtrace.make --replace /usr/include/sys/sdt.h "/no-such-path" substituteInPlace hotspot/make/linux/makefiles/dtrace.make --replace /usr/include/sys/sdt.h "/no-such-path"
'' ''
# https://bugzilla.redhat.com/show_bug.cgi?id=1306558 # https://bugzilla.redhat.com/show_bug.cgi?id=1306558
# https://github.com/JetBrains/jdk8u/commit/eaa5e0711a43d64874111254d74893fa299d5716
+ stdenv.lib.optionalString stdenv.cc.isGNU '' + stdenv.lib.optionalString stdenv.cc.isGNU ''
NIX_CFLAGS_COMPILE+=" -fno-lifetime-dse -fno-delete-null-pointer-checks" NIX_CFLAGS_COMPILE+=" -fno-lifetime-dse -fno-delete-null-pointer-checks -std=gnu++98 -Wno-error"
''; '';
configureFlags = [ configureFlags = [
@ -246,7 +247,7 @@ let
homepage = http://openjdk.java.net/; homepage = http://openjdk.java.net/;
license = licenses.gpl2; license = licenses.gpl2;
description = "The open-source Java Development Kit"; description = "The open-source Java Development Kit";
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo nequissimus ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View File

@ -9,11 +9,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "sbcl-${version}"; name = "sbcl-${version}";
version = "1.3.20"; version = "1.3.21";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2"; url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
sha256 = "0qhzrl2msdyzqp3165qlh9s6jrif5rddsmj9q50z0bxnaf0330jj"; sha256 = "13hmavfmxsqp2s89aa6kljpgjm6c2063bgrz0maq1ms1y3052k38";
}; };
patchPhase = '' patchPhase = ''

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, makeWrapper { stdenv, fetchFromGitHub, cmake, makeWrapper
, llvmPackages_4, hiredis, z3_opt, gtest , llvmPackages_4, hiredis, z3, gtest
}: }:
let let
@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
cp -v ./souper $out/bin/ cp -v ./souper $out/bin/
cp -v ./clang-souper $out/bin/ cp -v ./clang-souper $out/bin/
wrapProgram "$out/bin/souper" \ wrapProgram "$out/bin/souper" \
--add-flags "-z3-path=\"${z3_opt}/bin/z3\"" --add-flags "-z3-path=\"${z3}/bin/z3\""
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2,10 +2,10 @@
with stdenv.lib; with stdenv.lib;
let let
date = "20170710"; date = "20170821";
version = "0.9.27pre-${date}"; version = "0.9.27pre-${date}";
rev = "2acb04f7f2077a4cff103421d79ceee48441918a"; rev = "b8fe8fc2105455eb5004be89fa8575aa928a18f3";
sha256 = "1rh89dx1myqfm752d4rlzrm8aadfm17fm88ps0q9ibmbxavb45qw"; sha256 = "0rsv5pikm7ai2n7r93qlbvkyky23dsgc3sdc83crbcxjjk6xh378";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {

View File

@ -2,21 +2,21 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "yosys-${version}"; name = "yosys-${version}";
version = "2016.11.25"; version = "2017.09.01";
srcs = [ srcs = [
(fetchFromGitHub { (fetchFromGitHub {
owner = "cliffordwolf"; owner = "cliffordwolf";
repo = "yosys"; repo = "yosys";
rev = "5c2c78e2dd12a860f830dafd73fbed8edf1a3823"; rev = "18609f3df82a3403c41d552908183f7e49ff5678";
sha256 = "1cvfkg0hllp7k2g52mxczd8d0ad7inlpkg27rrbyani2kg0066bk"; sha256 = "0qdjxqg3l098g8pda5a4cif4bd78rx7vilv3z62r56ppj55mgw96";
name = "yosys"; name = "yosys";
}) })
(fetchFromBitbucket { (fetchFromBitbucket {
owner = "alanmi"; owner = "alanmi";
repo = "abc"; repo = "abc";
rev = "238674cd44f2"; rev = "ff5be0604997";
sha256 = "18xk7lqai05am11zymixilgam4jvz5f2jwy9cgillz035man2yzw"; sha256 = "08gdvxm44dvhgjw6lf2jx0xyk6h4ai37h6b88dysvaa69sx7rh8n";
name = "yosys-abc"; name = "yosys-abc";
}) })
]; ];

View File

@ -73,6 +73,17 @@ rec {
disableHardening = drv: flags: overrideCabal drv (drv: { hardeningDisable = flags; }); disableHardening = drv: flags: overrideCabal drv (drv: { hardeningDisable = flags; });
# Controls if Nix should strip the binary files (removes debug symbols)
doStrip = drv: overrideCabal drv (drv: { dontStrip = false; });
dontStrip = drv: overrideCabal drv (drv: { dontStrip = true; });
# Useful for debugging segfaults with gdb.
# -g: enables debugging symbols
# --disable-*-stripping: tell GHC not to strip resulting binaries
# dontStrip: see above
enableDWARFDebugging = drv:
appendConfigureFlag (dontStrip drv) "--ghc-options=-g --disable-executable-stripping --disable-library-stripping";
sdistTarball = pkg: lib.overrideDerivation pkg (drv: { sdistTarball = pkg: lib.overrideDerivation pkg (drv: {
name = "${drv.pname}-source-${drv.version}"; name = "${drv.pname}-source-${drv.version}";
# Since we disable the haddock phase, we also need to override the # Since we disable the haddock phase, we also need to override the

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, nix, git, gcc6 }: let { stdenv, fetchurl, pkgconfig, nix, git }: let
version = "4.1.6"; version = "4.1.6";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "nix-exec-${version}"; name = "nix-exec-${version}";
@ -8,7 +8,7 @@ in stdenv.mkDerivation {
sha256 = "0slpsnzzzdkf5d9za7j4kr15jr4mn1k9klfsxibzy47b2bx1vkar"; sha256 = "0slpsnzzzdkf5d9za7j4kr15jr4mn1k9klfsxibzy47b2bx1vkar";
}; };
buildInputs = [ pkgconfig nix git gcc6 ]; buildInputs = [ pkgconfig nix git ];
NIX_CFLAGS_COMPILE = "-std=c++1y"; NIX_CFLAGS_COMPILE = "-std=c++1y";

View File

@ -1,25 +1,25 @@
{ stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, intltool, glib { stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, intltool, glib
, gtk_doc, autoconf, automake, libtool, libarchive, libyaml , gtk_doc, autoconf, automake, libtool, libarchive
, gobjectIntrospection, sqlite, libsoup, gcab, attr, acl, docbook_xsl , gobjectIntrospection, sqlite, libsoup, gcab, attr, acl, docbook_xsl
, libuuid, json_glib, autoconf-archive, gperf , libuuid, json_glib, autoconf-archive, meson, gperf, ninja
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "appstream-glib-0.6.13"; name = "appstream-glib-0.7.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hughsie"; owner = "hughsie";
repo = "appstream-glib"; repo = "appstream-glib";
rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name; rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name;
sha256 = "1csscszdp1imd0hiib6xx7mfylfl1r64xmma14p5jq1yprprpa9h"; sha256 = "1jvwfida12d2snc8p9lpbpqzrixw2naaiwfmsrldwkrxsj3i19pl";
}; };
nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool autoconf-archive ]; nativeBuildInputs = [ meson pkgconfig ninja ];
buildInputs = [ glib gtk_doc gettext sqlite libsoup buildInputs = [ glib gtk_doc gettext sqlite libsoup
gcab attr acl docbook_xsl libuuid json_glib gcab attr acl docbook_xsl libuuid json_glib
libarchive libyaml gobjectIntrospection gperf ]; libarchive gobjectIntrospection gperf ];
propagatedBuildInputs = [ gtk3 ]; propagatedBuildInputs = [ gtk3 ];
configureScript = "./autogen.sh"; mesonFlags = [ "-Denable-rpm=false" "-Denable-stemmer=false" "-Denable-dep11=false" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Objects and helper methods to read and write AppStream metadata"; description = "Objects and helper methods to read and write AppStream metadata";

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, gtk2, lv2, pkgconfig, python, serd, sord, sratom, gcc6 { stdenv, lib, fetchurl, gtk2, lv2, pkgconfig, python, serd, sord, sratom
, withQt4 ? true, qt4 ? null , withQt4 ? true, qt4 ? null
, withQt5 ? false, qt5 ? null }: , withQt5 ? false, qt5 ? null }:
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
sha256 = "1kji3lhha26qr6xm9j8ic5c40zbrrb5qnwm2qxzmsfxgmrz29wkf"; sha256 = "1kji3lhha26qr6xm9j8ic5c40zbrrb5qnwm2qxzmsfxgmrz29wkf";
}; };
buildInputs = [ gtk2 lv2 pkgconfig python serd sord sratom gcc6 ] buildInputs = [ gtk2 lv2 pkgconfig python serd sord sratom ]
++ (lib.optionals withQt4 [ qt4 ]) ++ (lib.optionals withQt4 [ qt4 ])
++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ])); ++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));

View File

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://www.gnu.org/software/libgcrypt/; homepage = https://www.gnu.org/software/libgcrypt/;
description = "General-pupose cryptographic library"; description = "General-purpose cryptographic library";
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;
platforms = platforms.all; platforms = platforms.all;
maintainers = [ maintainers.wkennington maintainers.vrthra ]; maintainers = [ maintainers.wkennington maintainers.vrthra ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, jsoncpp, argtable, curl, libmicrohttpd { stdenv, fetchFromGitHub, cmake, jsoncpp, argtable, curl, libmicrohttpd
, doxygen, catch, pkgconfig, git, gcc6 , doxygen, catch, pkgconfig, git
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
function fixRunPath { function fixRunPath {
p=$(patchelf --print-rpath $1) p=$(patchelf --print-rpath $1)
q="$p:${stdenv.lib.makeLibraryPath [ gcc6 jsoncpp argtable libmicrohttpd curl ]}:$out/lib" q="$p:${stdenv.lib.makeLibraryPath [ jsoncpp argtable libmicrohttpd curl ]}:$out/lib"
patchelf --set-rpath $q $1 patchelf --set-rpath $q $1
} }
@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
cp -r Install/* $out cp -r Install/* $out
''; '';
nativeBuildInputs = [ pkgconfig gcc6 ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ cmake jsoncpp argtable curl libmicrohttpd doxygen catch ]; buildInputs = [ cmake jsoncpp argtable curl libmicrohttpd doxygen catch ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -85,8 +85,8 @@ stdenv.mkDerivation rec {
sed -e "/gettext\.sh/a \\\n# Added in nixpkgs:\ngettext() { \"${gettext}/bin/gettext\" \"\$@\"; }" \ sed -e "/gettext\.sh/a \\\n# Added in nixpkgs:\ngettext() { \"${gettext}/bin/gettext\" \"\$@\"; }" \
-i "$out/libexec/libvirt-guests.sh" -i "$out/libexec/libvirt-guests.sh"
substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
'' + optionalString stdenv.isLinux '' '' + optionalString stdenv.isLinux ''
substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
rm $out/lib/systemd/system/{virtlockd,virtlogd}.* rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
wrapProgram $out/sbin/libvirtd \ wrapProgram $out/sbin/libvirtd \
--prefix PATH : ${makeBinPath [ iptables iproute pmutils numad numactl ]} --prefix PATH : ${makeBinPath [ iptables iproute pmutils numad numactl ]}

View File

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = "-D__STDC_CONSTANT_MACROS=1"; NIX_CFLAGS_COMPILE = "-D__STDC_CONSTANT_MACROS=1 -std=gnu++98";
patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ]; patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ];

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, bison, flex, unixODBC { stdenv, fetchurl, fetchpatch, pkgconfig, bison, flex, unixODBC
, openssl, openldap, cyrus_sasl, kerberos, expat, SDL, libdv, libv4l, alsaLib }: , openssl, openldap, cyrus_sasl, kerberos, expat, SDL, libdv, libv4l, alsaLib }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -9,12 +9,24 @@ stdenv.mkDerivation rec {
sha256 = "1jf27mjz8vqnclhrhrpn7niz4c177kcjbd1hc7vn65ihcqfz05rs"; sha256 = "1jf27mjz8vqnclhrhrpn7niz4c177kcjbd1hc7vn65ihcqfz05rs";
}; };
NIX_CFLAGS_COMPILE = "-std=gnu++98";
buildInputs = [ pkgconfig bison flex unixODBC openssl openldap buildInputs = [ pkgconfig bison flex unixODBC openssl openldap
cyrus_sasl kerberos expat SDL libdv libv4l alsaLib ]; cyrus_sasl kerberos expat SDL libdv libv4l alsaLib ];
enableParallelBuilding = true; enableParallelBuilding = true;
patches = [ ./bison.patch ./sslv3.patch ]; patches = [
(fetchpatch { url = http://sources.debian.net/data/main/p/ptlib/2.10.11~dfsg-2.1/debian/patches/bison-fix;
sha256 = "0vzv9kyn9s628z8wy2gva380gi1rmhxilwlg5pikl5a0wn8p46nw";
})
(fetchpatch { url = http://sources.debian.net/data/main/p/ptlib/2.10.11~dfsg-2.1/debian/patches/no-sslv3;
sha256 = "172s1dnnrl54p9sf1nl7s475sm78rpw3p8jxi0pdx6izzl8hcdr0";
})
(fetchpatch { url = http://sources.debian.net/data/main/p/ptlib/2.10.11~dfsg-2.1/debian/patches/gcc-5_support;
sha256 = "0pf2yj0150r4cnc6nv65mclrm3dillqh1xjk7m6gsjnk9b96i5d4";
})
];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Portable Tools from OPAL VoIP"; description = "Portable Tools from OPAL VoIP";

View File

@ -1,16 +0,0 @@
--- ptlib-2.10.11/src/ptclib/pssl.cxx 2016-02-07 09:54:36.326325637 +0000
+++ ptlib-2.10.11/src/ptclib/pssl.cxx 2016-02-07 09:55:55.677870908 +0000
@@ -805,11 +805,13 @@
SSL_METHOD * meth;
switch (method) {
+#if !defined(OPENSSL_NO_SSL3)
case SSLv3:
meth = SSLv3_method();
break;
+#endif
case TLSv1:
meth = TLSv1_method();
break;
case SSLv23:
default:

View File

@ -1,16 +1,21 @@
Prerequisite: have Quicklisp installed somehow. Want to add a package? There are 3 simple steps!
1. Add the needed system names to quicklisp-to-nix-systems.txt.
2. cd <path to quicklisp-to-nix-systems.txt> ; nix-shell --run 'quicklisp-to-nix .'
3. Add native libraries and whatever else is needed to quicklisp-to-nix-overrides.nix.
Add to LD_LIBRARY_PATH all the things listed in quicklisp-to-nix-overrides.nix To update to a more recent quicklisp dist modify
for library propagatedBuildInputs (a lot of these are done via addNativeLibs). lispPackages.quicklisp to have a more recent distinfo.
Current list is: quicklisp-to-nix-system-info is responsible for installing a quicklisp
openssl fuse libuv mariadb libfixposix libev sqlite package into an isolated environment and figuring out which packages
are required by that system. It also extracts other information that
is readily available once the system is loaded. The information
produced by this program is fed into quicklisp-to-nix. You usually
don't need to run this program unless you're trying to understand why
quicklisp-to-nix failed to handle a system. The technique used by
quicklisp-to-nix-system-info is described in its source.
Add the needed system names to quicklisp-to-nix-systems.txt and load quicklisp-to-nix is responsible for reading
quicklisp-to-nix/ql-to-nix.lisp and call quicklisp-to-nix-systems.txt, running quicklisp-to-nix-system-info,
(ql-to-nix "/path/to/nixpkgs/pkgs/development/lisp-modules/") which is often and generating the nix packages associated with the closure of
just (ql-to-nix ".") quicklisp systems.
Add native libraries and whatever else is needed to overrides.
The lispPackages set is supposed to be buildable in its entirety.

View File

@ -1,7 +1,10 @@
args @ {stdenv, clwrapper, baseName, packageName ? baseName, testSystems ? [packageName] args @ {stdenv, clwrapper, baseName, packageName ? baseName
, parasites ? []
, buildSystems ? ([packageName] ++ parasites)
, version ? "latest" , version ? "latest"
, src, description, deps, buildInputs ? [], meta ? {}, overrides?(x: {}) , src, description, deps, buildInputs ? [], meta ? {}, overrides?(x: {})
, propagatedBuildInputs ? []}: , propagatedBuildInputs ? []
, asdFilesToKeep ? [(builtins.concatStringsSep "" [packageName ".asd"])]}:
let let
deployConfigScript = '' deployConfigScript = ''
outhash="$out" outhash="$out"
@ -43,11 +46,34 @@ let
echo "export LD_LIBRARY_PATH=\"\$NIX_LISP_LD_LIBRARY_PATH\''${NIX_LISP_LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH\"" >> "$launch_script" echo "export LD_LIBRARY_PATH=\"\$NIX_LISP_LD_LIBRARY_PATH\''${NIX_LISP_LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH\"" >> "$launch_script"
echo '"${clwrapper}/bin/common-lisp.sh" "$@"' >> "$launch_script" echo '"${clwrapper}/bin/common-lisp.sh" "$@"' >> "$launch_script"
''; '';
moveAsdFiles = ''
find $out/lib/common-lisp/ -name '*.asd' | while read ASD_FILE; do
KEEP_THIS_ASD=0
for ALLOWED_ASD in $asdFilesToKeep; do
ALLOWED_ASD="/$ALLOWED_ASD"
ALLOWED_ASD_LENGTH=${"$"}{#ALLOWED_ASD}
ASD_FILE_LENGTH=${"$"}{#ASD_FILE}
ASD_FILE_SUFFIX_INDEX=$(expr "$ASD_FILE_LENGTH" - "$ALLOWED_ASD_LENGTH")
ASD_FILE_SUFFIX_INDEX=$(expr "$ASD_FILE_SUFFIX_INDEX" + 1)
echo $ALLOWED_ASD $ASD_FILE $ASD_FILE_SUFFIX_INDEX $(expr substr "$ASD_FILE" "$ASD_FILE_SUFFIX_INDEX" "$ASD_FILE_LENGTH")
if [ "$(expr substr "$ASD_FILE" "$ASD_FILE_SUFFIX_INDEX" "$ASD_FILE_LENGTH")" == "$ALLOWED_ASD" ]; then
KEEP_THIS_ASD=1
break
fi
done
if [ "$KEEP_THIS_ASD" == 0 ]; then
mv "$ASD_FILE"{,.sibling}
fi
done
'';
basePackage = { basePackage = {
name = "lisp-${baseName}-${version}"; name = "lisp-${baseName}-${version}";
inherit src; inherit src;
dontBuild = true;
inherit deployConfigScript deployLaunchScript; inherit deployConfigScript deployLaunchScript;
inherit asdFilesToKeep moveAsdFiles;
installPhase = '' installPhase = ''
eval "$preInstall" eval "$preInstall"
@ -58,18 +84,19 @@ basePackage = {
${deployConfigScript} ${deployConfigScript}
${deployLaunchScript} ${deployLaunchScript}
${moveAsdFiles}
${stdenv.lib.concatMapStrings (testSystem: '' env -i \
env -i \ NIX_LISP="$NIX_LISP" \
NIX_LISP="$NIX_LISP" \ NIX_LISP_PRELAUNCH_HOOK='nix_lisp_run_single_form "(progn
NIX_LISP_PRELAUNCH_HOOK='nix_lisp_run_single_form "(progn ${stdenv.lib.concatMapStrings (system: ''
(asdf:compile-system :${testSystem}) (asdf:compile-system :${system})
(asdf:load-system :${testSystem}) (asdf:load-system :${system})
(asdf:operate (quote asdf::compile-bundle-op) :${testSystem}) (asdf:operate (quote asdf::compile-bundle-op) :${system})
(ignore-errors (asdf:operate (quote asdf::deploy-asd-op) :${testSystem})) (ignore-errors (asdf:operate (quote asdf::deploy-asd-op) :${system}))
)"' \ '') buildSystems}
"$out/bin/${args.baseName}-lisp-launcher.sh" )"' \
'') testSystems} "$out/bin/${args.baseName}-lisp-launcher.sh"
eval "$postInstall" eval "$postInstall"
''; '';

View File

@ -1,4 +1,4 @@
{stdenv, clwrapper, pkgs}: {stdenv, clwrapper, pkgs, sbcl, coreutils, nix, asdf}:
let lispPackages = rec { let lispPackages = rec {
inherit pkgs clwrapper stdenv; inherit pkgs clwrapper stdenv;
nixLib = pkgs.lib; nixLib = pkgs.lib;
@ -6,37 +6,11 @@ let lispPackages = rec {
buildLispPackage = callPackage ./define-package.nix; buildLispPackage = callPackage ./define-package.nix;
esrap-peg = buildLispPackage rec {
baseName = "esrap-peg";
version = "git-20170320";
description = "A wrapper around Esrap to allow generating Esrap grammars from PEG definitions";
deps = with (pkgs.quicklispPackagesFor clwrapper); [alexandria cl-ppcre-template cl-unification esrap iterate];
src = pkgs.fetchgit {
url = "https://github.com/fb08af68/esrap-peg.git";
sha256 = "15yiial7cy2nbgszqxd26qqcc6n3pw5qlrppzx0mfr3xbd9pvzby";
rev = ''5a559b0030ecbf5e14cb070b0dc240535faa3402'';
};
};
clx-xkeyboard = buildLispPackage rec {
baseName = "clx-xkeyboard";
testSystems = ["xkeyboard"];
version = "git-20150523";
description = "CLX support for X Keyboard extensions";
deps = with (pkgs.quicklispPackagesFor clwrapper); [clx];
# Source type: git
src = pkgs.fetchgit {
url = ''https://github.com/filonenko-mikhail/clx-xkeyboard'';
sha256 = "11b34da7d354a709a24774032e85a8947be023594f8a333eaff6d4aa79f2b3db";
rev = ''11455d36283ef31c498bd58ffebf48c0f6b86ea6'';
};
};
quicklisp = buildLispPackage rec { quicklisp = buildLispPackage rec {
baseName = "quicklisp"; baseName = "quicklisp";
version = "2017-03-06"; version = "2017-03-06";
testSystems = []; buildSystems = [];
description = "The Common Lisp package manager"; description = "The Common Lisp package manager";
deps = []; deps = [];
@ -50,8 +24,8 @@ let lispPackages = rec {
quicklispdist = pkgs.fetchurl { quicklispdist = pkgs.fetchurl {
# Will usually be replaced with a fresh version anyway, but needs to be # Will usually be replaced with a fresh version anyway, but needs to be
# a valid distinfo.txt # a valid distinfo.txt
url = "http://beta.quicklisp.org/dist/quicklisp/2016-03-18/distinfo.txt"; url = "http://beta.quicklisp.org/dist/quicklisp/2017-07-25/distinfo.txt";
sha256 = "13mvign4rsicfvg3vs3vj1qcjvj2m1aqhq93ck0sgizxfcj5167m"; sha256 = "165fd4a10zc3mxyy7wr4i2r3n6fzd1wd2hgzfyp32xlc41qj2ajf";
}; };
buildPhase = '' true; ''; buildPhase = '' true; '';
postInstall = '' postInstall = ''
@ -61,5 +35,46 @@ let lispPackages = rec {
''; '';
}; };
}; };
quicklisp-to-nix-system-info = stdenv.mkDerivation rec {
name = "quicklisp-to-nix-system-info-${version}";
version = "1.0.0";
src = ./quicklisp-to-nix;
nativeBuildInputs = [sbcl];
buildInputs = [
lispPackages.quicklisp coreutils
];
touch = coreutils;
nix-prefetch-url = nix;
inherit quicklisp;
buildPhase = ''
${sbcl}/bin/sbcl --eval '(load #P"${asdf}/lib/common-lisp/asdf/build/asdf.lisp")' --load $src/system-info.lisp --eval '(ql-to-nix-system-info::dump-image)'
'';
installPhase = ''
mkdir -p $out/bin
cp quicklisp-to-nix-system-info $out/bin
'';
dontStrip = true;
};
quicklisp-to-nix = stdenv.mkDerivation rec {
name = "quicklisp-to-nix-${version}";
version = "1.0.0";
src = ./quicklisp-to-nix;
buildDependencies = [sbcl quicklisp-to-nix-system-info];
touch = coreutils;
nix-prefetch-url = nix;
inherit quicklisp;
deps = [];
system-info = quicklisp-to-nix-system-info;
buildPhase = ''
${sbcl}/bin/sbcl --eval '(load #P"${asdf}/lib/common-lisp/asdf/build/asdf.lisp")' --load $src/ql-to-nix.lisp --eval '(ql-to-nix::dump-image)'
'';
installPhase = ''
mkdir -p $out/bin
cp quicklisp-to-nix $out/bin
'';
dontStrip = true;
};
}; };
in lispPackages in lispPackages

View File

@ -1,13 +0,0 @@
{quicklisp-to-nix-packages}:
with quicklisp-to-nix-packages;
rec {
cffi-grovel = cffi;
cxml-test = null;
cxml-dom = null;
cxml-klacks = null;
cxml-xml = null;
cl-async-util = cl-async-base;
cl-async = cl-async-base;
}

View File

@ -5,33 +5,26 @@ rec {
description = ''markdown processor in CL using esrap parser.''; description = ''markdown processor in CL using esrap parser.'';
deps = [ args."split-sequence" args."esrap" args."alexandria" ]; deps = [ args."alexandria" args."esrap" args."split-sequence" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/3bmd/2016-12-04/3bmd-20161204-git.tgz''; url = ''http://beta.quicklisp.org/archive/3bmd/2016-12-04/3bmd-20161204-git.tgz'';
sha256 = ''158rymq6ra9ipmkqrqmgr4ay5m46cdxxha03622svllhyf7xzypx''; sha256 = ''158rymq6ra9ipmkqrqmgr4ay5m46cdxxha03622svllhyf7xzypx'';
}; };
packageName = "3bmd"; packageName = "3bmd";
overrides = x: { asdFilesToKeep = ["3bmd.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/3bmd[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM 3bmd DESCRIPTION markdown processor in CL using esrap parser. SHA256 158rymq6ra9ipmkqrqmgr4ay5m46cdxxha03622svllhyf7xzypx URL /* (SYSTEM 3bmd DESCRIPTION markdown processor in CL using esrap parser. SHA256
http://beta.quicklisp.org/archive/3bmd/2016-12-04/3bmd-20161204-git.tgz MD5 b80864c74437e0cfb66663e9bbf08fed NAME 3bmd TESTNAME NIL FILENAME _3bmd DEPS 158rymq6ra9ipmkqrqmgr4ay5m46cdxxha03622svllhyf7xzypx URL
((NAME split-sequence FILENAME split-sequence) (NAME esrap FILENAME esrap) (NAME alexandria FILENAME alexandria)) DEPENDENCIES http://beta.quicklisp.org/archive/3bmd/2016-12-04/3bmd-20161204-git.tgz MD5
(split-sequence esrap alexandria) VERSION 20161204-git SIBLINGS b80864c74437e0cfb66663e9bbf08fed NAME 3bmd FILENAME _3bmd DEPS
(3bmd-ext-code-blocks 3bmd-ext-definition-lists 3bmd-ext-tables 3bmd-ext-wiki-links 3bmd-youtube-tests 3bmd-youtube)) */ ((NAME alexandria FILENAME alexandria) (NAME esrap FILENAME esrap)
(NAME split-sequence FILENAME split-sequence))
DEPENDENCIES (alexandria esrap split-sequence) VERSION 20161204-git
SIBLINGS
(3bmd-ext-code-blocks 3bmd-ext-definition-lists 3bmd-ext-tables
3bmd-ext-wiki-links 3bmd-youtube-tests 3bmd-youtube)
PARASITES NIL) */

View File

@ -5,31 +5,23 @@ rec {
description = ''ABNF Parser Generator, per RFC2234''; description = ''ABNF Parser Generator, per RFC2234'';
deps = [ args."cl-ppcre" args."esrap" ]; deps = [ args."alexandria" args."cl-ppcre" args."esrap" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/cl-abnf/2015-06-08/cl-abnf-20150608-git.tgz''; url = ''http://beta.quicklisp.org/archive/cl-abnf/2015-06-08/cl-abnf-20150608-git.tgz'';
sha256 = ''00x95h7v5q7azvr9wrpcfcwsq3sdipjr1hgq9a9lbimp8gfbz687''; sha256 = ''00x95h7v5q7azvr9wrpcfcwsq3sdipjr1hgq9a9lbimp8gfbz687'';
}; };
packageName = "abnf"; packageName = "abnf";
overrides = x: { asdFilesToKeep = ["abnf.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/abnf[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM abnf DESCRIPTION ABNF Parser Generator, per RFC2234 SHA256 00x95h7v5q7azvr9wrpcfcwsq3sdipjr1hgq9a9lbimp8gfbz687 URL /* (SYSTEM abnf DESCRIPTION ABNF Parser Generator, per RFC2234 SHA256
http://beta.quicklisp.org/archive/cl-abnf/2015-06-08/cl-abnf-20150608-git.tgz MD5 311c2b17e49666dac1c2bb45256be708 NAME abnf TESTNAME NIL FILENAME abnf 00x95h7v5q7azvr9wrpcfcwsq3sdipjr1hgq9a9lbimp8gfbz687 URL
DEPS ((NAME cl-ppcre FILENAME cl-ppcre) (NAME esrap FILENAME esrap)) DEPENDENCIES (cl-ppcre esrap) VERSION cl-20150608-git SIBLINGS NIL) */ http://beta.quicklisp.org/archive/cl-abnf/2015-06-08/cl-abnf-20150608-git.tgz
MD5 311c2b17e49666dac1c2bb45256be708 NAME abnf FILENAME abnf DEPS
((NAME alexandria FILENAME alexandria) (NAME cl-ppcre FILENAME cl-ppcre)
(NAME esrap FILENAME esrap))
DEPENDENCIES (alexandria cl-ppcre esrap) VERSION cl-20150608-git SIBLINGS
NIL PARASITES NIL) */

View File

@ -11,25 +11,16 @@ rec {
url = ''http://beta.quicklisp.org/archive/alexandria/2017-06-30/alexandria-20170630-git.tgz''; url = ''http://beta.quicklisp.org/archive/alexandria/2017-06-30/alexandria-20170630-git.tgz'';
sha256 = ''1ch7987ijs5gz5dk3i02bqgb2bn7s9p3sfsrwq4fp1sxykwr9fis''; sha256 = ''1ch7987ijs5gz5dk3i02bqgb2bn7s9p3sfsrwq4fp1sxykwr9fis'';
}; };
packageName = "alexandria"; packageName = "alexandria";
overrides = x: { asdFilesToKeep = ["alexandria.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/alexandria[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM alexandria DESCRIPTION Alexandria is a collection of portable public domain utilities. SHA256 1ch7987ijs5gz5dk3i02bqgb2bn7s9p3sfsrwq4fp1sxykwr9fis /* (SYSTEM alexandria DESCRIPTION
URL http://beta.quicklisp.org/archive/alexandria/2017-06-30/alexandria-20170630-git.tgz MD5 ce5427881c909981192f870cb52ff59f NAME alexandria TESTNAME NIL Alexandria is a collection of portable public domain utilities. SHA256
FILENAME alexandria DEPS NIL DEPENDENCIES NIL VERSION 20170630-git SIBLINGS (alexandria-tests)) */ 1ch7987ijs5gz5dk3i02bqgb2bn7s9p3sfsrwq4fp1sxykwr9fis URL
http://beta.quicklisp.org/archive/alexandria/2017-06-30/alexandria-20170630-git.tgz
MD5 ce5427881c909981192f870cb52ff59f NAME alexandria FILENAME alexandria
DEPS NIL DEPENDENCIES NIL VERSION 20170630-git SIBLINGS (alexandria-tests)
PARASITES NIL) */

View File

@ -3,33 +3,25 @@ rec {
baseName = ''anaphora''; baseName = ''anaphora'';
version = ''20170227-git''; version = ''20170227-git'';
parasites = [ "anaphora/test" ];
description = ''The Anaphoric Macro Package from Hell''; description = ''The Anaphoric Macro Package from Hell'';
deps = [ ]; deps = [ args."rt" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/anaphora/2017-02-27/anaphora-20170227-git.tgz''; url = ''http://beta.quicklisp.org/archive/anaphora/2017-02-27/anaphora-20170227-git.tgz'';
sha256 = ''1inv6bcly6r7yixj1pp0i4h0y7lxyv68mk9wsi5iwi9gx6000yd9''; sha256 = ''1inv6bcly6r7yixj1pp0i4h0y7lxyv68mk9wsi5iwi9gx6000yd9'';
}; };
packageName = "anaphora"; packageName = "anaphora";
overrides = x: { asdFilesToKeep = ["anaphora.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/anaphora[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM anaphora DESCRIPTION The Anaphoric Macro Package from Hell SHA256 1inv6bcly6r7yixj1pp0i4h0y7lxyv68mk9wsi5iwi9gx6000yd9 URL /* (SYSTEM anaphora DESCRIPTION The Anaphoric Macro Package from Hell SHA256
http://beta.quicklisp.org/archive/anaphora/2017-02-27/anaphora-20170227-git.tgz MD5 6121d9bbc92df29d823b60ae0d0c556d NAME anaphora TESTNAME NIL FILENAME 1inv6bcly6r7yixj1pp0i4h0y7lxyv68mk9wsi5iwi9gx6000yd9 URL
anaphora DEPS NIL DEPENDENCIES NIL VERSION 20170227-git SIBLINGS NIL) */ http://beta.quicklisp.org/archive/anaphora/2017-02-27/anaphora-20170227-git.tgz
MD5 6121d9bbc92df29d823b60ae0d0c556d NAME anaphora FILENAME anaphora DEPS
((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20170227-git SIBLINGS NIL
PARASITES (anaphora/test)) */

View File

@ -11,25 +11,15 @@ rec {
url = ''http://beta.quicklisp.org/archive/array-utils/2017-06-30/array-utils-20170630-git.tgz''; url = ''http://beta.quicklisp.org/archive/array-utils/2017-06-30/array-utils-20170630-git.tgz'';
sha256 = ''1nj42w2q11qdg65cviaj514pcql1gi729mcsj5g2vy17pr298zgb''; sha256 = ''1nj42w2q11qdg65cviaj514pcql1gi729mcsj5g2vy17pr298zgb'';
}; };
packageName = "array-utils"; packageName = "array-utils";
overrides = x: { asdFilesToKeep = ["array-utils.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/array-utils[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM array-utils DESCRIPTION A few utilities for working with arrays. SHA256 1nj42w2q11qdg65cviaj514pcql1gi729mcsj5g2vy17pr298zgb URL /* (SYSTEM array-utils DESCRIPTION A few utilities for working with arrays.
http://beta.quicklisp.org/archive/array-utils/2017-06-30/array-utils-20170630-git.tgz MD5 550b37bc0eccfafa889de00b59c422dc NAME array-utils TESTNAME NIL SHA256 1nj42w2q11qdg65cviaj514pcql1gi729mcsj5g2vy17pr298zgb URL
FILENAME array-utils DEPS NIL DEPENDENCIES NIL VERSION 20170630-git SIBLINGS (array-utils-test)) */ http://beta.quicklisp.org/archive/array-utils/2017-06-30/array-utils-20170630-git.tgz
MD5 550b37bc0eccfafa889de00b59c422dc NAME array-utils FILENAME array-utils
DEPS NIL DEPENDENCIES NIL VERSION 20170630-git SIBLINGS (array-utils-test)
PARASITES NIL) */

View File

@ -0,0 +1,26 @@
args @ { fetchurl, ... }:
rec {
baseName = ''asdf-finalizers'';
version = ''20170403-git'';
description = ''Enforced calling of finalizers for Lisp code'';
deps = [ ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/asdf-finalizers/2017-04-03/asdf-finalizers-20170403-git.tgz'';
sha256 = ''1w2ka0123icbjba7ngdd6h93j72g236h6jw4bsmvsak69fj0ybxj'';
};
packageName = "asdf-finalizers";
asdFilesToKeep = ["asdf-finalizers.asd"];
overrides = x: x;
}
/* (SYSTEM asdf-finalizers DESCRIPTION
Enforced calling of finalizers for Lisp code SHA256
1w2ka0123icbjba7ngdd6h93j72g236h6jw4bsmvsak69fj0ybxj URL
http://beta.quicklisp.org/archive/asdf-finalizers/2017-04-03/asdf-finalizers-20170403-git.tgz
MD5 a9e3c960e6b6fdbd69640b520ef8044b NAME asdf-finalizers FILENAME
asdf-finalizers DEPS NIL DEPENDENCIES NIL VERSION 20170403-git SIBLINGS
(asdf-finalizers-test list-of) PARASITES NIL) */

View File

@ -11,26 +11,16 @@ rec {
url = ''http://beta.quicklisp.org/archive/asdf-system-connections/2017-01-24/asdf-system-connections-20170124-git.tgz''; url = ''http://beta.quicklisp.org/archive/asdf-system-connections/2017-01-24/asdf-system-connections-20170124-git.tgz'';
sha256 = ''0h8237bq3niw6glcsps77n1ykcmc5bjkcrbjyxjgkmcb1c5kwwpq''; sha256 = ''0h8237bq3niw6glcsps77n1ykcmc5bjkcrbjyxjgkmcb1c5kwwpq'';
}; };
packageName = "asdf-system-connections"; packageName = "asdf-system-connections";
overrides = x: { asdFilesToKeep = ["asdf-system-connections.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/asdf-system-connections[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM asdf-system-connections DESCRIPTION Allows for ASDF system to be connected so that auto-loading may occur. SHA256 /* (SYSTEM asdf-system-connections DESCRIPTION
0h8237bq3niw6glcsps77n1ykcmc5bjkcrbjyxjgkmcb1c5kwwpq URL Allows for ASDF system to be connected so that auto-loading may occur.
http://beta.quicklisp.org/archive/asdf-system-connections/2017-01-24/asdf-system-connections-20170124-git.tgz MD5 23bdbb69c433568e3e15ed705b803992 NAME SHA256 0h8237bq3niw6glcsps77n1ykcmc5bjkcrbjyxjgkmcb1c5kwwpq URL
asdf-system-connections TESTNAME NIL FILENAME asdf-system-connections DEPS NIL DEPENDENCIES NIL VERSION 20170124-git SIBLINGS NIL) */ http://beta.quicklisp.org/archive/asdf-system-connections/2017-01-24/asdf-system-connections-20170124-git.tgz
MD5 23bdbb69c433568e3e15ed705b803992 NAME asdf-system-connections FILENAME
asdf-system-connections DEPS NIL DEPENDENCIES NIL VERSION 20170124-git
SIBLINGS NIL PARASITES NIL) */

View File

@ -5,32 +5,26 @@ rec {
description = ''Some useful streams based on Babel's encoding code''; description = ''Some useful streams based on Babel's encoding code'';
deps = [ args."trivial-gray-streams" args."alexandria" ]; deps = [ args."alexandria" args."babel" args."trivial-features" args."trivial-gray-streams" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz''; url = ''http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz'';
sha256 = ''0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx''; sha256 = ''0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx'';
}; };
packageName = "babel-streams"; packageName = "babel-streams";
overrides = x: { asdFilesToKeep = ["babel-streams.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/babel-streams[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM babel-streams DESCRIPTION Some useful streams based on Babel's encoding code SHA256 0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx URL /* (SYSTEM babel-streams DESCRIPTION
http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz MD5 aa7eff848b97bb7f7aa6bdb43a081964 NAME babel-streams TESTNAME NIL FILENAME Some useful streams based on Babel's encoding code SHA256
babel-streams DEPS ((NAME trivial-gray-streams FILENAME trivial-gray-streams) (NAME alexandria FILENAME alexandria)) DEPENDENCIES 0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx URL
(trivial-gray-streams alexandria) VERSION babel-20170630-git SIBLINGS (babel-tests babel)) */ http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz
MD5 aa7eff848b97bb7f7aa6bdb43a081964 NAME babel-streams FILENAME
babel-streams DEPS
((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
(NAME trivial-features FILENAME trivial-features)
(NAME trivial-gray-streams FILENAME trivial-gray-streams))
DEPENDENCIES (alexandria babel trivial-features trivial-gray-streams)
VERSION babel-20170630-git SIBLINGS (babel-tests babel) PARASITES NIL) */

View File

@ -5,32 +5,23 @@ rec {
description = ''Babel, a charset conversion library.''; description = ''Babel, a charset conversion library.'';
deps = [ args."trivial-features" args."alexandria" ]; deps = [ args."alexandria" args."trivial-features" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz''; url = ''http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz'';
sha256 = ''0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx''; sha256 = ''0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx'';
}; };
packageName = "babel"; packageName = "babel";
overrides = x: { asdFilesToKeep = ["babel.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/babel[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM babel DESCRIPTION Babel, a charset conversion library. SHA256 0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx URL /* (SYSTEM babel DESCRIPTION Babel, a charset conversion library. SHA256
http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz MD5 aa7eff848b97bb7f7aa6bdb43a081964 NAME babel TESTNAME NIL FILENAME babel DEPS 0w1jfzdklk5zz9vgplr2a0vc6gybrwl8wa72nj6xs4ihp7spf0lx URL
((NAME trivial-features FILENAME trivial-features) (NAME alexandria FILENAME alexandria)) DEPENDENCIES (trivial-features alexandria) VERSION 20170630-git http://beta.quicklisp.org/archive/babel/2017-06-30/babel-20170630-git.tgz
SIBLINGS (babel-streams babel-tests)) */ MD5 aa7eff848b97bb7f7aa6bdb43a081964 NAME babel FILENAME babel DEPS
((NAME alexandria FILENAME alexandria)
(NAME trivial-features FILENAME trivial-features))
DEPENDENCIES (alexandria trivial-features) VERSION 20170630-git SIBLINGS
(babel-streams babel-tests) PARASITES NIL) */

View File

@ -11,25 +11,15 @@ rec {
url = ''http://beta.quicklisp.org/archive/blackbird/2016-05-31/blackbird-20160531-git.tgz''; url = ''http://beta.quicklisp.org/archive/blackbird/2016-05-31/blackbird-20160531-git.tgz'';
sha256 = ''0l053fb5fdz1q6dyfgys6nmbairc3aig4wjl5abpf8b1paf7gzq9''; sha256 = ''0l053fb5fdz1q6dyfgys6nmbairc3aig4wjl5abpf8b1paf7gzq9'';
}; };
packageName = "blackbird"; packageName = "blackbird";
overrides = x: { asdFilesToKeep = ["blackbird.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/blackbird[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM blackbird DESCRIPTION A promise implementation for Common Lisp. SHA256 0l053fb5fdz1q6dyfgys6nmbairc3aig4wjl5abpf8b1paf7gzq9 URL /* (SYSTEM blackbird DESCRIPTION A promise implementation for Common Lisp.
http://beta.quicklisp.org/archive/blackbird/2016-05-31/blackbird-20160531-git.tgz MD5 5cb13dc06a0eae8dcba14714d2b5365d NAME blackbird TESTNAME NIL FILENAME SHA256 0l053fb5fdz1q6dyfgys6nmbairc3aig4wjl5abpf8b1paf7gzq9 URL
blackbird DEPS ((NAME vom FILENAME vom)) DEPENDENCIES (vom) VERSION 20160531-git SIBLINGS (blackbird-test)) */ http://beta.quicklisp.org/archive/blackbird/2016-05-31/blackbird-20160531-git.tgz
MD5 5cb13dc06a0eae8dcba14714d2b5365d NAME blackbird FILENAME blackbird DEPS
((NAME vom FILENAME vom)) DEPENDENCIES (vom) VERSION 20160531-git SIBLINGS
(blackbird-test) PARASITES NIL) */

View File

@ -3,34 +3,28 @@ rec {
baseName = ''bordeaux-threads''; baseName = ''bordeaux-threads'';
version = ''v0.8.5''; version = ''v0.8.5'';
parasites = [ "bordeaux-threads/test" ];
description = ''Bordeaux Threads makes writing portable multi-threaded apps simple.''; description = ''Bordeaux Threads makes writing portable multi-threaded apps simple.'';
deps = [ args."alexandria" ]; deps = [ args."alexandria" args."fiveam" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/bordeaux-threads/2016-03-18/bordeaux-threads-v0.8.5.tgz''; url = ''http://beta.quicklisp.org/archive/bordeaux-threads/2016-03-18/bordeaux-threads-v0.8.5.tgz'';
sha256 = ''09q1xd3fca6ln6mh45cx24xzkrcnvhgl5nn9g2jv0rwj1m2xvbpd''; sha256 = ''09q1xd3fca6ln6mh45cx24xzkrcnvhgl5nn9g2jv0rwj1m2xvbpd'';
}; };
packageName = "bordeaux-threads"; packageName = "bordeaux-threads";
overrides = x: { asdFilesToKeep = ["bordeaux-threads.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/bordeaux-threads[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM bordeaux-threads DESCRIPTION Bordeaux Threads makes writing portable multi-threaded apps simple. SHA256 /* (SYSTEM bordeaux-threads DESCRIPTION
09q1xd3fca6ln6mh45cx24xzkrcnvhgl5nn9g2jv0rwj1m2xvbpd URL http://beta.quicklisp.org/archive/bordeaux-threads/2016-03-18/bordeaux-threads-v0.8.5.tgz MD5 Bordeaux Threads makes writing portable multi-threaded apps simple. SHA256
67e363a363e164b6f61a047957b8554e NAME bordeaux-threads TESTNAME NIL FILENAME bordeaux-threads DEPS ((NAME alexandria FILENAME alexandria)) DEPENDENCIES 09q1xd3fca6ln6mh45cx24xzkrcnvhgl5nn9g2jv0rwj1m2xvbpd URL
(alexandria) VERSION v0.8.5 SIBLINGS NIL) */ http://beta.quicklisp.org/archive/bordeaux-threads/2016-03-18/bordeaux-threads-v0.8.5.tgz
MD5 67e363a363e164b6f61a047957b8554e NAME bordeaux-threads FILENAME
bordeaux-threads DEPS
((NAME alexandria FILENAME alexandria) (NAME fiveam FILENAME fiveam))
DEPENDENCIES (alexandria fiveam) VERSION v0.8.5 SIBLINGS NIL PARASITES
(bordeaux-threads/test)) */

View File

@ -5,36 +5,33 @@ rec {
description = ''Web Application Framework for Common Lisp''; description = ''Web Application Framework for Common Lisp'';
deps = [ args."myway" args."local-time" args."do-urlencode" args."clack-v1-compat" args."cl-syntax-annot" args."cl-syntax" args."cl-project" args."cl-ppcre" args."cl-emb" args."anaphora" ]; deps = [ args."anaphora" args."cl-emb" args."cl-ppcre" args."cl-project" args."cl-syntax" args."cl-syntax-annot" args."clack-v1-compat" args."do-urlencode" args."local-time" args."myway" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/caveman/2017-06-30/caveman-20170630-git.tgz''; url = ''http://beta.quicklisp.org/archive/caveman/2017-06-30/caveman-20170630-git.tgz'';
sha256 = ''0wpjnskcvrgvqn9gbr43yqnpcxfmdggbiyaxz9rrhgcis2rwjkj2''; sha256 = ''0wpjnskcvrgvqn9gbr43yqnpcxfmdggbiyaxz9rrhgcis2rwjkj2'';
}; };
packageName = "caveman"; packageName = "caveman";
overrides = x: { asdFilesToKeep = ["caveman.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/caveman[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM caveman DESCRIPTION Web Application Framework for Common Lisp SHA256 0wpjnskcvrgvqn9gbr43yqnpcxfmdggbiyaxz9rrhgcis2rwjkj2 URL /* (SYSTEM caveman DESCRIPTION Web Application Framework for Common Lisp SHA256
http://beta.quicklisp.org/archive/caveman/2017-06-30/caveman-20170630-git.tgz MD5 774f85fa78792bde012bad78efff4b53 NAME caveman TESTNAME NIL FILENAME 0wpjnskcvrgvqn9gbr43yqnpcxfmdggbiyaxz9rrhgcis2rwjkj2 URL
caveman DEPS http://beta.quicklisp.org/archive/caveman/2017-06-30/caveman-20170630-git.tgz
((NAME myway FILENAME myway) (NAME local-time FILENAME local-time) (NAME do-urlencode FILENAME do-urlencode) MD5 774f85fa78792bde012bad78efff4b53 NAME caveman FILENAME caveman DEPS
(NAME clack-v1-compat FILENAME clack-v1-compat) (NAME cl-syntax-annot FILENAME cl-syntax-annot) (NAME cl-syntax FILENAME cl-syntax) ((NAME anaphora FILENAME anaphora) (NAME cl-emb FILENAME cl-emb)
(NAME cl-project FILENAME cl-project) (NAME cl-ppcre FILENAME cl-ppcre) (NAME cl-emb FILENAME cl-emb) (NAME anaphora FILENAME anaphora)) (NAME cl-ppcre FILENAME cl-ppcre) (NAME cl-project FILENAME cl-project)
DEPENDENCIES (myway local-time do-urlencode clack-v1-compat cl-syntax-annot cl-syntax cl-project cl-ppcre cl-emb anaphora) VERSION 20170630-git SIBLINGS (NAME cl-syntax FILENAME cl-syntax)
(caveman-middleware-dbimanager caveman-test caveman2-db caveman2-test caveman2)) */ (NAME cl-syntax-annot FILENAME cl-syntax-annot)
(NAME clack-v1-compat FILENAME clack-v1-compat)
(NAME do-urlencode FILENAME do-urlencode)
(NAME local-time FILENAME local-time) (NAME myway FILENAME myway))
DEPENDENCIES
(anaphora cl-emb cl-ppcre cl-project cl-syntax cl-syntax-annot
clack-v1-compat do-urlencode local-time myway)
VERSION 20170630-git SIBLINGS
(caveman-middleware-dbimanager caveman-test caveman2-db caveman2-test
caveman2)
PARASITES NIL) */

View File

@ -5,32 +5,26 @@ rec {
description = ''The CFFI Groveller''; description = ''The CFFI Groveller'';
deps = [ args."alexandria" ]; deps = [ args."alexandria" args."babel" args."cffi" args."cffi-toolchain" args."trivial-features" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz''; url = ''http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz'';
sha256 = ''12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9''; sha256 = ''12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9'';
}; };
packageName = "cffi-grovel"; packageName = "cffi-grovel";
overrides = x: { asdFilesToKeep = ["cffi-grovel.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/cffi-grovel[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM cffi-grovel DESCRIPTION The CFFI Groveller SHA256 12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9 URL /* (SYSTEM cffi-grovel DESCRIPTION The CFFI Groveller SHA256
http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz MD5 7589b6437fec19fdabc65892536c3dc3 NAME cffi-grovel TESTNAME NIL FILENAME cffi-grovel 12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9 URL
DEPS ((NAME alexandria FILENAME alexandria)) DEPENDENCIES (alexandria) VERSION cffi_0.19.0 SIBLINGS http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz MD5
(cffi-examples cffi-libffi cffi-tests cffi-toolchain cffi-uffi-compat cffi)) */ 7589b6437fec19fdabc65892536c3dc3 NAME cffi-grovel FILENAME cffi-grovel DEPS
((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
(NAME cffi FILENAME cffi) (NAME cffi-toolchain FILENAME cffi-toolchain)
(NAME trivial-features FILENAME trivial-features))
DEPENDENCIES (alexandria babel cffi cffi-toolchain trivial-features)
VERSION cffi_0.19.0 SIBLINGS
(cffi-examples cffi-libffi cffi-tests cffi-toolchain cffi-uffi-compat cffi)
PARASITES NIL) */

View File

@ -0,0 +1,31 @@
args @ { fetchurl, ... }:
rec {
baseName = ''cffi-toolchain'';
version = ''cffi_0.19.0'';
description = ''The CFFI toolchain'';
deps = [ args."alexandria" args."babel" args."cffi" args."trivial-features" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz'';
sha256 = ''12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9'';
};
packageName = "cffi-toolchain";
asdFilesToKeep = ["cffi-toolchain.asd"];
overrides = x: x;
}
/* (SYSTEM cffi-toolchain DESCRIPTION The CFFI toolchain SHA256
12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9 URL
http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz MD5
7589b6437fec19fdabc65892536c3dc3 NAME cffi-toolchain FILENAME
cffi-toolchain DEPS
((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
(NAME cffi FILENAME cffi)
(NAME trivial-features FILENAME trivial-features))
DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.19.0
SIBLINGS
(cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-uffi-compat cffi)
PARASITES NIL) */

View File

@ -3,35 +3,32 @@ rec {
baseName = ''cffi''; baseName = ''cffi'';
version = ''cffi_0.19.0''; version = ''cffi_0.19.0'';
parasites = [ "cffi/c2ffi" "cffi/c2ffi-generator" ];
description = ''The Common Foreign Function Interface''; description = ''The Common Foreign Function Interface'';
deps = [ args."uiop" args."trivial-features" args."babel" args."alexandria" ]; deps = [ args."alexandria" args."babel" args."cl-json" args."cl-ppcre" args."trivial-features" args."uiop" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz''; url = ''http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz'';
sha256 = ''12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9''; sha256 = ''12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9'';
}; };
packageName = "cffi"; packageName = "cffi";
overrides = x: { asdFilesToKeep = ["cffi.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/cffi[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM cffi DESCRIPTION The Common Foreign Function Interface SHA256 12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9 URL /* (SYSTEM cffi DESCRIPTION The Common Foreign Function Interface SHA256
http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz MD5 7589b6437fec19fdabc65892536c3dc3 NAME cffi TESTNAME NIL FILENAME cffi DEPS 12v3ha0qp3f9lq2h3d7y3mwdq216nsdfig0s3c4akw90rsbnydj9 URL
((NAME uiop FILENAME uiop) (NAME trivial-features FILENAME trivial-features) (NAME babel FILENAME babel) (NAME alexandria FILENAME alexandria)) http://beta.quicklisp.org/archive/cffi/2017-06-30/cffi_0.19.0.tgz MD5
DEPENDENCIES (uiop trivial-features babel alexandria) VERSION cffi_0.19.0 SIBLINGS 7589b6437fec19fdabc65892536c3dc3 NAME cffi FILENAME cffi DEPS
(cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-toolchain cffi-uffi-compat)) */ ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
(NAME cl-json FILENAME cl-json) (NAME cl-ppcre FILENAME cl-ppcre)
(NAME trivial-features FILENAME trivial-features)
(NAME uiop FILENAME uiop))
DEPENDENCIES (alexandria babel cl-json cl-ppcre trivial-features uiop)
VERSION cffi_0.19.0 SIBLINGS
(cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-toolchain
cffi-uffi-compat)
PARASITES (cffi/c2ffi cffi/c2ffi-generator)) */

View File

@ -11,25 +11,15 @@ rec {
url = ''http://beta.quicklisp.org/archive/chipz/2016-03-18/chipz-20160318-git.tgz''; url = ''http://beta.quicklisp.org/archive/chipz/2016-03-18/chipz-20160318-git.tgz'';
sha256 = ''1dpsg8kd43k075xihb0szcq1f7iq8ryg5r77x5wi6hy9jhpq8826''; sha256 = ''1dpsg8kd43k075xihb0szcq1f7iq8ryg5r77x5wi6hy9jhpq8826'';
}; };
packageName = "chipz"; packageName = "chipz";
overrides = x: { asdFilesToKeep = ["chipz.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/chipz[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM chipz DESCRIPTION A library for decompressing deflate, zlib, and gzip data SHA256 1dpsg8kd43k075xihb0szcq1f7iq8ryg5r77x5wi6hy9jhpq8826 URL /* (SYSTEM chipz DESCRIPTION
http://beta.quicklisp.org/archive/chipz/2016-03-18/chipz-20160318-git.tgz MD5 625cb9c551f3692799e2029d4a0dd7e9 NAME chipz TESTNAME NIL FILENAME chipz DEPS A library for decompressing deflate, zlib, and gzip data SHA256
NIL DEPENDENCIES NIL VERSION 20160318-git SIBLINGS NIL) */ 1dpsg8kd43k075xihb0szcq1f7iq8ryg5r77x5wi6hy9jhpq8826 URL
http://beta.quicklisp.org/archive/chipz/2016-03-18/chipz-20160318-git.tgz
MD5 625cb9c551f3692799e2029d4a0dd7e9 NAME chipz FILENAME chipz DEPS NIL
DEPENDENCIES NIL VERSION 20160318-git SIBLINGS NIL PARASITES NIL) */

View File

@ -11,25 +11,15 @@ rec {
url = ''http://beta.quicklisp.org/archive/chunga/2014-12-17/chunga-1.1.6.tgz''; url = ''http://beta.quicklisp.org/archive/chunga/2014-12-17/chunga-1.1.6.tgz'';
sha256 = ''1ivdfi9hjkzp2anhpjm58gzrjpn6mdsp35km115c1j1c4yhs9lzg''; sha256 = ''1ivdfi9hjkzp2anhpjm58gzrjpn6mdsp35km115c1j1c4yhs9lzg'';
}; };
packageName = "chunga"; packageName = "chunga";
overrides = x: { asdFilesToKeep = ["chunga.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/chunga[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM chunga DESCRIPTION NIL SHA256 1ivdfi9hjkzp2anhpjm58gzrjpn6mdsp35km115c1j1c4yhs9lzg URL /* (SYSTEM chunga DESCRIPTION NIL SHA256
http://beta.quicklisp.org/archive/chunga/2014-12-17/chunga-1.1.6.tgz MD5 75f5c4f9dec3a8a181ed5ef7e5d700b5 NAME chunga TESTNAME NIL FILENAME chunga DEPS 1ivdfi9hjkzp2anhpjm58gzrjpn6mdsp35km115c1j1c4yhs9lzg URL
((NAME trivial-gray-streams FILENAME trivial-gray-streams)) DEPENDENCIES (trivial-gray-streams) VERSION 1.1.6 SIBLINGS NIL) */ http://beta.quicklisp.org/archive/chunga/2014-12-17/chunga-1.1.6.tgz MD5
75f5c4f9dec3a8a181ed5ef7e5d700b5 NAME chunga FILENAME chunga DEPS
((NAME trivial-gray-streams FILENAME trivial-gray-streams)) DEPENDENCIES
(trivial-gray-streams) VERSION 1.1.6 SIBLINGS NIL PARASITES NIL) */

View File

@ -5,32 +5,26 @@ rec {
description = ''Circularly readable streams for Common Lisp''; description = ''Circularly readable streams for Common Lisp'';
deps = [ args."trivial-gray-streams" args."fast-io" ]; deps = [ args."alexandria" args."fast-io" args."static-vectors" args."trivial-gray-streams" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/circular-streams/2016-12-04/circular-streams-20161204-git.tgz''; url = ''http://beta.quicklisp.org/archive/circular-streams/2016-12-04/circular-streams-20161204-git.tgz'';
sha256 = ''1i29b9sciqs5x59hlkdj2r4siyqgrwj5hb4lnc80jgfqvzbq4128''; sha256 = ''1i29b9sciqs5x59hlkdj2r4siyqgrwj5hb4lnc80jgfqvzbq4128'';
}; };
packageName = "circular-streams"; packageName = "circular-streams";
overrides = x: { asdFilesToKeep = ["circular-streams.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/circular-streams[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM circular-streams DESCRIPTION Circularly readable streams for Common Lisp SHA256 1i29b9sciqs5x59hlkdj2r4siyqgrwj5hb4lnc80jgfqvzbq4128 URL /* (SYSTEM circular-streams DESCRIPTION
http://beta.quicklisp.org/archive/circular-streams/2016-12-04/circular-streams-20161204-git.tgz MD5 2383f3b82fa3335d9106e1354a678db8 NAME circular-streams Circularly readable streams for Common Lisp SHA256
TESTNAME NIL FILENAME circular-streams DEPS ((NAME trivial-gray-streams FILENAME trivial-gray-streams) (NAME fast-io FILENAME fast-io)) DEPENDENCIES 1i29b9sciqs5x59hlkdj2r4siyqgrwj5hb4lnc80jgfqvzbq4128 URL
(trivial-gray-streams fast-io) VERSION 20161204-git SIBLINGS (circular-streams-test)) */ http://beta.quicklisp.org/archive/circular-streams/2016-12-04/circular-streams-20161204-git.tgz
MD5 2383f3b82fa3335d9106e1354a678db8 NAME circular-streams FILENAME
circular-streams DEPS
((NAME alexandria FILENAME alexandria) (NAME fast-io FILENAME fast-io)
(NAME static-vectors FILENAME static-vectors)
(NAME trivial-gray-streams FILENAME trivial-gray-streams))
DEPENDENCIES (alexandria fast-io static-vectors trivial-gray-streams)
VERSION 20161204-git SIBLINGS (circular-streams-test) PARASITES NIL) */

View File

@ -3,38 +3,35 @@ rec {
baseName = ''cl+ssl''; baseName = ''cl+ssl'';
version = ''cl+ssl-20170725-git''; version = ''cl+ssl-20170725-git'';
parasites = [ "openssl-1.1.0" ];
description = ''Common Lisp interface to OpenSSL.''; description = ''Common Lisp interface to OpenSSL.'';
deps = [ args."uiop" args."trivial-gray-streams" args."trivial-garbage" args."trivial-features" args."flexi-streams" args."cffi" args."bordeaux-threads" args."alexandria" ]; deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."flexi-streams" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."uiop" ];
src = fetchurl { src = fetchurl {
url = ''http://beta.quicklisp.org/archive/cl+ssl/2017-07-25/cl+ssl-20170725-git.tgz''; url = ''http://beta.quicklisp.org/archive/cl+ssl/2017-07-25/cl+ssl-20170725-git.tgz'';
sha256 = ''1p5886l5bwz4bj2xy8mpsjswg103b8saqdnw050a4wk9shpj1j69''; sha256 = ''1p5886l5bwz4bj2xy8mpsjswg103b8saqdnw050a4wk9shpj1j69'';
}; };
packageName = "cl+ssl"; packageName = "cl+ssl";
overrides = x: { asdFilesToKeep = ["cl+ssl.asd"];
postInstall = '' overrides = x: x;
find "$out/lib/common-lisp/" -name '*.asd' | grep -iv '/cl+ssl[.]asd${"$"}' |
while read f; do
env -i \
NIX_LISP="$NIX_LISP" \
NIX_LISP_PRELAUNCH_HOOK="nix_lisp_run_single_form '(progn
(asdf:load-system :$(basename "$f" .asd))
(asdf:perform (quote asdf:compile-bundle-op) :$(basename "$f" .asd))
(ignore-errors (asdf:perform (quote asdf:deliver-asd-op) :$(basename "$f" .asd)))
)'" \
"$out"/bin/*-lisp-launcher.sh ||
mv "$f"{,.sibling}; done || true
'';
};
} }
/* (SYSTEM cl+ssl DESCRIPTION Common Lisp interface to OpenSSL. SHA256 1p5886l5bwz4bj2xy8mpsjswg103b8saqdnw050a4wk9shpj1j69 URL /* (SYSTEM cl+ssl DESCRIPTION Common Lisp interface to OpenSSL. SHA256
http://beta.quicklisp.org/archive/cl+ssl/2017-07-25/cl+ssl-20170725-git.tgz MD5 3458c83f442395e0492c7e9b9720a1f2 NAME cl+ssl TESTNAME NIL FILENAME cl+ssl 1p5886l5bwz4bj2xy8mpsjswg103b8saqdnw050a4wk9shpj1j69 URL
DEPS http://beta.quicklisp.org/archive/cl+ssl/2017-07-25/cl+ssl-20170725-git.tgz
((NAME uiop FILENAME uiop) (NAME trivial-gray-streams FILENAME trivial-gray-streams) (NAME trivial-garbage FILENAME trivial-garbage) MD5 3458c83f442395e0492c7e9b9720a1f2 NAME cl+ssl FILENAME cl+ssl DEPS
(NAME trivial-features FILENAME trivial-features) (NAME flexi-streams FILENAME flexi-streams) (NAME cffi FILENAME cffi) ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
(NAME bordeaux-threads FILENAME bordeaux-threads) (NAME alexandria FILENAME alexandria)) (NAME bordeaux-threads FILENAME bordeaux-threads)
DEPENDENCIES (uiop trivial-gray-streams trivial-garbage trivial-features flexi-streams cffi bordeaux-threads alexandria) VERSION cl+ssl-20170725-git (NAME cffi FILENAME cffi) (NAME flexi-streams FILENAME flexi-streams)
SIBLINGS (cl+ssl.test)) */ (NAME trivial-features FILENAME trivial-features)
(NAME trivial-garbage FILENAME trivial-garbage)
(NAME trivial-gray-streams FILENAME trivial-gray-streams)
(NAME uiop FILENAME uiop))
DEPENDENCIES
(alexandria babel bordeaux-threads cffi flexi-streams trivial-features
trivial-garbage trivial-gray-streams uiop)
VERSION cl+ssl-20170725-git SIBLINGS (cl+ssl.test) PARASITES
(openssl-1.1.0)) */

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