Merge remote-tracking branch 'upstream/staging' into strictDeps

This commit is contained in:
John Ericson
2018-05-14 23:33:03 -04:00
4956 changed files with 139379 additions and 92174 deletions
@@ -0,0 +1,111 @@
{ fetchurl, stdenv, coreutils, makeWrapper }:
let version = "1.9.6"; in
stdenv.mkDerivation {
name = "ant-${version}";
buildInputs = [ makeWrapper ];
src = fetchurl {
url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
sha256 = "1cwd5vq175gyicw0hkm8idwa33zxwhf7xlxywaqxcqqdjql0jfx4";
};
contrib = fetchurl {
url = mirror://sourceforge/ant-contrib/ant-contrib-1.0b3-bin.tar.bz2;
sha256 = "96effcca2581c1ab42a4828c770b48d54852edf9e71cefc9ed2ffd6590571ad1";
};
installPhase =
''
mkdir -p $out/bin $out/lib/ant
mv * $out/lib/ant/
# Get rid of the manual (35 MiB). Maybe we should put this in a
# separate output. Keep the antRun script since it's vanilla sh
# and needed for the <exec/> task (but since we set ANT_HOME to
# a weird value, we have to move antRun to a weird location).
# Get rid of the other Ant scripts since we provide our own.
mv $out/lib/ant/bin/antRun $out/bin/
rm -rf $out/lib/ant/{manual,bin,WHATSNEW}
mkdir $out/lib/ant/bin
mv $out/bin/antRun $out/lib/ant/bin/
# Install ant-contrib.
unpackFile $contrib
cp -p ant-contrib/ant-contrib-*.jar $out/lib/ant/lib/
cat >> $out/bin/ant <<EOF
#! ${stdenv.shell} -e
ANT_HOME=$out/lib/ant
# Find the JDK by looking for javac. As a fall-back, find the
# JRE by looking for java. The latter allows just the JRE to be
# used with (say) ECJ as the compiler. Finally, allow the GNU
# JVM.
if [ -z "\$JAVA_HOME" ]; then
for i in javac java gij; do
if p="\$(type -p \$i)"; then
export JAVA_HOME="\$(${coreutils}/bin/dirname \$(${coreutils}/bin/dirname \$(${coreutils}/bin/readlink -f \$p)))"
break
fi
done
if [ -z "\$JAVA_HOME" ]; then
echo "\$0: cannot find the JDK or JRE" >&2
exit 1
fi
fi
if [ -z \$NIX_JVM ]; then
if [ -e \$JAVA_HOME/bin/java ]; then
NIX_JVM=\$JAVA_HOME/bin/java
elif [ -e \$JAVA_HOME/bin/gij ]; then
NIX_JVM=\$JAVA_HOME/bin/gij
else
NIX_JVM=java
fi
fi
LOCALCLASSPATH="\$ANT_HOME/lib/ant-launcher.jar\''${LOCALCLASSPATH:+:}\$LOCALCLASSPATH"
exec \$NIX_JVM \$NIX_ANT_OPTS \$ANT_OPTS -classpath "\$LOCALCLASSPATH" \
-Dant.home=\$ANT_HOME -Dant.library.dir="\$ANT_LIB" \
org.apache.tools.ant.launch.Launcher \$NIX_ANT_ARGS \$ANT_ARGS \
-cp "\$CLASSPATH" "\$@"
EOF
chmod +x $out/bin/ant
''; # */
meta = {
homepage = http://ant.apache.org/;
description = "A Java-based build tool";
longDescription = ''
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles.
Why another build tool when there is already make, gnumake, nmake, jam,
and others? Because all those tools have limitations that Ant's
original author couldn't live with when developing software across
multiple platforms. Make-like tools are inherently shell-based -- they
evaluate a set of dependencies, then execute commands not unlike what
you would issue in a shell. This means that you can easily extend
these tools by using or writing any program for the OS that you are
working on. However, this also means that you limit yourself to the
OS, or at least the OS type such as Unix, that you are working on.
Ant is different. Instead of a model where it is extended with
shell-based commands, Ant is extended using Java classes. Instead of
writing shell commands, the configuration files are XML-based, calling
out a target tree where various tasks get executed. Each task is run
by an object that implements a particular Task interface.
'';
license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.eelco ];
platforms = stdenv.lib.platforms.all;
};
}
@@ -1,6 +1,6 @@
{ fetchurl, stdenv, coreutils, makeWrapper }:
let version = "1.9.6"; in
let version = "1.10.2"; in
stdenv.mkDerivation {
name = "ant-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
sha256 = "1cwd5vq175gyicw0hkm8idwa33zxwhf7xlxywaqxcqqdjql0jfx4";
sha256 = "0662qammjvibh9kgkxzadkayfn2r7iwnagbwaw28crqqclrb2rp1";
};
contrib = fetchurl {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
description = "Build tool that builds code quickly and reliably";
license = licenses.asl20;
maintainers = with maintainers; [ cstrahan philandstuff ];
platforms = platforms.unix;
platforms = platforms.linux;
};
name = "bazel-${version}";
@@ -6,7 +6,7 @@
stdenv.mkDerivation rec {
version = "0.10.1";
version = "0.12.0";
meta = with stdenv.lib; {
homepage = "https://github.com/bazelbuild/bazel/";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
sha256 = "0rz6zvkzyglf0mmc178avf52zynz487m4v0089ilsbrgv7v4i0kh";
sha256 = "3b3e7dc76d145046fdc78db7cac9a82bc8939d3b291e53a7ce85315feb827754";
};
sourceRoot = ".";
@@ -14,11 +14,11 @@ let
package = pythonPackages.buildPythonApplication rec {
name = "${pname}-${version}";
pname = "buildbot";
version = "1.0.0";
version = "1.1.1";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0y7gpymxl09gd9dyqj7zqhaihpl9da1v8ppxi4r161ywd8jv9b1g";
sha256 = "1vcmanx3ma3cfyiddjcmsnx6qmxd3m5blqax04rcsiq2zq4dmzir";
};
buildInputs = with pythonPackages; [
@@ -76,6 +76,9 @@ let
./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)"
'';
@@ -3,11 +3,11 @@
buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-pkg";
version = "1.0.0";
version = "1.1.1";
src = fetchPypi {
inherit pname version;
sha256 = "1rs2x0b2v92xfsfk0f2nr9x8lz5baawf768s58brj4jiab6mq312";
sha256 = "7b255f5ec97946c3d32e822b8fcbff0459cfe4f94fb26ee4813ffd80440c93e8";
};
propagatedBuildInputs = [ setuptools ];
@@ -11,7 +11,7 @@
src = pythonPackages.fetchPypi {
inherit pname version format;
sha256 = "0nmrq50c5ib185rpb8ai1mm7gjq2mjvxik1kqrjfa62i1ia9ikyj";
sha256 = "01v9w8iy9q6fwrmz6db7fanjixax7whn74k67bj0czrbjjkpfzvb";
};
meta = with stdenv.lib; {
@@ -29,7 +29,7 @@
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "1laz7l7cbbz0czb6skxw314bd2qk2f63qw3n2rs7m7v11gd9cdll";
sha256 = "1cwxkzpgwzk9b361rj980bbnmhzzsr46pgf94zqpg3na8xm6hpwj";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -49,7 +49,7 @@
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0mmri8c4n1zwxc1dx2a11yllrmnwqqxjvvil9224lbs98mpchppi";
sha256 = "0ival58f50128315d0nck63pzya2zm7q6hvgmxfbjl0my8il9p2l";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -69,7 +69,7 @@
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0nwlw2m3qfifia6gy3d4lrnycra50k98ax071p2zjqknanh563vr";
sha256 = "0jiwfb699nqbmpcm88y187ig4ha6p7d4v98mjwa9blhm54dk8kh1";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -89,7 +89,7 @@
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "1zml9bd910zwcby4vr3lmzap2grinha2w5zgb2cmixmz7hfrqswp";
sha256 = "00mfn24gbwr2p3n7nsijzv949l7hiksiafhma18nnh40r8f4l5f2";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@@ -97,7 +97,7 @@
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot WSGI dashboards Plugin";
maintainers = with maintainers; [ akazakov ];
maintainers = with maintainers; [ ];
license = licenses.gpl2;
};
};
@@ -3,11 +3,11 @@
pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot-worker";
version = "1.0.0";
version = "1.1.1";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0ws31ypmksah1c83h4npwg560p8v7n9j6l94p79y5pispjsgzqzl";
sha256 = "02xfzlcy3cnvc3cmpl9gs6209a3qm71yz5pahbws9jcyhv6fbrrm";
};
buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
@@ -1,11 +1,10 @@
{ stdenv, fetchurl, fetchpatch, replace, curl, expat, zlib, bzip2
, useNcurses ? false, ncurses, useQt4 ? false, qt4, wantPS ? false, ps ? null
, useNcurses ? false, ncurses, useQt4 ? false, qt4, ps
, buildPlatform, hostPlatform
}:
with stdenv.lib;
assert wantPS -> (ps != null);
assert stdenv ? cc;
assert stdenv.cc ? libc;
@@ -29,25 +28,30 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches =
[(fetchpatch { # see http://www.cmake.org/Bug/view.php?id=13959
[(fetchpatch { # see https://www.cmake.org/Bug/view.php?id=13959
name = "FindFreetype-2.5.patch";
url = "http://www.cmake.org/Bug/file_download.php?file_id=4660&type=bug";
url = "https://www.cmake.org/Bug/file_download.php?file_id=4660&type=bug";
sha256 = "136z63ff83hnwd247cq4m8m8164pklzyl5i2csf5h6wd8p01pdkj";
})] ++
# Don't search in non-Nix locations such as /usr, but do search in our libc.
[ ./search-path.patch ] ++
optional (hostPlatform != buildPlatform) (fetchurl {
name = "fix-darwin-cross-compile.patch";
url = "http://public.kitware.com/Bug/file_download.php?"
url = "https://public.kitware.com/Bug/file_download.php?"
+ "file_id=4981&type=bug";
sha256 = "16acmdr27adma7gs9rs0dxdiqppm15vl3vv3agy7y8s94wyh4ybv";
});
postPatch = ''
substituteInPlace Utilities/cmlibarchive/CMakeLists.txt \
--replace '"-framework CoreServices"' '""'
'';
buildInputs = [ curl expat zlib bzip2 ]
++ optional useNcurses ncurses
++ optional useQt4 qt4;
propagatedBuildInputs = optional wantPS ps;
propagatedBuildInputs = [ ps ];
CMAKE_PREFIX_PATH = concatStringsSep ":"
(concatMap (p: [ (p.dev or p) (p.out or p) ]) buildInputs);
@@ -74,9 +78,9 @@ stdenv.mkDerivation rec {
'';
meta = {
homepage = http://www.cmake.org/;
homepage = https://cmake.org;
description = "Cross-Platform Makefile Generator";
platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.linux;
platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ ];
};
}
@@ -105,6 +105,7 @@ stdenv.mkDerivation rec {
# CMAKE_SYSTEM_NAME, etc.
configurePlatforms = [ ];
doCheck = false; # fails
meta = with stdenv.lib; {
homepage = http://www.cmake.org/;
@@ -41,6 +41,20 @@ cmakeConfigurePhase() {
cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLAB) $cmakeFlags"
cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags"
# on macOS we want to prefer Unix-style headers to Frameworks
# because we usually do not package the framework
cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags"
# we never want to use the global macOS SDK
cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags"
# disable OSX deployment target
# we don't want our binaries to have a "minimum" OSX version
cmakeFlags="-DCMAKE_OSX_DEPLOYMENT_TARGET= $cmakeFlags"
# correctly detect our clang compiler
cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags"
# This installs shared libraries with a fully-specified install
# name. By default, cmake installs shared libraries with just the
# basename as the install name, which means that, on Darwin, they
@@ -1,27 +1,51 @@
{ lib, buildPythonApplication, fetchPypi
, requests, fasteners, pyyaml, pyjwt, colorama, patch
, bottle, pluginbase, six, distro, pylint, node-semver
, future, pygments, mccabe
}:
{ lib, fetchpatch, python }:
buildPythonApplication rec {
version = "0.28.1";
let newPython = python.override {
packageOverrides = self: super: {
distro = super.distro.overridePythonAttrs (oldAttrs: rec {
version = "1.1.0";
src = oldAttrs.src.override {
inherit version;
sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j";
};
});
node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
version = "0.2.0";
src = oldAttrs.src.override {
inherit version;
sha256 = "1080pdxrvnkr8i7b7bk0dfx6cwrkkzzfaranl7207q6rdybzqay3";
};
});
};
};
in newPython.pkgs.buildPythonApplication rec {
version = "1.2.3";
pname = "conan";
src = fetchPypi {
src = newPython.pkgs.fetchPypi {
inherit pname version;
sha256 = "0zf564iqh0099yd779f9fgk21qyp87d7cmgfj34hmncf8y3qh32a";
sha256 = "623e92d99cd0f4ec92552b23af66a6bb066071e213659f502480bb9a96d7be23";
};
propagatedBuildInputs = [
requests fasteners pyyaml pyjwt colorama patch
bottle pluginbase six distro pylint node-semver
future pygments mccabe
checkInputs = with newPython.pkgs; [
nose
parameterized
mock
webtest
codecov
];
# enable tests once all of these pythonPackages available:
# [ nose nose_parameterized mock webtest codecov ]
doCheck = false;
propagatedBuildInputs = with newPython.pkgs; [
requests fasteners pyyaml pyjwt colorama patch
bottle pluginbase six distro pylint node-semver
future pygments mccabe deprecation
];
preCheck = ''
export HOME="$TMP/conan-home"
mkdir -p "$HOME"
'';
meta = with lib; {
homepage = https://conan.io;
@@ -3,14 +3,14 @@
let
name = "doit";
version = "0.30.3";
version = "0.31.1";
in python3Packages.buildPythonApplication {
name = "${name}-${version}";
src = fetchurl {
url = "mirror://pypi/d/${name}/${name}-${version}.tar.gz";
sha256 = "1fcsslc3mc4bszq5xdqbxv37720s1s31d6pbfwc2iyxk1x2wi219";
sha256 = "1spm8vfjh4kvalaj0i2ggbdln1yy5k68d8mfwfnpqlzxxx4ikl5s";
};
buildInputs = with python3Packages; [ mock pytest ];
@@ -1,77 +1,135 @@
{ stdenv, lib, fetchgit, fetchurl, libevent, ninja, python }:
{ stdenv, lib, fetchgit, fetchzip, fetchpatch
, libevent, ninja, python, darwin }:
let
depsGit = {
"tools/gn" = fetchgit {
url = "https://chromium.googlesource.com/chromium/src/tools/gn";
rev = "d0c518db129975ce88ff1de26c857873b0619c4b";
sha256 = "0l15vzmjyx6bwlz1qhn3fy7yx3qzzxr3drnkj3l0p0fmyxza52vx";
rev = "0fa417a0d2d8484e9a5a636e3301da322f586601";
sha256 = "0pigcl14yc4aak6q1ghfjxdz2ah4fg4m2r5y3asw2rz6mpr5y9z0";
};
"base" = fetchgit {
url = "https://chromium.googlesource.com/chromium/src/base";
rev = "bc6e3ce8ca01b894751e1f7b22b561e3ae2e7f17";
sha256 = "1yl49v6nxbrfms52xf7fiwh7d4301m2aj744pa3hzzh989c5j6g5";
rev = "ab1d7c3b92ce9c9bc756bdefb8338360d1a33a1e";
sha256 = "15wis6qg9ka62k6v1vamg0bp3v5vkpapg485jsn4bbfcaqp6di0f";
};
"build" = fetchgit {
url = "https://chromium.googlesource.com/chromium/src/build";
rev = "e934a19ae908081fba13769924e4ea45a7a451ce";
sha256 = "0jhy418vaiin7djg9zvk83f8zhasigki4442x5j7gkmgmgmyc4am";
rev = "8d44c08a4c9997695db8098198bdd5026bc7a6f9";
sha256 = "19sajgf55xfmvnwvy2ss7g6pyljp751cfsws30w415m6m00lmpxl";
};
"config" = fetchgit {
url = "https://chromium.googlesource.com/chromium/src/build/config";
rev = "df16c6a2c070704b0a25efe46ee9af16de1e65b3";
sha256 = "1x18syzz1scwhd8lf448hy5lnfpq118l403x9qmwm0np318w09wg";
rev = "14116c0cdcb9e28995ca8bb384a12e5c9dbd1dbb";
sha256 = "04nif0lm4wcy05b7xhal023874s4r0iq067q57cgwdm72i2gml40";
};
"testing/gtest" = fetchgit {
url = "https://chromium.googlesource.com/chromium/testing/gtest";
rev = "585ec31ea716f08233a815e680fc0d4699843938";
sha256 = "0csn1cza66851nmxxiw42smsm3422mx67vcyykwn0a71lcjng6rc";
};
"third_party/apple_apsl" = fetchzip {
url = "https://chromium.googlesource.com/chromium/src/third_party/+archive/8e6ccb8c74db6dfa15dd21401ace3ac96c054cf7/apple_apsl.tar.gz";
sha256 = "1vgcg741lwz84kdy0qc5wn9dxx3j9zh6a9d185fpygdsipwikqv8";
stripRoot = false;
};
"buildtools/third_party/libc++/trunk" = fetchgit {
url = "https://chromium.googlesource.com/chromium/llvm-project/libcxx";
rev = "ece1de8658d749e19c12cacd4458cc330eca94e3";
sha256 = "1nlyvfkzhchwv9b18bh82jcamqv3acj26ah9ajs31f2dql05amhg";
};
"buildtools/third_party/libc++abi/trunk" = fetchgit {
url = "https://chromium.googlesource.com/chromium/llvm-project/libcxxabi";
rev = "52c7a3760aef1df328a9bc957f686410872f0dc0";
sha256 = "1aam539j01381q27b7xhij18pz3h0lhw08hglvqq4hgvlqx5cn2s";
};
};
in
stdenv.mkDerivation rec {
name = "gn";
version = "0.0.0.20170629";
sourceRoot = ".";
in stdenv.mkDerivation {
name = "gn";
version = "20180423";
sourceRoot = ".";
unpackPhase = ''
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
mkdir -p $sourceRoot/${n}
unpackPhase = ''
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
mkdir -p $sourceRoot/${n}
if [ -d ${v} ]; then
cp -r ${v}/* $sourceRoot/${n}
'') depsGit)}
'';
else
mkdir -p $sourceRoot/${n}
pushd $sourceRoot/${n}
unpackFile ${v}
popd
fi
'') depsGit)}
postPatch = ''
# Patch shebands (for sandbox build)
chmod u+w -R build
patchShebangs build
chmod u+w -R $sourceRoot
'';
# Patch out Chromium-bundled libevent
chmod u+w tools/gn/bootstrap tools/gn/bootstrap/bootstrap.py
sed -i -e '/static_libraries.*libevent/,/^ *\]\?[})]$/d' \
tools/gn/bootstrap/bootstrap.py
'';
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/Eloston/ungoogled-chromium/master/resources/patches/ungoogled-chromium/macos/fix-gn-bootstrap.patch";
sha256 = "1h8jgxznm7zrxlzb4wcfx4zx4lyvfrmpd0r7cd7h0s23wn8ibb3a";
})
];
NIX_LDFLAGS = "-levent";
postPatch = ''
# Disable libevent bootstrapping (we will provide it).
sed -i -e '/static_libraries.*libevent/,/^ *\]\?[})]$/d' \
tools/gn/bootstrap/bootstrap.py
nativeBuildInputs = [ ninja python ];
buildInputs = [ libevent ];
# FIXME Needed with old Apple SDKs
substituteInPlace base/mac/foundation_util.mm \
--replace "NSArray<NSString*>*" "NSArray*"
substituteInPlace base/mac/sdk_forward_declarations.h \
--replace "NSDictionary<VNImageOption, id>*" "NSDictionary*" \
--replace "NSArray<VNRequest*>*" "NSArray*" \
--replace "typedef NSString* VNImageOption NS_STRING_ENUM" "typedef NSString* VNImageOption"
buildPhase = ''
python tools/gn/bootstrap/bootstrap.py -s
'';
# Patch shebangs (for sandbox build)
patchShebangs build
'';
installPhase = ''
install -vD out/Release/gn "$out/bin/gn"
'';
# FIXME again this shouldn't be necessary but I can't figure out a better way
NIX_CFLAGS_COMPILE = "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10";
meta = with stdenv.lib; {
description = "A meta-build system that generates NinjaBuild files";
homepage = https://chromium.googlesource.com/chromium/src/tools/gn;
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = [ maintainers.stesie ];
};
}
NIX_LDFLAGS = "-levent";
nativeBuildInputs = [ ninja python ];
buildInputs = [ libevent ]
# FIXME These dependencies shouldn't be needed but can't find a way
# around it. Chromium pulls this in while bootstrapping GN.
++ lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
libobjc
cctools
# frameworks
ApplicationServices
Foundation
AppKit
ImageCaptureCore
CoreBluetooth
IOBluetooth
CoreWLAN
Quartz
Cocoa
]);
buildPhase = ''
python tools/gn/bootstrap/bootstrap.py -s
'';
installPhase = ''
install -vD out/Release/gn "$out/bin/gn"
'';
meta = with lib; {
description = "A meta-build system that generates NinjaBuild files";
homepage = https://chromium.googlesource.com/chromium/src/tools/gn;
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ stesie matthewbauer ];
};
}
@@ -33,6 +33,9 @@ stdenv.mkDerivation {
./construct-command-line.patch
./long-command-line.patch
./darwin-library_search-dylib.patch
# Fix support for glibc 2.27's glob
../4.2/glibc-2.27-glob.patch
];
patchFlags = "-p0";
@@ -20,6 +20,8 @@ stdenv.mkDerivation {
# included Makefiles, don't look in /usr/include and friends.
./impure-dirs.patch
./pselect.patch
# Fix support for glibc 2.27's glob, inspired by http://www.linuxfromscratch.org/lfs/view/8.2/chapter05/make.html
./glibc-2.27-glob.patch
];
nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
@@ -0,0 +1,32 @@
diff -Naur glob/glob.c glob/glob.c
--- glob/glob.c 2013-10-20 13:14:38.000000000 -0400
+++ glob/glob.c 2018-03-16 14:32:38.483496170 -0400
@@ -208,28 +208,9 @@
#endif /* __GNU_LIBRARY__ || __DJGPP__ */
-#if !defined __alloca && !defined __GNU_LIBRARY__
-
-# ifdef __GNUC__
-# undef alloca
-# define alloca(n) __builtin_alloca (n)
-# else /* Not GCC. */
-# ifdef HAVE_ALLOCA_H
# include <alloca.h>
-# else /* Not HAVE_ALLOCA_H. */
-# ifndef _AIX
-# ifdef WINDOWS32
-# include <malloc.h>
-# else
-extern char *alloca ();
-# endif /* WINDOWS32 */
-# endif /* Not _AIX. */
-# endif /* sparc or HAVE_ALLOCA_H. */
-# endif /* GCC. */
-
# define __alloca alloca
-#endif
#ifndef __GNU_LIBRARY__
# define __stat stat
@@ -1,24 +0,0 @@
From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Sun, 19 Nov 2017 15:09:16 -0500
Subject: * configure.ac: Support GLIBC glob interface version 2
---
configure.ac | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff -Naur a/configure b/configure
--- configure 2016-06-10 19:03:21.000000000 -0400
+++ configure 2018-02-18 04:40:32.971371555 -0500
@@ -11481,10 +11481,9 @@
#include <glob.h>
#include <fnmatch.h>
-#define GLOB_INTERFACE_VERSION 1
#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
# include <gnu-versions.h>
-# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
gnu glob
# endif
#endif
@@ -1,69 +0,0 @@
{ stdenv, fetchurl, texinfo, guileSupport ? false, pkgconfig , guile ? null, autoreconfHook }:
assert guileSupport -> ( guile != null );
let
version = "4.2.90";
revision = "48c8a116a914a325a0497721f5d8b58d5bba34d4";
revCount = "2491";
shortRev = "48c8a11";
baseVersion = "4.2.1";
baseTarball = fetchurl {
url = "mirror://gnu/make/make-${baseVersion}.tar.bz2";
sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn";
};
in
stdenv.mkDerivation {
name = "gnumake-${version}pre${revCount}_${shortRev}";
src = fetchurl {
url = "http://git.savannah.gnu.org/cgit/make.git/snapshot/make-${revision}.tar.gz";
sha256 = "0k6yvhr2a5lh1qhflv02dyvq5p20ikgaakm8w6gr4xmkspljwpwx";
};
postUnpack = ''
unpackFile ${baseTarball}
cp make-${baseVersion}/po/*.po $sourceRoot/po
cp make-${baseVersion}/doc/{fdl,make-stds}.texi $sourceRoot/doc
'';
patches = [
# Purity: don't look for library dependencies (of the form `-lfoo') in /lib
# and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
# included Makefiles, don't look in /usr/include and friends.
./impure-dirs-head.patch
];
postPatch = ''
# These aren't in the 4.2.1 tarball yet.
sed -i -e 's/sr//' -e 's/zh_TW//' po/LINGUAS
'';
nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ];
buildInputs = stdenv.lib.optional guileSupport guile;
configureFlags = stdenv.lib.optional guileSupport "--with-guile";
outputs = [ "out" "man" "info" ];
meta = with stdenv.lib; {
homepage = http://www.gnu.org/software/make/;
description = "A tool to control the generation of non-source files from sources";
license = licenses.gpl3Plus;
longDescription = ''
Make is a tool which controls the generation of executables and
other non-source files of a program from the program's source files.
Make gets its knowledge of how to build your program from a file
called the makefile, which lists each of the non-source files and
how to compute it from other files. When you write a program, you
should write a makefile for it, so that it is possible to use Make
to build and install the program.
'';
platforms = platforms.all;
maintainers = [ maintainers.vrthra ];
};
}
@@ -1,31 +0,0 @@
diff -Naur a/src/read.c b/src/read.c
--- a/src/read.c 2017-11-19 15:17:47.000000000 -0500
+++ b/src/read.c 2018-02-19 08:53:51.548755213 -0500
@@ -109,10 +109,12 @@
#endif
INCLUDEDIR,
#ifndef _AMIGA
+#if 0
"/usr/gnu/include",
"/usr/local/include",
"/usr/include",
#endif
+#endif
0
};
diff -Naur a/src/remake.c b/src/remake.c
--- a/src/remake.c 2017-11-19 15:17:47.000000000 -0500
+++ b/src/remake.c 2018-02-19 08:54:08.304101943 -0500
@@ -1601,9 +1601,11 @@
static const char *dirs[] =
{
#ifndef _AMIGA
+#if 0
"/lib",
"/usr/lib",
#endif
+#endif
#if defined(WINDOWS32) && !defined(LIBDIR)
/*
* This is completely up to the user at product install time. Just define
@@ -52,12 +52,12 @@ rec {
};
gradle_latest = gradleGen rec {
name = "gradle-4.6";
name = "gradle-4.7";
nativeVersion = "0.14";
src = fetchurl {
url = "http://services.gradle.org/distributions/${name}-bin.zip";
sha256 = "05drn7a9d2blbmd3l0443bpf5qzf5frwnl9ww0bha1qfng95zgcq";
sha256 = "016vvjvk3gfasv3h6dxxp48kp9v4ariqj280bijn835mr1yhi9gw";
};
};
@@ -1,16 +0,0 @@
# NOTE: this file is copied from the upstream repository for this package.
# Please submit any changes you make here to https://github.com/timbertson/gup/
{ stdenv, lib, python, which, pychecker ? null }:
{ src, version, meta ? {} }:
stdenv.mkDerivation {
inherit src meta;
name = "gup-${version}";
buildInputs = lib.remove null [ python which pychecker ];
SKIP_PYCHECKER = pychecker == null;
buildPhase = "make python";
installPhase = ''
mkdir $out
cp -r python/bin $out/bin
'';
}
@@ -1,21 +1,38 @@
{ stdenv, fetchFromGitHub, lib, python, which }:
let
{ stdenv, fetchFromGitHub, nix-update-source, lib, python, which, pychecker ? null }:
stdenv.mkDerivation rec {
version = "0.7.0";
src = fetchFromGitHub {
sha256 = "1pwnmlq2pgkkln9sgz4wlb9dqlqw83bkf105qljnlvggc21zm3pv";
rev = "version-${version}";
repo = "gup";
owner = "timbertson";
repo = "gup";
rev = "version-0.7.0";
sha256 = "1pwnmlq2pgkkln9sgz4wlb9dqlqw83bkf105qljnlvggc21zm3pv";
};
in
import ./build.nix
{ inherit stdenv lib python which; }
{ inherit src version;
meta = {
inherit (src.meta) homepage;
description = "A better make, inspired by djb's redo";
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = [ stdenv.lib.maintainers.timbertson ];
platforms = stdenv.lib.platforms.all;
};
}
name = "gup-${version}";
buildInputs = lib.remove null [ python which pychecker ];
SKIP_PYCHECKER = pychecker == null;
buildPhase = "make python";
installPhase = ''
mkdir $out
cp -r python/bin $out/bin
'';
passthru.updateScript = ''
set -e
echo
cd ${toString ./.}
${nix-update-source}/bin/nix-update-source \
--prompt version \
--replace-attr version \
--set owner timbertson \
--set repo gup \
--set type fetchFromGitHub \
--set rev 'version-{version}' \
--modify-nix default.nix
'';
meta = {
inherit (src.meta) homepage;
description = "A better make, inspired by djb's redo";
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = [ stdenv.lib.maintainers.timbertson ];
platforms = stdenv.lib.platforms.all;
};
}
@@ -1,11 +1,11 @@
{ stdenv, fetchFromGitHub, gcc }:
{ stdenv, fetchFromGitHub, makeWrapper, gcc, ncurses }:
stdenv.mkDerivation rec {
name = "icmake-${version}";
version = "9.02.06";
version = "9.02.07";
src = fetchFromGitHub {
sha256 = "1hs7fhqpkhlrjvjhfarf5bmxl8dw3r0immzdib27gwh3sfzgpx0b";
sha256 = "1q3rwri5s1sqm4h75bahkjnlym4bk2ygg4fb75yrniwnj8rhdp12";
rev = version;
repo = "icmake";
owner = "fbb-git";
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
sourceRoot=$(echo */icmake)
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gcc ];
preConfigure = ''
@@ -30,6 +31,9 @@ stdenv.mkDerivation rec {
installPhase = ''
./icm_install all /
wrapProgram $out/bin/icmbuild \
--prefix PATH : ${ncurses}/bin
'';
meta = with stdenv.lib; {
@@ -0,0 +1,25 @@
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -282,18 +282,13 @@
'''
if option.endswith('dir') and os.path.isabs(value) and \
option not in builtin_dir_noprefix_options:
- # Value must be a subdir of the prefix
# commonpath will always return a path in the native format, so we
# must use pathlib.PurePath to do the same conversion before
# comparing.
- if os.path.commonpath([value, prefix]) != str(PurePath(prefix)):
- m = 'The value of the {!r} option is {!r} which must be a ' \
- 'subdir of the prefix {!r}.\nNote that if you pass a ' \
- 'relative path, it is assumed to be a subdir of prefix.'
- raise MesonException(m.format(option, value, prefix))
- # Convert path to be relative to prefix
- skip = len(prefix) + 1
- value = value[skip:]
+ if os.path.commonpath([value, prefix]) == str(PurePath(prefix)):
+ # Convert path to be relative to prefix
+ skip = len(prefix) + 1
+ value = value[skip:]
return value
def init_builtins(self, options):
@@ -1,12 +1,14 @@
{ lib, python3Packages }:
python3Packages.buildPythonApplication rec {
version = "0.44.0";
{ lib, python3Packages, stdenv, ninja, pkgconfig, targetPlatform, writeTextDir, substituteAll }: let
targetPrefix = lib.optionalString stdenv.isCross
(targetPlatform.config + "-");
in python3Packages.buildPythonApplication rec {
version = "0.45.1";
pname = "meson";
name = "${pname}-${version}";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "1rpqp9iwbvr4xvfdh3iyfh1ha274hbb66jbgw3pa5a73x4d4ilqn";
sha256 = "154kxx49dbw7p30qfg1carb3mgqxx9hyy1r0yzfsg07hz1n2sq14";
};
postFixup = ''
@@ -19,19 +21,60 @@ python3Packages.buildPythonApplication rec {
'';
patches = [
# Upstream insists on not allowing bindir and other dir options
# outside of prefix for some reason:
# https://github.com/mesonbuild/meson/issues/2561
# We remove the check so multiple outputs can work sanely.
./allow-dirs-outside-of-prefix.patch
# Unlike libtool, vanilla Meson does not pass any information
# about the path library will be installed to to g-ir-scanner,
# breaking the GIR when path other than ${!outputLib}/lib is used.
# We patch Meson to add a --fallback-library-path argument with
# library install_dir to g-ir-scanner.
./gir-fallback-path.patch
# In common distributions, RPATH is only needed for internal libraries so
# meson removes everything else. With Nix, the locations of libraries
# are not as predictable, therefore we need to keep them in the RPATH.
# At the moment we are keeping the paths starting with /nix/store.
# https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
(substituteAll {
src = ./fix-rpath.patch;
inherit (builtins) storeDir;
})
# No one will ever need more than 128 bytes of data structure
# https://github.com/mesonbuild/meson/issues/3113
./overly-strict-size-check.patch
];
postPatch = ''
sed -i -e 's|e.fix_rpath(install_rpath)||' mesonbuild/scripts/meson_install.py
setupHook = ./setup-hook.sh;
crossFile = writeTextDir "cross-file.conf" ''
[binaries]
c = '${targetPrefix}cc'
cpp = '${targetPrefix}c++'
ar = '${targetPrefix}ar'
strip = '${targetPrefix}strip'
pkgconfig = 'pkg-config'
[properties]
needs_exe_wrapper = true
[host_machine]
system = '${targetPlatform.parsed.kernel.name}'
cpu_family = '${targetPlatform.parsed.cpu.family}'
cpu = '${targetPlatform.parsed.cpu.name}'
endian = ${if targetPlatform.isLittleEndian then "'little'" else "'big'"}
'';
setupHook = ./setup-hook.sh;
# 0.45 update enabled tests but they are failing
doCheck = false;
# checkInputs = [ ninja pkgconfig ];
# checkPhase = "python ./run_project_tests.py";
inherit (stdenv) cc isCross;
meta = with lib; {
homepage = http://mesonbuild.com;
@@ -0,0 +1,32 @@
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -846,8 +848,10 @@
if paths != '':
paths += ':'
paths += build_rpath
- if len(paths) < len(install_rpath):
- padding = 'X' * (len(install_rpath) - len(paths))
+ store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), paths.split(':')))
+ extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths)
+ if extra_space_needed > 0:
+ padding = 'X' * extra_space_needed
if not paths:
paths = padding
else:
--- a/mesonbuild/scripts/depfixer.py
+++ b/mesonbuild/scripts/depfixer.py
@@ -300,6 +300,14 @@
return
self.bf.seek(rp_off)
old_rpath = self.read_str()
+
+ if new_rpath:
+ new_rpath += b':'
+ else:
+ new_rpath = b''
+
+ new_rpath += b':'.join(filter(lambda path: path.startswith(b'@storeDir@'), old_rpath.split(b':')))
+
if len(old_rpath) < len(new_rpath):
sys.exit("New rpath must not be longer than the old one.")
# The linker does read-only string deduplication. If there is a
@@ -0,0 +1,12 @@
diff -Naur a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
--- a/mesonbuild/compilers/c.py 2017-12-10 08:37:19.000000000 -0500
+++ b/mesonbuild/compilers/c.py 2018-03-24 07:46:04.739929307 -0400
@@ -406,7 +406,7 @@
}}'''
if not self.compiles(t.format(**fargs), env, extra_args, dependencies):
return -1
- return self.cross_compute_int('sizeof(%s)' % typename, 1, 128, None, prefix, env, extra_args, dependencies)
+ return self.cross_compute_int('sizeof(%s)' % typename, 1, 1024, None, prefix, env, extra_args, dependencies)
def sizeof(self, typename, prefix, env, extra_args=None, dependencies=None):
if extra_args is None:
@@ -6,11 +6,24 @@ mesonConfigurePhase() {
fi
# Build release by default.
mesonFlags="--buildtype=${mesonBuildType:-release} $mesonFlags"
if [ -n "@isCross@" ]; then
crossMesonFlags="--cross-file=@crossFile@/cross-file.conf"
fi
# See multiple-outputs.sh and mesons coredata.py
mesonFlags="\
--libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
--bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
--includedir=${!outputInclude}/include \
--mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
--localedir=${!outputLib}/share/locale \
$mesonFlags"
mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-release} $mesonFlags"
echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
meson build $mesonFlags "${mesonFlagsArray[@]}"
CC=@cc@/bin/cc CXX=@cc@/bin/c++ meson build $mesonFlags "${mesonFlagsArray[@]}"
cd build
if ! [[ -v enableParallelBuilding ]]; then
@@ -29,7 +42,7 @@ fi
mesonCheckPhase() {
runHook preCheck
meson test
meson test --print-errorlogs
runHook postCheck
}
@@ -4,7 +4,7 @@ with stdenv.lib;
with pythonPackages;
let
version = "1.3.0";
version = "1.6.0";
in buildPythonApplication rec {
inherit version;
pname = "pantsbuild.pants";
@@ -12,7 +12,7 @@ in buildPythonApplication rec {
src = fetchPypi {
inherit pname version;
sha256 = "18fcf9047l9k006wz21g525p1w5avyjabmabh0giyz22xnm8g5gp";
sha256 = "0ahvcj33xribypgyh515mb3ack1djr0cq27nlyk0qhwgwv6acfnj";
};
prePatch = ''
@@ -24,10 +24,10 @@ in buildPythonApplication rec {
dontStrip = true;
propagatedBuildInputs = [
twitter-common-collections setproctitle setuptools six ansicolors
packaging pathspec scandir twitter-common-dirutil psutil requests
pystache pex docutils markdown pygments twitter-common-confluence
fasteners coverage pywatchman futures cffi
twitter-common-collections setproctitle ansicolors packaging pathspec
scandir twitter-common-dirutil psutil requests pystache pex docutils
markdown pygments twitter-common-confluence fasteners pywatchman
futures cffi subprocess32 contextlib2 faulthandler pyopenssl wheel
];
meta = {
@@ -1,12 +1,12 @@
{ stdenv, fetchurl, makeWrapper }:
stdenv.mkDerivation rec {
version = "1.2.6";
version = "2.0.3";
name = "redo-sh-${version}";
src = fetchurl {
url = "http://news.dieweltistgarnichtso.net/bin/archives/redo-sh.tar.gz";
sha256 = "1cwrk4v22rb9410rzyb4py4ncg01n6850l80s74bk3sflbw974wp";
sha256 = "1ycx3hik7vnlbwxacn1dzr48fwsn2ials0sg6k9l3gcyrha5wf1n";
};
buildInputs = [ makeWrapper ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
homepage = http://bashdb.sourceforge.net/remake/;
license = stdenv.lib.licenses.gpl3;
description = "GNU Make with comprehensible tracing and a debugger";
platforms = stdenv.lib.platforms.linux;
platforms = with stdenv.lib.platforms; linux ++ darwin;
maintainers = with stdenv.lib.maintainers; [ bjornfor ];
};
}
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
name = "sbt-${version}";
version = "1.1.1";
version = "1.1.4";
src = fetchurl {
urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
"https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
"https://cocl.us/sbt-${version}.tgz"
];
sha256 = "0fy04mnnrbdm7kfnjh6sv1q3g6wqzvwyf1p43f36rw3qalap544a";
sha256 = "0hc361gb71psadx9gj78j0j60fw4sljjk8sl45hw6yzx3hmmkg9g";
};
patchPhase = ''
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "waf-${version}";
version = "2.0.4";
version = "2.0.6";
src = fetchurl {
url = "https://waf.io/waf-${version}.tar.bz2";
sha256 = "0zmnwgccq5j7ipfi2j0k5s40q27krp1m6v2bd650axgzdbpa7ain";
sha256 = "1wyl0jl10i0p2rj49sig5riyppgkqlkqmbvv35d5bqxri3y4r38q";
};
buildInputs = [ python2 ];