Merge remote-tracking branch 'upstream/staging' into compiler-rt

This commit is contained in:
John Ericson
2018-05-24 02:58:00 -04:00
447 changed files with 3606 additions and 3015 deletions

View File

@@ -25,7 +25,8 @@
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, darwin ? null
, buildPlatform, hostPlatform, targetPlatform
@@ -154,7 +155,7 @@ let version = "4.8.5";
"--disable-decimal-float" # No final libdecnumber (it may work only in 386)
]));
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
crossNameAddon = if targetPlatform != hostPlatform then "${targetPlatform.config}${stageNameAddon}-" else "";
bootstrap = targetPlatform == hostPlatform;
@@ -164,7 +165,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
@@ -267,11 +268,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -351,21 +348,19 @@ stdenv.mkDerivation ({
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags = if bootstrap then
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
else "";
buildFlags = optional
(bootstrap && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
@@ -467,8 +462,5 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View File

@@ -25,7 +25,8 @@
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, darwin ? null
, buildPlatform, hostPlatform, targetPlatform
@@ -162,7 +163,7 @@ let version = "4.9.4";
"--disable-decimal-float" # No final libdecnumber (it may work only in 386)
]));
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
crossNameAddon = if targetPlatform != hostPlatform then "${targetPlatform.config}${stageNameAddon}-" else "";
bootstrap = targetPlatform == hostPlatform;
@@ -172,7 +173,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
@@ -290,11 +291,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -373,21 +370,19 @@ stdenv.mkDerivation ({
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags = if bootstrap then
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
else "";
buildFlags = optional
(bootstrap && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
@@ -485,9 +480,6 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
// optionalAttrs (langJava) {

View File

@@ -25,7 +25,8 @@
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, darwin ? null
@@ -148,7 +149,7 @@ let version = "5.5.0";
"--disable-decimal-float" # No final libdecnumber (it may work only in 386)
]));
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
crossNameAddon = if targetPlatform != hostPlatform then "${targetPlatform.config}${stageNameAddon}-" else "";
bootstrap = targetPlatform == hostPlatform;
@@ -158,7 +159,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
@@ -292,11 +293,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -372,21 +369,19 @@ stdenv.mkDerivation ({
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags = if bootstrap then
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
else "";
buildFlags = optional
(bootstrap && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
@@ -484,8 +479,5 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View File

@@ -25,7 +25,8 @@
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, darwin ? null
@@ -151,7 +152,7 @@ let version = "6.4.0";
"--disable-decimal-float" # No final libdecnumber (it may work only in 386)
]));
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
crossNameAddon = if targetPlatform != hostPlatform then "${targetPlatform.config}${stageNameAddon}-" else "";
bootstrap = targetPlatform == hostPlatform;
@@ -161,7 +162,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
@@ -300,11 +301,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -380,20 +377,19 @@ stdenv.mkDerivation ({
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags =
optional bootstrap (if profiledCompiler then "profiledbootstrap" else "bootstrap");
buildFlags = optional
(bootstrap && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
@@ -491,9 +487,6 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
// optionalAttrs (langJava) {

View File

@@ -2,30 +2,24 @@
, langC ? true, langCC ? true, langFortran ? false
, langObjC ? targetPlatform.isDarwin
, langObjCpp ? targetPlatform.isDarwin
, langJava ? false
, langGo ? false
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null, boehmgc ? null
, zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null
, x11Support ? langJava
, zlib ? null
, enableMultilib ? false
, enablePlugin ? hostPlatform == buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, darwin ? null
@@ -33,10 +27,6 @@
, buildPackages
}:
assert langJava -> zip != null && unzip != null
&& zlib != null && boehmgc != null
&& perl != null; # for `--enable-java-home'
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
@@ -70,29 +60,6 @@ let version = "7.3.0";
})
++ optional langFortran ../gfortran-driving.patch;
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
# `configure' time.
# XXX: Eventually we might want to take it from upstream.
url = "ftp://sourceware.org/pub/java/ecj-4.3.jar";
sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx";
};
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = http://www.antlr.org/download/antlr-4.4-complete.jar;
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto
];
javaAwtGtk = langJava && x11Support;
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
@@ -156,17 +123,14 @@ let version = "7.3.0";
"--disable-decimal-float" # No final libdecnumber (it may work only in 386)
]));
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
crossNameAddon = if targetPlatform != hostPlatform then "${targetPlatform.config}${stageNameAddon}-" else "";
bootstrap = targetPlatform == hostPlatform;
in
# We need all these X libraries when building AWT with GTK+.
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
@@ -262,13 +226,12 @@ stdenv.mkDerivation ({
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
inherit noSysDirs staticCompiler langJava
inherit noSysDirs staticCompiler
libcCross crossMingw;
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl)
++ (optional javaAwtGtk pkgconfig);
++ (optional (perl != null) perl);
# For building runtime libs
depsBuildTarget =
@@ -283,8 +246,6 @@ stdenv.mkDerivation ({
targetPackages.stdenv.cc.bintools # For linking code at run-time
] ++ (optional (isl != null) isl)
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
@@ -305,11 +266,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -336,7 +293,6 @@ stdenv.mkDerivation ({
( optional langC "c"
++ optional langCC "c++"
++ optional langFortran "fortran"
++ optional langJava "java"
++ optional langGo "go"
++ optional langObjC "objc"
++ optional langObjCpp "obj-c++"
@@ -357,18 +313,6 @@ stdenv.mkDerivation ({
# Optional features
optional (isl != null) "--with-isl=${isl}" ++
# Java options
optionals langJava [
"--with-ecj-jar=${javaEcj}"
# Follow Sun's layout for the convenience of IcedTea/OpenJDK. See
# <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>.
"--enable-java-home"
"--with-java-home=\${prefix}/lib/jvm/jre"
] ++
optional javaAwtGtk "--enable-java-awt=gtk" ++
optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr}" ++
(import ../common/platform-flags.nix { inherit (stdenv) lib targetPlatform; }) ++
optional (targetPlatform != hostPlatform) crossConfigureFlags ++
optional (!bootstrap) "--disable-bootstrap" ++
@@ -386,31 +330,25 @@ stdenv.mkDerivation ({
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags =
optional bootstrap (if profiledCompiler then "profiledbootstrap" else "bootstrap");
buildFlags = optional
(bootstrap && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
# library headers and binaries, regarless of the language being compiled.
#
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
# `--with-gmp' et al., e.g., when building
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
# them to $CPATH and $LIBRARY_PATH in this case.
#
# Likewise, the LTO code doesn't find zlib.
#
# Cross-compiling, we need gcc not to read ./specs in order to build the g++
@@ -419,9 +357,6 @@ stdenv.mkDerivation ({
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
@@ -433,9 +368,6 @@ stdenv.mkDerivation ({
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread)
);
@@ -476,8 +408,8 @@ stdenv.mkDerivation ({
longDescription = ''
The GNU Compiler Collection includes compiler front ends for C, C++,
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
as libraries for these languages (libstdc++, libgcj, libgomp,...).
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
libraries for these languages (libstdc++, libgomp,...).
GCC development is a part of the GNU Project, aiming to improve the
compiler used in the GNU system including the GNU/Linux variant.
@@ -497,8 +429,5 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View File

@@ -18,7 +18,8 @@
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, darwin ? null
@@ -260,11 +261,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -327,20 +324,17 @@ stdenv.mkDerivation ({
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags =
optional bootstrap (if profiledCompiler then "profiledbootstrap" else "bootstrap");
buildFlags = optional
(bootstrap && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
@@ -427,8 +421,5 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View File

@@ -1,13 +1,5 @@
# The `hostOffset` describes how the host platform of the dependencies are slid
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/$(@gcc@/bin/gcc -dumpmachine)"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libstdc++"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/$(@gcc@/bin/gcc -dumpmachine)"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libstdc++"

View File

@@ -2,30 +2,24 @@
, langC ? true, langCC ? true, langFortran ? false
, langObjC ? targetPlatform.isDarwin
, langObjCpp ? targetPlatform.isDarwin
, langJava ? false
, langGo ? false
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null, boehmgc ? null
, zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null
, x11Support ? langJava
, zlib ? null
, enableMultilib ? false
, enablePlugin ? hostPlatform == buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, stripped ? true
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, darwin ? null
@@ -34,10 +28,6 @@
, buildPackages
}:
assert langJava -> zip != null && unzip != null
&& zlib != null && boehmgc != null
&& perl != null; # for `--enable-java-home'
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
@@ -63,29 +53,6 @@ let version = "7-20170409";
++ optional noSysDirs ../no-sys-dirs.patch
++ optional langFortran ../gfortran-driving.patch;
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
# `configure' time.
# XXX: Eventually we might want to take it from upstream.
url = "ftp://sourceware.org/pub/java/ecj-4.3.jar";
sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx";
};
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = http://www.antlr.org/download/antlr-4.4-complete.jar;
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto
];
javaAwtGtk = langJava && x11Support;
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
@@ -150,9 +117,6 @@ let version = "7-20170409";
in
# We need all these X libraries when building AWT with GTK+.
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
@@ -225,13 +189,12 @@ stdenv.mkDerivation ({
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
inherit noSysDirs staticCompiler langJava
inherit noSysDirs staticCompiler
libcCross crossMingw;
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl)
++ (optional javaAwtGtk pkgconfig);
++ (optional (perl != null) perl);
# For building runtime libs
depsBuildTarget =
@@ -246,8 +209,6 @@ stdenv.mkDerivation ({
targetPackages.stdenv.cc.bintools # For linking code at run-time
] ++ (optional (isl != null) isl)
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
@@ -268,11 +229,7 @@ stdenv.mkDerivation ({
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms =
# TODO(@Ericson2314): Figure out what's going wrong with Arm
if buildPlatform == hostPlatform && hostPlatform == targetPlatform && targetPlatform.isAarch32
then []
else [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags =
# Basic dependencies
@@ -299,7 +256,6 @@ stdenv.mkDerivation ({
( optional langC "c"
++ optional langCC "c++"
++ optional langFortran "fortran"
++ optional langJava "java"
++ optional langGo "go"
++ optional langObjC "objc"
++ optional langObjCpp "obj-c++"
@@ -320,17 +276,6 @@ stdenv.mkDerivation ({
# Optional features
optional (isl != null) "--with-isl=${isl}" ++
# Java options
optionals langJava [
"--with-ecj-jar=${javaEcj}"
# Follow Sun's layout for the convenience of IcedTea/OpenJDK. See
# <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>.
"--enable-java-home"
"--with-java-home=\${prefix}/lib/jvm/jre"
] ++
optional javaAwtGtk "--enable-java-awt=gtk" ++
optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr}" ++
(import ../common/platform-flags.nix { inherit (stdenv) lib targetPlatform; }) ++
optional (targetPlatform != hostPlatform) crossConfigureFlags ++
@@ -351,28 +296,20 @@ stdenv.mkDerivation ({
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
else "";
dontStrip = !stripped;
NIX_STRIP_DEBUG = !stripped;
installTargets =
if stripped
then "install-strip"
else "install";
/* For cross-built gcc (build != host == target) */
crossAttrs = {
dontStrip = true;
buildFlags = "";
};
# http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
# library headers and binaries, regarless of the language being compiled.
#
# Note: When building the Java AWT GTK+ peer, the build system doesn't honor
# `--with-gmp' et al., e.g., when building
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
# them to $CPATH and $LIBRARY_PATH in this case.
#
# Likewise, the LTO code doesn't find zlib.
#
# Cross-compiling, we need gcc not to read ./specs in order to build the g++
@@ -381,9 +318,6 @@ stdenv.mkDerivation ({
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread
++ optional (libpthreadCross != null) libpthreadCross
@@ -395,9 +329,6 @@ stdenv.mkDerivation ({
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
++ optional (libpthread != null) libpthread)
);
@@ -438,8 +369,8 @@ stdenv.mkDerivation ({
longDescription = ''
The GNU Compiler Collection includes compiler front ends for C, C++,
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
as libraries for these languages (libstdc++, libgcj, libgomp,...).
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
libraries for these languages (libstdc++, libgomp,...).
GCC development is a part of the GNU Project, aiming to improve the
compiler used in the GNU system including the GNU/Linux variant.
@@ -461,8 +392,5 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc";
}
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View File

@@ -129,10 +129,8 @@ stdenv.mkDerivation rec {
"--disable-large-address-space"
];
# Hack to make sure we never to the relaxation `$PATH` and hooks support for
# compatability. This will be replaced with something clearer in a future
# masss-rebuild.
crossConfig = true;
# Make sure we never relax`$PATH` and hooks support for compatability.
strictDeps = true;
nativeBuildInputs = [
ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour

View File

@@ -129,10 +129,8 @@ stdenv.mkDerivation rec {
"--disable-large-address-space"
];
# Hack to make sure we never to the relaxation `$PATH` and hooks support for
# compatability. This will be replaced with something clearer in a future
# masss-rebuild.
crossConfig = true;
# Make sure we never relax`$PATH` and hooks support for compatability.
strictDeps = true;
nativeBuildInputs = [ ghc perl hscolour sphinx ];

View File

@@ -148,10 +148,8 @@ stdenv.mkDerivation rec {
"--disable-large-address-space"
];
# Hack to make sure we never to the relaxation `$PATH` and hooks support for
# compatability. This will be replaced with something clearer in a future
# masss-rebuild.
crossConfig = true;
# Make sure we never relax`$PATH` and hooks support for compatability.
strictDeps = true;
nativeBuildInputs = [ alex autoconf autoreconfHook automake ghc happy hscolour perl python3 sphinx ];
@@ -171,6 +169,9 @@ stdenv.mkDerivation rec {
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
checkTarget = "test";
doCheck = false; # fails with "testsuite/tests: No such file or directory. Stop."
hardeningDisable = [ "format" ];
# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition.

View File

@@ -139,10 +139,8 @@ stdenv.mkDerivation rec {
"--disable-large-address-space"
];
# Hack to make sure we never to the relaxation `$PATH` and hooks support for
# compatability. This will be replaced with something clearer in a future
# masss-rebuild.
crossConfig = true;
# Make sure we never relax`$PATH` and hooks support for compatability.
strictDeps = true;
nativeBuildInputs = [ ghc perl autoconf automake m4 happy alex python3 ];

View File

@@ -136,10 +136,8 @@ stdenv.mkDerivation rec {
"--disable-large-address-space"
];
# Hack to make sure we never to the relaxation `$PATH` and hooks support for
# compatability. This will be replaced with something clearer in a future
# masss-rebuild.
crossConfig = true;
# Make sure we never relax`$PATH` and hooks support for compatability.
strictDeps = true;
nativeBuildInputs = [ ghc perl autoconf automake happy alex python3 ];

View File

@@ -25,13 +25,13 @@ in
stdenv.mkDerivation rec {
name = "go-${version}";
version = "1.10.1";
version = "1.10.2";
src = fetchFromGitHub {
owner = "golang";
repo = "go";
rev = "go${version}";
sha256 = "1wqwy52ibb343a4v7b9q26xa6r5jk4khfxd90wbpcayws8cxly8m";
sha256 = "1lbxnlj5l9i8k1dg33dh8ndx9vspk9dkpcbg06jbbswy6kadmx6f";
};
# perl is used for testing go vet

View File

@@ -39,7 +39,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies are slid
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -33,7 +33,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies are slid
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -31,7 +31,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -31,7 +31,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -44,7 +44,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -9,7 +9,7 @@ let
name = "clang-${version}";
unpackPhase = ''
unpackFile ${fetch "cfe" "1zyh4dggxd55lnfg73c8fybnkssqcaa6bq2h4bzimnnj1jdnqpqk"}
unpackFile ${fetch "cfe" "0018520c4qxf5hgjdqgpz2dgl3faf4gsz87fdlb8zdmx99rfk77s"}
mv cfe-${version}* clang
sourceRoot=$PWD/clang
unpackFile ${clang-tools-extra_src}
@@ -50,10 +50,12 @@ let
outputs = [ "out" "lib" "python" ];
# Clang expects to find LLVMgold in its own prefix
# Clang expects to find sanitizer libraries in its own prefix
postInstall = ''
ln -sv ${llvm}/lib/LLVMgold.so $out/lib
# Clang expects to find LLVMgold in its own prefix
if [ -e ${llvm}/lib/LLVMgold.so ]; then
ln -sv ${llvm}/lib/LLVMgold.so $out/lib
fi
# Clang expects to find sanitizer libraries in its own prefix
ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/
ln -sv $out/bin/clang $out/bin/cpp

View File

@@ -6,7 +6,7 @@
}:
let
release_version = "5.0.1";
release_version = "5.0.2";
version = release_version; # differentiating these is important for rc's
fetch = name: sha256: fetchurl {
@@ -14,8 +14,8 @@ let
inherit sha256;
};
compiler-rt_src = fetch "compiler-rt" "1nlmm0b3wpdwxkldqp1klzv3rpqf94q2a248xgqb7aapyhbi9paf";
clang-tools-extra_src = fetch "clang-tools-extra" "09fjii7w43kvxvsxxs6gig9vz95vnvx1779rqd36h8kksvws3bcs";
compiler-rt_src = fetch "compiler-rt" "0ipd4jdxpczgr2w6lzrabymz6dhzj69ywmyybjjc1q397zgrvziy";
clang-tools-extra_src = fetch "clang-tools-extra" "018b3fiwah8f8br5i26qmzh6sjvzchpn358sn8v079m49f2jldm3";
# Add man output without introducing extra dependencies.
overrideManOutput = drv:

View File

@@ -3,7 +3,7 @@
stdenv.mkDerivation rec {
name = "libc++-${version}";
src = fetch "libcxx" "003wwniwlikgh38cbqbcshc5gkiv3a2jkmbn6am9s46y5gfrk3zs";
src = fetch "libcxx" "1672aaf95fgy4xsfra8pw24f6r93zwzpan1033hkcm8p2glqipvf";
postUnpack = ''
unpackFile ${libcxxabi.src}
@@ -40,7 +40,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -3,7 +3,7 @@
stdenv.mkDerivation {
name = "libc++abi-${version}";
src = fetch "libcxxabi" "0m78yr4arlz2b9m96xcygk15m2pbz8i10snk78i3q7pjnwn1a9as";
src = fetch "libcxxabi" "12lp799rskr4fc2xr64qn4jfkjnfd8b1aymvsxyn4k9ar7r9pgqv";
nativeBuildInputs = [ cmake ];
buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;

View File

@@ -10,7 +10,7 @@
stdenv.mkDerivation {
name = "lld-${version}";
src = fetch "lld" "15fq2zvkliyiw5qi7ig2r8bshgbz4kzvs5in16mhfkw20l06rcym";
src = fetch "lld" "1ah75rjly6747jk1zbwca3z0svr9b09ylgxd4x9ns721xir6sia6";
nativeBuildInputs = [ cmake ];
buildInputs = [ llvm ];

View File

@@ -17,7 +17,7 @@
stdenv.mkDerivation {
name = "lldb-${version}";
src = fetch "lldb" "0sipv8k37ai44m7jcf6wsbm2q41dgk3sk9m3i6823jkmg7kckhdp";
src = fetch "lldb" "05j2a63yzln43852nng8a7y47spzlyr1cvdmgmbxgd29c8r0bfkq";
postPatch = ''
# Fix up various paths that assume llvm and clang are installed in the same place

View File

@@ -20,7 +20,7 @@
}:
let
src = fetch "llvm" "1c07i0b61j69m578lgjkyayg419sh7sn40xb3j112nr2q2gli9sz";
src = fetch "llvm" "0g1bbj2n6xv4p1n6hh17vj3vpvg56wacipc81dgwga9mg2lys8nm";
# Used when creating a version-suffixed symlink of libLLVM.dylib
shortVersion = with stdenv.lib;

View File

@@ -10,7 +10,7 @@
stdenv.mkDerivation {
name = "openmp-${version}";
src = fetch "openmp" "0lr6r87xzg87w1q9rrh04nqpyr8c929dh4qy3csjiy7rsb6kbdmd";
src = fetch "openmp" "0p2n52676wlq6y9q99n5pivq6pvvda1p994r69fxj206ahn59jir";
nativeBuildInputs = [ cmake perl ];
buildInputs = [ llvm ];

View File

@@ -40,7 +40,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh;
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = {
homepage = http://libcxx.llvm.org/;

View File

@@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies
# relative to the depending package. It is brought into scope of the setup hook
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@@ -133,6 +133,8 @@ let
buildFlags = [ "all" ];
doCheck = false; # fails with "No rule to make target 'y'."
installPhase = ''
mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk

View File

@@ -314,6 +314,8 @@ stdenv.mkDerivation ({
runHook postBuild
'';
inherit doCheck;
checkPhase = ''
runHook preCheck
${setupCommand} test ${testTarget}
@@ -428,7 +430,6 @@ stdenv.mkDerivation ({
// optionalAttrs (postConfigure != "") { inherit postConfigure; }
// optionalAttrs (preBuild != "") { inherit preBuild; }
// optionalAttrs (postBuild != "") { inherit postBuild; }
// optionalAttrs (doCheck) { inherit doCheck; }
// optionalAttrs (doBenchmark) { inherit doBenchmark; }
// optionalAttrs (checkPhase != "") { inherit checkPhase; }
// optionalAttrs (preCheck != "") { inherit preCheck; }

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl, unzip, version }:
{ stdenv, fetchurl, unzip, version ? "1.24.3" }:
let
@@ -57,9 +57,9 @@ stdenv.mkDerivation {
'';
libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc ];
dontStrip = true;
meta = {
platforms = [ "i686-linux" "x86_64-linux" ];
homepage = https://www.dartlang.org/;

View File

@@ -16,7 +16,11 @@ stdenv.mkDerivation rec {
setOutputFlags = false; # $dev gets into the library otherwise
# GCC 4.6 raises a number of set-but-unused warnings.
configureFlags = [ "--disable-error-on-warning" ];
configureFlags = [ "--disable-error-on-warning" ]
# Guile needs patching to preset results for the configure tests about
# pthreads, which work only in native builds.
++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
"--with-threads=no";
depsBuildBuild = [ buildPackages.stdenv.cc ]
++ stdenv.lib.optional (hostPlatform != buildPlatform)
@@ -34,17 +38,8 @@ stdenv.mkDerivation rec {
libtool
];
patches = [ ./cpp-4.5.patch ];
# Guile needs patching to preset results for the configure tests
# about pthreads, which work only in native builds.
preConfigure = ''
if test -n "$crossConfig"; then
configureFlags="--with-threads=no $configureFlags"
fi
'';
preBuild = ''
sed -e '/lt_dlinit/a lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
'';
@@ -66,6 +61,7 @@ stdenv.mkDerivation rec {
# This is fixed here:
# <http://git.savannah.gnu.org/cgit/guile.git/commit/?h=branch_release-1-8&id=a0aa1e5b69d6ef0311aeea8e4b9a94eae18a1aaf>.
doCheck = false;
doInstallCheck = doCheck;
setupHook = ./setup-hook.sh;

View File

@@ -89,6 +89,7 @@
# make check doesn't work on darwin
# On Linuxes+Hydra the tests are flaky; feel free to investigate deeper.
doCheck = false;
doInstallCheck = doCheck;
setupHook = ./setup-hook-2.0.sh;

View File

@@ -85,6 +85,7 @@
# make check doesn't work on darwin
# On Linuxes+Hydra the tests are flaky; feel free to investigate deeper.
doCheck = false;
doInstallCheck = doCheck;
setupHook = ./setup-hook-2.2.sh;

View File

@@ -105,6 +105,8 @@ let
passthru.libPrefix = "lib/perl5/site_perl";
doCheck = false; # some tests fail, expensive
# TODO: it seems like absolute paths to some coreutils is required.
postInstall =
''

View File

@@ -2,6 +2,7 @@
# and can build packages that use distutils, setuptools or flit.
{ lib
, config
, python
, wrapPython
, setuptools
@@ -19,7 +20,7 @@ let
wheel-specific = import ./build-python-package-wheel.nix { };
common = import ./build-python-package-common.nix { inherit python bootstrapped-pip; };
mkPythonDerivation = import ./mk-python-derivation.nix {
inherit lib python wrapPython setuptools unzip ensureNewerSourcesForZipFilesHook toPythonModule namePrefix;
inherit lib config python wrapPython setuptools unzip ensureNewerSourcesForZipFilesHook toPythonModule namePrefix;
};
in

View File

@@ -31,7 +31,7 @@ with stdenv.lib;
let
majorVersion = "2.7";
minorVersion = "14";
minorVersion = "15";
minorVersionSuffix = "";
pythonVersion = majorVersion;
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
@@ -40,7 +40,7 @@ let
src = fetchurl {
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
sha256 = "0rka541ys16jwzcnnvjp2v12m4cwgd2jp6wj4kj511p715pb5zvi";
sha256 = "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92";
};
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
@@ -58,8 +58,6 @@ let
# if DETERMINISTIC_BUILD env var is set
./deterministic-build.patch
./properly-detect-curses.patch
] ++ optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch
] ++ optionals stdenv.isLinux [
@@ -140,7 +138,10 @@ let
"ac_cv_computed_gotos=yes"
"ac_cv_file__dev_ptmx=yes"
"ac_cv_file__dev_ptc=yes"
];
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional hostPlatform.isLinux "ac_cv_func_lchmod=no";
postConfigure = if hostPlatform.isCygwin then ''
sed -i Makefile -e 's,PYTHONPATH="$(srcdir),PYTHONPATH="$(abs_srcdir),'
@@ -241,6 +242,8 @@ in stdenv.mkDerivation {
enableParallelBuilding = true;
doCheck = false; # expensive, and fails
meta = {
homepage = http://python.org;
description = "A high-level dynamically-typed programming language";

View File

@@ -1,116 +0,0 @@
From 6dc83db69b5e29d25ba6d73646ea2e9a1097848a Mon Sep 17 00:00:00 2001
From: Roumen Petrov <local@example.net>
Date: Sun, 19 Feb 2012 16:13:24 +0200
Subject: [PATCH] CROSS-properly detect WINDOW _flags for different ncurses versions
---
Include/py_curses.h | 5 +++++
configure.ac | 40 ++++++++++++++++++++++++++++++++++++++--
pyconfig.h.in | 6 ++++++
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/Include/py_curses.h b/Include/py_curses.h
index f2c08f6..a9b5260 100644
--- a/Include/py_curses.h
+++ b/Include/py_curses.h
@@ -14,7 +14,9 @@
/* the following define is necessary for OS X 10.6; without it, the
Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
can't get at the WINDOW flags field. */
+/* NOTE configure check if ncurses require such definition
#define NCURSES_OPAQUE 0
+*/
#endif /* __APPLE__ */
#ifdef __FreeBSD__
@@ -57,9 +59,12 @@
#ifdef HAVE_NCURSES_H
/* configure was checking <curses.h>, but we will
use <ncurses.h>, which has all these features. */
+/* NOTE configure check for existence of flags
+ * Also flags are visible only if WINDOW structure is not opaque
#ifndef WINDOW_HAS_FLAGS
#define WINDOW_HAS_FLAGS 1
#endif
+*/
#ifndef MVWDELCH_IS_EXPRESSION
#define MVWDELCH_IS_EXPRESSION 1
#endif
diff --git a/configure.ac b/configure.ac
index 0a3a186..75f5142 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4150,15 +4150,51 @@ then
fi
AC_MSG_CHECKING(whether WINDOW has _flags)
-AC_CACHE_VAL(ac_cv_window_has_flags,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <curses.h>]], [[
WINDOW *w;
w->_flags = 0;
]])],
[ac_cv_window_has_flags=yes],
-[ac_cv_window_has_flags=no]))
+[ac_cv_window_has_flags=no])
AC_MSG_RESULT($ac_cv_window_has_flags)
+py_curses_window_is_opaque=no
+if test no = $ac_cv_window_has_flags; then
+ AC_MSG_CHECKING([whether WINDOW has _flags in non-opaque structure])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ #define NCURSES_OPAQUE 0
+ #include <curses.h>
+ ]],[[
+ WINDOW *w;
+ w->_flags = 0;
+ ]])],
+ [py_curses_window_is_opaque=yes])
+ AC_MSG_RESULT([$py_curses_window_is_opaque])
+fi
+if test yes = $py_curses_window_is_opaque; then
+ ac_cv_window_has_flags=yes
+ AC_DEFINE([NCURSES_OPAQUE], [0], [Define to 0 if you have WINDOW _flags in non-opaque structure.])
+fi
+
+py_curses_window_is_internal=no
+if test no = $ac_cv_window_has_flags; then
+ AC_MSG_CHECKING([whether WINDOW has _flags as internal structure])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ #define NCURSES_INTERNALS 1
+ #include <curses.h>
+ ]],[[
+ WINDOW *w;
+ w->_flags = 0;
+ ]])],
+ [py_curses_window_is_internal=yes])
+ AC_MSG_RESULT([$py_curses_window_is_internal])
+fi
+if test yes = $py_curses_window_is_internal; then
+ ac_cv_window_has_flags=yes
+ AC_DEFINE([NCURSES_INTERNALS], [1], [Define to 1 if you have WINDOW _flags as internal structure.])
+fi
if test "$ac_cv_window_has_flags" = yes
then
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 3ca3a4f..484c817 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -1130,6 +1130,12 @@
/* Define if mvwdelch in curses.h is an expression. */
#undef MVWDELCH_IS_EXPRESSION
+/* Define to 1 if you have WINDOW _flags as internal structure. */
+#undef NCURSES_INTERNALS
+
+/* Define to 0 if you have WINDOW _flags in non-opaque structure. */
+#undef NCURSES_OPAQUE
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
--
1.6.4

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchurl
{ stdenv, fetchurl, fetchpatch
, bzip2
, expat
, libffi
@@ -39,6 +39,8 @@ let
++ optionals x11Support [ tcl tk libX11 xproto ]
++ optionals stdenv.isDarwin [ CF configd ];
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
in stdenv.mkDerivation {
name = "python3-${version}";
pythonVersion = majorVersion;
@@ -69,6 +71,16 @@ in stdenv.mkDerivation {
./ld_library_path.patch
] ++ optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch
] ++ optionals hasDistutilsCxxPatch [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed.
(fetchpatch {
url = "https://bugs.python.org/file47046/python-3.x-distutils-C++.patch";
sha256 = "0dgdn9k2kmw4wh90vdnjcrnn97ylxgx7mbn9l87fwz6j501jqvk8";
extraPrefix = "";
})
];
postPatch = ''
@@ -96,7 +108,10 @@ in stdenv.mkDerivation {
"--without-ensurepip"
"--with-system-expat"
"--with-system-ffi"
];
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
preConfigure = ''
for i in /usr /sw /opt /pkg; do # improve purity
@@ -163,7 +178,7 @@ in stdenv.mkDerivation {
passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
in rec {
inherit libPrefix sitePackages x11Support;
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
@@ -176,6 +191,8 @@ in stdenv.mkDerivation {
enableParallelBuilding = true;
doCheck = false; # expensive, and fails
meta = {
homepage = http://python.org;
description = "A high-level dynamically-typed programming language";

View File

@@ -39,6 +39,8 @@ let
++ optionals x11Support [ tcl tk libX11 xproto ]
++ optionals stdenv.isDarwin [ CF configd ];
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
in stdenv.mkDerivation {
name = "python3-${version}";
pythonVersion = majorVersion;
@@ -67,8 +69,24 @@ in stdenv.mkDerivation {
patches = [
./no-ldconfig.patch
./ld_library_path.patch
] ++ optionals stdenv.isDarwin [
# Fix for https://bugs.python.org/issue24658
(fetchpatch {
url = "https://bugs.python.org/file45178/issue24658-3-3.6.diff";
sha256 = "1x060hs80nl34mcl2ji2i7l4shxkmxwgq8h8lcmav8rjqqz1nb4a";
})
] ++ optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch
] ++ optionals hasDistutilsCxxPatch [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed.
(fetchpatch {
url = "https://bugs.python.org/file47046/python-3.x-distutils-C++.patch";
sha256 = "0dgdn9k2kmw4wh90vdnjcrnn97ylxgx7mbn9l87fwz6j501jqvk8";
extraPrefix = "";
})
];
postPatch = ''
@@ -90,7 +108,10 @@ in stdenv.mkDerivation {
"--without-ensurepip"
"--with-system-expat"
"--with-system-ffi"
];
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
preConfigure = ''
for i in /usr /sw /opt /pkg; do # improve purity
@@ -157,7 +178,7 @@ in stdenv.mkDerivation {
passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
in rec {
inherit libPrefix sitePackages x11Support;
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
@@ -169,6 +190,8 @@ in stdenv.mkDerivation {
enableParallelBuilding = true;
doCheck = false; # expensive, and fails
meta = {
homepage = http://python.org;
description = "A high-level dynamically-typed programming language";

View File

@@ -42,6 +42,8 @@ let
nativeBuildInputs =
optional (stdenv.hostPlatform != stdenv.buildPlatform) buildPackages.python3;
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
in stdenv.mkDerivation {
name = "python3-${version}";
pythonVersion = majorVersion;
@@ -69,8 +71,24 @@ in stdenv.mkDerivation {
patches = [
./no-ldconfig.patch
] ++ optionals stdenv.isDarwin [
# Fix for https://bugs.python.org/issue24658
(fetchpatch {
url = "https://bugs.python.org/file45178/issue24658-3-3.6.diff";
sha256 = "1x060hs80nl34mcl2ji2i7l4shxkmxwgq8h8lcmav8rjqqz1nb4a";
})
] ++ optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch
] ++ optionals hasDistutilsCxxPatch [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed.
(fetchpatch {
url = "https://bugs.python.org/file47046/python-3.x-distutils-C++.patch";
sha256 = "0dgdn9k2kmw4wh90vdnjcrnn97ylxgx7mbn9l87fwz6j501jqvk8";
extraPrefix = "";
})
];
postPatch = ''
@@ -113,7 +131,10 @@ in stdenv.mkDerivation {
"ac_cv_computed_gotos=yes"
"ac_cv_file__dev_ptmx=yes"
"ac_cv_file__dev_ptc=yes"
];
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
preConfigure = ''
for i in /usr /sw /opt /pkg; do # improve purity
@@ -180,7 +201,7 @@ in stdenv.mkDerivation {
passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
in rec {
inherit libPrefix sitePackages x11Support;
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
@@ -193,6 +214,8 @@ in stdenv.mkDerivation {
enableParallelBuilding = true;
doCheck = false; # expensive, and fails
meta = {
homepage = http://python.org;
description = "A high-level dynamically-typed programming language";

View File

@@ -1,6 +1,7 @@
# Generic builder.
{ lib
, config
, python
, wrapPython
, setuptools
@@ -53,7 +54,7 @@
, passthru ? {}
, doCheck ? false
, doCheck ? config.doCheckByDefault or false
, ... } @ attrs:
@@ -74,7 +75,6 @@ toPythonModule (python.stdenv.mkDerivation (builtins.removeAttrs attrs [
buildInputs = [ wrapPython ]
++ lib.optional (lib.hasSuffix "zip" (attrs.src.name or "")) unzip
++ lib.optionals doCheck checkInputs
++ lib.optional catchConflicts setuptools # If we no longer propagate setuptools
++ buildInputs
++ pythonPath;
@@ -85,6 +85,7 @@ toPythonModule (python.stdenv.mkDerivation (builtins.removeAttrs attrs [
# Python packages don't have a checkPhase, only an installCheckPhase
doCheck = false;
doInstallCheck = doCheck;
installCheckInputs = checkInputs;
postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
wrapPythonPrograms

View File

@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
"-Ddep11=false"
];
doCheck = false; # fails at least 1 test
postInstall = ''
moveToOutput "share/installed-tests" "$installedTests"
'';

View File

@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--with-apr=${apr.dev}" "--with-expat=${expat.dev}" ]
++ optional (!stdenv.isCygwin) "--with-crypto"
++ optional sslSupport "--with-openssl=${openssl.dev}"
++ optional bdbSupport "--with-berkeley-db=${db}"
++ optional bdbSupport "--with-berkeley-db=${db.dev}"
++ optional ldapSupport "--with-ldap=ldap"
++ optionals stdenv.isCygwin
[ "--without-pgsql" "--without-sqlite2" "--without-sqlite3"
@@ -44,9 +44,10 @@ stdenv.mkDerivation rec {
++ optional stdenv.isFreeBSD cyrus_sasl;
postInstall = ''
for f in $out/lib/*.la $out/lib/apr-util-1/*.la; do
for f in $out/lib/*.la $out/lib/apr-util-1/*.la $dev/bin/apu-1-config; do
substituteInPlace $f \
--replace "${expat.dev}/lib" "${expat.out}/lib" \
--replace "${db.dev}/lib" "${db.out}/lib" \
--replace "${openssl.dev}/lib" "${openssl.out}/lib"
done

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
buildInputs = [ python popt atk libX11 libICE xorg.libXtst libXi
dbus-glib at-spi2-core libSM ];
doCheck = false; # needs dbus daemon
meta = with stdenv.lib; {
platforms = platforms.unix;
};

View File

@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
# ToDo: on non-NixOS we create a symlink from there?
configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
doCheck = false; # needs dbus daemon
meta = with stdenv.lib; {
platforms = platforms.unix;
};

View File

@@ -20,13 +20,15 @@ stdenv.mkDerivation rec {
buildInputs = [ libdaemon dbus perl perlXMLParser glib expat libiconv ]
++ (stdenv.lib.optional qt4Support qt4);
nativeBuildInputs = [ pkgconfig gettext intltool ];
nativeBuildInputs = [ pkgconfig gettext intltool glib ];
configureFlags =
[ "--disable-qt3" "--disable-gdbm" "--disable-mono"
"--disable-gtk" "--disable-gtk3"
"--${if qt4Support then "enable" else "disable"}-qt4"
"--disable-python" "--localstatedir=/var" "--with-distro=none" ]
"--disable-python" "--localstatedir=/var" "--with-distro=none"
# A systemd unit is provided by the avahi-daemon NixOS module
"--with-systemdsystemunitdir=no" ]
++ stdenv.lib.optional withLibdnssdCompat "--enable-compat-libdns_sd"
# autoipd won't build on darwin
++ stdenv.lib.optional stdenv.isDarwin "--disable-autoipd";

View File

@@ -4,14 +4,14 @@
stdenv.mkDerivation rec {
name = "boehm-gc-${version}";
version = "7.6.4";
version = "7.6.6";
src = fetchurl {
urls = [
"http://www.hboehm.info/gc/gc_source/gc-${version}.tar.gz"
"https://github.com/ivmai/bdwgc/releases/download/v${version}/gc-${version}.tar.gz"
];
sha256 = "076dzsqqyxd3nlzs0z277vvhqjp8nv5dqi763s0m90zr6ljiyk5r";
sha256 = "1p1r015a7jbpvkkbgzv1y8nxrbbp6dg0mq3ksi6ji0qdz3wfss79";
};
buildInputs = [ libatomic_ops ];

View File

@@ -55,11 +55,11 @@ let
"--layout=${layout}"
"variant=${variant}"
"threading=${threading}"
"runtime-link=${runtime-link}"
"link=${link}"
"-sEXPAT_INCLUDE=${expat.dev}/include"
"-sEXPAT_LIBPATH=${expat.out}/lib"
] ++ optional (variant == "release") "debug-symbols=off"
] ++ optional (link != "static") "runtime-link=${runtime-link}"
++ optional (variant == "release") "debug-symbols=off"
++ optional (toolset != null) "toolset=${toolset}"
++ optional (mpi != null || hostPlatform != buildPlatform) "--user-config=user-config.jam"
++ optionals (hostPlatform.libc == "msvcrt") [

View File

@@ -2,11 +2,11 @@
let self =
stdenv.mkDerivation rec {
name = "c-ares-1.13.0";
name = "c-ares-1.14.0";
src = fetchurl {
url = "http://c-ares.haxx.se/download/${name}.tar.gz";
sha256 = "19qxhv9aiw903fr808y77r6l9js0fq9m3gcaqckan9jan7qhixq3";
sha256 = "0vnwmbvymw677k780kpb6sb8i3szdp89rzy8mz1fwg1657yw3ls5";
};
meta = with stdenv.lib; {

View File

@@ -9,25 +9,17 @@
assert glSupport -> libGL != null;
let inherit (stdenv.lib) optional optionals; in
stdenv.mkDerivation rec {
name = "cairo-1.14.10";
let
version = "1.15.10";
inherit (stdenv.lib) optional optionals;
in stdenv.mkDerivation rec {
name = "cairo-${version}";
src = fetchurl {
url = "http://cairographics.org/releases/${name}.tar.xz";
sha256 = "02banr0wxckq62nbhc3mqidfdh2q956i2r7w2hd9bjgjb238g1vy";
url = "http://cairographics.org/${if stdenv.lib.mod (builtins.fromJSON (stdenv.lib.versions.minor version)) 2 == 0 then "releases" else "snapshots"}/${name}.tar.xz";
sha256 = "14l3jll98pjdlpm8f972v0spzcsf6y5nz85y2k8iybyg6ihj5jk2";
};
patches = [
# from https://bugs.freedesktop.org/show_bug.cgi?id=98165
(fetchpatch {
name = "cairo-CVE-2016-9082.patch";
url = "https://bugs.freedesktop.org/attachment.cgi?id=127421";
sha256 = "03sfyaclzlglip4pvfjb4zj4dmm8mlphhxl30mb6giinkc74bfri";
})
];
outputs = [ "out" "dev" "devdoc" ];
outputBin = "dev"; # very small
@@ -80,6 +72,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doCheck = false; # fails
postInstall = stdenv.lib.optionalString stdenv.isDarwin glib.flattenInclude;
meta = with stdenv.lib; {

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
buildInputs = []
++ stdenv.lib.optional liboggSupport libogg;
doCheck = false; # fails
meta = with stdenv.lib; {
description = "Ultra-low delay audio codec";
homepage = http://www.celt-codec.org/;

View File

@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
sed -ie 's/<stdlib.h>/<stdlib.h>\n#include <unistd.h>/' src/CTPP2FileSourceLoader.cpp
'';
doCheck = false; # fails
meta = {
description = "A high performance templating engine";
homepage = http://ctpp.havoc.ru;

View File

@@ -20,6 +20,8 @@ stdenv.mkDerivation (rec {
patches = extraPatches;
outputs = [ "bin" "out" "dev" ];
configureFlags =
[
(if cxxSupport then "--enable-cxx" else "--disable-cxx")

View File

@@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, expat, gettext, libiconv, dbus, glib }:
stdenv.mkDerivation rec {
name = "dbus-glib-0.108";
name = "dbus-glib-0.110";
src = fetchurl {
url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
sha256 = "0b307hw9j41npzr6niw1bs6ryp87m5yafg492gqwvsaj4dz0qd4z";
sha256 = "09g8swvc95bk1z6j8sw463p2v0dqmgm2zjfndf7i8sbcyq67dr3w";
};
outputs = [ "out" "dev" "devdoc" ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
configureFlagsArray+=("--exec-prefix=$dev")
'';
doCheck = true;
doCheck = false;
passthru = { inherit dbus glib; };

View File

@@ -6,8 +6,8 @@ assert x11Support -> libX11 != null
&& libSM != null;
let
version = "1.12.6";
sha256 = "05picaq8j60wlwyi84qvw5liw3nd0cws9va3krnc3pms0wm906v2";
version = "1.12.8";
sha256 = "1cvfi7jiby12h0f5gbysphhk99m6mch87ab3cqxkj0w36gkrkp72";
self = stdenv.mkDerivation {
name = "dbus-${version}";

View File

@@ -5,19 +5,21 @@ let
in
stdenv.mkDerivation {
name = "eigen-${version}";
src = fetchurl {
url = "http://bitbucket.org/eigen/eigen/get/${version}.tar.gz";
name = "eigen-${version}.tar.gz";
sha256 = "00l52y7m276gh8wjkqqcxz6x687azrm7a70s3iraxnpy9bxa9y04";
};
nativeBuildInputs = [ cmake ];
doCheck = false; # a couple of tests fail with "Child aborted"
postInstall = ''
sed -e '/Cflags:/s@''${prefix}/@@' -i "$out"/share/pkgconfig/eigen3.pc
'';
meta = with stdenv.lib; {
description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
license = licenses.lgpl3Plus;

View File

@@ -17,6 +17,8 @@ in stdenv.mkDerivation rec {
buildInputs = [ glib hunspell ];
propagatedBuildInputs = [ hspell aspell ]; # libtool puts it to la file
doCheck = false; # fails to compile with with "UnitTest++.h: No such file or directory"
meta = with stdenv.lib; {
description = "Generic spell checking library";
homepage = https://abiword.github.io/enchant/;

View File

@@ -6,13 +6,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "epoxy-${version}";
version = "1.5.0";
version = "1.5.1";
src = fetchFromGitHub {
owner = "anholt";
repo = "libepoxy";
rev = "${version}";
sha256 = "1ixpqb10pmdy3n9nxd5inflig9dal5502ggadcns5b58j6jr0yv0";
sha256 = "1811agxr7g9wd832np8sw152j468kg3qydmfkc564v54ncfcgaci";
};
outputs = [ "out" "dev" ];
@@ -29,6 +29,8 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = ''-DLIBGL_PATH="${getLib libGL}/lib"'';
doCheck = false; # needs X11
meta = {
description = "A library for handling OpenGL function pointer management";
homepage = https://github.com/anholt/libepoxy;

View File

@@ -250,7 +250,10 @@ stdenv.mkDerivation rec {
--replace /usr/local/lib/frei0r-1 ${frei0r}/lib/frei0r-1
'';
configurePlatforms = [];
configureFlags = [
"--target_os=${hostPlatform.parsed.kernel.name}"
"--arch=${hostPlatform.parsed.cpu.name}"
/*
* Licensing flags
*/
@@ -371,8 +374,6 @@ stdenv.mkDerivation rec {
#(enableFeature quvi "libquvi")
(enableFeature (rtmpdump != null) "librtmp")
#(enableFeature (schroedinger != null) "libschroedinger")
#(enableFeature (shine != null) "libshine")
(enableFeature (samba != null && gplLicensing && version3Licensing) "libsmbclient")
(enableFeature (SDL2 != null) "sdl2")
(enableFeature (soxr != null) "libsoxr")
(enableFeature (speex != null) "libspeex")
@@ -396,6 +397,9 @@ stdenv.mkDerivation rec {
(enableFeature optimizationsDeveloper "optimizations")
(enableFeature extraWarningsDeveloper "extra-warnings")
(enableFeature strippingDeveloper "stripping")
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--cross-prefix=${stdenv.cc.targetPrefix}"
"--enable-cross-compile"
];
nativeBuildInputs = [ perl pkgconfig texinfo yasm ];
@@ -432,21 +436,8 @@ stdenv.mkDerivation rec {
done
'';
enableParallelBuilding = true;
/* Cross-compilation is untested, consider this an outline, more work
needs to be done to portions of the build to get it to work correctly */
crossAttrs = {
configurePlatforms = [];
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cc.targetPrefix}"
"--enable-cross-compile"
"--target_os=${hostPlatform.parsed.kernel.name}"
"--arch=${hostPlatform.parsed.cpu.name}"
];
};
meta = with stdenv.lib; {
description = "A complete, cross-platform solution to record, convert and stream audio and video";
homepage = https://www.ffmpeg.org/;

View File

@@ -79,7 +79,10 @@ stdenv.mkDerivation rec {
++ optional (reqMin "1.0") "doc" ; # just dev-doc
setOutputFlags = false; # doesn't accept all and stores configureFlags in libs!
configurePlatforms = [];
configureFlags = [
"--arch=${hostPlatform.parsed.cpu.name}"
"--target_os=${hostPlatform.parsed.kernel.name}"
# License
"--enable-gpl"
"--enable-version3"
@@ -145,6 +148,9 @@ stdenv.mkDerivation rec {
"--disable-stripping"
# Disable mmx support for 0.6.90
(verFix null "0.6.90" "--disable-mmx")
] ++ optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
"--cross-prefix=${stdenv.cc.targetPrefix}"
"--enable-cross-compile"
] ++ optional stdenv.cc.isClang "--cc=clang";
nativeBuildInputs = [ perl pkgconfig texinfo yasm ];
@@ -160,26 +166,15 @@ stdenv.mkDerivation rec {
++ optional vdpauSupport libvdpau
++ optional sdlSupport (if reqMin "3.2" then SDL2 else SDL);
enableParallelBuilding = true;
doCheck = false; # fails
postFixup = ''
moveToOutput bin "$bin"
moveToOutput share/ffmpeg/examples "$doc"
'';
/* Cross-compilation is untested, consider this an outline, more work
needs to be done to portions of the build to get it to work correctly */
crossAttrs = {
configurePlatforms = [];
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cc.targetPrefix}"
"--enable-cross-compile"
"--target_os=${hostPlatform.parsed.kernel.name}"
"--arch=${hostPlatform.parsed.cpu.name}"
];
};
installFlags = [ "install-man" ];
passthru = {

View File

@@ -17,23 +17,15 @@ stdenv.mkDerivation rec {
buildInputs = [ expat ];
configureFlags = [
"--with-arch=${hostPlatform.parsed.cpu.name}"
"--sysconfdir=/etc"
"--with-cache-dir=/var/cache/fontconfig"
"--disable-docs"
"--with-default-fonts="
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--with-arch=${hostPlatform.parsed.cpu.name}"
];
# We should find a better way to access the arch reliably.
crossArch = if stdenv.hostPlatform != stdenv.buildPlatform
then hostPlatform.parsed.cpu.name
else null;
preConfigure = ''
if test -n "$crossConfig"; then
configureFlags="$configureFlags --with-arch=$crossArch";
fi
'';
enableParallelBuilding = true;
doCheck = true;

View File

@@ -40,23 +40,15 @@ stdenv.mkDerivation rec {
buildInputs = [ expat ];
configureFlags = [
"--with-arch=${hostPlatform.parsed.cpu.name}"
"--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/
"--disable-docs"
# just <1MB; this is what you get when loading config fails for some reason
"--with-default-fonts=${dejavu_fonts.minimal}"
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--with-arch=${hostPlatform.parsed.cpu.name}"
];
# We should find a better way to access the arch reliably.
crossArch = if stdenv.hostPlatform != stdenv.buildPlatform
then hostPlatform.parsed.cpu.name
else null;
preConfigure = ''
if test -n "$crossConfig"; then
configureFlags="$configureFlags --with-arch=$crossArch";
fi
'';
enableParallelBuilding = true;
doCheck = true;

View File

@@ -1,40 +1,74 @@
{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, gnome3
, jasper, gobjectIntrospection, doCheck ? false }:
{ stdenv, fetchurl, fetchgit, fetchpatch, meson, ninja, pkgconfig, gettext, python3, libxml2, libxslt, docbook_xsl
, docbook_xml_dtd_43, gtk-doc, glib, libtiff, libjpeg, libpng, libX11, gnome3
, jasper, gobjectIntrospection, doCheck ? false, makeWrapper }:
let
pname = "gdk-pixbuf";
version = "2.36.7";
# TODO: since 2.36.8 gdk-pixbuf gets configured to use mime-type sniffing,
# which apparently requires access to shared-mime-info files during runtime.
version = "2.36.12";
in
stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
sha256 = "1b6e5eef09d98f05f383014ecd3503e25dfb03d7e5b5f5904e5a65b049a6a4d8";
# TODO: Change back once tests/bug753605-atsize.jpg is part of the dist tarball
# src = fetchurl {
# url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
# sha256 = "0d534ysa6n9prd17wwzisq7mj6qkhwh8wcf8qgin1ar3hbs5ry7z";
# };
src = fetchgit {
url = https://git.gnome.org/browse/gdk-pixbuf;
rev = version;
sha256 = "18lwqg63vyap2m1mw049rnb8fm869429xbf7636a2n21gs3d3jwv";
};
outputs = [ "out" "dev" "devdoc" ];
patches = [
# TODO: since 2.36.8 gdk-pixbuf gets configured to use mime-type sniffing,
# which requires access to shared-mime-info files during runtime.
# For now, we are patching the build script to avoid the dependency.
./no-mime-sniffing.patch
# Fix installed tests with meson
# https://bugzilla.gnome.org/show_bug.cgi?id=795527
(fetchurl {
url = https://bugzilla.gnome.org/attachment.cgi?id=371381;
sha256 = "0nl1cixkjfa5kcfh0laz8h6hdsrpdkxqn7a1k35jrb6zwc9hbydn";
})
# Add missing test file bug753605-atsize.jpg
(fetchpatch {
url = https://git.gnome.org/browse/gdk-pixbuf/patch/?id=87f8f4bf01dfb9982c1ef991e4060a5e19fdb7a7;
sha256 = "1slzywwnrzfx3zjzdsxrvp4g2q4skmv50pdfmyccp41j7bfyb2j0";
})
# Move installed tests to a separate output
./installed-tests-path.patch
];
outputs = [ "out" "dev" "man" "devdoc" "installedTests" ];
setupHook = ./setup-hook.sh;
enableParallelBuilding = true;
# !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
buildInputs = [ libX11 gobjectIntrospection ];
buildInputs = [ libX11 ];
nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [
meson ninja pkgconfig gettext python3 libxml2 libxslt docbook_xsl docbook_xml_dtd_43
gtk-doc gobjectIntrospection makeWrapper
];
propagatedBuildInputs = [ glib libtiff libjpeg libpng jasper ];
configureFlags = "--with-libjasper --with-x11"
+ stdenv.lib.optionalString (gobjectIntrospection != null) " --enable-introspection=yes"
;
mesonFlags = [
"-Ddocs=true"
"-Djasper=true"
"-Dx11=true"
"-Dgir=${if gobjectIntrospection != null then "true" else "false"}"
];
# on darwin, tests don't link
preBuild = stdenv.lib.optionalString (stdenv.isDarwin && !doCheck) ''
substituteInPlace Makefile --replace "docs tests" "docs"
postPatch = ''
chmod +x build-aux/* # patchShebangs only applies to executables
patchShebangs build-aux
substituteInPlace tests/meson.build --subst-var-by installedtestsprefix "$installedTests"
'';
postInstall =
@@ -42,10 +76,13 @@ stdenv.mkDerivation rec {
''
moveToOutput "bin" "$dev"
moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out"
# We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/
$dev/bin/gdk-pixbuf-query-loaders --update-cache
'';
# The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).
inherit (doCheck);
inherit doCheck;
passthru = {
updateScript = gnome3.updateScript {

View File

@@ -0,0 +1,13 @@
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -85,8 +85,8 @@
'aero.gif',
]
-installed_test_bindir = join_paths(gdk_pixbuf_libexecdir, 'installed-tests', meson.project_name())
-installed_test_datadir = join_paths(gdk_pixbuf_datadir, 'installed-tests', meson.project_name())
+installed_test_bindir = join_paths('@installedtestsprefix@', 'libexec', 'installed-tests', meson.project_name())
+installed_test_datadir = join_paths('@installedtestsprefix@', 'share', 'installed-tests', meson.project_name())
install_data(test_data, install_dir: installed_test_bindir)
install_subdir('test-images', install_dir: installed_test_bindir)

View File

@@ -0,0 +1,18 @@
--- a/meson.build
+++ b/meson.build
@@ -186,13 +186,8 @@
gmodule_dep = dependency('gmodule-no-export-2.0')
gio_dep = dependency('gio-2.0')
-# On non-Windows/macOS systems we always required shared-mime-info and GIO
-if host_system != 'windows' and host_system != 'darwin'
- shared_mime_dep = dependency('shared-mime-info')
- gdk_pixbuf_conf.set('GDK_PIXBUF_USE_GIO_MIME', 1)
-else
- shared_mime_dep = []
-endif
+# No MIME sniffing for now
+shared_mime_dep = []
gdk_pixbuf_deps = [ mathlib_dep, gobject_dep, gmodule_dep, gio_dep, shared_mime_dep ]

View File

@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
doCheck = false; # fails 3 out of 19 tests
meta = {
description = "Graph-based image processing framework";
homepage = http://www.gegl.org;

View File

@@ -5,11 +5,11 @@
with stdenv.lib;
stdenv.mkDerivation rec {
name = "geoclue-2.4.7";
name = "geoclue-2.4.8";
src = fetchurl {
url = "http://www.freedesktop.org/software/geoclue/releases/2.4/${name}.tar.xz";
sha256 = "19hfmr8fa1js8ynazdyjxlyrqpjn6m1719ay70ilga4rayxrcyyi";
sha256 = "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj";
};
outputs = [ "out" "dev" ];

View File

@@ -16,12 +16,19 @@ stdenv.mkDerivation rec {
LDFLAGS = if stdenv.isSunOS then "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec" else "";
configureFlags = [ "--disable-csharp" "--with-xz" ]
configureFlags = [
"--disable-csharp" "--with-xz"
# avoid retaining reference to CF during stdenv bootstrap
++ lib.optionals stdenv.isDarwin [
"gt_cv_func_CFPreferencesCopyAppValue=no"
"gt_cv_func_CFLocaleCopyCurrent=no"
];
] ++ lib.optionals stdenv.isDarwin [
"gt_cv_func_CFPreferencesCopyAppValue=no"
"gt_cv_func_CFLocaleCopyCurrent=no"
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# On cross building, gettext supposes that the wchar.h from libc
# does not fulfill gettext needs, so it tries to work with its
# own wchar.h file, which does not cope well with the system's
# wchar.h and stddef.h (gcc-4.3 - glibc-2.9)
"gl_cv_func_wcwidth_works=yes"
];
postPatch = ''
substituteAllInPlace gettext-runtime/src/gettext.sh.in
@@ -33,22 +40,14 @@ stdenv.mkDerivation rec {
sed -i -e "s/\(libgettextsrc_la_LDFLAGS = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in
'';
# On cross building, gettext supposes that the wchar.h from libc
# does not fulfill gettext needs, so it tries to work with its
# own wchar.h file, which does not cope well with the system's
# wchar.h and stddef.h (gcc-4.3 - glibc-2.9)
preConfigure = ''
if test -n "$crossConfig"; then
echo gl_cv_func_wcwidth_works=yes > cachefile
configureFlags="$configureFlags --cache-file=`pwd`/cachefile"
fi
'';
nativeBuildInputs = [ xz xz.bin ];
# HACK, see #10874 (and 14664)
buildInputs = stdenv.lib.optional (!stdenv.isLinux && !hostPlatform.isCygwin) libiconv;
setupHook = ./gettext-setup-hook.sh;
setupHooks = [
../../../build-support/setup-hooks/role.bash
./gettext-setup-hook.sh
];
gettextNeedsLdflags = hostPlatform.libc != "glibc" && !hostPlatform.isMusl;
enableParallelBuilding = true;

View File

@@ -1,6 +1,8 @@
gettextDataDirsHook() {
# See pkgs/build-support/setup-hooks/role.bash
getHostRoleEnvHook
if [ -d "$1/share/gettext" ]; then
addToSearchPath GETTEXTDATADIRS "$1/share/gettext"
addToSearchPath "GETTEXTDATADIRS${role_post}" "$1/share/gettext"
fi
}
@@ -8,21 +10,8 @@ addEnvHooks "$hostOffset" gettextDataDirsHook
# libintl must be listed in load flags on non-Glibc
# it doesn't hurt to have it in Glibc either though
gettextLdflags() {
# The `depHostOffset` describes how the host platform of the dependencies
# are slid relative to the depending package. It is brought into scope of
# the environment hook defined as the role of the dependency being applied.
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}LDFLAGS+=" -lintl"
}
if [ ! -z "@gettextNeedsLdflags@" ]; then
addEnvHooks "$hostOffset" gettextLdflags
# See pkgs/build-support/setup-hooks/role.bash
getHostRole
export NIX_${role_pre}LDFLAGS+=" -lintl"
fi

View File

@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doCheck = false; # hangs. or very expensive?
meta = {
description = "The Git linkable library";
homepage = https://libgit2.github.com/;

View File

@@ -26,6 +26,8 @@ stdenv.mkDerivation (rec {
enableParallelBuilding = true;
doCheck = false; # hangs. or very expensive?
meta = with stdenv.lib; {
description = "The Git linkable library";
homepage = https://libgit2.github.com/;

View File

@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
++ optionals stdenv.isLinux [ utillinuxMinimal ] # for libmount
++ optionals doCheck [ tzdata libxml2 desktop-file-utils shared-mime-info ];
nativeBuildInputs = [ pkgconfig perl python ];
nativeBuildInputs = [ pkgconfig perl python gettext ];
propagatedBuildInputs = [ zlib libffi gettext libiconv ];

View File

@@ -188,6 +188,8 @@ stdenv.mkDerivation ({
preBuild = lib.optionalString withGd "unset NIX_DONT_SET_RPATH";
doCheck = false; # fails
meta = {
homepage = http://www.gnu.org/software/libc/;
description = "The GNU C Library";

View File

@@ -71,14 +71,15 @@ callPackage ./common.nix { inherit stdenv; } {
# Get rid of more unnecessary stuff.
rm -rf $out/var $bin/bin/sln
''
# For some reason these aren't stripped otherwise and retain reference
# to bootstrap-tools; on cross-arm this stripping would break objects.
if [ -z "$crossConfig" ]; then
for i in "$out"/lib/*.a; do
[ "$i" = "$out/lib/libm.a" ] || strip -S "$i"
done
fi
+ stdenv.lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
for i in "$out"/lib/*.a; do
[ "$i" = "$out/lib/libm.a" ] || $STRIP -S "$i"
done
'' + ''
# Put libraries for static linking in a separate output. Note
# that libc_nonshared.a and libpthread_nonshared.a are required

View File

@@ -1,16 +1,16 @@
{ stdenv, fetchurl }:
let
rev = "6a82322dd05cdc57b4cd9f7effdf1e2fd6f7482b";
rev = "b75cdc942a6172f63b34faf642b8c797239f6776";
# Don't use fetchgit as this is needed during Aarch64 bootstrapping
configGuess = fetchurl {
url = "http://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}";
sha256 = "1yj9yi94h7z4z6jzickddv64ksz1aq5kj0c7krgzjn8xf8p3avmh";
sha256 = "1bb8z1wzjs81p9qrvji4bc2a8zyxjinz90k8xq7sxxdp6zrmq1sv";
};
configSub = fetchurl {
url = "http://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
sha256 = "1qsqdpla6icbzskkk7v3zxrpzlpqlc94ny9hyy5wh5lm5rwwfvb7";
sha256 = "00dn5i2cp4iqap5vr368r5ifrgcjfq5pr97i4dkkdbha1han5hsc";
};
in
stdenv.mkDerivation rec {

View File

@@ -49,6 +49,8 @@ stdenv.mkDerivation rec {
cairoLib = "${getLib cairo}/lib";
});
doCheck = false; # fails
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;

View File

@@ -31,6 +31,8 @@ mkDerivation rec {
setupHook = ./setup-hook.sh;
doCheck = false; # fails all the tests (ctest)
meta = with lib; {
description = "Qt5 port of Django template system";
longDescription = ''

View File

@@ -70,4 +70,9 @@ stdenv.mkDerivation rec {
++ optional (!stdenv.isDarwin) wildmidi
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
++ optional (!stdenv.isDarwin) mjpegtools;
enableParallelBuilding = true;
doCheck = false; # fails 20 out of 58 tests, expensive
}

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchurl, fetchpatch, lib
, pkgconfig, meson, ninja, gettext, gobjectIntrospection
, python, gstreamer, orc, pango, libtheora, libvisual
, libintl
, libintl, libopus
, enableX11 ? stdenv.isLinux, libXv
, enableWayland ? stdenv.isLinux, wayland
, enableAlsa ? stdenv.isLinux, alsaLib
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
# Introspection fails on my MacBook currently
++ lib.optional stdenv.isDarwin "--disable-introspection";
buildInputs = [ orc libtheora libintl ]
buildInputs = [ orc libtheora libintl libopus ]
++ lib.optional enableAlsa alsaLib
++ lib.optionals enableX11 [ libXv pango ]
++ lib.optional enableWayland wayland

View File

@@ -4,6 +4,7 @@
, cupsSupport ? true, cups ? null
, gdktarget ? "x11"
, AppKit, Cocoa
, fetchpatch
}:
assert xineramaSupport -> xorg.libXinerama != null;
@@ -28,7 +29,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ setupHook perl pkgconfig gettext gobjectIntrospection ];
patches = [ ./2.0-immodules.cache.patch ./gtk2-theme-paths.patch ];
patches = [
./2.0-immodules.cache.patch
./gtk2-theme-paths.patch
] ++ optional stdenv.isDarwin (fetchpatch {
url = https://bug557780.bugzilla-attachments.gnome.org/attachment.cgi?id=306776;
sha256 = "0sp8f1r5c4j2nlnbqgv7s7nxa4cfwigvm033hvhb1ld652pjag4r";
});
propagatedBuildInputs = with xorg;
[ glib cairo pango gdk_pixbuf atk ]
@@ -49,6 +56,8 @@ stdenv.mkDerivation rec {
"--disable-visibility"
];
doCheck = false; # needs X11
postInstall = ''
moveToOutput share/gtk-2.0/demo "$devdoc"
# The updater is needed for nixos env and it's tiny.

View File

@@ -63,6 +63,8 @@ stdenv.mkDerivation rec {
"--enable-wayland-backend"
];
doCheck = false; # needs X11
postInstall = optionalString (!stdenv.isDarwin) ''
substituteInPlace "$out/lib/gtk-3.0/3.0.0/printbackends/libprintbackend-cups.la" \
--replace '-L${gmp.dev}/lib' '-L${gmp.out}/lib'

View File

@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ glib gettext ];
doCheck = false; # fails with "permission denied"
meta = {
homepage = http://gts.sourceforge.net/;
license = stdenv.lib.licenses.lgpl2Plus;

View File

@@ -9,12 +9,14 @@ stdenv.mkDerivation {
];
buildInputs = [ zlib ];
src = fetchurl {
url = mirror://sourceforge/id3lib/id3lib-3.8.3.tar.gz;
sha256 = "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97";
};
doCheck = false; # fails to compile
meta = {
platforms = stdenv.lib.platforms.unix;
};

View File

@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
doCheck = false; # fails
postInstall = ''
moveToOutput bin "$bin"
'';

View File

@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, python2, perl, yacc, flex
, texinfo, perlPackages
, openldap, libcap_ng, sqlite, openssl, db, libedit, pam
, CoreFoundation, Security, SystemConfiguration
# Extra Args
, type ? ""
}:
@@ -26,8 +26,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkgconfig python2 perl yacc flex ]
++ (with perlPackages; [ JSON ])
++ optional (!libOnly) texinfo;
buildInputs = optionals (!stdenv.isFreeBSD) [ libcap_ng db ]
++ [ sqlite openssl libedit ]
buildInputs = optionals (stdenv.isLinux) [ libcap_ng ]
++ [ db sqlite openssl libedit ]
++ optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ]
++ optionals (!libOnly) [ openldap pam ];
## ugly, X should be made an option
@@ -39,10 +40,11 @@ stdenv.mkDerivation rec {
"--with-libedit=${libedit}"
"--with-openssl=${openssl.dev}"
"--without-x"
"--with-berkeley-db=${db}"
"--with-berkeley-db"
"--with-berkeley-db-include=${db.dev}/include"
] ++ optionals (!libOnly) [
"--with-openldap=${openldap.dev}"
] ++ optionals (!stdenv.isFreeBSD) [
] ++ optionals (stdenv.isLinux) [
"--with-capng"
];
@@ -92,7 +94,7 @@ stdenv.mkDerivation rec {
meta = {
description = "An implementation of Kerberos 5 (and some more stuff)";
license = licenses.bsd3;
platforms = platforms.linux ++ platforms.freebsd;
platforms = platforms.unix;
maintainers = with maintainers; [ wkennington ];
};

View File

@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
'';
enableParallelBuilding = true;
doCheck = false; # fails with "No suitable file for testing purposes"
meta = {
description = "MIT Kerberos 5";

View File

@@ -12,6 +12,8 @@ stdenv.mkDerivation {
outputs = [ "bin" "dev" "out" "man" ];
doCheck = false; # fails with "Error in Linear interpolation (2p): Must be i=8000, But is n=8001"
meta = {
description = "Color management engine";
homepage = http://www.littlecms.com/;

View File

@@ -40,6 +40,9 @@ stdenv.mkDerivation rec {
"--with-trust-anchor=${dns-root-data}/root.key"
"--with-drill"
"--disable-gost"
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
postInstall = ''

View File

@@ -2,7 +2,7 @@
{ stdenv, fetchurl, lib, file
, pkgconfig, autoconf
, glib, dbus-glib, gtkVersion
, glib, dbus-glib, gtkVersion ? "3"
, gtk2 ? null, libindicator-gtk2 ? null, libdbusmenu-gtk2 ? null
, gtk3 ? null, libindicator-gtk3 ? null, libdbusmenu-gtk3 ? null
, python2Packages, gobjectIntrospection, vala

View File

@@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
echo "#include <windows.h>" >> config.h
'' else null;
doCheck = false; # fails
preFixup = ''
sed -i $lib/lib/libarchive.la \
-e 's|-lcrypto|-L${openssl.out}/lib -lcrypto|' \

View File

@@ -18,7 +18,7 @@
assert faacSupport -> enableUnfree;
let inherit (stdenv.lib) optional optionals hasPrefix; in
let inherit (stdenv.lib) optional optionals hasPrefix enableFeature; in
/* ToDo:
- more deps, inspiration: http://packages.ubuntu.com/raring/libav-tools
@@ -51,29 +51,35 @@ let
substituteInPlace ./configure --replace "#! /bin/sh" "#!${bash}/bin/sh"
'';
configureFlags =
assert stdenv.lib.all (x: x!=null) buildInputs;
[
configurePlatforms = [];
configureFlags = assert stdenv.lib.all (x: x!=null) buildInputs; [
"--arch=${hostPlatform.parsed.cpu.name}"
"--target_os=${hostPlatform.parsed.kernel.name}"
#"--enable-postproc" # it's now a separate package in upstream
"--disable-avserver" # upstream says it's in a bad state
"--enable-avplay"
"--enable-shared"
"--enable-runtime-cpudetect"
"--cc=cc"
]
++ optionals enableGPL [ "--enable-gpl" "--enable-swscale" ]
++ optional mp3Support "--enable-libmp3lame"
++ optional speexSupport "--enable-libspeex"
++ optional theoraSupport "--enable-libtheora"
++ optional vorbisSupport "--enable-libvorbis"
++ optional vpxSupport "--enable-libvpx"
++ optional x264Support "--enable-libx264"
++ optional xvidSupport "--enable-libxvid"
++ optional faacSupport "--enable-libfaac --enable-nonfree"
++ optional vaapiSupport "--enable-vaapi"
++ optional vdpauSupport "--enable-vdpau"
++ optional freetypeSupport "--enable-libfreetype"
;
(enableFeature enableGPL "gpl")
(enableFeature enableGPL "swscale")
(enableFeature mp3Support "libmp3lame")
(enableFeature mp3Support "libmp3lame")
(enableFeature speexSupport "libspeex")
(enableFeature theoraSupport "libtheora")
(enableFeature vorbisSupport "libvorbis")
(enableFeature vpxSupport "libvpx")
(enableFeature x264Support "libx264")
(enableFeature xvidSupport "libxvid")
(enableFeature faacSupport "libfaac")
(enableFeature faacSupport "nonfree")
(enableFeature vaapiSupport "vaapi")
(enableFeature vdpauSupport "vdpau")
(enableFeature freetypeSupport "libfreetype")
] ++ optional (stdenv.hostPlatform != stdenv.buildPlatform) [
"--cross-prefix=${stdenv.cc.targetPrefix}"
"--enable-cross-compile"
];
nativeBuildInputs = [ pkgconfig perl ];
buildInputs = [ lame yasm zlib bzip2 SDL bash ]
@@ -112,16 +118,6 @@ let
doInstallCheck = false; # fails randomly
installCheckTarget = "check"; # tests need to be run *after* installation
crossAttrs = {
configurePlatforms = [];
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cc.targetPrefix}"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${hostPlatform.parsed.cpu.name}"
];
};
passthru = { inherit vdpauSupport; };
meta = with stdenv.lib; {

View File

@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv;
doCheck = false; # fails 3 of 5 tests with locale errors
meta = with stdenv.lib; {
description = "C library to access data on a CDDB server (freedb.org)";
homepage = http://libcddb.sourceforge.net/;

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