Merge master into staging

This commit is contained in:
Frederik Rietdijk
2018-10-13 09:48:20 +02:00
309 changed files with 11221 additions and 3339 deletions

View File

@@ -0,0 +1,29 @@
{ lib, pythonPackages, fetchFromGitHub }:
pythonPackages.buildPythonApplication rec {
pname = "cpplint";
version = "1.3.0";
# Fetch from github instead of pypi, since the test cases are not in the pypi archive
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "107v7bp35kxbv9v7wl79h7115z1m4b48rhasp0cnivql1grd277i";
};
postPatch = ''
patchShebangs cpplint_unittest.py
'';
checkPhase = ''
./cpplint_unittest.py
'';
meta = with lib; {
homepage = https://github.com/cpplint/cpplint;
description = "Static code checker for C++";
maintainers = [ maintainers.bhipple ];
license = [ licenses.bsd3 ];
};
}

View File

@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "pmd-${version}";
version = "6.7.0";
version = "6.8.0";
buildInputs = [ unzip ];
src = fetchurl {
url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
sha256 = "0bnbr8zq28dgvwka563g5lbya5jhmjrahnbwagcs4afpsrm7zj6c";
sha256 = "1vfkg2l3sl5ahhs89nvkg0z1ah1k67c44nwpvaymq73rb2bb8ibr";
};
installPhase = ''
@@ -16,10 +16,11 @@ stdenv.mkDerivation rec {
cp -R * $out
'';
meta = {
description = "Scans Java source code and looks for potential problems";
homepage = http://pmd.sourceforge.net/;
platforms = stdenv.lib.platforms.unix;
meta = with stdenv.lib; {
description = "An extensible cross-language static code analyzer.";
homepage = https://pmd.github.io/;
platforms = platforms.unix;
license = with licenses; [ bsdOriginal asl20 ];
};
}

View File

@@ -1,121 +1,218 @@
{ stdenv, fetchFromGitHub, fetchurl, fetchzip,
# Native build inputs
cmake,
autoconf, automake, libtool,
pkgconfig,
bison, flex,
groff,
perl,
python,
# Runtime tools
time,
upx,
# Build inputs
ncurses,
libffi,
libxml2,
zlib,
# PE (Windows) data, huge space savings if not needed
withPEPatterns ? false,
{ stdenv
, fetchFromGitHub
, fetchzip
, lib
, callPackage
, openssl
, cmake
, autoconf
, automake
, libtool
, pkgconfig
, bison
, flex
, groff
, perl
, python3
, time
, upx
, ncurses
, libffi
, libxml2
, zlib
, withPEPatterns ? false
}:
let
release = "3.0";
capstone = fetchFromGitHub {
owner = "avast-tl";
repo = "capstone";
rev = "27c713fe4f6eaf9721785932d850b6291a6073fe";
sha256 = "105z1g9q7s6n15qpln9vzhlij7vj6cyc5dqdr05n7wzjvlagwgxc";
};
elfio = fetchFromGitHub {
owner = "avast-tl";
repo = "elfio";
rev = "998374baace397ea98f3b1d768e81c978b4fba41";
sha256 = "09n34rdp0wpm8zy30zx40wkkc4gbv2k3cv181y6c1260rllwk5d1";
};
keystone = fetchFromGitHub { # only for tests
owner = "keystone-engine";
repo = "keystone";
rev = "d7ba8e378e5284e6384fc9ecd660ed5f6532e922";
sha256 = "1yzw3v8xvxh1rysh97y0i8y9svzbglx2zbsqjhrfx18vngh0x58f";
};
libdwarf = fetchFromGitHub {
owner = "avast-tl";
repo = "libdwarf";
rev = "85465d5e235cc2d2f90d04016d6aca1a452d0e73";
sha256 = "11y62r65py8yp57i57a4cymxispimn62by9z4j2g19hngrpsgbki";
};
llvm = fetchFromGitHub {
owner = "avast-tl";
repo = "llvm";
rev = "725d0cee133c6ab9b95c493f05de3b08016f5c3c";
sha256 = "0dzvafmn4qs62w1y9vh0a11clpj6q3hb41aym4izpcyybjndf9bq";
};
pelib = fetchFromGitHub {
owner = "avast-tl";
repo = "pelib";
rev = "a7004b2e80e4f6dc984f78b821e7b585a586050d";
sha256 = "0nyrb3g749lxgcymz1j584xbb1x6rvy1mc700lyn0brznvqsm81n";
};
rapidjson = fetchFromGitHub {
owner = "Tencent";
repo = "rapidjson";
rev = "v1.1.0";
sha256 = "1jixgb8w97l9gdh3inihz7avz7i770gy2j2irvvlyrq3wi41f5ab";
};
yaracpp = callPackage ./yaracpp.nix {}; # is its own package because it needs a patch
yaramod = fetchFromGitHub {
owner = "avast-tl";
repo = "yaramod";
rev = "v2.1.2";
sha256 = "1rpyqzkrqvk721hf75wb7aasw5mzp9wz4j89p0x1l9p5x1b3maz3";
};
jsoncpp = fetchFromGitHub {
owner = "open-source-parsers";
repo = "jsoncpp";
rev = "1.8.3";
sha256 = "05gkmg6r94q8a0qdymarcjlnlvmy9s365m9jhz3ysvi71cr31lkz";
rev = "1.8.4";
sha256 = "1z0gj7a6jypkijmpknis04qybs1hkd04d1arr3gy89lnxmp6qzlm";
};
googletest = fetchFromGitHub {
googletest = fetchFromGitHub { # only for tests
owner = "google";
repo = "googletest";
rev = "release-1.8.0";
sha256 = "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399";
rev = "83fa0cb17dad47a1d905526dcdddb5b96ed189d2";
sha256 = "1c2r0p9v7vz2vasy8bknfb448l6wsvzw35s8hmc5z013z5502mpk";
};
tinyxml2 = fetchFromGitHub {
owner = "leethomason";
repo = "tinyxml2";
rev = "5.0.1";
rev = "cc1745b552dd12bb1297a99f82044f83b06729e0";
sha256 = "015g8520a0c55gwmv7pfdsgfz2rpdmh3d1nq5n9bd65n35492s3q";
};
yara = fetchurl {
url = "https://github.com/avast-tl/yara/archive/v1.0-retdec.zip";
sha256 = "1bjrkgp1sgld2y7gvwrlrz5fs16521ink6xyq72v7yxj3vfa9gps";
};
openssl = fetchurl {
url = "https://www.openssl.org/source/openssl-1.1.0f.tar.gz";
sha256 = "0r97n4n552ns571diz54qsgarihrxvbn7kvyv8wjyfs9ybrldxqj";
retdec-support = let
version = "2018-02-08"; # make sure to adjust both hashes (once with withPEPatterns=true and once withPEPatterns=false)
in fetchzip {
url = "https://github.com/avast-tl/retdec-support/releases/download/${version}/retdec-support_${version}.tar.xz";
sha256 = if withPEPatterns then "148i8flbyj1y4kfdyzsz7jsj38k4h97npjxj18h6v4wksd4m4jm7"
else "0ixv9qyqq40pzyqy6v9jf5rxrvivjb0z0zn260nbmb9gk765bacy";
stripRoot = false;
# Removing PE signatures reduces this from 3.8GB -> 642MB (uncompressed)
extraPostFetch = lib.optionalString (!withPEPatterns) ''
rm -r "$out/generic/yara_patterns/static-code/pe"
'';
} // {
inherit version; # necessary to check the version against the expected version
};
retdec-support = fetchzip {
url = "https://github.com/avast-tl/retdec-support/releases/download/2017-12-12/retdec-support_2017-12-12.tar.xz";
sha256 = if withPEPatterns then "0pchl7hb42dm0sdbmpr8d3c6xc0lm6cs4p6g6kdb2cr9c99gjzn3"
else "1hcyq6bf4wk739kb53ic2bs71gsbx6zd07pc07lzfnxf8k497mhv";
# Removing PE signatures reduces this from 3.8GB -> 642MB (uncompressed)
extraPostFetch = stdenv.lib.optionalString (!withPEPatterns) ''
rm -rf $out/generic/yara_patterns/static-code/pe
'';
};
# patch CMakeLists.txt for a dependency and compare the versions to the ones expected by upstream
# this has to be applied for every dependency (which it is in postPatch)
patchDep = dep: ''
# check if our version of dep is the same version that upstream expects
echo "Checking version of ${dep.dep_name}"
expected_rev="$( sed -n -e 's|.*URL https://github.com/.*/archive/\(.*\)\.zip.*|\1|p' "deps/${dep.dep_name}/CMakeLists.txt" )"
if [ "$expected_rev" != '${dep.rev}' ]; then
echo "The ${dep.dep_name} dependency has the wrong version: ${dep.rev} while $expected_rev is expected."
exit 1
fi
# patch the CMakeLists.txt file to use our local copy of the dependency instead of fetching it at build time
sed -i -e 's|URL .*|URL ${dep}|' "deps/${dep.dep_name}/CMakeLists.txt"
'';
in stdenv.mkDerivation rec {
name = "retdec-${version}";
version = "${release}.0";
# If you update this you will also need to adjust the versions of the updated dependencies. You can do this by first just updating retdec
# itself and trying to build it. The build should fail and tell you which dependencies you have to upgrade to which versions.
# I've notified upstream about this problem here:
# https://github.com/avast-tl/retdec/issues/412
version = "3.2";
src = fetchFromGitHub {
owner = "avast-tl";
repo = "retdec";
name = "retdec-${release}";
rev = "refs/tags/v${release}";
sha256 = "0cpc5lxg8qphdzl3gg9dx992ar35r8ik8wyysr91l2qvfhx93wks";
fetchSubmodules = true;
name = "retdec-${version}";
rev = "refs/tags/v${version}";
sha256 = "0chky656lsddn20bnm3pmz6ix20y4a0y8swwr42hrhi01vkhmzrp";
};
nativeBuildInputs = [ cmake autoconf automake libtool pkgconfig bison flex groff perl python ];
nativeBuildInputs = [
cmake
autoconf
automake
libtool
pkgconfig
bison
flex
groff
perl
python3
];
buildInputs = [ ncurses libffi libxml2 zlib ];
buildInputs = [
openssl
ncurses
libffi
libxml2
zlib
];
prePatch = ''
find . -wholename "*/deps/rapidjson/CMakeLists.txt" -print0 | \
xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${rapidjson}|'
find . -wholename "*/deps/jsoncpp/CMakeLists.txt" -print0 | \
xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${jsoncpp}|'
find . -wholename "*/deps/googletest/CMakeLists.txt" -print0 | \
xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${googletest}|'
find . -wholename "*/deps/tinyxml2/CMakeLists.txt" -print0 | \
xargs -0 sed -i -e 's|GIT_REPOSITORY.*|URL ${tinyxml2}|'
cmakeFlags = [
"-DRETDEC_TESTS=ON" # build tests
];
find . -wholename "*/yaracpp/deps/CMakeLists.txt" -print0 | \
xargs -0 sed -i -e 's|URL .*|URL ${yara}|'
# all dependencies that are normally fetched during build time (the subdirectories of `deps`)
# all of these need to be fetched through nix and the CMakeLists files need to be patched not to fetch them themselves
external_deps = [
(capstone // { dep_name = "capstone"; })
(elfio // { dep_name = "elfio"; })
(googletest // { dep_name = "googletest"; })
(jsoncpp // { dep_name = "jsoncpp"; })
(keystone // { dep_name = "keystone"; })
(libdwarf // { dep_name = "libdwarf"; })
(llvm // { dep_name = "llvm"; })
(pelib // { dep_name = "pelib"; })
(rapidjson // { dep_name = "rapidjson"; })
(tinyxml2 // { dep_name = "tinyxml2"; })
(yaracpp // { dep_name = "yaracpp"; })
(yaramod // { dep_name = "yaramod"; })
];
find . -wholename "*/deps/openssl/CMakeLists.txt" -print0 | \
xargs -0 sed -i -e 's|OPENSSL_URL .*)|OPENSSL_URL ${openssl})|'
postPatch = (lib.concatMapStrings patchDep external_deps) + ''
# install retdec-support
echo "Checking version of retdec-support"
expected_version="$( sed -n -e "s|^version = '\(.*\)'$|\1|p" 'cmake/install-share.py' )"
if [ "$expected_version" != '${retdec-support.version}' ]; then
echo "The retdec-support dependency has the wrong version: ${retdec-support.version} while $expected_version is expected."
exit 1
fi
mkdir -p "$out/share/retdec"
cp -r ${retdec-support} "$out/share/retdec/support" # write permission needed during install
chmod -R u+w "$out/share/retdec/support"
# python file originally responsible for fetching the retdec-support archive to $out/share/retdec
# that is not necessary anymore, so empty the file
echo > cmake/install-share.py
cat > cmake/install-share.sh <<EOF
#!/bin/sh
mkdir -p $out/share/retdec/
ln -s ${retdec-support} $out/share/retdec/support
EOF
chmod +x cmake/*.sh
patchShebangs cmake/*.sh
substituteInPlace scripts/unpack.sh --replace ' upx -d' ' ${upx}/bin/upx -d'
substituteInPlace scripts/config.sh --replace /usr/bin/time ${time}/bin/time
# call correct `time` and `upx` programs
substituteInPlace scripts/retdec-config.py --replace /usr/bin/time ${time}/bin/time
substituteInPlace scripts/retdec-unpacker.py --replace "'upx'" "'${upx}/bin/upx'"
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
doInstallCheck = true;
installCheckPhase = ''
${python3.interpreter} "$out/bin/retdec-tests-runner.py"
'';
meta = with lib; {
description = "A retargetable machine-code decompiler based on LLVM";
homepage = https://retdec.com;
license = licenses.mit;
maintainers = with maintainers; [ dtzWill ];
broken = withPEPatterns; # retdec-full is broken, 2018-04-11
maintainers = with maintainers; [ dtzWill timokau ];
platforms = ["x86_64-linux" "i686-linux"];
};
}

View File

@@ -0,0 +1,49 @@
{ stdenv
, fetchFromGitHub
, coreutils
}:
let
yara = fetchFromGitHub {
owner = "avast-tl";
repo = "yara";
rev = "ea101c5856941f39cad2db3012f2660d1d5c8b65";
sha256 = "033ssx2hql5k4pv9si043s3mjq2b748ymjzif8pg6rdwh260faky";
};
in stdenv.mkDerivation rec {
# only fetches the yaracpp source patched to work with a local yara clone,
# does not build anything
name = "yaracpp-src-${version}";
version = "2018-10-09";
rev = "b92bde0e59e3b75bc445227e04b71105771dee8b"; # as specified in retdec/deps/yaracpp/CMakeLists.txt
src = fetchFromGitHub {
inherit rev;
owner = "avast-tl";
repo = "yaracpp";
sha256 = "0fan7q79j7s3bjmhsd2nw6sqyi14xgikn7mr2p4nj87lick5l4a2";
};
postPatch = ''
# check if our version of yara is the same version that upstream expects
echo "Checking version of yara"
expected_rev="$( sed -n -e 's|.*URL https://github.com/.*/archive/\(.*\)\.zip.*|\1|p' "deps/CMakeLists.txt" )"
if [ "$expected_rev" != '${yara.rev}' ]; then
echo "The yara dependency has the wrong version: ${yara.rev} while $expected_rev is expected."
exit 1
fi
# patch the CMakeLists.txt file to use our local copy of the dependency instead of fetching it at build time
sed -i -e "s|URL .*|URL ${yara}|" "deps/CMakeLists.txt"
# abuse the CONFIGURE_COMMAND to make the source writeable after copying it to the build locatoin (necessary for the build)
sed -i -e 's|CONFIGURE_COMMAND ""|CONFIGURE_COMMAND COMMAND ${coreutils}/bin/chmod -R u+w .|' "deps/CMakeLists.txt"
'';
buildPhase = "# do nothing";
configurePhase = "# do nothing";
installPhase = ''
mkdir -p "$out"
cp -r * "$out"
'';
}

View File

@@ -1,95 +0,0 @@
{ stdenv, openssh, buildbot-worker, buildbot-pkg, pythonPackages, runCommand, makeWrapper }:
let
withPlugins = plugins: runCommand "wrapped-${package.name}" {
buildInputs = [ makeWrapper ] ++ plugins;
propagatedBuildInputs = package.propagatedBuildInputs;
passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins);
} ''
makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
--prefix PYTHONPATH : "${package}/lib/python2.7/site-packages:$PYTHONPATH"
ln -sfv ${package}/lib $out/lib
'';
package = pythonPackages.buildPythonApplication rec {
name = "${pname}-${version}";
pname = "buildbot";
version = "1.2.0";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "02gwmls8kgm6scy36hdy0bg645zs1pxlrgwkcn79wrl7cfmabcbv";
};
buildInputs = with pythonPackages; [
lz4
txrequests
pyjade
boto3
moto
txgithub
mock
setuptoolsTrial
isort
pylint
astroid
pyflakes
openssh
buildbot-worker
buildbot-pkg
treq
];
propagatedBuildInputs = with pythonPackages; [
# core
twisted
jinja2
zope_interface
sqlalchemy
sqlalchemy_migrate
future
dateutil
txaio
autobahn
pyjwt
distro
# tls
pyopenssl
service-identity
idna
# docs
sphinx
sphinxcontrib-blockdiag
sphinxcontrib-spelling
pyenchant
docutils
ramlfications
sphinx-jinja
];
patches = [
# This patch disables the test that tries to read /etc/os-release which
# is not accessible in sandboxed builds.
./skip_test_linux_distro.patch
];
# TimeoutErrors on slow machines -> aarch64
doCheck = !stdenv.isAarch64;
postPatch = ''
substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
'';
passthru = { inherit withPlugins; };
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot is an open-source continuous integration framework for automating software build, test, and release processes";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
};
in package

View File

@@ -1,27 +0,0 @@
{ stdenv, buildPythonPackage, fetchPypi, setuptools }:
buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-pkg";
version = "1.2.0";
src = fetchPypi {
inherit pname version;
sha256 = "70f429311c5812ffd334f023f4f50b904be5c672c8674ee6d28a11a7c096f18a";
};
propagatedBuildInputs = [ setuptools ];
postPatch = ''
# Their listdir function filters out `node_modules` folders.
# Do we have to care about that with Nix...?
substituteInPlace buildbot_pkg.py --replace "os.listdir = listdir" ""
'';
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot Packaging Helper";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
}

View File

@@ -1,105 +0,0 @@
{ stdenv, pythonPackages, buildbot-pkg }:
{
www = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot_www";
version = buildbot-pkg.version;
# NOTE: wheel is used due to buildbot circular dependency
format = "wheel";
src = pythonPackages.fetchPypi {
inherit pname version format;
sha256 = "001kxjcyn5sxiq7m1izy4djj7alw6qpgaid4f518s9xgm4a8hwcb";
};
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot UI";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
};
console-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-console-view";
version = buildbot-pkg.version;
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "11p9l9r9rh8cq0ihzjcdxfbi55n7inbsz45zqq67rkvqn5nhj5b6";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot Console View Plugin";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
};
waterfall-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-waterfall-view";
version = buildbot-pkg.version;
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "1yx63frfpbvwy4hfib1psyq5ad0wysyzfrla8d7lgbdaip021wzw";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot Waterfall View Plugin";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
};
grid-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-grid-view";
version = buildbot-pkg.version;
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "06my75hli3w1skdkx1qz6zqw2wckanhrcvlqm4inylj9v9pcrgv6";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot Grid View Plugin";
maintainers = with maintainers; [ nand0p ];
license = licenses.gpl2;
};
};
wsgi-dashboards = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-wsgi-dashboards";
version = buildbot-pkg.version;
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "073gz44fa5k1p8k46k0ld9gg16j8zdj6sc297qfyqpiw28ybhc5s";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot WSGI dashboards Plugin";
maintainers = with maintainers; [ ];
license = licenses.gpl2;
};
};
}

View File

@@ -1,11 +0,0 @@
diff -Nur buildbot-0.9.6/buildbot/test/unit/test_buildbot_net_usage_data.py buildbot-0.9.6.patched/buildbot/test/unit/test_buildbot_net_usage_data.py
--- buildbot-0.9.6/buildbot/test/unit/test_buildbot_net_usage_data.py 2017-04-19 16:57:02.000000000 +0200
+++ buildbot-0.9.6.patched/buildbot/test/unit/test_buildbot_net_usage_data.py 2017-05-04 12:22:54.575762551 +0200
@@ -147,6 +147,7 @@
_sendBuildbotNetUsageData({'foo': 'bar'})
def test_linux_distro(self):
+ raise SkipTest("NixOS sandboxed builds hides /etc/os-release")
system = platform.system()
if system != "Linux":
raise SkipTest("test is only for linux")

View File

@@ -1,26 +0,0 @@
{ stdenv, pythonPackages }:
pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot-worker";
version = "1.4.0";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "12zvf4c39b6s4g1f2w407q8kkw602m88rc1ggi4w9pkw3bwbxrgy";
};
buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
propagatedBuildInputs = with pythonPackages; [ twisted future ];
postPatch = ''
substituteInPlace buildbot_worker/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
'';
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot Worker Daemon";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
})

View File

@@ -0,0 +1,4 @@
source 'https://rubygems.org'
gem 'fpm'
gem 'ronn'

View File

@@ -0,0 +1,54 @@
GEM
remote: https://rubygems.org/
specs:
arr-pm (0.0.10)
cabin (> 0)
backports (3.8.0)
cabin (0.9.0)
childprocess (0.7.1)
ffi (~> 1.0, >= 1.0.11)
clamp (1.0.1)
dotenv (2.2.1)
ffi (1.9.18)
fpm (1.9.2)
arr-pm (~> 0.0.10)
backports (>= 2.6.2)
cabin (>= 0.6.0)
childprocess
clamp (~> 1.0.0)
ffi
json (>= 1.7.7, < 2.0)
pleaserun (~> 0.0.29)
ruby-xz
stud
hpricot (0.8.6)
insist (1.0.0)
io-like (0.3.0)
json (1.8.6)
mustache (0.99.8)
pleaserun (0.0.30)
cabin (> 0)
clamp
dotenv
insist
mustache (= 0.99.8)
stud
rdiscount (2.2.0.1)
ronn (0.7.3)
hpricot (>= 0.8.2)
mustache (>= 0.7.0)
rdiscount (>= 1.5.8)
ruby-xz (0.2.3)
ffi (~> 1.9)
io-like (~> 0.3)
stud (0.0.23)
PLATFORMS
ruby
DEPENDENCIES
fpm
ronn
BUNDLED WITH
1.16.0

View File

@@ -0,0 +1,46 @@
{ lib, bundlerEnv, ruby, buildGoPackage, fetchFromGitHub }:
let
# needed for manpage generation
gems = bundlerEnv {
name = "ejson-gems";
gemdir = ./.;
inherit ruby;
};
in buildGoPackage rec {
name = "ejson-${version}";
version = "1.2.0";
rev = "v${version}";
nativeBuildInputs = [ gems ];
goPackagePath = "github.com/Shopify/ejson";
subPackages = [ "cmd/ejson" ];
goDeps = ./deps.nix;
src = fetchFromGitHub {
owner = "Shopify";
repo = "ejson";
inherit rev;
sha256 = "07ig24fryb9n0mfyqb0sgpj7di9y7wbvh2ppwfs2jqfpvpncd7yh";
};
# set HOME, otherwise bundler will insert stuff in the manpages
postBuild = ''
cd go/src/$goPackagePath
HOME=$PWD make man
'';
postInstall = ''
mkdir -p $out/share
cp -r build/man $out/share
'';
meta = with lib; {
description = "A small library to manage encrypted secrets using asymmetric encryption.";
license = licenses.mit;
homepage = https://github.com/Shopify/ejson;
platforms = platforms.unix;
maintainers = [ maintainers.manveru ];
};
}

48
pkgs/development/tools/ejson/deps.nix generated Normal file
View File

@@ -0,0 +1,48 @@
# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
[
{
goPackagePath = "github.com/codegangsta/cli";
fetch = {
type = "git";
url = "https://github.com/codegangsta/cli";
rev = "9908e96513e5a94de37004098a3974a567f18111";
sha256 = "0g6sihdb53nlf770dp3jc0qqxnlir5n2yjbp5p5vf7kcj3p54p34";
};
}
{
goPackagePath = "github.com/dustin/gojson";
fetch = {
type = "git";
url = "https://github.com/dustin/gojson";
rev = "057ac0edc14e44d03df3bb03449e666ff50884c1";
sha256 = "1kzzbi5yshcg1v99gab5ymd3psild3p0rbq9jf7mssjvh11yza6f";
};
}
{
goPackagePath = "github.com/smartystreets/goconvey";
fetch = {
type = "git";
url = "https://github.com/smartystreets/goconvey";
rev = "90f2eae17a8bdcbe3f6f654fc76af7f39e97d7b9";
sha256 = "0s984ksmc8npf642nwwd1a81c2sfi613v7yia9jff710i5472fah";
};
}
{
goPackagePath = "github.com/urfave/cli";
fetch = {
type = "git";
url = "https://github.com/urfave/cli";
rev = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1";
sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "ca7e7f10cb9fd9c1a6ff7f60436c086d73714180";
sha256 = "02wmfdq40fjszrd9l2w4c1g34zxnxyydwr4sqvp2blmw2s6ww4bx";
};
}
]

View File

@@ -0,0 +1,188 @@
{
arr-pm = {
dependencies = ["cabin"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07yx1g1nh4zdy38i2id1xyp42fvj4vl6i196jn7szvjfm0jx98hg";
type = "gem";
};
version = "0.0.10";
};
backports = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17pcz0z6jms5jydr1r95kf1bpk3ms618hgr26c62h34icy9i1dpm";
type = "gem";
};
version = "3.8.0";
};
cabin = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0b3b8j3iqnagjfn1261b9ncaac9g44zrx1kcg81yg4z9i513kici";
type = "gem";
};
version = "0.9.0";
};
childprocess = {
dependencies = ["ffi"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04cypmwyy4aj5p9b5dmpwiz5p1gzdpz6jaxb42fpckdbmkpvn6j1";
type = "gem";
};
version = "0.7.1";
};
clamp = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jb6l4scp69xifhicb5sffdixqkw8wgkk9k2q57kh2y36x1px9az";
type = "gem";
};
version = "1.0.1";
};
dotenv = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pgzlvs0sswnqlgfm9gkz2hlhkc0zd3vnlp2vglb1wbgnx37pjjv";
type = "gem";
};
version = "2.2.1";
};
ffi = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0";
type = "gem";
};
version = "1.9.18";
};
fpm = {
dependencies = ["arr-pm" "backports" "cabin" "childprocess" "clamp" "ffi" "json" "pleaserun" "ruby-xz" "stud"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09vzjsiwa2dlhph6fc519x5l0bfn2qfhayfld48cdl2561x5c7fb";
type = "gem";
};
version = "1.9.2";
};
hpricot = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jn8x9ch79gqmnzgyz78kppavjh5lqx0y0r6frykga2b86rz9s6z";
type = "gem";
};
version = "0.8.6";
};
insist = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bw3bdwns14mapbgb8cbjmr0amvwz8y72gyclq04xp43wpp5jrvg";
type = "gem";
};
version = "1.0.0";
};
io-like = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04nn0s2wmgxij3k760h3r8m1dgih5dmd9h4v1nn085yi824i5z6k";
type = "gem";
};
version = "0.3.0";
};
json = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
type = "gem";
};
version = "1.8.6";
};
mustache = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
type = "gem";
};
version = "0.99.8";
};
pleaserun = {
dependencies = ["cabin" "clamp" "dotenv" "insist" "mustache" "stud"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0hgnrl67zkqaxmfkwbyscawj4wqjm7h8khpbj58s6iw54wp3408p";
type = "gem";
};
version = "0.0.30";
};
rdiscount = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3";
type = "gem";
};
version = "2.2.0.1";
};
ronn = {
dependencies = ["hpricot" "mustache" "rdiscount"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07plsxxfx5bxdk72ii9za6km0ziqlq8jh3bicr4774dalga6zpw2";
type = "gem";
};
version = "0.7.3";
};
ruby-xz = {
dependencies = ["ffi" "io-like"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11bgpvvk0098ghvlxr4i713jmi2izychalgikwvdwmpb452r3ndw";
type = "gem";
};
version = "0.2.3";
};
stud = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qpb57cbpm9rwgsygqxifca0zma87drnlacv49cqs2n5iyi6z8kb";
type = "gem";
};
version = "0.0.23";
};
}

View File

@@ -1,8 +1,8 @@
{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper }:
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "goa-${version}";
version = "1.0.0";
version = "1.4.0";
goPackagePath = "github.com/goadesign/goa";
subPackages = [ "goagen" ];
@@ -11,7 +11,7 @@ buildGoPackage rec {
owner = "goadesign";
repo = "goa";
rev = "v${version}";
sha256 = "13401jf907z3qh11h9clb3z0i0fshwkmhx11fq9z6vx01x8x2in1";
sha256 = "1qx3c7dyq5wqxidfrk3ywc55fk64najj63f2jmfisfq4ixgwxdw9";
};
goDeps = ./deps.nix;

View File

@@ -1,39 +1,12 @@
# This file was generated by go2nix.
# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
[
{
goPackagePath = "github.com/armon/go-metrics";
fetch = {
type = "git";
url = "https://github.com/armon/go-metrics";
rev = "3df31a1ada83e310c2e24b267c8e8b68836547b4";
sha256 = "1l99f1bzvdhyqhnsrpi1pd07bps0msilzilrd7m4w7i1m5kra529";
};
}
{
goPackagePath = "github.com/dimfeld/httppath";
fetch = {
type = "git";
url = "https://github.com/dimfeld/httppath";
rev = "c8e499c3ef3c3e272ed8bdcc1ccf39f73c88debc";
sha256 = "0452zvrzjvy8pk5q6ykivz2cks082r4lmh7hghscxfqw6gf3siwi";
};
}
{
goPackagePath = "github.com/dimfeld/httptreemux";
fetch = {
type = "git";
url = "https://github.com/dimfeld/httptreemux";
rev = "96acf0909c0b45ebf4a25a816cedc6d317e63679";
sha256 = "0f9qbm1b8l7b21i2v8vmjyzfwf1mgkvxlk5250bwkp5i8n4ml2r6";
};
}
{
goPackagePath = "github.com/goadesign/goa";
fetch = {
type = "git";
url = "https://github.com/goadesign/goa";
rev = "ea323df387ea68f8ac9fd79336f523c25e12c92e";
sha256 = "13401jf907z3qh11h9clb3z0i0fshwkmhx11fq9z6vx01x8x2in1";
rev = "ee938bf735983d53694d79138ad9820efff94c92";
sha256 = "1c1kic8g3r78g6h4xl8n2ac1waxsb9fqz40k20ypi08k24mv3ha9";
};
}
{
@@ -41,8 +14,8 @@
fetch = {
type = "git";
url = "https://github.com/manveru/faker";
rev = "717f7cf83fb78669bfab612749c2e8ff63d5be11";
sha256 = "1p6laz0hnb2vhfvam83rz6vl2amajqa6nifnsj2lg3mcs9ga8c0f";
rev = "9fbc68a78c4dbc7914e1a23f88f126bea4383b97";
sha256 = "1cnrf4wdjhxd9fryhlp2krl9acz6dzwic89gshs49pg3aajlf4dy";
};
}
{
@@ -50,8 +23,8 @@
fetch = {
type = "git";
url = "https://github.com/satori/go.uuid";
rev = "0aa62d5ddceb50dbcb909d790b5345affd3669b6";
sha256 = "1vfzfcspanxcbpdpv49580rh6kamzcs3lm70xnx724mkwi41zi8w";
rev = "36e9d2ebbde5e3f13ab2e25625fd453271d6522e";
sha256 = "0nc0ggn0a6bcwdrwinnx3z6889x65c20a2dwja0n8can3xblxs35";
};
}
{
@@ -59,8 +32,8 @@
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "9c28e4bbd74e5c3ed7aacbc552b2cab7cfdfe744";
sha256 = "02bgp0yy9bi05k2in9axqi3db1c6mjffdsmki51pn9iryxz4zkh3";
rev = "4dab30cb33e6633c33c787106bafbfbfdde7842d";
sha256 = "1g7p7c2azqaxbfkx5yaznk0z1inqnajlbwv921k6vh8i1xdblxk5";
};
}
{
@@ -68,8 +41,8 @@
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "c7e63cf4530bcd3ba943729cee0efeff2ebea63f";
sha256 = "197mlkgb01zk86fxfl8r8maymcxsspqblg7hmngjxf7ivdid1i1l";
rev = "1ce0cc6db4029d97571db82f85092fccedb572ce";
sha256 = "02wsc01npnpc7srqw7rzaihn2hjmrkfy2x412fxbb675j2hk9cx6";
};
}
{
@@ -81,22 +54,13 @@
sha256 = "113kx47ryhyb803v8ckizlrc34cmwcwb0h28v34bahd2mir8nq3l";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "71a035914f99bb58fe82eac0f1289f10963d876c";
sha256 = "06m16c9vkwc8m2mcxcxa7p8mb26ikc810lgzd5m8k1r6lp3hc8wm";
};
}
{
goPackagePath = "golang.org/x/tools";
fetch = {
type = "git";
url = "https://go.googlesource.com/tools";
rev = "f1a397bba50dee815e8c73f3ec94ffc0e8df1a09";
sha256 = "1wy8nn2vg70n98g80i1zrk49129phyfbzxbicj748bmf82rnaxzg";
rev = "f60d9635b16a5a57b06eaa119614ba4df421966a";
sha256 = "1h587gvgwlpjdn8q3s8i1blfwfklqi0cpb0szj99w1mkgl0ads13";
};
}
{
@@ -104,8 +68,9 @@
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "31c299268d302dd0aa9a0dcf765a3d58971ac83f";
sha256 = "14jkpa8g0s448n2x5qdi05m59ncsdscby1wy2p089zxl9nqavm8h";
rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
};
}
]

View File

@@ -0,0 +1,27 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "lazygit-${version}";
version = "0.4";
goPackagePath = "github.com/jesseduffield/lazygit";
src = fetchFromGitHub {
owner = "jesseduffield";
repo = "lazygit";
rev = "v${version}";
sha256 = "0piljnwv778z7zc1pglkidiys1a3yv4d7z9wsrcj1nszlcn3ifyz";
};
postPatch = ''
rm -rf scripts
'';
meta = with stdenv.lib; {
inherit (src.meta) homepage;
description = "Simple terminal UI for git commands";
license = licenses.mit;
maintainers = with stdenv.lib.maintainers; [ fpletz ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@@ -1,46 +0,0 @@
{stdenv, fetchurl, ocaml, transitional ? false}:
let
pname = "camlp5";
webpage = http://pauillac.inria.fr/~ddr/camlp5/;
metafile = ./META;
in
assert !stdenv.lib.versionOlder "4.00" ocaml.version;
stdenv.mkDerivation rec {
name = "${pname}${if transitional then "_transitional" else ""}-${version}";
version = "5.15";
src = fetchurl {
url = "${webpage}/distrib/src/${pname}-${version}.tgz";
sha256 = "1sx5wlfpydqskm97gp7887p3avbl3vanlmrwj35wx5mbzj6kn9nq";
};
buildInputs = [ ocaml ];
prefixKey = "-prefix ";
preConfigure = "configureFlagsArray=(" + (if transitional then "--transitional" else "--strict") +
" --libdir $out/lib/ocaml/${ocaml.version}/site-lib)";
buildFlags = "world.opt";
postInstall = "cp ${metafile} $out/lib/ocaml/${ocaml.version}/site-lib/camlp5/META";
meta = {
description = "Preprocessor-pretty-printer for OCaml";
longDescription = ''
Camlp5 is a preprocessor and pretty-printer for OCaml programs.
It also provides parsing and printing tools.
'';
homepage = "${webpage}";
license = stdenv.lib.licenses.bsd3;
branch = "5";
platforms = ocaml.meta.platforms or [];
maintainers = [
stdenv.lib.maintainers.z77z
];
};
}

View File

@@ -1,10 +1,9 @@
{ stdenv, fetchzip, ocaml, findlib, yojson
, withEmacsMode ? false, emacs }:
{ stdenv, fetchzip, ocaml, findlib, dune, yojson }:
assert stdenv.lib.versionAtLeast ocaml.version "4.02";
let
version = "3.1.0";
version = "3.2.1";
in
stdenv.mkDerivation {
@@ -13,15 +12,12 @@ stdenv.mkDerivation {
src = fetchzip {
url = "https://github.com/ocaml/merlin/archive/v${version}.tar.gz";
sha256 = "1vf0c2mmflp94r8hshb44lsvnfdy03ld6mld2n79cdxr3zl24ci2";
sha256 = "1szv2b7d12ll5n6pvnhlv3a6vnlyrkpya4l9fiyyiwyvgd4xzxwf";
};
buildInputs = [ ocaml findlib yojson ]
++ stdenv.lib.optional withEmacsMode emacs;
buildInputs = [ ocaml findlib dune yojson ];
preConfigure = "mkdir -p $out/bin";
prefixKey = "--prefix ";
configureFlags = stdenv.lib.optional withEmacsMode "--enable-compiled-emacs-mode";
inherit (dune) installPhase;
meta = with stdenv.lib; {
description = "An editor-independent tool to ease the development of programs in OCaml";

View File

@@ -5,9 +5,9 @@
let
## fetchgit info
url = git://sourceware.org/git/systemtap.git;
rev = "4051c70c9318c837981384cbb23f3e9eb1bd0892";
sha256 = "0sd8n3j3rishks3gyqj2jyqhps7hmlfjyz8i0w8v98cczhhh04rq";
version = "2017.10.18";
rev = "release-${version}";
sha256 = "0hckbmrlcz5nj438409fmdjjaaqzf68r2242v10lkssw5daia1gj";
version = "3.3";
inherit (kernel) stdenv;
inherit (stdenv) lib;
@@ -18,12 +18,6 @@ let
src = fetchgit { inherit url rev sha256; };
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ elfutils gettext python2 python2Packages.setuptools ];
# FIXME: Workaround for bug in kbuild, where quoted -I"/foo" flags would get mangled in out-of-tree kbuild dirs
postPatch = ''
substituteInPlace buildrun.cxx --replace \
'o << "EXTRA_CFLAGS += -I\"" << s.runtime_path << "\"" << endl;' \
'o << "EXTRA_CFLAGS += -I" << s.runtime_path << endl;'
'';
enableParallelBuilding = true;
};
@@ -53,7 +47,7 @@ in runCommand "systemtap-${kernel.version}-${version}" {
};
} ''
mkdir -p $out/bin
for bin in $stapBuild/bin/*; do # hello emacs */
for bin in $stapBuild/bin/*; do
ln -s $bin $out/bin
done
rm $out/bin/stap $out/bin/dtrace

View File

@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
name = "rust-bindgen-${version}";
version = "0.40.0";
version = "0.42.2";
src = fetchFromGitHub {
owner = "rust-lang-nursery";
repo = "rust-bindgen";
rev = "v${version}";
sha256 = "0d7jqgi3aadwqcxiaz7axsq9h6n2i42yd3q0p1hc5l0kcdwwbj5k";
sha256 = "10h0h7x8yf4dsyw2p2nas2jg5p3i29np0y3rfzrdq898d70gvq4j";
};
cargoSha256 = "1rjyazhnk9xihqw1qzkkcrab627lqbj789g5d5nb8bn2hkbdx5d6";
cargoSha256 = "01jvi86xgz0r7ia9agnfpms6b6x68lzwj6f085m0w659i94acgpi";
libclang = llvmPackages.libclang.lib; #for substituteAll