diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/version-management')
165 files changed, 20415 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch b/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch new file mode 100644 index 000000000000..2b39322ca22f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch @@ -0,0 +1,11 @@ +--- tla-1.3.5/src/build-tools/auto-conf-lib/gnu-patch-test 2006-07-20 08:34:28.000000000 +0200 ++++ tla-1.3.5/src/build-tools/auto-conf-lib/gnu-patch-test 2008-02-17 13:00:07.000000000 +0100 +@@ -27,7 +27,7 @@ else + fi + + CMP='cmp' # we require a working 'cmp' utility +-TMPDIR="/tmp/,patch-test.$$" ++TMPDIR="${TMPDIR:-/tmp}/,patch-test.$$" + + ORIG_A="$TMPDIR/to-patch_a" + ORIG_PRISTINE_A="$TMPDIR/to-patch_a.the-original" diff --git a/nixpkgs/pkgs/applications/version-management/arch/default.nix b/nixpkgs/pkgs/applications/version-management/arch/default.nix new file mode 100644 index 000000000000..bc62004065b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/arch/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, which, diffutils, gnupatch, gnutar }: + +stdenv.mkDerivation rec { + name = "tla-1.3.5"; + + src = fetchurl { + url = "ftp://ftp.gnu.org/old-gnu/gnu-arch/" + name + ".tar.gz"; + sha256 = "01mfzj1i6p4s8191cgd5850hds1zls88hkf9rb6qx1vqjv585aj0"; + }; + + patches = [ ./configure-tmpdir.patch ]; + + buildInputs = [which]; + + propagatedBuildInputs = [diffutils gnupatch gnutar]; + + # Instead of GNU Autoconf, tla uses Tom Lord's now + # defunct `package-framework'. + buildPhase = '' + mkdir +build && cd +build && \ + ../src/configure --prefix="$out" && \ + make install + ''; + + meta = { + description = "GNU Arch (aka. `tla'), a distributed revision control system"; + homepage = https://www.gnu.org/software/gnu-arch/; + license = "GPL"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch b/nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch new file mode 100644 index 000000000000..a34ab0c6eb10 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch @@ -0,0 +1,149 @@ +diff --git a/bzrlib/tests/test_ssh_transport.py b/bzrlib/tests/test_ssh_transport.py +index 9e37c3b..fe9f219 100644 +--- a/bzrlib/tests/test_ssh_transport.py ++++ b/bzrlib/tests/test_ssh_transport.py +@@ -22,6 +22,7 @@ from bzrlib.transport.ssh import ( + SSHCorpSubprocessVendor, + LSHSubprocessVendor, + SSHVendorManager, ++ StrangeHostname, + ) + + +@@ -161,6 +162,19 @@ class SSHVendorManagerTests(TestCase): + + class SubprocessVendorsTests(TestCase): + ++ def test_openssh_command_tricked(self): ++ vendor = OpenSSHSubprocessVendor() ++ self.assertEqual( ++ vendor._get_vendor_specific_argv( ++ "user", "-oProxyCommand=blah", 100, command=["bzr"]), ++ ["ssh", "-oForwardX11=no", "-oForwardAgent=no", ++ "-oClearAllForwardings=yes", ++ "-oNoHostAuthenticationForLocalhost=yes", ++ "-p", "100", ++ "-l", "user", ++ "--", ++ "-oProxyCommand=blah", "bzr"]) ++ + def test_openssh_command_arguments(self): + vendor = OpenSSHSubprocessVendor() + self.assertEqual( +@@ -171,6 +185,7 @@ class SubprocessVendorsTests(TestCase): + "-oNoHostAuthenticationForLocalhost=yes", + "-p", "100", + "-l", "user", ++ "--", + "host", "bzr"] + ) + +@@ -184,9 +199,16 @@ class SubprocessVendorsTests(TestCase): + "-oNoHostAuthenticationForLocalhost=yes", + "-p", "100", + "-l", "user", +- "-s", "host", "sftp"] ++ "-s", "--", "host", "sftp"] + ) + ++ def test_openssh_command_tricked(self): ++ vendor = SSHCorpSubprocessVendor() ++ self.assertRaises( ++ StrangeHostname, ++ vendor._get_vendor_specific_argv, ++ "user", "-oProxyCommand=host", 100, command=["bzr"]) ++ + def test_sshcorp_command_arguments(self): + vendor = SSHCorpSubprocessVendor() + self.assertEqual( +@@ -209,6 +231,13 @@ class SubprocessVendorsTests(TestCase): + "-s", "sftp", "host"] + ) + ++ def test_lsh_command_tricked(self): ++ vendor = LSHSubprocessVendor() ++ self.assertRaises( ++ StrangeHostname, ++ vendor._get_vendor_specific_argv, ++ "user", "-oProxyCommand=host", 100, command=["bzr"]) ++ + def test_lsh_command_arguments(self): + vendor = LSHSubprocessVendor() + self.assertEqual( +@@ -231,6 +260,13 @@ class SubprocessVendorsTests(TestCase): + "--subsystem", "sftp", "host"] + ) + ++ def test_plink_command_tricked(self): ++ vendor = PLinkSubprocessVendor() ++ self.assertRaises( ++ StrangeHostname, ++ vendor._get_vendor_specific_argv, ++ "user", "-oProxyCommand=host", 100, command=["bzr"]) ++ + def test_plink_command_arguments(self): + vendor = PLinkSubprocessVendor() + self.assertEqual( +diff --git a/bzrlib/transport/ssh.py b/bzrlib/transport/ssh.py +index eecaa26..6f22341 100644 +--- a/bzrlib/transport/ssh.py ++++ b/bzrlib/transport/ssh.py +@@ -46,6 +46,10 @@ else: + from paramiko.sftp_client import SFTPClient + + ++class StrangeHostname(errors.BzrError): ++ _fmt = "Refusing to connect to strange SSH hostname %(hostname)s" ++ ++ + SYSTEM_HOSTKEYS = {} + BZR_HOSTKEYS = {} + +@@ -360,6 +364,11 @@ class SubprocessVendor(SSHVendor): + # tests, but beware of using PIPE which may hang due to not being read. + _stderr_target = None + ++ @staticmethod ++ def _check_hostname(arg): ++ if arg.startswith('-'): ++ raise StrangeHostname(hostname=arg) ++ + def _connect(self, argv): + # Attempt to make a socketpair to use as stdin/stdout for the SSH + # subprocess. We prefer sockets to pipes because they support +@@ -424,9 +433,9 @@ class OpenSSHSubprocessVendor(SubprocessVendor): + if username is not None: + args.extend(['-l', username]) + if subsystem is not None: +- args.extend(['-s', host, subsystem]) ++ args.extend(['-s', '--', host, subsystem]) + else: +- args.extend([host] + command) ++ args.extend(['--', host] + command) + return args + + register_ssh_vendor('openssh', OpenSSHSubprocessVendor()) +@@ -439,6 +448,7 @@ class SSHCorpSubprocessVendor(SubprocessVendor): + + def _get_vendor_specific_argv(self, username, host, port, subsystem=None, + command=None): ++ self._check_hostname(host) + args = [self.executable_path, '-x'] + if port is not None: + args.extend(['-p', str(port)]) +@@ -460,6 +470,7 @@ class LSHSubprocessVendor(SubprocessVendor): + + def _get_vendor_specific_argv(self, username, host, port, subsystem=None, + command=None): ++ self._check_hostname(host) + args = [self.executable_path] + if port is not None: + args.extend(['-p', str(port)]) +@@ -481,6 +492,7 @@ class PLinkSubprocessVendor(SubprocessVendor): + + def _get_vendor_specific_argv(self, username, host, port, subsystem=None, + command=None): ++ self._check_hostname(host) + args = [self.executable_path, '-x', '-a', '-ssh', '-2', '-batch'] + if port is not None: + args.extend(['-P', str(port)]) diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch b/nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch new file mode 100644 index 000000000000..18fac36daec5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch @@ -0,0 +1,11 @@ +diff -ru orig/bzrlib/transport/http/_urllib2_wrappers.py bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py +--- orig/bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py 2016-02-01 20:49:17.000000000 +0100 ++++ bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py 2016-06-18 23:15:21.089511349 +0200 +@@ -95,6 +95,7 @@ + u"/usr/local/share/certs/ca-root-nss.crt", # FreeBSD + # XXX: Needs checking, can't trust the interweb ;) -- vila 2012-01-25 + u'/etc/openssl/certs/ca-certificates.crt', # Solaris ++ u'@certPath@', + ] + + diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/default.nix b/nixpkgs/pkgs/applications/version-management/bazaar/default.nix new file mode 100644 index 000000000000..097c1e86a897 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bazaar/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, python2Packages +, withSFTP ? true + }: + +python2Packages.buildPythonApplication rec { + version = "2.7"; + release = ".0"; + name = "bazaar-${version}${release}"; + + src = fetchurl { + url = "https://launchpad.net/bzr/${version}/${version}${release}/+download/bzr-${version}${release}.tar.gz"; + sha256 = "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d"; + }; + + doCheck = false; + + propagatedBuildInputs = [] + ++ stdenv.lib.optionals withSFTP [ python2Packages.paramiko ]; + + patches = [ + # Bazaar can't find the certificates alone + ./add_certificates.patch + ./CVE-2017-14176.patch + ]; + postPatch = '' + substituteInPlace bzrlib/transport/http/_urllib2_wrappers.py \ + --subst-var-by certPath /etc/ssl/certs/ca-certificates.crt + ''; + + meta = with stdenv.lib; { + homepage = http://bazaar-vcs.org/; + description = "A distributed version control system that Just Works"; + platforms = platforms.unix; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/tools.nix b/nixpkgs/pkgs/applications/version-management/bazaar/tools.nix new file mode 100644 index 000000000000..d16ea2710503 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bazaar/tools.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, python2Packages }: + +python2Packages.buildPythonApplication rec { + name = "bzr-tools-${version}"; + version = "2.6.0"; + + src = fetchurl { + url = "https://launchpad.net/bzrtools/stable/${version}/+download/bzrtools-${version}.tar.gz"; + sha256 = "0n3zzc6jf5866kfhmrnya1vdr2ja137a45qrzsz8vz6sc6xgn5wb"; + }; + + doCheck = false; + + meta = with stdenv.lib; { + description = "Bazaar plugins"; + homepage = http://wiki.bazaar.canonical.com/BzrTools; + platforms = platforms.unix; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix b/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix new file mode 100644 index 000000000000..26397380d57f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, perl, gperf, bison, groff +, pkgconfig, libXft, pcre +, libtomcrypt, libtommath, lz4 }: + +stdenv.mkDerivation rec { + name = "bitkeeper-${version}"; + version = "7.3.1ce"; + + src = fetchurl { + url = "https://www.bitkeeper.org/downloads/${version}/bk-${version}.src.tar.gz"; + sha256 = "0l6jwvcg4s1q00vb01hdv58jgv03l8x5mhjl73cwgfiff80zx147"; + }; + + hardeningDisable = [ "fortify" ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + perl gperf bison groff libXft + pcre libtomcrypt libtommath lz4 + ]; + + postPatch = '' + substituteInPlace port/unix_platform.sh \ + --replace /bin/rm rm + substituteInPlace ./undo.c \ + --replace /bin/cat cat + ''; + + sourceRoot = "bk-${version}/src"; + buildPhase = '' + make -j6 V=1 p + make image + ''; + + installPhase = '' + ./utils/bk-* $out/bitkeeper + mkdir -p $out/bin + $out/bitkeeper/bk links $out/bin + chmod g-w $out + ''; + + meta = { + description = "A distributed version control system"; + longDescription = '' + BitKeeper is a fast, enterprise-ready, distributed SCM that + scales up to very large projects and down to tiny ones. + ''; + homepage = https://www.bitkeeper.org/; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ wscott thoughtpolice ]; + broken = true; # seems to fail on recent glibc versions + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/blackbox/default.nix b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix new file mode 100644 index 000000000000..569606d2fdb6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + version = "1.20170611"; + pname = "blackbox"; + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "stackexchange"; + repo = pname; + rev = "v${version}"; + sha256 = "1jnzhlj54c0szw9l9wib07i2375pbm402bx9wagspcmwc0qw43p6"; + }; + + installPhase = '' + mkdir -p $out/bin && cp -r bin/* $out/bin + ''; + + meta = with stdenv.lib; { + description = "Safely store secrets in a VCS repo"; + maintainers = with maintainers; [ ericsagnes ]; + license = licenses.mit; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix b/nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix new file mode 100644 index 000000000000..7c41a60a7253 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix @@ -0,0 +1,34 @@ +{ stdenv, pythonPackages, fetchurl }: + +# +# Upstream stopped development of this package. If this package does not build +# anymore, feel free to remove it by reverting the appropriate patch +# (git log --grep bugseverywhere) +# +pythonPackages.buildPythonApplication rec { + version = "1.1.1"; + name = "bugseverywhere-${version}"; + + src = fetchurl { + url = + "mirror://pypi/b/bugs-everywhere/bugs-everywhere-${version}.tar.gz"; + sha256 = "1ikm3ckwpimwcvx32vy7gh5gbp7q750j3327m17nvrj99g3daz2d"; + }; + + # There are no tests in the repository. + doCheck = false; + + buildInputs = with pythonPackages; [ + jinja2 + cherrypy + ]; + + meta = with stdenv.lib; { + description = "Bugtracker supporting distributed revision control"; + homepage = http://www.bugseverywhere.org/; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = [ ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix new file mode 100644 index 000000000000..1a5ce6e369ef --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix @@ -0,0 +1,50 @@ +{stdenv, fetchurl, makeWrapper, flex, bison, + asciidoc, docbook_xml_dtd_45, docbook_xsl, + libxml2, libxslt, + python27, rcs, cvs, git, + coreutils, rsync}: +with stdenv; with lib; +mkDerivation rec { + name = "cvs-fast-export-${meta.version}"; + meta = { + version = "1.32"; + description = "Export an RCS or CVS history as a fast-import stream"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dfoxfranke ]; + homepage = http://www.catb.org/esr/cvs-fast-export/; + platforms = platforms.all; + }; + + src = fetchurl { + url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.32.tar.gz"; + sha256 = "5bfb9a5650517d337a96a598795b50bc40ce12172854a6581267e7be3dbcfb97"; + }; + + buildInputs = [ + flex bison asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt + python27 rcs cvs git makeWrapper + ]; + + postPatch = "patchShebangs ."; + + preBuild = '' + makeFlagsArray=( + XML_CATALOG_FILES="${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml" + LIBS="" + prefix="$out" + ) + ''; + + doCheck = true; + + postInstall = + let + binpath = makeBinPath [ out rcs cvs git coreutils rsync ]; + in '' + for prog in cvs-fast-export cvsconvert cvssync; do + wrapProgram $out/bin/$prog \ + --prefix PATH : ${binpath} + done + '' + ; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch new file mode 100644 index 000000000000..cd2b324729fb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch @@ -0,0 +1,16 @@ +diff --git a/src/client.c b/src/client.c +index 751406b..b45d89c 100644 +--- a/src/client.c ++++ b/src/client.c +@@ -3558,9 +3558,9 @@ connect_to_pserver (cvsroot_t *root, struct buffer **to_server_p, + * code. + */ + read_line_via (from_server, to_server, &read_buf); +- sscanf (read_buf, "%s %d", write_buf, &codenum); ++ count = sscanf (read_buf, "%*s %d", &codenum); + +- if ((codenum / 100) != 2) ++ if (count != 1 || (codenum / 100) != 2) + error (1, 0, "proxy server %s:%d does not support http tunnelling", + root->proxy_hostname, proxy_port_number); + free (read_buf); diff --git a/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch new file mode 100644 index 000000000000..950079423685 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch @@ -0,0 +1,29 @@ +--- a/src/rsh-client.c.orig 2005-10-02 17:17:21.000000000 +0200 ++++ b/src/rsh-client.c 2017-11-07 16:56:06.957370469 +0100 +@@ -53,7 +53,7 @@ + char *cvs_server = (root->cvs_server != NULL + ? root->cvs_server : getenv ("CVS_SERVER")); + int i = 0; +- /* This needs to fit "rsh", "-b", "-l", "USER", "host", ++ /* This needs to fit "rsh", "-b", "-l", "USER", "--", "host", + "cmd (w/ args)", and NULL. We leave some room to grow. */ + char *rsh_argv[10]; + +@@ -97,6 +97,9 @@ + rsh_argv[i++] = root->username; + } + ++ /* Only non-option arguments from here. (CVE-2017-12836) */ ++ rsh_argv[i++] = "--"; ++ + rsh_argv[i++] = root->hostname; + rsh_argv[i++] = cvs_server; + rsh_argv[i++] = "server"; +@@ -171,6 +174,7 @@ + *p++ = root->username; + } + ++ *p++ = "--"; + *p++ = root->hostname; + *p++ = command; + *p++ = NULL; diff --git a/nixpkgs/pkgs/applications/version-management/cvs/default.nix b/nixpkgs/pkgs/applications/version-management/cvs/default.nix new file mode 100644 index 000000000000..2063149dd784 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, fetchpatch, nano }: + +stdenv.mkDerivation { + name = "cvs-1.12.13"; + + src = fetchurl { + url = mirror://savannah/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2; + sha256 = "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq"; + }; + + patches = [ + ./getcwd-chroot.patch + ./CVE-2012-0804.patch + ./CVE-2017-12836.patch + (fetchpatch { + url = "https://raw.githubusercontent.com/Homebrew/formula-patches/24118ec737c7/cvs/vasnprintf-high-sierra-fix.diff"; + sha256 = "1ql6aaia7xkfq3vqhlw5bd2z2ywka82zk01njs1b2szn699liymg"; + }) + ]; + + hardeningDisable = [ "fortify" "format" ]; + + preConfigure = '' + # Apply the Debian patches. + for p in "debian/patches/"*; do + echo "applying \`$p' ..." + patch --verbose -p1 < "$p" + done + ''; + + buildInputs = [ nano ]; + + doCheck = false; # fails 1 of 1 tests + + meta = with stdenv.lib; { + homepage = http://cvs.nongnu.org; + description = "Concurrent Versions System - a source control system"; + license = licenses.gpl2; # library is GPLv2, main is GPLv1 + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch b/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch new file mode 100644 index 000000000000..3f827a1e6981 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch @@ -0,0 +1,302 @@ +Fix Gnulib's getcwd in chroots. +From Debian bug #456164, http://bugs.debian.org/456164 . + +--- cvs-1.12.13.orig/debian/patches/20_readdir_errno ++++ cvs-1.12.13/debian/patches/20_readdir_errno +@@ -0,0 +1,121 @@ ++# From Gnulib: ++# http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=0b78641d85af3b72e3b9d94cb7b94e45f3c08ee5 ++# We don't need this directly, but it's required so that 21_getcwd_chroot ++# applies cleanly. ++# ++# 2005-10-29 Paul Eggert <eggert@cs.ucla.edu> ++# ++# * getcwd.c (__getcwd): Don't assume that system calls after readdir ++# leave errno alone. Problem reported by Dmitry V. Levin. ++ ++--- cvs-1.12.13-old/lib/getcwd.c +++++ cvs-1.12.13/lib/getcwd.c ++@@ -201,6 +201,8 @@ __getcwd (char *buf, size_t size) ++ ino_t dotino; ++ bool mount_point; ++ int parent_status; +++ size_t dirroom; +++ size_t namlen; ++ ++ /* Look at the parent directory. */ ++ #ifdef AT_FDCWD ++@@ -241,11 +243,20 @@ __getcwd (char *buf, size_t size) ++ goto lose; ++ dotlist[dotlen++] = '/'; ++ #endif ++- /* Clear errno to distinguish EOF from error if readdir returns ++- NULL. */ ++- __set_errno (0); ++- while ((d = __readdir (dirstream)) != NULL) +++ for (;;) ++ { +++ /* Clear errno to distinguish EOF from error if readdir returns +++ NULL. */ +++ __set_errno (0); +++ d = __readdir (dirstream); +++ if (d == NULL) +++ { +++ if (errno == 0) +++ /* EOF on dirstream, which means that the current directory +++ has been removed. */ +++ __set_errno (ENOENT); +++ goto lose; +++ } ++ if (d->d_name[0] == '.' && ++ (d->d_name[1] == '\0' || ++ (d->d_name[1] == '.' && d->d_name[2] == '\0'))) ++@@ -303,48 +314,38 @@ __getcwd (char *buf, size_t size) ++ break; ++ } ++ } ++- if (d == NULL) ++- { ++- if (errno == 0) ++- /* EOF on dirstream, which means that the current directory ++- has been removed. */ ++- __set_errno (ENOENT); ++- goto lose; ++- } ++- else ++- { ++- size_t dirroom = dirp - dir; ++- size_t namlen = _D_EXACT_NAMLEN (d); ++ ++- if (dirroom <= namlen) +++ dirroom = dirp - dir; +++ namlen = _D_EXACT_NAMLEN (d); +++ +++ if (dirroom <= namlen) +++ { +++ if (size != 0) ++ { ++- if (size != 0) ++- { ++- __set_errno (ERANGE); ++- goto lose; ++- } ++- else ++- { ++- char *tmp; ++- size_t oldsize = allocated; +++ __set_errno (ERANGE); +++ goto lose; +++ } +++ else +++ { +++ char *tmp; +++ size_t oldsize = allocated; ++ ++- allocated += MAX (allocated, namlen); ++- if (allocated < oldsize ++- || ! (tmp = realloc (dir, allocated))) ++- goto memory_exhausted; +++ allocated += MAX (allocated, namlen); +++ if (allocated < oldsize +++ || ! (tmp = realloc (dir, allocated))) +++ goto memory_exhausted; ++ ++- /* Move current contents up to the end of the buffer. ++- This is guaranteed to be non-overlapping. */ ++- dirp = memcpy (tmp + allocated - (oldsize - dirroom), ++- tmp + dirroom, ++- oldsize - dirroom); ++- dir = tmp; ++- } +++ /* Move current contents up to the end of the buffer. +++ This is guaranteed to be non-overlapping. */ +++ dirp = memcpy (tmp + allocated - (oldsize - dirroom), +++ tmp + dirroom, +++ oldsize - dirroom); +++ dir = tmp; ++ } ++- dirp -= namlen; ++- memcpy (dirp, d->d_name, namlen); ++- *--dirp = '/'; ++ } +++ dirp -= namlen; +++ memcpy (dirp, d->d_name, namlen); +++ *--dirp = '/'; ++ ++ thisdev = dotdev; ++ thisino = dotino; +--- cvs-1.12.13.orig/debian/patches/21_getcwd_chroot ++++ cvs-1.12.13/debian/patches/21_getcwd_chroot +@@ -0,0 +1,172 @@ ++# From Gnulib: ++# http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=79c0a43808d9ca85acd04600149fc1a9b75bd1b9 ++# ++# 2006-07-03 Paul Eggert <eggert@cs.ucla.edu> ++# ++# Merge from coreutils. ++# ++# 2006-03-19 Jim Meyering <jim@meyering.net> ++# ++# Work even in a chroot where d_ino values for entries in "/" ++# don't match the stat.st_ino values for the same names. ++# * getcwd.c (__getcwd): When no d_ino value matches the target inode ++# number, iterate through all entries again, using lstat instead. ++# Reported by Kenshi Muto in http://bugs.debian.org/355810, and by ++# Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656. ++# ++# * getcwd.c (__getcwd): Clarify a comment. ++# Use memcpy in place of a call to strcpy. ++ ++--- cvs-1.12.13-old/lib/getcwd.c +++++ cvs-1.12.13/lib/getcwd.c ++@@ -211,6 +211,7 @@ __getcwd (char *buf, size_t size) ++ int parent_status; ++ size_t dirroom; ++ size_t namlen; +++ bool use_d_ino = true; ++ ++ /* Look at the parent directory. */ ++ #ifdef AT_FDCWD ++@@ -257,11 +258,26 @@ __getcwd (char *buf, size_t size) ++ NULL. */ ++ __set_errno (0); ++ d = __readdir (dirstream); +++ +++ /* When we've iterated through all directory entries without finding +++ one with a matching d_ino, rewind the stream and consider each +++ name again, but this time, using lstat. This is necessary in a +++ chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where +++ .., ../.., ../../.., etc. all had the same device number, yet the +++ d_ino values for entries in / did not match those obtained +++ via lstat. */ +++ if (d == NULL && errno == 0 && use_d_ino) +++ { +++ use_d_ino = false; +++ rewinddir (dirstream); +++ d = __readdir (dirstream); +++ } +++ ++ if (d == NULL) ++ { ++ if (errno == 0) ++- /* EOF on dirstream, which means that the current directory ++- has been removed. */ +++ /* EOF on dirstream, which can mean e.g., that the current +++ directory has been removed. */ ++ __set_errno (ENOENT); ++ goto lose; ++ } ++@@ -269,58 +285,65 @@ __getcwd (char *buf, size_t size) ++ (d->d_name[1] == '\0' || ++ (d->d_name[1] == '.' && d->d_name[2] == '\0'))) ++ continue; ++- if (MATCHING_INO (d, thisino) || mount_point) +++ +++ if (use_d_ino) ++ { ++- int entry_status; +++ bool match = (MATCHING_INO (d, thisino) || mount_point); +++ if (! match) +++ continue; +++ } +++ +++ { +++ int entry_status; ++ #ifdef AT_FDCWD ++- entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); +++ entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); ++ #else ++- /* Compute size needed for this file name, or for the file ++- name ".." in the same directory, whichever is larger. ++- Room for ".." might be needed the next time through ++- the outer loop. */ ++- size_t name_alloc = _D_ALLOC_NAMLEN (d); ++- size_t filesize = dotlen + MAX (sizeof "..", name_alloc); ++- ++- if (filesize < dotlen) ++- goto memory_exhausted; ++- ++- if (dotsize < filesize) ++- { ++- /* My, what a deep directory tree you have, Grandma. */ ++- size_t newsize = MAX (filesize, dotsize * 2); ++- size_t i; ++- if (newsize < dotsize) ++- goto memory_exhausted; ++- if (dotlist != dots) ++- free (dotlist); ++- dotlist = malloc (newsize); ++- if (dotlist == NULL) ++- goto lose; ++- dotsize = newsize; ++- ++- i = 0; ++- do ++- { ++- dotlist[i++] = '.'; ++- dotlist[i++] = '.'; ++- dotlist[i++] = '/'; ++- } ++- while (i < dotlen); ++- } ++- ++- strcpy (dotlist + dotlen, d->d_name); ++- entry_status = __lstat (dotlist, &st); +++ /* Compute size needed for this file name, or for the file +++ name ".." in the same directory, whichever is larger. +++ Room for ".." might be needed the next time through +++ the outer loop. */ +++ size_t name_alloc = _D_ALLOC_NAMLEN (d); +++ size_t filesize = dotlen + MAX (sizeof "..", name_alloc); +++ +++ if (filesize < dotlen) +++ goto memory_exhausted; +++ +++ if (dotsize < filesize) +++ { +++ /* My, what a deep directory tree you have, Grandma. */ +++ size_t newsize = MAX (filesize, dotsize * 2); +++ size_t i; +++ if (newsize < dotsize) +++ goto memory_exhausted; +++ if (dotlist != dots) +++ free (dotlist); +++ dotlist = malloc (newsize); +++ if (dotlist == NULL) +++ goto lose; +++ dotsize = newsize; +++ +++ i = 0; +++ do +++ { +++ dotlist[i++] = '.'; +++ dotlist[i++] = '.'; +++ dotlist[i++] = '/'; +++ } +++ while (i < dotlen); +++ } +++ +++ memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d)); +++ entry_status = __lstat (dotlist, &st); ++ #endif ++- /* We don't fail here if we cannot stat() a directory entry. ++- This can happen when (network) file systems fail. If this ++- entry is in fact the one we are looking for we will find ++- out soon as we reach the end of the directory without ++- having found anything. */ ++- if (entry_status == 0 && S_ISDIR (st.st_mode) ++- && st.st_dev == thisdev && st.st_ino == thisino) ++- break; ++- } +++ /* We don't fail here if we cannot stat() a directory entry. +++ This can happen when (network) file systems fail. If this +++ entry is in fact the one we are looking for we will find +++ out soon as we reach the end of the directory without +++ having found anything. */ +++ if (entry_status == 0 && S_ISDIR (st.st_mode) +++ && st.st_dev == thisdev && st.st_ino == thisino) +++ break; +++ } ++ } ++ ++ dirroom = dirp - dir; diff --git a/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix new file mode 100644 index 000000000000..a2ebb8195db4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix @@ -0,0 +1,37 @@ +{ lib, fetchurl, makeWrapper +, python2Packages +, cvs, subversion, git, bazaar +}: + +python2Packages.buildPythonApplication rec { + name = "cvs2svn-${version}"; + version = "2.5.0"; + + src = fetchurl { + url = "http://cvs2svn.tigris.org/files/documents/1462/49543/${name}.tar.gz"; + sha256 = "1ska0z15sjhyfi860rjazz9ya1gxbf5c0h8dfqwz88h7fccd22b4"; + }; + + buildInputs = [ makeWrapper ]; + + checkInputs = [ subversion git bazaar ]; + + checkPhase = "python run-tests.py"; + + doCheck = false; # Couldn't find node 'transaction...' in expected output tree + + postInstall = '' + for i in bzr svn git; do + wrapProgram $out/bin/cvs2$i \ + --prefix PATH : "${lib.makeBinPath [ cvs ]}" + done + ''; + + meta = with lib; { + description = "A tool to convert CVS repositories to Subversion repositories"; + homepage = http://cvs2svn.tigris.org/; + maintainers = [ maintainers.makefu ]; + platforms = platforms.unix; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvsps/default.nix b/nixpkgs/pkgs/applications/version-management/cvsps/default.nix new file mode 100644 index 000000000000..aa3bcb273949 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvsps/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchurl, fetchpatch, cvs, zlib }: + +stdenv.mkDerivation rec { + name = "cvsps-${version}"; + version = "2.1"; + + src = fetchurl { + url = "mirror://debian/pool/main/c/cvsps/cvsps_${version}.orig.tar.gz"; + sha256 = "0nh7q7zcmagx0i63h6fqqkkq9i55k77myvb8h6jn2f266f5iklwi"; + }; + + # Patches from https://sources.debian.net/src/cvsps/2.1-7/debian/patches + patches = + [ (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/01_ignoretrunk.patch"; + sha256 = "1gzb97dw2a6bm0bmim7p7wvsn0r82y3a8n22ln6rbbkkd8vlnzcb"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/02_dynamicbufferalloc.patch"; + sha256 = "0dm7azxnw0g9pdqkb3y4y2h047zgrclbh40av6c868wfp2j6l9sc"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/03_diffoptstypo.patch"; + sha256 = "06n8652g7inpv8cgqir7ijq00qw1fr0v44m2pbmgx7ilmna2vrcw"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/05-inet_addr_fix.patch"; + sha256 = "10w6px96dz8bb69asjzshvp787ccazmqnjsggqc4gwdal95q3cn7"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/fix-makefile"; + sha256 = "0m92b55hgldwg6lwdaybbj0n3lw1b3wj2xkk1cz1ywq073bpf3jm"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/fix-manpage"; + sha256 = "0gky14rhx82wv0gj8bkc74ki5xilhv5i3k1jc7khklr4lb6mmhpx"; + }) + ]; + + buildInputs = [ cvs zlib ]; + + installFlags = [ "prefix=$(out)" ]; + + meta = { + description = ''A tool to generate CVS patch set information''; + longDescription = '' + CVSps is a program for generating `patchset' information from a + CVS repository. A patchset in this case is defined as a set of + changes made to a collection of files, and all committed at the + same time (using a single "cvs commit" command). + ''; + homepage = http://www.cobite.com/cvsps/; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/diffuse/default.nix b/nixpkgs/pkgs/applications/version-management/diffuse/default.nix new file mode 100644 index 000000000000..fa6d4fe1890d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/diffuse/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, python27Packages, makeWrapper }: + +let + inherit (python27Packages) pygtk python; +in stdenv.mkDerivation rec { + version = "0.4.8"; + name = "diffuse-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/project/diffuse/diffuse/${version}/${name}.tar.bz2"; + sha256 = "0ayz8bywmk1z3zicb0a7hbxliqpc7xym60s0mawzqllkpadvgly1"; + }; + + buildInputs = [ python pygtk makeWrapper ]; + + buildPhase = '' + python ./install.py --prefix="$out" --sysconfdir="$out/etc" --pythonbin="${python}/bin/python" + wrapProgram "$out/bin/diffuse" --prefix PYTHONPATH : $PYTHONPATH:${pygtk}/lib/${python.libPrefix}/site-packages/gtk-2.0 + ''; + + # no-op, everything is done in buildPhase + installPhase = "true"; + + # NOTE: diffuse installs a .desktop file itself + + meta = with stdenv.lib; { + description = "Graphical diff and merge tool"; + homepage = http://diffuse.sourceforge.net/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/fossil/default.nix b/nixpkgs/pkgs/applications/version-management/fossil/default.nix new file mode 100644 index 000000000000..cf58731b46c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/fossil/default.nix @@ -0,0 +1,55 @@ +{ stdenv +, libiconv, fetchurl, zlib, openssl, tcl, readline, sqlite, ed, which +, tcllib, withJson ? true +}: + +stdenv.mkDerivation rec { + name = "fossil-${version}"; + version = "2.7"; + + src = fetchurl { + urls = + [ + "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz" + ]; + name = "${name}.tar.gz"; + sha256 = "0g032502lx4l1lvkczh8v7g0i90vbyriw0lmvi3mwjfp668ka91c"; + }; + + buildInputs = [ zlib openssl readline sqlite which ed ] + ++ stdenv.lib.optional stdenv.isDarwin libiconv; + nativeBuildInputs = [ tcl ]; + + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + preCheck = '' + export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}" + ''; + configureFlags = stdenv.lib.optional withJson "--json"; + + preBuild='' + export USER=nonexistent-but-specified-user + ''; + + installPhase = '' + mkdir -p $out/bin + INSTALLDIR=$out/bin make install + ''; + + meta = { + description = "Simple, high-reliability, distributed software configuration management"; + longDescription = '' + Fossil is a software configuration management system. Fossil is + software that is designed to control and track the development of a + software project and to record the history of the project. There are + many such systems in use today. Fossil strives to distinguish itself + from the others by being extremely simple to setup and operate. + ''; + homepage = http://www.fossil-scm.org/; + license = stdenv.lib.licenses.bsd2; + platforms = with stdenv.lib.platforms; all; + maintainers = [ #Add your name here! + stdenv.lib.maintainers.z77z + stdenv.lib.maintainers.viric + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix new file mode 100644 index 000000000000..0475a8ae76ca --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "gerrit-${version}"; + version = "2.14.6"; + + src = fetchurl { + url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war"; + sha256 = "0fsqwfsnyb4nbxgb1i1mp0vshl0mk8bwqlddzqr9x2v99mbca28q"; + }; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "1qrmvqqnlbabqz4yx06vi030ci12v0063iq2palxmbj3whrzv9la"; + + buildCommand = '' + mkdir -p "$out"/webapps/ + ln -s ${src} "$out"/webapps/gerrit-${version}.war + ''; + + meta = with stdenv.lib; { + homepage = https://www.gerritcodereview.com/index.md; + license = licenses.asl20; + description = "A web based code review and repository management for the git version control system"; + maintainers = with maintainers; [ jammerful ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix new file mode 100644 index 000000000000..0d7729684163 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, jre, makeWrapper }: + +let + version = "1.13.0"; + jarName = "bfg-${version}.jar"; + mavenUrl = "http://central.maven.org/maven2/com/madgag/bfg/${version}/${jarName}"; +in + stdenv.mkDerivation { + inherit version jarName; + + name = "bfg-repo-cleaner-${version}"; + + src = fetchurl { + url = mavenUrl; + sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz"; + }; + + buildInputs = [ jre makeWrapper ]; + + phases = "installPhase"; + + installPhase = '' + mkdir -p $out/share/java + mkdir -p $out/bin + cp $src $out/share/java/$jarName + makeWrapper "${jre}/bin/java" $out/bin/bfg --add-flags "-cp $out/share/java/$jarName com.madgag.git.bfg.cli.Main" + ''; + + meta = with stdenv.lib; { + homepage = https://rtyley.github.io/bfg-repo-cleaner/; + # Descriptions taken with minor modification from the homepage of bfg-repo-cleaner + description = "Removes large or troublesome blobs in a git repository like git-filter-branch does, but faster"; + longDescription = '' + The BFG is a simpler, faster alternative to git-filter-branch for + cleansing bad data out of your Git repository history, in particular removing + crazy big files and removing passwords, credentials, and other private data. + + The git-filter-branch command is enormously powerful and can do things + that the BFG can't - but the BFG is much better for the tasks above, because + it's faster (10-720x), simpler (dedicated to just removing things), and + beautiful (can use Scala instead of bash to script customizations). + ''; + license = licenses.gpl3; + maintainers = [ maintainers.changlinli ]; + platforms = platforms.unix; + downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}"; + }; + + } diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile new file mode 100644 index 000000000000..8ed325154711 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'atlassian-stash' diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock new file mode 100644 index 000000000000..61159eb3ee9e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock @@ -0,0 +1,27 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) + atlassian-stash (0.7.0) + commander (~> 4.1.2) + git (>= 1.2.5) + json (>= 1.7.5) + launchy (~> 2.4.2) + commander (4.1.6) + highline (~> 1.6.11) + git (1.3.0) + highline (1.6.21) + json (2.0.2) + launchy (2.4.3) + addressable (~> 2.3) + public_suffix (2.0.5) + +PLATFORMS + ruby + +DEPENDENCIES + atlassian-stash + +BUNDLED WITH + 1.13.6 diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix new file mode 100644 index 000000000000..341b50f0ef22 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix @@ -0,0 +1,19 @@ +{ lib, bundlerEnv, ruby }: + +bundlerEnv rec { + name = "bitbucket-server-cli-${version}"; + + version = (import ./gemset.nix).atlassian-stash.version; + inherit ruby; + gemdir = ./.; + + pname = "atlassian-stash"; + + meta = with lib; { + description = "A command line interface to interact with BitBucket Server (formerly Atlassian Stash)"; + homepage = https://bitbucket.org/atlassian/bitbucket-server-cli; + license = licenses.mit; + maintainers = with maintainers; [ jgertm ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix new file mode 100644 index 000000000000..a7c1406665e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix @@ -0,0 +1,66 @@ +{ + addressable = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw"; + type = "gem"; + }; + version = "2.5.0"; + }; + atlassian-stash = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rsf9h5w5wiglwv0fqwp45fq06fxbg68cqkc3bpqvps1i1qm0p6i"; + type = "gem"; + }; + version = "0.7.0"; + }; + commander = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x9i8hf083wjlgj09nl1p9j8sr5g7amq0fdmxjqs4cxdbg3wpmsb"; + type = "gem"; + }; + version = "4.1.6"; + }; + git = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3"; + type = "gem"; + }; + version = "1.3.0"; + }; + highline = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06bml1fjsnrhd956wqq5k3w8cyd09rv1vixdpa3zzkl6xs72jdn1"; + type = "gem"; + }; + version = "1.6.21"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lhinj9vj7mw59jqid0bjn2hlfcnq02bnvsx9iv81nl2han603s0"; + type = "gem"; + }; + version = "2.0.2"; + }; + launchy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; + type = "gem"; + }; + version = "2.4.3"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q"; + type = "gem"; + }; + version = "2.0.5"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix new file mode 100644 index 000000000000..5bfd74344e8c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix @@ -0,0 +1,70 @@ +{ stdenv, fetchurl, openssl, zlib, asciidoc, libxml2, libxslt +, docbook_xsl, pkgconfig, luajit +, groff, gzip, bzip2, xz +, python, wrapPython, pygments, markdown +}: + +stdenv.mkDerivation rec { + name = "cgit-${version}"; + version = "1.2.1"; + + src = fetchurl { + url = "https://git.zx2c4.com/cgit/snapshot/${name}.tar.xz"; + sha256 = "1gw2j5xc5qdx2hwiwkr8h6kgya7v9d9ff9j32ga1dys0cca7qm1w"; + }; + + # cgit is tightly coupled with git and needs a git source tree to build. + # IMPORTANT: Remember to check which git version cgit needs on every version + # bump (look for "GIT_VER" in the top-level Makefile). + gitSrc = fetchurl { + url = "mirror://kernel/software/scm/git/git-2.18.0.tar.xz"; + sha256 = "14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b"; + }; + + nativeBuildInputs = [ pkgconfig ] ++ [ python wrapPython ]; + buildInputs = [ + openssl zlib asciidoc libxml2 libxslt docbook_xsl luajit + ]; + pythonPath = [ pygments markdown ]; + + postPatch = '' + sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \ + -e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \ + -e 's|"xz"|"${xz.bin}/bin/xz"|' \ + -i ui-snapshot.c + + substituteInPlace filters/html-converters/man2html \ + --replace 'groff' '${groff}/bin/groff' + ''; + + # Give cgit a git source tree and pass configuration parameters (as make + # variables). + preBuild = '' + mkdir -p git + tar --strip-components=1 -xf "$gitSrc" -C git + + makeFlagsArray+=(prefix="$out" CGIT_SCRIPT_PATH="$out/cgit/") + ''; + + # Install manpage. + postInstall = '' + # xmllint fails: + #make install-man + + # bypassing xmllint works: + a2x --no-xmllint -f manpage cgitrc.5.txt + mkdir -p "$out/share/man/man5" + cp cgitrc.5 "$out/share/man/man5" + + wrapPythonProgramsIn "$out/lib/cgit/filters" "$out $pythonPath" + ''; + + meta = { + homepage = https://git.zx2c4.com/cgit/about/; + repositories.git = git://git.zx2c4.com/cgit; + description = "Web frontend for git repositories"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix new file mode 100644 index 000000000000..1af1870928ba --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchgit, ruby, gnugrep, diffutils, git, darcs }: + +stdenv.mkDerivation rec { + name = "darcs-to-git-${version}"; + version = "2015-06-04"; + + src = fetchgit { + url = "git://github.com/purcell/darcs-to-git.git"; + rev = "e5fee32495908fe0f7d700644c7b37347b7a0a5b"; + sha256 = "0lxcx0x0m1cv2j4x9ykpjf6r2zg6lh5rya016x93vkmlzxm3f0ji"; + }; + + patchPhase = let + matchExecution = ''(\<(output_of|system|run)\([^"%]*("|%w\()|^[^"`]*`)''; + in '' + sed -r -i \ + -e '1s|^#!.*|#!${ruby}/bin/ruby|' \ + -e 's!${matchExecution}git\>!\1${git}/bin/git!' \ + -e 's!${matchExecution}darcs\>!\1${darcs}/bin/darcs!' \ + -e 's!${matchExecution}diff\>!\1${diffutils}/bin/diff!' \ + -e 's!\<egrep\>!${gnugrep}/bin/egrep!g' \ + -e 's!%w\(darcs init\)!%w(${darcs}/bin/darcs init)!' \ + darcs-to-git + ''; + + installPhase = '' + install -vD darcs-to-git "$out/bin/darcs-to-git" + ''; + + doCheck = true; + + checkPhase = '' + orig_dir="$(pwd)" + darcs_repos="$(pwd)/darcs_test_repos" + git_repos="$(pwd)/git_test_repos" + test_home="$(pwd)/test_home" + mkdir "$darcs_repos" "$git_repos" "$test_home" + cd "$darcs_repos" + ${darcs}/bin/darcs init + echo "this is a test file" > new_file1 + ${darcs}/bin/darcs add new_file1 + HOME="$test_home" ${darcs}/bin/darcs record -a -m c1 -A none + echo "testfile1" > new_file1 + echo "testfile2" > new_file2 + ${darcs}/bin/darcs add new_file2 + HOME="$test_home" ${darcs}/bin/darcs record -a -m c2 -A none + ${darcs}/bin/darcs mv new_file2 only_one_file + rm -f new_file1 + HOME="$test_home" ${darcs}/bin/darcs record -a -m c3 -A none + cd "$git_repos" + HOME="$test_home" PATH= "$orig_dir/darcs-to-git" "$darcs_repos" + assertFileContents() { + echo -n "File $1 contains '$2'..." >&2 + if [ "x$(cat "$1")" = "x$2" ]; then + echo " passed." >&2 + return 0 + else + echo " failed: '$(cat "$1")' != '$2'" >&2 + return 1 + fi + } + echo "Checking if converted repository matches original repository:" >&2 + assertFileContents only_one_file testfile2 + ${git}/bin/git reset --hard HEAD^ + assertFileContents new_file1 testfile1 + assertFileContents new_file2 testfile2 + ${git}/bin/git reset --hard HEAD^ + assertFileContents new_file1 "this is a test file" + echo "All checks passed." >&2 + cd "$orig_dir" + rm -rf "$darcs_repos" "$git_repos" "$test_home" + ''; + + meta = { + description = "Converts a Darcs repository into a Git repository"; + homepage = http://www.sanityinc.com/articles/converting-darcs-repositories-to-git; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix new file mode 100644 index 000000000000..9ee5df118308 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix @@ -0,0 +1,156 @@ +/* All git-relates tools live here, in a separate attribute set so that users + * can get a fast overview over what's available. + */ +args @ {config, lib, pkgs}: with args; with pkgs; +let + gitBase = callPackage ./git { + svnSupport = false; # for git-svn support + guiSupport = false; # requires tcl/tk + sendEmailSupport = false; # requires plenty of perl libraries + perlLibs = [perlPackages.LWP perlPackages.URI perlPackages.TermReadKey]; + smtpPerlLibs = [ + perlPackages.libnet perlPackages.NetSMTPSSL + perlPackages.IOSocketSSL perlPackages.NetSSLeay + perlPackages.AuthenSASL perlPackages.DigestHMAC + ]; + }; + + self = rec { + # Try to keep this generally alphabetized + + bfg-repo-cleaner = callPackage ./bfg-repo-cleaner { }; + + bitbucket-server-cli = callPackage ./bitbucket-server-cli { }; + + darcsToGit = callPackage ./darcs-to-git { }; + + diff-so-fancy = callPackage ./diff-so-fancy { }; + + ghq = callPackage ./ghq { }; + + git = appendToName "minimal" gitBase; + + git-absorb = callPackage ./git-absorb { + inherit (darwin.apple_sdk.frameworks) Security; + }; + + git-appraise = callPackage ./git-appraise {}; + + git-fame = callPackage ./git-fame {}; + + # The full-featured Git. + gitFull = gitBase.override { + svnSupport = true; + guiSupport = true; + sendEmailSupport = !stdenv.isDarwin; + withLibsecret = !stdenv.isDarwin; + }; + + # Git with SVN support, but without GUI. + gitSVN = lowPrio (appendToName "with-svn" (gitBase.override { + svnSupport = true; + })); + + git-annex = pkgs.haskellPackages.git-annex; + + git-annex-metadata-gui = libsForQt5.callPackage ./git-annex-metadata-gui { + inherit (python3Packages) buildPythonApplication pyqt5 git-annex-adapter; + }; + + git-annex-remote-b2 = callPackage ./git-annex-remote-b2 { }; + + git-annex-remote-rclone = callPackage ./git-annex-remote-rclone { }; + + git-bug = callPackage ./git-bug { }; + + # support for bugzilla + git-bz = callPackage ./git-bz { }; + + git-codeowners = callPackage ./git-codeowners { }; + + git-cola = callPackage ./git-cola { }; + + git-crypt = callPackage ./git-crypt { }; + + git-dit = callPackage ./git-dit { + inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; + }; + + git-extras = callPackage ./git-extras { }; + + git-hub = callPackage ./git-hub { }; + + git-imerge = callPackage ./git-imerge { }; + + git-octopus = callPackage ./git-octopus { }; + + git-open = callPackage ./git-open { }; + + git-radar = callPackage ./git-radar { }; + + git-recent = callPackage ./git-recent { + utillinux = if stdenv.isLinux then utillinuxMinimal else utillinux; + }; + + git-remote-hg = callPackage ./git-remote-hg { }; + + git-reparent = callPackage ./git-reparent { }; + + git-secret = callPackage ./git-secret { }; + + git-secrets = callPackage ./git-secrets { }; + + git-stree = callPackage ./git-stree { }; + + git-sync = callPackage ./git-sync { }; + + git-test = callPackage ./git-test { }; + + git2cl = callPackage ./git2cl { }; + + gitFastExport = callPackage ./fast-export { }; + + gitRemoteGcrypt = callPackage ./git-remote-gcrypt { }; + + gitflow = callPackage ./gitflow { }; + + grv = callPackage ./grv { }; + + hub = callPackage ./hub { + inherit (darwin) Security; + }; + + hubUnstable = throw "use gitAndTools.hub instead"; + + lab = callPackage ./lab { }; + + pre-commit = callPackage ./pre-commit { }; + + pass-git-helper = python3Packages.callPackage ./pass-git-helper { }; + + qgit = qt5.callPackage ./qgit { }; + + stgit = callPackage ./stgit { + }; + + subgit = callPackage ./subgit { }; + + svn2git = callPackage ./svn2git { + git = gitSVN; + }; + + svn-all-fast-export = libsForQt5.callPackage ./svn-all-fast-export { }; + + tig = callPackage ./tig { }; + + topGit = callPackage ./topgit { }; + + transcrypt = callPackage ./transcrypt { }; + +} // lib.optionalAttrs (config.allowAliases or true) (with self; { + # aliases + gitAnnex = git-annex; + svn_all_fast_export = svn-all-fast-export; +}); +in + self diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix new file mode 100644 index 000000000000..90b83348ef14 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix @@ -0,0 +1,48 @@ +{stdenv, git, perl, ncurses, coreutils, fetchFromGitHub, makeWrapper, ...}: + +stdenv.mkDerivation rec { + name = "diff-so-fancy-${version}"; + version = "1.2.5"; + + src = fetchFromGitHub { + owner = "so-fancy"; + repo = "diff-so-fancy"; + rev = "v${version}"; + sha256 = "1jqq7zd75aypxchrq0vjcw5gyn3wyjqy6w79mq2lzky8m6mqn8vr"; + }; + + # Perl is needed here for patchShebangs + nativeBuildInputs = [ perl makeWrapper ]; + + buildPhase = null; + + installPhase = '' + mkdir -p $out/bin $out/lib/diff-so-fancy + + # diff-so-fancy executable searches for it's library relative to + # itself, so we are copying executable to lib, and only symlink it + # from bin/ + cp diff-so-fancy $out/lib/diff-so-fancy + cp -r lib $out/lib/diff-so-fancy + ln -s $out/lib/diff-so-fancy/diff-so-fancy $out/bin + + # ncurses is needed for `tput` + wrapProgram $out/lib/diff-so-fancy/diff-so-fancy \ + --prefix PATH : "${git}/share/git/contrib/diff-highlight" \ + --prefix PATH : "${git}/bin" \ + --prefix PATH : "${coreutils}/bin" \ + --prefix PATH : "${ncurses.out}/bin" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/so-fancy/diff-so-fancy; + description = "Good-looking diffs filter for git"; + license = licenses.mit; + platforms = platforms.all; + longDescription = '' + diff-so-fancy builds on the good-lookin' output of git contrib's + diff-highlight to upgrade your diffs' appearances. + ''; + maintainers = with maintainers; [ fpletz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix new file mode 100644 index 000000000000..fd50febb4699 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix @@ -0,0 +1,41 @@ +{stdenv, fetchgit, mercurial, makeWrapper, subversion}: + +with stdenv.lib; +stdenv.mkDerivation { + name = "fast-export"; + + src = fetchgit { + url = git://repo.or.cz/fast-export.git; + rev = "d202200fd9daa75cdb37d4cf067d4ca00e269535"; + sha256 = "0m4llsg9rx4sza1kf39kxsdvhi6y87a18wm5k19c5r2h3vpylwcc"; + }; + + buildInputs = [mercurial.python mercurial makeWrapper subversion]; + + dontBuild = true; # skip svn for now + + # TODO also support svn stuff + # moving .py files into lib directory so that you can't pick the wrong file from PATH. + # This requires redefining ROOT + installPhase = '' + sed -i "s@/usr/bin/env.*@$(type -p python)@" *.py + l=$out/libexec/git-fast-export + mkdir -p $out/{bin,doc/git-fast-export} $l + sed -i "s@ROOT=.*@ROOT=$l@" *.sh + mv *.sh $out/bin + mv *.py $l + for p in $out/bin/*.sh; do + wrapProgram $p \ + --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages or []}" \ + --prefix PATH : "$(dirname $(type -p python))":$l + done + ''; + + meta = { + description = "Import svn, mercurial into git"; + homepage = https://repo.or.cz/w/fast-export.git; + license = licenses.gpl2; + maintainers = [ maintainers.koral ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix new file mode 100644 index 000000000000..84a441641dfa --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix @@ -0,0 +1,33 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "ghq-${version}"; + version = "0.8.0"; + + goPackagePath = "github.com/motemen/ghq"; + + src = fetchFromGitHub { + owner = "motemen"; + repo = "ghq"; + rev = "v${version}"; + sha256 = "1gdi0sbmq9kfi8hzd0dpgmhbmcf8q93jy3x08dd8smayrhbbwmld"; + }; + + goDeps = ./deps.nix; + + buildFlagsArray = '' + -ldflags= + -X=main.Version=${version} + ''; + + postInstall = '' + install -m 444 -D ${src}/zsh/_ghq $bin/share/zsh/site-functions/_ghq + ''; + + meta = { + description = "Remote repository management made easy"; + homepage = https://github.com/motemen/ghq; + maintainers = with stdenv.lib.maintainers; [ sigma ]; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix new file mode 100644 index 000000000000..1df37aa0f21f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix @@ -0,0 +1,38 @@ +[ + { + goPackagePath = "github.com/daviddengcn/go-colortext"; + fetch = { + type = "git"; + url = "https://github.com/daviddengcn/go-colortext"; + rev = "805cee6e0d43c72ba1d4e3275965ff41e0da068a"; + sha256 = "0z0ggqnprqchnd8zyrz99w53kr4sgv372lyx12z5nsh9q342pmyf"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "b8bc1bf767474819792c23f32d8286a45736f1c6"; + sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q"; + }; + } + { + goPackagePath = "github.com/motemen/go-colorine"; + fetch = { + type = "git"; + url = "https://github.com/motemen/go-colorine"; + rev = "49ff36b8fa42db28092361cd20dcefd0b03b1472"; + sha256 = "1rfi5gggf2sxb52whgxfl37p22r2xp27rndixbiicw6swllmml9l"; + }; + } + { + goPackagePath = "github.com/urfave/cli"; + fetch = { + type = "git"; + url = "https://github.com/urfave/cli"; + rev = "f017f86fccc5a039a98f23311f34fdf78b014f78"; + sha256 = "1biq4wl4z8l0ycinb39mfavnk13d0qnqqdplqybl7klxmk67cvhv"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix new file mode 100644 index 000000000000..17e2bfee40b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }: + +rustPlatform.buildRustPackage rec { + name = "git-absorb-${version}"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "tummychow"; + repo = "git-absorb"; + rev = "refs/tags/${version}"; + sha256 = "1dm442lyk7f44bshm2ajync5pzdwvdc5xfpw2lkvjzxflmh5572z"; + }; + + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ]; + + cargoSha256 = "0fvxs09b9x38vp0psvlvbj09myxrhabp95pp3nz7nxsgr7fxflrr"; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "git commit --fixup, but automatic"; + license = [ licenses.bsd3 ]; + maintainers = [ maintainers.marsam ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix new file mode 100644 index 000000000000..ba64a065d281 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildPythonApplication, fetchFromGitHub, pyqt5, git-annex-adapter }: + +buildPythonApplication rec { + name = "git-annex-metadata-gui-${version}"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "alpernebbi"; + repo = "git-annex-metadata-gui"; + rev = "v${version}"; + sha256 = "03kch67k0q9lcs817906g864wwabkn208aiqvbiyqp1qbg99skam"; + }; + + prePatch = '' + substituteInPlace setup.py --replace "'PyQt5', " "" + ''; + + propagatedBuildInputs = [ pyqt5 git-annex-adapter ]; + + meta = with stdenv.lib; { + homepage = https://github.com/alpernebbi/git-annex-metadata-gui; + description = "Graphical interface for git-annex metadata commands"; + maintainers = with maintainers; [ dotlambda ]; + license = licenses.gpl3Plus; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix new file mode 100644 index 000000000000..4d0f33730e45 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix @@ -0,0 +1,17 @@ +{ stdenv, buildGoPackage, fetchgit }: + +buildGoPackage rec { + name = "git-annex-remote-b2-${version}"; + version = "20151212-${stdenv.lib.strings.substring 0 7 rev}"; + rev = "4db46b9fc9ef7b3f4851c2a6b061cb8f90f553ba"; + + goPackagePath = "github.com/encryptio/git-annex-remote-b2"; + + src = fetchgit { + inherit rev; + url = "https://github.com/encryptio/git-annex-remote-b2"; + sha256 = "1139rzdvlj3hanqsccfinprvrzf4qjc5n4f0r21jp9j24yhjs6j2"; + }; + + goDeps = ./deps.nix; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix new file mode 100644 index 000000000000..479b3e7d6372 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix @@ -0,0 +1,20 @@ +[ + { + goPackagePath = "github.com/pquerna/ffjson"; + fetch = { + type = "git"; + url = "https://github.com/pquerna/ffjson"; + rev = "674bc015b5b3f50f9bb2561179778586b9af68c5"; + sha256 = "0l53q7b1g25hfjm1iyynfs413rpav4c51yvdr244ivw1x3hksa7a"; + }; + } + { + goPackagePath = "gopkg.in/kothar/go-backblaze.v0"; + fetch = { + type = "git"; + url = "https://gopkg.in/kothar/go-backblaze.v0"; + rev = "373819725fc560fa962c6cd883b533d2ebec4844"; + sha256 = "1kmlwfnnfd4h46bb9pz2gw1hxqm1pzkwvidfmnc0zkrilaywk6fx"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix new file mode 100644 index 000000000000..c368dcd487e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, rclone, makeWrapper }: + +stdenv.mkDerivation rec { + name = "git-annex-remote-rclone-${version}"; + version = "0.6"; + rev = "v${version}"; + + src = fetchFromGitHub { + inherit rev; + owner = "DanielDent"; + repo = "git-annex-remote-rclone"; + sha256 = "0j0hlxji8d974fq7zd4xc02n0jpi31ylhxc7z4zp8iiwad5mkpxp"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + installPhase = '' + mkdir -p $out/bin + cp git-annex-remote-rclone $out/bin + wrapProgram "$out/bin/git-annex-remote-rclone" \ + --prefix PATH ":" "${stdenv.lib.makeBinPath [ rclone ]}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/DanielDent/git-annex-remote-rclone; + description = "Use rclone supported cloud storage providers with git-annex"; + license = licenses.gpl3; + maintainers = [ maintainers.montag451 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix new file mode 100644 index 000000000000..185ed38b5db0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "git-appraise-unstable-${version}"; + version = "2018-02-26"; + rev = "2414523905939525559e4b2498c5597f86193b61"; + + goPackagePath = "github.com/google/git-appraise"; + + src = fetchFromGitHub { + inherit rev; + owner = "google"; + repo = "git-appraise"; + sha256 = "04xkp1jpas1dfms6i9j09bgkydih0q10nhwn75w9ds8hi2qaa3sa"; + }; + + meta = { + description = "Distributed code review system for Git repos"; + homepage = https://github.com/google/git-appraise; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.all; + maintainers = [ stdenv.lib.maintainers.vdemeester ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix new file mode 100644 index 000000000000..7a47ed9a992d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix @@ -0,0 +1,30 @@ +{ fetchFromGitHub, python2Packages, stdenv, git, graphviz }: + +python2Packages.buildPythonApplication rec { + pname = "git-big-picture"; + version = "0.10.1"; + + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "esc"; + repo = pname; + rev = "v${version}"; + sha256 = "0b0zdq7d7k7f6p3wwc799347fraphbr20rxd1ysnc4xi1cj4wpmi"; + }; + + buildInputs = [ git graphviz ]; + + postFixup = '' + wrapProgram $out/bin/git-big-picture \ + --prefix PATH ":" ${ stdenv.lib.makeBinPath buildInputs } + ''; + + meta = { + description = "Tool for visualization of Git repositories"; + homepage = https://github.com/esc/git-big-picture; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.nthorne ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix new file mode 100644 index 000000000000..eabc9258e29a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "git-bug-${version}"; + version = "0.4.0"; + rev = "2ab2412771d58a1b1f3bfeb5a6e9da2e683b0e12"; + goPackagePath = "github.com/MichaelMure/git-bug"; + + src = fetchFromGitHub { + inherit rev; + owner = "MichaelMure"; + repo = "git-bug"; + sha256 = "1zyvyg0p5h71wvyxrzkr1bwddxm3x8p44n6wh9ccfdxp8d2k6k25"; + }; + + goDeps = ./deps.nix; + + postInstall = '' + cd go/src/${goPackagePath} + install -D -m 0644 misc/bash_completion/git-bug "$bin/etc/bash_completion.d/git-bug" + install -D -m 0644 misc/zsh_completion/git-bug "$bin/share/zsh/site-functions/git-bug" + install -D -m 0644 -t "$bin/share/man/man1" doc/man/* + ''; + + meta = with stdenv.lib; { + description = "Distributed bug tracker embedded in Git"; + homepage = https://github.com/MichaelMure/git-bug; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = with maintainers; [ royneary ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix new file mode 100644 index 000000000000..77d79602a9c1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix @@ -0,0 +1,417 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "github.com/99designs/gqlgen"; + fetch = { + type = "git"; + url = "https://github.com/99designs/gqlgen"; + rev = "636435b68700211441303f1a5ed92f3768ba5774"; + sha256 = "0d4sr6kpyn3zq3kpvk8lizy7hdpcw3fjmv7fbv2m1k9w8fzjawrz"; + }; + } + { + goPackagePath = "github.com/agnivade/levenshtein"; + fetch = { + type = "git"; + url = "https://github.com/agnivade/levenshtein"; + rev = "3d21ba515fe27b856f230847e856431ae1724adc"; + sha256 = "0dym3k3ycsj0zj0p4dhdp7gd2hm7c7pyh2wii1mdbmpdyipy99cd"; + }; + } + { + goPackagePath = "github.com/cheekybits/genny"; + fetch = { + type = "git"; + url = "https://github.com/cheekybits/genny"; + rev = "9127e812e1e9e501ce899a18121d316ecb52e4ba"; + sha256 = "1z57ga9c2sjnl5ngqgb1ap0zqv36sk0rarm02bbbkipz4m9yabjg"; + }; + } + { + goPackagePath = "github.com/corpix/uarand"; + fetch = { + type = "git"; + url = "https://github.com/corpix/uarand"; + rev = "2b8494104d86337cdd41d0a49cbed8e4583c0ab4"; + sha256 = "06ml5m8l9wbr96gvyg6z1syawn797f8kmq74nhgry3vqpngyb6yn"; + }; + } + { + goPackagePath = "github.com/cpuguy83/go-md2man"; + fetch = { + type = "git"; + url = "https://github.com/cpuguy83/go-md2man"; + rev = "20f5889cbdc3c73dbd2862796665e7c465ade7d1"; + sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"; + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; + }; + } + { + goPackagePath = "github.com/dustin/go-humanize"; + fetch = { + type = "git"; + url = "https://github.com/dustin/go-humanize"; + rev = "9f541cc9db5d55bce703bd99987c9d5cb8eea45e"; + sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3"; + }; + } + { + goPackagePath = "github.com/fatih/color"; + fetch = { + type = "git"; + url = "https://github.com/fatih/color"; + rev = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4"; + sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; + }; + } + { + goPackagePath = "github.com/go-test/deep"; + fetch = { + type = "git"; + url = "https://github.com/go-test/deep"; + rev = "6592d9cc0a499ad2d5f574fde80a2b5c5cc3b4f5"; + sha256 = "0f4rbdl6qmlq4bzh0443i634bm675bbrkyzwp8wkc1yhdl9qsij7"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "aa810b61a9c79d51363740d207bb46cf8e620ed5"; + sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "3af367b6b30c263d47e8895973edcca9a49cf029"; + sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds"; + }; + } + { + goPackagePath = "github.com/gorilla/context"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/context"; + rev = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42"; + sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"; + }; + } + { + goPackagePath = "github.com/gorilla/mux"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/mux"; + rev = "e3702bed27f0d39777b0b37b664b6280e8ef8fbf"; + sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b"; + sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "20f1fb78b0740ba8c3cb143a61e86ba5c8669768"; + sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f"; + }; + } + { + goPackagePath = "github.com/icrowley/fake"; + fetch = { + type = "git"; + url = "https://github.com/icrowley/fake"; + rev = "4178557ae428460c3780a381c824a1f3aceb6325"; + sha256 = "1mv4bxfphaqbvacy49v4lf4gf2nmadzpmjq0jbdx93wi5bnkc977"; + }; + } + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + { + goPackagePath = "github.com/jroimartin/gocui"; + fetch = { + type = "git"; + url = "https://github.com/jroimartin/gocui"; + rev = "c055c87ae801372cd74a0839b972db4f7697ae5f"; + sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "167de6bfdfba052fa6b2d3664c8f5272e23c9072"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39"; + sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "9e777a8366cce605130a531d2cd6363d07ad7317"; + sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "fa473d140ef3c6adf42d6b391fe76707f1f243c8"; + sha256 = "0f06q4fpzg0c370cvmpsl0iq2apl5nkbz5cd3nba5x5ysmshv1lm"; + }; + } + { + goPackagePath = "github.com/nsf/termbox-go"; + fetch = { + type = "git"; + url = "https://github.com/nsf/termbox-go"; + rev = "5c94acc5e6eb520f1bcd183974e01171cc4c23b3"; + sha256 = "1fi8imdgwvlsgifw2qfl3ww0lsrgkfsimkzz7bnrq41nar78s0fw"; + }; + } + { + goPackagePath = "github.com/phayes/freeport"; + fetch = { + type = "git"; + url = "https://github.com/phayes/freeport"; + rev = "b8543db493a5ed890c5499e935e2cad7504f3a04"; + sha256 = "1gwaan8fwmc5lfx4dzymq0jd6z2l1frg83jkmjpm4kw8ay4vr11q"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "645ef00459ed84a119197bfb8d8205042c6df63d"; + sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "792786c7400a136282c1664665ae0a8db921c6c2"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/russross/blackfriday"; + fetch = { + type = "git"; + url = "https://github.com/russross/blackfriday"; + rev = "55d61fa8aa702f59229e6cff85793c22e580eaf5"; + sha256 = "0qmavm5d14kj6im6sqzpqnlhpy524428vkn4hnfwknndr9rycmn0"; + }; + } + { + goPackagePath = "github.com/shurcooL/githubv4"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/githubv4"; + rev = "b5f70540eee0ebfb6a27b52fc5b131be76415539"; + sha256 = "0hrjk16l8jwkhrbzcasp4dflv6hl24hcc4q2md5rn6i8f73dl18h"; + }; + } + { + goPackagePath = "github.com/shurcooL/go"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/go"; + rev = "9e1955d9fb6e1ee2345ba1f5e71669263e719e27"; + sha256 = "1lad9bvs75jsn61cfza19739c2c057k0bqxg2b4xz3z3l4w1mkqj"; + }; + } + { + goPackagePath = "github.com/shurcooL/graphql"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/graphql"; + rev = "365899397c9ad12805631fe4c9b2a64be9d74818"; + sha256 = "10n4id76zpj5g4hr1ry8d9v5cvm039rygrpgdk4ygk198vhr0gwm"; + }; + } + { + goPackagePath = "github.com/shurcooL/httpfs"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/httpfs"; + rev = "809beceb23714880abc4a382a00c05f89d13b1cc"; + sha256 = "1hvj5q5kjw83z7f77y03fqfg7fps7pqj2cj2c38x752m0pq4j2w3"; + }; + } + { + goPackagePath = "github.com/shurcooL/vfsgen"; + fetch = { + type = "git"; + url = "https://github.com/shurcooL/vfsgen"; + rev = "62bca832be04bd2bcaabd3b68a6b19a7ec044411"; + sha256 = "1lh8sw7qxs43jj8k9pfn91kfy2033p3il9bcb63whz8zhqw2a16y"; + }; + } + { + goPackagePath = "github.com/skratchdot/open-golang"; + fetch = { + type = "git"; + url = "https://github.com/skratchdot/open-golang"; + rev = "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c"; + sha256 = "1b67imqbsdvg19vif1q1dfmapxy3v2anagacbql95fwnnw0v8jga"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "ef82de70bb3f60c65fb8eebacbb2d122ef517385"; + sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "583c0c0531f06d5278b7d917446061adc344b5cd"; + sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "f35b8ab0b5a2cef36673838d662e249dd9c94686"; + sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs"; + }; + } + { + goPackagePath = "github.com/vektah/gqlgen"; + fetch = { + type = "git"; + url = "https://github.com/vektah/gqlgen"; + rev = "636435b68700211441303f1a5ed92f3768ba5774"; + sha256 = "0d4sr6kpyn3zq3kpvk8lizy7hdpcw3fjmv7fbv2m1k9w8fzjawrz"; + }; + } + { + goPackagePath = "github.com/vektah/gqlparser"; + fetch = { + type = "git"; + url = "https://github.com/vektah/gqlparser"; + rev = "14e83ae06ec152e6d0afb9766a00e0c0918aa8fc"; + sha256 = "162j259402pa2wb4645z6gplx5g1a2sfk393k2svwgws3bg2bws2"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "0e37d006457bf46f9e6692014ba72ef82c33022c"; + sha256 = "1fj8rvrhgv5j8pmckzphvm3sqkzhcqp3idkxvgv13qrjdfycsa5r"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "2f5d2388922f370f4355f327fcf4cfe9f5583908"; + sha256 = "03s92ygxfrd2c1m4697sd6iksgbar6c007w1yf3h6wmd79vr5dxs"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "d2e6202438beef2727060aa7cabdd924d92ebfd9"; + sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "ac767d655b305d4e9612f5f6e33120b9176c4ad4"; + sha256 = "1ds29n5lh4j21hmzxz7vk7hv1k6sixc7f0zsdc9xqdg0j7d212zm"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "a434f64ace81347eff0fb4a32bc80a235e0ad762"; + sha256 = "0zngnxrxjync4caz6ikmv5v0cn895iqhqmzqg9qddfm5bvl2a2my"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "ae0ab99deb4dc413a2b4bd6c8bdd0eb67f1e4d06"; + sha256 = "1iabxnqgxvvn1239i6fvfl375vlbvhfrc03m1x2rvalmx4d6w9c7"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183"; + sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1"; + }; + } + { + goPackagePath = "gotest.tools"; + fetch = { + type = "git"; + url = "https://github.com/gotestyourself/gotest.tools"; + rev = "b6e20af1ed078cd01a6413b734051a292450b4cb"; + sha256 = "11k6hmfhaf0qxpddp3i5kfpacdx51q6pv4n1kn3jnf1hjs0yny2k"; + }; + } +] \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix new file mode 100644 index 000000000000..c14a027b4abe --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchgit +, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, makeWrapper, xmlto +, pythonPackages }: + +stdenv.mkDerivation rec { + name = "git-bz-${version}"; + version = "3.2015-09-08"; + + src = fetchgit { + sha256 = "146z57m8nblgsxm4z6qnsvcy81p11d0w88v93ybacc6w21plh8hc"; + rev = "e17bbae7a2ce454d9f69c32fc40066995d44913d"; + url = "git://git.fishsoup.net/git-bz"; + }; + + nativeBuildInputs = [ + asciidoc docbook_xml_dtd_45 docbook_xsl libxslt makeWrapper xmlto + ]; + buildInputs = [] + ++ (with pythonPackages; [ python pysqlite ]); + + postPatch = '' + patchShebangs configure + + # Don't create a .html copy of the man page that isn't installed anyway: + substituteInPlace Makefile --replace "git-bz.html" "" + ''; + + postInstall = '' + wrapProgram $out/bin/git-bz \ + --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pycrypto}")" \ + --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pysqlite}")" + ''; + + meta = with stdenv.lib; { + description = "Bugzilla integration for git"; + longDescription = '' + git-bz is a tool for integrating the Git command line with the + Bugzilla bug-tracking system. Operations such as attaching patches to + bugs, applying patches in bugs to your current tree, and closing bugs + once you've pushed the fixes publicly can be done completely from + the command line without having to go to your web browser. + + Authentication for git-bz is done by reading the cookies for the + Bugzilla host from your web browser. In order to do this, git-bz needs + to know how to access the cookies for your web browser; git-bz + currently is able to do this for Firefox, Epiphany, Galeon and + Chromium on Linux. + ''; + license = licenses.gpl2Plus; + homepage = http://git.fishsoup.net/cgit/git-bz/; + + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix new file mode 100644 index 000000000000..206a4af91212 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix @@ -0,0 +1,21 @@ +{ lib, rustPlatform, fetchFromGitHub }: +rustPlatform.buildRustPackage rec { + name = "git-codeowners-${version}"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "softprops"; + repo = "git-codeowners"; + rev = "v${version}"; + sha256 = "0bzq4ridzb4l1zqrj1r0vlzkjpgfaqwky5jf49cwjhz4ybwrfpkq"; + }; + + cargoSha256 = "0rdmv9s86xba1zkl2j5rgix6k7pkkxqmpar03sak2fjrd7mh8iz0"; + + meta = with lib; { + homepage = "https://github.com/softprops/git-codeowners"; + description = "a git extension to work with CODEOWNERS files"; + license = licenses.mit; + maintainers = with maintainers; [ zimbatm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix new file mode 100644 index 000000000000..039da03efb1f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, pythonPackages, gettext, git }: + +let + inherit (pythonPackages) buildPythonApplication pyqt5 sip pyinotify; + +in buildPythonApplication rec { + name = "git-cola-${version}"; + version = "3.2"; + + src = fetchFromGitHub { + owner = "git-cola"; + repo = "git-cola"; + rev = "v${version}"; + sha256 = "1ivaqhvdbmlp0lmrwb2pv3kjqlcpqbxbinbvjjn3g81r4avjs7yy"; + }; + + buildInputs = [ git gettext ]; + propagatedBuildInputs = [ pyqt5 sip pyinotify ]; + + doCheck = false; + + meta = with stdenv.lib; { + homepage = https://github.com/git-cola/git-cola; + description = "A sleek and powerful Git GUI"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.bobvanderlinden ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix new file mode 100644 index 000000000000..2163855d00e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix @@ -0,0 +1,47 @@ +{ fetchFromGitHub, git, gnupg1compat, makeWrapper, openssl, stdenv }: + +stdenv.mkDerivation rec { + name = "git-crypt-${version}"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "AGWA"; + repo = "git-crypt"; + rev = "${version}"; + sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602"; + inherit name; + }; + + buildInputs = [ openssl makeWrapper ]; + + patchPhase = '' + substituteInPlace commands.cpp \ + --replace '(escape_shell_arg(our_exe_path()))' '= "git-crypt"' + ''; + + installPhase = '' + make install PREFIX=$out + wrapProgram $out/bin/* --prefix PATH : $out/bin:${git}/bin:${gnupg1compat}/bin + ''; + + meta = with stdenv.lib; { + homepage = https://www.agwa.name/projects/git-crypt; + description = "Transparent file encryption in git"; + longDescription = '' + git-crypt enables transparent encryption and decryption of files in a git + repository. Files which you choose to protect are encrypted when + committed, and decrypted when checked out. git-crypt lets you freely + share a repository containing a mix of public and private + content. git-crypt gracefully degrades, so developers without the secret + key can still clone and commit to a repository with encrypted files. This + lets you store your secret material (such as keys or passwords) in the + same repository as your code, without requiring you to lock down your + entire repository. + ''; + downloadPage = "https://github.com/AGWA/git-crypt/releases"; + license = licenses.gpl3; + maintainers = [ maintainers.dochang ]; + platforms = platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix new file mode 100644 index 000000000000..9c362276383c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix @@ -0,0 +1,54 @@ +{ stdenv +, fetchFromGitHub +, openssl +, zlib +, libssh +, cmake +, perl +, pkgconfig +, rustPlatform +, curl +, libiconv +, CoreFoundation +, Security +}: + +with rustPlatform; + +buildRustPackage rec { + name = "git-dit-${version}"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "neithernut"; + repo = "git-dit"; + rev = "v${version}"; + sha256 = "1sx6sc2dj3l61gbiqz8vfyhw5w4xjdyfzn1ixz0y8ipm579yc7a2"; + }; + + cargoSha256 = "08zbvjwjdpv2sbj6mh73py82inhs18jvmh8m9k4l94fcz6ykgqwr"; + + nativeBuildInputs = [ + cmake + pkgconfig + perl + ]; + + buildInputs = [ + openssl + libssh + zlib + ] ++ stdenv.lib.optionals (stdenv.isDarwin) [ + curl + libiconv + CoreFoundation + Security + ]; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Decentralized Issue Tracking for git"; + license = licenses.gpl2; + maintainers = with maintainers; [ Profpatsch ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix new file mode 100644 index 000000000000..7b6dd8aacb44 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "git-extras-${version}"; + version = "4.6.0"; + + src = fetchurl { + url = "https://github.com/tj/git-extras/archive/${version}.tar.gz"; + sha256 = "1jp5wi2h4jqbrjv0iqa45s0f9h3n5k1dxs89jkhg5n5k9jjs7fp3"; + }; + + dontBuild = true; + + installFlags = [ "DESTDIR=$(out) PREFIX=" ]; + + postInstall = '' + install -D etc/git-extras-completion.zsh $out/share/zsh/site-functions/_git_extras + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/tj/git-extras; + description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.spwhitt maintainers.cko ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile new file mode 100644 index 000000000000..17373f02b44d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +# Specify your gem's dependencies in git_fame.gemspec +gem "git_fame" diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock new file mode 100644 index 000000000000..0ac7907fe55d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock @@ -0,0 +1,26 @@ +GEM + remote: https://rubygems.org/ + specs: + git_fame (2.5.2) + hirb (~> 0.7.3) + memoist (~> 0.14.0) + method_profiler (~> 2.0.1) + progressbar (~> 0.21.0) + scrub_rb (~> 1.0.1) + trollop (~> 2.1.2) + hirb (0.7.3) + memoist (0.14.0) + method_profiler (2.0.1) + hirb (>= 0.6.0) + progressbar (0.21.0) + scrub_rb (1.0.1) + trollop (2.1.2) + +PLATFORMS + ruby + +DEPENDENCIES + git_fame + +BUNDLED WITH + 1.14.6 diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix new file mode 100644 index 000000000000..9ca7a67a53e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix @@ -0,0 +1,19 @@ +{ stdenv, bundlerEnv, ruby }: + +bundlerEnv rec { + inherit ruby; + + pname = "git_fame"; + + gemdir = ./.; + + meta = with stdenv.lib; { + description = '' + A command-line tool that helps you summarize and pretty-print collaborators based on contributions + ''; + homepage = http://oleander.io/git-fame-rb; + license = licenses.mit; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix new file mode 100644 index 000000000000..49b4af4ef6d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix @@ -0,0 +1,60 @@ +{ + git_fame = { + dependencies = ["hirb" "memoist" "method_profiler" "progressbar" "scrub_rb" "trollop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02k5ls5zyif8skdbnym6zw9y76whlnksw2m94jsh2n1ygk98izdd"; + type = "gem"; + }; + version = "2.5.2"; + }; + hirb = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji"; + type = "gem"; + }; + version = "0.7.3"; + }; + memoist = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03d3h6kp16bf0crqg1cxdgp1d2iyzn53d3phbmjh4pjybqls0gcm"; + type = "gem"; + }; + version = "0.14.0"; + }; + method_profiler = { + dependencies = ["hirb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ax04qrrv7fqp5ayxaxhn72660pybdkpkvmgiwbg7bs7x5ijjzd8"; + type = "gem"; + }; + version = "2.0.1"; + }; + progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17haw9c6c9q6imsn83pii32jnihpg76jgd09x7y4hjqq45n3qcdh"; + type = "gem"; + }; + version = "0.21.0"; + }; + scrub_rb = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dwg33w83w17aiij9kcbi7irj7lh045nh9prjgkzjya3f1j60d3x"; + type = "gem"; + }; + version = "1.0.1"; + }; + trollop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8"; + type = "gem"; + }; + version = "2.1.2"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix new file mode 100644 index 000000000000..ba126bb476c1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchFromGitHub, gitMinimal, python2Packages }: + +stdenv.mkDerivation rec { + name = "git-hub-${version}"; + version = "1.0.1"; + + src = fetchFromGitHub { + sha256 = "1lizjyi8vac1p1anbnh6qrr176rwxp5yjc1787asw437sackkwza"; + rev = "v${version}"; + repo = "git-hub"; + owner = "sociomantic-tsunami"; + }; + + buildInputs = [ python2Packages.python ]; + nativeBuildInputs = [ + gitMinimal # Used during build to generate Bash completion. + python2Packages.docutils + ]; + + postPatch = '' + patchShebangs . + ''; + + enableParallelBuilding = true; + + installFlags = [ "prefix=$(out)" "sysconfdir=$(out)/etc" ]; + + postInstall = '' + # Remove inert ftdetect vim plugin and a README that's a man page subset: + rm -r $out/share/{doc,vim} + ''; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Git command line interface to GitHub"; + longDescription = '' + A simple command line interface to GitHub, enabling most useful GitHub + tasks (like creating and listing pull request or issues) to be accessed + directly through the Git command line. + ''; + license = licenses.gpl3Plus; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix new file mode 100644 index 000000000000..10e786222710 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, pythonPackages }: + +stdenv.mkDerivation rec { + name = "git-imerge-${version}"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "mhagger"; + repo = "git-imerge"; + rev = "v${version}"; + sha256 = "0vi1w3f0yk4gqhxj2hzqafqq28rihyhyfnp8x7xzib96j2si14a4"; + }; + + buildInputs = [ pythonPackages.python pythonPackages.wrapPython ]; + + makeFlags = "PREFIX= DESTDIR=$(out)" ; + + meta = with stdenv.lib; { + homepage = https://github.com/mhagger/git-imerge; + description = "Perform a merge between two branches incrementally"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = [ maintainers.spwhitt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix new file mode 100644 index 000000000000..f8d871bdcf30 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, git, perl, makeWrapper }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "git-octopus-${version}"; + version = "1.4"; + + installFlags = [ "prefix=$(out)" ]; + + buildInputs = [ makeWrapper ]; + + # perl provides shasum + postInstall = '' + for f in $out/bin/*; do + wrapProgram $f --prefix PATH : ${makeBinPath [ git perl ]} + done + ''; + + src = fetchFromGitHub { + owner = "lesfurets"; + repo = "git-octopus"; + rev = "v${version}"; + sha256 = "14p61xk7jankp6gc26xciag9fnvm7r9vcbhclcy23f4ghf4q4sj1"; + }; + + meta = { + homepage = https://github.com/lesfurets/git-octopus; + description = "The continuous merge workflow"; + license = licenses.lgpl3; + platforms = platforms.unix; + maintainers = [maintainers.mic92]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix new file mode 100644 index 000000000000..dc3fbbed1995 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix @@ -0,0 +1,32 @@ +{stdenv, git, xdg_utils, gnugrep, fetchFromGitHub, makeWrapper}: + +stdenv.mkDerivation rec { + name = "git-open-${version}"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "paulirish"; + repo = "git-open"; + rev = "v${version}"; + sha256 = "0lprzrjsqrg83gixfaiw26achgd8l7s56jknsjss4p7y0w1fxm05"; + }; + + buildInputs = [ makeWrapper ]; + + buildPhase = null; + + installPhase = '' + mkdir -p $out/bin + cp git-open $out/bin + wrapProgram $out/bin/git-open \ + --prefix PATH : "${stdenv.lib.makeBinPath [ git xdg_utils gnugrep ]}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/paulirish/git-open; + description = "Open the GitHub page or website for a repository in your browser"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.jlesquembre ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix new file mode 100644 index 000000000000..d72df8028759 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix @@ -0,0 +1,29 @@ +{stdenv, fetchFromGitHub}: + +stdenv.mkDerivation rec { + name = "git-radar-${version}"; + version = "0.6"; + + src = fetchFromGitHub { + owner = "michaeldfallen"; + repo = "git-radar"; + rev = "v${version}"; + sha256 = "0c3zp8s4w7m4s71qgwk1jyfc8yzw34f2hi43x1w437ypgabwg81j"; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp git-radar fetch.sh prompt.bash prompt.zsh radar-base.sh $out + ln -s $out/git-radar $out/bin + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/michaeldfallen/git-radar; + license = licenses.mit; + description = "A tool you can add to your prompt to provide at-a-glance information on your git repo"; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ kamilchm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix new file mode 100644 index 000000000000..c52a78ff0076 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix @@ -0,0 +1,35 @@ +{stdenv, git, less, fetchFromGitHub, makeWrapper +# utillinuxMinimal is included because we need the column command +, utillinux +}: + +stdenv.mkDerivation rec { + name = "git-recent-${version}"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "paulirish"; + repo = "git-recent"; + rev = "v${version}"; + sha256 = "06r1jzmzdv3d4vxdh5qyf5g5rgavxfmh2rpbs7a7byg3k7d77hpn"; + }; + + buildInputs = [ makeWrapper ]; + + buildPhase = null; + + installPhase = '' + mkdir -p $out/bin + cp git-recent $out/bin + wrapProgram $out/bin/git-recent \ + --prefix PATH : "${stdenv.lib.makeBinPath [ git less utillinux ]}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/paulirish/git-recent; + description = "See your latest local git branches, formatted real fancy"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.jlesquembre ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix new file mode 100644 index 000000000000..a8df4846bf5c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, docutils, makeWrapper, gnupg1compat, curl, rsync }: + +stdenv.mkDerivation rec { + name = "git-remote-gcrypt-${version}"; + version = "1.2"; + rev = version; + + src = fetchFromGitHub { + inherit rev; + owner = "spwhitton"; + repo = "git-remote-gcrypt"; + sha256 = "0isfg0vlmcphxzj4jm32dycprhym26ina1b28jgc4j57kiqqrdcy"; + }; + + outputs = [ "out" "man" ]; + + nativeBuildInputs = [ docutils makeWrapper ]; + + installPhase = '' + prefix="$out" ./install.sh + wrapProgram "$out/bin/git-remote-gcrypt" \ + --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg1compat curl rsync ]}" + ''; + + meta = with stdenv.lib; { + homepage = https://spwhitton.name/tech/code/git-remote-gcrypt; + description = "A git remote helper for GPG-encrypted remotes"; + license = licenses.gpl3; + maintainers = with maintainers; [ ellis montag451 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix new file mode 100644 index 000000000000..f30813cf1201 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchgit, mercurial, makeWrapper, + asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2 +}: + +stdenv.mkDerivation rec { + rev = "e716a9e1a9e460a45663694ba4e9e8894a8452b2"; + version = "0.2-${rev}"; + name = "git-remote-hg-${version}"; + + src = fetchgit { + inherit rev; + url = "git://github.com/fingolfin/git-remote-hg.git"; + sha256 = "0cmlfdxfabrs3x10mfjfap8wz67s8xk2pjn2wlcj9k2v84gji60m"; + }; + + buildInputs = [ mercurial.python mercurial makeWrapper + asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2 + ]; + + doCheck = false; + + installFlags = "HOME=\${out} install-doc"; + + postInstall = '' + wrapProgram $out/bin/git-remote-hg \ + --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages or []}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/felipec/git-remote-hg; + description = "Semi-official Mercurial bridge from Git project, once installed, it allows you to clone, fetch and push to and from Mercurial repositories as if they were Git ones"; + license = licenses.gpl2; + maintainers = [ maintainers.garbas ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix new file mode 100644 index 000000000000..03435ec834ab --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, makeWrapper, git, gnused }: + +stdenv.mkDerivation rec { + name = "git-reparent-${version}"; + version = "unstable-2017-09-03"; + + src = fetchFromGitHub { + owner = "MarkLodato"; + repo = "git-reparent"; + rev = "a99554a32524a86421659d0f61af2a6c784b7715"; + sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v"; + }; + + buildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -m755 -Dt $out/bin git-reparent + ''; + + postFixup = '' + wrapProgram $out/bin/git-reparent --prefix PATH : "${stdenv.lib.makeBinPath [ git gnused ]}" + ''; + + meta = with stdenv.lib; { + inherit (src.meta) homepage; + description = "Git command to recommit HEAD with a new set of parents"; + maintainers = [ maintainers.marsam ]; + license = licenses.gpl2; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix new file mode 100644 index 000000000000..0c5158e550cb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }: + +let + version = "0.2.5"; + repo = "git-secret"; + +in stdenv.mkDerivation { + name = "${repo}-${version}"; + + src = fetchFromGitHub { + inherit repo; + owner = "sobolevn"; + rev = "v${version}"; + sha256 = "1caxdx1ps662vfa79f7l1bwgwgwf974ahzii0hzaqfnkxy45i520"; + }; + + buildInputs = [ makeWrapper ]; + + installPhase = '' + install -D git-secret $out/bin/git-secret + + wrapProgram $out/bin/git-secret \ + --prefix PATH : "${lib.makeBinPath [ git gnupg gawk ]}" + + mkdir $out/share + cp -r man $out/share + ''; + + meta = { + description = "A bash-tool to store your private data inside a git repository"; + homepage = http://git-secret.io; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.lo1tuma ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix new file mode 100644 index 000000000000..fb85bb7da463 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, makeWrapper, git, coreutils }: + +stdenv.mkDerivation rec { + name = "git-secrets-${version}"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "awslabs"; + repo = "git-secrets"; + rev = "${version}"; + sha256 = "14jsm4ks3k5d9iq3jr23829izw040pqpmv7dz8fhmvx6qz8fybzg"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -m755 -Dt $out/bin git-secrets + install -m444 -Dt $out/share/man/man1 git-secrets.1 + + wrapProgram $out/bin/git-secrets \ + --prefix PATH : "${stdenv.lib.makeBinPath [ git coreutils ]}" + ''; + + meta = with stdenv.lib; { + description = "Prevents you from committing secrets and credentials into git repositories"; + homepage = https://github.com/awslabs/git-secrets; + license = licenses.asl20; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix new file mode 100644 index 000000000000..6a52983e83ce --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, fetchFromGitHub, ... }: + +stdenv.mkDerivation rec { + name = "git-stree-${version}"; + version = "0.4.5"; + + src = fetchFromGitHub { + owner = "tdd"; + repo = "git-stree"; + rev = "0.4.5"; + sha256 = "0y5h44n38w6rhy9m591dvibxpfggj3q950ll7y4h49bhpks4m0l9"; + }; + + installPhase = '' + mkdir -p $out/bin $out/etc/bash_completion.d + install -m 0755 git-stree $out/bin/ + install -m 0644 git-stree-completion.bash $out/etc/bash_completion.d/ + ''; + + meta = with lib; { + description = "A better Git subtree helper command"; + homepage = http://deliciousinsights.github.io/git-stree; + license = licenses.mit; + maintainers = [ maintainers.benley ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix new file mode 100644 index 000000000000..7ba7d8ec2434 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, coreutils, gnugrep, gnused, makeWrapper, git +}: + +stdenv.mkDerivation rec { + name = "git-sync-${version}"; + version = "20151024"; + + src = fetchFromGitHub { + owner = "simonthum"; + repo = "git-sync"; + rev = "eb9adaf2b5fd65aac1e83d6544b9076aae6af5b7"; + sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz"; + }; + + buildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp -a git-sync $out/bin/git-sync + ''; + + wrapperPath = with stdenv.lib; makeBinPath [ + coreutils + git + gnugrep + gnused + ]; + + fixupPhase = '' + patchShebangs $out/bin + + wrapProgram $out/bin/git-sync \ + --prefix PATH : "${wrapperPath}" + ''; + + meta = { + description = "A script to automatically synchronize a git repository"; + homepage = https://github.com/simonthum/git-sync; + maintainers = with stdenv.lib.maintainers; [ imalison ]; + license = stdenv.lib.licenses.cc0; + platforms = with stdenv.lib.platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix new file mode 100644 index 000000000000..1150f008299c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, makeWrapper, git }: + +stdenv.mkDerivation rec { + name = "git-test-${version}"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "spotify"; + repo = "git-test"; + rev = "v${version}"; + sha256 = "01h3f0andv1p7pwir3k6n01v92hgr5zbjadfwl144yjw9x37fm2f"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -m755 -Dt $out/bin git-test + install -m444 -Dt $out/share/man/man1 git-test.1 + + wrapProgram $out/bin/git-test \ + --prefix PATH : "${stdenv.lib.makeBinPath [ git ]}" + ''; + + meta = with stdenv.lib; { + description = "Test your commits"; + homepage = https://github.com/spotify/git-test; + license = licenses.asl20; + maintainers = [ maintainers.marsam ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix new file mode 100644 index 000000000000..46e88b1e0fc4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix @@ -0,0 +1,311 @@ +{ fetchurl, stdenv, buildPackages +, curl, openssl, zlib, expat, perlPackages, python, gettext, cpio +, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc +, openssh, pcre2 +, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45 +, libxslt, tcl, tk, makeWrapper, libiconv +, svnSupport, subversionClient, perlLibs, smtpPerlLibs +, perlSupport ? true +, guiSupport +, withManual ? true +, pythonSupport ? true +, withpcre2 ? true +, sendEmailSupport +, darwin +, withLibsecret ? false +, pkgconfig, glib, libsecret +}: + +assert sendEmailSupport -> perlSupport; +assert svnSupport -> perlSupport; + +let + version = "2.19.2"; + svn = subversionClient.override { perlBindings = perlSupport; }; +in + +stdenv.mkDerivation { + name = "git-${version}"; + + src = fetchurl { + url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; + sha256 = "1scbggzghkzzfqg4ky3qh7h9w87c3zya4ls5disz7dbx56is7sgw"; + }; + + outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb"; + + hardeningDisable = [ "format" ]; + + enableParallelBuilding = true; + + ## Patch + + patches = [ + ./docbook2texi.patch + ./git-sh-i18n.patch + ./ssh-path.patch + ./git-send-email-honor-PATH.patch + ./installCheck-path.patch + ]; + + postPatch = '' + for x in connect.c git-gui/lib/remote_add.tcl ; do + substituteInPlace "$x" \ + --subst-var-by ssh "${openssh}/bin/ssh" + done + + # Fix references to gettext introduced by ./git-sh-i18n.patch + substituteInPlace git-sh-i18n.sh \ + --subst-var-by gettext ${gettext} + ''; + + nativeBuildInputs = [ gettext perlPackages.perl ] + ++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x + docbook_xsl docbook_xml_dtd_45 libxslt ]; + buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv] + ++ stdenv.lib.optionals perlSupport [ perlPackages.perl ] + ++ stdenv.lib.optionals guiSupport [tcl tk] + ++ stdenv.lib.optionals withpcre2 [ pcre2 ] + ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ] + ++ stdenv.lib.optionals withLibsecret [ pkgconfig glib libsecret ]; + + # required to support pthread_cancel() + NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s" + + stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr"; + + configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "ac_cv_fread_reads_directories=yes" + "ac_cv_snprintf_returns_bogus=no" + ]; + + preBuild = '' + makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') ) + ''; + + makeFlags = [ + "prefix=\${out}" + "SHELL_PATH=${stdenv.shell}" + ] + ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"]) + ++ (if pythonSupport then ["PYTHON_PATH=${python}/bin/python"] else ["NO_PYTHON=1"]) + ++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="] + ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc/"]) + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"] + ++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1"; + + + postBuild = '' + make -C contrib/subtree + '' + (stdenv.lib.optionalString stdenv.isDarwin '' + make -C contrib/credential/osxkeychain + '') + (stdenv.lib.optionalString withLibsecret '' + make -C contrib/credential/libsecret + ''); + + + ## Install + + # WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead. + # We need many of these files during the installCheckPhase. + + installFlags = "NO_INSTALL_HARDLINKS=1"; + + preInstall = (stdenv.lib.optionalString stdenv.isDarwin '' + mkdir -p $out/bin + ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/ + rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o + '') + (stdenv.lib.optionalString withLibsecret '' + mkdir -p $out/bin + ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/ + rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o + ''); + + postInstall = + '' + notSupported() { + unlink $1 || true + } + + # Install git-subtree. + make -C contrib/subtree install ${stdenv.lib.optionalString withManual "install-doc"} + rm -rf contrib/subtree + + # Install contrib stuff. + mkdir -p $out/share/git + cp -a contrib $out/share/git/ + mkdir -p $out/share/emacs/site-lisp + ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/ + mkdir -p $out/etc/bash_completion.d + ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/ + ln -s $out/share/git/contrib/completion/git-prompt.sh $out/etc/bash_completion.d/ + + # grep is a runtime dependency, need to patch so that it's found + substituteInPlace $out/libexec/git-core/git-sh-setup \ + --replace ' grep' ' ${gnugrep}/bin/grep' \ + --replace ' egrep' ' ${gnugrep}/bin/egrep' + + # Fix references to the perl, sed, awk and various coreutil binaries used by + # shell scripts that git calls (e.g. filter-branch) + SCRIPT="$(cat <<'EOS' + BEGIN{ + @a=( + '${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk', + '${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname', + '${coreutils}/bin/wc', '${coreutils}/bin/tr' + ${stdenv.lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"} + ); + } + foreach $c (@a) { + $n=(split("/", $c))[-1]; + s|(?<=[^#][^/.-])\b''${n}(?=\s)|''${c}|g + } + EOS + )" + perl -0777 -i -pe "$SCRIPT" \ + $out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,stash,submodule,subtree,web--browse} + + + # Also put git-http-backend into $PATH, so that we can use smart + # HTTP(s) transports for pushing + ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend + '' + stdenv.lib.optionalString perlSupport '' + # put in separate package for simpler maintenance + mv $out/share/gitweb $gitweb/ + + # wrap perl commands + makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc" $out/bin/git-credential-netrc \ + --set PERL5LIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-cvsimport \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-add--interactive \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-archimport \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-instaweb \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-cvsexportcommit \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + '' + + + (if svnSupport then '' + # wrap git-svn + wrapProgram $out/libexec/git-core/git-svn \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath (perlLibs ++ [svn.out])}" \ + --prefix PATH : "${svn.out}/bin" '' + else '' # replace git-svn by notification script + notSupported $out/libexec/git-core/git-svn + '') + + + (if sendEmailSupport then '' + # wrap git-send-email + wrapProgram $out/libexec/git-core/git-send-email \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}" + '' else '' + # replace git-send-email by notification script + notSupported $out/libexec/git-core/git-send-email + '') + + + stdenv.lib.optionalString withManual ''# Install man pages and Info manual + make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-info \ + -C Documentation '' + + + (if guiSupport then '' + # Wrap Tcl/Tk programs + for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do + sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \ + -e "s|exec wish|exec '${tk}/bin/wish'|g" \ + "$out/$prog" + done + '' else '' + # Don't wrap Tcl/Tk, replace them by notification scripts + for prog in bin/gitk libexec/git-core/git-gui; do + notSupported "$out/$prog" + done + '') + + stdenv.lib.optionalString stdenv.isDarwin '' + # enable git-credential-osxkeychain by default if darwin + cat > $out/etc/gitconfig << EOF + [credential] + helper = osxkeychain + EOF + ''; + + + ## InstallCheck + + doCheck = false; + doInstallCheck = true; + + installCheckTarget = "test"; + + # see also installCheckFlagsArray + installCheckFlags = "DEFAULT_TEST_TARGET=prove"; + + preInstallCheck = '' + installCheckFlagsArray+=( + GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save" + GIT_TEST_INSTALLED=$out/bin + ${stdenv.lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"} + ) + + function disable_test { + local test=$1 pattern=$2 + if [ $# -eq 1 ]; then + mv t/{,skip-}$test.sh || true + else + sed -i t/$test.sh \ + -e "/^ *test_expect_.*$pattern/,/^ *' *\$/{s/^/#/}" + fi + } + + # Shared permissions are forbidden in sandbox builds. + disable_test t0001-init shared + disable_test t1301-shared-repo + + # Our patched gettext never fallbacks + disable_test t0201-gettext-fallbacks + + ${stdenv.lib.optionalString (!sendEmailSupport) '' + # Disable sendmail tests + disable_test t9001-send-email + ''} + + # XXX: I failed to understand why this one fails. + # Could someone try to re-enable it on the next release ? + # Tested to fail: 2.18.0 and 2.19.0 + disable_test t1700-split-index "null sha1" + + # Tested to fail: 2.18.0 + disable_test t7005-editor "editor with a space" + disable_test t7005-editor "core.editor with a space" + + # Tested to fail: 2.18.0 + disable_test t9902-completion "sourcing the completion script clears cached --options" + + # As of 2.19.0, t5562 refers to #!/usr/bin/perl + patchShebangs t/t5562/invoke-with-content-length.pl + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + # Test fails (as of 2.17.0, musl 1.1.19) + disable_test t3900-i18n-commit + # Fails largely due to assumptions about BOM + # Tested to fail: 2.18.0 + disable_test t0028-working-tree-encoding + ''; + + stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ]; + + + meta = { + homepage = https://git-scm.com/; + description = "Distributed version control system"; + license = stdenv.lib.licenses.gpl2; + + longDescription = '' + Git, a popular distributed version control system designed to + handle very large projects with speed and efficiency. + ''; + + platforms = stdenv.lib.platforms.all; + maintainers = with stdenv.lib.maintainers; [ peti the-kenny wmertens ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch new file mode 100644 index 000000000000..ab5bb3c3a6c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch @@ -0,0 +1,37 @@ +This patch does two things: (1) use the right name for `docbook2texi', +and (2) make sure `gitman.info' isn't produced since it's broken (duplicate +node names). + +diff --git a/Documentation/Makefile b/Documentation/Makefile +--- a/Documentation/Makefile ++++ b/Documentation/Makefile +@@ -122,7 +122,7 @@ + + MAKEINFO = makeinfo + INSTALL_INFO = install-info +-DOCBOOK2X_TEXI = docbook2x-texi ++DOCBOOK2X_TEXI = docbook2texi + DBLATEX = dblatex + ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex + DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty +@@ -240,7 +240,7 @@ + man5: $(DOC_MAN5) + man7: $(DOC_MAN7) + +-info: git.info gitman.info ++info: git.info + + pdf: user-manual.pdf + +@@ -256,10 +256,9 @@ + + install-info: info + $(INSTALL) -d -m 755 $(DESTDIR)$(infodir) +- $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir) ++ $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir) + if test -r $(DESTDIR)$(infodir)/dir; then \ + $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\ +- $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\ + else \ + echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \ + fi diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch new file mode 100644 index 000000000000..6b93d061a3be --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch @@ -0,0 +1,26 @@ +diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt +--- a/Documentation/git-send-email.txt ++++ b/Documentation/git-send-email.txt +@@ -208,8 +208,7 @@ a password is obtained using 'git-credential'. + specify a full pathname of a sendmail-like program instead; + the program must support the `-i` option. Default value can + be specified by the `sendemail.smtpServer` configuration +- option; the built-in default is to search for `sendmail` in +- `/usr/sbin`, `/usr/lib` and $PATH if such program is ++ option; the built-in default is to search in $PATH if such program is + available, falling back to `localhost` otherwise. + + --smtp-server-port=<port>:: +diff --git a/git-send-email.perl b/git-send-email.perl +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -944,8 +944,7 @@ if (defined $reply_to) { + } + + if (!defined $smtp_server) { +- my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail ); +- push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH}; ++ my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH}; + foreach (@sendmail_paths) { + if (-x $_) { + $smtp_server = $_; diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch new file mode 100644 index 000000000000..216c0e56b44c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch @@ -0,0 +1,94 @@ +--- a/git-sh-i18n.sh ++++ b/git-sh-i18n.sh +@@ -15,87 +15,11 @@ + fi + export TEXTDOMAINDIR + +-# First decide what scheme to use... +-GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough +-if test -n "$GIT_GETTEXT_POISON" +-then +- GIT_INTERNAL_GETTEXT_SH_SCHEME=poison +-elif test -n "@@USE_GETTEXT_SCHEME@@" +-then +- GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@" +-elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" +-then +- : no probing necessary +-elif type gettext.sh >/dev/null 2>&1 +-then +- # GNU libintl's gettext.sh +- GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu +-elif test "$(gettext -h 2>&1)" = "-h" +-then +- # gettext binary exists but no gettext.sh. likely to be a gettext +- # binary on a Solaris or something that is not GNU libintl and +- # lack eval_gettext. +- GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext +-fi +-export GIT_INTERNAL_GETTEXT_SH_SCHEME +- +-# ... and then follow that decision. +-case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in +-gnu) +- # Use libintl's gettext.sh, or fall back to English if we can't. +- . gettext.sh +- ;; +-gettext_without_eval_gettext) +- # Solaris has a gettext(1) but no eval_gettext(1) +- eval_gettext () { +- gettext "$1" | ( +- export PATH $(git sh-i18n--envsubst --variables "$1"); +- git sh-i18n--envsubst "$1" +- ) +- } +- +- eval_ngettext () { +- ngettext "$1" "$2" "$3" | ( +- export PATH $(git sh-i18n--envsubst --variables "$2"); +- git sh-i18n--envsubst "$2" +- ) +- } +- ;; +-poison) +- # Emit garbage so that tests that incorrectly rely on translatable +- # strings will fail. +- gettext () { +- printf "%s" "# GETTEXT POISON #" +- } +- +- eval_gettext () { +- printf "%s" "# GETTEXT POISON #" +- } +- +- eval_ngettext () { +- printf "%s" "# GETTEXT POISON #" +- } +- ;; +-*) +- gettext () { +- printf "%s" "$1" +- } +- +- eval_gettext () { +- printf "%s" "$1" | ( +- export PATH $(git sh-i18n--envsubst --variables "$1"); +- git sh-i18n--envsubst "$1" +- ) +- } ++# GNU gettext ++export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu ++export PATH=@gettext@/bin:$PATH + +- eval_ngettext () { +- (test "$3" = 1 && printf "%s" "$1" || printf "%s" "$2") | ( +- export PATH $(git sh-i18n--envsubst --variables "$2"); +- git sh-i18n--envsubst "$2" +- ) +- } +- ;; +-esac ++. @gettext@/bin/gettext.sh + + # Git-specific wrapper functions + gettextln () { diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch new file mode 100644 index 000000000000..8c68fb9f186b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch @@ -0,0 +1,12 @@ +diff --git a/t/test-lib.sh b/t/test-lib.sh +--- a/t/test-lib.sh ++++ b/t/test-lib.sh +@@ -923,7 +923,7 @@ + then + GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) || + error "Cannot run git from $GIT_TEST_INSTALLED." +- PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR:$PATH ++ PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$GIT_BUILD_DIR:$PATH + GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH} + else # normal case, use ../bin-wrappers only unless $with_dashes: + git_bin_dir="$GIT_BUILD_DIR/bin-wrappers" diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch new file mode 100644 index 000000000000..addb1dbc5e06 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch @@ -0,0 +1,26 @@ +diff --git a/connect.c b/connect.c +index c3a014c5b..fbca3262b 100644 +--- a/connect.c ++++ b/connect.c +@@ -1010,7 +1010,7 @@ static void fill_ssh_args(struct child_process *conn, const char *ssh_host, + + ssh = getenv("GIT_SSH"); + if (!ssh) +- ssh = "ssh"; ++ ssh = "@ssh@"; + variant = determine_ssh_variant(ssh, 0); + } + +diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl +index 480a6b30d..781720424 100644 +--- a/git-gui/lib/remote_add.tcl ++++ b/git-gui/lib/remote_add.tcl +@@ -139,7 +139,7 @@ method _add {} { + # Parse the location + if { [regexp {(?:git\+)?ssh://([^/]+)(/.+)} $location xx host path] + || [regexp {([^:][^:]+):(.+)} $location xx host path]} { +- set ssh ssh ++ set ssh @ssh@ + if {[info exists env(GIT_SSH)]} { + set ssh $env(GIT_SSH) + } diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix new file mode 100644 index 000000000000..044800fe73a6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix @@ -0,0 +1,23 @@ +{ fetchgit, stdenv, perl }: + +stdenv.mkDerivation { + name = "git2cl-20080827"; + + src = fetchgit { + url = "git://repo.or.cz/git2cl.git"; + rev = "8373c9f74993e218a08819cbcdbab3f3564bbeba"; + sha256 = "b0d39379640c8a12821442431e2121f7908ce1cc88ec8ec6bede218ea8c21f2f"; + }; + + buildInputs = [ perl ]; + installPhase = '' + install -D -m755 git2cl $out/bin/git2cl + install -D -m644 README $out/share/doc/git2cl/README + ''; + + meta = { + homepage = http://josefsson.org/git2cl/; + description = "Convert git logs to GNU style ChangeLog files"; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix new file mode 100644 index 000000000000..698de486b5be --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix @@ -0,0 +1,42 @@ +{ pkgs, stdenv, fetchFromGitHub }: + +with pkgs.lib; + +stdenv.mkDerivation rec { + pname = "gitflow"; + version = "1.11.0"; + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "petervanderdoes"; + repo = pname; + rev = version; + sha256 = "0zk53g0wd5n1zlhkwlfp124i6agx8kl0cwvy0dia3jh1p51vsc1q"; + }; + + buildInputs = [ pkgs.makeWrapper ]; + + preBuild = '' + makeFlagsArray+=(prefix="$out") + ''; + + postInstall = '' + wrapProgram $out/bin/git-flow \ + --set FLAGS_GETOPT_CMD ${pkgs.getopt}/bin/getopt \ + --suffix PATH : ${pkgs.git}/bin + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/petervanderdoes/gitflow; + description = "Extend git with the Gitflow branching model"; + longDescription = '' + A set of scripts that provide high-level repository operations + for managing feature/release/hotfix branches in a Git repository, + particularly suited to be utilised to follow Vincent Driessen's + branching model. + ''; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ offline jgeerds ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix new file mode 100644 index 000000000000..a98dd5bc5862 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix @@ -0,0 +1,37 @@ +{ stdenv, git, gzip, perlPackages, fetchFromGitHub +, gitwebTheme ? false }: + +let + gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; + gitwebThemeSrc = fetchFromGitHub { + owner = "kogakure"; + repo = "gitweb-theme"; + rev = "049b88e664a359f8ec25dc6f531b7e2aa60dd1a2"; + sha256 = "0wksqma41z36dbv6w6iplkjfdm0ha3njp222fakyh4lismajr71p"; + }; +in stdenv.mkDerivation { + name = "gitweb-${stdenv.lib.getVersion git}"; + + src = git.gitweb; + + installPhase = '' + mkdir $out + mv * $out + + # gzip (and optionally bzip2, xz, zip) are runtime dependencies for + # gitweb.cgi, need to patch so that it's found + sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \ + $out/gitweb.cgi + # Give access to CGI.pm and friends (was removed from perl core in 5.22) + for p in ${stdenv.lib.concatStringsSep " " gitwebPerlLibs}; do + sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \ + "$out/gitweb.cgi" + done + + ${stdenv.lib.optionalString gitwebTheme "cp ${gitwebThemeSrc}/* $out/static"} + ''; + + meta = git.meta // { + maintainers = with stdenv.lib.maintainers; [ gnidorah ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix new file mode 100644 index 000000000000..32c163c45c41 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix @@ -0,0 +1,34 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, curl, libgit2_0_27, ncurses, pkgconfig, readline }: +let + version = "0.3.1"; +in +buildGoPackage { + name = "grv-${version}"; + + buildInputs = [ ncurses readline curl libgit2_0_27 ]; + nativeBuildInputs = [ pkgconfig ]; + + goPackagePath = "github.com/rgburke/grv"; + + src = fetchFromGitHub { + owner = "rgburke"; + repo = "grv"; + rev = "v${version}"; + sha256 = "16ylapsibqrqwx45l4ypr3av07rd1haf10v838mjqsakf8l1xc0b"; + fetchSubmodules = true; + }; + + postPatch = '' + rm util/update_latest_release.go + ''; + + buildFlagsArray = [ "-ldflags=" "-X main.version=${version}" ]; + + meta = with stdenv.lib; { + description = "GRV is a terminal interface for viewing Git repositories"; + homepage = https://github.com/rgburke/grv; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ andir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix new file mode 100644 index 000000000000..c6e62265b95b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix @@ -0,0 +1,44 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, ronn, ruby, groff, Security, utillinux }: + +buildGoPackage rec { + name = "hub-${version}"; + version = "2.7.0"; + + goPackagePath = "github.com/github/hub"; + + src = fetchFromGitHub { + owner = "github"; + repo = "hub"; + rev = "v${version}"; + sha256 = "1p90m1xp3jahs5y0lp0qfmfa7wqn7gxyygn7x45a6cbf2zzlb86l"; + }; + + nativeBuildInputs = [ groff ronn utillinux ]; + buildInputs = [ ruby ] ++ + stdenv.lib.optional stdenv.isDarwin Security; + + postPatch = '' + mkdir bin + ln -s ${ronn}/bin/ronn bin/ronn + patchShebangs . + ''; + + postInstall = '' + cd go/src/${goPackagePath} + install -D etc/hub.zsh_completion "$bin/share/zsh/site-functions/_hub" + install -D etc/hub.bash_completion.sh "$bin/share/bash-completion/completions/hub" + install -D etc/hub.fish_completion "$bin/share/fish/vendor_completions.d/hub.fish" + + make man-pages + cp -vr --parents share/man/man[1-9]/*.[1-9] $bin/ + ''; + + meta = with stdenv.lib; { + description = "Command-line wrapper for git that makes you better at GitHub"; + + license = licenses.mit; + homepage = https://hub.github.com/; + maintainers = with maintainers; [ the-kenny ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix new file mode 100644 index 000000000000..daec9ce9d2af --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "lab-${version}"; + version = "0.14.0"; + + goPackagePath = "github.com/zaquestion/lab"; + + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "zaquestion"; + repo = "lab"; + rev = "v${version}"; + sha256 = "0dqahzm721kpps4i33qgk78y982n8gj5afpk73qyzbraf5y3cw92"; + }; + + goDeps = ./deps.nix; + + meta = with stdenv.lib; { + description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab"; + homepage = https://zaquestion.github.io/lab; + license = licenses.unlicense; + maintainers = [ maintainers.marsam ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix new file mode 100644 index 000000000000..03959300b435 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix @@ -0,0 +1,327 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "github.com/avast/retry-go"; + fetch = { + type = "git"; + url = "https://github.com/avast/retry-go"; + rev = "5469272a8171235352a56af37e5f7facf814423f"; + sha256 = "0ql8x5c99sh1f4vdd5614zd0bi4z8z19228vm4xkvii11bsj8dx6"; + }; + } + { + goPackagePath = "github.com/cpuguy83/go-md2man"; + fetch = { + type = "git"; + url = "https://github.com/cpuguy83/go-md2man"; + rev = "20f5889cbdc3c73dbd2862796665e7c465ade7d1"; + sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "346938d642f2ec3594ed81d874461961cd0faa76"; + sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "github.com/gdamore/encoding"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/encoding"; + rev = "b23993cbb6353f0e6aa98d0ee318a34728f628b9"; + sha256 = "0d7irqpx2fa9vkxgkhf04yiwazsm10fxh0yk86x5crflhph5fv8a"; + }; + } + { + goPackagePath = "github.com/gdamore/tcell"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/tcell"; + rev = "2f258105ca8ce35819115b49f5ac58197241653e"; + sha256 = "1sji4fjd7i70lc6l19zhz718xld96k0h1sb1as1mmrx0iv858xaz"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "b4deda0973fb4c70b50d226b1af49f3da59f5265"; + sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq"; + }; + } + { + goPackagePath = "github.com/google/go-querystring"; + fetch = { + type = "git"; + url = "https://github.com/google/go-querystring"; + rev = "53e6ce116135b80d037921a7fdd5138cf32d7a8a"; + sha256 = "0lkbm067nhmxk66pyjx59d77dbjjzwyi43gdvzyx2f8m1942rq7f"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "ef8a98b0bbce4a65b5aa4c368430a80ddc533168"; + sha256 = "1qalfsc31fra7hcw2lc3s20aj7al62fq3j5fn5kga3mg99b82nyr"; + }; + } + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + { + goPackagePath = "github.com/lucasb-eyer/go-colorful"; + fetch = { + type = "git"; + url = "https://github.com/lucasb-eyer/go-colorful"; + rev = "231272389856c976b7500c4fffcc52ddf06ff4eb"; + sha256 = "161n224v46mln3swzv0009ffj9fxg2n814l9vqs3zh9dq1dmj0jn"; + }; + } + { + goPackagePath = "github.com/lunixbochs/vtclean"; + fetch = { + type = "git"; + url = "https://github.com/lunixbochs/vtclean"; + rev = "2d01aacdc34a083dca635ba869909f5fc0cd4f41"; + sha256 = "1ss88dyx5hr4imvpg5lixvp0cf7c2qm4x9m8mdgshjpm92g5rqmf"; + }; + } + { + goPackagePath = "github.com/magiconair/properties"; + fetch = { + type = "git"; + url = "https://github.com/magiconair/properties"; + rev = "c3beff4c2358b44d0493c7dda585e7db7ff28ae6"; + sha256 = "04ccjc9nd1wffvw24ixyfw3v5g48zq7pbq1wz1zg9cyqyxy14qgr"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "9e777a8366cce605130a531d2cd6363d07ad7317"; + sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "00c29f56e2386353d58c599509e8dc3801b0d716"; + sha256 = "1vw8fvhax0d567amgvxr7glcl12lvzg2sbzs007q5k5bbwn1szyb"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "acdc4509485b587f5e675510c4f2c63e90ff68a8"; + sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "645ef00459ed84a119197bfb8d8205042c6df63d"; + sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "792786c7400a136282c1664665ae0a8db921c6c2"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/rivo/tview"; + fetch = { + type = "git"; + url = "https://github.com/rivo/tview"; + rev = "f855bee0205c35e6a055b86cc341effea0f446ce"; + sha256 = "0jn9r3gzvm3gr72rb7zz2g8794nnl56l8flqfav00pfk0qiqp8xw"; + }; + } + { + goPackagePath = "github.com/russross/blackfriday"; + fetch = { + type = "git"; + url = "https://github.com/russross/blackfriday"; + rev = "55d61fa8aa702f59229e6cff85793c22e580eaf5"; + sha256 = "0qmavm5d14kj6im6sqzpqnlhpy524428vkn4hnfwknndr9rycmn0"; + }; + } + { + goPackagePath = "github.com/spf13/afero"; + fetch = { + type = "git"; + url = "https://github.com/spf13/afero"; + rev = "63644898a8da0bc22138abf860edaf5277b6102e"; + sha256 = "13piahaq4vw1y1sklq5scrsflqx0a8hzmdqfz1fy4871kf2gl8qw"; + }; + } + { + goPackagePath = "github.com/spf13/cast"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cast"; + rev = "8965335b8c7107321228e3e3702cab9832751bac"; + sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "615425954c3b0d9485a7027d4d451fdcdfdee84e"; + sha256 = "01zsislgc72j86a1zq7xs7xj3lvxjjviz4lgn4144jzgppwanpk6"; + }; + } + { + goPackagePath = "github.com/spf13/jwalterweatherman"; + fetch = { + type = "git"; + url = "https://github.com/spf13/jwalterweatherman"; + rev = "7c0cea34c8ece3fbeb2b27ab9b59511d360fb394"; + sha256 = "132p84i20b9s5r6fs597lsa6648vd415ch7c0d018vm8smzqpd0h"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "583c0c0531f06d5278b7d917446061adc344b5cd"; + sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5"; + }; + } + { + goPackagePath = "github.com/spf13/viper"; + fetch = { + type = "git"; + url = "https://github.com/spf13/viper"; + rev = "15738813a09db5c8e5b60a19d67d3f9bd38da3a4"; + sha256 = "1mjfzg8zvnxckaq6l8gw99i2msrfqn9yr04dc3b7kd5bpxi6zr4v"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "12b6f73e6084dad08a7c6e575284b177ecafbc71"; + sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd"; + }; + } + { + goPackagePath = "github.com/tcnksm/go-gitconfig"; + fetch = { + type = "git"; + url = "https://github.com/tcnksm/go-gitconfig"; + rev = "d154598bacbf4501c095a309753c5d4af66caa81"; + sha256 = "0sz7h383h7ngrqkk35ic37kfvhlk07g4kanps8bnapwczrcm2am9"; + }; + } + { + goPackagePath = "github.com/xanzy/go-gitlab"; + fetch = { + type = "git"; + url = "https://github.com/xanzy/go-gitlab"; + rev = "8d21e61ce4a9b9c7fe645e48672872e9fdb71138"; + sha256 = "1lac57ard1vrd16ri8gfyd0ck8d7xg7zbcjlz90223jp0vc3l8nv"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "e73bf333ef8920dbb52ad18d4bd38ad9d9bc76d7"; + sha256 = "1amcpva20vff8v0lww655icaaf7388ns8xhm859whn4w4v0vanyg"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "f4c29de78a2a91c00474a2e689954305c350adf9"; + sha256 = "02nibjrr1il8sxnr0w1s5fj7gz6ayhg3hsywf948qhc68n5adv8x"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "3d292e4d0cdc3a0113e6d207bb137145ef1de42f"; + sha256 = "0jvivlvx7snacd6abd1prqxa7h1z6b7s6mqahn8lpqlag3asryrl"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "79b0c6888797020a994db17c8510466c72fe75d9"; + sha256 = "0aydjw886c4dwcjg7ssb7xp39ag1529nh3ly1la71rqjr94cjnag"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "b1f26356af11148e710935ed1ac8a7f5702c7612"; + sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183"; + sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1"; + }; + } +] \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix new file mode 100644 index 000000000000..d0d60b193437 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix @@ -0,0 +1,22 @@ +{ stdenv, buildPythonApplication, fetchFromGitHub, pyxdg }: + +buildPythonApplication rec { + pname = "pass-git-helper"; + version = "0.4"; + + src = fetchFromGitHub { + owner = "languitar"; + repo = "pass-git-helper"; + rev = "${version}"; + sha256 = "1zccbmq5l6asl9qm1f90vg9467y3spmv3ayrw07qizrj43yfd9ap"; + }; + + propagatedBuildInputs = [ pyxdg ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/languitar/pass-git-helper"; + description = "A git credential helper interfacing with pass, the standard unix password manager"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ vanzef ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix new file mode 100644 index 000000000000..331b020d8ca7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix @@ -0,0 +1,31 @@ +{ stdenv, python3Packages }: +with python3Packages; buildPythonApplication rec { + pname = "pre_commit"; + version = "1.11.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1kjrq8z78b6aqhyyw07dlwf6cqls88kik6f5l07hs71fj5ddvs9w"; + }; + + propagatedBuildInputs = [ + aspy-yaml + cached-property + cfgv + identify + nodeenv + six + toml + virtualenv + ]; + + # Tests fail due to a missing windll dependency + doCheck = false; + + meta = with stdenv.lib; { + description = "A framework for managing and maintaining multi-language pre-commit hooks"; + homepage = https://pre-commit.com/; + license = licenses.mit; + maintainers = with maintainers; [ borisbabic ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix new file mode 100644 index 000000000000..0a88fbd09291 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, cmake, qtbase }: + +stdenv.mkDerivation rec { + name = "qgit-2.8"; + + src = fetchFromGitHub { + owner = "tibirna"; + repo = "qgit"; + rev = name; + sha256 = "01l6mz2f333x3zbfr68mizwpsh6sdsnadcavpasidiych1m5ry8f"; + }; + + buildInputs = [ qtbase ]; + + nativeBuildInputs = [ cmake ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + license = licenses.gpl2; + homepage = http://libre.tibirna.org/projects/qgit/wiki/QGit; + description = "Graphical front-end to Git"; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtbase.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix new file mode 100644 index 000000000000..4f9a1c4e5442 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, python2, git }: + +let + name = "stgit-${version}"; + version = "0.19"; +in +stdenv.mkDerivation { + inherit name; + + src = fetchFromGitHub { + owner = "ctmarinas"; + repo = "stgit"; + rev = "v${version}"; + sha256 = "1dzl6cnyzwbzysp82x7w1yc03g25kwan3h0zpnzhhfhg6c904sis"; + }; + + buildInputs = [ python2 git ]; + + makeFlags = "prefix=$$out"; + + postInstall = '' + mkdir -p "$out/etc/bash_completion.d/" + ln -s ../../share/stgit/completion/stgit-completion.bash "$out/etc/bash_completion.d/" + ''; + + doCheck = false; + checkTarget = "test"; + + meta = with stdenv.lib; { + description = "A patch manager implemented on top of Git"; + homepage = http://procode.org/stgit/; + license = licenses.gpl2; + maintainers = with maintainers; [ the-kenny ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix new file mode 100644 index 000000000000..7b36a142d15d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, unzip, makeWrapper, jre }: + +stdenv.mkDerivation rec { + name = "subgit-3.2.4"; + + meta = { + description = "A tool for a smooth, stress-free SVN to Git migration"; + longDescription = "Create writable Git mirror of a local or remote Subversion repository and use both Subversion and Git as long as you like. You may also do a fast one-time import from Subversion to Git."; + homepage = http://subgit.com; + license = stdenv.lib.licenses.unfree; + platforms = stdenv.lib.platforms.all; + }; + + nativeBuildInputs = [ unzip makeWrapper ]; + + installPhase = '' + mkdir $out; + cp -r bin lib $out; + wrapProgram $out/bin/subgit --set JAVA_HOME ${jre}; + ''; + + src = fetchurl { + url = "http://subgit.com/download/${name}.zip"; + sha256 = "13r6hi2zk46bs3j17anfc85kszlwliv2yc16qx834b3v4w68hajw"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix new file mode 100644 index 000000000000..0ee188cc19d0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, qmake, qtbase, qttools, subversion, apr }: + +let + version = "1.0.13"; +in +stdenv.mkDerivation { + name = "svn-all-fast-export-${version}"; + + src = fetchFromGitHub { + owner = "svn-all-fast-export"; + repo = "svn2git"; + rev = version; + sha256 = "0f1qj0c4cdq46mz54wcy17g7rq1fy2q0bq3sswhr7r5a2s433x4f"; + }; + + nativeBuildInputs = [ qmake qttools ]; + buildInputs = [ apr.dev subversion.dev qtbase ]; + + qmakeFlags = [ + "VERSION=${version}" + "APR_INCLUDE=${apr.dev}/include/apr-1" + "SVN_INCLUDE=${subversion.dev}/include/subversion-1" + ]; + + NIX_LDFLAGS = [ + "-lsvn_fs-1" + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/svn-all-fast-export/svn2git; + description = "A fast-import based converter for an svn repo to git repos"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix new file mode 100644 index 000000000000..d00fdd0c29e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, ruby, makeWrapper, git }: + +let + version = "2.4.0"; +in +stdenv.mkDerivation { + name = "svn2git-${version}"; + + src = fetchurl { + url = "https://github.com/nirvdrum/svn2git/archive/v${version}.tar.gz"; + sha256 = "0ly2vrv6q31n0xhciwb7a1ilr5c6ndyi3bg81yfp4axiypps7l41"; + }; + + buildInputs = [ ruby makeWrapper ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out + cp -r lib $out/ + + mkdir -p $out/bin + substituteInPlace bin/svn2git --replace '/usr/bin/env ruby' ${ruby}/bin/ruby + cp bin/svn2git $out/bin/ + chmod +x $out/bin/svn2git + + wrapProgram $out/bin/svn2git \ + --set RUBYLIB $out/lib \ + --prefix PATH : ${git}/bin + ''; + + meta = { + homepage = https://github.com/nirvdrum/svn2git; + description = "Tool for importing Subversion repositories into git"; + license = stdenv.lib.licenses.mit; + + maintainers = [ stdenv.lib.maintainers.the-kenny ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix new file mode 100644 index 000000000000..a407f6e7ab12 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchFromGitHub, ncurses, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45 +, readline, makeWrapper, git, libiconv, autoreconfHook, findXMLCatalogs, pkgconfig +}: + +stdenv.mkDerivation rec { + pname = "tig"; + version = "2.4.1"; + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "jonas"; + repo = pname; + rev = name; + sha256 = "0i26yfn2vjgsg1kdvhhv55jwzds7ih7cnad1xqvilqm83zh47ksd"; + }; + + nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkgconfig ]; + + autoreconfFlags = "-I tools -v"; + + buildInputs = [ ncurses readline git ] + ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ]; + + # those files are inherently impure, we'll handle the corresponding dependencies. + postPatch = '' + rm -f contrib/config.make-* + ''; + + enableParallelBuilding = true; + + installPhase = '' + make install + make install-doc + + substituteInPlace contrib/tig-completion.zsh \ + --replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/etc/bash_completion.d/tig-completion.bash" + + install -D contrib/tig-completion.bash $out/etc/bash_completion.d/tig-completion.bash + install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig + cp contrib/vim.tigrc $out/etc/ + + wrapProgram $out/bin/tig \ + --prefix PATH ':' "${git}/bin" + ''; + + meta = with stdenv.lib; { + homepage = https://jonas.github.io/tig/; + description = "Text-mode interface for git"; + maintainers = with maintainers; [ garbas bjornfor domenkozar qknight ]; + license = licenses.gpl2; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix new file mode 100644 index 000000000000..c183bbde7e6b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "topgit-0.9"; + + src = fetchurl { + url = "https://github.com/greenrd/topgit/archive/${name}.tar.gz"; + sha256 = "1z9x42a0cmn8n2n961qcfl522nd6j9a3dpx1jbqfp24ddrk5zd94"; + }; + + configurePhase = "makeFlags=prefix=$out"; + + postInstall = '' + mkdir -p "$out/share/doc/${name}" "$out/etc/bash_completion.d/" + mv README "$out/share/doc/${name}/" + mv contrib/tg-completion.bash "$out/etc/bash_completion.d/" + ''; + + meta = { + homepage = https://github.com/greenrd/topgit; + description = "TopGit manages large amount of interdependent topic branches"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.unix; + maintainers = with stdenv.lib.maintainers; [ marcweber ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix new file mode 100644 index 000000000000..35e9c17438f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, git, makeWrapper, openssl }: + +stdenv.mkDerivation rec { + name = "transcrypt-${version}"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "elasticdog"; + repo = "transcrypt"; + rev = "v${version}"; + sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam"; + }; + + buildInputs = [ git makeWrapper openssl ]; + + installPhase = '' + install -m 755 -D transcrypt $out/bin/transcrypt + install -m 644 -D man/transcrypt.1 $out/share/man/man1/transcrypt.1 + install -m 644 -D contrib/bash/transcrypt $out/share/bash-completion/completions/transcrypt + install -m 644 -D contrib/zsh/_transcrypt $out/share/zsh/site-functions/_transcrypt + + wrapProgram $out/bin/transcrypt \ + --prefix PATH : "${stdenv.lib.makeBinPath [ git openssl ]}" + ''; + + meta = with stdenv.lib; { + description = "Transparently encrypt files within a Git repository"; + longDescription = '' + A script to configure transparent encryption of sensitive files stored in + a Git repository. Files that you choose will be automatically encrypted + when you commit them, and automatically decrypted when you check them + out. The process will degrade gracefully, so even people without your + encryption password can safely commit changes to the repository's + non-encrypted files. + ''; + homepage = https://github.com/elasticdog/transcrypt; + license = licenses.mit; + maintainers = [ maintainers.elasticdog ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix new file mode 100644 index 000000000000..fd999dc17d4d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchFromGitHub, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + name = "git-crecord-${version}"; + version = "20161216.0"; + + src = fetchFromGitHub { + owner = "andrewshadura"; + repo = "git-crecord"; + rev = version; + sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i"; + }; + + propagatedBuildInputs = with pythonPackages; [ docutils ]; + + meta = { + homepage = https://github.com/andrewshadura/git-crecord; + description = "Git subcommand to interactively select changes to commit or stage"; + license = stdenv.lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix new file mode 100644 index 000000000000..3cde046a2adf --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix @@ -0,0 +1,35 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "git-lfs-${version}"; + version = "1.5.6"; + rev = "0d02fb7d9a1c599bbf8c55e146e2845a908e04e0"; + + goPackagePath = "github.com/git-lfs/git-lfs"; + + src = fetchFromGitHub { + inherit rev; + owner = "git-lfs"; + repo = "git-lfs"; + sha256 = "0wddry1lqjccf4522fvhx6grx8h57xsz17lkaf5aybnrgw677w3d"; + }; + + # Tests fail with 'lfstest-gitserver.go:46: main redeclared in this block' + excludedPackages = [ "test" ]; + + preBuild = '' + pushd go/src/github.com/git-lfs/git-lfs + go generate ./commands + popd + ''; + + postInstall = '' + rm -v $bin/bin/{man,script} + ''; + meta = with stdenv.lib; { + description = "Git extension for versioning large files"; + homepage = https://git-lfs.github.com/; + license = [ licenses.mit ]; + maintainers = [ maintainers.twey ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix new file mode 100644 index 000000000000..67c07072d41f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix @@ -0,0 +1,32 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "git-lfs-${version}"; + version = "2.5.2"; + + goPackagePath = "github.com/git-lfs/git-lfs"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "git-lfs"; + repo = "git-lfs"; + sha256 = "1y9l35j59d422v9hsbi117anm5d0177nspiy9r2zbjz3ygd9a4ck"; + }; + + preBuild = '' + pushd go/src/github.com/git-lfs/git-lfs + go generate ./commands + popd + ''; + + postInstall = '' + rm -v $bin/bin/{man,script,cmd} + ''; + + meta = with stdenv.lib; { + description = "Git extension for versioning large files"; + homepage = https://git-lfs.github.com/; + license = [ licenses.mit ]; + maintainers = [ maintainers.twey ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix new file mode 100644 index 000000000000..b629c8fe9109 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, makeWrapper +, python, git, gnupg, less, cacert +}: + +stdenv.mkDerivation rec { + name = "git-repo-${version}"; + version = "1.13.2"; + + src = fetchFromGitHub { + owner = "android"; + repo = "tools_repo"; + rev = "v${version}"; + sha256 = "0ll1yzwgpayps7c05j8kf1m4zvww7crmlyy7xa0w5g2krbjvjzvi"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ python ]; + + patchPhase = '' + substituteInPlace repo --replace \ + 'urllib.request.urlopen(url)' \ + 'urllib.request.urlopen(url, cafile="${cacert}/etc/ssl/certs/ca-bundle.crt")' + ''; + + installPhase = '' + mkdir -p $out/bin + cp repo $out/bin/repo + ''; + + # Important runtime dependencies + postFixup = '' + wrapProgram $out/bin/repo --prefix PATH ":" \ + "${stdenv.lib.makeBinPath [ git gnupg less ]}" + ''; + + meta = with stdenv.lib; { + description = "Android's repo management tool"; + longDescription = '' + Repo is a Python script based on Git that helps manage many Git + repositories, does the uploads to revision control systems, and automates + parts of the development workflow. Repo is not meant to replace Git, only + to make it easier to work with Git. + ''; + homepage = https://android.googlesource.com/tools/repo; + license = licenses.asl20; + maintainers = [ maintainers.primeos ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/nixpkgs/pkgs/applications/version-management/git-review/default.nix new file mode 100644 index 000000000000..101770da8885 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-review/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pythonPackages} : + +pythonPackages.buildPythonApplication rec { + name = "git-review-${version}"; + version = "1.27.0"; + + # Manually set version because prb wants to get it from the git + # upstream repository (and we are installing from tarball instead) + PBR_VERSION = "${version}"; + + postPatch = '' + sed -i -e '/argparse/d' requirements.txt + ''; + + src = fetchurl rec { + url = "https://github.com/openstack-infra/git-review/archive/${version}.tar.gz"; + sha256 = "0smdkps9avnj58izyfc5m0amq8nafgs9iqlyaf7ncrlvypia1f3q"; + }; + + propagatedBuildInputs = with pythonPackages; [ pbr requests setuptools ]; + + # Don't do tests because they require gerrit which is not packaged + doCheck = false; + + meta = { + homepage = https://github.com/openstack-infra/git-review; + description = "Tool to submit code to Gerrit"; + license = stdenv.lib.licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix new file mode 100644 index 000000000000..9c5ab20d364f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "git-sizer"; + name = "${pname}-${version}"; + version = "1.0.0"; + + goPackagePath = "github.com/github/git-sizer"; + + src = fetchFromGitHub { + owner = "github"; + repo = pname; + rev = "v${version}"; + sha256 = "11rvqpsyl41ph0fgm62k5q2p33zgnwj1jd91rd4lkaarpcd1sg5h"; + }; + + meta = with lib; { + description = "Compute various size metrics for a Git repository"; + license = licenses.mit; + maintainers = with maintainers; [ matthewbauer ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-up/default.nix b/nixpkgs/pkgs/applications/version-management/git-up/default.nix new file mode 100644 index 000000000000..45c97868c4bf --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-up/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, python2Packages, git }: + +python2Packages.buildPythonApplication rec { + version = "1.4.2"; + name = "git-up-${version}"; + + src = fetchurl { + url = "mirror://pypi/g/git-up/${name}.zip"; + sha256 = "121ia5gyjy7js6fbsx9z98j2qpq7rzwpsj8gnfvsbz2d69g0vl7q"; + }; + + buildInputs = [ git ] ++ (with python2Packages; [ nose ]); + propagatedBuildInputs = with python2Packages; [ click colorama docopt GitPython six termcolor ]; + + # 1. git fails to run as it cannot detect the email address, so we set it + # 2. $HOME is by default not a valid dir, so we have to set that too + # https://github.com/NixOS/nixpkgs/issues/12591 + preCheck = '' + export HOME=$TMPDIR + git config --global user.email "nobody@example.com" + git config --global user.name "Nobody" + ''; + + postInstall = '' + rm -r $out/${python2Packages.python.sitePackages}/PyGitUp/tests + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/msiemens/PyGitUp; + description = "A git pull replacement that rebases all local branches when pulling."; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.all; + broken = true; # Incompatible with Git 2.15 object store. + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix new file mode 100644 index 000000000000..366314490966 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix @@ -0,0 +1,63 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper +, git, bash, gzip, openssh +, sqliteSupport ? true +}: + +with stdenv.lib; + +buildGoPackage rec { + name = "gitea-${version}"; + version = "1.7.1"; + + src = fetchFromGitHub { + owner = "go-gitea"; + repo = "gitea"; + rev = "v${version}"; + sha256 = "1r13l7h4146729lwif45bkzn36sgg6an0qbhgvj8w3zp035c00k3"; + # Required to generate the same checksum on MacOS due to unicode encoding differences + # More information: https://github.com/NixOS/nixpkgs/pull/48128 + extraPostFetch = '' + rm -rf $out/integrations + rm -rf $out/vendor/github.com/Unknown/cae/tz/testdata + rm -rf $out/vendor/github.com/Unknown/cae/zip/testdata + rm -rf $out/vendor/gopkg.in/macaron.v1/fixtures + ''; + }; + + patches = [ ./static-root-path.patch ]; + + postPatch = '' + patchShebangs . + substituteInPlace modules/setting/setting.go --subst-var data + ''; + + nativeBuildInputs = [ makeWrapper ]; + + buildFlags = optional sqliteSupport "-tags sqlite"; + buildFlagsArray = '' + -ldflags= + -X=main.Version=${version} + ${optionalString sqliteSupport "-X=main.Tags=sqlite"} + ''; + + outputs = [ "bin" "out" "data" ]; + + postInstall = '' + mkdir $data + cp -R $src/{public,templates,options} $data + mkdir -p $out + cp -R $src/options/locale $out/locale + + wrapProgram $bin/bin/gitea \ + --prefix PATH : ${makeBinPath [ bash git gzip openssh ]} + ''; + + goPackagePath = "code.gitea.io/gitea"; + + meta = { + description = "Git with a cup of tea"; + homepage = https://gitea.io; + license = licenses.mit; + maintainers = [ maintainers.disassembler ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch new file mode 100644 index 000000000000..7c36afdff84c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch @@ -0,0 +1,13 @@ +diff --git i/modules/setting/setting.go w/modules/setting/setting.go +index aafe2d1b..1e4a8064 100644 +--- i/modules/setting/setting.go ++++ w/modules/setting/setting.go +@@ -730,7 +730,7 @@ func NewContext() { + LocalURL = sec.Key("LOCAL_ROOT_URL").MustString(defaultLocalURL) + OfflineMode = sec.Key("OFFLINE_MODE").MustBool() + DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool() +- StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(AppWorkPath) ++ StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@") + AppDataPath = sec.Key("APP_DATA_PATH").MustString(path.Join(AppWorkPath, "data")) + EnableGzip = sec.Key("ENABLE_GZIP").MustBool() + EnablePprof = sec.Key("ENABLE_PPROF").MustBool(false) diff --git a/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix b/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix new file mode 100644 index 000000000000..2428c6cebddd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchzip, python2Packages}: + +python2Packages.buildPythonApplication rec { + name = "gitinspector-${version}"; + version = "0.4.4"; + namePrefix = ""; + + src = fetchzip { + url = "https://github.com/ejwa/gitinspector/archive/v${version}.tar.gz"; + sha256 = "1pfsw6xldm6jigs3nhysvqaxk8a0zf8zczgfkrp920as9sya3c7m"; + name = name + "-src"; + }; + + checkInputs = with python2Packages; [ + unittest2 + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/ejwa/gitinspector; + description = "Statistical analysis tool for git repositories"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix new file mode 100644 index 000000000000..664ef62be549 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix @@ -0,0 +1,108 @@ +{ stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsaLib +, libXfixes, atk, gtk3, libXrender, pango, gnome2, cairo, freetype, fontconfig +, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst +, nss, nspr, cups, fetchurl, expat, gdk_pixbuf, libXdamage, libXrandr, dbus +, dpkg, makeDesktopItem, openssl +}: + +with stdenv.lib; + +let + curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; }; +in +stdenv.mkDerivation rec { + name = "gitkraken-${version}"; + version = "4.2.1"; + + src = fetchurl { + url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb"; + sha256 = "07f9h3276bs7m22vwpxrxmlwnq7l5inr2l67nmpiaz1569yabwsg"; + }; + + libPath = makeLibraryPath [ + stdenv.cc.cc.lib + curlWithGnuTls + udev + libX11 + libXext + libXcursor + libXi + libxcb + glib + libXScrnSaver + libxkbfile + libXtst + nss + nspr + cups + alsaLib + expat + gdk_pixbuf + dbus + libXdamage + libXrandr + atk + pango + cairo + freetype + fontconfig + libXcomposite + libXfixes + libXrender + gtk3 + gnome2.GConf + libgnome-keyring + openssl + ]; + + desktopItem = makeDesktopItem { + name = "gitkraken"; + exec = "gitkraken"; + icon = "gitkraken"; + desktopName = "GitKraken"; + genericName = "Git Client"; + categories = "Application;Development;"; + comment = "Graphical Git client from Axosoft"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ dpkg ]; + + unpackCmd = '' + mkdir out + dpkg -x $curSrc out + ''; + + installPhase = '' + mkdir $out + pushd usr + pushd share + substituteInPlace applications/gitkraken.desktop \ + --replace /usr/share/gitkraken $out/bin \ + --replace Icon=app Icon=gitkraken + mv pixmaps/app.png pixmaps/gitkraken.png + popd + rm -rf bin/gitkraken share/lintian + cp -av share bin $out/ + popd + ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken + ''; + + postFixup = '' + pushd $out/share/gitkraken + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" gitkraken + + for file in $(find . -type f \( -name \*.node -o -name gitkraken -o -name \*.so\* \) ); do + patchelf --set-rpath ${libPath}:$out/share/gitkraken $file || true + done + popd + ''; + + meta = { + homepage = https://www.gitkraken.com/; + description = "The downright luxurious and most popular Git client for Windows, Mac & Linux"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ xnwdd ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json new file mode 100644 index 000000000000..b5a5a9feb76b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json @@ -0,0 +1,32 @@ +{ + "ce": { + "version": "11.7.4", + "repo_hash": "0qq9snykdlpkpbznwpkv0n7bz1rsgz4z7lcjl4xkjxkf2gkf8pxp", + "deb_hash": "1j76jya0ydyg7v3vcdfjmcr5ir23yzdwmg9fxlirvgh74py7q85c", + "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_11.7.4-ce.0_amd64.deb/download.deb", + "owner": "gitlab-org", + "repo": "gitlab-ce", + "rev": "v11.7.4", + "passthru": { + "GITALY_SERVER_VERSION": "1.12.2", + "GITLAB_PAGES_VERSION": "1.3.1", + "GITLAB_SHELL_VERSION": "8.4.4", + "GITLAB_WORKHORSE_VERSION": "8.0.1" + } + }, + "ee": { + "version": "11.7.4", + "repo_hash": "0riqww094ylbbwb9mhjpsqhrdpxlcf6rc5p796p7x7f46p31mcjb", + "deb_hash": "02hnhhyrm4a3lgwnl399byka2dr5q3pjirki447373270ca93h5i", + "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_11.7.4-ee.0_amd64.deb/download.deb", + "owner": "gitlab-org", + "repo": "gitlab-ee", + "rev": "v11.7.4-ee", + "passthru": { + "GITALY_SERVER_VERSION": "1.12.2", + "GITLAB_PAGES_VERSION": "1.3.1", + "GITLAB_SHELL_VERSION": "8.4.4", + "GITLAB_WORKHORSE_VERSION": "8.0.1" + } + } +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix new file mode 100644 index 000000000000..2ffe1141b5a0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix @@ -0,0 +1,115 @@ +{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv +, ruby, tzdata, git, procps, nettools +, gitlabEnterprise ? false +}: + +let + rubyEnv = bundlerEnv { + name = "gitlab-env-${version}"; + inherit ruby; + gemdir = ./rubyEnv- + "${if gitlabEnterprise then "ee" else "ce"}"; + groups = [ "default" "unicorn" "ed25519" "metrics" ]; + }; + + flavour = if gitlabEnterprise then "ee" else "ce"; + data = (builtins.fromJSON (builtins.readFile ./data.json)).${flavour}; + + version = data.version; + sources = { + gitlab = fetchFromGitLab { + owner = data.owner; + repo = data.repo; + rev = data.rev; + sha256 = data.repo_hash; + }; + gitlabDeb = fetchurl { + url = data.deb_url; + sha256 = data.deb_hash; + }; + }; +in + +stdenv.mkDerivation rec { + name = "gitlab${if gitlabEnterprise then "-ee" else ""}-${version}"; + + src = sources.gitlab; + + buildInputs = [ + rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git procps nettools + ]; + + patches = [ ./remove-hardcoded-locations.patch ]; + + postPatch = '' + # For reasons I don't understand "bundle exec" ignores the + # RAILS_ENV causing tests to be executed that fail because we're + # not installing development and test gems above. Deleting the + # tests works though.: + rm lib/tasks/test.rake + + rm config/initializers/gitlab_shell_secret_token.rb + + substituteInPlace app/controllers/admin/background_jobs_controller.rb \ + --replace "ps -U" "${procps}/bin/ps -U" + + sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake + sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb + ''; + + buildPhase = '' + mv config/gitlab.yml.example config/gitlab.yml + + # Building this requires yarn, node &c, so we just get it from the deb + ar p ${sources.gitlabDeb} data.tar.gz | gunzip > gitlab-deb-data.tar + # Work around unpacking deb containing binary with suid bit + tar -f gitlab-deb-data.tar --delete ./opt/gitlab/embedded/bin/ksu + tar -xf gitlab-deb-data.tar + + mv -v opt/gitlab/embedded/service/gitlab-rails/public/assets public + rm -rf opt # only directory in data.tar.gz + + mv config/gitlab.yml config/gitlab.yml.example + rm -f config/secrets.yml + mv config config.dist + ''; + + installPhase = '' + rm -r tmp + mkdir -p $out/share + cp -r . $out/share/gitlab + rm -rf $out/share/gitlab/log + ln -sf /run/gitlab/log $out/share/gitlab/log + ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads + ln -sf /run/gitlab/config $out/share/gitlab/config + ln -sf /run/gitlab/tmp $out/share/gitlab/tmp + + # rake tasks to mitigate CVE-2017-0882 + # see https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/ + cp ${./reset_token.rake} $out/share/gitlab/lib/tasks/reset_token.rake + ''; + + passthru = { + inherit rubyEnv; + ruby = rubyEnv.wrappedRuby; + GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION; + GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION; + GITLAB_SHELL_VERSION = data.passthru.GITLAB_SHELL_VERSION; + GITLAB_WORKHORSE_VERSION = data.passthru.GITLAB_WORKHORSE_VERSION; + }; + + meta = with lib; { + homepage = http://www.gitlab.com/; + platforms = platforms.linux; + maintainers = with maintainers; [ fpletz globin krav ]; + } // (if gitlabEnterprise then + { + license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE + description = "GitLab Enterprise Edition"; + } + else + { + license = licenses.mit; + description = "GitLab Community Edition"; + longDescription = "GitLab Community Edition (CE) is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab CE on your own servers, in a container, or on a cloud provider."; + }); +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile new file mode 100644 index 000000000000..81f1864099f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile @@ -0,0 +1,30 @@ +source 'https://rubygems.org' + +# Require bundler >= 1.16.5 to avoid this bug: https://github.com/bundler/bundler/issues/6537 +gem 'bundler', '>= 1.16.5' + +gem 'rugged', '~> 0.27' +gem 'github-linguist', '~> 6.1', require: 'linguist' +gem 'gitlab-markup', '~> 1.6.5' +gem 'gitaly-proto', '~> 1.3.0' +gem 'activesupport', '~> 5.0.2' +gem 'rdoc', '~> 4.2' +gem 'gitlab-gollum-lib', '~> 4.2', require: false +gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false +gem 'grpc', '~> 1.15.0' +gem 'sentry-raven', '~> 2.7.2', require: false +gem 'faraday', '~> 0.12' + +# Detects the open source license the repository includes +# This version needs to be in sync with GitLab CE/EE +gem 'licensee', '~> 8.9.0' + +gem 'google-protobuf', '~> 3.6' + +group :development, :test do + gem 'rubocop', '~> 0.50', require: false + gem 'rspec', require: false + gem 'rspec-parameterized', require: false + gem 'timecop', require: false + gem 'factory_bot', require: false +end diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock new file mode 100644 index 000000000000..59f8ad69f223 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock @@ -0,0 +1,171 @@ +GEM + remote: https://rubygems.org/ + specs: + abstract_type (0.0.7) + activesupport (5.0.7) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + adamantium (0.2.0) + ice_nine (~> 0.11.0) + memoizable (~> 0.4.0) + ast (2.4.0) + binding_of_caller (0.8.0) + debug_inspector (>= 0.0.1) + charlock_holmes (0.7.6) + coderay (1.1.2) + concord (0.1.5) + adamantium (~> 0.2.0) + equalizer (~> 0.0.9) + concurrent-ruby (1.1.3) + crass (1.0.4) + debug_inspector (0.0.3) + diff-lcs (1.3) + equalizer (0.0.11) + escape_utils (1.2.1) + factory_bot (4.11.1) + activesupport (>= 3.0.0) + faraday (0.15.3) + multipart-post (>= 1.2, < 3) + gemojione (3.3.0) + json + gitaly-proto (1.3.0) + grpc (~> 1.0) + github-linguist (6.2.0) + charlock_holmes (~> 0.7.6) + escape_utils (~> 1.2.0) + mime-types (>= 1.19) + rugged (>= 0.25.1) + github-markup (1.7.0) + gitlab-gollum-lib (4.2.7.5) + gemojione (~> 3.2) + github-markup (~> 1.6) + gollum-grit_adapter (~> 1.0) + nokogiri (>= 1.6.1, < 2.0) + rouge (~> 3.1) + sanitize (~> 4.6.4) + stringex (~> 2.6) + gitlab-gollum-rugged_adapter (0.4.4.1) + mime-types (>= 1.15) + rugged (~> 0.25) + gitlab-grit (2.8.2) + charlock_holmes (~> 0.6) + diff-lcs (~> 1.1) + mime-types (>= 1.16) + posix-spawn (~> 0.3) + gitlab-markup (1.6.5) + gollum-grit_adapter (1.0.1) + gitlab-grit (~> 2.7, >= 2.7.1) + google-protobuf (3.6.1) + googleapis-common-protos-types (1.0.2) + google-protobuf (~> 3.0) + grpc (1.15.0) + google-protobuf (~> 3.1) + googleapis-common-protos-types (~> 1.0.0) + i18n (1.1.1) + concurrent-ruby (~> 1.0) + ice_nine (0.11.2) + json (2.1.0) + licensee (8.9.2) + rugged (~> 0.24) + memoizable (0.4.2) + thread_safe (~> 0.3, >= 0.3.1) + mime-types (3.2.2) + mime-types-data (~> 3.2015) + mime-types-data (3.2018.0812) + mini_portile2 (2.3.0) + minitest (5.11.3) + multipart-post (2.0.0) + nokogiri (1.8.5) + mini_portile2 (~> 2.3.0) + nokogumbo (1.5.0) + nokogiri + parallel (1.12.1) + parser (2.5.3.0) + ast (~> 2.4.0) + posix-spawn (0.3.13) + powerpack (0.1.2) + proc_to_ast (0.1.0) + coderay + parser + unparser + procto (0.0.3) + rainbow (3.0.0) + rdoc (4.3.0) + rouge (3.3.0) + rspec (3.7.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-core (3.7.1) + rspec-support (~> 3.7.0) + rspec-expectations (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-mocks (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-parameterized (0.4.0) + binding_of_caller + parser + proc_to_ast + rspec (>= 2.13, < 4) + unparser + rspec-support (3.7.1) + rubocop (0.54.0) + parallel (~> 1.10) + parser (>= 2.5) + powerpack (~> 0.1) + rainbow (>= 2.2.2, < 4.0) + ruby-progressbar (~> 1.7) + unicode-display_width (~> 1.0, >= 1.0.1) + ruby-progressbar (1.10.0) + rugged (0.27.5) + sanitize (4.6.6) + crass (~> 1.0.2) + nokogiri (>= 1.4.4) + nokogumbo (~> 1.4) + sentry-raven (2.7.2) + faraday (>= 0.7.6, < 1.0) + stringex (2.8.4) + thread_safe (0.3.6) + timecop (0.9.1) + tzinfo (1.2.5) + thread_safe (~> 0.1) + unicode-display_width (1.4.0) + unparser (0.2.8) + abstract_type (~> 0.0.7) + adamantium (~> 0.2.0) + concord (~> 0.1.5) + diff-lcs (~> 1.3) + equalizer (~> 0.0.9) + parser (>= 2.3.1.2, < 2.6) + procto (~> 0.0.2) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 5.0.2) + bundler (>= 1.16.5) + factory_bot + faraday (~> 0.12) + gitaly-proto (~> 1.3.0) + github-linguist (~> 6.1) + gitlab-gollum-lib (~> 4.2) + gitlab-gollum-rugged_adapter (~> 0.4.4) + gitlab-markup (~> 1.6.5) + google-protobuf (~> 3.6) + grpc (~> 1.15.0) + licensee (~> 8.9.0) + rdoc (~> 4.2) + rspec + rspec-parameterized + rubocop (~> 0.50) + rugged (~> 0.27) + sentry-raven (~> 2.7.2) + timecop + +BUNDLED WITH + 1.17.1 diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix new file mode 100644 index 000000000000..349b75f19347 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitLab, buildGoPackage, ruby, bundlerEnv }: + +let + rubyEnv = bundlerEnv { + name = "gitaly-env"; + inherit ruby; + gemdir = ./.; + }; +in buildGoPackage rec { + version = "1.12.2"; + name = "gitaly-${version}"; + + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitaly"; + rev = "v${version}"; + sha256 = "0pg3pm34jnssvh8m99d6w3ap1kn6kn3akqaa17zxv9y0xryvchpy"; + }; + + goPackagePath = "gitlab.com/gitlab-org/gitaly"; + + passthru = { + inherit rubyEnv; + }; + + buildInputs = [ rubyEnv.wrappedRuby ]; + + postInstall = '' + mkdir -p $ruby + cp -rv $src/ruby/{bin,lib} $ruby + ''; + + outputs = [ "bin" "out" "ruby" ]; + + meta = with stdenv.lib; { + homepage = http://www.gitlab.com/; + platforms = platforms.unix; + maintainers = with maintainers; [ roblabla ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix new file mode 100644 index 000000000000..c06be7891ffb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix @@ -0,0 +1,563 @@ +{ + abstract_type = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14"; + type = "gem"; + }; + version = "0.0.7"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yx73l984y3ri5ndj37l1dfarcdvbhra7vhz9fcww4za24is95d5"; + type = "gem"; + }; + version = "5.0.7"; + }; + adamantium = { + dependencies = ["ice_nine" "memoizable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak"; + type = "gem"; + }; + version = "0.2.0"; + }; + ast = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; + type = "gem"; + }; + version = "2.4.0"; + }; + binding_of_caller = { + dependencies = ["debug_inspector"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g"; + type = "gem"; + }; + version = "0.8.0"; + }; + charlock_holmes = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5"; + type = "gem"; + }; + version = "0.7.6"; + }; + coderay = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + concord = { + dependencies = ["adamantium" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg"; + type = "gem"; + }; + version = "0.1.5"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb"; + type = "gem"; + }; + version = "1.1.3"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + debug_inspector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0"; + type = "gem"; + }; + version = "0.0.3"; + }; + diff-lcs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; + }; + version = "1.3"; + }; + equalizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; + type = "gem"; + }; + version = "0.0.11"; + }; + escape_utils = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5"; + type = "gem"; + }; + version = "1.2.1"; + }; + factory_bot = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13q1b7imb591068plg4ashgsqgzarvfjz6xxn3jk6klzikz5zhg1"; + type = "gem"; + }; + version = "4.11.1"; + }; + faraday = { + dependencies = ["multipart-post"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52"; + type = "gem"; + }; + version = "0.15.3"; + }; + gemojione = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + type = "gem"; + }; + version = "3.3.0"; + }; + gitaly-proto = { + dependencies = ["grpc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17fg29j089k94ssim9hfzpd5lycvhimbpvz12d73ywrbwz7a7680"; + type = "gem"; + }; + version = "1.3.0"; + }; + github-linguist = { + dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fs0i5xxsl91hnfa17ipk8cwxrg84kjg9mzxvxkd4ykldfdp353y"; + type = "gem"; + }; + version = "6.2.0"; + }; + github-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp"; + type = "gem"; + }; + version = "1.7.0"; + }; + gitlab-gollum-lib = { + dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15h6a7lsfkm967d5dhjlbcm2lnl1l9akzvaq92qlxq40r5apw0kn"; + type = "gem"; + }; + version = "4.2.7.5"; + }; + gitlab-gollum-rugged_adapter = { + dependencies = ["mime-types" "rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "092i02k3kd4ghk1h1l5yrvi9b180dgfxrvwni26facb2kc9f3wbi"; + type = "gem"; + }; + version = "0.4.4.1"; + }; + gitlab-grit = { + dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xgs3l81ghlc5nm75n0pz7b2cj3hpscfq5iy27c483nnjn2v5mc4"; + type = "gem"; + }; + version = "2.8.2"; + }; + gitlab-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12lzzhbmid4m23pk7d963n3njli2hw7g200arszh75j57bjgs4fy"; + type = "gem"; + }; + version = "1.6.5"; + }; + gollum-grit_adapter = { + dependencies = ["gitlab-grit"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b"; + type = "gem"; + }; + version = "1.0.1"; + }; + google-protobuf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf"; + type = "gem"; + }; + version = "3.6.1"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq"; + type = "gem"; + }; + version = "1.0.2"; + }; + grpc = { + dependencies = ["google-protobuf" "googleapis-common-protos-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb"; + type = "gem"; + }; + version = "1.15.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gcp1m1p6dpasycfz2sj82ci9ggz7lsskz9c9q6gvfwxrl8y9dx7"; + type = "gem"; + }; + version = "1.1.1"; + }; + ice_nine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x"; + type = "gem"; + }; + version = "0.11.2"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp"; + type = "gem"; + }; + version = "2.1.0"; + }; + licensee = { + dependencies = ["rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc"; + type = "gem"; + }; + version = "8.9.2"; + }; + memoizable = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"; + type = "gem"; + }; + version = "0.4.2"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk"; + type = "gem"; + }; + version = "3.2.2"; + }; + mime-types-data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc"; + type = "gem"; + }; + version = "3.2018.0812"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + multipart-post = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + type = "gem"; + }; + version = "2.0.0"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; + type = "gem"; + }; + version = "1.8.5"; + }; + nokogumbo = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj"; + type = "gem"; + }; + version = "1.5.0"; + }; + parallel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"; + type = "gem"; + }; + version = "1.12.1"; + }; + parser = { + dependencies = ["ast"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f"; + type = "gem"; + }; + version = "2.5.3.0"; + }; + posix-spawn = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw"; + type = "gem"; + }; + version = "0.3.13"; + }; + powerpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv"; + type = "gem"; + }; + version = "0.1.2"; + }; + proc_to_ast = { + dependencies = ["coderay" "parser" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj"; + type = "gem"; + }; + version = "0.1.0"; + }; + procto = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c"; + type = "gem"; + }; + version = "0.0.3"; + }; + rainbow = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; + type = "gem"; + }; + version = "3.0.0"; + }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c"; + type = "gem"; + }; + version = "4.3.0"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql"; + type = "gem"; + }; + version = "3.3.0"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-parameterized = { + dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0"; + type = "gem"; + }; + version = "0.4.0"; + }; + rspec-support = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1"; + type = "gem"; + }; + version = "3.7.1"; + }; + rubocop = { + dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is"; + type = "gem"; + }; + version = "0.54.0"; + }; + ruby-progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk"; + type = "gem"; + }; + version = "1.10.0"; + }; + rugged = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6"; + type = "gem"; + }; + version = "0.27.5"; + }; + sanitize = { + dependencies = ["crass" "nokogiri" "nokogumbo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv"; + type = "gem"; + }; + version = "4.6.6"; + }; + sentry-raven = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yf2gysjw6sy1xcp2jw35z9cp83pwx33lq0qyvaqbs969j4993r4"; + type = "gem"; + }; + version = "2.7.2"; + }; + stringex = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c5dfrjzkskzfsdvwsviq4111rwwpbk9022nxwdidz014mky5vi1"; + type = "gem"; + }; + version = "2.8.4"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + timecop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp"; + type = "gem"; + }; + version = "0.9.1"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + unicode-display_width = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57"; + type = "gem"; + }; + version = "1.4.0"; + }; + unparser = { + dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rh1649846ac17av30x0b0v9l45v0x1j2y1i8m1a7xdd0v4sld0z"; + type = "gem"; + }; + version = "0.2.8"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix new file mode 100644 index 000000000000..895e1e13bec8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix @@ -0,0 +1,45 @@ +{ stdenv, ruby, bundler, fetchFromGitLab, go }: + +stdenv.mkDerivation rec { + version = "8.4.4"; + name = "gitlab-shell-${version}"; + + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-shell"; + rev = "v${version}"; + sha256 = "1a6p13g38f4gqqfjgymcvf09k4mnr2bfpj8mqz0x6rz7q67lllcq"; + }; + + buildInputs = [ ruby bundler go ]; + + patches = [ ./remove-hardcoded-locations.patch ]; + + installPhase = '' + ruby bin/compile + mkdir -p $out/ + cp -R . $out/ + + # Nothing to install ATM for non-development but keeping the + # install command anyway in case that changes in the future: + export HOME=$(pwd) + bundle install -j4 --verbose --local --deployment --without development test + ''; + + # gitlab-shell will try to read its config relative to the source + # code by default which doesn't work in nixos because it's a + # read-only filesystem + postPatch = '' + substituteInPlace lib/gitlab_config.rb --replace \ + "File.join(ROOT_PATH, 'config.yml')" \ + "'/run/gitlab/shell-config.yml'" + ''; + + meta = with stdenv.lib; { + description = "SSH access and repository management app for GitLab"; + homepage = http://www.gitlab.com/; + platforms = platforms.unix; + maintainers = with maintainers; [ fpletz globin ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch new file mode 100644 index 000000000000..7819c863a359 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch @@ -0,0 +1,58 @@ +diff --git a/go/internal/config/config.go b/go/internal/config/config.go +index 435cb29..078c1df 100644 +--- a/go/internal/config/config.go ++++ b/go/internal/config/config.go +@@ -2,7 +2,6 @@ package config + + import ( + "io/ioutil" +- "os" + "path" + + yaml "gopkg.in/yaml.v2" +@@ -26,16 +25,13 @@ type Config struct { + } + + func New() (*Config, error) { +- dir, err := os.Getwd() +- if err != nil { +- return nil, err +- } ++ dir := "/run/gitlab" + + return NewFromDir(dir) + } + + func NewFromDir(dir string) (*Config, error) { +- return newFromFile(path.Join(dir, configFile)) ++ return newFromFile("/run/gitlab/shell-config.yml") + } + + func newFromFile(filename string) (*Config, error) { +diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb +index 57c70f5..700569b 100644 +--- a/lib/gitlab_shell.rb ++++ b/lib/gitlab_shell.rb +@@ -187,7 +187,8 @@ class GitlabShell # rubocop:disable Metrics/ClassLength + + args = [executable, gitaly_address, json_args] + # 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 +diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb +index 0600a18..6814f0a 100644 +--- a/lib/gitlab_keys.rb ++++ b/lib/gitlab_keys.rb +@@ -10,7 +10,7 @@ class GitlabKeys # rubocop:disable Metrics/ClassLength + attr_accessor :auth_file, :key + + def self.command(whatever) +- "#{ROOT_PATH}/bin/gitlab-shell #{whatever}" ++ "/run/current-system/sw/bin/gitlab-shell #{whatever}" + end + + def self.command_key(key_id) diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix new file mode 100644 index 000000000000..96ea361a2548 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitLab, git, go }: + +stdenv.mkDerivation rec { + name = "gitlab-workhorse-${version}"; + + version = "8.0.1"; + + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-workhorse"; + rev = "v${version}"; + sha256 = "1aslcadag1q2rdirf9m0dl5vfaz8v3yy1232mvyjyvy1wb51pf4q"; + }; + + buildInputs = [ git go ]; + + makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" ]; + + meta = with stdenv.lib; { + homepage = http://www.gitlab.com/; + platforms = platforms.unix; + maintainers = with maintainers; [ fpletz globin ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch new file mode 100644 index 000000000000..7a2bfea0c109 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch @@ -0,0 +1,152 @@ +diff --git a/config/environments/production.rb b/config/environments/production.rb +index c5cbfcf64c..4d01f6fab8 100644 +--- a/config/environments/production.rb ++++ b/config/environments/production.rb +@@ -70,10 +70,10 @@ Rails.application.configure do + + config.action_mailer.delivery_method = :sendmail + # Defaults to: +- # # config.action_mailer.sendmail_settings = { +- # # location: '/usr/sbin/sendmail', +- # # arguments: '-i -t' +- # # } ++ config.action_mailer.sendmail_settings = { ++ location: '/usr/sbin/sendmail', ++ arguments: '-i -t' ++ } + config.action_mailer.perform_deliveries = true + config.action_mailer.raise_delivery_errors = true + +diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example +index bd696a7f2c..44e3863736 100644 +--- a/config/gitlab.yml.example ++++ b/config/gitlab.yml.example +@@ -590,7 +590,7 @@ production: &base + # CAUTION! + # Use the default values unless you really know what you are doing + git: +- bin_path: /usr/bin/git ++ bin_path: git + + ## Webpack settings + # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running +diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb +index 0bea8a4f4b..290248547b 100644 +--- a/config/initializers/1_settings.rb ++++ b/config/initializers/1_settings.rb +@@ -255,7 +255,7 @@ Settings.gitlab['user'] ||= 'git' + Settings.gitlab['user_home'] ||= begin + Etc.getpwnam(Settings.gitlab['user']).dir + rescue ArgumentError # no user configured +- '/home/' + Settings.gitlab['user'] ++ '/homeless-shelter' + end + Settings.gitlab['time_zone'] ||= nil + Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil? +@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil + # Git + # + Settings['git'] ||= Settingslogic.new({}) +-Settings.git['bin_path'] ||= '/usr/bin/git' ++Settings.git['bin_path'] ||= 'git' + + # Important: keep the satellites.path setting until GitLab 9.0 at + # least. This setting is fed to 'rm -rf' in +diff --git a/lib/api/api.rb b/lib/api/api.rb +index e953f3d2ec..3a8d9f076b 100644 +--- a/lib/api/api.rb ++++ b/lib/api/api.rb +@@ -2,7 +2,7 @@ module API + class API < Grape::API + include APIGuard + +- LOG_FILENAME = Rails.root.join("log", "api_json.log") ++ LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log") + + NO_SLASH_URL_PART_REGEX = %r{[^/]+} + PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze +diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb +index a42e312b5d..ccaab9229e 100644 +--- a/lib/gitlab/logger.rb ++++ b/lib/gitlab/logger.rb +@@ -26,7 +26,7 @@ module Gitlab + end + + def self.full_log_path +- Rails.root.join("log", file_name) ++ File.join(ENV["GITLAB_LOG_PATH"], file_name) + end + + def self.cache_key +diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb +index 7d7400bdab..cb25211d44 100644 +--- a/lib/gitlab/uploads_transfer.rb ++++ b/lib/gitlab/uploads_transfer.rb +@@ -1,7 +1,7 @@ + module Gitlab + class UploadsTransfer < ProjectTransfer + def root_dir +- FileUploader.root ++ ENV['GITLAB_UPLOADS_PATH'] || FileUploader.root + end + end + end +diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb +index 3e0c436d6e..28cefc5514 100644 +--- a/lib/system_check/app/log_writable_check.rb ++++ b/lib/system_check/app/log_writable_check.rb +@@ -21,7 +21,7 @@ module SystemCheck + private + + def 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..c56e1f7ed9 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?' + + def check? +- File.directory?(Rails.root.join('public/uploads')) ++ File.directory?(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')) + end + + def show_error ++ uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') + try_fixing_it( +- "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads" ++ "sudo -u #{gitlab_user} mkdir #{uploads_dir}" + ) + for_more_information( + see_installation_guide_section 'GitLab' +diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb +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 + + def uploads_fullpath +diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb +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 + + def uploads_fullpath +- File.realpath(Rails.root.join('public/uploads')) ++ File.realpath(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')) + end + end + end diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake new file mode 100644 index 000000000000..705b5830edfc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake @@ -0,0 +1,43 @@ +# Taken from: +# https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/ + +# lib/tasks/reset_token.rake +require_relative '../../app/models/concerns/token_authenticatable.rb' + +STDOUT.sync = true + +namespace :tokens do + desc "Reset all GitLab user auth tokens" + task reset_all: :environment do + reset_all_users_token(:reset_authentication_token!) + end + + desc "Reset all GitLab email tokens" + task reset_all_email: :environment do + reset_all_users_token(:reset_incoming_email_token!) + end + + def reset_all_users_token(token) + TmpUser.find_in_batches do |batch| + puts "Processing batch starting with user ID: #{batch.first.id}" + + batch.each(&token) + end + end +end + +class TmpUser < ActiveRecord::Base + include TokenAuthenticatable + + self.table_name = 'users' + + def reset_authentication_token! + write_new_token(:authentication_token) + save!(validate: false) + end + + def reset_incoming_email_token! + write_new_token(:incoming_email_token) + save!(validate: false) + end +end diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile new file mode 100644 index 000000000000..f59e61208ac3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile @@ -0,0 +1,434 @@ +source 'https://rubygems.org' + +gem 'rails', '5.0.7.1' +gem 'rails-deprecated_sanitizer', '~> 1.0.3' + +# Improves copy-on-write performance for MRI +gem 'nakayoshi_fork', '~> 0.0.4' + +# Responders respond_to and respond_with +gem 'responders', '~> 2.0' + +gem 'sprockets', '~> 3.7.0' + +# Default values for AR models +gem 'gitlab-default_value_for', '~> 3.1.1', require: 'default_value_for' + +# Supported DBs +gem 'mysql2', '~> 0.4.10', group: :mysql +gem 'pg', '~> 0.18.2', group: :postgres + +gem 'rugged', '~> 0.27' +gem 'grape-path-helpers', '~> 1.0' + +gem 'faraday', '~> 0.12' + +# Authentication libraries +gem 'devise', '~> 4.4' +gem 'doorkeeper', '~> 4.3' +gem 'doorkeeper-openid_connect', '~> 1.5' +gem 'omniauth', '~> 1.8' +gem 'omniauth-auth0', '~> 2.0.0' +gem 'omniauth-azure-oauth2', '~> 0.0.9' +gem 'omniauth-cas3', '~> 1.1.4' +gem 'omniauth-facebook', '~> 4.0.0' +gem 'omniauth-github', '~> 1.3' +gem 'omniauth-gitlab', '~> 1.0.2' +gem 'omniauth-google-oauth2', '~> 0.6.0' +gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos +gem 'omniauth-oauth2-generic', '~> 0.2.2' +gem 'omniauth-saml', '~> 1.10' +gem 'omniauth-shibboleth', '~> 1.3.0' +gem 'omniauth-twitter', '~> 1.4' +gem 'omniauth_crowd', '~> 2.2.0' +gem 'omniauth-authentiq', '~> 0.3.3' +gem 'rack-oauth2', '~> 1.2.1' +gem 'jwt', '~> 2.1.0' + +# Spam and anti-bot protection +gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails' +gem 'akismet', '~> 2.0' + +# Two-factor authentication +gem 'devise-two-factor', '~> 3.0.0' +gem 'rqrcode-rails3', '~> 0.1.7' +gem 'attr_encrypted', '~> 3.1.0' +gem 'u2f', '~> 0.2.1' + +# GitLab Pages +gem 'validates_hostname', '~> 1.0.6' +gem 'rubyzip', '~> 1.2.2', require: 'zip' + +# Browser detection +gem 'browser', '~> 2.5' + +# GPG +gem 'gpgme', '~> 2.0.18' + +# LDAP Auth +# GitLab fork with several improvements to original library. For full list of changes +# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master +gem 'gitlab_omniauth-ldap', '~> 2.0.4', require: 'omniauth-ldap' +gem 'net-ldap' + +# API +gem 'grape', '~> 1.1.0' +gem 'grape-entity', '~> 0.7.1' +gem 'rack-cors', '~> 1.0.0', require: 'rack/cors' + +# GraphQL API +gem 'graphql', '~> 1.8.0' +gem 'graphiql-rails', '~> 1.4.10' + +# Disable strong_params so that Mash does not respond to :permitted? +gem 'hashie-forbidden_attributes' + +# Pagination +gem 'kaminari', '~> 1.0' + +# HAML +gem 'hamlit', '~> 2.8.8' + +# Files attachments +gem 'carrierwave', '~> 1.3' +gem 'mini_magick' + +# for backups +gem 'fog-aws', '~> 2.0.1' +gem 'fog-core', '~> 1.44' +gem 'fog-google', '~> 1.7.1' +gem 'fog-local', '~> 0.3' +gem 'fog-openstack', '~> 0.1' +gem 'fog-rackspace', '~> 0.1.1' +gem 'fog-aliyun', '~> 0.2.0' + +# for Google storage +gem 'google-api-client', '~> 0.23' + +# for aws storage +gem 'unf', '~> 0.1.4' + +# Seed data +gem 'seed-fu', '~> 2.3.7' + +# Markdown and HTML processing +gem 'html-pipeline', '~> 2.8' +gem 'deckar01-task_list', '2.0.0' +gem 'gitlab-markup', '~> 1.6.5' +gem 'github-markup', '~> 1.7.0', require: 'github/markup' +gem 'redcarpet', '~> 3.4' +gem 'commonmarker', '~> 0.17' +gem 'RedCloth', '~> 4.3.2' +gem 'rdoc', '~> 6.0' +gem 'org-ruby', '~> 0.9.12' +gem 'creole', '~> 0.5.0' +gem 'wikicloth', '0.8.1' +gem 'asciidoctor', '~> 1.5.8' +gem 'asciidoctor-plantuml', '0.0.8' +gem 'rouge', '~> 3.1' +gem 'truncato', '~> 0.7.9' +gem 'bootstrap_form', '~> 2.7.0' +gem 'nokogiri', '~> 1.8.5' +gem 'escape_utils', '~> 1.1' + +# Calendar rendering +gem 'icalendar' + +# Diffs +gem 'diffy', '~> 3.1.0' + +# Application server +# The 2.0.6 version of rack requires monkeypatch to be present in +# `config.ru`. This can be removed once a new update for Rack +# is available that contains https://github.com/rack/rack/pull/1201. +gem 'rack', '2.0.6' + +group :unicorn do + gem 'unicorn', '~> 5.1.0' + gem 'unicorn-worker-killer', '~> 0.4.4' +end + +group :puma do + gem 'puma', '~> 3.12', require: false + gem 'puma_worker_killer', require: false +end + +# State machine +gem 'state_machines-activerecord', '~> 0.5.1' + +# Issue tags +gem 'acts-as-taggable-on', '~> 5.0' + +# Background jobs +gem 'sidekiq', '~> 5.2.1' +gem 'sidekiq-cron', '~> 0.6.0' +gem 'redis-namespace', '~> 1.6.0' +gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch' + +# Cron Parser +gem 'rufus-scheduler', '~> 3.4' + +# HTTP requests +gem 'httparty', '~> 0.13.3' + +# Colored output to console +gem 'rainbow', '~> 3.0' + +# Progress bar +gem 'ruby-progressbar' + +# GitLab settings +gem 'settingslogic', '~> 2.0.9' + +# Linear-time regex library for untrusted regular expressions +gem 're2', '~> 1.1.1' + +# Misc + +gem 'version_sorter', '~> 2.1.0' + +# Export Ruby Regex to Javascript +gem 'js_regex', '~> 2.2.1' + +# User agent parsing +gem 'device_detector' + +# Cache +gem 'redis-rails', '~> 5.0.2' + +# Redis +gem 'redis', '~> 3.2' +gem 'connection_pool', '~> 2.0' + +# Discord integration +gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false + +# HipChat integration +gem 'hipchat', '~> 1.5.0' + +# JIRA integration +gem 'jira-ruby', '~> 1.4' + +# Flowdock integration +gem 'flowdock', '~> 0.7' + +# Slack integration +gem 'slack-notifier', '~> 1.5.1' + +# Hangouts Chat integration +gem 'hangouts-chat', '~> 0.0.5' + +# Asana integration +gem 'asana', '~> 0.8.1' + +# FogBugz integration +gem 'ruby-fogbugz', '~> 0.2.1' + +# Kubernetes integration +gem 'kubeclient', '~> 4.0.0' + +# Sanitize user input +gem 'sanitize', '~> 4.6' +gem 'babosa', '~> 1.0.2' + +# Sanitizes SVG input +gem 'loofah', '~> 2.2' + +# Working with license +gem 'licensee', '~> 8.9' + +# Protect against bruteforcing +gem 'rack-attack', '~> 4.4.1' + +# Ace editor +gem 'ace-rails-ap', '~> 4.1.0' + +# Detect and convert string character encoding +gem 'charlock_holmes', '~> 0.7.5' + +# Detect mime content type from content +gem 'mimemagic', '~> 0.3.2' + +# Faster blank +gem 'fast_blank' + +# Parse time & duration +gem 'chronic', '~> 0.10.2' +gem 'chronic_duration', '~> 0.10.6' + +gem 'webpack-rails', '~> 0.9.10' +gem 'rack-proxy', '~> 0.6.0' + +gem 'sass-rails', '~> 5.0.6' +gem 'sass', '~> 3.5' +gem 'uglifier', '~> 2.7.2' + +gem 'addressable', '~> 2.5.2' +gem 'font-awesome-rails', '~> 4.7' +gem 'gemojione', '~> 3.3' +gem 'gon', '~> 6.2' +gem 'jquery-atwho-rails', '~> 1.3.2' +gem 'request_store', '~> 1.3' +gem 'select2-rails', '~> 3.5.9' +gem 'virtus', '~> 1.0.1' +gem 'base32', '~> 0.3.0' + +# Sentry integration +gem 'sentry-raven', '~> 2.7' + +gem 'premailer-rails', '~> 1.9.7' + +# I18n +gem 'ruby_parser', '~> 3.8', require: false +gem 'rails-i18n', '~> 5.1' +gem 'gettext_i18n_rails', '~> 1.8.0' +gem 'gettext_i18n_rails_js', '~> 1.3' +gem 'gettext', '~> 3.2.2', require: false, group: :development + +gem 'batch-loader', '~> 1.2.2' + +# Perf bar +gem 'peek', '~> 1.0.1' +gem 'peek-gc', '~> 0.0.2' +gem 'peek-mysql2', '~> 1.2.0', group: :mysql +gem 'peek-pg', '~> 1.3.0', group: :postgres +gem 'peek-rblineprof', '~> 0.2.0' +gem 'peek-redis', '~> 1.2.0' + +# Metrics +group :metrics do + gem 'method_source', '~> 0.8', require: false + gem 'influxdb', '~> 0.2', require: false + + # Prometheus + gem 'prometheus-client-mmap', '~> 0.9.4' + gem 'raindrops', '~> 0.18' +end + +group :development do + gem 'foreman', '~> 0.84.0' + gem 'brakeman', '~> 4.2', require: false + + gem 'letter_opener_web', '~> 1.3.0' + gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false + + # Better errors handler + gem 'better_errors', '~> 2.5.0' + gem 'binding_of_caller', '~> 0.8.0' + + # thin instead webrick + gem 'thin', '~> 1.7.0' +end + +group :development, :test do + gem 'bootsnap', '~> 1.3' + gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET'] + gem 'pry-byebug', '~> 3.5.1', platform: :mri + gem 'pry-rails', '~> 0.3.4' + + gem 'awesome_print', require: false + gem 'fuubar', '~> 2.2.0' + + gem 'database_cleaner', '~> 1.7.0' + gem 'factory_bot_rails', '~> 4.8.2' + gem 'rspec-rails', '~> 3.7.0' + gem 'rspec-retry', '~> 0.4.5' + gem 'rspec_profiling', '~> 0.0.5' + gem 'rspec-set', '~> 0.1.3' + gem 'rspec-parameterized', require: false + + # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) + gem 'minitest', '~> 5.11.0' + + # Generate Fake data + gem 'ffaker', '~> 2.10' + + gem 'capybara', '~> 2.16.1' + gem 'capybara-screenshot', '~> 1.0.18' + gem 'selenium-webdriver', '~> 3.12' + + gem 'spring', '~> 2.0.0' + gem 'spring-commands-rspec', '~> 1.0.4' + + gem 'gitlab-styles', '~> 2.4', require: false + # Pin these dependencies, otherwise a new rule could break the CI pipelines + gem 'rubocop', '~> 0.54.0' + gem 'rubocop-rspec', '~> 1.22.1' + + gem 'scss_lint', '~> 0.56.0', require: false + gem 'haml_lint', '~> 0.28.0', require: false + gem 'simplecov', '~> 0.14.0', require: false + gem 'bundler-audit', '~> 0.5.0', require: false + + gem 'benchmark-ips', '~> 2.3.0', require: false + + gem 'license_finder', '~> 5.4', require: false + gem 'knapsack', '~> 1.17' + + gem 'activerecord_sane_schema_dumper', '1.0' + + gem 'stackprof', '~> 0.2.10', require: false + + gem 'simple_po_parser', '~> 1.1.2', require: false + + gem 'timecop', '~> 0.8.0' +end + +group :test do + gem 'shoulda-matchers', '~> 3.1.2', require: false + gem 'email_spec', '~> 2.2.0' + gem 'json-schema', '~> 2.8.0' + gem 'webmock', '~> 2.3.2' + gem 'rails-controller-testing' + gem 'sham_rack', '~> 1.3.6' + gem 'concurrent-ruby', '~> 1.1' + gem 'test-prof', '~> 0.2.5' + gem 'rspec_junit_formatter' +end + +gem 'octokit', '~> 4.9' + +gem 'mail_room', '~> 0.9.1' + +gem 'email_reply_trimmer', '~> 0.1' +gem 'html2text' + +gem 'ruby-prof', '~> 0.17.0' +gem 'rbtrace', '~> 0.4', require: false + +# OAuth +gem 'oauth2', '~> 1.4' + +# Health check +gem 'health_check', '~> 2.6.0' + +# System information +gem 'vmstat', '~> 2.3.0' +gem 'sys-filesystem', '~> 1.1.6' + +# SSH host key support +gem 'net-ssh', '~> 5.0' +gem 'sshkey', '~> 1.9.0' + +# Required for ED25519 SSH host key support +group :ed25519 do + gem 'ed25519', '~> 1.2' + gem 'bcrypt_pbkdf', '~> 1.0' +end + +# Gitaly GRPC client +gem 'gitaly-proto', '~> 1.5.0', require: 'gitaly' +gem 'grpc', '~> 1.15.0' + +gem 'google-protobuf', '~> 3.6' + +gem 'toml-rb', '~> 1.0.0', require: false + +# Feature toggles +gem 'flipper', '~> 0.13.0' +gem 'flipper-active_record', '~> 0.13.0' +gem 'flipper-active_support_cache_store', '~> 0.13.0' + +# Structured logging +gem 'lograge', '~> 0.5' +gem 'grape_logging', '~> 1.7' diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock new file mode 100644 index 000000000000..77b4360cf413 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock @@ -0,0 +1,1175 @@ +GEM + remote: https://rubygems.org/ + specs: + RedCloth (4.3.2) + abstract_type (0.0.7) + ace-rails-ap (4.1.2) + actioncable (5.0.7.1) + actionpack (= 5.0.7.1) + nio4r (>= 1.2, < 3.0) + websocket-driver (~> 0.6.1) + actionmailer (5.0.7.1) + actionpack (= 5.0.7.1) + actionview (= 5.0.7.1) + activejob (= 5.0.7.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.0.7.1) + actionview (= 5.0.7.1) + activesupport (= 5.0.7.1) + rack (~> 2.0) + rack-test (~> 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.0.7.1) + activesupport (= 5.0.7.1) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.0.7.1) + activesupport (= 5.0.7.1) + globalid (>= 0.3.6) + activemodel (5.0.7.1) + activesupport (= 5.0.7.1) + activerecord (5.0.7.1) + activemodel (= 5.0.7.1) + activesupport (= 5.0.7.1) + arel (~> 7.0) + activerecord_sane_schema_dumper (1.0) + rails (>= 5, < 6) + activesupport (5.0.7.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + acts-as-taggable-on (5.0.0) + activerecord (>= 4.2.8) + adamantium (0.2.0) + ice_nine (~> 0.11.0) + memoizable (~> 0.4.0) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + aes_key_wrap (1.0.1) + akismet (2.0.0) + arel (7.1.4) + asana (0.8.1) + faraday (~> 0.9) + faraday_middleware (~> 0.9) + faraday_middleware-multi_json (~> 0.0) + oauth2 (~> 1.0) + asciidoctor (1.5.8) + asciidoctor-plantuml (0.0.8) + asciidoctor (~> 1.5) + ast (2.4.0) + atomic (1.1.99) + attr_encrypted (3.1.0) + encryptor (~> 3.0.0) + attr_required (1.0.0) + awesome_print (1.8.0) + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + babosa (1.0.2) + base32 (0.3.2) + batch-loader (1.2.2) + bcrypt (3.1.12) + bcrypt_pbkdf (1.0.0) + benchmark-ips (2.3.0) + better_errors (2.5.0) + coderay (>= 1.0.0) + erubi (>= 1.0.0) + rack (>= 0.9.0) + bindata (2.4.3) + binding_ninja (0.2.2) + binding_of_caller (0.8.0) + debug_inspector (>= 0.0.1) + bootsnap (1.3.2) + msgpack (~> 1.0) + bootstrap_form (2.7.0) + brakeman (4.2.1) + browser (2.5.3) + builder (3.2.3) + bullet (5.5.1) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.10.0) + bundler-audit (0.5.0) + bundler (~> 1.2) + thor (~> 0.18) + byebug (9.1.0) + capybara (2.16.1) + addressable + mini_mime (>= 0.1.3) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + xpath (~> 2.0) + capybara-screenshot (1.0.22) + capybara (>= 1.0, < 4) + launchy + carrierwave (1.3.1) + activemodel (>= 4.0.0) + activesupport (>= 4.0.0) + mime-types (>= 1.16) + cause (0.1) + charlock_holmes (0.7.6) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + chronic (0.10.2) + chronic_duration (0.10.6) + numerizer (~> 0.1.1) + chunky_png (1.3.5) + citrus (3.0.2) + coderay (1.1.2) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concord (0.1.5) + adamantium (~> 0.2.0) + equalizer (~> 0.0.9) + concurrent-ruby (1.1.3) + concurrent-ruby-ext (1.1.3) + concurrent-ruby (= 1.1.3) + connection_pool (2.2.2) + crack (0.4.3) + safe_yaml (~> 1.0.0) + crass (1.0.4) + creole (0.5.0) + css_parser (1.5.0) + addressable + daemons (1.2.6) + database_cleaner (1.7.0) + debug_inspector (0.0.3) + debugger-ruby_core_source (1.3.8) + deckar01-task_list (2.0.0) + html-pipeline + declarative (0.0.10) + declarative-option (0.1.0) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + device_detector (1.0.0) + devise (4.4.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0, < 6.0) + responders + warden (~> 1.2.3) + devise-two-factor (3.0.0) + activesupport + attr_encrypted (>= 1.3, < 4, != 2) + devise (~> 4.0) + railties + rotp (~> 2.0) + diff-lcs (1.3) + diffy (3.1.0) + discordrb-webhooks-blackst0ne (3.3.0) + rest-client (~> 2.0) + docile (1.1.5) + domain_name (0.5.20180417) + unf (>= 0.0.5, < 1.0.0) + doorkeeper (4.3.2) + railties (>= 4.2) + doorkeeper-openid_connect (1.5.0) + doorkeeper (~> 4.3) + json-jwt (~> 1.6) + ed25519 (1.2.4) + email_reply_trimmer (0.1.6) + email_spec (2.2.0) + htmlentities (~> 4.3.3) + launchy (~> 2.1) + mail (~> 2.7) + encryptor (3.0.0) + equalizer (0.0.11) + erubi (1.7.1) + erubis (2.7.0) + escape_utils (1.2.1) + et-orbi (1.0.3) + tzinfo + eventmachine (1.2.7) + excon (0.62.0) + execjs (2.6.0) + expression_parser (0.9.0) + factory_bot (4.8.2) + activesupport (>= 3.0.0) + factory_bot_rails (4.8.2) + factory_bot (~> 4.8.2) + railties (>= 3.0.0) + faraday (0.12.2) + multipart-post (>= 1.2, < 3) + faraday_middleware (0.12.2) + faraday (>= 0.7.4, < 1.0) + faraday_middleware-multi_json (0.0.6) + faraday_middleware + multi_json + fast_blank (1.0.0) + fast_gettext (1.6.0) + ffaker (2.10.0) + ffi (1.9.25) + flipper (0.13.0) + flipper-active_record (0.13.0) + activerecord (>= 3.2, < 6) + flipper (~> 0.13.0) + flipper-active_support_cache_store (0.13.0) + activesupport (>= 3.2, < 6) + flipper (~> 0.13.0) + flowdock (0.7.1) + httparty (~> 0.7) + multi_json + fog-aliyun (0.2.0) + fog-core (~> 1.27) + fog-json (~> 1.0) + ipaddress (~> 0.8) + xml-simple (~> 1.1) + fog-aws (2.0.1) + fog-core (~> 1.38) + fog-json (~> 1.0) + fog-xml (~> 0.1) + ipaddress (~> 0.8) + fog-core (1.45.0) + builder + excon (~> 0.58) + formatador (~> 0.2) + fog-google (1.7.1) + fog-core + fog-json + fog-xml + google-api-client (~> 0.23.0) + fog-json (1.0.2) + fog-core (~> 1.0) + multi_json (~> 1.10) + fog-local (0.3.1) + fog-core (~> 1.27) + fog-openstack (0.1.21) + fog-core (>= 1.40) + fog-json (>= 1.0) + ipaddress (>= 0.8) + fog-rackspace (0.1.1) + fog-core (>= 1.35) + fog-json (>= 1.0) + fog-xml (>= 0.1) + ipaddress (>= 0.8) + fog-xml (0.1.3) + fog-core + nokogiri (>= 1.5.11, < 2.0.0) + font-awesome-rails (4.7.0.1) + railties (>= 3.2, < 5.1) + foreman (0.84.0) + thor (~> 0.19.1) + formatador (0.2.5) + fuubar (2.2.0) + rspec-core (~> 3.0) + ruby-progressbar (~> 1.4) + gemojione (3.3.0) + json + get_process_mem (0.2.0) + gettext (3.2.9) + locale (>= 2.0.5) + text (>= 1.3.0) + gettext_i18n_rails (1.8.0) + fast_gettext (>= 0.9.0) + gettext_i18n_rails_js (1.3.0) + gettext (>= 3.0.2) + gettext_i18n_rails (>= 0.7.1) + po_to_json (>= 1.0.0) + rails (>= 3.2.0) + gitaly-proto (1.5.0) + grpc (~> 1.0) + github-markup (1.7.0) + gitlab-default_value_for (3.1.1) + activerecord (>= 3.2.0, < 6.0) + gitlab-markup (1.6.5) + gitlab-sidekiq-fetcher (0.4.0) + sidekiq (~> 5) + gitlab-styles (2.4.1) + rubocop (~> 0.54.0) + rubocop-gitlab-security (~> 0.1.0) + rubocop-rspec (~> 1.19) + gitlab_omniauth-ldap (2.0.4) + net-ldap (~> 0.16) + omniauth (~> 1.3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) + globalid (0.4.1) + activesupport (>= 4.2.0) + gon (6.2.0) + actionpack (>= 3.0) + multi_json + request_store (>= 1.0) + google-api-client (0.23.4) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.5, < 0.7.0) + httpclient (>= 2.8.1, < 3.0) + mime-types (~> 3.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + google-protobuf (3.6.1) + googleapis-common-protos-types (1.0.2) + google-protobuf (~> 3.0) + googleauth (0.6.6) + faraday (~> 0.12) + jwt (>= 1.4, < 3.0) + memoist (~> 0.12) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (~> 0.7) + gpgme (2.0.18) + mini_portile2 (~> 2.3) + grape (1.1.0) + activesupport + builder + mustermann-grape (~> 1.0.0) + rack (>= 1.3.0) + rack-accept + virtus (>= 1.0.0) + grape-entity (0.7.1) + activesupport (>= 4.0) + multi_json (>= 1.3.2) + grape-path-helpers (1.0.6) + activesupport (>= 4, < 5.1) + grape (~> 1.0) + rake (~> 12) + grape_logging (1.7.0) + grape + graphiql-rails (1.4.10) + railties + sprockets-rails + graphql (1.8.1) + grpc (1.15.0) + google-protobuf (~> 3.1) + googleapis-common-protos-types (~> 1.0.0) + haml (5.0.4) + temple (>= 0.8.0) + tilt + haml_lint (0.28.0) + haml (>= 4.0, < 5.1) + rainbow + rake (>= 10, < 13) + rubocop (>= 0.50.0) + sysexits (~> 1.1) + hamlit (2.8.8) + temple (>= 0.8.0) + thor + tilt + hangouts-chat (0.0.5) + hashdiff (0.3.4) + hashie (3.5.7) + hashie-forbidden_attributes (0.1.1) + hashie (>= 3.0) + health_check (2.6.0) + rails (>= 4.0) + hipchat (1.5.2) + httparty + mimemagic + html-pipeline (2.8.4) + activesupport (>= 2) + nokogiri (>= 1.4) + html2text (0.2.0) + nokogiri (~> 1.6) + htmlentities (4.3.4) + http (3.3.0) + addressable (~> 2.3) + http-cookie (~> 1.0) + http-form_data (~> 2.0) + http_parser.rb (~> 0.6.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + http-form_data (2.1.1) + http_parser.rb (0.6.0) + httparty (0.13.7) + json (~> 1.8) + multi_xml (>= 0.5.2) + httpclient (2.8.3) + i18n (1.2.0) + concurrent-ruby (~> 1.0) + icalendar (2.4.1) + ice_nine (0.11.2) + influxdb (0.2.3) + cause + json + ipaddress (0.8.3) + jira-ruby (1.4.1) + activesupport + multipart-post + oauth (~> 0.5, >= 0.5.0) + jquery-atwho-rails (1.3.2) + js_regex (2.2.1) + regexp_parser (>= 0.4.11, <= 0.5.0) + json (1.8.6) + json-jwt (1.9.4) + activesupport + aes_key_wrap + bindata + json-schema (2.8.0) + addressable (>= 2.4) + jwt (2.1.0) + kaminari (1.0.1) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.0.1) + kaminari-activerecord (= 1.0.1) + kaminari-core (= 1.0.1) + kaminari-actionview (1.0.1) + actionview + kaminari-core (= 1.0.1) + kaminari-activerecord (1.0.1) + activerecord + kaminari-core (= 1.0.1) + kaminari-core (1.0.1) + kgio (2.10.0) + knapsack (1.17.0) + rake + kubeclient (4.0.0) + http (~> 3.0) + recursive-open-struct (~> 1.0, >= 1.0.4) + rest-client (~> 2.0) + launchy (2.4.3) + addressable (~> 2.3) + letter_opener (1.4.1) + launchy (~> 2.2) + letter_opener_web (1.3.0) + actionmailer (>= 3.2) + letter_opener (~> 1.0) + railties (>= 3.2) + license_finder (5.4.0) + bundler + rubyzip + thor + toml (= 0.2.0) + with_env (= 1.1.0) + xml-simple + licensee (8.9.2) + rugged (~> 0.24) + locale (2.1.2) + lograge (0.10.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.2.3) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + mail_room (0.9.1) + memoist (0.16.0) + memoizable (0.4.2) + thread_safe (~> 0.3, >= 0.3.1) + method_source (0.9.2) + mime-types (3.2.2) + mime-types-data (~> 3.2015) + mime-types-data (3.2018.0812) + mimemagic (0.3.2) + mini_magick (4.8.0) + mini_mime (1.0.1) + mini_portile2 (2.3.0) + minitest (5.11.3) + msgpack (1.2.4) + multi_json (1.13.1) + multi_xml (0.6.0) + multipart-post (2.0.0) + mustermann (1.0.3) + mustermann-grape (1.0.0) + mustermann (~> 1.0.0) + mysql2 (0.4.10) + nakayoshi_fork (0.0.4) + net-ldap (0.16.0) + net-ssh (5.0.1) + netrc (0.11.0) + nio4r (2.3.1) + nokogiri (1.8.5) + mini_portile2 (~> 2.3.0) + nokogumbo (1.5.0) + nokogiri + numerizer (0.1.1) + oauth (0.5.4) + oauth2 (1.4.1) + faraday (>= 0.8, < 0.16.0) + jwt (>= 1.0, < 3.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 3) + octokit (4.9.0) + sawyer (~> 0.8.0, >= 0.5.3) + omniauth (1.9.0) + hashie (>= 3.4.6, < 3.7.0) + rack (>= 1.6.2, < 3) + omniauth-auth0 (2.0.0) + omniauth-oauth2 (~> 1.4) + omniauth-authentiq (0.3.3) + jwt (>= 1.5) + omniauth-oauth2 (>= 1.5) + omniauth-azure-oauth2 (0.0.10) + jwt (>= 1.0, < 3.0) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.4) + omniauth-cas3 (1.1.4) + addressable (~> 2.3) + nokogiri (~> 1.7, >= 1.7.1) + omniauth (~> 1.2) + omniauth-facebook (4.0.0) + omniauth-oauth2 (~> 1.2) + omniauth-github (1.3.0) + omniauth (~> 1.5) + omniauth-oauth2 (>= 1.4.0, < 2.0) + omniauth-gitlab (1.0.3) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.0) + omniauth-google-oauth2 (0.6.0) + jwt (>= 2.0) + omniauth (>= 1.1.1) + omniauth-oauth2 (>= 1.5) + omniauth-kerberos (0.3.0) + omniauth-multipassword + timfel-krb5-auth (~> 0.8) + omniauth-multipassword (0.4.2) + omniauth (~> 1.0) + omniauth-oauth (1.1.0) + oauth + omniauth (~> 1.0) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) + omniauth-oauth2-generic (0.2.2) + omniauth-oauth2 (~> 1.0) + omniauth-saml (1.10.0) + omniauth (~> 1.3, >= 1.3.2) + ruby-saml (~> 1.7) + omniauth-shibboleth (1.3.0) + omniauth (>= 1.0.0) + omniauth-twitter (1.4.0) + omniauth-oauth (~> 1.1) + rack + omniauth_crowd (2.2.3) + activesupport + nokogiri (>= 1.4.4) + omniauth (~> 1.0) + org-ruby (0.9.12) + rubypants (~> 0.2) + orm_adapter (0.5.0) + os (1.0.0) + parallel (1.12.1) + parser (2.5.3.0) + ast (~> 2.4.0) + parslet (1.8.2) + peek (1.0.1) + concurrent-ruby (>= 0.9.0) + concurrent-ruby-ext (>= 0.9.0) + railties (>= 4.0.0) + peek-gc (0.0.2) + peek + peek-mysql2 (1.2.0) + concurrent-ruby + concurrent-ruby-ext + mysql2 + peek + peek-pg (1.3.0) + concurrent-ruby + concurrent-ruby-ext + peek + pg + peek-rblineprof (0.2.0) + peek + rblineprof + peek-redis (1.2.0) + atomic (>= 1.0.0) + peek + redis + pg (0.18.4) + po_to_json (1.0.1) + json (>= 1.6.0) + powerpack (0.1.1) + premailer (1.10.4) + addressable + css_parser (>= 1.4.10) + htmlentities (>= 4.0.0) + premailer-rails (1.9.7) + actionmailer (>= 3, < 6) + premailer (~> 1.7, >= 1.7.9) + proc_to_ast (0.1.0) + coderay + parser + unparser + procto (0.0.3) + prometheus-client-mmap (0.9.4) + pry (0.11.3) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + pry-byebug (3.5.1) + byebug (~> 9.1) + pry (~> 0.10) + pry-rails (0.3.6) + pry (>= 0.10.4) + public_suffix (3.0.3) + puma (3.12.0) + puma_worker_killer (0.1.0) + get_process_mem (~> 0.2) + puma (>= 2.7, < 4) + pyu-ruby-sasl (0.0.3.3) + rack (2.0.6) + rack-accept (0.4.5) + rack (>= 0.4) + rack-attack (4.4.1) + rack + rack-cors (1.0.2) + rack-oauth2 (1.2.3) + activesupport (>= 2.3) + attr_required (>= 0.0.5) + httpclient (>= 2.4) + multi_json (>= 1.3.6) + rack (>= 1.1) + rack-protection (2.0.4) + rack + rack-proxy (0.6.0) + rack + rack-test (0.6.3) + rack (>= 1.0) + rails (5.0.7.1) + actioncable (= 5.0.7.1) + actionmailer (= 5.0.7.1) + actionpack (= 5.0.7.1) + actionview (= 5.0.7.1) + activejob (= 5.0.7.1) + activemodel (= 5.0.7.1) + activerecord (= 5.0.7.1) + activesupport (= 5.0.7.1) + bundler (>= 1.3.0) + railties (= 5.0.7.1) + sprockets-rails (>= 2.0.0) + rails-controller-testing (1.0.2) + actionpack (~> 5.x, >= 5.0.1) + actionview (~> 5.x, >= 5.0.1) + activesupport (~> 5.x) + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + rails-i18n (5.1.1) + i18n (>= 0.7, < 2) + railties (>= 5.0, < 6) + railties (5.0.7.1) + actionpack (= 5.0.7.1) + activesupport (= 5.0.7.1) + method_source + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rainbow (3.0.0) + raindrops (0.18.0) + rake (12.3.2) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rblineprof (0.3.6) + debugger-ruby_core_source (~> 1.3) + rbtrace (0.4.10) + ffi (>= 1.0.6) + msgpack (>= 0.4.3) + trollop (>= 1.16.2) + rdoc (6.0.4) + re2 (1.1.1) + recaptcha (3.0.0) + json + recursive-open-struct (1.1.0) + redcarpet (3.4.0) + redis (3.3.5) + redis-actionpack (5.0.2) + actionpack (>= 4.0, < 6) + redis-rack (>= 1, < 3) + redis-store (>= 1.1.0, < 2) + redis-activesupport (5.0.4) + activesupport (>= 3, < 6) + redis-store (>= 1.3, < 2) + redis-namespace (1.6.0) + redis (>= 3.0.4) + redis-rack (2.0.4) + rack (>= 1.5, < 3) + redis-store (>= 1.2, < 2) + redis-rails (5.0.2) + redis-actionpack (>= 5.0, < 6) + redis-activesupport (>= 5.0, < 6) + redis-store (>= 1.2, < 2) + redis-store (1.6.0) + redis (>= 2.2, < 5) + regexp_parser (0.5.0) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + request_store (1.3.1) + responders (2.4.0) + actionpack (>= 4.2.0, < 5.3) + railties (>= 4.2.0, < 5.3) + rest-client (2.0.2) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + retriable (3.1.2) + rinku (2.0.0) + rotp (2.1.2) + rouge (3.3.0) + rqrcode (0.7.0) + chunky_png + rqrcode-rails3 (0.1.7) + rqrcode (>= 0.4.2) + rspec (3.7.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-core (3.7.1) + rspec-support (~> 3.7.0) + rspec-expectations (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-mocks (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-parameterized (0.4.1) + binding_ninja (>= 0.2.1) + parser + proc_to_ast + rspec (>= 2.13, < 4) + unparser + rspec-rails (3.7.2) + actionpack (>= 3.0) + activesupport (>= 3.0) + railties (>= 3.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-support (~> 3.7.0) + rspec-retry (0.4.5) + rspec-core + rspec-set (0.1.3) + rspec-support (3.7.1) + rspec_junit_formatter (0.4.1) + rspec-core (>= 2, < 4, != 2.12.0) + rspec_profiling (0.0.5) + activerecord + pg + rails + sqlite3 + rubocop (0.54.0) + parallel (~> 1.10) + parser (>= 2.5) + powerpack (~> 0.1) + rainbow (>= 2.2.2, < 4.0) + ruby-progressbar (~> 1.7) + unicode-display_width (~> 1.0, >= 1.0.1) + rubocop-gitlab-security (0.1.1) + rubocop (>= 0.51) + rubocop-rspec (1.22.2) + rubocop (>= 0.52.1) + ruby-enum (0.7.2) + i18n + ruby-fogbugz (0.2.1) + crack (~> 0.4) + ruby-prof (0.17.0) + ruby-progressbar (1.9.0) + ruby-saml (1.7.2) + nokogiri (>= 1.5.10) + ruby_parser (3.11.0) + sexp_processor (~> 4.9) + rubyntlm (0.6.2) + rubypants (0.2.0) + rubyzip (1.2.2) + rufus-scheduler (3.4.0) + et-orbi (~> 1.0) + rugged (0.27.5) + safe_yaml (1.0.4) + sanitize (4.6.6) + crass (~> 1.0.2) + nokogiri (>= 1.4.4) + nokogumbo (~> 1.4) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sass-rails (5.0.6) + railties (>= 4.0.0, < 6) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + scss_lint (0.56.0) + rake (>= 0.9, < 13) + sass (~> 3.5.3) + seed-fu (2.3.7) + activerecord (>= 3.1) + activesupport (>= 3.1) + select2-rails (3.5.9.3) + thor (~> 0.14) + selenium-webdriver (3.12.0) + childprocess (~> 0.5) + rubyzip (~> 1.2) + sentry-raven (2.7.4) + faraday (>= 0.7.6, < 1.0) + settingslogic (2.0.9) + sexp_processor (4.11.0) + sham_rack (1.3.6) + rack + shoulda-matchers (3.1.2) + activesupport (>= 4.0.0) + sidekiq (5.2.3) + connection_pool (~> 2.2, >= 2.2.2) + rack-protection (>= 1.5.0) + redis (>= 3.3.5, < 5) + sidekiq-cron (0.6.0) + rufus-scheduler (>= 3.3.0) + sidekiq (>= 4.2.1) + signet (0.11.0) + addressable (~> 2.3) + faraday (~> 0.9) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simple_po_parser (1.1.2) + simplecov (0.14.1) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) + slack-notifier (1.5.1) + spring (2.0.2) + activesupport (>= 4.2) + spring-commands-rspec (1.0.4) + spring (>= 0.9.1) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.3.13) + sshkey (1.9.0) + stackprof (0.2.10) + state_machines (0.5.0) + state_machines-activemodel (0.5.1) + activemodel (>= 4.1, < 6.0) + state_machines (>= 0.5.0) + state_machines-activerecord (0.5.1) + activerecord (>= 4.1, < 6.0) + state_machines-activemodel (>= 0.5.0) + sys-filesystem (1.1.6) + ffi + sysexits (1.2.0) + temple (0.8.0) + test-prof (0.2.5) + text (1.3.1) + thin (1.7.2) + daemons (~> 1.0, >= 1.0.9) + eventmachine (~> 1.0, >= 1.0.4) + rack (>= 1, < 3) + thor (0.19.4) + thread_safe (0.3.6) + tilt (2.0.8) + timecop (0.8.1) + timfel-krb5-auth (0.8.3) + toml (0.2.0) + parslet (~> 1.8.0) + toml-rb (1.0.0) + citrus (~> 3.0, > 3.0) + trollop (2.1.3) + truncato (0.7.10) + htmlentities (~> 4.3.1) + nokogiri (~> 1.8.0, >= 1.7.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + u2f (0.2.1) + uber (0.1.0) + uglifier (2.7.2) + execjs (>= 0.3.0) + json (>= 1.8.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.5) + unicode-display_width (1.3.2) + unicorn (5.1.0) + kgio (~> 2.6) + raindrops (~> 0.7) + unicorn-worker-killer (0.4.4) + get_process_mem (~> 0) + unicorn (>= 4, < 6) + uniform_notifier (1.10.0) + unparser (0.4.2) + abstract_type (~> 0.0.7) + adamantium (~> 0.2.0) + concord (~> 0.1.5) + diff-lcs (~> 1.3) + equalizer (~> 0.0.9) + parser (>= 2.3.1.2, < 2.6) + procto (~> 0.0.2) + validates_hostname (1.0.6) + activerecord (>= 3.0) + activesupport (>= 3.0) + version_sorter (2.1.0) + virtus (1.0.5) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + equalizer (~> 0.0, >= 0.0.9) + vmstat (2.3.0) + warden (1.2.7) + rack (>= 1.0) + webmock (2.3.2) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff + webpack-rails (0.9.11) + railties (>= 3.2.0) + websocket-driver (0.6.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.3) + wikicloth (0.8.1) + builder + expression_parser + rinku + with_env (1.1.0) + xml-simple (1.1.5) + xpath (2.1.0) + nokogiri (~> 1.3) + +PLATFORMS + ruby + +DEPENDENCIES + RedCloth (~> 4.3.2) + ace-rails-ap (~> 4.1.0) + activerecord_sane_schema_dumper (= 1.0) + acts-as-taggable-on (~> 5.0) + addressable (~> 2.5.2) + akismet (~> 2.0) + asana (~> 0.8.1) + asciidoctor (~> 1.5.8) + asciidoctor-plantuml (= 0.0.8) + attr_encrypted (~> 3.1.0) + awesome_print + babosa (~> 1.0.2) + base32 (~> 0.3.0) + batch-loader (~> 1.2.2) + bcrypt_pbkdf (~> 1.0) + benchmark-ips (~> 2.3.0) + better_errors (~> 2.5.0) + binding_of_caller (~> 0.8.0) + bootsnap (~> 1.3) + bootstrap_form (~> 2.7.0) + brakeman (~> 4.2) + browser (~> 2.5) + bullet (~> 5.5.0) + bundler-audit (~> 0.5.0) + capybara (~> 2.16.1) + capybara-screenshot (~> 1.0.18) + carrierwave (~> 1.3) + charlock_holmes (~> 0.7.5) + chronic (~> 0.10.2) + chronic_duration (~> 0.10.6) + commonmarker (~> 0.17) + concurrent-ruby (~> 1.1) + connection_pool (~> 2.0) + creole (~> 0.5.0) + database_cleaner (~> 1.7.0) + deckar01-task_list (= 2.0.0) + device_detector + devise (~> 4.4) + devise-two-factor (~> 3.0.0) + diffy (~> 3.1.0) + discordrb-webhooks-blackst0ne (~> 3.3) + doorkeeper (~> 4.3) + doorkeeper-openid_connect (~> 1.5) + ed25519 (~> 1.2) + email_reply_trimmer (~> 0.1) + email_spec (~> 2.2.0) + escape_utils (~> 1.1) + factory_bot_rails (~> 4.8.2) + faraday (~> 0.12) + fast_blank + ffaker (~> 2.10) + flipper (~> 0.13.0) + flipper-active_record (~> 0.13.0) + flipper-active_support_cache_store (~> 0.13.0) + flowdock (~> 0.7) + fog-aliyun (~> 0.2.0) + fog-aws (~> 2.0.1) + fog-core (~> 1.44) + fog-google (~> 1.7.1) + fog-local (~> 0.3) + fog-openstack (~> 0.1) + fog-rackspace (~> 0.1.1) + font-awesome-rails (~> 4.7) + foreman (~> 0.84.0) + fuubar (~> 2.2.0) + gemojione (~> 3.3) + gettext (~> 3.2.2) + gettext_i18n_rails (~> 1.8.0) + gettext_i18n_rails_js (~> 1.3) + gitaly-proto (~> 1.5.0) + github-markup (~> 1.7.0) + gitlab-default_value_for (~> 3.1.1) + gitlab-markup (~> 1.6.5) + gitlab-sidekiq-fetcher (~> 0.4.0) + gitlab-styles (~> 2.4) + gitlab_omniauth-ldap (~> 2.0.4) + gon (~> 6.2) + google-api-client (~> 0.23) + google-protobuf (~> 3.6) + gpgme (~> 2.0.18) + grape (~> 1.1.0) + grape-entity (~> 0.7.1) + grape-path-helpers (~> 1.0) + grape_logging (~> 1.7) + graphiql-rails (~> 1.4.10) + graphql (~> 1.8.0) + grpc (~> 1.15.0) + haml_lint (~> 0.28.0) + hamlit (~> 2.8.8) + hangouts-chat (~> 0.0.5) + hashie-forbidden_attributes + health_check (~> 2.6.0) + hipchat (~> 1.5.0) + html-pipeline (~> 2.8) + html2text + httparty (~> 0.13.3) + icalendar + influxdb (~> 0.2) + jira-ruby (~> 1.4) + jquery-atwho-rails (~> 1.3.2) + js_regex (~> 2.2.1) + json-schema (~> 2.8.0) + jwt (~> 2.1.0) + kaminari (~> 1.0) + knapsack (~> 1.17) + kubeclient (~> 4.0.0) + letter_opener_web (~> 1.3.0) + license_finder (~> 5.4) + licensee (~> 8.9) + lograge (~> 0.5) + loofah (~> 2.2) + mail_room (~> 0.9.1) + method_source (~> 0.8) + mimemagic (~> 0.3.2) + mini_magick + minitest (~> 5.11.0) + mysql2 (~> 0.4.10) + nakayoshi_fork (~> 0.0.4) + net-ldap + net-ssh (~> 5.0) + nokogiri (~> 1.8.5) + oauth2 (~> 1.4) + octokit (~> 4.9) + omniauth (~> 1.8) + omniauth-auth0 (~> 2.0.0) + omniauth-authentiq (~> 0.3.3) + omniauth-azure-oauth2 (~> 0.0.9) + omniauth-cas3 (~> 1.1.4) + omniauth-facebook (~> 4.0.0) + omniauth-github (~> 1.3) + omniauth-gitlab (~> 1.0.2) + omniauth-google-oauth2 (~> 0.6.0) + omniauth-kerberos (~> 0.3.0) + omniauth-oauth2-generic (~> 0.2.2) + omniauth-saml (~> 1.10) + omniauth-shibboleth (~> 1.3.0) + omniauth-twitter (~> 1.4) + omniauth_crowd (~> 2.2.0) + org-ruby (~> 0.9.12) + peek (~> 1.0.1) + peek-gc (~> 0.0.2) + peek-mysql2 (~> 1.2.0) + peek-pg (~> 1.3.0) + peek-rblineprof (~> 0.2.0) + peek-redis (~> 1.2.0) + pg (~> 0.18.2) + premailer-rails (~> 1.9.7) + prometheus-client-mmap (~> 0.9.4) + pry-byebug (~> 3.5.1) + pry-rails (~> 0.3.4) + puma (~> 3.12) + puma_worker_killer + rack (= 2.0.6) + rack-attack (~> 4.4.1) + rack-cors (~> 1.0.0) + rack-oauth2 (~> 1.2.1) + rack-proxy (~> 0.6.0) + rails (= 5.0.7.1) + rails-controller-testing + rails-deprecated_sanitizer (~> 1.0.3) + rails-i18n (~> 5.1) + rainbow (~> 3.0) + raindrops (~> 0.18) + rblineprof (~> 0.3.6) + rbtrace (~> 0.4) + rdoc (~> 6.0) + re2 (~> 1.1.1) + recaptcha (~> 3.0) + redcarpet (~> 3.4) + redis (~> 3.2) + redis-namespace (~> 1.6.0) + redis-rails (~> 5.0.2) + request_store (~> 1.3) + responders (~> 2.0) + rouge (~> 3.1) + rqrcode-rails3 (~> 0.1.7) + rspec-parameterized + rspec-rails (~> 3.7.0) + rspec-retry (~> 0.4.5) + rspec-set (~> 0.1.3) + rspec_junit_formatter + rspec_profiling (~> 0.0.5) + rubocop (~> 0.54.0) + rubocop-rspec (~> 1.22.1) + ruby-fogbugz (~> 0.2.1) + ruby-prof (~> 0.17.0) + ruby-progressbar + ruby_parser (~> 3.8) + rubyzip (~> 1.2.2) + rufus-scheduler (~> 3.4) + rugged (~> 0.27) + sanitize (~> 4.6) + sass (~> 3.5) + sass-rails (~> 5.0.6) + scss_lint (~> 0.56.0) + seed-fu (~> 2.3.7) + select2-rails (~> 3.5.9) + selenium-webdriver (~> 3.12) + sentry-raven (~> 2.7) + settingslogic (~> 2.0.9) + sham_rack (~> 1.3.6) + shoulda-matchers (~> 3.1.2) + sidekiq (~> 5.2.1) + sidekiq-cron (~> 0.6.0) + simple_po_parser (~> 1.1.2) + simplecov (~> 0.14.0) + slack-notifier (~> 1.5.1) + spring (~> 2.0.0) + spring-commands-rspec (~> 1.0.4) + sprockets (~> 3.7.0) + sshkey (~> 1.9.0) + stackprof (~> 0.2.10) + state_machines-activerecord (~> 0.5.1) + sys-filesystem (~> 1.1.6) + test-prof (~> 0.2.5) + thin (~> 1.7.0) + timecop (~> 0.8.0) + toml-rb (~> 1.0.0) + truncato (~> 0.7.9) + u2f (~> 0.2.1) + uglifier (~> 2.7.2) + unf (~> 0.1.4) + unicorn (~> 5.1.0) + unicorn-worker-killer (~> 0.4.4) + validates_hostname (~> 1.0.6) + version_sorter (~> 2.1.0) + virtus (~> 1.0.1) + vmstat (~> 2.3.0) + webmock (~> 2.3.2) + webpack-rails (~> 0.9.10) + wikicloth (= 0.8.1) + +BUNDLED WITH + 1.17.3 diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix new file mode 100644 index 000000000000..10b8c3f25ead --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix @@ -0,0 +1,3524 @@ +{ + abstract_type = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14"; + type = "gem"; + }; + version = "0.0.7"; + }; + ace-rails-ap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h"; + type = "gem"; + }; + version = "4.1.2"; + }; + actioncable = { + dependencies = ["actionpack" "nio4r" "websocket-driver"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1443cal16yzc94hfxcx9ljagdbs5xs54bmr55wzmg84wx28bgvrb"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "077g5yg8l10rcs8r63pmmikakma1nr2bvxa1ifly1vbry8lajmhm"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zn3gw1naz1l6kcb4h5all24kisdv8fk733vm1niiaq2zmwbvlrw"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "053z1r9lbyqb7a8mvi7ppwgphqg1pn9ynhklwxavq65cym8qn9a1"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w9rspq9y5a99kyljzam7k0cpvkxpzhfmlvs1j6a4flxn14qy7lv"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activemodel = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i808lgn542x0lyk2dlnziiqcf1nmxhxqf6125dq6brr08yxgr0c"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qva7vdv9arliza0155k0xh5w1q6rzdajj3rmj7hv0f86ybd674c"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activerecord_sane_schema_dumper = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16jbf461wjaxyq26si5505wcj46mi23mii9hx4wjpva1zn9hz5m2"; + type = "gem"; + }; + version = "1.0"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02dnmcmkvzijbzm5nlmrd55s5586b78s087kvpvkada3791b9agb"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + acts-as-taggable-on = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i"; + type = "gem"; + }; + version = "5.0.0"; + }; + adamantium = { + dependencies = ["ice_nine" "memoizable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak"; + type = "gem"; + }; + version = "0.2.0"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + type = "gem"; + }; + version = "2.5.2"; + }; + aes_key_wrap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07"; + type = "gem"; + }; + version = "1.0.1"; + }; + akismet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w"; + type = "gem"; + }; + version = "2.0.0"; + }; + arel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l757dkkaxk5fq3368l79jpyzq9a9driricjamhiwhwvh0h7xcyx"; + type = "gem"; + }; + version = "7.1.4"; + }; + asana = { + dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h0qiywvjjc9iyzq9nz5iaqyh6qsrix4ip0w86j5c4v5g940z6qx"; + type = "gem"; + }; + version = "0.8.1"; + }; + asciidoctor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qld3a1pbcjvs8lbxp95iz83bfmg5scmnf8q3rklinmdmhzakslx"; + type = "gem"; + }; + version = "1.5.8"; + }; + asciidoctor-plantuml = { + dependencies = ["asciidoctor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna"; + type = "gem"; + }; + version = "0.0.8"; + }; + ast = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; + type = "gem"; + }; + version = "2.4.0"; + }; + atomic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9"; + type = "gem"; + }; + version = "1.1.99"; + }; + attr_encrypted = { + dependencies = ["encryptor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg"; + type = "gem"; + }; + version = "3.1.0"; + }; + attr_required = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc"; + type = "gem"; + }; + version = "1.0.0"; + }; + awesome_print = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h"; + type = "gem"; + }; + version = "1.8.0"; + }; + axiom-types = { + dependencies = ["descendants_tracker" "ice_nine" "thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; + type = "gem"; + }; + version = "0.1.1"; + }; + babosa = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f"; + type = "gem"; + }; + version = "1.0.2"; + }; + base32 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk"; + type = "gem"; + }; + version = "0.3.2"; + }; + batch-loader = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pwr2hk9x1qx9i2xpkpjwkdjsmm4kamz5f25wizsaw37zb64apjc"; + type = "gem"; + }; + version = "1.2.2"; + }; + bcrypt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy"; + type = "gem"; + }; + version = "3.1.12"; + }; + bcrypt_pbkdf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv"; + type = "gem"; + }; + version = "1.0.0"; + }; + benchmark-ips = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j"; + type = "gem"; + }; + version = "2.3.0"; + }; + better_errors = { + dependencies = ["coderay" "erubi" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7"; + type = "gem"; + }; + version = "2.5.0"; + }; + bindata = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr"; + type = "gem"; + }; + version = "2.4.3"; + }; + binding_ninja = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19dk26qyx433ffa6y48511apc2iw71zw4jnlqxhy0wix9dlxr2ri"; + type = "gem"; + }; + version = "0.2.2"; + }; + binding_of_caller = { + dependencies = ["debug_inspector"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g"; + type = "gem"; + }; + version = "0.8.0"; + }; + bootsnap = { + dependencies = ["msgpack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy"; + type = "gem"; + }; + version = "1.3.2"; + }; + bootstrap_form = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw"; + type = "gem"; + }; + version = "2.7.0"; + }; + brakeman = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v"; + type = "gem"; + }; + version = "4.2.1"; + }; + browser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f"; + type = "gem"; + }; + version = "2.5.3"; + }; + builder = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + bullet = { + dependencies = ["activesupport" "uniform_notifier"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5"; + type = "gem"; + }; + version = "5.5.1"; + }; + bundler-audit = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb"; + type = "gem"; + }; + version = "0.5.0"; + }; + byebug = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vv7s88w8jb1qg4qz3jrs3x3y5d9jfyyl7wfiz78b5x95ydvx41q"; + type = "gem"; + }; + version = "9.1.0"; + }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hkl6p07gf29952biv07fy88vjz46ng2h37wwx5ks0mk9kn8vvvf"; + type = "gem"; + }; + version = "2.16.1"; + }; + capybara-screenshot = { + dependencies = ["capybara" "launchy"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q"; + type = "gem"; + }; + version = "1.0.22"; + }; + carrierwave = { + dependencies = ["activemodel" "activesupport" "mime-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks"; + type = "gem"; + }; + version = "1.3.1"; + }; + cause = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00"; + type = "gem"; + }; + version = "0.1"; + }; + charlock_holmes = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5"; + type = "gem"; + }; + version = "0.7.6"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; + chronic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"; + type = "gem"; + }; + version = "0.10.2"; + }; + chronic_duration = { + dependencies = ["numerizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs"; + type = "gem"; + }; + version = "0.10.6"; + }; + chunky_png = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn"; + type = "gem"; + }; + version = "1.3.5"; + }; + citrus = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf"; + type = "gem"; + }; + version = "3.0.2"; + }; + coderay = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + coercible = { + dependencies = ["descendants_tracker"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; + type = "gem"; + }; + version = "1.0.0"; + }; + commonmarker = { + dependencies = ["ruby-enum"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9"; + type = "gem"; + }; + version = "0.17.13"; + }; + concord = { + dependencies = ["adamantium" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg"; + type = "gem"; + }; + version = "0.1.5"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb"; + type = "gem"; + }; + version = "1.1.3"; + }; + concurrent-ruby-ext = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h7k4wnvbxv7vzb53kaqxbbyhp3m98g2rgymr6n1l9v0jlzcr1i8"; + type = "gem"; + }; + version = "1.1.3"; + }; + connection_pool = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68"; + type = "gem"; + }; + version = "2.2.2"; + }; + crack = { + dependencies = ["safe_yaml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"; + type = "gem"; + }; + version = "0.4.3"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + creole = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"; + type = "gem"; + }; + version = "0.5.0"; + }; + css_parser = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy"; + type = "gem"; + }; + version = "1.5.0"; + }; + daemons = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2"; + type = "gem"; + }; + version = "1.2.6"; + }; + database_cleaner = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x"; + type = "gem"; + }; + version = "1.7.0"; + }; + debug_inspector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0"; + type = "gem"; + }; + version = "0.0.3"; + }; + debugger-ruby_core_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd"; + type = "gem"; + }; + version = "1.3.8"; + }; + deckar01-task_list = { + dependencies = ["html-pipeline"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j"; + type = "gem"; + }; + version = "2.0.0"; + }; + declarative = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j"; + type = "gem"; + }; + version = "0.0.10"; + }; + declarative-option = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p"; + type = "gem"; + }; + version = "0.1.0"; + }; + descendants_tracker = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; + type = "gem"; + }; + version = "0.0.4"; + }; + device_detector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q"; + type = "gem"; + }; + version = "1.0.0"; + }; + devise = { + dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj"; + type = "gem"; + }; + version = "4.4.3"; + }; + devise-two-factor = { + dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs"; + type = "gem"; + }; + version = "3.0.0"; + }; + diff-lcs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; + }; + version = "1.3"; + }; + diffy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj"; + type = "gem"; + }; + version = "3.1.0"; + }; + discordrb-webhooks-blackst0ne = { + dependencies = ["rest-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39"; + type = "gem"; + }; + version = "3.3.0"; + }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; + domain_name = { + dependencies = ["unf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"; + type = "gem"; + }; + version = "0.5.20180417"; + }; + doorkeeper = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz"; + type = "gem"; + }; + version = "4.3.2"; + }; + doorkeeper-openid_connect = { + dependencies = ["doorkeeper" "json-jwt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95"; + type = "gem"; + }; + version = "1.5.0"; + }; + ed25519 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw"; + type = "gem"; + }; + version = "1.2.4"; + }; + email_reply_trimmer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz"; + type = "gem"; + }; + version = "0.1.6"; + }; + email_spec = { + dependencies = ["htmlentities" "launchy" "mail"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0"; + type = "gem"; + }; + version = "2.2.0"; + }; + encryptor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; + type = "gem"; + }; + version = "3.0.0"; + }; + equalizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; + type = "gem"; + }; + version = "0.0.11"; + }; + erubi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bws86na9k565raiz0kk61yy5pxxp0fmwyzpibdwjkq0xzx8q6q1"; + type = "gem"; + }; + version = "1.7.1"; + }; + erubis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; + type = "gem"; + }; + version = "2.7.0"; + }; + escape_utils = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5"; + type = "gem"; + }; + version = "1.2.1"; + }; + et-orbi = { + dependencies = ["tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi"; + type = "gem"; + }; + version = "1.0.3"; + }; + eventmachine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + excon = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2"; + type = "gem"; + }; + version = "0.62.0"; + }; + execjs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw"; + type = "gem"; + }; + version = "2.6.0"; + }; + expression_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib"; + type = "gem"; + }; + version = "0.9.0"; + }; + factory_bot = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx"; + type = "gem"; + }; + version = "4.8.2"; + }; + factory_bot_rails = { + dependencies = ["factory_bot" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2"; + type = "gem"; + }; + version = "4.8.2"; + }; + faraday = { + dependencies = ["multipart-post"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2"; + type = "gem"; + }; + version = "0.12.2"; + }; + faraday_middleware = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d"; + type = "gem"; + }; + version = "0.12.2"; + }; + faraday_middleware-multi_json = { + dependencies = ["faraday_middleware" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q"; + type = "gem"; + }; + version = "0.0.6"; + }; + fast_blank = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56"; + type = "gem"; + }; + version = "1.0.0"; + }; + fast_gettext = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3"; + type = "gem"; + }; + version = "1.6.0"; + }; + ffaker = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3"; + type = "gem"; + }; + version = "2.10.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q"; + type = "gem"; + }; + version = "1.9.25"; + }; + flipper = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw"; + type = "gem"; + }; + version = "0.13.0"; + }; + flipper-active_record = { + dependencies = ["activerecord" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1"; + type = "gem"; + }; + version = "0.13.0"; + }; + flipper-active_support_cache_store = { + dependencies = ["activesupport" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk"; + type = "gem"; + }; + version = "0.13.0"; + }; + flowdock = { + dependencies = ["httparty" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg"; + type = "gem"; + }; + version = "0.7.1"; + }; + fog-aliyun = { + dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m"; + type = "gem"; + }; + version = "0.2.0"; + }; + fog-aws = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3"; + type = "gem"; + }; + version = "2.0.1"; + }; + fog-core = { + dependencies = ["builder" "excon" "formatador"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3"; + type = "gem"; + }; + version = "1.45.0"; + }; + fog-google = { + dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2"; + type = "gem"; + }; + version = "1.7.1"; + }; + fog-json = { + dependencies = ["fog-core" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r"; + type = "gem"; + }; + version = "1.0.2"; + }; + fog-local = { + dependencies = ["fog-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn"; + type = "gem"; + }; + version = "0.3.1"; + }; + fog-openstack = { + dependencies = ["fog-core" "fog-json" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys"; + type = "gem"; + }; + version = "0.1.21"; + }; + fog-rackspace = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a"; + type = "gem"; + }; + version = "0.1.1"; + }; + fog-xml = { + dependencies = ["fog-core" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n"; + type = "gem"; + }; + version = "0.1.3"; + }; + font-awesome-rails = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw"; + type = "gem"; + }; + version = "4.7.0.1"; + }; + foreman = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0"; + type = "gem"; + }; + version = "0.84.0"; + }; + formatador = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; + type = "gem"; + }; + version = "0.2.5"; + }; + fuubar = { + dependencies = ["rspec-core" "ruby-progressbar"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv"; + type = "gem"; + }; + version = "2.2.0"; + }; + gemojione = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + type = "gem"; + }; + version = "3.3.0"; + }; + get_process_mem = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29"; + type = "gem"; + }; + version = "0.2.0"; + }; + gettext = { + dependencies = ["locale" "text"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr"; + type = "gem"; + }; + version = "3.2.9"; + }; + gettext_i18n_rails = { + dependencies = ["fast_gettext"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm"; + type = "gem"; + }; + version = "1.8.0"; + }; + gettext_i18n_rails_js = { + dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x"; + type = "gem"; + }; + version = "1.3.0"; + }; + gitaly-proto = { + dependencies = ["grpc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p7c63saysp4ixj08kxrk5c4n94d6zala9wl1fxg7vx8nd84b2c0"; + type = "gem"; + }; + version = "1.5.0"; + }; + github-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp"; + type = "gem"; + }; + version = "1.7.0"; + }; + gitlab-default_value_for = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qqjf7nxmwxnkdlrgbnby8wjckaj2s5yna96avgb7fwm0h90f1sn"; + type = "gem"; + }; + version = "3.1.1"; + }; + gitlab-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12lzzhbmid4m23pk7d963n3njli2hw7g200arszh75j57bjgs4fy"; + type = "gem"; + }; + version = "1.6.5"; + }; + gitlab-sidekiq-fetcher = { + dependencies = ["sidekiq"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xaag97iclmiay8fx7dkiws8dsws2gi6l0axq4yljq5g7xm78qjr"; + type = "gem"; + }; + version = "0.4.0"; + }; + gitlab-styles = { + dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx"; + type = "gem"; + }; + version = "2.4.1"; + }; + gitlab_omniauth-ldap = { + dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv"; + type = "gem"; + }; + version = "2.0.4"; + }; + globalid = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38"; + type = "gem"; + }; + version = "0.4.1"; + }; + gon = { + dependencies = ["actionpack" "multi_json" "request_store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806"; + type = "gem"; + }; + version = "6.2.0"; + }; + google-api-client = { + dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k"; + type = "gem"; + }; + version = "0.23.4"; + }; + google-protobuf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf"; + type = "gem"; + }; + version = "3.6.1"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq"; + type = "gem"; + }; + version = "1.0.2"; + }; + googleauth = { + dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l"; + type = "gem"; + }; + version = "0.6.6"; + }; + gpgme = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m"; + type = "gem"; + }; + version = "2.0.18"; + }; + grape = { + dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c"; + type = "gem"; + }; + version = "1.1.0"; + }; + grape-entity = { + dependencies = ["activesupport" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9"; + type = "gem"; + }; + version = "0.7.1"; + }; + grape-path-helpers = { + dependencies = ["activesupport" "grape" "rake"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw"; + type = "gem"; + }; + version = "1.0.6"; + }; + grape_logging = { + dependencies = ["grape"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza"; + type = "gem"; + }; + version = "1.7.0"; + }; + graphiql-rails = { + dependencies = ["railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8"; + type = "gem"; + }; + version = "1.4.10"; + }; + graphql = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl"; + type = "gem"; + }; + version = "1.8.1"; + }; + grpc = { + dependencies = ["google-protobuf" "googleapis-common-protos-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb"; + type = "gem"; + }; + version = "1.15.0"; + }; + haml = { + dependencies = ["temple" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac"; + type = "gem"; + }; + version = "5.0.4"; + }; + haml_lint = { + dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "125aj0j84nx5gqm42hfx5d8486higlra423ahgfpsdjwbp399rwv"; + type = "gem"; + }; + version = "0.28.0"; + }; + hamlit = { + dependencies = ["temple" "thor" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i"; + type = "gem"; + }; + version = "2.8.8"; + }; + hangouts-chat = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx"; + type = "gem"; + }; + version = "0.0.5"; + }; + hashdiff = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a"; + type = "gem"; + }; + version = "0.3.4"; + }; + hashie = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb"; + type = "gem"; + }; + version = "3.5.7"; + }; + hashie-forbidden_attributes = { + dependencies = ["hashie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis"; + type = "gem"; + }; + version = "0.1.1"; + }; + health_check = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8"; + type = "gem"; + }; + version = "2.6.0"; + }; + hipchat = { + dependencies = ["httparty" "mimemagic"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k"; + type = "gem"; + }; + version = "1.5.2"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad"; + type = "gem"; + }; + version = "2.8.4"; + }; + html2text = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii"; + type = "gem"; + }; + version = "0.2.0"; + }; + htmlentities = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + http = { + dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc"; + type = "gem"; + }; + version = "3.3.0"; + }; + http-cookie = { + dependencies = ["domain_name"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; + type = "gem"; + }; + version = "1.0.3"; + }; + http-form_data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3"; + type = "gem"; + }; + version = "2.1.1"; + }; + "http_parser.rb" = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + httparty = { + dependencies = ["json" "multi_xml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2"; + type = "gem"; + }; + version = "0.13.7"; + }; + httpclient = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "079sqshk08mqs3d6yzvshmqf4s175lpi2pp71f1p10l09sgmrixr"; + type = "gem"; + }; + version = "1.2.0"; + }; + icalendar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd"; + type = "gem"; + }; + version = "2.4.1"; + }; + ice_nine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x"; + type = "gem"; + }; + version = "0.11.2"; + }; + influxdb = { + dependencies = ["cause" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w"; + type = "gem"; + }; + version = "0.2.3"; + }; + ipaddress = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; + type = "gem"; + }; + version = "0.8.3"; + }; + jira-ruby = { + dependencies = ["activesupport" "multipart-post" "oauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw"; + type = "gem"; + }; + version = "1.4.1"; + }; + jquery-atwho-rails = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9"; + type = "gem"; + }; + version = "1.3.2"; + }; + js_regex = { + dependencies = ["regexp_parser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf"; + type = "gem"; + }; + version = "2.2.1"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; + type = "gem"; + }; + version = "1.8.6"; + }; + json-jwt = { + dependencies = ["activesupport" "aes_key_wrap" "bindata"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r"; + type = "gem"; + }; + version = "1.9.4"; + }; + json-schema = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz"; + type = "gem"; + }; + version = "2.8.0"; + }; + jwt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky"; + type = "gem"; + }; + version = "2.1.0"; + }; + kaminari = { + dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-actionview = { + dependencies = ["actionview" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-activerecord = { + dependencies = ["activerecord" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-core = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr"; + type = "gem"; + }; + version = "1.0.1"; + }; + kgio = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118"; + type = "gem"; + }; + version = "2.10.0"; + }; + knapsack = { + dependencies = ["rake"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92"; + type = "gem"; + }; + version = "1.17.0"; + }; + kubeclient = { + dependencies = ["http" "recursive-open-struct" "rest-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s250z89nz7vzich3nikc8fs8vgpac38wjv8llm4ldvs4iyc4ypg"; + type = "gem"; + }; + version = "4.0.0"; + }; + launchy = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; + type = "gem"; + }; + version = "2.4.3"; + }; + letter_opener = { + dependencies = ["launchy"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21"; + type = "gem"; + }; + version = "1.4.1"; + }; + letter_opener_web = { + dependencies = ["actionmailer" "letter_opener" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv"; + type = "gem"; + }; + version = "1.3.0"; + }; + license_finder = { + dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v"; + type = "gem"; + }; + version = "5.4.0"; + }; + licensee = { + dependencies = ["rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc"; + type = "gem"; + }; + version = "8.9.2"; + }; + locale = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"; + type = "gem"; + }; + version = "2.1.2"; + }; + lograge = { + dependencies = ["actionpack" "activesupport" "railties" "request_store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd"; + type = "gem"; + }; + version = "0.10.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"; + type = "gem"; + }; + version = "2.2.3"; + }; + mail = { + dependencies = ["mini_mime"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; + type = "gem"; + }; + version = "2.7.1"; + }; + mail_room = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa"; + type = "gem"; + }; + version = "0.9.1"; + }; + memoist = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh"; + type = "gem"; + }; + version = "0.16.0"; + }; + memoizable = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"; + type = "gem"; + }; + version = "0.4.2"; + }; + method_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; + type = "gem"; + }; + version = "0.9.2"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk"; + type = "gem"; + }; + version = "3.2.2"; + }; + mime-types-data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc"; + type = "gem"; + }; + version = "3.2018.0812"; + }; + mimemagic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q"; + type = "gem"; + }; + version = "0.3.2"; + }; + mini_magick = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n"; + type = "gem"; + }; + version = "4.8.0"; + }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + msgpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864"; + type = "gem"; + }; + version = "1.2.4"; + }; + multi_json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + multi_xml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + multipart-post = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + type = "gem"; + }; + version = "2.0.0"; + }; + mustermann = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1"; + type = "gem"; + }; + version = "1.0.3"; + }; + mustermann-grape = { + dependencies = ["mustermann"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr"; + type = "gem"; + }; + version = "1.0.0"; + }; + mysql2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq"; + type = "gem"; + }; + version = "0.4.10"; + }; + nakayoshi_fork = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg"; + type = "gem"; + }; + version = "0.0.4"; + }; + net-ldap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq"; + type = "gem"; + }; + version = "0.16.0"; + }; + net-ssh = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w"; + type = "gem"; + }; + version = "5.0.1"; + }; + netrc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; + type = "gem"; + }; + version = "0.11.0"; + }; + nio4r = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"; + type = "gem"; + }; + version = "2.3.1"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; + type = "gem"; + }; + version = "1.8.5"; + }; + nokogumbo = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj"; + type = "gem"; + }; + version = "1.5.0"; + }; + numerizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h"; + type = "gem"; + }; + version = "0.1.1"; + }; + oauth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y"; + type = "gem"; + }; + version = "0.5.4"; + }; + oauth2 = { + dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh"; + type = "gem"; + }; + version = "1.4.1"; + }; + octokit = { + dependencies = ["sawyer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298"; + type = "gem"; + }; + version = "4.9.0"; + }; + omniauth = { + dependencies = ["hashie" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x"; + type = "gem"; + }; + version = "1.9.0"; + }; + omniauth-auth0 = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2"; + type = "gem"; + }; + version = "2.0.0"; + }; + omniauth-authentiq = { + dependencies = ["jwt" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi"; + type = "gem"; + }; + version = "0.3.3"; + }; + omniauth-azure-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4"; + type = "gem"; + }; + version = "0.0.10"; + }; + omniauth-cas3 = { + dependencies = ["addressable" "nokogiri" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx"; + type = "gem"; + }; + version = "1.1.4"; + }; + omniauth-facebook = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5"; + type = "gem"; + }; + version = "4.0.0"; + }; + omniauth-github = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc"; + type = "gem"; + }; + version = "1.3.0"; + }; + omniauth-gitlab = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp"; + type = "gem"; + }; + version = "1.0.3"; + }; + omniauth-google-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df"; + type = "gem"; + }; + version = "0.6.0"; + }; + omniauth-kerberos = { + dependencies = ["omniauth-multipassword" "timfel-krb5-auth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7"; + type = "gem"; + }; + version = "0.3.0"; + }; + omniauth-multipassword = { + dependencies = ["omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8"; + type = "gem"; + }; + version = "0.4.2"; + }; + omniauth-oauth = { + dependencies = ["oauth" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037"; + type = "gem"; + }; + version = "1.1.0"; + }; + omniauth-oauth2 = { + dependencies = ["oauth2" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79"; + type = "gem"; + }; + version = "1.6.0"; + }; + omniauth-oauth2-generic = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273"; + type = "gem"; + }; + version = "0.2.2"; + }; + omniauth-saml = { + dependencies = ["omniauth" "ruby-saml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p"; + type = "gem"; + }; + version = "1.10.0"; + }; + omniauth-shibboleth = { + dependencies = ["omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh"; + type = "gem"; + }; + version = "1.3.0"; + }; + omniauth-twitter = { + dependencies = ["omniauth-oauth" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65"; + type = "gem"; + }; + version = "1.4.0"; + }; + omniauth_crowd = { + dependencies = ["activesupport" "nokogiri" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7"; + type = "gem"; + }; + version = "2.2.3"; + }; + org-ruby = { + dependencies = ["rubypants"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk"; + type = "gem"; + }; + version = "0.9.12"; + }; + orm_adapter = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; + type = "gem"; + }; + version = "0.5.0"; + }; + os = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk"; + type = "gem"; + }; + version = "1.0.0"; + }; + parallel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"; + type = "gem"; + }; + version = "1.12.1"; + }; + parser = { + dependencies = ["ast"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f"; + type = "gem"; + }; + version = "2.5.3.0"; + }; + parslet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88"; + type = "gem"; + }; + version = "1.8.2"; + }; + peek = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn"; + type = "gem"; + }; + version = "1.0.1"; + }; + peek-gc = { + dependencies = ["peek"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9"; + type = "gem"; + }; + version = "0.0.2"; + }; + peek-mysql2 = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "mysql2" "peek"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0avmwm3yw0kx0z8gh4cpqj79jb5aicd0h3yzrcdfpzwks56h1k9z"; + type = "gem"; + }; + version = "1.2.0"; + }; + peek-pg = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c"; + type = "gem"; + }; + version = "1.3.0"; + }; + peek-rblineprof = { + dependencies = ["peek" "rblineprof"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c"; + type = "gem"; + }; + version = "0.2.0"; + }; + peek-redis = { + dependencies = ["atomic" "peek" "redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33"; + type = "gem"; + }; + version = "1.2.0"; + }; + pg = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32"; + type = "gem"; + }; + version = "0.18.4"; + }; + po_to_json = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba"; + type = "gem"; + }; + version = "1.0.1"; + }; + powerpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43"; + type = "gem"; + }; + version = "0.1.1"; + }; + premailer = { + dependencies = ["addressable" "css_parser" "htmlentities"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf"; + type = "gem"; + }; + version = "1.10.4"; + }; + premailer-rails = { + dependencies = ["actionmailer" "premailer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim"; + type = "gem"; + }; + version = "1.9.7"; + }; + proc_to_ast = { + dependencies = ["coderay" "parser" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj"; + type = "gem"; + }; + version = "0.1.0"; + }; + procto = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c"; + type = "gem"; + }; + version = "0.0.3"; + }; + prometheus-client-mmap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10"; + type = "gem"; + }; + version = "0.9.4"; + }; + pry = { + dependencies = ["coderay" "method_source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g"; + type = "gem"; + }; + version = "0.11.3"; + }; + pry-byebug = { + dependencies = ["byebug" "pry"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f9kj1qp14qb8crg2rdzf22pr6ngxvy4n6ipymla8q1yjr842625"; + type = "gem"; + }; + version = "3.5.1"; + }; + pry-rails = { + dependencies = ["pry"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy"; + type = "gem"; + }; + version = "0.3.6"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + puma = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq"; + type = "gem"; + }; + version = "3.12.0"; + }; + puma_worker_killer = { + dependencies = ["get_process_mem" "puma"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i"; + type = "gem"; + }; + version = "0.1.0"; + }; + pyu-ruby-sasl = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; + type = "gem"; + }; + version = "0.0.3.3"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm"; + type = "gem"; + }; + version = "2.0.6"; + }; + rack-accept = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"; + type = "gem"; + }; + version = "0.4.5"; + }; + rack-attack = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1"; + type = "gem"; + }; + version = "4.4.1"; + }; + rack-cors = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013"; + type = "gem"; + }; + version = "1.0.2"; + }; + rack-oauth2 = { + dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf"; + type = "gem"; + }; + version = "1.2.3"; + }; + rack-protection = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ylx74ravz7nvnyygq0nk3v86qdzrmqxpwpayhppyy50l72rcajq"; + type = "gem"; + }; + version = "2.0.4"; + }; + rack-proxy = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4"; + type = "gem"; + }; + version = "0.6.0"; + }; + rack-test = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; + type = "gem"; + }; + version = "0.6.3"; + }; + rails = { + dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0blacnfcn2944cml69wji2ywp9c13qjiciavnfsa9vpimk8ixq9w"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + rails-controller-testing = { + dependencies = ["actionpack" "actionview" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy"; + type = "gem"; + }; + version = "1.0.2"; + }; + rails-deprecated_sanitizer = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; + type = "gem"; + }; + version = "1.0.3"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + type = "gem"; + }; + version = "2.0.3"; + }; + rails-html-sanitizer = { + dependencies = ["loofah"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; + type = "gem"; + }; + version = "1.0.4"; + }; + rails-i18n = { + dependencies = ["i18n" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rqij2ggqz5iq36lbibhnd7pl4qxrvv9kgw9s0c6594vzbbxmhs0"; + type = "gem"; + }; + version = "5.1.1"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cfh2ijfalxj8hhf0rfw8bqhazsq6km7barsxczsvyl2a9islanr"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + rainbow = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; + type = "gem"; + }; + version = "3.0.0"; + }; + raindrops = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz"; + type = "gem"; + }; + version = "0.18.0"; + }; + rake = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn"; + type = "gem"; + }; + version = "12.3.2"; + }; + rb-fsevent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"; + type = "gem"; + }; + version = "0.10.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"; + type = "gem"; + }; + version = "0.9.10"; + }; + rblineprof = { + dependencies = ["debugger-ruby_core_source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6"; + type = "gem"; + }; + version = "0.3.6"; + }; + rbtrace = { + dependencies = ["ffi" "msgpack" "trollop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv"; + type = "gem"; + }; + version = "0.4.10"; + }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7"; + type = "gem"; + }; + version = "6.0.4"; + }; + re2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i"; + type = "gem"; + }; + version = "1.1.1"; + }; + recaptcha = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n"; + type = "gem"; + }; + version = "3.0.0"; + }; + recursive-open-struct = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c"; + type = "gem"; + }; + version = "1.1.0"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + RedCloth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy"; + type = "gem"; + }; + version = "4.3.2"; + }; + redis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv"; + type = "gem"; + }; + version = "3.3.5"; + }; + redis-actionpack = { + dependencies = ["actionpack" "redis-rack" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63"; + type = "gem"; + }; + version = "5.0.2"; + }; + redis-activesupport = { + dependencies = ["activesupport" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5"; + type = "gem"; + }; + version = "5.0.4"; + }; + redis-namespace = { + dependencies = ["redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah"; + type = "gem"; + }; + version = "1.6.0"; + }; + redis-rack = { + dependencies = ["rack" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb"; + type = "gem"; + }; + version = "2.0.4"; + }; + redis-rails = { + dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40"; + type = "gem"; + }; + version = "5.0.2"; + }; + redis-store = { + dependencies = ["redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b"; + type = "gem"; + }; + version = "1.6.0"; + }; + regexp_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb"; + type = "gem"; + }; + version = "0.5.0"; + }; + representable = { + dependencies = ["declarative" "declarative-option" "uber"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07"; + type = "gem"; + }; + version = "3.0.4"; + }; + request_store = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv"; + type = "gem"; + }; + version = "1.3.1"; + }; + responders = { + dependencies = ["actionpack" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn"; + type = "gem"; + }; + version = "2.4.0"; + }; + rest-client = { + dependencies = ["http-cookie" "mime-types" "netrc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j"; + type = "gem"; + }; + version = "2.0.2"; + }; + retriable = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha"; + type = "gem"; + }; + version = "3.1.2"; + }; + rinku = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y"; + type = "gem"; + }; + version = "2.0.0"; + }; + rotp = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d"; + type = "gem"; + }; + version = "2.1.2"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql"; + type = "gem"; + }; + version = "3.3.0"; + }; + rqrcode = { + dependencies = ["chunky_png"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb"; + type = "gem"; + }; + version = "0.7.0"; + }; + rqrcode-rails3 = { + dependencies = ["rqrcode"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg"; + type = "gem"; + }; + version = "0.1.7"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-parameterized = { + dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "159yw3mb4dab5kr18a97miyyi7dqmyrfjp3aw6r6j9i4xkc4xk3a"; + type = "gem"; + }; + version = "0.4.1"; + }; + rspec-rails = { + dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx"; + type = "gem"; + }; + version = "3.7.2"; + }; + rspec-retry = { + dependencies = ["rspec-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6"; + type = "gem"; + }; + version = "0.4.5"; + }; + rspec-set = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk"; + type = "gem"; + }; + version = "0.1.3"; + }; + rspec-support = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec_junit_formatter = { + dependencies = ["rspec-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p"; + type = "gem"; + }; + version = "0.4.1"; + }; + rspec_profiling = { + dependencies = ["activerecord" "pg" "rails" "sqlite3"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz"; + type = "gem"; + }; + version = "0.0.5"; + }; + rubocop = { + dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is"; + type = "gem"; + }; + version = "0.54.0"; + }; + rubocop-gitlab-security = { + dependencies = ["rubocop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln"; + type = "gem"; + }; + version = "0.1.1"; + }; + rubocop-rspec = { + dependencies = ["rubocop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla"; + type = "gem"; + }; + version = "1.22.2"; + }; + ruby-enum = { + dependencies = ["i18n"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx"; + type = "gem"; + }; + version = "0.7.2"; + }; + ruby-fogbugz = { + dependencies = ["crack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm"; + type = "gem"; + }; + version = "0.2.1"; + }; + ruby-prof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c"; + type = "gem"; + }; + version = "0.17.0"; + }; + ruby-progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk"; + type = "gem"; + }; + version = "1.9.0"; + }; + ruby-saml = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3"; + type = "gem"; + }; + version = "1.7.2"; + }; + ruby_parser = { + dependencies = ["sexp_processor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mysmdyxhvyn6dhshfxyw762f9asr3kxw45idvw1bh6np31kk4j1"; + type = "gem"; + }; + version = "3.11.0"; + }; + rubyntlm = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy"; + type = "gem"; + }; + version = "0.6.2"; + }; + rubypants = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph"; + type = "gem"; + }; + version = "0.2.0"; + }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + rufus-scheduler = { + dependencies = ["et-orbi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8"; + type = "gem"; + }; + version = "3.4.0"; + }; + rugged = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6"; + type = "gem"; + }; + version = "0.27.5"; + }; + safe_yaml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; + type = "gem"; + }; + version = "1.0.4"; + }; + sanitize = { + dependencies = ["crass" "nokogiri" "nokogumbo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv"; + type = "gem"; + }; + version = "4.6.6"; + }; + sass = { + dependencies = ["sass-listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v"; + type = "gem"; + }; + version = "3.5.5"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + sass-rails = { + dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb"; + type = "gem"; + }; + version = "5.0.6"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd"; + type = "gem"; + }; + version = "0.8.1"; + }; + scss_lint = { + dependencies = ["rake" "sass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g"; + type = "gem"; + }; + version = "0.56.0"; + }; + seed-fu = { + dependencies = ["activerecord" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi"; + type = "gem"; + }; + version = "2.3.7"; + }; + select2-rails = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj"; + type = "gem"; + }; + version = "3.5.9.3"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz"; + type = "gem"; + }; + version = "3.12.0"; + }; + sentry-raven = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0bci35amy7pqv81djyjcx023q4qylmq8a2zbx14zh6ifzib4f4"; + type = "gem"; + }; + version = "2.7.4"; + }; + settingslogic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar"; + type = "gem"; + }; + version = "2.0.9"; + }; + sexp_processor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vnmphfrd86694x5k7rxddbhbvv5rqbglsc34kfryy4jqhbzz42c"; + type = "gem"; + }; + version = "4.11.0"; + }; + sham_rack = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i"; + type = "gem"; + }; + version = "1.3.6"; + }; + shoulda-matchers = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a"; + type = "gem"; + }; + version = "3.1.2"; + }; + sidekiq = { + dependencies = ["connection_pool" "rack-protection" "redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zyf9y3rvzizbwh68i2g1lzd40lalrdc4iyjmaa74gnfwsf92i26"; + type = "gem"; + }; + version = "5.2.3"; + }; + sidekiq-cron = { + dependencies = ["rufus-scheduler" "sidekiq"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj"; + type = "gem"; + }; + version = "0.6.0"; + }; + signet = { + dependencies = ["addressable" "faraday" "jwt" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4"; + type = "gem"; + }; + version = "0.11.0"; + }; + simple_po_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3"; + type = "gem"; + }; + version = "1.1.2"; + }; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww"; + type = "gem"; + }; + version = "0.14.1"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf"; + type = "gem"; + }; + version = "0.10.0"; + }; + slack-notifier = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6"; + type = "gem"; + }; + version = "1.5.1"; + }; + spring = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75"; + type = "gem"; + }; + version = "2.0.2"; + }; + spring-commands-rspec = { + dependencies = ["spring"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; + type = "gem"; + }; + version = "1.0.4"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; + type = "gem"; + }; + version = "3.2.1"; + }; + sqlite3 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i"; + type = "gem"; + }; + version = "1.3.13"; + }; + sshkey = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h"; + type = "gem"; + }; + version = "1.9.0"; + }; + stackprof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski"; + type = "gem"; + }; + version = "0.2.10"; + }; + state_machines = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3"; + type = "gem"; + }; + version = "0.5.0"; + }; + state_machines-activemodel = { + dependencies = ["activemodel" "state_machines"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l"; + type = "gem"; + }; + version = "0.5.1"; + }; + state_machines-activerecord = { + dependencies = ["activerecord" "state_machines-activemodel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3"; + type = "gem"; + }; + version = "0.5.1"; + }; + sys-filesystem = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq"; + type = "gem"; + }; + version = "1.1.6"; + }; + sysexits = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr"; + type = "gem"; + }; + version = "1.2.0"; + }; + temple = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq"; + type = "gem"; + }; + version = "0.8.0"; + }; + test-prof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3"; + type = "gem"; + }; + version = "0.2.5"; + }; + text = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + thin = { + dependencies = ["daemons" "eventmachine" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f"; + type = "gem"; + }; + version = "1.7.2"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns"; + type = "gem"; + }; + version = "0.19.4"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tilt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra"; + type = "gem"; + }; + version = "2.0.8"; + }; + timecop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx"; + type = "gem"; + }; + version = "0.8.1"; + }; + timfel-krb5-auth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b"; + type = "gem"; + }; + version = "0.8.3"; + }; + toml = { + dependencies = ["parslet"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki"; + type = "gem"; + }; + version = "0.2.0"; + }; + toml-rb = { + dependencies = ["citrus"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d"; + type = "gem"; + }; + version = "1.0.0"; + }; + trollop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq"; + type = "gem"; + }; + version = "2.1.3"; + }; + truncato = { + dependencies = ["htmlentities" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b"; + type = "gem"; + }; + version = "0.7.10"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + u2f = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr"; + type = "gem"; + }; + version = "0.2.1"; + }; + uber = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv"; + type = "gem"; + }; + version = "0.1.0"; + }; + uglifier = { + dependencies = ["execjs" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz"; + type = "gem"; + }; + version = "2.7.2"; + }; + unf = { + dependencies = ["unf_ext"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1"; + type = "gem"; + }; + version = "0.0.7.5"; + }; + unicode-display_width = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n"; + type = "gem"; + }; + version = "1.3.2"; + }; + unicorn = { + dependencies = ["kgio" "raindrops"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v"; + type = "gem"; + }; + version = "5.1.0"; + }; + unicorn-worker-killer = { + dependencies = ["get_process_mem" "unicorn"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva"; + type = "gem"; + }; + version = "0.4.4"; + }; + uniform_notifier = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l"; + type = "gem"; + }; + version = "1.10.0"; + }; + unparser = { + dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w662glqi7hwmfvx0smxckxgc7kw5bsqhqz0pyvalbyv1gc0gs2x"; + type = "gem"; + }; + version = "0.4.2"; + }; + validates_hostname = { + dependencies = ["activerecord" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja"; + type = "gem"; + }; + version = "1.0.6"; + }; + version_sorter = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr"; + type = "gem"; + }; + version = "2.1.0"; + }; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk"; + type = "gem"; + }; + version = "1.0.5"; + }; + vmstat = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b"; + type = "gem"; + }; + version = "2.3.0"; + }; + warden = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12"; + type = "gem"; + }; + version = "1.2.7"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5"; + type = "gem"; + }; + version = "2.3.2"; + }; + webpack-rails = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr"; + type = "gem"; + }; + version = "0.9.11"; + }; + websocket-driver = { + dependencies = ["websocket-extensions"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1943442yllhldh9dbp374x2q39cxa49xrm28nb78b7mfbv3y195l"; + type = "gem"; + }; + version = "0.6.5"; + }; + websocket-extensions = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270"; + type = "gem"; + }; + version = "0.1.3"; + }; + wikicloth = { + dependencies = ["builder" "expression_parser" "rinku"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s"; + type = "gem"; + }; + version = "0.8.1"; + }; + with_env = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh"; + type = "gem"; + }; + version = "1.1.0"; + }; + xml-simple = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"; + type = "gem"; + }; + version = "1.1.5"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw"; + type = "gem"; + }; + version = "2.1.0"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile new file mode 100644 index 000000000000..f01944a0e877 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile @@ -0,0 +1,452 @@ +source 'https://rubygems.org' + +gem 'rails', '5.0.7.1' +gem 'rails-deprecated_sanitizer', '~> 1.0.3' + +# Improves copy-on-write performance for MRI +gem 'nakayoshi_fork', '~> 0.0.4' + +# Responders respond_to and respond_with +gem 'responders', '~> 2.0' + +gem 'sprockets', '~> 3.7.0' + +# Default values for AR models +gem 'gitlab-default_value_for', '~> 3.1.1', require: 'default_value_for' + +# Supported DBs +gem 'mysql2', '~> 0.4.10', group: :mysql +gem 'pg', '~> 0.18.2', group: :postgres + +gem 'rugged', '~> 0.27' +gem 'grape-path-helpers', '~> 1.0' + +gem 'faraday', '~> 0.12' + +# Authentication libraries +gem 'devise', '~> 4.4' +gem 'doorkeeper', '~> 4.3' +gem 'doorkeeper-openid_connect', '~> 1.5' +gem 'omniauth', '~> 1.8' +gem 'omniauth-auth0', '~> 2.0.0' +gem 'omniauth-azure-oauth2', '~> 0.0.9' +gem 'omniauth-cas3', '~> 1.1.4' +gem 'omniauth-facebook', '~> 4.0.0' +gem 'omniauth-github', '~> 1.3' +gem 'omniauth-gitlab', '~> 1.0.2' +gem 'omniauth-google-oauth2', '~> 0.6.0' +gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos +gem 'omniauth-oauth2-generic', '~> 0.2.2' +gem 'omniauth-saml', '~> 1.10' +gem 'omniauth-shibboleth', '~> 1.3.0' +gem 'omniauth-twitter', '~> 1.4' +gem 'omniauth_crowd', '~> 2.2.0' +gem 'omniauth-authentiq', '~> 0.3.3' +gem 'rack-oauth2', '~> 1.2.1' +gem 'jwt', '~> 2.1.0' + +# Kerberos authentication. EE-only +gem 'gssapi', group: :kerberos + +# Spam and anti-bot protection +gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails' +gem 'akismet', '~> 2.0' + +# Two-factor authentication +gem 'devise-two-factor', '~> 3.0.0' +gem 'rqrcode-rails3', '~> 0.1.7' +gem 'attr_encrypted', '~> 3.1.0' +gem 'u2f', '~> 0.2.1' + +# GitLab Pages +gem 'validates_hostname', '~> 1.0.6' +gem 'rubyzip', '~> 1.2.2', require: 'zip' + +# Browser detection +gem 'browser', '~> 2.5' + +# GPG +gem 'gpgme', '~> 2.0.18' + +# LDAP Auth +# GitLab fork with several improvements to original library. For full list of changes +# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master +gem 'gitlab_omniauth-ldap', '~> 2.0.4', require: 'omniauth-ldap' +gem 'net-ldap' + +# API +gem 'grape', '~> 1.1.0' +gem 'grape-entity', '~> 0.7.1' +gem 'rack-cors', '~> 1.0.0', require: 'rack/cors' + +# GraphQL API +gem 'graphql', '~> 1.8.0' +gem 'graphiql-rails', '~> 1.4.10' + +# Disable strong_params so that Mash does not respond to :permitted? +gem 'hashie-forbidden_attributes' + +# Pagination +gem 'kaminari', '~> 1.0' + +# HAML +gem 'hamlit', '~> 2.8.8' + +# Files attachments +gem 'carrierwave', '~> 1.3' +gem 'mini_magick' + +# for backups +gem 'fog-aws', '~> 2.0.1' +gem 'fog-core', '~> 1.44' +gem 'fog-google', '~> 1.7.1' +gem 'fog-local', '~> 0.3' +gem 'fog-openstack', '~> 0.1' +gem 'fog-rackspace', '~> 0.1.1' +gem 'fog-aliyun', '~> 0.2.0' + +# for Google storage +gem 'google-api-client', '~> 0.23' + +# for aws storage +gem 'unf', '~> 0.1.4' + +# Seed data +gem 'seed-fu', '~> 2.3.7' + +# Search +gem 'elasticsearch-model', '~> 0.1.9' +gem 'elasticsearch-rails', '~> 0.1.9' +gem 'elasticsearch-api', '5.0.3' +gem 'aws-sdk' +gem 'faraday_middleware-aws-signers-v4' + +# Markdown and HTML processing +gem 'html-pipeline', '~> 2.8' +gem 'deckar01-task_list', '2.0.0' +gem 'gitlab-markup', '~> 1.6.5' +gem 'github-markup', '~> 1.7.0', require: 'github/markup' +gem 'redcarpet', '~> 3.4' +gem 'commonmarker', '~> 0.17' +gem 'RedCloth', '~> 4.3.2' +gem 'rdoc', '~> 6.0' +gem 'org-ruby', '~> 0.9.12' +gem 'creole', '~> 0.5.0' +gem 'wikicloth', '0.8.1' +gem 'asciidoctor', '~> 1.5.8' +gem 'asciidoctor-plantuml', '0.0.8' +gem 'rouge', '~> 3.1' +gem 'truncato', '~> 0.7.9' +gem 'bootstrap_form', '~> 2.7.0' +gem 'nokogiri', '~> 1.8.5' +gem 'escape_utils', '~> 1.1' + +# Calendar rendering +gem 'icalendar' + +# Diffs +gem 'diffy', '~> 3.1.0' + +# Application server +# The 2.0.6 version of rack requires monkeypatch to be present in +# `config.ru`. This can be removed once a new update for Rack +# is available that contains https://github.com/rack/rack/pull/1201. +gem 'rack', '2.0.6' + +group :unicorn do + gem 'unicorn', '~> 5.1.0' + gem 'unicorn-worker-killer', '~> 0.4.4' +end + +group :puma do + gem 'puma', '~> 3.12', require: false + gem 'puma_worker_killer', require: false +end + +# State machine +gem 'state_machines-activerecord', '~> 0.5.1' + +# Issue tags +gem 'acts-as-taggable-on', '~> 5.0' + +# Background jobs +gem 'sidekiq', '~> 5.2.1' +gem 'sidekiq-cron', '~> 0.6.0' +gem 'redis-namespace', '~> 1.6.0' +gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch' + +# Cron Parser +gem 'rufus-scheduler', '~> 3.4' + +# HTTP requests +gem 'httparty', '~> 0.13.3' + +# Colored output to console +gem 'rainbow', '~> 3.0' + +# Progress bar +gem 'ruby-progressbar' + +# GitLab settings +gem 'settingslogic', '~> 2.0.9' + +# Linear-time regex library for untrusted regular expressions +gem 're2', '~> 1.1.1' + +# Misc + +gem 'version_sorter', '~> 2.1.0' + +# Export Ruby Regex to Javascript +gem 'js_regex', '~> 2.2.1' + +# User agent parsing +gem 'device_detector' + +# Cache +gem 'redis-rails', '~> 5.0.2' + +# Redis +gem 'redis', '~> 3.2' +gem 'connection_pool', '~> 2.0' + +# Discord integration +gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false + +# HipChat integration +gem 'hipchat', '~> 1.5.0' + +# JIRA integration +gem 'jira-ruby', '~> 1.4' + +# Flowdock integration +gem 'flowdock', '~> 0.7' + +# Slack integration +gem 'slack-notifier', '~> 1.5.1' + +# Hangouts Chat integration +gem 'hangouts-chat', '~> 0.0.5' + +# Asana integration +gem 'asana', '~> 0.8.1' + +# FogBugz integration +gem 'ruby-fogbugz', '~> 0.2.1' + +# Kubernetes integration +gem 'kubeclient', '~> 4.0.0' + +# Sanitize user input +gem 'sanitize', '~> 4.6' +gem 'babosa', '~> 1.0.2' + +# Sanitizes SVG input +gem 'loofah', '~> 2.2' + +# Working with license +gem 'licensee', '~> 8.9' + +# Protect against bruteforcing +gem 'rack-attack', '~> 4.4.1' + +# Ace editor +gem 'ace-rails-ap', '~> 4.1.0' + +# Detect and convert string character encoding +gem 'charlock_holmes', '~> 0.7.5' + +# Detect mime content type from content +gem 'mimemagic', '~> 0.3.2' + +# Faster blank +gem 'fast_blank' + +# Parse time & duration +gem 'chronic', '~> 0.10.2' +gem 'chronic_duration', '~> 0.10.6' + +gem 'webpack-rails', '~> 0.9.10' +gem 'rack-proxy', '~> 0.6.0' + +gem 'sass-rails', '~> 5.0.6' +gem 'sass', '~> 3.5' +gem 'uglifier', '~> 2.7.2' + +gem 'addressable', '~> 2.5.2' +gem 'font-awesome-rails', '~> 4.7' +gem 'gemojione', '~> 3.3' +gem 'gon', '~> 6.2' +gem 'jquery-atwho-rails', '~> 1.3.2' +gem 'request_store', '~> 1.3' +gem 'select2-rails', '~> 3.5.9' +gem 'virtus', '~> 1.0.1' +gem 'base32', '~> 0.3.0' + +gem "gitlab-license", "~> 1.0" + +# Sentry integration +gem 'sentry-raven', '~> 2.7' + +gem 'premailer-rails', '~> 1.9.7' + +# I18n +gem 'ruby_parser', '~> 3.8', require: false +gem 'rails-i18n', '~> 5.1' +gem 'gettext_i18n_rails', '~> 1.8.0' +gem 'gettext_i18n_rails_js', '~> 1.3' +gem 'gettext', '~> 3.2.2', require: false, group: :development + +gem 'batch-loader', '~> 1.2.2' + +# Perf bar +gem 'peek', '~> 1.0.1' +gem 'peek-gc', '~> 0.0.2' +gem 'peek-mysql2', '~> 1.2.0', group: :mysql +gem 'peek-pg', '~> 1.3.0', group: :postgres +gem 'peek-rblineprof', '~> 0.2.0' +gem 'peek-redis', '~> 1.2.0' + +# Metrics +group :metrics do + gem 'method_source', '~> 0.8', require: false + gem 'influxdb', '~> 0.2', require: false + + # Prometheus + gem 'prometheus-client-mmap', '~> 0.9.4' + gem 'raindrops', '~> 0.18' +end + +group :development do + gem 'foreman', '~> 0.84.0' + gem 'brakeman', '~> 4.2', require: false + + gem 'letter_opener_web', '~> 1.3.0' + gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false + + # Better errors handler + gem 'better_errors', '~> 2.5.0' + gem 'binding_of_caller', '~> 0.8.0' + + # thin instead webrick + gem 'thin', '~> 1.7.0' +end + +group :development, :test do + gem 'bootsnap', '~> 1.3' + gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET'] + gem 'pry-byebug', '~> 3.5.1', platform: :mri + gem 'pry-rails', '~> 0.3.4' + + gem 'awesome_print', require: false + gem 'fuubar', '~> 2.2.0' + + gem 'database_cleaner', '~> 1.7.0' + gem 'factory_bot_rails', '~> 4.8.2' + gem 'rspec-rails', '~> 3.7.0' + gem 'rspec-retry', '~> 0.4.5' + gem 'rspec_profiling', '~> 0.0.5' + gem 'rspec-set', '~> 0.1.3' + gem 'rspec-parameterized', require: false + + # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) + gem 'minitest', '~> 5.11.0' + + # Generate Fake data + gem 'ffaker', '~> 2.10' + + gem 'capybara', '~> 2.16.1' + gem 'capybara-screenshot', '~> 1.0.18' + gem 'selenium-webdriver', '~> 3.12' + + gem 'spring', '~> 2.0.0' + gem 'spring-commands-rspec', '~> 1.0.4' + + gem 'gitlab-styles', '~> 2.4', require: false + # Pin these dependencies, otherwise a new rule could break the CI pipelines + gem 'rubocop', '~> 0.54.0' + gem 'rubocop-rspec', '~> 1.22.1' + + gem 'scss_lint', '~> 0.56.0', require: false + gem 'haml_lint', '~> 0.28.0', require: false + gem 'simplecov', '~> 0.14.0', require: false + gem 'bundler-audit', '~> 0.5.0', require: false + + gem 'benchmark-ips', '~> 2.3.0', require: false + + gem 'license_finder', '~> 5.4', require: false + gem 'knapsack', '~> 1.17' + + gem 'activerecord_sane_schema_dumper', '1.0' + + gem 'stackprof', '~> 0.2.10', require: false + + gem 'simple_po_parser', '~> 1.1.2', require: false + + gem 'timecop', '~> 0.8.0' +end + +group :test do + gem 'shoulda-matchers', '~> 3.1.2', require: false + gem 'email_spec', '~> 2.2.0' + gem 'json-schema', '~> 2.8.0' + gem 'webmock', '~> 2.3.2' + gem 'rails-controller-testing' + gem 'sham_rack', '~> 1.3.6' + gem 'concurrent-ruby', '~> 1.1' + gem 'test-prof', '~> 0.2.5' + gem 'rspec_junit_formatter' +end + +gem 'octokit', '~> 4.9' + +gem 'mail_room', '~> 0.9.1' + +gem 'email_reply_trimmer', '~> 0.1' +gem 'html2text' + +gem 'ruby-prof', '~> 0.17.0' +gem 'rbtrace', '~> 0.4', require: false + +# OAuth +gem 'oauth2', '~> 1.4' + +# Health check +gem 'health_check', '~> 2.6.0' + +# System information +gem 'vmstat', '~> 2.3.0' +gem 'sys-filesystem', '~> 1.1.6' + +# NTP client +gem 'net-ntp' + +# SSH host key support +gem 'net-ssh', '~> 5.0' +gem 'sshkey', '~> 1.9.0' + +# Required for ED25519 SSH host key support +group :ed25519 do + gem 'ed25519', '~> 1.2' + gem 'bcrypt_pbkdf', '~> 1.0' +end + +# Gitaly GRPC client +gem 'gitaly-proto', '~> 1.5.0', require: 'gitaly' +gem 'grpc', '~> 1.15.0' + +gem 'google-protobuf', '~> 3.6' + +gem 'toml-rb', '~> 1.0.0', require: false + +# Feature toggles +gem 'flipper', '~> 0.13.0' +gem 'flipper-active_record', '~> 0.13.0' +gem 'flipper-active_support_cache_store', '~> 0.13.0' + +# Structured logging +gem 'lograge', '~> 0.5' +gem 'grape_logging', '~> 1.7' + +# DNS Lookup +gem 'net-dns', '~> 0.9.0' diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock new file mode 100644 index 000000000000..8d07afb59bf1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock @@ -0,0 +1,1214 @@ +GEM + remote: https://rubygems.org/ + specs: + RedCloth (4.3.2) + abstract_type (0.0.7) + ace-rails-ap (4.1.2) + actioncable (5.0.7.1) + actionpack (= 5.0.7.1) + nio4r (>= 1.2, < 3.0) + websocket-driver (~> 0.6.1) + actionmailer (5.0.7.1) + actionpack (= 5.0.7.1) + actionview (= 5.0.7.1) + activejob (= 5.0.7.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.0.7.1) + actionview (= 5.0.7.1) + activesupport (= 5.0.7.1) + rack (~> 2.0) + rack-test (~> 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.0.7.1) + activesupport (= 5.0.7.1) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.0.7.1) + activesupport (= 5.0.7.1) + globalid (>= 0.3.6) + activemodel (5.0.7.1) + activesupport (= 5.0.7.1) + activerecord (5.0.7.1) + activemodel (= 5.0.7.1) + activesupport (= 5.0.7.1) + arel (~> 7.0) + activerecord_sane_schema_dumper (1.0) + rails (>= 5, < 6) + activesupport (5.0.7.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + acts-as-taggable-on (5.0.0) + activerecord (>= 4.2.8) + adamantium (0.2.0) + ice_nine (~> 0.11.0) + memoizable (~> 0.4.0) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + aes_key_wrap (1.0.1) + akismet (2.0.0) + arel (7.1.4) + asana (0.8.1) + faraday (~> 0.9) + faraday_middleware (~> 0.9) + faraday_middleware-multi_json (~> 0.0) + oauth2 (~> 1.0) + asciidoctor (1.5.8) + asciidoctor-plantuml (0.0.8) + asciidoctor (~> 1.5) + ast (2.4.0) + atomic (1.1.99) + attr_encrypted (3.1.0) + encryptor (~> 3.0.0) + attr_required (1.0.0) + awesome_print (1.8.0) + aws-sdk (2.9.32) + aws-sdk-resources (= 2.9.32) + aws-sdk-core (2.9.32) + aws-sigv4 (~> 1.0) + jmespath (~> 1.0) + aws-sdk-resources (2.9.32) + aws-sdk-core (= 2.9.32) + aws-sigv4 (1.0.0) + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + babosa (1.0.2) + base32 (0.3.2) + batch-loader (1.2.2) + bcrypt (3.1.12) + bcrypt_pbkdf (1.0.0) + benchmark-ips (2.3.0) + better_errors (2.5.0) + coderay (>= 1.0.0) + erubi (>= 1.0.0) + rack (>= 0.9.0) + bindata (2.4.3) + binding_ninja (0.2.2) + binding_of_caller (0.8.0) + debug_inspector (>= 0.0.1) + bootsnap (1.3.2) + msgpack (~> 1.0) + bootstrap_form (2.7.0) + brakeman (4.2.1) + browser (2.5.3) + builder (3.2.3) + bullet (5.5.1) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.10.0) + bundler-audit (0.5.0) + bundler (~> 1.2) + thor (~> 0.18) + byebug (9.1.0) + capybara (2.16.1) + addressable + mini_mime (>= 0.1.3) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + xpath (~> 2.0) + capybara-screenshot (1.0.22) + capybara (>= 1.0, < 4) + launchy + carrierwave (1.3.1) + activemodel (>= 4.0.0) + activesupport (>= 4.0.0) + mime-types (>= 1.16) + cause (0.1) + charlock_holmes (0.7.6) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + chronic (0.10.2) + chronic_duration (0.10.6) + numerizer (~> 0.1.1) + chunky_png (1.3.5) + citrus (3.0.2) + coderay (1.1.2) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concord (0.1.5) + adamantium (~> 0.2.0) + equalizer (~> 0.0.9) + concurrent-ruby (1.1.3) + concurrent-ruby-ext (1.1.3) + concurrent-ruby (= 1.1.3) + connection_pool (2.2.2) + crack (0.4.3) + safe_yaml (~> 1.0.0) + crass (1.0.4) + creole (0.5.0) + css_parser (1.5.0) + addressable + daemons (1.2.6) + database_cleaner (1.7.0) + debug_inspector (0.0.3) + debugger-ruby_core_source (1.3.8) + deckar01-task_list (2.0.0) + html-pipeline + declarative (0.0.10) + declarative-option (0.1.0) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + device_detector (1.0.0) + devise (4.4.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0, < 6.0) + responders + warden (~> 1.2.3) + devise-two-factor (3.0.0) + activesupport + attr_encrypted (>= 1.3, < 4, != 2) + devise (~> 4.0) + railties + rotp (~> 2.0) + diff-lcs (1.3) + diffy (3.1.0) + discordrb-webhooks-blackst0ne (3.3.0) + rest-client (~> 2.0) + docile (1.1.5) + domain_name (0.5.20180417) + unf (>= 0.0.5, < 1.0.0) + doorkeeper (4.3.2) + railties (>= 4.2) + doorkeeper-openid_connect (1.5.0) + doorkeeper (~> 4.3) + json-jwt (~> 1.6) + ed25519 (1.2.4) + elasticsearch (5.0.3) + elasticsearch-api (= 5.0.3) + elasticsearch-transport (= 5.0.3) + elasticsearch-api (5.0.3) + multi_json + elasticsearch-model (0.1.9) + activesupport (> 3) + elasticsearch (> 0.4) + hashie + elasticsearch-rails (0.1.9) + elasticsearch-transport (5.0.3) + faraday + multi_json + email_reply_trimmer (0.1.6) + email_spec (2.2.0) + htmlentities (~> 4.3.3) + launchy (~> 2.1) + mail (~> 2.7) + encryptor (3.0.0) + equalizer (0.0.11) + erubi (1.7.1) + erubis (2.7.0) + escape_utils (1.2.1) + et-orbi (1.0.3) + tzinfo + eventmachine (1.2.7) + excon (0.62.0) + execjs (2.6.0) + expression_parser (0.9.0) + factory_bot (4.8.2) + activesupport (>= 3.0.0) + factory_bot_rails (4.8.2) + factory_bot (~> 4.8.2) + railties (>= 3.0.0) + faraday (0.12.2) + multipart-post (>= 1.2, < 3) + faraday_middleware (0.12.2) + faraday (>= 0.7.4, < 1.0) + faraday_middleware-aws-signers-v4 (0.1.7) + aws-sdk-resources (~> 2) + faraday (~> 0.9) + faraday_middleware-multi_json (0.0.6) + faraday_middleware + multi_json + fast_blank (1.0.0) + fast_gettext (1.6.0) + ffaker (2.10.0) + ffi (1.9.25) + flipper (0.13.0) + flipper-active_record (0.13.0) + activerecord (>= 3.2, < 6) + flipper (~> 0.13.0) + flipper-active_support_cache_store (0.13.0) + activesupport (>= 3.2, < 6) + flipper (~> 0.13.0) + flowdock (0.7.1) + httparty (~> 0.7) + multi_json + fog-aliyun (0.2.0) + fog-core (~> 1.27) + fog-json (~> 1.0) + ipaddress (~> 0.8) + xml-simple (~> 1.1) + fog-aws (2.0.1) + fog-core (~> 1.38) + fog-json (~> 1.0) + fog-xml (~> 0.1) + ipaddress (~> 0.8) + fog-core (1.45.0) + builder + excon (~> 0.58) + formatador (~> 0.2) + fog-google (1.7.1) + fog-core + fog-json + fog-xml + google-api-client (~> 0.23.0) + fog-json (1.0.2) + fog-core (~> 1.0) + multi_json (~> 1.10) + fog-local (0.3.1) + fog-core (~> 1.27) + fog-openstack (0.1.21) + fog-core (>= 1.40) + fog-json (>= 1.0) + ipaddress (>= 0.8) + fog-rackspace (0.1.1) + fog-core (>= 1.35) + fog-json (>= 1.0) + fog-xml (>= 0.1) + ipaddress (>= 0.8) + fog-xml (0.1.3) + fog-core + nokogiri (>= 1.5.11, < 2.0.0) + font-awesome-rails (4.7.0.1) + railties (>= 3.2, < 5.1) + foreman (0.84.0) + thor (~> 0.19.1) + formatador (0.2.5) + fuubar (2.2.0) + rspec-core (~> 3.0) + ruby-progressbar (~> 1.4) + gemojione (3.3.0) + json + get_process_mem (0.2.0) + gettext (3.2.9) + locale (>= 2.0.5) + text (>= 1.3.0) + gettext_i18n_rails (1.8.0) + fast_gettext (>= 0.9.0) + gettext_i18n_rails_js (1.3.0) + gettext (>= 3.0.2) + gettext_i18n_rails (>= 0.7.1) + po_to_json (>= 1.0.0) + rails (>= 3.2.0) + gitaly-proto (1.5.0) + grpc (~> 1.0) + github-markup (1.7.0) + gitlab-default_value_for (3.1.1) + activerecord (>= 3.2.0, < 6.0) + gitlab-license (1.0.0) + gitlab-markup (1.6.5) + gitlab-sidekiq-fetcher (0.4.0) + sidekiq (~> 5) + gitlab-styles (2.4.1) + rubocop (~> 0.54.0) + rubocop-gitlab-security (~> 0.1.0) + rubocop-rspec (~> 1.19) + gitlab_omniauth-ldap (2.0.4) + net-ldap (~> 0.16) + omniauth (~> 1.3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) + globalid (0.4.1) + activesupport (>= 4.2.0) + gon (6.2.0) + actionpack (>= 3.0) + multi_json + request_store (>= 1.0) + google-api-client (0.23.4) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.5, < 0.7.0) + httpclient (>= 2.8.1, < 3.0) + mime-types (~> 3.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + google-protobuf (3.6.1) + googleapis-common-protos-types (1.0.2) + google-protobuf (~> 3.0) + googleauth (0.6.6) + faraday (~> 0.12) + jwt (>= 1.4, < 3.0) + memoist (~> 0.12) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (~> 0.7) + gpgme (2.0.18) + mini_portile2 (~> 2.3) + grape (1.1.0) + activesupport + builder + mustermann-grape (~> 1.0.0) + rack (>= 1.3.0) + rack-accept + virtus (>= 1.0.0) + grape-entity (0.7.1) + activesupport (>= 4.0) + multi_json (>= 1.3.2) + grape-path-helpers (1.0.6) + activesupport (>= 4, < 5.1) + grape (~> 1.0) + rake (~> 12) + grape_logging (1.7.0) + grape + graphiql-rails (1.4.10) + railties + sprockets-rails + graphql (1.8.1) + grpc (1.15.0) + google-protobuf (~> 3.1) + googleapis-common-protos-types (~> 1.0.0) + gssapi (1.2.0) + ffi (>= 1.0.1) + haml (5.0.4) + temple (>= 0.8.0) + tilt + haml_lint (0.28.0) + haml (>= 4.0, < 5.1) + rainbow + rake (>= 10, < 13) + rubocop (>= 0.50.0) + sysexits (~> 1.1) + hamlit (2.8.8) + temple (>= 0.8.0) + thor + tilt + hangouts-chat (0.0.5) + hashdiff (0.3.4) + hashie (3.5.7) + hashie-forbidden_attributes (0.1.1) + hashie (>= 3.0) + health_check (2.6.0) + rails (>= 4.0) + hipchat (1.5.2) + httparty + mimemagic + html-pipeline (2.8.4) + activesupport (>= 2) + nokogiri (>= 1.4) + html2text (0.2.0) + nokogiri (~> 1.6) + htmlentities (4.3.4) + http (3.3.0) + addressable (~> 2.3) + http-cookie (~> 1.0) + http-form_data (~> 2.0) + http_parser.rb (~> 0.6.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + http-form_data (2.1.1) + http_parser.rb (0.6.0) + httparty (0.13.7) + json (~> 1.8) + multi_xml (>= 0.5.2) + httpclient (2.8.3) + i18n (1.2.0) + concurrent-ruby (~> 1.0) + icalendar (2.4.1) + ice_nine (0.11.2) + influxdb (0.2.3) + cause + json + ipaddress (0.8.3) + jira-ruby (1.4.1) + activesupport + multipart-post + oauth (~> 0.5, >= 0.5.0) + jmespath (1.3.1) + jquery-atwho-rails (1.3.2) + js_regex (2.2.1) + regexp_parser (>= 0.4.11, <= 0.5.0) + json (1.8.6) + json-jwt (1.9.4) + activesupport + aes_key_wrap + bindata + json-schema (2.8.0) + addressable (>= 2.4) + jwt (2.1.0) + kaminari (1.0.1) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.0.1) + kaminari-activerecord (= 1.0.1) + kaminari-core (= 1.0.1) + kaminari-actionview (1.0.1) + actionview + kaminari-core (= 1.0.1) + kaminari-activerecord (1.0.1) + activerecord + kaminari-core (= 1.0.1) + kaminari-core (1.0.1) + kgio (2.10.0) + knapsack (1.17.0) + rake + kubeclient (4.0.0) + http (~> 3.0) + recursive-open-struct (~> 1.0, >= 1.0.4) + rest-client (~> 2.0) + launchy (2.4.3) + addressable (~> 2.3) + letter_opener (1.4.1) + launchy (~> 2.2) + letter_opener_web (1.3.0) + actionmailer (>= 3.2) + letter_opener (~> 1.0) + railties (>= 3.2) + license_finder (5.4.0) + bundler + rubyzip + thor + toml (= 0.2.0) + with_env (= 1.1.0) + xml-simple + licensee (8.9.2) + rugged (~> 0.24) + locale (2.1.2) + lograge (0.10.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.2.3) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + mail_room (0.9.1) + memoist (0.16.0) + memoizable (0.4.2) + thread_safe (~> 0.3, >= 0.3.1) + method_source (0.9.2) + mime-types (3.2.2) + mime-types-data (~> 3.2015) + mime-types-data (3.2018.0812) + mimemagic (0.3.2) + mini_magick (4.8.0) + mini_mime (1.0.1) + mini_portile2 (2.3.0) + minitest (5.11.3) + msgpack (1.2.4) + multi_json (1.13.1) + multi_xml (0.6.0) + multipart-post (2.0.0) + mustermann (1.0.3) + mustermann-grape (1.0.0) + mustermann (~> 1.0.0) + mysql2 (0.4.10) + nakayoshi_fork (0.0.4) + net-dns (0.9.0) + net-ldap (0.16.0) + net-ntp (2.1.3) + net-ssh (5.0.1) + netrc (0.11.0) + nio4r (2.3.1) + nokogiri (1.8.5) + mini_portile2 (~> 2.3.0) + nokogumbo (1.5.0) + nokogiri + numerizer (0.1.1) + oauth (0.5.4) + oauth2 (1.4.1) + faraday (>= 0.8, < 0.16.0) + jwt (>= 1.0, < 3.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 3) + octokit (4.9.0) + sawyer (~> 0.8.0, >= 0.5.3) + omniauth (1.9.0) + hashie (>= 3.4.6, < 3.7.0) + rack (>= 1.6.2, < 3) + omniauth-auth0 (2.0.0) + omniauth-oauth2 (~> 1.4) + omniauth-authentiq (0.3.3) + jwt (>= 1.5) + omniauth-oauth2 (>= 1.5) + omniauth-azure-oauth2 (0.0.10) + jwt (>= 1.0, < 3.0) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.4) + omniauth-cas3 (1.1.4) + addressable (~> 2.3) + nokogiri (~> 1.7, >= 1.7.1) + omniauth (~> 1.2) + omniauth-facebook (4.0.0) + omniauth-oauth2 (~> 1.2) + omniauth-github (1.3.0) + omniauth (~> 1.5) + omniauth-oauth2 (>= 1.4.0, < 2.0) + omniauth-gitlab (1.0.3) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.0) + omniauth-google-oauth2 (0.6.0) + jwt (>= 2.0) + omniauth (>= 1.1.1) + omniauth-oauth2 (>= 1.5) + omniauth-kerberos (0.3.0) + omniauth-multipassword + timfel-krb5-auth (~> 0.8) + omniauth-multipassword (0.4.2) + omniauth (~> 1.0) + omniauth-oauth (1.1.0) + oauth + omniauth (~> 1.0) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) + omniauth-oauth2-generic (0.2.2) + omniauth-oauth2 (~> 1.0) + omniauth-saml (1.10.0) + omniauth (~> 1.3, >= 1.3.2) + ruby-saml (~> 1.7) + omniauth-shibboleth (1.3.0) + omniauth (>= 1.0.0) + omniauth-twitter (1.4.0) + omniauth-oauth (~> 1.1) + rack + omniauth_crowd (2.2.3) + activesupport + nokogiri (>= 1.4.4) + omniauth (~> 1.0) + org-ruby (0.9.12) + rubypants (~> 0.2) + orm_adapter (0.5.0) + os (1.0.0) + parallel (1.12.1) + parser (2.5.3.0) + ast (~> 2.4.0) + parslet (1.8.2) + peek (1.0.1) + concurrent-ruby (>= 0.9.0) + concurrent-ruby-ext (>= 0.9.0) + railties (>= 4.0.0) + peek-gc (0.0.2) + peek + peek-mysql2 (1.2.0) + concurrent-ruby + concurrent-ruby-ext + mysql2 + peek + peek-pg (1.3.0) + concurrent-ruby + concurrent-ruby-ext + peek + pg + peek-rblineprof (0.2.0) + peek + rblineprof + peek-redis (1.2.0) + atomic (>= 1.0.0) + peek + redis + pg (0.18.4) + po_to_json (1.0.1) + json (>= 1.6.0) + powerpack (0.1.1) + premailer (1.10.4) + addressable + css_parser (>= 1.4.10) + htmlentities (>= 4.0.0) + premailer-rails (1.9.7) + actionmailer (>= 3, < 6) + premailer (~> 1.7, >= 1.7.9) + proc_to_ast (0.1.0) + coderay + parser + unparser + procto (0.0.3) + prometheus-client-mmap (0.9.4) + pry (0.11.3) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + pry-byebug (3.5.1) + byebug (~> 9.1) + pry (~> 0.10) + pry-rails (0.3.6) + pry (>= 0.10.4) + public_suffix (3.0.3) + puma (3.12.0) + puma_worker_killer (0.1.0) + get_process_mem (~> 0.2) + puma (>= 2.7, < 4) + pyu-ruby-sasl (0.0.3.3) + rack (2.0.6) + rack-accept (0.4.5) + rack (>= 0.4) + rack-attack (4.4.1) + rack + rack-cors (1.0.2) + rack-oauth2 (1.2.3) + activesupport (>= 2.3) + attr_required (>= 0.0.5) + httpclient (>= 2.4) + multi_json (>= 1.3.6) + rack (>= 1.1) + rack-protection (2.0.4) + rack + rack-proxy (0.6.0) + rack + rack-test (0.6.3) + rack (>= 1.0) + rails (5.0.7.1) + actioncable (= 5.0.7.1) + actionmailer (= 5.0.7.1) + actionpack (= 5.0.7.1) + actionview (= 5.0.7.1) + activejob (= 5.0.7.1) + activemodel (= 5.0.7.1) + activerecord (= 5.0.7.1) + activesupport (= 5.0.7.1) + bundler (>= 1.3.0) + railties (= 5.0.7.1) + sprockets-rails (>= 2.0.0) + rails-controller-testing (1.0.2) + actionpack (~> 5.x, >= 5.0.1) + actionview (~> 5.x, >= 5.0.1) + activesupport (~> 5.x) + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + rails-i18n (5.1.1) + i18n (>= 0.7, < 2) + railties (>= 5.0, < 6) + railties (5.0.7.1) + actionpack (= 5.0.7.1) + activesupport (= 5.0.7.1) + method_source + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rainbow (3.0.0) + raindrops (0.18.0) + rake (12.3.2) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rblineprof (0.3.6) + debugger-ruby_core_source (~> 1.3) + rbtrace (0.4.10) + ffi (>= 1.0.6) + msgpack (>= 0.4.3) + trollop (>= 1.16.2) + rdoc (6.0.4) + re2 (1.1.1) + recaptcha (3.0.0) + json + recursive-open-struct (1.1.0) + redcarpet (3.4.0) + redis (3.3.5) + redis-actionpack (5.0.2) + actionpack (>= 4.0, < 6) + redis-rack (>= 1, < 3) + redis-store (>= 1.1.0, < 2) + redis-activesupport (5.0.4) + activesupport (>= 3, < 6) + redis-store (>= 1.3, < 2) + redis-namespace (1.6.0) + redis (>= 3.0.4) + redis-rack (2.0.4) + rack (>= 1.5, < 3) + redis-store (>= 1.2, < 2) + redis-rails (5.0.2) + redis-actionpack (>= 5.0, < 6) + redis-activesupport (>= 5.0, < 6) + redis-store (>= 1.2, < 2) + redis-store (1.6.0) + redis (>= 2.2, < 5) + regexp_parser (0.5.0) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + request_store (1.3.1) + responders (2.4.0) + actionpack (>= 4.2.0, < 5.3) + railties (>= 4.2.0, < 5.3) + rest-client (2.0.2) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + retriable (3.1.2) + rinku (2.0.0) + rotp (2.1.2) + rouge (3.3.0) + rqrcode (0.7.0) + chunky_png + rqrcode-rails3 (0.1.7) + rqrcode (>= 0.4.2) + rspec (3.7.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-core (3.7.1) + rspec-support (~> 3.7.0) + rspec-expectations (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-mocks (3.7.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.7.0) + rspec-parameterized (0.4.1) + binding_ninja (>= 0.2.1) + parser + proc_to_ast + rspec (>= 2.13, < 4) + unparser + rspec-rails (3.7.2) + actionpack (>= 3.0) + activesupport (>= 3.0) + railties (>= 3.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-support (~> 3.7.0) + rspec-retry (0.4.5) + rspec-core + rspec-set (0.1.3) + rspec-support (3.7.1) + rspec_junit_formatter (0.4.1) + rspec-core (>= 2, < 4, != 2.12.0) + rspec_profiling (0.0.5) + activerecord + pg + rails + sqlite3 + rubocop (0.54.0) + parallel (~> 1.10) + parser (>= 2.5) + powerpack (~> 0.1) + rainbow (>= 2.2.2, < 4.0) + ruby-progressbar (~> 1.7) + unicode-display_width (~> 1.0, >= 1.0.1) + rubocop-gitlab-security (0.1.1) + rubocop (>= 0.51) + rubocop-rspec (1.22.2) + rubocop (>= 0.52.1) + ruby-enum (0.7.2) + i18n + ruby-fogbugz (0.2.1) + crack (~> 0.4) + ruby-prof (0.17.0) + ruby-progressbar (1.9.0) + ruby-saml (1.7.2) + nokogiri (>= 1.5.10) + ruby_parser (3.11.0) + sexp_processor (~> 4.9) + rubyntlm (0.6.2) + rubypants (0.2.0) + rubyzip (1.2.2) + rufus-scheduler (3.4.0) + et-orbi (~> 1.0) + rugged (0.27.5) + safe_yaml (1.0.4) + sanitize (4.6.6) + crass (~> 1.0.2) + nokogiri (>= 1.4.4) + nokogumbo (~> 1.4) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sass-rails (5.0.6) + railties (>= 4.0.0, < 6) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + scss_lint (0.56.0) + rake (>= 0.9, < 13) + sass (~> 3.5.3) + seed-fu (2.3.7) + activerecord (>= 3.1) + activesupport (>= 3.1) + select2-rails (3.5.9.3) + thor (~> 0.14) + selenium-webdriver (3.12.0) + childprocess (~> 0.5) + rubyzip (~> 1.2) + sentry-raven (2.7.4) + faraday (>= 0.7.6, < 1.0) + settingslogic (2.0.9) + sexp_processor (4.11.0) + sham_rack (1.3.6) + rack + shoulda-matchers (3.1.2) + activesupport (>= 4.0.0) + sidekiq (5.2.3) + connection_pool (~> 2.2, >= 2.2.2) + rack-protection (>= 1.5.0) + redis (>= 3.3.5, < 5) + sidekiq-cron (0.6.0) + rufus-scheduler (>= 3.3.0) + sidekiq (>= 4.2.1) + signet (0.11.0) + addressable (~> 2.3) + faraday (~> 0.9) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simple_po_parser (1.1.2) + simplecov (0.14.1) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) + slack-notifier (1.5.1) + spring (2.0.2) + activesupport (>= 4.2) + spring-commands-rspec (1.0.4) + spring (>= 0.9.1) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.3.13) + sshkey (1.9.0) + stackprof (0.2.10) + state_machines (0.5.0) + state_machines-activemodel (0.5.1) + activemodel (>= 4.1, < 6.0) + state_machines (>= 0.5.0) + state_machines-activerecord (0.5.1) + activerecord (>= 4.1, < 6.0) + state_machines-activemodel (>= 0.5.0) + sys-filesystem (1.1.6) + ffi + sysexits (1.2.0) + temple (0.8.0) + test-prof (0.2.5) + text (1.3.1) + thin (1.7.2) + daemons (~> 1.0, >= 1.0.9) + eventmachine (~> 1.0, >= 1.0.4) + rack (>= 1, < 3) + thor (0.19.4) + thread_safe (0.3.6) + tilt (2.0.8) + timecop (0.8.1) + timfel-krb5-auth (0.8.3) + toml (0.2.0) + parslet (~> 1.8.0) + toml-rb (1.0.0) + citrus (~> 3.0, > 3.0) + trollop (2.1.3) + truncato (0.7.10) + htmlentities (~> 4.3.1) + nokogiri (~> 1.8.0, >= 1.7.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + u2f (0.2.1) + uber (0.1.0) + uglifier (2.7.2) + execjs (>= 0.3.0) + json (>= 1.8.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.5) + unicode-display_width (1.3.2) + unicorn (5.1.0) + kgio (~> 2.6) + raindrops (~> 0.7) + unicorn-worker-killer (0.4.4) + get_process_mem (~> 0) + unicorn (>= 4, < 6) + uniform_notifier (1.10.0) + unparser (0.4.2) + abstract_type (~> 0.0.7) + adamantium (~> 0.2.0) + concord (~> 0.1.5) + diff-lcs (~> 1.3) + equalizer (~> 0.0.9) + parser (>= 2.3.1.2, < 2.6) + procto (~> 0.0.2) + validates_hostname (1.0.6) + activerecord (>= 3.0) + activesupport (>= 3.0) + version_sorter (2.1.0) + virtus (1.0.5) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + equalizer (~> 0.0, >= 0.0.9) + vmstat (2.3.0) + warden (1.2.7) + rack (>= 1.0) + webmock (2.3.2) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff + webpack-rails (0.9.11) + railties (>= 3.2.0) + websocket-driver (0.6.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.3) + wikicloth (0.8.1) + builder + expression_parser + rinku + with_env (1.1.0) + xml-simple (1.1.5) + xpath (2.1.0) + nokogiri (~> 1.3) + +PLATFORMS + ruby + +DEPENDENCIES + RedCloth (~> 4.3.2) + ace-rails-ap (~> 4.1.0) + activerecord_sane_schema_dumper (= 1.0) + acts-as-taggable-on (~> 5.0) + addressable (~> 2.5.2) + akismet (~> 2.0) + asana (~> 0.8.1) + asciidoctor (~> 1.5.8) + asciidoctor-plantuml (= 0.0.8) + attr_encrypted (~> 3.1.0) + awesome_print + aws-sdk + babosa (~> 1.0.2) + base32 (~> 0.3.0) + batch-loader (~> 1.2.2) + bcrypt_pbkdf (~> 1.0) + benchmark-ips (~> 2.3.0) + better_errors (~> 2.5.0) + binding_of_caller (~> 0.8.0) + bootsnap (~> 1.3) + bootstrap_form (~> 2.7.0) + brakeman (~> 4.2) + browser (~> 2.5) + bullet (~> 5.5.0) + bundler-audit (~> 0.5.0) + capybara (~> 2.16.1) + capybara-screenshot (~> 1.0.18) + carrierwave (~> 1.3) + charlock_holmes (~> 0.7.5) + chronic (~> 0.10.2) + chronic_duration (~> 0.10.6) + commonmarker (~> 0.17) + concurrent-ruby (~> 1.1) + connection_pool (~> 2.0) + creole (~> 0.5.0) + database_cleaner (~> 1.7.0) + deckar01-task_list (= 2.0.0) + device_detector + devise (~> 4.4) + devise-two-factor (~> 3.0.0) + diffy (~> 3.1.0) + discordrb-webhooks-blackst0ne (~> 3.3) + doorkeeper (~> 4.3) + doorkeeper-openid_connect (~> 1.5) + ed25519 (~> 1.2) + elasticsearch-api (= 5.0.3) + elasticsearch-model (~> 0.1.9) + elasticsearch-rails (~> 0.1.9) + email_reply_trimmer (~> 0.1) + email_spec (~> 2.2.0) + escape_utils (~> 1.1) + factory_bot_rails (~> 4.8.2) + faraday (~> 0.12) + faraday_middleware-aws-signers-v4 + fast_blank + ffaker (~> 2.10) + flipper (~> 0.13.0) + flipper-active_record (~> 0.13.0) + flipper-active_support_cache_store (~> 0.13.0) + flowdock (~> 0.7) + fog-aliyun (~> 0.2.0) + fog-aws (~> 2.0.1) + fog-core (~> 1.44) + fog-google (~> 1.7.1) + fog-local (~> 0.3) + fog-openstack (~> 0.1) + fog-rackspace (~> 0.1.1) + font-awesome-rails (~> 4.7) + foreman (~> 0.84.0) + fuubar (~> 2.2.0) + gemojione (~> 3.3) + gettext (~> 3.2.2) + gettext_i18n_rails (~> 1.8.0) + gettext_i18n_rails_js (~> 1.3) + gitaly-proto (~> 1.5.0) + github-markup (~> 1.7.0) + gitlab-default_value_for (~> 3.1.1) + gitlab-license (~> 1.0) + gitlab-markup (~> 1.6.5) + gitlab-sidekiq-fetcher (~> 0.4.0) + gitlab-styles (~> 2.4) + gitlab_omniauth-ldap (~> 2.0.4) + gon (~> 6.2) + google-api-client (~> 0.23) + google-protobuf (~> 3.6) + gpgme (~> 2.0.18) + grape (~> 1.1.0) + grape-entity (~> 0.7.1) + grape-path-helpers (~> 1.0) + grape_logging (~> 1.7) + graphiql-rails (~> 1.4.10) + graphql (~> 1.8.0) + grpc (~> 1.15.0) + gssapi + haml_lint (~> 0.28.0) + hamlit (~> 2.8.8) + hangouts-chat (~> 0.0.5) + hashie-forbidden_attributes + health_check (~> 2.6.0) + hipchat (~> 1.5.0) + html-pipeline (~> 2.8) + html2text + httparty (~> 0.13.3) + icalendar + influxdb (~> 0.2) + jira-ruby (~> 1.4) + jquery-atwho-rails (~> 1.3.2) + js_regex (~> 2.2.1) + json-schema (~> 2.8.0) + jwt (~> 2.1.0) + kaminari (~> 1.0) + knapsack (~> 1.17) + kubeclient (~> 4.0.0) + letter_opener_web (~> 1.3.0) + license_finder (~> 5.4) + licensee (~> 8.9) + lograge (~> 0.5) + loofah (~> 2.2) + mail_room (~> 0.9.1) + method_source (~> 0.8) + mimemagic (~> 0.3.2) + mini_magick + minitest (~> 5.11.0) + mysql2 (~> 0.4.10) + nakayoshi_fork (~> 0.0.4) + net-dns (~> 0.9.0) + net-ldap + net-ntp + net-ssh (~> 5.0) + nokogiri (~> 1.8.5) + oauth2 (~> 1.4) + octokit (~> 4.9) + omniauth (~> 1.8) + omniauth-auth0 (~> 2.0.0) + omniauth-authentiq (~> 0.3.3) + omniauth-azure-oauth2 (~> 0.0.9) + omniauth-cas3 (~> 1.1.4) + omniauth-facebook (~> 4.0.0) + omniauth-github (~> 1.3) + omniauth-gitlab (~> 1.0.2) + omniauth-google-oauth2 (~> 0.6.0) + omniauth-kerberos (~> 0.3.0) + omniauth-oauth2-generic (~> 0.2.2) + omniauth-saml (~> 1.10) + omniauth-shibboleth (~> 1.3.0) + omniauth-twitter (~> 1.4) + omniauth_crowd (~> 2.2.0) + org-ruby (~> 0.9.12) + peek (~> 1.0.1) + peek-gc (~> 0.0.2) + peek-mysql2 (~> 1.2.0) + peek-pg (~> 1.3.0) + peek-rblineprof (~> 0.2.0) + peek-redis (~> 1.2.0) + pg (~> 0.18.2) + premailer-rails (~> 1.9.7) + prometheus-client-mmap (~> 0.9.4) + pry-byebug (~> 3.5.1) + pry-rails (~> 0.3.4) + puma (~> 3.12) + puma_worker_killer + rack (= 2.0.6) + rack-attack (~> 4.4.1) + rack-cors (~> 1.0.0) + rack-oauth2 (~> 1.2.1) + rack-proxy (~> 0.6.0) + rails (= 5.0.7.1) + rails-controller-testing + rails-deprecated_sanitizer (~> 1.0.3) + rails-i18n (~> 5.1) + rainbow (~> 3.0) + raindrops (~> 0.18) + rblineprof (~> 0.3.6) + rbtrace (~> 0.4) + rdoc (~> 6.0) + re2 (~> 1.1.1) + recaptcha (~> 3.0) + redcarpet (~> 3.4) + redis (~> 3.2) + redis-namespace (~> 1.6.0) + redis-rails (~> 5.0.2) + request_store (~> 1.3) + responders (~> 2.0) + rouge (~> 3.1) + rqrcode-rails3 (~> 0.1.7) + rspec-parameterized + rspec-rails (~> 3.7.0) + rspec-retry (~> 0.4.5) + rspec-set (~> 0.1.3) + rspec_junit_formatter + rspec_profiling (~> 0.0.5) + rubocop (~> 0.54.0) + rubocop-rspec (~> 1.22.1) + ruby-fogbugz (~> 0.2.1) + ruby-prof (~> 0.17.0) + ruby-progressbar + ruby_parser (~> 3.8) + rubyzip (~> 1.2.2) + rufus-scheduler (~> 3.4) + rugged (~> 0.27) + sanitize (~> 4.6) + sass (~> 3.5) + sass-rails (~> 5.0.6) + scss_lint (~> 0.56.0) + seed-fu (~> 2.3.7) + select2-rails (~> 3.5.9) + selenium-webdriver (~> 3.12) + sentry-raven (~> 2.7) + settingslogic (~> 2.0.9) + sham_rack (~> 1.3.6) + shoulda-matchers (~> 3.1.2) + sidekiq (~> 5.2.1) + sidekiq-cron (~> 0.6.0) + simple_po_parser (~> 1.1.2) + simplecov (~> 0.14.0) + slack-notifier (~> 1.5.1) + spring (~> 2.0.0) + spring-commands-rspec (~> 1.0.4) + sprockets (~> 3.7.0) + sshkey (~> 1.9.0) + stackprof (~> 0.2.10) + state_machines-activerecord (~> 0.5.1) + sys-filesystem (~> 1.1.6) + test-prof (~> 0.2.5) + thin (~> 1.7.0) + timecop (~> 0.8.0) + toml-rb (~> 1.0.0) + truncato (~> 0.7.9) + u2f (~> 0.2.1) + uglifier (~> 2.7.2) + unf (~> 0.1.4) + unicorn (~> 5.1.0) + unicorn-worker-killer (~> 0.4.4) + validates_hostname (~> 1.0.6) + version_sorter (~> 2.1.0) + virtus (~> 1.0.1) + vmstat (~> 2.3.0) + webmock (~> 2.3.2) + webpack-rails (~> 0.9.10) + wikicloth (= 0.8.1) + +BUNDLED WITH + 1.17.3 diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix new file mode 100644 index 000000000000..03f885f2f9e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix @@ -0,0 +1,3653 @@ +{ + abstract_type = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14"; + type = "gem"; + }; + version = "0.0.7"; + }; + ace-rails-ap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h"; + type = "gem"; + }; + version = "4.1.2"; + }; + actioncable = { + dependencies = ["actionpack" "nio4r" "websocket-driver"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1443cal16yzc94hfxcx9ljagdbs5xs54bmr55wzmg84wx28bgvrb"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "077g5yg8l10rcs8r63pmmikakma1nr2bvxa1ifly1vbry8lajmhm"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zn3gw1naz1l6kcb4h5all24kisdv8fk733vm1niiaq2zmwbvlrw"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "053z1r9lbyqb7a8mvi7ppwgphqg1pn9ynhklwxavq65cym8qn9a1"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w9rspq9y5a99kyljzam7k0cpvkxpzhfmlvs1j6a4flxn14qy7lv"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activemodel = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i808lgn542x0lyk2dlnziiqcf1nmxhxqf6125dq6brr08yxgr0c"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qva7vdv9arliza0155k0xh5w1q6rzdajj3rmj7hv0f86ybd674c"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + activerecord_sane_schema_dumper = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16jbf461wjaxyq26si5505wcj46mi23mii9hx4wjpva1zn9hz5m2"; + type = "gem"; + }; + version = "1.0"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02dnmcmkvzijbzm5nlmrd55s5586b78s087kvpvkada3791b9agb"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + acts-as-taggable-on = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i"; + type = "gem"; + }; + version = "5.0.0"; + }; + adamantium = { + dependencies = ["ice_nine" "memoizable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak"; + type = "gem"; + }; + version = "0.2.0"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + type = "gem"; + }; + version = "2.5.2"; + }; + aes_key_wrap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07"; + type = "gem"; + }; + version = "1.0.1"; + }; + akismet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w"; + type = "gem"; + }; + version = "2.0.0"; + }; + arel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l757dkkaxk5fq3368l79jpyzq9a9driricjamhiwhwvh0h7xcyx"; + type = "gem"; + }; + version = "7.1.4"; + }; + asana = { + dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h0qiywvjjc9iyzq9nz5iaqyh6qsrix4ip0w86j5c4v5g940z6qx"; + type = "gem"; + }; + version = "0.8.1"; + }; + asciidoctor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qld3a1pbcjvs8lbxp95iz83bfmg5scmnf8q3rklinmdmhzakslx"; + type = "gem"; + }; + version = "1.5.8"; + }; + asciidoctor-plantuml = { + dependencies = ["asciidoctor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna"; + type = "gem"; + }; + version = "0.0.8"; + }; + ast = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; + type = "gem"; + }; + version = "2.4.0"; + }; + atomic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9"; + type = "gem"; + }; + version = "1.1.99"; + }; + attr_encrypted = { + dependencies = ["encryptor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg"; + type = "gem"; + }; + version = "3.1.0"; + }; + attr_required = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc"; + type = "gem"; + }; + version = "1.0.0"; + }; + awesome_print = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h"; + type = "gem"; + }; + version = "1.8.0"; + }; + aws-sdk = { + dependencies = ["aws-sdk-resources"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03r754cqa0jayf1nxpcmp1anaypxwpcjyjaq5cz7i04l9jdxvsnn"; + type = "gem"; + }; + version = "2.9.32"; + }; + aws-sdk-core = { + dependencies = ["aws-sigv4" "jmespath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pq09wwb74y4m5adk4hi4zlz05q6sxjxij6g71v6nkd0z83hi34x"; + type = "gem"; + }; + version = "2.9.32"; + }; + aws-sdk-resources = { + dependencies = ["aws-sdk-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15m56k12x9gzkcyhwrab1qhi3wqla0qmv84dkqcjwp44d7c2xjyi"; + type = "gem"; + }; + version = "2.9.32"; + }; + aws-sigv4 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cnrfxbaxn86qrxhfidg10f89ka1hddihakdhcvnri0dljaw7dsz"; + type = "gem"; + }; + version = "1.0.0"; + }; + axiom-types = { + dependencies = ["descendants_tracker" "ice_nine" "thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; + type = "gem"; + }; + version = "0.1.1"; + }; + babosa = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f"; + type = "gem"; + }; + version = "1.0.2"; + }; + base32 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk"; + type = "gem"; + }; + version = "0.3.2"; + }; + batch-loader = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pwr2hk9x1qx9i2xpkpjwkdjsmm4kamz5f25wizsaw37zb64apjc"; + type = "gem"; + }; + version = "1.2.2"; + }; + bcrypt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy"; + type = "gem"; + }; + version = "3.1.12"; + }; + bcrypt_pbkdf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv"; + type = "gem"; + }; + version = "1.0.0"; + }; + benchmark-ips = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j"; + type = "gem"; + }; + version = "2.3.0"; + }; + better_errors = { + dependencies = ["coderay" "erubi" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7"; + type = "gem"; + }; + version = "2.5.0"; + }; + bindata = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr"; + type = "gem"; + }; + version = "2.4.3"; + }; + binding_ninja = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19dk26qyx433ffa6y48511apc2iw71zw4jnlqxhy0wix9dlxr2ri"; + type = "gem"; + }; + version = "0.2.2"; + }; + binding_of_caller = { + dependencies = ["debug_inspector"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g"; + type = "gem"; + }; + version = "0.8.0"; + }; + bootsnap = { + dependencies = ["msgpack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy"; + type = "gem"; + }; + version = "1.3.2"; + }; + bootstrap_form = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw"; + type = "gem"; + }; + version = "2.7.0"; + }; + brakeman = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v"; + type = "gem"; + }; + version = "4.2.1"; + }; + browser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f"; + type = "gem"; + }; + version = "2.5.3"; + }; + builder = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + bullet = { + dependencies = ["activesupport" "uniform_notifier"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5"; + type = "gem"; + }; + version = "5.5.1"; + }; + bundler-audit = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb"; + type = "gem"; + }; + version = "0.5.0"; + }; + byebug = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vv7s88w8jb1qg4qz3jrs3x3y5d9jfyyl7wfiz78b5x95ydvx41q"; + type = "gem"; + }; + version = "9.1.0"; + }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hkl6p07gf29952biv07fy88vjz46ng2h37wwx5ks0mk9kn8vvvf"; + type = "gem"; + }; + version = "2.16.1"; + }; + capybara-screenshot = { + dependencies = ["capybara" "launchy"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x90lh7nf3zi54arjf430s9xdxr3c12xjq1l28izgxqdk8s40q7q"; + type = "gem"; + }; + version = "1.0.22"; + }; + carrierwave = { + dependencies = ["activemodel" "activesupport" "mime-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks"; + type = "gem"; + }; + version = "1.3.1"; + }; + cause = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00"; + type = "gem"; + }; + version = "0.1"; + }; + charlock_holmes = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5"; + type = "gem"; + }; + version = "0.7.6"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; + chronic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"; + type = "gem"; + }; + version = "0.10.2"; + }; + chronic_duration = { + dependencies = ["numerizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs"; + type = "gem"; + }; + version = "0.10.6"; + }; + chunky_png = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn"; + type = "gem"; + }; + version = "1.3.5"; + }; + citrus = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf"; + type = "gem"; + }; + version = "3.0.2"; + }; + coderay = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + coercible = { + dependencies = ["descendants_tracker"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; + type = "gem"; + }; + version = "1.0.0"; + }; + commonmarker = { + dependencies = ["ruby-enum"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9"; + type = "gem"; + }; + version = "0.17.13"; + }; + concord = { + dependencies = ["adamantium" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg"; + type = "gem"; + }; + version = "0.1.5"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb"; + type = "gem"; + }; + version = "1.1.3"; + }; + concurrent-ruby-ext = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h7k4wnvbxv7vzb53kaqxbbyhp3m98g2rgymr6n1l9v0jlzcr1i8"; + type = "gem"; + }; + version = "1.1.3"; + }; + connection_pool = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68"; + type = "gem"; + }; + version = "2.2.2"; + }; + crack = { + dependencies = ["safe_yaml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"; + type = "gem"; + }; + version = "0.4.3"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + creole = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"; + type = "gem"; + }; + version = "0.5.0"; + }; + css_parser = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy"; + type = "gem"; + }; + version = "1.5.0"; + }; + daemons = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2"; + type = "gem"; + }; + version = "1.2.6"; + }; + database_cleaner = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x"; + type = "gem"; + }; + version = "1.7.0"; + }; + debug_inspector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0"; + type = "gem"; + }; + version = "0.0.3"; + }; + debugger-ruby_core_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd"; + type = "gem"; + }; + version = "1.3.8"; + }; + deckar01-task_list = { + dependencies = ["html-pipeline"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j"; + type = "gem"; + }; + version = "2.0.0"; + }; + declarative = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j"; + type = "gem"; + }; + version = "0.0.10"; + }; + declarative-option = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p"; + type = "gem"; + }; + version = "0.1.0"; + }; + descendants_tracker = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; + type = "gem"; + }; + version = "0.0.4"; + }; + device_detector = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q"; + type = "gem"; + }; + version = "1.0.0"; + }; + devise = { + dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj"; + type = "gem"; + }; + version = "4.4.3"; + }; + devise-two-factor = { + dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs"; + type = "gem"; + }; + version = "3.0.0"; + }; + diff-lcs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"; + type = "gem"; + }; + version = "1.3"; + }; + diffy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj"; + type = "gem"; + }; + version = "3.1.0"; + }; + discordrb-webhooks-blackst0ne = { + dependencies = ["rest-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39"; + type = "gem"; + }; + version = "3.3.0"; + }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; + domain_name = { + dependencies = ["unf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"; + type = "gem"; + }; + version = "0.5.20180417"; + }; + doorkeeper = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz"; + type = "gem"; + }; + version = "4.3.2"; + }; + doorkeeper-openid_connect = { + dependencies = ["doorkeeper" "json-jwt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95"; + type = "gem"; + }; + version = "1.5.0"; + }; + ed25519 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw"; + type = "gem"; + }; + version = "1.2.4"; + }; + elasticsearch = { + dependencies = ["elasticsearch-api" "elasticsearch-transport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fik4nrxyi28zy1xwi4rygn0pf1sm1gskcrvbsnmqfrsdd6l4ga4"; + type = "gem"; + }; + version = "5.0.3"; + }; + elasticsearch-api = { + dependencies = ["multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0aal128hq59l5kscl2ag2cv24g1sp5ysdb4jxkqmj0b1l9rv16mw"; + type = "gem"; + }; + version = "5.0.3"; + }; + elasticsearch-model = { + dependencies = ["activesupport" "elasticsearch" "hashie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10kbsdxd192g8x60fhaxs4gqpgwag68d53flcw8rwvdm0i8smyzf"; + type = "gem"; + }; + version = "0.1.9"; + }; + elasticsearch-rails = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "081hm2dc3l6kky027wm3s8k6lmiygg0hnrggnidchbl94nlalw2z"; + type = "gem"; + }; + version = "0.1.9"; + }; + elasticsearch-transport = { + dependencies = ["faraday" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a7fak70ajdqw1ahd2gmgijka52pjjfr3chaakkxa5fk3rwwna26"; + type = "gem"; + }; + version = "5.0.3"; + }; + email_reply_trimmer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz"; + type = "gem"; + }; + version = "0.1.6"; + }; + email_spec = { + dependencies = ["htmlentities" "launchy" "mail"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0"; + type = "gem"; + }; + version = "2.2.0"; + }; + encryptor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; + type = "gem"; + }; + version = "3.0.0"; + }; + equalizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; + type = "gem"; + }; + version = "0.0.11"; + }; + erubi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bws86na9k565raiz0kk61yy5pxxp0fmwyzpibdwjkq0xzx8q6q1"; + type = "gem"; + }; + version = "1.7.1"; + }; + erubis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; + type = "gem"; + }; + version = "2.7.0"; + }; + escape_utils = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5"; + type = "gem"; + }; + version = "1.2.1"; + }; + et-orbi = { + dependencies = ["tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi"; + type = "gem"; + }; + version = "1.0.3"; + }; + eventmachine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + excon = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2"; + type = "gem"; + }; + version = "0.62.0"; + }; + execjs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw"; + type = "gem"; + }; + version = "2.6.0"; + }; + expression_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib"; + type = "gem"; + }; + version = "0.9.0"; + }; + factory_bot = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx"; + type = "gem"; + }; + version = "4.8.2"; + }; + factory_bot_rails = { + dependencies = ["factory_bot" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2"; + type = "gem"; + }; + version = "4.8.2"; + }; + faraday = { + dependencies = ["multipart-post"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2"; + type = "gem"; + }; + version = "0.12.2"; + }; + faraday_middleware = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d"; + type = "gem"; + }; + version = "0.12.2"; + }; + faraday_middleware-aws-signers-v4 = { + dependencies = ["aws-sdk-resources" "faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y88xcbq8k2ijhsqdava5493p26k49agvnzca6vkl3qwfv3ambhp"; + type = "gem"; + }; + version = "0.1.7"; + }; + faraday_middleware-multi_json = { + dependencies = ["faraday_middleware" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q"; + type = "gem"; + }; + version = "0.0.6"; + }; + fast_blank = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56"; + type = "gem"; + }; + version = "1.0.0"; + }; + fast_gettext = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3"; + type = "gem"; + }; + version = "1.6.0"; + }; + ffaker = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3"; + type = "gem"; + }; + version = "2.10.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q"; + type = "gem"; + }; + version = "1.9.25"; + }; + flipper = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw"; + type = "gem"; + }; + version = "0.13.0"; + }; + flipper-active_record = { + dependencies = ["activerecord" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1"; + type = "gem"; + }; + version = "0.13.0"; + }; + flipper-active_support_cache_store = { + dependencies = ["activesupport" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk"; + type = "gem"; + }; + version = "0.13.0"; + }; + flowdock = { + dependencies = ["httparty" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg"; + type = "gem"; + }; + version = "0.7.1"; + }; + fog-aliyun = { + dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m"; + type = "gem"; + }; + version = "0.2.0"; + }; + fog-aws = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3"; + type = "gem"; + }; + version = "2.0.1"; + }; + fog-core = { + dependencies = ["builder" "excon" "formatador"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3"; + type = "gem"; + }; + version = "1.45.0"; + }; + fog-google = { + dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2"; + type = "gem"; + }; + version = "1.7.1"; + }; + fog-json = { + dependencies = ["fog-core" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r"; + type = "gem"; + }; + version = "1.0.2"; + }; + fog-local = { + dependencies = ["fog-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn"; + type = "gem"; + }; + version = "0.3.1"; + }; + fog-openstack = { + dependencies = ["fog-core" "fog-json" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys"; + type = "gem"; + }; + version = "0.1.21"; + }; + fog-rackspace = { + dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a"; + type = "gem"; + }; + version = "0.1.1"; + }; + fog-xml = { + dependencies = ["fog-core" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n"; + type = "gem"; + }; + version = "0.1.3"; + }; + font-awesome-rails = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw"; + type = "gem"; + }; + version = "4.7.0.1"; + }; + foreman = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0"; + type = "gem"; + }; + version = "0.84.0"; + }; + formatador = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; + type = "gem"; + }; + version = "0.2.5"; + }; + fuubar = { + dependencies = ["rspec-core" "ruby-progressbar"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv"; + type = "gem"; + }; + version = "2.2.0"; + }; + gemojione = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj"; + type = "gem"; + }; + version = "3.3.0"; + }; + get_process_mem = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29"; + type = "gem"; + }; + version = "0.2.0"; + }; + gettext = { + dependencies = ["locale" "text"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr"; + type = "gem"; + }; + version = "3.2.9"; + }; + gettext_i18n_rails = { + dependencies = ["fast_gettext"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vs918a03mqvx9aczaqdg9d2q9s3c6swqavzn82qgq5i822czrcm"; + type = "gem"; + }; + version = "1.8.0"; + }; + gettext_i18n_rails_js = { + dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x"; + type = "gem"; + }; + version = "1.3.0"; + }; + gitaly-proto = { + dependencies = ["grpc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p7c63saysp4ixj08kxrk5c4n94d6zala9wl1fxg7vx8nd84b2c0"; + type = "gem"; + }; + version = "1.5.0"; + }; + github-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp"; + type = "gem"; + }; + version = "1.7.0"; + }; + gitlab-default_value_for = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qqjf7nxmwxnkdlrgbnby8wjckaj2s5yna96avgb7fwm0h90f1sn"; + type = "gem"; + }; + version = "3.1.1"; + }; + gitlab-license = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih"; + type = "gem"; + }; + version = "1.0.0"; + }; + gitlab-markup = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12lzzhbmid4m23pk7d963n3njli2hw7g200arszh75j57bjgs4fy"; + type = "gem"; + }; + version = "1.6.5"; + }; + gitlab-sidekiq-fetcher = { + dependencies = ["sidekiq"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xaag97iclmiay8fx7dkiws8dsws2gi6l0axq4yljq5g7xm78qjr"; + type = "gem"; + }; + version = "0.4.0"; + }; + gitlab-styles = { + dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx"; + type = "gem"; + }; + version = "2.4.1"; + }; + gitlab_omniauth-ldap = { + dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv"; + type = "gem"; + }; + version = "2.0.4"; + }; + globalid = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38"; + type = "gem"; + }; + version = "0.4.1"; + }; + gon = { + dependencies = ["actionpack" "multi_json" "request_store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806"; + type = "gem"; + }; + version = "6.2.0"; + }; + google-api-client = { + dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k"; + type = "gem"; + }; + version = "0.23.4"; + }; + google-protobuf = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf"; + type = "gem"; + }; + version = "3.6.1"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq"; + type = "gem"; + }; + version = "1.0.2"; + }; + googleauth = { + dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l"; + type = "gem"; + }; + version = "0.6.6"; + }; + gpgme = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m"; + type = "gem"; + }; + version = "2.0.18"; + }; + grape = { + dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c"; + type = "gem"; + }; + version = "1.1.0"; + }; + grape-entity = { + dependencies = ["activesupport" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9"; + type = "gem"; + }; + version = "0.7.1"; + }; + grape-path-helpers = { + dependencies = ["activesupport" "grape" "rake"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw"; + type = "gem"; + }; + version = "1.0.6"; + }; + grape_logging = { + dependencies = ["grape"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza"; + type = "gem"; + }; + version = "1.7.0"; + }; + graphiql-rails = { + dependencies = ["railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8"; + type = "gem"; + }; + version = "1.4.10"; + }; + graphql = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl"; + type = "gem"; + }; + version = "1.8.1"; + }; + grpc = { + dependencies = ["google-protobuf" "googleapis-common-protos-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb"; + type = "gem"; + }; + version = "1.15.0"; + }; + gssapi = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix"; + type = "gem"; + }; + version = "1.2.0"; + }; + haml = { + dependencies = ["temple" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac"; + type = "gem"; + }; + version = "5.0.4"; + }; + haml_lint = { + dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "125aj0j84nx5gqm42hfx5d8486higlra423ahgfpsdjwbp399rwv"; + type = "gem"; + }; + version = "0.28.0"; + }; + hamlit = { + dependencies = ["temple" "thor" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i"; + type = "gem"; + }; + version = "2.8.8"; + }; + hangouts-chat = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx"; + type = "gem"; + }; + version = "0.0.5"; + }; + hashdiff = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a"; + type = "gem"; + }; + version = "0.3.4"; + }; + hashie = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb"; + type = "gem"; + }; + version = "3.5.7"; + }; + hashie-forbidden_attributes = { + dependencies = ["hashie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis"; + type = "gem"; + }; + version = "0.1.1"; + }; + health_check = { + dependencies = ["rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8"; + type = "gem"; + }; + version = "2.6.0"; + }; + hipchat = { + dependencies = ["httparty" "mimemagic"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k"; + type = "gem"; + }; + version = "1.5.2"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad"; + type = "gem"; + }; + version = "2.8.4"; + }; + html2text = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii"; + type = "gem"; + }; + version = "0.2.0"; + }; + htmlentities = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + http = { + dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc"; + type = "gem"; + }; + version = "3.3.0"; + }; + http-cookie = { + dependencies = ["domain_name"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; + type = "gem"; + }; + version = "1.0.3"; + }; + http-form_data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3"; + type = "gem"; + }; + version = "2.1.1"; + }; + "http_parser.rb" = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + httparty = { + dependencies = ["json" "multi_xml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2"; + type = "gem"; + }; + version = "0.13.7"; + }; + httpclient = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "079sqshk08mqs3d6yzvshmqf4s175lpi2pp71f1p10l09sgmrixr"; + type = "gem"; + }; + version = "1.2.0"; + }; + icalendar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd"; + type = "gem"; + }; + version = "2.4.1"; + }; + ice_nine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x"; + type = "gem"; + }; + version = "0.11.2"; + }; + influxdb = { + dependencies = ["cause" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w"; + type = "gem"; + }; + version = "0.2.3"; + }; + ipaddress = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; + type = "gem"; + }; + version = "0.8.3"; + }; + jira-ruby = { + dependencies = ["activesupport" "multipart-post" "oauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw"; + type = "gem"; + }; + version = "1.4.1"; + }; + jmespath = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07w8ipjg59qavijq59hl82zs74jf3jsp7vxl9q3a2d0wpv5akz3y"; + type = "gem"; + }; + version = "1.3.1"; + }; + jquery-atwho-rails = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9"; + type = "gem"; + }; + version = "1.3.2"; + }; + js_regex = { + dependencies = ["regexp_parser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf"; + type = "gem"; + }; + version = "2.2.1"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; + type = "gem"; + }; + version = "1.8.6"; + }; + json-jwt = { + dependencies = ["activesupport" "aes_key_wrap" "bindata"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r"; + type = "gem"; + }; + version = "1.9.4"; + }; + json-schema = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz"; + type = "gem"; + }; + version = "2.8.0"; + }; + jwt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky"; + type = "gem"; + }; + version = "2.1.0"; + }; + kaminari = { + dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-actionview = { + dependencies = ["actionview" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-activerecord = { + dependencies = ["activerecord" "kaminari-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93"; + type = "gem"; + }; + version = "1.0.1"; + }; + kaminari-core = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr"; + type = "gem"; + }; + version = "1.0.1"; + }; + kgio = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118"; + type = "gem"; + }; + version = "2.10.0"; + }; + knapsack = { + dependencies = ["rake"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92"; + type = "gem"; + }; + version = "1.17.0"; + }; + kubeclient = { + dependencies = ["http" "recursive-open-struct" "rest-client"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s250z89nz7vzich3nikc8fs8vgpac38wjv8llm4ldvs4iyc4ypg"; + type = "gem"; + }; + version = "4.0.0"; + }; + launchy = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; + type = "gem"; + }; + version = "2.4.3"; + }; + letter_opener = { + dependencies = ["launchy"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21"; + type = "gem"; + }; + version = "1.4.1"; + }; + letter_opener_web = { + dependencies = ["actionmailer" "letter_opener" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv"; + type = "gem"; + }; + version = "1.3.0"; + }; + license_finder = { + dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v"; + type = "gem"; + }; + version = "5.4.0"; + }; + licensee = { + dependencies = ["rugged"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc"; + type = "gem"; + }; + version = "8.9.2"; + }; + locale = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"; + type = "gem"; + }; + version = "2.1.2"; + }; + lograge = { + dependencies = ["actionpack" "activesupport" "railties" "request_store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd"; + type = "gem"; + }; + version = "0.10.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"; + type = "gem"; + }; + version = "2.2.3"; + }; + mail = { + dependencies = ["mini_mime"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; + type = "gem"; + }; + version = "2.7.1"; + }; + mail_room = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa"; + type = "gem"; + }; + version = "0.9.1"; + }; + memoist = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh"; + type = "gem"; + }; + version = "0.16.0"; + }; + memoizable = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"; + type = "gem"; + }; + version = "0.4.2"; + }; + method_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; + type = "gem"; + }; + version = "0.9.2"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk"; + type = "gem"; + }; + version = "3.2.2"; + }; + mime-types-data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc"; + type = "gem"; + }; + version = "3.2018.0812"; + }; + mimemagic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q"; + type = "gem"; + }; + version = "0.3.2"; + }; + mini_magick = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n"; + type = "gem"; + }; + version = "4.8.0"; + }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + msgpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864"; + type = "gem"; + }; + version = "1.2.4"; + }; + multi_json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + multi_xml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + multipart-post = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + type = "gem"; + }; + version = "2.0.0"; + }; + mustermann = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1"; + type = "gem"; + }; + version = "1.0.3"; + }; + mustermann-grape = { + dependencies = ["mustermann"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr"; + type = "gem"; + }; + version = "1.0.0"; + }; + mysql2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq"; + type = "gem"; + }; + version = "0.4.10"; + }; + nakayoshi_fork = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg"; + type = "gem"; + }; + version = "0.0.4"; + }; + net-dns = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18d97xjphw21naaqfhgxp95ikr1d79rx708b2df3xm01j6isqy1d"; + type = "gem"; + }; + version = "0.9.0"; + }; + net-ldap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq"; + type = "gem"; + }; + version = "0.16.0"; + }; + net-ntp = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv"; + type = "gem"; + }; + version = "2.1.3"; + }; + net-ssh = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w"; + type = "gem"; + }; + version = "5.0.1"; + }; + netrc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; + type = "gem"; + }; + version = "0.11.0"; + }; + nio4r = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"; + type = "gem"; + }; + version = "2.3.1"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; + type = "gem"; + }; + version = "1.8.5"; + }; + nokogumbo = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj"; + type = "gem"; + }; + version = "1.5.0"; + }; + numerizer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h"; + type = "gem"; + }; + version = "0.1.1"; + }; + oauth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y"; + type = "gem"; + }; + version = "0.5.4"; + }; + oauth2 = { + dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh"; + type = "gem"; + }; + version = "1.4.1"; + }; + octokit = { + dependencies = ["sawyer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298"; + type = "gem"; + }; + version = "4.9.0"; + }; + omniauth = { + dependencies = ["hashie" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x"; + type = "gem"; + }; + version = "1.9.0"; + }; + omniauth-auth0 = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2"; + type = "gem"; + }; + version = "2.0.0"; + }; + omniauth-authentiq = { + dependencies = ["jwt" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi"; + type = "gem"; + }; + version = "0.3.3"; + }; + omniauth-azure-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4"; + type = "gem"; + }; + version = "0.0.10"; + }; + omniauth-cas3 = { + dependencies = ["addressable" "nokogiri" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx"; + type = "gem"; + }; + version = "1.1.4"; + }; + omniauth-facebook = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5"; + type = "gem"; + }; + version = "4.0.0"; + }; + omniauth-github = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc"; + type = "gem"; + }; + version = "1.3.0"; + }; + omniauth-gitlab = { + dependencies = ["omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp"; + type = "gem"; + }; + version = "1.0.3"; + }; + omniauth-google-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df"; + type = "gem"; + }; + version = "0.6.0"; + }; + omniauth-kerberos = { + dependencies = ["omniauth-multipassword" "timfel-krb5-auth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7"; + type = "gem"; + }; + version = "0.3.0"; + }; + omniauth-multipassword = { + dependencies = ["omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8"; + type = "gem"; + }; + version = "0.4.2"; + }; + omniauth-oauth = { + dependencies = ["oauth" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037"; + type = "gem"; + }; + version = "1.1.0"; + }; + omniauth-oauth2 = { + dependencies = ["oauth2" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79"; + type = "gem"; + }; + version = "1.6.0"; + }; + omniauth-oauth2-generic = { + dependencies = ["omniauth-oauth2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273"; + type = "gem"; + }; + version = "0.2.2"; + }; + omniauth-saml = { + dependencies = ["omniauth" "ruby-saml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p"; + type = "gem"; + }; + version = "1.10.0"; + }; + omniauth-shibboleth = { + dependencies = ["omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh"; + type = "gem"; + }; + version = "1.3.0"; + }; + omniauth-twitter = { + dependencies = ["omniauth-oauth" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65"; + type = "gem"; + }; + version = "1.4.0"; + }; + omniauth_crowd = { + dependencies = ["activesupport" "nokogiri" "omniauth"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7"; + type = "gem"; + }; + version = "2.2.3"; + }; + org-ruby = { + dependencies = ["rubypants"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk"; + type = "gem"; + }; + version = "0.9.12"; + }; + orm_adapter = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; + type = "gem"; + }; + version = "0.5.0"; + }; + os = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk"; + type = "gem"; + }; + version = "1.0.0"; + }; + parallel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"; + type = "gem"; + }; + version = "1.12.1"; + }; + parser = { + dependencies = ["ast"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f"; + type = "gem"; + }; + version = "2.5.3.0"; + }; + parslet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88"; + type = "gem"; + }; + version = "1.8.2"; + }; + peek = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn"; + type = "gem"; + }; + version = "1.0.1"; + }; + peek-gc = { + dependencies = ["peek"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9"; + type = "gem"; + }; + version = "0.0.2"; + }; + peek-mysql2 = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "mysql2" "peek"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0avmwm3yw0kx0z8gh4cpqj79jb5aicd0h3yzrcdfpzwks56h1k9z"; + type = "gem"; + }; + version = "1.2.0"; + }; + peek-pg = { + dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c"; + type = "gem"; + }; + version = "1.3.0"; + }; + peek-rblineprof = { + dependencies = ["peek" "rblineprof"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c"; + type = "gem"; + }; + version = "0.2.0"; + }; + peek-redis = { + dependencies = ["atomic" "peek" "redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33"; + type = "gem"; + }; + version = "1.2.0"; + }; + pg = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32"; + type = "gem"; + }; + version = "0.18.4"; + }; + po_to_json = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba"; + type = "gem"; + }; + version = "1.0.1"; + }; + powerpack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43"; + type = "gem"; + }; + version = "0.1.1"; + }; + premailer = { + dependencies = ["addressable" "css_parser" "htmlentities"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf"; + type = "gem"; + }; + version = "1.10.4"; + }; + premailer-rails = { + dependencies = ["actionmailer" "premailer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim"; + type = "gem"; + }; + version = "1.9.7"; + }; + proc_to_ast = { + dependencies = ["coderay" "parser" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj"; + type = "gem"; + }; + version = "0.1.0"; + }; + procto = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c"; + type = "gem"; + }; + version = "0.0.3"; + }; + prometheus-client-mmap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10"; + type = "gem"; + }; + version = "0.9.4"; + }; + pry = { + dependencies = ["coderay" "method_source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g"; + type = "gem"; + }; + version = "0.11.3"; + }; + pry-byebug = { + dependencies = ["byebug" "pry"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f9kj1qp14qb8crg2rdzf22pr6ngxvy4n6ipymla8q1yjr842625"; + type = "gem"; + }; + version = "3.5.1"; + }; + pry-rails = { + dependencies = ["pry"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy"; + type = "gem"; + }; + version = "0.3.6"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + puma = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq"; + type = "gem"; + }; + version = "3.12.0"; + }; + puma_worker_killer = { + dependencies = ["get_process_mem" "puma"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i"; + type = "gem"; + }; + version = "0.1.0"; + }; + pyu-ruby-sasl = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; + type = "gem"; + }; + version = "0.0.3.3"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm"; + type = "gem"; + }; + version = "2.0.6"; + }; + rack-accept = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"; + type = "gem"; + }; + version = "0.4.5"; + }; + rack-attack = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1"; + type = "gem"; + }; + version = "4.4.1"; + }; + rack-cors = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013"; + type = "gem"; + }; + version = "1.0.2"; + }; + rack-oauth2 = { + dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf"; + type = "gem"; + }; + version = "1.2.3"; + }; + rack-protection = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ylx74ravz7nvnyygq0nk3v86qdzrmqxpwpayhppyy50l72rcajq"; + type = "gem"; + }; + version = "2.0.4"; + }; + rack-proxy = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4"; + type = "gem"; + }; + version = "0.6.0"; + }; + rack-test = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; + type = "gem"; + }; + version = "0.6.3"; + }; + rails = { + dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0blacnfcn2944cml69wji2ywp9c13qjiciavnfsa9vpimk8ixq9w"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + rails-controller-testing = { + dependencies = ["actionpack" "actionview" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy"; + type = "gem"; + }; + version = "1.0.2"; + }; + rails-deprecated_sanitizer = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; + type = "gem"; + }; + version = "1.0.3"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + type = "gem"; + }; + version = "2.0.3"; + }; + rails-html-sanitizer = { + dependencies = ["loofah"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; + type = "gem"; + }; + version = "1.0.4"; + }; + rails-i18n = { + dependencies = ["i18n" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rqij2ggqz5iq36lbibhnd7pl4qxrvv9kgw9s0c6594vzbbxmhs0"; + type = "gem"; + }; + version = "5.1.1"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cfh2ijfalxj8hhf0rfw8bqhazsq6km7barsxczsvyl2a9islanr"; + type = "gem"; + }; + version = "5.0.7.1"; + }; + rainbow = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; + type = "gem"; + }; + version = "3.0.0"; + }; + raindrops = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz"; + type = "gem"; + }; + version = "0.18.0"; + }; + rake = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn"; + type = "gem"; + }; + version = "12.3.2"; + }; + rb-fsevent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"; + type = "gem"; + }; + version = "0.10.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"; + type = "gem"; + }; + version = "0.9.10"; + }; + rblineprof = { + dependencies = ["debugger-ruby_core_source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6"; + type = "gem"; + }; + version = "0.3.6"; + }; + rbtrace = { + dependencies = ["ffi" "msgpack" "trollop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv"; + type = "gem"; + }; + version = "0.4.10"; + }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7"; + type = "gem"; + }; + version = "6.0.4"; + }; + re2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i"; + type = "gem"; + }; + version = "1.1.1"; + }; + recaptcha = { + dependencies = ["json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n"; + type = "gem"; + }; + version = "3.0.0"; + }; + recursive-open-struct = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c"; + type = "gem"; + }; + version = "1.1.0"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + RedCloth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy"; + type = "gem"; + }; + version = "4.3.2"; + }; + redis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv"; + type = "gem"; + }; + version = "3.3.5"; + }; + redis-actionpack = { + dependencies = ["actionpack" "redis-rack" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63"; + type = "gem"; + }; + version = "5.0.2"; + }; + redis-activesupport = { + dependencies = ["activesupport" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5"; + type = "gem"; + }; + version = "5.0.4"; + }; + redis-namespace = { + dependencies = ["redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah"; + type = "gem"; + }; + version = "1.6.0"; + }; + redis-rack = { + dependencies = ["rack" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb"; + type = "gem"; + }; + version = "2.0.4"; + }; + redis-rails = { + dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40"; + type = "gem"; + }; + version = "5.0.2"; + }; + redis-store = { + dependencies = ["redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b"; + type = "gem"; + }; + version = "1.6.0"; + }; + regexp_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb"; + type = "gem"; + }; + version = "0.5.0"; + }; + representable = { + dependencies = ["declarative" "declarative-option" "uber"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07"; + type = "gem"; + }; + version = "3.0.4"; + }; + request_store = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv"; + type = "gem"; + }; + version = "1.3.1"; + }; + responders = { + dependencies = ["actionpack" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn"; + type = "gem"; + }; + version = "2.4.0"; + }; + rest-client = { + dependencies = ["http-cookie" "mime-types" "netrc"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j"; + type = "gem"; + }; + version = "2.0.2"; + }; + retriable = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha"; + type = "gem"; + }; + version = "3.1.2"; + }; + rinku = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y"; + type = "gem"; + }; + version = "2.0.0"; + }; + rotp = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d"; + type = "gem"; + }; + version = "2.1.2"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql"; + type = "gem"; + }; + version = "3.3.0"; + }; + rqrcode = { + dependencies = ["chunky_png"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb"; + type = "gem"; + }; + version = "0.7.0"; + }; + rqrcode-rails3 = { + dependencies = ["rqrcode"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg"; + type = "gem"; + }; + version = "0.1.7"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3"; + type = "gem"; + }; + version = "3.7.0"; + }; + rspec-parameterized = { + dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "159yw3mb4dab5kr18a97miyyi7dqmyrfjp3aw6r6j9i4xkc4xk3a"; + type = "gem"; + }; + version = "0.4.1"; + }; + rspec-rails = { + dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx"; + type = "gem"; + }; + version = "3.7.2"; + }; + rspec-retry = { + dependencies = ["rspec-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6"; + type = "gem"; + }; + version = "0.4.5"; + }; + rspec-set = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk"; + type = "gem"; + }; + version = "0.1.3"; + }; + rspec-support = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1"; + type = "gem"; + }; + version = "3.7.1"; + }; + rspec_junit_formatter = { + dependencies = ["rspec-core"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1aynmrgnv26pkprrajvp7advb8nbh0x4pkwk6jwq8qmwzarzk21p"; + type = "gem"; + }; + version = "0.4.1"; + }; + rspec_profiling = { + dependencies = ["activerecord" "pg" "rails" "sqlite3"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz"; + type = "gem"; + }; + version = "0.0.5"; + }; + rubocop = { + dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is"; + type = "gem"; + }; + version = "0.54.0"; + }; + rubocop-gitlab-security = { + dependencies = ["rubocop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln"; + type = "gem"; + }; + version = "0.1.1"; + }; + rubocop-rspec = { + dependencies = ["rubocop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla"; + type = "gem"; + }; + version = "1.22.2"; + }; + ruby-enum = { + dependencies = ["i18n"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx"; + type = "gem"; + }; + version = "0.7.2"; + }; + ruby-fogbugz = { + dependencies = ["crack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm"; + type = "gem"; + }; + version = "0.2.1"; + }; + ruby-prof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c"; + type = "gem"; + }; + version = "0.17.0"; + }; + ruby-progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk"; + type = "gem"; + }; + version = "1.9.0"; + }; + ruby-saml = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3"; + type = "gem"; + }; + version = "1.7.2"; + }; + ruby_parser = { + dependencies = ["sexp_processor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mysmdyxhvyn6dhshfxyw762f9asr3kxw45idvw1bh6np31kk4j1"; + type = "gem"; + }; + version = "3.11.0"; + }; + rubyntlm = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy"; + type = "gem"; + }; + version = "0.6.2"; + }; + rubypants = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph"; + type = "gem"; + }; + version = "0.2.0"; + }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + rufus-scheduler = { + dependencies = ["et-orbi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8"; + type = "gem"; + }; + version = "3.4.0"; + }; + rugged = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6"; + type = "gem"; + }; + version = "0.27.5"; + }; + safe_yaml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; + type = "gem"; + }; + version = "1.0.4"; + }; + sanitize = { + dependencies = ["crass" "nokogiri" "nokogumbo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv"; + type = "gem"; + }; + version = "4.6.6"; + }; + sass = { + dependencies = ["sass-listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v"; + type = "gem"; + }; + version = "3.5.5"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + sass-rails = { + dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb"; + type = "gem"; + }; + version = "5.0.6"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd"; + type = "gem"; + }; + version = "0.8.1"; + }; + scss_lint = { + dependencies = ["rake" "sass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g"; + type = "gem"; + }; + version = "0.56.0"; + }; + seed-fu = { + dependencies = ["activerecord" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi"; + type = "gem"; + }; + version = "2.3.7"; + }; + select2-rails = { + dependencies = ["thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj"; + type = "gem"; + }; + version = "3.5.9.3"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz"; + type = "gem"; + }; + version = "3.12.0"; + }; + sentry-raven = { + dependencies = ["faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0bci35amy7pqv81djyjcx023q4qylmq8a2zbx14zh6ifzib4f4"; + type = "gem"; + }; + version = "2.7.4"; + }; + settingslogic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar"; + type = "gem"; + }; + version = "2.0.9"; + }; + sexp_processor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vnmphfrd86694x5k7rxddbhbvv5rqbglsc34kfryy4jqhbzz42c"; + type = "gem"; + }; + version = "4.11.0"; + }; + sham_rack = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i"; + type = "gem"; + }; + version = "1.3.6"; + }; + shoulda-matchers = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a"; + type = "gem"; + }; + version = "3.1.2"; + }; + sidekiq = { + dependencies = ["connection_pool" "rack-protection" "redis"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zyf9y3rvzizbwh68i2g1lzd40lalrdc4iyjmaa74gnfwsf92i26"; + type = "gem"; + }; + version = "5.2.3"; + }; + sidekiq-cron = { + dependencies = ["rufus-scheduler" "sidekiq"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj"; + type = "gem"; + }; + version = "0.6.0"; + }; + signet = { + dependencies = ["addressable" "faraday" "jwt" "multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4"; + type = "gem"; + }; + version = "0.11.0"; + }; + simple_po_parser = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3"; + type = "gem"; + }; + version = "1.1.2"; + }; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww"; + type = "gem"; + }; + version = "0.14.1"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf"; + type = "gem"; + }; + version = "0.10.0"; + }; + slack-notifier = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6"; + type = "gem"; + }; + version = "1.5.1"; + }; + spring = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75"; + type = "gem"; + }; + version = "2.0.2"; + }; + spring-commands-rspec = { + dependencies = ["spring"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; + type = "gem"; + }; + version = "1.0.4"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; + type = "gem"; + }; + version = "3.2.1"; + }; + sqlite3 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i"; + type = "gem"; + }; + version = "1.3.13"; + }; + sshkey = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h"; + type = "gem"; + }; + version = "1.9.0"; + }; + stackprof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski"; + type = "gem"; + }; + version = "0.2.10"; + }; + state_machines = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3"; + type = "gem"; + }; + version = "0.5.0"; + }; + state_machines-activemodel = { + dependencies = ["activemodel" "state_machines"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l"; + type = "gem"; + }; + version = "0.5.1"; + }; + state_machines-activerecord = { + dependencies = ["activerecord" "state_machines-activemodel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3"; + type = "gem"; + }; + version = "0.5.1"; + }; + sys-filesystem = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq"; + type = "gem"; + }; + version = "1.1.6"; + }; + sysexits = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr"; + type = "gem"; + }; + version = "1.2.0"; + }; + temple = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq"; + type = "gem"; + }; + version = "0.8.0"; + }; + test-prof = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3"; + type = "gem"; + }; + version = "0.2.5"; + }; + text = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + thin = { + dependencies = ["daemons" "eventmachine" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f"; + type = "gem"; + }; + version = "1.7.2"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns"; + type = "gem"; + }; + version = "0.19.4"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tilt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra"; + type = "gem"; + }; + version = "2.0.8"; + }; + timecop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx"; + type = "gem"; + }; + version = "0.8.1"; + }; + timfel-krb5-auth = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b"; + type = "gem"; + }; + version = "0.8.3"; + }; + toml = { + dependencies = ["parslet"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki"; + type = "gem"; + }; + version = "0.2.0"; + }; + toml-rb = { + dependencies = ["citrus"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d"; + type = "gem"; + }; + version = "1.0.0"; + }; + trollop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq"; + type = "gem"; + }; + version = "2.1.3"; + }; + truncato = { + dependencies = ["htmlentities" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b"; + type = "gem"; + }; + version = "0.7.10"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + u2f = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr"; + type = "gem"; + }; + version = "0.2.1"; + }; + uber = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv"; + type = "gem"; + }; + version = "0.1.0"; + }; + uglifier = { + dependencies = ["execjs" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz"; + type = "gem"; + }; + version = "2.7.2"; + }; + unf = { + dependencies = ["unf_ext"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1"; + type = "gem"; + }; + version = "0.0.7.5"; + }; + unicode-display_width = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n"; + type = "gem"; + }; + version = "1.3.2"; + }; + unicorn = { + dependencies = ["kgio" "raindrops"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v"; + type = "gem"; + }; + version = "5.1.0"; + }; + unicorn-worker-killer = { + dependencies = ["get_process_mem" "unicorn"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva"; + type = "gem"; + }; + version = "0.4.4"; + }; + uniform_notifier = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l"; + type = "gem"; + }; + version = "1.10.0"; + }; + unparser = { + dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w662glqi7hwmfvx0smxckxgc7kw5bsqhqz0pyvalbyv1gc0gs2x"; + type = "gem"; + }; + version = "0.4.2"; + }; + validates_hostname = { + dependencies = ["activerecord" "activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja"; + type = "gem"; + }; + version = "1.0.6"; + }; + version_sorter = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr"; + type = "gem"; + }; + version = "2.1.0"; + }; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk"; + type = "gem"; + }; + version = "1.0.5"; + }; + vmstat = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b"; + type = "gem"; + }; + version = "2.3.0"; + }; + warden = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12"; + type = "gem"; + }; + version = "1.2.7"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5"; + type = "gem"; + }; + version = "2.3.2"; + }; + webpack-rails = { + dependencies = ["railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr"; + type = "gem"; + }; + version = "0.9.11"; + }; + websocket-driver = { + dependencies = ["websocket-extensions"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1943442yllhldh9dbp374x2q39cxa49xrm28nb78b7mfbv3y195l"; + type = "gem"; + }; + version = "0.6.5"; + }; + websocket-extensions = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270"; + type = "gem"; + }; + version = "0.1.3"; + }; + wikicloth = { + dependencies = ["builder" "expression_parser" "rinku"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s"; + type = "gem"; + }; + version = "0.8.1"; + }; + with_env = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh"; + type = "gem"; + }; + version = "1.1.0"; + }; + xml-simple = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"; + type = "gem"; + }; + version = "1.1.5"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw"; + type = "gem"; + }; + version = "2.1.0"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/nixpkgs/pkgs/applications/version-management/gitlab/update.py new file mode 100755 index 000000000000..26dc3d39eb1b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/update.py @@ -0,0 +1,235 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log + +import click +import click_log +import os +import re +import logging +import subprocess +import json +import pathlib +from typing import Iterable + +import requests +from xml.etree import ElementTree + +logger = logging.getLogger(__name__) + + +class GitLabRepo: + def __init__(self, owner: str, repo: str): + self.owner = owner + self.repo = repo + + @property + def url(self): + return f"https://gitlab.com/{self.owner}/{self.repo}" + + @property + def tags(self) -> Iterable[str]: + r = requests.get(self.url + "/tags?format=atom", stream=True) + + tree = ElementTree.fromstring(r.content) + return sorted((e.text for e in tree.findall( + '{http://www.w3.org/2005/Atom}entry/{http://www.w3.org/2005/Atom}title')), reverse=True) + + def get_git_hash(self, rev: str): + out = subprocess.check_output(['nix-prefetch-git', self.url, rev]) + j = json.loads(out) + return j['sha256'] + + def get_deb_url(self, flavour: str, version: str, arch: str = 'amd64') -> str: + """ + gitlab builds debian packages, which we currently need as we don't build the frontend on our own + this returns the url of a given flavour, version and arch + :param flavour: 'ce' or 'ee' + :param version: a version, without 'v' prefix and '-ee' suffix + :param arch: amd64 + :return: url of the debian package + """ + if self.owner != "gitlab-org" or self.repo not in ['gitlab-ce', 'gitlab-ee']: + raise Exception(f"don't know how to get deb_url for {self.url}") + return f"https://packages.gitlab.com/gitlab/gitlab-{flavour}/packages" + \ + f"/debian/stretch/gitlab-{flavour}_{version}-{flavour}.0_{arch}.deb/download.deb" + + def get_deb_hash(self, flavour: str, version: str) -> str: + out = subprocess.check_output(['nix-prefetch-url', self.get_deb_url(flavour, version)]) + return out.decode('utf-8').strip() + + @staticmethod + def rev2version(tag: str) -> str: + """ + normalize a tag to a version number. + This obviously isn't very smart if we don't pass something that looks like a tag + :param tag: the tag to normalize + :return: a normalized version number + """ + # strip v prefix + version = re.sub(r"^v", '', tag) + # strip -ee suffix + return re.sub(r"-ee$", '', version) + + def get_file(self, filepath, rev): + """ + returns file contents at a given rev + :param filepath: the path to the file, relative to the repo root + :param rev: the rev to fetch at + :return: + """ + return requests.get(self.url + f"/raw/{rev}/{filepath}").text + + def get_data(self, rev, flavour): + version = self.rev2version(rev) + + passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION', + 'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']} + return dict(version=self.rev2version(rev), + repo_hash=self.get_git_hash(rev), + deb_hash=self.get_deb_hash(flavour, version), + deb_url=self.get_deb_url(flavour, version), + owner=self.owner, + repo=self.repo, + rev=rev, + passthru=passthru) + + +def _flavour2gitlabrepo(flavour: str): + if flavour not in ['ce', 'ee']: + raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee") + + owner = 'gitlab-org' + repo = 'gitlab-' + flavour + + return GitLabRepo(owner, repo) + + +def _update_data_json(filename: str, repo: GitLabRepo, rev: str, flavour: str): + flavour_data = repo.get_data(rev, flavour) + + if not os.path.exists(filename): + with open(filename, 'w') as f: + json.dump({flavour: flavour_data}, f, indent=2) + else: + with open(filename, 'r+') as f: + data = json.load(f) + data[flavour] = flavour_data + f.seek(0) + f.truncate() + json.dump(data, f, indent=2) + + +def _get_data_json(): + data_file_path = pathlib.Path(__file__).parent / 'data.json' + with open(data_file_path, 'r') as f: + return json.load(f) + + +def _call_update_source_version(pkg, version): + """calls update-source-version from nixpkgs root dir""" + nixpkgs_path = pathlib.Path(__file__).parent / '../../../../' + return subprocess.check_output(['update-source-version', pkg, version], cwd=nixpkgs_path) + + +@click_log.simple_verbosity_option(logger) +@click.group() +def cli(): + pass + + +@cli.command('update-data') +@click.option('--rev', default='latest', help='The rev to use, \'latest\' points to the latest (stable) tag') +@click.argument('flavour') +def update_data(rev: str, flavour: str): + """Update data.nix for a selected flavour""" + r = _flavour2gitlabrepo(flavour) + + if rev == 'latest': + # filter out pre and re releases + rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), r.tags)) + logger.debug(f"Using rev {rev}") + + version = r.rev2version(rev) + logger.debug(f"Using version {version}") + + data_file_path = pathlib.Path(__file__).parent / 'data.json' + + _update_data_json(filename=data_file_path.as_posix(), + repo=r, + rev=rev, + flavour=flavour) + + +@cli.command('update-rubyenv') +@click.argument('flavour') +def update_rubyenv(flavour): + """Update rubyEnv-${flavour}""" + if flavour not in ['ce', 'ee']: + raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee") + + r = _flavour2gitlabrepo(flavour) + rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv-{flavour}" + + # load rev from data.json + data = _get_data_json() + rev = data[flavour]['rev'] + + for fn in ['Gemfile.lock', 'Gemfile']: + with open(rubyenv_dir / fn, 'w') as f: + f.write(r.get_file(fn, rev)) + + subprocess.check_output(['bundix'], cwd=rubyenv_dir) + + +@cli.command('update-gitaly') +def update_gitaly(): + """Update gitaly""" + data = _get_data_json() + gitaly_server_version = data['ce']['passthru']['GITALY_SERVER_VERSION'] + r = GitLabRepo('gitlab-org', 'gitaly') + rubyenv_dir = pathlib.Path(__file__).parent / 'gitaly' + + for fn in ['Gemfile.lock', 'Gemfile']: + with open(rubyenv_dir / fn, 'w') as f: + f.write(r.get_file(f"ruby/{fn}", f"v{gitaly_server_version}")) + + subprocess.check_output(['bundix'], cwd=rubyenv_dir) + # currently broken, as `gitaly.meta.position` returns + # pkgs/development/go-modules/generic/default.nix + # so update-source-version doesn't know where to update hashes + # _call_update_source_version('gitaly', gitaly_server_version) + gitaly_hash = r.get_git_hash(f"v{gitaly_server_version}") + click.echo(f"Please update gitaly/default.nix to version {gitaly_server_version} and hash {gitaly_hash}") + + + +@cli.command('update-gitlab-shell') +def update_gitlab_shell(): + """Update gitlab-shell""" + data = _get_data_json() + gitlab_shell_version = data['ce']['passthru']['GITLAB_SHELL_VERSION'] + _call_update_source_version('gitlab-shell', gitlab_shell_version) + + +@cli.command('update-gitlab-workhorse') +def update_gitlab_workhorse(): + """Update gitlab-shell""" + data = _get_data_json() + gitlab_workhorse_version = data['ce']['passthru']['GITLAB_WORKHORSE_VERSION'] + _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version) + + +@cli.command('update-all') +@click.pass_context +def update_all(ctx): + """Update gitlab ce and ee data.nix and rubyenvs to the latest stable release""" + for flavour in ['ce', 'ee']: + ctx.invoke(update_data, rev='latest', flavour=flavour) + ctx.invoke(update_rubyenv, flavour=flavour) + ctx.invoke(update_gitaly) + ctx.invoke(update_gitlab_shell) + ctx.invoke(update_gitlab_workhorse) + + +if __name__ == '__main__': + cli() diff --git a/nixpkgs/pkgs/applications/version-management/gitless/default.nix b/nixpkgs/pkgs/applications/version-management/gitless/default.nix new file mode 100644 index 000000000000..d062c32d018e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitless/default.nix @@ -0,0 +1,26 @@ +{ fetchFromGitHub, pythonPackages, stdenv }: + +pythonPackages.buildPythonApplication rec { + ver = "0.8.6"; + name = "gitless-${ver}"; + + src = fetchFromGitHub { + owner = "sdg-mit"; + repo = "gitless"; + rev = "v${ver}"; + sha256 = "1q6y38f8ap6q1livvfy0pfnjr0l8b68hyhc9r5v87fmdyl7y7y8g"; + }; + + propagatedBuildInputs = with pythonPackages; [ sh pygit2 clint ]; + + doCheck = false; + + meta = with stdenv.lib; { + homepage = http://gitless.com/; + description = "A version control system built on top of Git"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = [ maintainers.cransom ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/version-management/gitolite/default.nix b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix new file mode 100644 index 000000000000..78dd9dd49dfd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, git, nettools, perl }: + +stdenv.mkDerivation rec { + name = "gitolite-${version}"; + version = "3.6.11"; + + src = fetchFromGitHub { + owner = "sitaramc"; + repo = "gitolite"; + rev = "v${version}"; + sha256 = "1rkj7gknwjlc5ij9w39zf5mr647bm45la57yjczydmvrb8c56yrh"; + }; + + buildInputs = [ git nettools perl ]; + + dontBuild = true; + + postPatch = '' + substituteInPlace ./install --replace " 2>/dev/null" "" + substituteInPlace src/lib/Gitolite/Hooks/PostUpdate.pm \ + --replace /usr/bin/perl "${perl}/bin/perl" + substituteInPlace src/lib/Gitolite/Hooks/Update.pm \ + --replace /usr/bin/perl "${perl}/bin/perl" + substituteInPlace src/lib/Gitolite/Setup.pm \ + --replace hostname "${nettools}/bin/hostname" + ''; + + installPhase = '' + mkdir -p $out/bin + perl ./install -to $out/bin + echo ${version} > $out/bin/VERSION + ''; + + meta = with stdenv.lib; { + description = "Finely-grained git repository hosting"; + homepage = http://gitolite.com/gitolite/index.html; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.thoughtpolice maintainers.lassulus maintainers.tomberek ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitstats/default.nix b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix new file mode 100644 index 000000000000..64b6e2107f6a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchzip, perl, python, gnuplot, coreutils, gnugrep }: + +stdenv.mkDerivation rec { + name = "gitstats-${version}"; + version = "2016-01-08"; + + # upstream does not make releases + src = fetchzip { + url = "https://github.com/hoxu/gitstats/archive/55c5c285558c410bb35ebf421245d320ab9ee9fa.zip"; + sha256 = "1bfcwhksylrpm88vyp33qjby4js31zcxy7w368dzjv4il3fh2i59"; + name = name + "-src"; + }; + + buildInputs = [ perl python ]; + + postPatch = '' + sed -e "s|gnuplot_cmd = .*|gnuplot_cmd = '${gnuplot}/bin/gnuplot'|" \ + -e "s|\<wc\>|${coreutils}/bin/wc|g" \ + -e "s|\<grep\>|${gnugrep}/bin/grep|g" \ + -i gitstats + ''; + + buildPhase = '' + make man VERSION="${version}" + ''; + + installPhase = '' + make install PREFIX="$out" VERSION="${version}" + install -Dm644 doc/gitstats.1 "$out"/share/man/man1/gitstats.1 + ''; + + meta = with stdenv.lib; { + homepage = http://gitstats.sourceforge.net/; + description = "Git history statistics generator"; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gogs/default.nix b/nixpkgs/pkgs/applications/version-management/gogs/default.nix new file mode 100644 index 000000000000..56e411368961 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gogs/default.nix @@ -0,0 +1,48 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper +, git, bash, gzip, openssh +, sqliteSupport ? true +}: + +with stdenv.lib; + +buildGoPackage rec { + name = "gogs-${version}"; + version = "0.11.66"; + + src = fetchFromGitHub { + owner = "gogs"; + repo = "gogs"; + rev = "v${version}"; + sha256 = "1b9ilk4xlsllsj5pzmxwsz4a1zvgd06a8mi9ni9hbvmfl3w8xf28"; + }; + + patches = [ ./static-root-path.patch ]; + + postPatch = '' + patchShebangs . + substituteInPlace pkg/setting/setting.go --subst-var data + ''; + + nativeBuildInputs = [ makeWrapper ]; + + buildFlags = optionalString sqliteSupport "-tags sqlite"; + + outputs = [ "bin" "out" "data" ]; + + postInstall = '' + mkdir $data + cp -R $src/{public,templates} $data + + wrapProgram $bin/bin/gogs \ + --prefix PATH : ${makeBinPath [ bash git gzip openssh ]} + ''; + + goPackagePath = "github.com/gogs/gogs"; + + meta = { + description = "A painless self-hosted Git service"; + homepage = https://gogs.io; + license = licenses.mit; + maintainers = [ maintainers.schneefux ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch b/nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch new file mode 100644 index 000000000000..9eaa72a0c85d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch @@ -0,0 +1,13 @@ +diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go +index f206592d..796da6ef 100644 +--- a/pkg/setting/setting.go ++++ b/pkg/setting/setting.go +@@ -474,7 +474,7 @@ func NewContext() { + LocalURL = sec.Key("LOCAL_ROOT_URL").MustString(string(Protocol) + "://localhost:" + HTTPPort + "/") + OfflineMode = sec.Key("OFFLINE_MODE").MustBool() + DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool() +- StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir) ++ StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@") + AppDataPath = sec.Key("APP_DATA_PATH").MustString("data") + EnableGzip = sec.Key("ENABLE_GZIP").MustBool() + diff --git a/nixpkgs/pkgs/applications/version-management/gource/default.nix b/nixpkgs/pkgs/applications/version-management/gource/default.nix new file mode 100644 index 000000000000..c52a2049a11d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gource/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, SDL2, ftgl, pkgconfig, libpng, libjpeg, pcre +, SDL2_image, freetype, glew, libGLU_combined, boost, glm +}: + +stdenv.mkDerivation rec { + version = "0.49"; + name = "gource-${version}"; + + src = fetchurl { + url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz"; + sha256 = "12hf5ipcsp9dxsqn84n4kr63xaiskrnf5a084wr29qk171lj7pd9"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + glew SDL2 ftgl libpng libjpeg pcre SDL2_image libGLU_combined + boost glm freetype + ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://gource.io/; + description = "A Software version control visualization tool"; + license = licenses.gpl3Plus; + longDescription = '' + Software projects are displayed by Gource as an animated tree with + the root directory of the project at its centre. Directories + appear as branches with files as leaves. Developers can be seen + working on the tree at the times they contributed to the project. + + Currently Gource includes built-in log generation support for Git, + Mercurial and Bazaar and SVN. Gource can also parse logs produced + by several third party tools for CVS repositories. + ''; + platforms = platforms.unix; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/guitone/default.nix b/nixpkgs/pkgs/applications/version-management/guitone/default.nix new file mode 100644 index 000000000000..33d2eb89ad08 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/guitone/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchmtn, qt4, qmake4Hook, pkgconfig, graphviz }: + +let version = "1.0-mtn-head"; in +stdenv.mkDerivation rec { + name = "guitone-${version}"; + + #src = fetchurl { + # url = "${meta.homepage}/count.php/from=default/${version}/${name}.tgz"; + # sha256 = "08kcyar6p6v5z4dq6q6c1dhyxc2jj49qcd6lj3rdn1rb9hz4n7ms"; + #}; + + src = fetchmtn { + dbs = ["mtn://code.monotone.ca/guitone"]; + selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27"; + sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5"; + branch = "net.venge.monotone.guitone"; + }; + + patches = [ ./parallel-building.patch ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ qt4 qmake4Hook graphviz ]; + + qmakeFlags = [ "guitone.pro" ]; + + meta = { + description = "Qt4 based GUI for monotone"; + homepage = https://guitone.thomaskeller.biz; + downloadPage = https://code.monotone.ca/p/guitone/; + license = stdenv.lib.licenses.gpl3; + inherit (qt4.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch b/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch new file mode 100644 index 000000000000..f0e924cbfb81 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch @@ -0,0 +1,7 @@ +Without this `make tmp/AttributesView.o` fails with +src/view/dialogs/AddEditAttribute.h:22:35: fatal error: ui_add_edit_attribute.h: No such file or directory +--- a/guitone.pro ++++ b/guitone.pro +@@ -215 +215,2 @@ help.commands = @echo Available targets: $${QMAKE_EXTRA_TARGETS} + QMAKE_EXTRA_TARGETS += help ++CONFIG += depend_includepath diff --git a/nixpkgs/pkgs/applications/version-management/meld/default.nix b/nixpkgs/pkgs/applications/version-management/meld/default.nix new file mode 100644 index 000000000000..6456dd75b522 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/meld/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchurl, itstool, python3, intltool, wrapGAppsHook +, libxml2, gobject-introspection, gtk3, gtksourceview, gnome3 +, dbus, xvfb_run +}: + +python3.pkgs.buildPythonApplication rec { + pname = "meld"; + version = "3.20.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "11khi1sg02k3b9qdag3r939cwi27cql4kjim7jhxf9ckfhpzwh6b"; + }; + + nativeBuildInputs = [ + intltool itstool libxml2 gobject-introspection wrapGAppsHook + ]; + buildInputs = [ + gtk3 gtksourceview gnome3.gsettings-desktop-schemas gnome3.defaultIconTheme + ]; + propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo ]; + checkInputs = [ xvfb_run python3.pkgs.pytest dbus ]; + + installPhase = '' + runHook preInstall + ${python3.interpreter} setup.py install --prefix=$out + runHook postInstall + ''; + + checkPhase = '' + runHook preCheck + + # Unable to create user data directory '/homeless-shelter/.local/share' for storing the recently used files list: Permission denied + mkdir test-home + export HOME=$(pwd)/test-home + + # GLib.GError: gtk-icon-theme-error-quark: Icon 'meld-change-apply-right' not present in theme Adwaita + export XDG_DATA_DIRS="$out/share:$XDG_DATA_DIRS" + + # ModuleNotFoundError: No module named 'meld' + export PYTHONPATH=$out/${python3.sitePackages}:$PYTHONPATH + + # Gtk-CRITICAL **: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + py.test + + runHook postCheck + ''; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + }; + }; + + meta = with stdenv.lib; { + description = "Visual diff and merge tool"; + homepage = http://meldmerge.org/; + license = licenses.gpl2; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ jtojnar mimadrid ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix new file mode 100644 index 000000000000..67baa98d21ec --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchurl, python2Packages, makeWrapper, unzip +, guiSupport ? false, tk ? null +, ApplicationServices }: + +let + # if you bump version, update pkgs.tortoisehg too or ping maintainer + version = "4.8.2"; + name = "mercurial-${version}"; + inherit (python2Packages) docutils hg-git dulwich python; +in python2Packages.buildPythonApplication { + inherit name; + format = "other"; + + src = fetchurl { + url = "https://mercurial-scm.org/release/${name}.tar.gz"; + sha256 = "1cpx8nf6vcqz92kx6b5c4900pcay8zb89gvy8y33prh5rywjq83c"; + }; + + inherit python; # pass it so that the same version can be used in hg2git + + buildInputs = [ makeWrapper docutils unzip ] + ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices ]; + + propagatedBuildInputs = [ hg-git dulwich ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = (stdenv.lib.optionalString guiSupport + '' + mkdir -p $out/etc/mercurial + cp contrib/hgk $out/bin + cat >> $out/etc/mercurial/hgrc << EOF + [extensions] + hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py + EOF + # setting HG so that hgk can be run itself as well (not only hg view) + WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} + --set HG $out/bin/hg + --prefix PATH : ${tk}/bin " + '') + + '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + $WRAP_TK + done + + # copy hgweb.cgi to allow use in apache + mkdir -p $out/share/cgi-bin + cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin + chmod u+x $out/share/cgi-bin/hgweb.cgi + + # install bash/zsh completions + install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg + install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg + ''; + + meta = { + inherit version; + description = "A fast, lightweight SCM system for very large distributed projects"; + homepage = https://www.mercurial-scm.org; + downloadPage = https://www.mercurial-scm.org/release/; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.eelco ]; + updateWalker = true; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix new file mode 100644 index 000000000000..3c052a26cdee --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix @@ -0,0 +1,53 @@ +{stdenv, fetchurl, ocaml, lablgtk, libgnomecanvas, camlp4, glib, pkgconfig, makeWrapper +, libtool, libpng, yacc, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw +}: +# We need an old version of Graphviz for format compatibility reasons. +# This version is vulnerable, but monotone-viz will never feed it bad input. +let graphviz_2_0 = import ./graphviz-2.0.nix { + inherit stdenv fetchurl pkgconfig xlibsWrapper libpng libjpeg expat libXaw + yacc libtool fontconfig pango gd libwebp; + }; in +stdenv.mkDerivation rec { + version = "1.0.2"; + name = "monotone-viz-${version}"; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 makeWrapper camlp4]; + src = fetchurl { + url = "http://oandrieu.nerim.net/monotone-viz/${name}-nolablgtk.tar.gz"; + sha256 = "1l5x4xqz5g1aaqbc1x80mg0yzkiah9ma9k9mivmn08alkjlakkdk"; + }; + + prePatch="ln -s . a; ln -s . b"; + patchFlags = ["-p0"]; + patches = [ + (fetchurl { + url = "https://src.fedoraproject.org/cgit/rpms/monotone-viz.git/plain/monotone-viz-1.0.2-dot.patch"; + sha256 = "0risfy8iqmkr209hmnvpv57ywbd3rvchzzd0jy2lfyqrrrm6zknw"; + }) + (fetchurl { + url = "https://src.fedoraproject.org/cgit/rpms/monotone-viz.git/plain/monotone-viz-1.0.2-new-stdio.patch"; + sha256 = "16bj0ppzqd45an154dr7sifjra7lv4m9anxfw3c56y763jq7fafa"; + }) + (fetchurl { + url = "https://src.fedoraproject.org/cgit/rpms/monotone-viz.git/plain/monotone-viz-1.0.2-typefix.patch"; + sha256 = "1gfp82rc7pawb5x4hh2wf7xh1l1l54ib75930xgd1y437la4703r"; + }) + ]; + + preConfigure = '' + configureFlags="$configureFlags --with-lablgtk-dir=$(echo ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2)" + ''; + + postInstall = '' + wrapProgram "$out/bin/monotone-viz" --prefix PATH : "${graphviz_2_0}/bin/" + ''; + + meta = { + inherit version; + description = ''Monotone ancestry visualiser''; + license = stdenv.lib.licenses.gpl2Plus ; + maintainers = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix new file mode 100644 index 000000000000..73acc3a6b36f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, xlibsWrapper, libpng, libjpeg, expat, libXaw +, yacc, libtool, fontconfig, pango, gd, libwebp +}: + +assert libpng != null && libjpeg != null && expat != null; + +stdenv.mkDerivation rec { + name = "graphviz-2.0"; + + src = fetchurl { + url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/${name}.tar.gz"; + sha256 = "39b8e1f2ba4cc1f5bdc8e39c7be35e5f831253008e4ee2c176984f080416676c"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ + xlibsWrapper libpng libjpeg expat libXaw yacc + libtool fontconfig pango gd libwebp + ]; + + hardeningDisable = [ "format" "fortify" ]; + + configureFlags = + [ "--with-pngincludedir=${libpng.dev}/include" + "--with-pnglibdir=${libpng.out}/lib" + "--with-jpegincludedir=${libjpeg.dev}/include" + "--with-jpeglibdir=${libjpeg.out}/lib" + "--with-expatincludedir=${expat.dev}/include" + "--with-expatlibdir=${expat.out}/lib" + "--with-ltdl-include=${libtool}/include" + "--with-ltdl-lib=${libtool.lib}/lib" + ] + ++ stdenv.lib.optional (xlibsWrapper == null) "--without-x"; + + meta = { + description = "A program for visualising graphs"; + homepage = http://www.graphviz.org/; + branch = "2.0"; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone/default.nix b/nixpkgs/pkgs/applications/version-management/monotone/default.nix new file mode 100644 index 000000000000..010d4d2f86ad --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, boost, zlib, botan, libidn +, lua, pcre, sqlite, perl, pkgconfig, expect +, bzip2, gmp, openssl +}: + +let + version = "1.1"; + perlVersion = (builtins.parseDrvName perl.name).version; +in + +assert perlVersion != ""; + +stdenv.mkDerivation rec { + name = "monotone-${version}"; + + src = fetchurl { + url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2"; + sha256 = "124cwgi2q86hagslbk5idxbs9j896rfjzryhr6z63r6l485gcp7r"; + }; + + patches = [ ./monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch ]; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ boost zlib botan libidn lua pcre sqlite expect + openssl gmp bzip2 ]; + + postInstall = '' + mkdir -p $out/share/${name} + cp -rv contrib/ $out/share/${name}/contrib + mkdir -p $out/${perl.libPrefix}/${perlVersion} + cp -v contrib/Monotone.pm $out/${perl.libPrefix}/${perlVersion} + ''; + + #doCheck = true; # some tests fail (and they take VERY long) + + meta = with stdenv.lib; { + description = "A free distributed version control system"; + maintainers = [ maintainers.raskin ]; + platforms = platforms.unix; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone/default.upstream b/nixpkgs/pkgs/applications/version-management/monotone/default.upstream new file mode 100644 index 000000000000..e0d01fb190c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/default.upstream @@ -0,0 +1,8 @@ +url http://www.monotone.ca/downloads.php + +do_overwrite(){ + ensure_version + ensure_hash + set_var_value version $CURRENT_VERSION + set_var_value sha256 $CURRENT_HASH +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch new file mode 100644 index 000000000000..1ecda436c251 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch @@ -0,0 +1,66 @@ +From 70f209ad582121750d54e3692b1e62c7f36af6f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> +Date: Mon, 7 May 2018 14:09:06 +0200 +Subject: [PATCH] Adapt to changes in pcre-8.42 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +pcre-8.42 replaced internal real_pcre with real_pcre8_or_16. This +broke monotone that decided not to use the public "pcre" type. + +This patch adapts monotone to the pcre >= 8.42. + +Signed-off-by: Petr PÃsaÅ™ <ppisar@redhat.com> +--- + src/pcrewrap.cc | 4 ++-- + src/pcrewrap.hh | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/pcrewrap.cc b/src/pcrewrap.cc +index 8c0c9d1..30bafff 100644 +--- a/src/pcrewrap.cc ++++ b/src/pcrewrap.cc +@@ -74,7 +74,7 @@ get_capturecount(void const * bd) + namespace pcre + { + typedef map<char const *, +- pair<struct real_pcre const *, struct pcre_extra const *> > ++ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *> > + regex_cache; + + class regex_cache_manager +@@ -86,7 +86,7 @@ public: + } + + void store(char const * pattern, +- pair<struct real_pcre const *, struct pcre_extra const *> ++ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *> + data) + { + cache[pattern] = data; +diff --git a/src/pcrewrap.hh b/src/pcrewrap.hh +index 3359cdd..5008e88 100644 +--- a/src/pcrewrap.hh ++++ b/src/pcrewrap.hh +@@ -18,7 +18,7 @@ + // definitions and so we don't actually expose it here. Unfortunately, this + // means we have to hope this pair of forward declarations will not change... + +-struct real_pcre; ++struct real_pcre8_or_16; + struct pcre_extra; + + namespace pcre +@@ -61,7 +61,7 @@ namespace pcre + regex & operator=(regex const &); + + // data +- struct real_pcre const * basedat; ++ struct real_pcre8_or_16 const * basedat; + struct pcre_extra const * extradat; + + // used by constructors +-- +2.14.3 + diff --git a/nixpkgs/pkgs/applications/version-management/mr/default.nix b/nixpkgs/pkgs/applications/version-management/mr/default.nix new file mode 100644 index 000000000000..8150203814d0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/mr/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchgit, perl }: + +stdenv.mkDerivation rec { + name = "mr-${version}"; + version = "1.20180726"; + + src = fetchgit { + url = "git://myrepos.branchable.com/"; + # the repository moved its tags at least once + # when updating please continue using the revision hash here + rev = "0ad7a17bb455de1fec3b2375c7aac72ab2a22ac4"; + sha256 = "0jphw61plm8cgklja6hs639xhdvxgvjwbr6jpvjwpp7hc5gmhms5"; + }; + + postPatch = '' + patchShebangs . + ''; + + buildInputs = [ perl ]; + + makeFlags = "PREFIX=$(out)"; + + meta = { + description = "Multiple Repository management tool"; + longDescription = '' + mr is a tool to manage all your version control repos. It can + checkout, update, or perform other actions on a set of + repositories as if they were one combined repository. It + supports any combination of subversion, git, cvs, mercurial, + bzr, darcs, fossil and veracity repositories, and support for + other version control systems can easily be added. + ''; + homepage = http://myrepos.branchable.com/; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.unix; + maintainers = with stdenv.lib.maintainers; [ antono henrytill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix b/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix new file mode 100644 index 000000000000..18fb672226f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix @@ -0,0 +1,57 @@ +{lib, python2Packages, fetchFromGitHub, fetchurl, git, mercurial, coreutils}: + +with python2Packages; +buildPythonApplication rec { + name = "${pname}-${version}"; + version = "0.3.1"; + pname = "nbstripout"; + + # Mercurial should be added as a build input but because it's a Python + # application, it would mess up the Python environment. Thus, don't add it + # here, instead add it to PATH when running unit tests + buildInputs = [ pytest pytest-flake8 pytest-cram git pytestrunner ]; + propagatedBuildInputs = [ ipython nbformat ]; + + # PyPI source is currently missing tests. Thus, use GitHub instead. + # See: https://github.com/kynan/nbstripout/issues/73 + # Use PyPI again after it has been fixed in a release. + src = fetchFromGitHub { + owner = "kynan"; + repo = pname; + rev = version; + sha256 = "1jifqmszjzyaqzaw2ir83k5fdb04iyxdad4lclawpb42hbink9ws"; + }; + + patches = [ + ( + # Fix git diff tests by using --no-index. + # See: https://github.com/kynan/nbstripout/issues/74 + # + # Remove this patch once the pull request has been merged and a new + # release made. + fetchurl { + url = "https://github.com/jluttine/nbstripout/commit/03e28424fb788dd09a95e99814977b0d0846c0b4.patch"; + sha256 = "09myfb77a2wh8lqqs9fcpam97vmaw8b7zbq8n5gwn6d80zbl7dn0"; + } + ) + ]; + + # for some reason, darwin uses /bin/sh echo native instead of echo binary, so + # force using the echo binary + postPatch = '' + substituteInPlace tests/test-git.t --replace "echo" "${coreutils}/bin/echo" + ''; + + # ignore flake8 tests for the nix wrapped setup.py + checkPhase = '' + PATH=$PATH:$out/bin:${mercurial}/bin pytest . + ''; + + meta = { + inherit version; + description = "Strip output from Jupyter and IPython notebooks"; + homepage = https://github.com/kynan/nbstripout; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/nitpick/default.nix b/nixpkgs/pkgs/applications/version-management/nitpick/default.nix new file mode 100644 index 000000000000..8fb1095dc581 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/nitpick/default.nix @@ -0,0 +1,41 @@ +{ fetchFromGitHub +, buildPythonPackage +, stdenv +, isPy27 +}: + +buildPythonPackage rec { + pname = "nitpick"; + version = "1.1"; + name = "${pname}-${version}"; + + format = "other"; + disabled = !isPy27; + + src = fetchFromGitHub { + owner = "travisb-ca"; + repo = pname; + rev = version; + sha256 = "11gn6nc6ypwivy20bx1r0rm2giblwx6jv485zk875a9pdbcwbrf6"; + }; + + installPhase = '' + mkdir -p $out/share/src + install -m 755 -t $out/share/src nitpick.py + + mkdir -p $out/bin + ln -s $out/share/src/nitpick.py $out/bin/nitpick + ''; + + meta = { + description = "A distributed issue tracker"; + longDescription = '' + Nitpick is a distributed issue tracker. It helps keep track of which nits you + should pick. It's intended to be used with source code such that the issues can + follow the code via whatever VCS or distribution mechanism. + ''; + homepage = http://travisbrown.ca/projects/nitpick/docs/nitpick.html; + license = with stdenv.lib.licenses; gpl2; + maintainers = []; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/p4v/default.nix b/nixpkgs/pkgs/applications/version-management/p4v/default.nix new file mode 100644 index 000000000000..f82b80067bf2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/p4v/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl, xkeyboard_config, makeWrapper }: + +stdenv.mkDerivation rec { + name = "p4v-${version}"; + version = "2017.3.1601999"; + + src = fetchurl { + url = "https://cdist2.perforce.com/perforce/r17.3/bin.linux26x86_64/p4v.tgz"; + sha256 = "9ded42683141e1808535ec3e87d3149f890315c192d6e97212794fd54862b9a4"; + }; + + dontBuild = true; + nativeBuildInputs = [makeWrapper]; + + ldLibraryPath = lib.makeLibraryPath [ + stdenv.cc.cc.lib + qtbase + qtmultimedia + qtscript + qtsensors + qtwebkit + openssl + ]; + + installPhase = '' + mkdir $out + cp -r bin $out + mkdir -p $out/lib/p4v + cp -r lib/p4v/P4VResources $out/lib/p4v + + for f in $out/bin/*.bin ; do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f + + wrapProgram $f \ + --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ + --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb \ + --suffix QT_PLUGIN_PATH : ${qtbase.bin}/${qtbase.qtPluginPrefix} + done + ''; + + meta = { + description = "Perforce Visual Client"; + homepage = https://www.perforce.com; + license = stdenv.lib.licenses.unfreeRedistributable; + platforms = [ "x86_64-linux" ]; + maintainers = [ stdenv.lib.maintainers.nioncode ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/peru/default.nix b/nixpkgs/pkgs/applications/version-management/peru/default.nix new file mode 100644 index 000000000000..8b68dddfceb4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/peru/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "peru"; + version = "1.2.0"; + + disabled = python3Packages.pythonOlder "3.5"; + + src = fetchFromGitHub { + owner = "buildinspace"; + repo = "peru"; + rev = "${version}"; + sha256 = "0p4j51m89glx12cd65lcnbwpvin0v49wkhrx06755skr7v37pm2a"; + }; + + propagatedBuildInputs = with python3Packages; [ pyyaml docopt ]; + + # No tests in archive + doCheck = false; + + meta = with stdenv.lib; { + homepage = https://github.com/buildinspace/peru; + description = "A tool for including other people's code in your projects"; + license = licenses.mit; + platforms = platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix new file mode 100644 index 000000000000..b97123926eb5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, pkgconfig }: + +with rustPlatform; + +buildRustPackage rec { + name = "pijul-${version}"; + version = "0.11.0"; + + src = fetchurl { + url = "https://pijul.org/releases/${name}.tar.gz"; + sha256 = "e60793ab124e9054c1d5509698acbae507ebb2fab5364d964067bc9ae8b6b5e5"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + postInstall = '' + mkdir -p $out/share/{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d} + $out/bin/pijul generate-completions --bash > $out/share/bash-completion/completions/pijul + $out/bin/pijul generate-completions --zsh > $out/share/zsh/site-functions/_pijul + $out/bin/pijul generate-completions --fish > $out/share/fish/vendor_completions.d/pijul.fish + ''; + + buildInputs = [ openssl libsodium ] ++ stdenv.lib.optionals stdenv.isDarwin + (with darwin.apple_sdk.frameworks; [ Security ]); + + doCheck = false; + + cargoSha256 = "1r76azmka1d76ff0ddfhzr24b0ry496qrp13945i3vs0fgzk2sdz"; + + meta = with stdenv.lib; { + description = "A distributed version control system"; + homepage = https://pijul.org; + license = with licenses; [ gpl2Plus ]; + maintainers = [ maintainers.gal_bolle ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix b/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix new file mode 100644 index 000000000000..d3b027fada68 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix @@ -0,0 +1,42 @@ +{ fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }: +python2Packages.buildPythonApplication rec { + name = "rabbitvcs-${version}"; + version = "0.17.1"; + namePrefix = ""; + + src = fetchFromGitHub { + owner = "rabbitvcs"; + repo = "rabbitvcs"; + rev = "v${version}"; + sha256 = "01cr16zf3gzsci1hhfli79m34fcx5m1pvswl16rkxxn212yc9fhy"; + }; + + pythonPath = with python2Packages; [ configobj dbus-python pygobject2 pygtk simplejson pysvn dulwich tkinter gvfs xdg_utils ]; + + prePatch = '' + sed -ie 's|if sys\.argv\[1\] == "install":|if False:|' ./setup.py + sed -ie "s|PREFIX = sys.prefix|PREFIX = \"$out\"|" ./setup.py + sed -ie 's|/usr/bin/meld|${meld}/bin/meld|' ./rabbitvcs/util/configspec/configspec.ini + sed -ie 's|/usr/bin/svnadmin|${subversion.out}/bin/svnadmin|' ./rabbitvcs/ui/create.py + sed -ie "s|/usr/share/doc|$out/share/doc|" ./rabbitvcs/ui/about.py + sed -ie "s|gnome-open|xdg-open|" ./rabbitvcs/util/helper.py + ''; + + outputs = [ "out" "cli" ]; + + postInstall = '' + mkdir -p $cli/bin + cp clients/cli/rabbitvcs $cli/bin + wrapPythonProgramsIn $cli "$out $pythonPath" + ''; + + doCheck = false; + + meta = { + description = "Graphical tools for working with version control systems"; + homepage = http://rabbitvcs.org/; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.mathnerd314 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix b/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix new file mode 100644 index 000000000000..e799d5fac43b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, wxGTK, subversion, apr, aprutil, python }: + +stdenv.mkDerivation rec { + name = "rapidsvn-${version}"; + version = "0.12.1"; + + src = fetchurl { + url = "http://www.rapidsvn.org/download/release/${version}/${name}.tar.gz"; + sha256 = "1bmcqjc12k5w0z40k7fkk8iysqv4fw33i80gvcmbakby3d4d4i4p"; + }; + + buildInputs = [ wxGTK subversion apr aprutil python ]; + + configureFlags = [ "--with-svn-include=${subversion.dev}/include" + "--with-svn-lib=${subversion.out}/lib" ]; + + patches = [ + ./fix-build.patch + ]; + + meta = { + description = "Multi-platform GUI front-end for the Subversion revision system"; + homepage = http://rapidsvn.tigris.org/; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = [ stdenv.lib.maintainers.viric ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch b/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch new file mode 100644 index 000000000000..ca4bc394c2c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch @@ -0,0 +1,122 @@ +--- a/src/svncpp/client_ls.cpp ++++ b/src/svncpp/client_ls.cpp +@@ -25,6 +25,7 @@ + #include "svn_client.h" + #include "svn_path.h" + #include "svn_sorts.h" ++#include "svn_version.h" + //#include "svn_utf.h" + + // svncpp +@@ -35,6 +36,7 @@ + #include "m_is_empty.hpp" + + ++#if SVN_VER_MAJOR == 1 && SVN_VER_MINOR < 8 + static int + compare_items_as_paths(const svn_sort__item_t *a, const svn_sort__item_t *b) + { +@@ -84,6 +86,72 @@ namespace svn + } + } + ++#else ++ ++#include <algorithm> ++ ++static svn_error_t* store_entry( ++ void *baton, ++ const char *path, ++ const svn_dirent_t *dirent, ++ const svn_lock_t *, ++ const char *abs_path, ++ const char *, ++ const char *, ++ apr_pool_t *scratch_pool) ++{ ++ svn::DirEntries *entries = reinterpret_cast<svn::DirEntries*>(baton); ++ if (path[0] == '\0') { ++ if (dirent->kind == svn_node_file) { ++ // for compatibility with svn_client_ls behaviour, listing a file ++ // stores that file name ++ entries->push_back(svn::DirEntry(svn_path_basename(abs_path, scratch_pool), dirent)); ++ } ++ } else { ++ entries->push_back(svn::DirEntry(path, dirent)); ++ } ++ return SVN_NO_ERROR; ++} ++ ++static bool sort_by_path(svn::DirEntry const& a, svn::DirEntry const& b) ++{ ++ return svn_path_compare_paths(a.name(), b.name()) < 0; ++} ++ ++namespace svn ++{ ++ DirEntries ++ Client::list(const char * pathOrUrl, ++ svn_opt_revision_t * revision, ++ bool recurse) throw(ClientException) ++ { ++ Pool pool; ++ DirEntries entries; ++ ++ svn_error_t * error = ++ svn_client_list3(pathOrUrl, ++ revision, ++ revision, ++ SVN_DEPTH_INFINITY_OR_IMMEDIATES(recurse), ++ SVN_DIRENT_ALL, ++ FALSE, // fetch locks ++ FALSE, // include externals ++ &store_entry, ++ &entries, ++ *m_context, ++ pool); ++ ++ if (error != SVN_NO_ERROR) ++ throw ClientException(error); ++ ++ std::sort(entries.begin(), entries.end(), &sort_by_path); ++ ++ return entries; ++ } ++} ++ ++#endif ++ + /* ----------------------------------------------------------------- + * local variables: + * eval: (load-file "../../rapidsvn-dev.el") +--- a/src/svncpp/dirent.cpp 2017-03-19 15:48:58.956827337 +0100 ++++ b/src/svncpp/dirent.cpp 2017-03-19 15:50:19.111527279 +0100 +@@ -47,7 +47,7 @@ + { + } + +- Data(const char * _name, svn_dirent_t * dirEntry) ++ Data(const char * _name, const svn_dirent_t * dirEntry) + : name(_name), kind(dirEntry->kind), size(dirEntry->size), + hasProps(dirEntry->has_props != 0), + createdRev(dirEntry->created_rev), time(dirEntry->time) +@@ -78,7 +78,7 @@ + { + } + +- DirEntry::DirEntry(const char * name, svn_dirent_t * DirEntry) ++ DirEntry::DirEntry(const char * name, const svn_dirent_t * DirEntry) + : m(new Data(name, DirEntry)) + { + } +--- a/include/svncpp/dirent.hpp 2017-03-19 15:50:54.860506116 +0100 ++++ b/include/svncpp/dirent.hpp 2017-03-19 15:50:58.314407598 +0100 +@@ -41,7 +41,7 @@ + /** + * constructor for existing @a svn_dirent_t entries + */ +- DirEntry(const char * name, svn_dirent_t * dirEntry); ++ DirEntry(const char * name, const svn_dirent_t * dirEntry); + + /** + * copy constructor diff --git a/nixpkgs/pkgs/applications/version-management/rcs/default.nix b/nixpkgs/pkgs/applications/version-management/rcs/default.nix new file mode 100644 index 000000000000..df1739aea572 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rcs/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, ed }: + +stdenv.mkDerivation rec { + name = "rcs-5.9.4"; + + src = fetchurl { + url = "mirror://gnu/rcs/${name}.tar.xz"; + sha256 = "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86"; + }; + + buildInputs = [ ed ]; + + doCheck = true; + + NIX_CFLAGS_COMPILE = [ "-std=c99" ]; + + meta = { + homepage = https://www.gnu.org/software/rcs/; + description = "Revision control system"; + longDescription = + '' The GNU Revision Control System (RCS) manages multiple revisions of + files. RCS automates the storing, retrieval, logging, + identification, and merging of revisions. RCS is useful for text + that is revised frequently, including source code, programs, + documentation, graphics, papers, and form letters. + ''; + + license = stdenv.lib.licenses.gpl3Plus; + maintainers = with stdenv.lib.maintainers; [ eelco ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/redmine/4.x/Gemfile b/nixpkgs/pkgs/applications/version-management/redmine/4.x/Gemfile new file mode 100644 index 000000000000..3fd176007abf --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/4.x/Gemfile @@ -0,0 +1,71 @@ +source 'https://rubygems.org' + +gem "bundler", ">= 1.5.0" + +gem "rails", "5.2.2" +gem "rouge", "~> 3.3.0" +gem "request_store", "1.0.5" +gem "mini_mime", "~> 1.0.1" +gem "actionpack-xml_parser" +gem "roadie-rails", "~> 1.3.0" +gem "mimemagic" +gem "mail", "~> 2.7.1" +gem "csv", "~> 3.0.1" if RUBY_VERSION >= "2.3" && RUBY_VERSION < "2.6" + +gem "nokogiri", (RUBY_VERSION >= "2.3" ? "~> 1.10.0" : "~> 1.9.1") +gem "i18n", "~> 0.7.0" + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] +gem "rbpdf", "~> 1.19.6" + +# Optional gem for LDAP authentication +group :ldap do + gem "net-ldap", "~> 0.16.0" +end + +# Optional gem for OpenID authentication +group :openid do + gem "ruby-openid", "~> 2.3.0", :require => "openid" + gem "rack-openid" +end + +platforms :mri, :mingw, :x64_mingw do + # Optional gem for exporting the gantt to a PNG file, not supported with jruby + group :rmagick do + gem "rmagick", ">= 2.14.0" + end + + # Optional Markdown support, not for JRuby + group :markdown do + gem "redcarpet", "~> 3.4.0" + end +end + +# Include database gems for the database adapters NixOS supports +gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw] +gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw] + +group :development do + gem "yard" +end + +group :test do + gem "rails-dom-testing" + gem "mocha" + gem "simplecov", "~> 0.14.1", :require => false + # For running system tests + gem 'puma', '~> 3.7' + gem "capybara", '~> 2.13' + gem "selenium-webdriver" +end + +local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") +if File.exists?(local_gemfile) + eval_gemfile local_gemfile +end + +# Load plugins' Gemfiles +Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file| + eval_gemfile file +end diff --git a/nixpkgs/pkgs/applications/version-management/redmine/4.x/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/redmine/4.x/Gemfile.lock new file mode 100644 index 000000000000..8c569ddb3227 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/4.x/Gemfile.lock @@ -0,0 +1,204 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.2) + actionpack (= 5.2.2) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.2) + actionpack (= 5.2.2) + actionview (= 5.2.2) + activejob (= 5.2.2) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.2) + actionview (= 5.2.2) + activesupport (= 5.2.2) + rack (~> 2.0) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionpack-xml_parser (2.0.1) + actionpack (>= 5.0) + railties (>= 5.0) + actionview (5.2.2) + activesupport (= 5.2.2) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.2) + activesupport (= 5.2.2) + globalid (>= 0.3.6) + activemodel (5.2.2) + activesupport (= 5.2.2) + activerecord (5.2.2) + activemodel (= 5.2.2) + activesupport (= 5.2.2) + arel (>= 9.0) + activestorage (5.2.2) + actionpack (= 5.2.2) + activerecord (= 5.2.2) + marcel (~> 0.3.1) + activesupport (5.2.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.6.0) + public_suffix (>= 2.0.2, < 4.0) + arel (9.0.0) + builder (3.2.3) + capybara (2.18.0) + addressable + mini_mime (>= 0.1.3) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + xpath (>= 2.0, < 4.0) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + concurrent-ruby (1.1.4) + crass (1.0.4) + css_parser (1.6.0) + addressable + csv (3.0.4) + docile (1.1.5) + erubi (1.8.0) + ffi (1.10.0) + globalid (0.4.2) + activesupport (>= 4.2.0) + htmlentities (4.3.4) + i18n (0.7.0) + json (2.1.0) + loofah (2.2.3) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (0.3.3) + mimemagic (~> 0.3.2) + metaclass (0.0.4) + method_source (0.9.2) + mimemagic (0.3.3) + mini_mime (1.0.1) + mini_portile2 (2.4.0) + minitest (5.11.3) + mocha (1.8.0) + metaclass (~> 0.0.1) + mysql2 (0.5.2) + net-ldap (0.16.1) + nio4r (2.3.1) + nokogiri (1.10.1) + mini_portile2 (~> 2.4.0) + pg (1.1.4) + public_suffix (3.0.3) + puma (3.12.0) + rack (2.0.6) + rack-openid (1.4.2) + rack (>= 1.1.0) + ruby-openid (>= 2.1.8) + rack-test (1.1.0) + rack (>= 1.0, < 3) + rails (5.2.2) + actioncable (= 5.2.2) + actionmailer (= 5.2.2) + actionpack (= 5.2.2) + actionview (= 5.2.2) + activejob (= 5.2.2) + activemodel (= 5.2.2) + activerecord (= 5.2.2) + activestorage (= 5.2.2) + activesupport (= 5.2.2) + bundler (>= 1.3.0) + railties (= 5.2.2) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + railties (5.2.2) + actionpack (= 5.2.2) + activesupport (= 5.2.2) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (12.3.2) + rbpdf (1.19.8) + htmlentities + rbpdf-font (~> 1.19.0) + rbpdf-font (1.19.1) + redcarpet (3.4.0) + request_store (1.0.5) + rmagick (2.16.0) + roadie (3.4.0) + css_parser (~> 1.4) + nokogiri (~> 1.5) + roadie-rails (1.3.0) + railties (>= 3.0, < 5.3) + roadie (~> 3.1) + rouge (3.3.0) + ruby-openid (2.3.0) + rubyzip (1.2.2) + selenium-webdriver (3.141.0) + childprocess (~> 0.5) + rubyzip (~> 1.2, >= 1.2.2) + simplecov (0.14.1) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.2) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + thor (0.20.3) + thread_safe (0.3.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + websocket-driver (0.7.0) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.3) + xpath (3.2.0) + nokogiri (~> 1.8) + yard (0.9.18) + +PLATFORMS + ruby + +DEPENDENCIES + actionpack-xml_parser + bundler (>= 1.5.0) + capybara (~> 2.13) + csv (~> 3.0.1) + i18n (~> 0.7.0) + mail (~> 2.7.1) + mimemagic + mini_mime (~> 1.0.1) + mocha + mysql2 (~> 0.5.0) + net-ldap (~> 0.16.0) + nokogiri (~> 1.10.0) + pg (~> 1.1.4) + puma (~> 3.7) + rack-openid + rails (= 5.2.2) + rails-dom-testing + rbpdf (~> 1.19.6) + redcarpet (~> 3.4.0) + request_store (= 1.0.5) + rmagick (>= 2.14.0) + roadie-rails (~> 1.3.0) + rouge (~> 3.3.0) + ruby-openid (~> 2.3.0) + selenium-webdriver + simplecov (~> 0.14.1) + tzinfo-data + yard + +BUNDLED WITH + 1.16.3 diff --git a/nixpkgs/pkgs/applications/version-management/redmine/4.x/default.nix b/nixpkgs/pkgs/applications/version-management/redmine/4.x/default.nix new file mode 100644 index 000000000000..ba9f96f5a30c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/4.x/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, bundlerEnv, ruby }: + +let + version = "4.0.1"; + rubyEnv = bundlerEnv { + name = "redmine-env-${version}"; + + inherit ruby; + gemdir = ./.; + groups = [ "ldap" "openid" ]; + }; +in + stdenv.mkDerivation rec { + name = "redmine-${version}"; + + src = fetchurl { + url = "https://www.redmine.org/releases/${name}.tar.gz"; + sha256 = "1zzn9rkh7x1h9f2shcc8qhb693hp0hpah0z53i6gfgg5p8k5hns1"; + }; + + buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ]; + + buildPhase = '' + mv config config.dist + mv public/themes public/themes.dist + ''; + + installPhase = '' + mkdir -p $out/share + cp -r . $out/share/redmine + for i in config files log plugins public/plugin_assets public/themes tmp; do + rm -rf $out/share/redmine/$i + ln -fs /run/redmine/$i $out/share/redmine/$i + done + ''; + + meta = with stdenv.lib; { + homepage = http://www.redmine.org/; + platforms = platforms.linux; + maintainers = [ maintainers.garbas maintainers.aanderse ]; + license = licenses.gpl2; + }; + } diff --git a/nixpkgs/pkgs/applications/version-management/redmine/4.x/gemset.nix b/nixpkgs/pkgs/applications/version-management/redmine/4.x/gemset.nix new file mode 100644 index 000000000000..ce21a58b5564 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/4.x/gemset.nix @@ -0,0 +1,622 @@ +{ + actioncable = { + dependencies = ["actionpack" "nio4r" "websocket-driver"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0826k5ch0l03f9yrkxy69aiv039z4qi00lnahw2rzywd2iz6r68x"; + type = "gem"; + }; + version = "5.2.2"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sfpb8s95cmkpp9ybyp2c88r55r5llscmmnkfwcwgasz9ncjiq5n"; + type = "gem"; + }; + version = "5.2.2"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iwhbqqn0cm39dq040iwq8cfyclqk3kyzwlp5k3j5cz8k2668wws"; + type = "gem"; + }; + version = "5.2.2"; + }; + actionpack-xml_parser = { + dependencies = ["actionpack" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0"; + type = "gem"; + }; + version = "2.0.1"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lz04drbi1z0xhvb8jnr14pbf505lilr02arahxq7y3mxiz0rs8z"; + type = "gem"; + }; + version = "5.2.2"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jjkl62x2aprg55x9rpm0h2c82vr2qr989hg3l9r21l01q4822ir"; + type = "gem"; + }; + version = "5.2.2"; + }; + activemodel = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xmwi3mw8g4shbjvkhk72ra3r5jccbdsd4piphqka2y1h8s7sxvi"; + type = "gem"; + }; + version = "5.2.2"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19a0sns6a5wz2wym25lb1dv4lbrrl5sd1n15s5ky2636znmhz30y"; + type = "gem"; + }; + version = "5.2.2"; + }; + activestorage = { + dependencies = ["actionpack" "activerecord" "marcel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c72837098sw384vk6dmrb2p7q3wx4swnibk6sw9dp4hn1vc4p31"; + type = "gem"; + }; + version = "5.2.2"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iya7vxqwxysr74s7b4z1x19gmnx5advimzip3cbmsd5bd43wfgz"; + type = "gem"; + }; + version = "5.2.2"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"; + type = "gem"; + }; + version = "2.6.0"; + }; + arel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"; + type = "gem"; + }; + version = "9.0.0"; + }; + builder = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yv77rnsjlvs8qpfn9n5vf1h6b9agxwhxw09gssbiw9zn9j20jh8"; + type = "gem"; + }; + version = "2.18.0"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1"; + type = "gem"; + }; + version = "1.1.4"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + css_parser = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gwvf8mc8gnz4aizfijplv3594998h2j44ydakpzsdmkivs07v61"; + type = "gem"; + }; + version = "1.6.0"; + }; + csv = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19m22vlxddva301z2izvg06hldlc37nyzhin3kjjfcnlbb8imj33"; + type = "gem"; + }; + version = "3.0.4"; + }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; + erubi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1"; + type = "gem"; + }; + version = "1.8.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; + type = "gem"; + }; + version = "1.10.0"; + }; + globalid = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"; + type = "gem"; + }; + version = "0.4.2"; + }; + htmlentities = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + i18n = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"; + type = "gem"; + }; + version = "0.7.0"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp"; + type = "gem"; + }; + version = "2.1.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"; + type = "gem"; + }; + version = "2.2.3"; + }; + mail = { + dependencies = ["mini_mime"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; + type = "gem"; + }; + version = "2.7.1"; + }; + marcel = { + dependencies = ["mimemagic"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"; + type = "gem"; + }; + version = "0.3.3"; + }; + metaclass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5"; + type = "gem"; + }; + version = "0.0.4"; + }; + method_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; + type = "gem"; + }; + version = "0.9.2"; + }; + mimemagic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw"; + type = "gem"; + }; + version = "0.3.3"; + }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; + type = "gem"; + }; + version = "2.4.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + mocha = { + dependencies = ["metaclass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12aglpiq1h18j5a4rlwvnsvnsi2f3407v5xm59lgcg3ymlyak4al"; + type = "gem"; + }; + version = "1.8.0"; + }; + mysql2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4"; + type = "gem"; + }; + version = "0.5.2"; + }; + net-ldap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh"; + type = "gem"; + }; + version = "0.16.1"; + }; + nio4r = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"; + type = "gem"; + }; + version = "2.3.1"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09zll7c6j7xr6wyvh5mm5ncj6pkryp70ybcsxdbw1nyphx5dh184"; + type = "gem"; + }; + version = "1.10.1"; + }; + pg = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy"; + type = "gem"; + }; + version = "1.1.4"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + puma = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq"; + type = "gem"; + }; + version = "3.12.0"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm"; + type = "gem"; + }; + version = "2.0.6"; + }; + rack-openid = { + dependencies = ["rack" "ruby-openid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc"; + type = "gem"; + }; + version = "1.4.2"; + }; + rack-test = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; + type = "gem"; + }; + version = "1.1.0"; + }; + rails = { + dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m9cszds68dsiycciiayd3c9g90s2yzn1izkr3gpgqkfw6dmvzyr"; + type = "gem"; + }; + version = "5.2.2"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + type = "gem"; + }; + version = "2.0.3"; + }; + rails-html-sanitizer = { + dependencies = ["loofah"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; + type = "gem"; + }; + version = "1.0.4"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00pnylmbz4c46mxw5lhxi8h39lndfg6fs1hpd0qd6swnjhkqsr1l"; + type = "gem"; + }; + version = "5.2.2"; + }; + rake = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn"; + type = "gem"; + }; + version = "12.3.2"; + }; + rbpdf = { + dependencies = ["htmlentities" "rbpdf-font"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fnhcn4z2zz6ic1yvl5hmhwmkdnybh8f8fnk1ni7bvl2s4ig5195"; + type = "gem"; + }; + version = "1.19.8"; + }; + rbpdf-font = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; + type = "gem"; + }; + version = "1.19.1"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + request_store = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ky19wb6mpq6dxb81a0h4hnzx7a4ka99n9ay2syi68djbr4bkbbh"; + type = "gem"; + }; + version = "1.0.5"; + }; + rmagick = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9x15cdlkcb9826s3s2jd97hxf50hln22p94x8hcccxi1lwklq6"; + type = "gem"; + }; + version = "2.16.0"; + }; + roadie = { + dependencies = ["css_parser" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l3s80394yijvz0fsvfkw0azsi9yxsdkxd8lpas0bd7wlndjvmxx"; + type = "gem"; + }; + version = "3.4.0"; + }; + roadie-rails = { + dependencies = ["railties" "roadie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02km0ama85mkw7kkn6qif86b781pglfdmqrwx5s6hwjlzk16qih3"; + type = "gem"; + }; + version = "1.3.0"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql"; + type = "gem"; + }; + version = "3.3.0"; + }; + ruby-openid = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn"; + type = "gem"; + }; + version = "2.3.0"; + }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "114hv2ajmh6d186v2w887yqakqcxyxq367l0iakrrpvwviknrhfs"; + type = "gem"; + }; + version = "3.141.0"; + }; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww"; + type = "gem"; + }; + version = "0.14.1"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; + type = "gem"; + }; + version = "0.10.2"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; + type = "gem"; + }; + version = "3.2.1"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; + type = "gem"; + }; + version = "0.20.3"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + websocket-driver = { + dependencies = ["websocket-extensions"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"; + type = "gem"; + }; + version = "0.7.0"; + }; + websocket-extensions = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270"; + type = "gem"; + }; + version = "0.1.3"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + yard = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07fykkfyrwqkfnxx9i5w6adyiadz00h497c516n96rgvs7alc74f"; + type = "gem"; + }; + version = "0.9.18"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile new file mode 100644 index 000000000000..8f457449e7e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile @@ -0,0 +1,84 @@ +source 'https://rubygems.org' + +gem "bundler", ">= 1.5.0", "< 2.0.0" + +gem "rails", "4.2.11" +gem "addressable", "2.4.0" if RUBY_VERSION < "2.0" +if RUBY_VERSION < "2.1" + gem "public_suffix", (RUBY_VERSION < "2.0" ? "~> 1.4" : "~> 2.0.5") +end +gem "jquery-rails", "~> 3.1.4" +gem "coderay", "~> 1.1.1" +gem "request_store", "1.0.5" +gem "mime-types", (RUBY_VERSION >= "2.0" ? "~> 3.0" : "~> 2.99") +gem "protected_attributes" +gem "actionpack-xml_parser" +gem "roadie-rails", "~> 1.1.1" +gem "roadie", "~> 3.2.1" +gem "mimemagic" +gem "mail", "~> 2.6.4" + +gem "nokogiri", (RUBY_VERSION >= "2.1" ? "~> 1.8.1" : "~> 1.6.8") +gem "i18n", "~> 0.7.0" +gem "ffi", "1.9.14", :platforms => :mingw if RUBY_VERSION < "2.0" + +# Request at least rails-html-sanitizer 1.0.3 because of security advisories +gem "rails-html-sanitizer", ">= 1.0.3" + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] +gem "rbpdf", "~> 1.19.6" + +# Optional gem for LDAP authentication +group :ldap do + gem "net-ldap", "~> 0.12.0" +end + +# Optional gem for OpenID authentication +group :openid do + gem "ruby-openid", "~> 2.3.0", :require => "openid" + gem "rack-openid" +end + +platforms :mri, :mingw, :x64_mingw do + # Optional gem for exporting the gantt to a PNG file, not supported with jruby + group :rmagick do + gem "rmagick", ">= 2.14.0" + end + + # Optional Markdown support, not for JRuby + group :markdown do + gem "redcarpet", "~> 3.4.0" + end +end + +# Include database gems for the database adapters NixOS supports +gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw] +gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw] + +group :development do + gem "rdoc", "~> 4.3" + gem "yard" +end + +group :test do + gem "minitest" + gem "rails-dom-testing" + gem "mocha" + gem "simplecov", "~> 0.9.1", :require => false + # TODO: remove this after upgrading to Rails 5 + gem "test_after_commit", "~> 0.4.2" + # For running UI tests + gem "capybara", '~> 2.13' + gem "selenium-webdriver", "~> 2.53.4" +end + +local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") +if File.exists?(local_gemfile) + eval_gemfile local_gemfile +end + +# Load plugins' Gemfiles +Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file| + eval_gemfile file +end diff --git a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock new file mode 100644 index 000000000000..8bc8a03e7901 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock @@ -0,0 +1,205 @@ +GEM + remote: https://rubygems.org/ + specs: + actionmailer (4.2.11) + actionpack (= 4.2.11) + actionview (= 4.2.11) + activejob (= 4.2.11) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 1.0, >= 1.0.5) + actionpack (4.2.11) + actionview (= 4.2.11) + activesupport (= 4.2.11) + rack (~> 1.6) + rack-test (~> 0.6.2) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionpack-xml_parser (1.0.2) + actionpack (>= 4.0.0, < 5) + actionview (4.2.11) + activesupport (= 4.2.11) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (4.2.11) + activesupport (= 4.2.11) + globalid (>= 0.3.0) + activemodel (4.2.11) + activesupport (= 4.2.11) + builder (~> 3.1) + activerecord (4.2.11) + activemodel (= 4.2.11) + activesupport (= 4.2.11) + arel (~> 6.0) + activesupport (4.2.11) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.6.0) + public_suffix (>= 2.0.2, < 4.0) + arel (6.0.4) + builder (3.2.3) + capybara (2.18.0) + addressable + mini_mime (>= 0.1.3) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + xpath (>= 2.0, < 4.0) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + coderay (1.1.2) + concurrent-ruby (1.1.4) + crass (1.0.4) + css_parser (1.6.0) + addressable + docile (1.1.5) + erubis (2.7.0) + ffi (1.10.0) + globalid (0.4.2) + activesupport (>= 4.2.0) + htmlentities (4.3.4) + i18n (0.7.0) + jquery-rails (3.1.5) + railties (>= 3.0, < 5.0) + thor (>= 0.14, < 2.0) + loofah (2.2.3) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.6.6) + mime-types (>= 1.16, < 4) + metaclass (0.0.4) + mime-types (3.2.2) + mime-types-data (~> 3.2015) + mime-types-data (3.2018.0812) + mimemagic (0.3.3) + mini_mime (1.0.1) + mini_portile2 (2.3.0) + minitest (5.11.3) + mocha (1.8.0) + metaclass (~> 0.0.1) + multi_json (1.13.1) + mysql2 (0.4.10) + net-ldap (0.12.1) + nokogiri (1.8.5) + mini_portile2 (~> 2.3.0) + pg (0.18.4) + protected_attributes (1.1.4) + activemodel (>= 4.0.1, < 5.0) + public_suffix (3.0.3) + rack (1.6.11) + rack-openid (1.4.2) + rack (>= 1.1.0) + ruby-openid (>= 2.1.8) + rack-test (0.6.3) + rack (>= 1.0) + rails (4.2.11) + actionmailer (= 4.2.11) + actionpack (= 4.2.11) + actionview (= 4.2.11) + activejob (= 4.2.11) + activemodel (= 4.2.11) + activerecord (= 4.2.11) + activesupport (= 4.2.11) + bundler (>= 1.3.0, < 2.0) + railties (= 4.2.11) + sprockets-rails + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (1.0.9) + activesupport (>= 4.2.0, < 5.0) + nokogiri (~> 1.6) + rails-deprecated_sanitizer (>= 1.0.1) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + railties (4.2.11) + actionpack (= 4.2.11) + activesupport (= 4.2.11) + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rake (12.3.2) + rbpdf (1.19.7) + htmlentities + rbpdf-font (~> 1.19.0) + rbpdf-font (1.19.1) + rdoc (4.3.0) + redcarpet (3.4.0) + request_store (1.0.5) + rmagick (2.16.0) + roadie (3.2.2) + css_parser (~> 1.4) + nokogiri (~> 1.5) + roadie-rails (1.1.1) + railties (>= 3.0, < 5.1) + roadie (~> 3.1) + ruby-openid (2.3.0) + rubyzip (1.2.2) + selenium-webdriver (2.53.4) + childprocess (~> 0.5) + rubyzip (~> 1.0) + websocket (~> 1.0) + simplecov (0.9.2) + docile (~> 1.1.0) + multi_json (~> 1.0) + simplecov-html (~> 0.9.0) + simplecov-html (0.9.0) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + test_after_commit (0.4.2) + activerecord (>= 3.2) + thor (0.20.3) + thread_safe (0.3.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + websocket (1.2.8) + xpath (3.2.0) + nokogiri (~> 1.8) + yard (0.9.18) + +PLATFORMS + ruby + +DEPENDENCIES + actionpack-xml_parser + bundler (>= 1.5.0, < 2.0.0) + capybara (~> 2.13) + coderay (~> 1.1.1) + i18n (~> 0.7.0) + jquery-rails (~> 3.1.4) + mail (~> 2.6.4) + mime-types (~> 3.0) + mimemagic + minitest + mocha + mysql2 (~> 0.4.6) + net-ldap (~> 0.12.0) + nokogiri (~> 1.8.1) + pg (~> 0.18.1) + protected_attributes + rack-openid + rails (= 4.2.11) + rails-dom-testing + rails-html-sanitizer (>= 1.0.3) + rbpdf (~> 1.19.6) + rdoc (~> 4.3) + redcarpet (~> 3.4.0) + request_store (= 1.0.5) + rmagick (>= 2.14.0) + roadie (~> 3.2.1) + roadie-rails (~> 1.1.1) + ruby-openid (~> 2.3.0) + selenium-webdriver (~> 2.53.4) + simplecov (~> 0.9.1) + test_after_commit (~> 0.4.2) + tzinfo-data + yard + +BUNDLED WITH + 1.16.3 diff --git a/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/nixpkgs/pkgs/applications/version-management/redmine/default.nix new file mode 100644 index 000000000000..02ae5da0f3f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, bundlerEnv, ruby }: + +let + version = "3.4.8"; + rubyEnv = bundlerEnv { + name = "redmine-env-${version}"; + + inherit ruby; + gemdir = ./.; + groups = [ "ldap" "openid" ]; + }; +in + stdenv.mkDerivation rec { + name = "redmine-${version}"; + + src = fetchurl { + url = "https://www.redmine.org/releases/${name}.tar.gz"; + sha256 = "1d8bj3hx2nlyvsqbx7zbslb4dgwgyxidj4jzh4n2ki0i7vgw0x5m"; + }; + + buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ]; + + buildPhase = '' + mv config config.dist + mv public/themes public/themes.dist + ''; + + installPhase = '' + mkdir -p $out/share + cp -r . $out/share/redmine + for i in config files log plugins public/plugin_assets public/themes tmp; do + rm -rf $out/share/redmine/$i + ln -fs /run/redmine/$i $out/share/redmine/$i + done + ''; + + meta = with stdenv.lib; { + homepage = http://www.redmine.org/; + platforms = platforms.linux; + maintainers = [ maintainers.garbas maintainers.aanderse ]; + license = licenses.gpl2; + }; + } diff --git a/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix new file mode 100644 index 000000000000..0a231c995791 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix @@ -0,0 +1,615 @@ +{ + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zkklsh7ymhvdm5p9fr5ycd39d5caassag8yq0dga9cbk7fps74m"; + type = "gem"; + }; + version = "4.2.11"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13xkil3y7gjj0m4ky14asi4m08x69wwv63wfn0h95wli4x8h8w7r"; + type = "gem"; + }; + version = "4.2.11"; + }; + actionpack-xml_parser = { + dependencies = ["actionpack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17am4nd7x6g8x7f8i35rzzv2qrxlkc230rbgzg98af0yf50j8gka"; + type = "gem"; + }; + version = "1.0.2"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09vwq0xgxxhssxxh8fa7l2pv6a56smw3v6gvb9l1mycmf8vprd4b"; + type = "gem"; + }; + version = "4.2.11"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12yqs22f4lz20nw6djsrkhii3p3nfpd51nw0lhvnczx0q8kl0nyk"; + type = "gem"; + }; + version = "4.2.11"; + }; + activemodel = { + dependencies = ["activesupport" "builder"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11aqvabf5c1pgb404f5bqp1i7mxkyhzmwk6y8zm5w6rf4nq095mq"; + type = "gem"; + }; + version = "4.2.11"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sw0m19cnasbr4cabvc302hjddc3s6fja3fr0gbj9h2n8b3633i5"; + type = "gem"; + }; + version = "4.2.11"; + }; + activesupport = { + dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pqr25wmhvvlg8av7bi5p5c7r5464clhhhhv45j63bh7xw4ad6n4"; + type = "gem"; + }; + version = "4.2.11"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"; + type = "gem"; + }; + version = "2.6.0"; + }; + arel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4"; + type = "gem"; + }; + version = "6.0.4"; + }; + builder = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yv77rnsjlvs8qpfn9n5vf1h6b9agxwhxw09gssbiw9zn9j20jh8"; + type = "gem"; + }; + version = "2.18.0"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; + coderay = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1"; + type = "gem"; + }; + version = "1.1.4"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + css_parser = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gwvf8mc8gnz4aizfijplv3594998h2j44ydakpzsdmkivs07v61"; + type = "gem"; + }; + version = "1.6.0"; + }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; + erubis = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; + type = "gem"; + }; + version = "2.7.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; + type = "gem"; + }; + version = "1.10.0"; + }; + globalid = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"; + type = "gem"; + }; + version = "0.4.2"; + }; + htmlentities = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + i18n = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"; + type = "gem"; + }; + version = "0.7.0"; + }; + jquery-rails = { + dependencies = ["railties" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lk7xqmms45czylxs22kv5khlbm7a0yqcchqijxb9m10zsqc6lp5"; + type = "gem"; + }; + version = "3.1.5"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"; + type = "gem"; + }; + version = "2.2.3"; + }; + mail = { + dependencies = ["mime-types"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0d7lhj2dw52ycls6xigkfz6zvfhc6qggply9iycjmcyj9760yvz9"; + type = "gem"; + }; + version = "2.6.6"; + }; + metaclass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5"; + type = "gem"; + }; + version = "0.0.4"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk"; + type = "gem"; + }; + version = "3.2.2"; + }; + mime-types-data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc"; + type = "gem"; + }; + version = "3.2018.0812"; + }; + mimemagic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw"; + type = "gem"; + }; + version = "0.3.3"; + }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + mocha = { + dependencies = ["metaclass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12aglpiq1h18j5a4rlwvnsvnsi2f3407v5xm59lgcg3ymlyak4al"; + type = "gem"; + }; + version = "1.8.0"; + }; + multi_json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + mysql2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq"; + type = "gem"; + }; + version = "0.4.10"; + }; + net-ldap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z1j0zklbbx3vi91zcd2v0fnkfgkvq3plisa6hxaid8sqndyak46"; + type = "gem"; + }; + version = "0.12.1"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz"; + type = "gem"; + }; + version = "1.8.5"; + }; + pg = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32"; + type = "gem"; + }; + version = "0.18.4"; + }; + protected_attributes = { + dependencies = ["activemodel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18lvrvmcwjvjr2mrn20vaf68a0q6mg4cy9f0m1i7x83p0ljhhyar"; + type = "gem"; + }; + version = "1.1.4"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f"; + type = "gem"; + }; + version = "1.6.11"; + }; + rack-openid = { + dependencies = ["rack" "ruby-openid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc"; + type = "gem"; + }; + version = "1.4.2"; + }; + rack-test = { + dependencies = ["rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; + type = "gem"; + }; + version = "0.6.3"; + }; + rails = { + dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rhp1l5klw8alqnzji2p4w01x7ygsfnzc7mf87ncr2jlizmgy4nx"; + type = "gem"; + }; + version = "4.2.11"; + }; + rails-deprecated_sanitizer = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; + type = "gem"; + }; + version = "1.0.3"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6"; + type = "gem"; + }; + version = "1.0.9"; + }; + rails-html-sanitizer = { + dependencies = ["loofah"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; + type = "gem"; + }; + version = "1.0.4"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "rake" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09x32zkxs0vfi4y0bjrqd61821kx2azwhdxvk2ygqj4yvxfh11i1"; + type = "gem"; + }; + version = "4.2.11"; + }; + rake = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn"; + type = "gem"; + }; + version = "12.3.2"; + }; + rbpdf = { + dependencies = ["htmlentities" "rbpdf-font"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i00mmc028p7hnpwlx9r6zdwwz589kd9ns6qpxmgl6f620n1fvs2"; + type = "gem"; + }; + version = "1.19.7"; + }; + rbpdf-font = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; + type = "gem"; + }; + version = "1.19.1"; + }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c"; + type = "gem"; + }; + version = "4.3.0"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + request_store = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ky19wb6mpq6dxb81a0h4hnzx7a4ka99n9ay2syi68djbr4bkbbh"; + type = "gem"; + }; + version = "1.0.5"; + }; + rmagick = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9x15cdlkcb9826s3s2jd97hxf50hln22p94x8hcccxi1lwklq6"; + type = "gem"; + }; + version = "2.16.0"; + }; + roadie = { + dependencies = ["css_parser" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0frp5yb07ib9y1k43shd4xjkb9a6wavhqq892l8yi9y73qi2cqbc"; + type = "gem"; + }; + version = "3.2.2"; + }; + roadie-rails = { + dependencies = ["railties" "roadie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hxgl5marq2hi6lcc73f7g6afd7dz4w893rrgrbh7m3k8zrwjyk1"; + type = "gem"; + }; + version = "1.1.1"; + }; + ruby-openid = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn"; + type = "gem"; + }; + version = "2.3.0"; + }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip" "websocket"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15qyf7b9fa2nxhhwp551b9fjj82kb3wmy65559yrrcwpdadqvcs4"; + type = "gem"; + }; + version = "2.53.4"; + }; + simplecov = { + dependencies = ["docile" "multi_json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3wy9zlmfwl3f47cibnxyxrgfz16y6fmy0dj1vyidzyys4mvy12"; + type = "gem"; + }; + version = "0.9.2"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jv9pmpaxihrcsgcf6mgl3qg7rhf9scl5l2k67d768w9cz63xgvc"; + type = "gem"; + }; + version = "0.9.0"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; + type = "gem"; + }; + version = "3.2.1"; + }; + test_after_commit = { + dependencies = ["activerecord"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fzg8qan6f0n0ynr594bld2k0rwwxj99yzhiga2f3pkj9ina1abb"; + type = "gem"; + }; + version = "0.4.2"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; + type = "gem"; + }; + version = "0.20.3"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + websocket = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x"; + type = "gem"; + }; + version = "1.2.8"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + yard = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07fykkfyrwqkfnxx9i5w6adyiadz00h497c516n96rgvs7alc74f"; + type = "gem"; + }; + version = "0.9.18"; + }; +} \ No newline at end of file diff --git a/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix new file mode 100644 index 000000000000..8dd46405d31f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchurl, makeWrapper, python27Packages, git +, docbook_xml_dtd_412, docbook_xsl, asciidoc, xmlto, pypy +, bazaar ? null, cvs ? null, darcs ? null, fossil ? null +, mercurial ? null, monotone ? null, rcs ? null +, subversion ? null, cvs_fast_export ? null }: + +with stdenv; with lib; +let + inherit (python27Packages) python; +in mkDerivation rec { + name = "reposurgeon-${meta.version}"; + meta = { + description = "A tool for editing version-control repository history"; + version = "3.44"; + license = licenses.bsd3; + homepage = http://www.catb.org/esr/reposurgeon/; + maintainers = with maintainers; [ dfoxfranke ]; + platforms = platforms.all; + }; + + src = fetchurl { + url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-3.44.tar.xz"; + sha256 = "0il6hwrsm2qgg0vp5fcjh478y2x4zyw3mx2apcwc7svfj86pf7pn"; + }; + + # install fails because the files README.md, NEWS, and TODO were not included in the source distribution + patches = [ ./fix-makefile.patch ]; + + buildInputs = + [ docbook_xml_dtd_412 docbook_xsl asciidoc xmlto makeWrapper pypy ]; + + preBuild = '' + makeFlagsArray=( + XML_CATALOG_FILES="${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml" + prefix="$out" + pyinclude="-I${python}/include/python2.7" + pylib="-L${python}/lib -lpython2.7" + ) + ''; + + postInstall = + let + binpath = makeBinPath ( + filter (x: x != null) + [ out git bazaar cvs darcs fossil mercurial + monotone rcs src subversion cvs_fast_export ] + ); + pythonpath = makeSearchPathOutput "lib" python.sitePackages ( + filter (x: x != null) + [ python27Packages.readline or null python27Packages.hglib or null ] + ); + in '' + for prog in reposurgeon repodiffer repotool; do + wrapProgram $out/bin/$prog \ + --prefix PATH : "${binpath}" \ + --prefix PYTHONPATH : "${pythonpath}" + done + '' + ; +} diff --git a/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch b/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch new file mode 100644 index 000000000000..0a659c93406d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch @@ -0,0 +1,12 @@ +diff -Naur reposurgeon-3.44/Makefile reposurgeon-3.44-new/Makefile +--- reposurgeon-3.44/Makefile 2018-04-29 12:27:43.000000000 -0700 ++++ reposurgeon-3.44-new/Makefile 2018-08-01 17:38:15.582789739 -0700 +@@ -36,7 +36,7 @@ + MANPAGES = reposurgeon.1 repotool.1 repodiffer.1 repomapper.1 repocutter.1 + HTMLFILES = $(MANPAGES:.1=.html) \ + dvcs-migration-guide.html features.html reporting-bugs.html +-SHARED = README.md NEWS TODO reposurgeon-git-aliases $(HTMLFILES) ++SHARED = reposurgeon-git-aliases $(HTMLFILES) + + all: $(MANPAGES) $(HTMLFILES) + diff --git a/nixpkgs/pkgs/applications/version-management/sit/default.nix b/nixpkgs/pkgs/applications/version-management/sit/default.nix new file mode 100644 index 000000000000..75368bd88463 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sit/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, rustPlatform, cmake, libzip, gnupg, + # Darwin + libiconv, CoreFoundation, Security }: + +rustPlatform.buildRustPackage rec { + name = "sit-${version}"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "sit-fyi"; + repo = "sit"; + rev = "v${version}"; + sha256 = "10ycs6vc7mfzxnxrki09xn974pcwh196h1pfnsds98x6r87hxkpn"; + }; + + buildInputs = [ cmake libzip gnupg ] ++ + (if stdenv.isDarwin then [ libiconv CoreFoundation Security ] else []); + + preCheck = '' + export HOME=$(mktemp -d) + ''; + + cargoSha256 = "023anmnprxbsvqww1b1bdyfhbhjh1ah2kc67cdihvdvi4lqdmbia"; + + meta = with stdenv.lib; { + description = "Serverless Information Tracker"; + homepage = https://sit.fyi/; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ dywedir yrashk ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix b/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix new file mode 100644 index 000000000000..213820918013 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchurl, lib, makeWrapper +, jre +, gtk2, glib +, libXtst +, which +}: + +stdenv.mkDerivation rec { + name = "smartgithg-${version}"; + version = "18.2.4"; + + src = fetchurl { + url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz"; + sha256 = "0ch6vcvndn1fpx05ym9yp2ssfw2af6ac0pw8ssvjkc676zc0jr73"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = [ jre ]; + + buildCommand = let + pkg_path = "$out/${name}"; + bin_path = "$out/bin"; + install_freedesktop_items = ./install_freedesktop_items.sh; + runtime_paths = lib.makeBinPath [ + jre + #git mercurial subversion # the paths are requested in configuration + which + ]; + runtime_lib_paths = lib.makeLibraryPath [ + gtk2 glib + libXtst + ]; + in '' + tar xvzf $src + mkdir -pv $out + mkdir -pv ${pkg_path} + # unpacking should have produced a dir named 'smartgit' + cp -a smartgit/* ${pkg_path} + # prevent using packaged jre + rm -r ${pkg_path}/jre + mkdir -pv ${bin_path} + jre=${jre.home} + makeWrapper ${pkg_path}/bin/smartgit.sh ${bin_path}/smartgit \ + --prefix PATH : ${runtime_paths} \ + --prefix LD_LIBRARY_PATH : ${runtime_lib_paths} \ + --prefix JRE_HOME : ${jre} \ + --prefix JAVA_HOME : ${jre} \ + --prefix SMARTGITHG_JAVA_HOME : ${jre} + sed -i '/ --login/d' ${pkg_path}/bin/smartgit.sh + patchShebangs $out + cp ${bin_path}/smartgit ${bin_path}/smartgithg + + ${install_freedesktop_items} "${pkg_path}/bin" "$out" + ''; + + meta = with stdenv.lib; { + description = "GUI for Git, Mercurial, Subversion"; + homepage = http://www.syntevo.com/smartgit/; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with stdenv.lib.maintainers; [ jraygauthier ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh b/nixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh new file mode 100755 index 000000000000..66fb0cf8f95a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +inBinDir=$1 +out=$2 + +cat $inBinDir/add-menuitem.sh | \ +sed -re 's#xdg-icon-resource[ ]+install[ ]+--size[ ]+([0-9]+)[ ]+("[^"]+")[ ]+([$0-9a-zA-Z_]+)#mkdir -p '${out}'/share/icons/hicolor/\1x\1/apps \&\& cp \2 '${out}'/share/icons/hicolor/\1x\1/apps/\3\.png #' | \ +sed -re 's#xdg-desktop-menu[ ]+install[ ]+([$0-9a-zA-Z_]+)#mkdir -p '${out}'/share/applications \&\& cp \1 '${out}'/share/applications/#' | \ +sed -re 's#Exec="[^"]+"#Exec=smartgit#' | +sed -re 's#SMARTGIT_BIN=.*#'SMARTGIT_BIN=${inBinDir}'#' \ +| bash diff --git a/nixpkgs/pkgs/applications/version-management/src/default.nix b/nixpkgs/pkgs/applications/version-management/src/default.nix new file mode 100644 index 000000000000..1054a2c06cff --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/src/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, python, rcs, git, makeWrapper }: + +stdenv.mkDerivation rec { + name = "src-${version}"; + version = "1.22"; + + src = fetchurl { + url = "http://www.catb.org/~esr/src/${name}.tar.gz"; + sha256 = "0xvfg3aikr2jh09vjvxsha7day5br88chvirncr59ad40da1fils"; + }; + + buildInputs = [ python rcs git makeWrapper ]; + + preConfigure = '' + patchShebangs . + ''; + + makeFlags = [ "prefix=$(out)" ]; + + postInstall = '' + wrapProgram $out/bin/src \ + --suffix PATH ":" "${rcs}/bin" + ''; + + meta = with stdenv.lib; { + description = "Simple single-file revision control"; + longDescription = '' + SRC, acronym of Simple Revision Control, is RCS/SCCS reloaded with a + modern UI, designed to manage single-file solo projects kept more than one + to a directory. Use it for FAQs, ~/bin directories, config files, and the + like. Features integer sequential revision numbers, a command set that + will seem familiar to Subversion/Git/hg users, and no binary blobs + anywhere. + ''; + homepage = http://www.catb.org/esr/src/; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ calvertvl AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/srcml/default.nix b/nixpkgs/pkgs/applications/version-management/srcml/default.nix new file mode 100644 index 000000000000..8753d4f6f571 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/srcml/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, cmake, libxml2, libxslt, boost, libarchive, python, antlr, + curl +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + version = "0.9.5_beta"; + name = "srcml-${version}"; + + src = fetchurl { + url = "http://www.sdml.cs.kent.edu/lmcrs/srcML-${version}-src.tar.gz"; + sha256 = "13pswdi75qjsw7z75lz7l3yjsvb58drihla2mwj0f9wfahaj3pam"; + }; + + prePatch = '' + patchShebangs . + substituteInPlace CMake/install.cmake --replace /usr/local $out + ''; + + patches = [ + ./gcc6.patch + ]; + + nativeBuildInputs = [ cmake antlr ]; + buildInputs = [ libxml2 libxslt boost libarchive python curl ]; + + meta = { + description = "Infrastructure for exploration, analysis, and manipulation of source code"; + homepage = https://www.srcml.org; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ leenaars ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch b/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch new file mode 100644 index 000000000000..7cd596d9ea78 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch @@ -0,0 +1,26 @@ +diff --git i/CMake/config.cmake w/CMake/config.cmake +index 28f8047..c596cf8 100644 +--- i/CMake/config.cmake ++++ w/CMake/config.cmake +@@ -95,7 +95,7 @@ else() + find_package(LibXml2 REQUIRED) + find_package(CURL REQUIRED) + set(Boost_NO_BOOST_CMAKE ON) +- set(Boost_USE_STATIC_LIBS ON) ++ set(Boost_USE_STATIC_LIBS OFF) + find_package(Boost COMPONENTS program_options filesystem system thread regex date_time REQUIRED) + + # add include directories +diff --git i/src/libsrcml/srcml_reader_handler.hpp w/src/libsrcml/srcml_reader_handler.hpp +index 0b23fed..c02dfef 100644 +--- i/src/libsrcml/srcml_reader_handler.hpp ++++ w/src/libsrcml/srcml_reader_handler.hpp +@@ -456,7 +456,7 @@ public : + + if(uri == SRCML_CPP_NS_URI) { + +- if(archive->language != 0) { ++ if(srcml_check_language(archive->language->c_str()) != 0) { + + if(*archive->language == "C++" || *archive->language == "C" || *archive->language == "Objective-C") + archive->options |= SRCML_OPTION_CPP | SRCML_OPTION_CPP_NOMACRO; diff --git a/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch b/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch new file mode 100644 index 000000000000..240d94f3f977 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch @@ -0,0 +1,11 @@ +--- a/subversion/bindings/swig/perl/native/Makefile.PL.in ++++ b/subversion/bindings/swig/perl/native/Makefile.PL.in +@@ -72,7 +72,7 @@ + # According to the log of r7937, the flags guarded by the conditional break + # the build on FreeBSD if not conditionalized. + my $apr_ldflags = '@SVN_APR_LIBS@' +- if $^O eq 'darwin' or $^O eq 'cygwin'; ++ if $^O eq 'darwin' or $^O eq 'cygwin' or $^O eq 'linux'; + + chomp $apr_shlib_path_var; + diff --git a/nixpkgs/pkgs/applications/version-management/subversion/default.nix b/nixpkgs/pkgs/applications/version-management/subversion/default.nix new file mode 100644 index 000000000000..a7f51713994e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/subversion/default.nix @@ -0,0 +1,134 @@ +{ bdbSupport ? false # build support for Berkeley DB repositories +, httpServer ? false # build Apache DAV module +, httpSupport ? false # client must support http +, pythonBindings ? false +, perlBindings ? false +, javahlBindings ? false +, saslSupport ? false +, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc +, apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null +, sasl ? null, serf ? null +}: + +assert bdbSupport -> aprutil.bdbSupport; +assert httpServer -> apacheHttpd != null; +assert pythonBindings -> swig != null && python != null; +assert javahlBindings -> jdk != null && perl != null; + +let + + common = { version, sha256, extraBuildInputs ? [ ] }: stdenv.mkDerivation (rec { + inherit version; + name = "subversion-${version}"; + + src = fetchurl { + url = "mirror://apache/subversion/${name}.tar.bz2"; + inherit sha256; + }; + + # Can't do separate $lib and $bin, as libs reference bins + outputs = [ "out" "dev" "man" ]; + + buildInputs = [ zlib apr aprutil sqlite openssl ] + ++ extraBuildInputs + ++ stdenv.lib.optional httpSupport serf + ++ stdenv.lib.optional pythonBindings python + ++ stdenv.lib.optional perlBindings perl + ++ stdenv.lib.optional saslSupport sasl; + + patches = [ ./apr-1.patch ]; + + # SVN build seems broken on gcc5: + # https://gcc.gnu.org/gcc-5/porting_to.html + CPPFLAGS = "-P"; + + configureFlags = [ + (stdenv.lib.withFeature bdbSupport "berkeley-db") + (stdenv.lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs") + (stdenv.lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig) + (stdenv.lib.withFeatureAs saslSupport "sasl" sasl) + (stdenv.lib.withFeatureAs httpSupport "serf" serf) + "--disable-keychain" + "--with-zlib=${zlib.dev}" + "--with-sqlite=${sqlite.dev}" + ] ++ stdenv.lib.optionals javahlBindings [ + "--enable-javahl" + "--with-jdk=${jdk}" + ]; + + preBuild = '' + makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules) + ''; + + postInstall = '' + if test -n "$pythonBindings"; then + make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + fi + + if test -n "$perlBindings"; then + make swig-pl-lib + make install-swig-pl-lib + cd subversion/bindings/swig/perl/native + perl Makefile.PL PREFIX=$out + make install + cd - + fi + + mkdir -p $out/share/bash-completion/completions + cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion + + for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do + substituteInPlace $f \ + --replace "${expat.dev}/lib" "${expat.out}/lib" \ + --replace "${zlib.dev}/lib" "${zlib.out}/lib" \ + --replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \ + --replace "${openssl.dev}/lib" "${openssl.out}/lib" + done + ''; + + inherit perlBindings pythonBindings; + + enableParallelBuilding = true; + + checkInputs = [ python ]; + doCheck = false; # fails 10 out of ~2300 tests + + meta = with stdenv.lib; { + description = "A version control system intended to be a compelling replacement for CVS in the open source community"; + license = licenses.asl20; + homepage = http://subversion.apache.org/; + maintainers = with maintainers; [ eelco lovek323 ]; + platforms = platforms.linux ++ platforms.darwin; + }; + + } // stdenv.lib.optionalAttrs stdenv.isDarwin { + CXX = "clang++"; + CC = "clang"; + CPP = "clang -E"; + CXXCPP = "clang++ -E"; + }); + +in { + subversion18 = common { + version = "1.8.19"; + sha256 = "1gp6426gkdza6ni2whgifjcmjb4nq34ljy07yxkrhlarvfq6ks2n"; + }; + + subversion19 = common { + version = "1.9.9"; + sha256 = "1ll13ychbkp367c7zsrrpda5nygkryma5k18qfr8wbaq7dbvxzcd"; + }; + + subversion_1_10 = common { + version = "1.10.3"; + sha256 = "1z6r3n91a4znsh68rl3jisfr7k4faymhbpalmmvsmvsap34al3cz"; + extraBuildInputs = [ lz4 utf8proc ]; + }; + + subversion_1_11 = common { + version = "1.11.1"; + sha256 = "1fv0psjxx5nxb4zmddyrma2bnv1bfff4p8ii6j8fqwjdr982gzcy"; + extraBuildInputs = [ lz4 utf8proc ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/tailor/default.nix b/nixpkgs/pkgs/applications/version-management/tailor/default.nix new file mode 100644 index 000000000000..c68cc928848d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tailor/default.nix @@ -0,0 +1,19 @@ +{ fetchurl, python2Packages }: + +python2Packages.buildPythonApplication rec { + name = "tailor-${version}"; + version = "0.9.35"; + + src = fetchurl { + urls = [ + "http://darcs.arstecnica.it/tailor/tailor-${version}.tar.gz" + "https://src.fedoraproject.org/repo/pkgs/tailor/tailor-${version}.tar.gz/58a6bc1c1d922b0b1e4579c6440448d1/tailor-${version}.tar.gz" + ]; + sha256 = "061acapxxn5ab3ipb5nd3nm8pk2xj67bi83jrfd6lqq3273fmdjh"; + }; + + meta = { + description = "Version control tools integration tool"; + }; +} + diff --git a/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix b/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix new file mode 100644 index 000000000000..48558c15dc1c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix @@ -0,0 +1,28 @@ +{stdenv, fetchurl, tcl, tk}: + +stdenv.mkDerivation +{ + name = "tkcvs-8.2.1"; + + src = fetchurl { + url = mirror://sourceforge/tkcvs/tkcvs_8_2_1.tar.gz; + sha256 = "0kvj6rcx1153wq0n1lmd8imbrki6xy5wxghwzlb9i15l65sclg3i"; + }; + + buildInputs = [ tcl tk ]; + + patchPhase = '' + sed -e 's@exec wish@exec ${tk}/bin/wish@' -i tkcvs/tkcvs.tcl tkdiff/tkdiff + ''; + + installPhase = '' + ./doinstall.tcl $out + ''; + + meta = { + homepage = https://tkcvs.sourceforge.io; + description = "TCL/TK GUI for cvs and subversion"; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix new file mode 100644 index 000000000000..dc458eba1673 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix @@ -0,0 +1,38 @@ +{lib, fetchurl, mercurial, python2Packages}: + +python2Packages.buildPythonApplication rec { + name = "tortoisehg-${version}"; + version = "4.8.2"; + + src = fetchurl { + url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz"; + sha256 = "02av8k241rn7b68g4kl22s7jqmlq545caah1a5rvbgy41y7zzjvh"; + }; + + pythonPath = with python2Packages; [ pyqt4 mercurial qscintilla iniparse ]; + + propagatedBuildInputs = with python2Packages; [ qscintilla iniparse ]; + + doCheck = false; # tests fail with "thg: cannot connect to X server" + dontStrip = true; + buildPhase = ""; + installPhase = '' + ${python2Packages.python.executable} setup.py install --prefix=$out + mkdir -p $out/share/doc/tortoisehg + cp COPYING.txt $out/share/doc/tortoisehg/Copying.txt.gz + ln -s $out/bin/thg $out/bin/tortoisehg #convenient alias + ''; + + checkPhase = '' + echo "test: thg version" + $out/bin/thg version + ''; + + meta = { + description = "Qt based graphical tool for working with Mercurial"; + homepage = http://tortoisehg.bitbucket.org/; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ danbst ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix b/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix new file mode 100644 index 000000000000..c2bf0a4183c1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchhg, autoconf, sqlite }: + +stdenv.mkDerivation rec { + name = "vcprompt-${version}"; + version = "1.2.1"; + + src = fetchhg { + url = "http://hg.gerg.ca/vcprompt/"; + rev = version; + sha256 = "03xqvp6bfl98bpacrw4n82qv9cw6a4fxci802s3vrygas989v1kj"; + }; + + buildInputs = [ sqlite autoconf ]; + + preConfigure = '' + autoconf + makeFlags="$makeFlags PREFIX=$out" + ''; + + meta = with stdenv.lib; { + description = '' + A little C program that prints a short string with barebones information + about the current working directory for various version control systems + ''; + homepage = http://hg.gerg.ca/vcprompt; + maintainers = with maintainers; [ cstrahan ]; + platforms = with platforms; linux ++ darwin; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/vcsh/default.nix b/nixpkgs/pkgs/applications/version-management/vcsh/default.nix new file mode 100644 index 000000000000..a90eb531fe59 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/vcsh/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, which, git, ronn, perlPackages }: + +stdenv.mkDerivation rec { + version = "1.20170915"; # date of commit we're pulling + name = "vcsh-${version}"; + + src = fetchFromGitHub { + owner = "RichiH"; + repo = "vcsh"; + rev = "eadb8df6aa71a76e5be36492edcadb118bd862ac"; + sha256 = "1wfzp8167lcq6akdpbi8fikjv0z3h1i5minh3423dljc04q0klm1"; + }; + + buildInputs = [ which git ronn ] + ++ (with perlPackages; [ perl ShellCommand TestMost TestDifferences TestDeep TestException TestWarn ]); + + installPhase = "make install PREFIX=$out"; + + meta = with stdenv.lib; { + description = "Version Control System for $HOME"; + homepage = https://github.com/RichiH/vcsh; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ garbas ttuegel ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/yadm/default.nix b/nixpkgs/pkgs/applications/version-management/yadm/default.nix new file mode 100644 index 000000000000..6baeb5279c26 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/yadm/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub }: + +let version = "1.12.0"; in +stdenv.mkDerivation { + name = "yadm-${version}"; + + src = fetchFromGitHub { + owner = "TheLocehiliosan"; + repo = "yadm"; + rev = "${version}"; + sha256 = "0873jgks7dpfkj5km1jchxdrhf7lia70p0f8zsrh9p4crj5f4pc6"; + }; + + buildCommand = '' + mkdir -p $out/bin + mkdir -p $out/share/man/man1 + mkdir -p $out/share/zsh/site-functions + mkdir -p $out/share/bash-completion/completions + sed -e 's:/bin/bash:/usr/bin/env bash:' $src/yadm > $out/bin/yadm + chmod 755 $out/bin/yadm + install -m 644 $src/yadm.1 $out/share/man/man1/yadm.1 + install -m644 $src/completion/yadm.zsh_completion $out/share/zsh/site-functions/_yadm + install -m644 $src/completion/yadm.bash_completion $out/share/bash-completion/completions/yadm.bash + ''; + + meta = { + homepage = https://github.com/TheLocehiliosan/yadm; + description = "Yet Another Dotfiles Manager"; + longDescription = '' + yadm is a dotfile management tool with 3 main features: Manages files across + systems using a single Git repository. Provides a way to use alternate files on + a specific OS or host. Supplies a method of encrypting confidential data so it + can safely be stored in your repository. + ''; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.unix; + }; +} |