mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-25 20:34:52 +03:00
Merge pull request #1928 from 'cross-win-osx'.
This includes a lot of fixes for cross-building to Windows and Mac OS X and could possibly fix things even for non-cross-builds, like for example OpenSSL on Windows. The main reason for merging this in 14.04 already is that we already have runInWindowsVM in master and it doesn't work until we actually cross-build Cygwin's setup binary as the upstream version is a fast moving target which gets _overwritten_ on every new release. Conflicts: pkgs/top-level/all-packages.nix
This commit is contained in:
commit
625d7b9043
@ -26,6 +26,10 @@ if test -z "$nativeLibc"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$osxMinVersion" ]; then
|
||||
cflagsCompile="$cflagsCompile -mmacosx-version-min=$osxMinVersion"
|
||||
fi
|
||||
|
||||
echo "$cflagsCompile -B$libc/lib/ -idirafter $libc/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
|
||||
|
||||
echo "-L$libc/lib -rpath $libc/lib -rpath-link $libc/lib" > $out/nix-support/libc-ldflags
|
||||
|
@ -46,6 +46,7 @@ stdenv.mkDerivation {
|
||||
addFlags = ./add-flags;
|
||||
inherit nativeTools nativeLibc nativePrefix gcc libc binutils;
|
||||
crossConfig = if cross != null then cross.config else null;
|
||||
osxMinVersion = cross.osxMinVersion or null;
|
||||
gccLibs = if gcc != null then gccLibs else null;
|
||||
name = chosenName;
|
||||
langC = if nativeTools then true else gcc.langC;
|
||||
|
@ -75,6 +75,9 @@ fi
|
||||
# native compilations.
|
||||
doCheck=""
|
||||
|
||||
# Don't strip foreign binaries with native "strip" tool.
|
||||
dontStrip=1
|
||||
|
||||
# Add the output as an rpath.
|
||||
if test "$NIX_NO_SELF_RPATH" != "1"; then
|
||||
export NIX_CROSS_LDFLAGS="-rpath $out/lib -rpath-link $out/lib $NIX_CROSS_LDFLAGS"
|
||||
|
@ -17,13 +17,17 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
outputs = [ "out" "lib" ];
|
||||
|
||||
makeFlags = "TOPDIR=$(out) TZDIR=$(out)/share/zoneinfo ETCDIR=$(TMPDIR)/etc LIBDIR=$(TMPDIR)/lib MANDIR=$(TMPDIR)/man AWK=awk";
|
||||
makeFlags = "TOPDIR=$(out) TZDIR=$(out)/share/zoneinfo ETCDIR=$(TMPDIR)/etc LIBDIR=$(lib)/lib MANDIR=$(TMPDIR)/man AWK=awk";
|
||||
|
||||
postInstall =
|
||||
''
|
||||
mv $out/share/zoneinfo-posix $out/share/zoneinfo/posix
|
||||
mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
|
||||
|
||||
ensureDir "$lib/include"
|
||||
cp tzfile.h "$lib/include/tzfile.h"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -159,10 +159,8 @@ let version = "4.6.3";
|
||||
# In any case, mingw32 g++ linking is broken by default with shared libs,
|
||||
# unless adding "-lsupc++" to any linking command. I don't know why.
|
||||
" --disable-shared" +
|
||||
(if cross.config == "x86_64-w64-mingw32" then
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else "")
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
# In uclibc cases, libgomp needs an additional '-ldl'
|
||||
# and as I don't know how to pass it, I disable libgomp.
|
||||
|
@ -117,7 +117,8 @@ let version = "4.8.2";
|
||||
withMode;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
crossMingw = (cross != null && cross.libc == "msvcrt");
|
||||
crossMingw = cross != null && cross.libc == "msvcrt";
|
||||
crossDarwin = cross != null && cross.libc == "libSystem";
|
||||
crossConfigureFlags = let
|
||||
gccArch = stdenv.cross.gcc.arch or null;
|
||||
gccCpu = stdenv.cross.gcc.cpu or null;
|
||||
@ -161,7 +162,13 @@ let version = "4.8.2";
|
||||
" --disable-shared" +
|
||||
" --disable-decimal-float" # libdecnumber requires libc
|
||||
else
|
||||
" --with-headers=${libcCross}/include" +
|
||||
(if crossDarwin then " --with-sysroot=${libcCross}/share/sysroot"
|
||||
else " --with-headers=${libcCross}/include") +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
|
||||
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
|
||||
)) +
|
||||
" --enable-__cxa_atexit" +
|
||||
" --enable-long-long" +
|
||||
(if crossMingw then
|
||||
@ -175,10 +182,8 @@ let version = "4.8.2";
|
||||
# In any case, mingw32 g++ linking is broken by default with shared libs,
|
||||
# unless adding "-lsupc++" to any linking command. I don't know why.
|
||||
" --disable-shared" +
|
||||
(if cross.config == "x86_64-w64-mingw32" then
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else "")
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
# In uclibc cases, libgomp needs an additional '-ldl'
|
||||
# and as I don't know how to pass it, I disable libgomp.
|
||||
@ -346,6 +351,7 @@ stdenv.mkDerivation ({
|
||||
++ optional langAda "ada"
|
||||
++ optional langVhdl "vhdl"
|
||||
++ optional langGo "go"
|
||||
++ optionals crossDarwin [ "objc" "obj-c++" ]
|
||||
)
|
||||
)
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "004zyh9p3lpvbwhyhlmrw6wwcia5abx84q4h2brkn4zdypipvmiz";
|
||||
};
|
||||
|
||||
buildInputs = [ readline ];
|
||||
nativeBuildInputs = [ readline ];
|
||||
|
||||
patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [ dsoPatch ];
|
||||
|
||||
@ -54,6 +54,37 @@ stdenv.mkDerivation rec {
|
||||
EOF
|
||||
'';
|
||||
|
||||
crossAttrs = let
|
||||
isMingw = stdenv.cross.libc == "msvcrt";
|
||||
isDarwin = stdenv.cross.libc == "libSystem";
|
||||
in {
|
||||
configurePhase = ''
|
||||
makeFlagsArray=(
|
||||
INSTALL_TOP=$out
|
||||
INSTALL_MAN=$out/share/man/man1
|
||||
CC=${stdenv.cross.config}-gcc
|
||||
STRIP=:
|
||||
RANLIB=${stdenv.cross.config}-ranlib
|
||||
V=${majorVersion}
|
||||
R=${version}
|
||||
${if isMingw then "mingw" else stdenv.lib.optionalString isDarwin ''
|
||||
AR="${stdenv.cross.config}-ar rcu"
|
||||
macosx
|
||||
''}
|
||||
)
|
||||
'' + stdenv.lib.optionalString isMingw ''
|
||||
installFlagsArray=(
|
||||
TO_BIN="lua.exe luac.exe"
|
||||
TO_LIB="liblua.a lua52.dll"
|
||||
INSTALL_DATA="cp -d"
|
||||
)
|
||||
'';
|
||||
} // stdenv.lib.optionalAttrs isDarwin {
|
||||
postPatch = ''
|
||||
sed -i -e 's/-Wl,-soname[^ ]* *//' src/Makefile
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.lua.org";
|
||||
description = "Powerful, fast, lightweight, embeddable scripting language";
|
||||
|
@ -7,21 +7,13 @@
|
||||
|
||||
# OSS is no longer supported, for it's much crappier than ALSA and
|
||||
# PulseAudio.
|
||||
assert alsaSupport || pulseaudioSupport;
|
||||
assert !(stdenv ? cross) -> alsaSupport || pulseaudioSupport;
|
||||
|
||||
assert openglSupport -> (mesa != null && x11Support);
|
||||
assert x11Support -> (x11 != null && libXrandr != null);
|
||||
assert alsaSupport -> alsaLib != null;
|
||||
assert pulseaudioSupport -> pulseaudio != null;
|
||||
|
||||
let
|
||||
configureFlagsFun = attrs: ''
|
||||
--disable-oss --disable-video-x11-xme
|
||||
--disable-x11-shared --disable-alsa-shared --enable-rpath --disable-pulseaudio-shared
|
||||
--disable-osmesa-shared
|
||||
${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""}
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.2.15";
|
||||
name = "SDL-${version}";
|
||||
@ -32,20 +24,46 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
# Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
|
||||
propagatedBuildInputs = stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
|
||||
propagatedNativeBuildInputs =
|
||||
stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
|
||||
stdenv.lib.optional pulseaudioSupport pulseaudio;
|
||||
|
||||
buildInputs = [ pkgconfig audiofile ] ++
|
||||
buildInputs = let
|
||||
notMingw = !(stdenv ? cross) || stdenv.cross.libc != "msvcrt";
|
||||
in stdenv.lib.optional notMingw audiofile;
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ] ++
|
||||
stdenv.lib.optional openglSupport [ mesa ] ++
|
||||
stdenv.lib.optional alsaSupport alsaLib;
|
||||
|
||||
# XXX: By default, SDL wants to dlopen() PulseAudio, in which case
|
||||
# we must arrange to add it to its RPATH; however, `patchelf' seems
|
||||
# to fail at doing this, hence `--disable-pulseaudio-shared'.
|
||||
configureFlags = configureFlagsFun { inherit alsaLib; };
|
||||
configureFlags = [
|
||||
"--disable-oss"
|
||||
"--disable-video-x11-xme"
|
||||
"--disable-x11-shared"
|
||||
"--disable-alsa-shared"
|
||||
"--enable-rpath"
|
||||
"--disable-pulseaudio-shared"
|
||||
"--disable-osmesa-shared"
|
||||
] ++ stdenv.lib.optionals (stdenv ? cross) ([
|
||||
"--without-x"
|
||||
] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib}/lib");
|
||||
|
||||
crossAttrs = {
|
||||
configureFlags = configureFlagsFun { alsaLib = alsaLib.crossDrv; };
|
||||
crossAttrs =stdenv.lib.optionalAttrs (stdenv.cross.libc == "libSystem") {
|
||||
patches = let
|
||||
f = rev: sha256: fetchurl {
|
||||
url = "http://hg.libsdl.org/SDL/raw-rev/${rev}";
|
||||
inherit sha256;
|
||||
};
|
||||
in [
|
||||
(f "e9466ead70e5" "0ygir3k83d0vxp7s3k48jn3j8n2bnv9wm6613wpx3ybnjrxabrip")
|
||||
(f "bbfb41c13a87" "17v29ybjifvka19m8qf14rjc43nfdwk9v9inaizznarhb17amlnv")
|
||||
];
|
||||
postPatch = ''
|
||||
sed -i -e 's/ *-fpascal-strings//' configure
|
||||
'';
|
||||
};
|
||||
|
||||
passthru = {inherit openglSupport;};
|
||||
|
@ -3,7 +3,7 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "audiofile-0.3.6";
|
||||
|
||||
buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
|
||||
nativeBuildInputs = stdenv.lib.optional stdenv.isLinux alsaLib;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://audiofile.68k.org/${name}.tar.gz";
|
||||
|
@ -1,5 +1,7 @@
|
||||
{ stdenv, fetchurl, mesa_glu, x11, libXmu, libXi }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "glew-1.10.0";
|
||||
|
||||
@ -8,23 +10,38 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
|
||||
};
|
||||
|
||||
|
||||
buildInputs = [ x11 libXmu libXi ];
|
||||
propagatedBuildInputs = [ mesa_glu ]; # GL/glew.h includes GL/glu.h
|
||||
nativeBuildInputs = [ x11 libXmu libXi ];
|
||||
propagatedNativeBuildInputs = [ mesa_glu ]; # GL/glew.h includes GL/glu.h
|
||||
|
||||
patchPhase = ''
|
||||
sed -i 's|lib64|lib|' config/Makefile.linux
|
||||
${optionalString (stdenv ? cross) ''
|
||||
sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile
|
||||
''}
|
||||
'';
|
||||
|
||||
buildPhase = "make all";
|
||||
installPhase = ''
|
||||
GLEW_DEST=$out make install.all
|
||||
buildFlags = [ "all" ];
|
||||
installFlags = [ "install.all" ];
|
||||
|
||||
preInstall = ''
|
||||
export GLEW_DEST="$out"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -pv $out/share/doc/glew
|
||||
mkdir -p $out/lib/pkgconfig
|
||||
cp glew*.pc $out/lib/pkgconfig
|
||||
cp -r README.txt LICENSE.txt doc $out/share/doc/glew
|
||||
'';
|
||||
|
||||
crossAttrs.makeFlags = [
|
||||
"CC=${stdenv.cross.config}-gcc"
|
||||
"LD=${stdenv.cross.config}-gcc"
|
||||
"AR=${stdenv.cross.config}-ar"
|
||||
"STRIP="
|
||||
] ++ optional (stdenv.cross.libc == "msvcrt") "SYSTEM=mingw"
|
||||
++ optional (stdenv.cross.libc == "libSystem") "SYSTEM=darwin";
|
||||
|
||||
meta = {
|
||||
description = "An OpenGL extension loading library for C(++)";
|
||||
homepage = http://glew.sourceforge.net/;
|
||||
|
@ -24,6 +24,12 @@ stdenv.mkDerivation rec {
|
||||
make check
|
||||
'';
|
||||
|
||||
crossAttrs = let
|
||||
isCross64 = stdenv.cross.config == "x86_64-w64-mingw32";
|
||||
in stdenv.lib.optionalAttrs isCross64 {
|
||||
configureFlags = [ "--disable-asm" "--disable-padlock-support" ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "GNU Libgcrypt, a general-pupose cryptographic library";
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, bash }:
|
||||
{ stdenv, fetchurl, bash, gettext }:
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
name = "libgpg-error-1.12";
|
||||
@ -8,6 +8,10 @@ stdenv.mkDerivation (rec {
|
||||
sha256 = "0pz58vr12qihq2f0bypjxsb6cf6ajq5258fmfm8s6lvwm3b9xz6a";
|
||||
};
|
||||
|
||||
# If architecture-dependant MO files aren't available, they're generated
|
||||
# during build, so we need gettext for cross-builds.
|
||||
crossAttrs.buildInputs = [ gettext ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
|
@ -1,4 +1,6 @@
|
||||
{ stdenv, fetchurl }:
|
||||
{ stdenv, fetchurl, static ? false }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "libjpeg-8d";
|
||||
@ -8,6 +10,8 @@ stdenv.mkDerivation {
|
||||
sha256 = "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0";
|
||||
};
|
||||
|
||||
configureFlags = optional static "--enable-static --disable-shared";
|
||||
|
||||
meta = {
|
||||
homepage = http://www.ijg.org/;
|
||||
description = "A library that implements the JPEG image file format";
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchurl, zlib, xz }:
|
||||
|
||||
assert zlib != null;
|
||||
assert !(stdenv ? cross) -> zlib != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "libpng-1.2.51";
|
||||
@ -16,6 +16,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
passthru = { inherit zlib; };
|
||||
|
||||
crossAttrs = stdenv.lib.optionalAttrs (stdenv.cross.libc == "libSystem") {
|
||||
propagatedBuildInputs = [];
|
||||
passthru = {};
|
||||
};
|
||||
|
||||
configureFlags = "--enable-static";
|
||||
|
||||
meta = {
|
||||
description = "The official reference implementation for the PNG file format";
|
||||
homepage = http://www.libpng.org/pub/png/libpng.html;
|
||||
|
@ -12,7 +12,7 @@ diff -ru -x '*~' openssl-1.0.0e-orig/crypto/x509/x509_def.c openssl-1.0.0e/crypt
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/x509.h>
|
||||
@@ -71,7 +75,19 @@
|
||||
@@ -71,7 +75,25 @@
|
||||
{ return(X509_CERT_DIR); }
|
||||
|
||||
const char *X509_get_default_cert_file(void)
|
||||
@ -23,9 +23,15 @@ diff -ru -x '*~' openssl-1.0.0e-orig/crypto/x509/x509_def.c openssl-1.0.0e/crypt
|
||||
+ if (!init) {
|
||||
+ init = 1;
|
||||
+ char * s = getenv("OPENSSL_X509_CERT_FILE");
|
||||
+ if (s && getuid() == geteuid()) {
|
||||
+ strncpy(buf, s, sizeof(buf));
|
||||
+ buf[sizeof(buf) - 1] = 0;
|
||||
+ if (s) {
|
||||
+#ifndef OPENSSL_SYS_WINDOWS
|
||||
+ if (getuid() == geteuid()) {
|
||||
+#endif
|
||||
+ strncpy(buf, s, sizeof(buf));
|
||||
+ buf[sizeof(buf) - 1] = 0;
|
||||
+#ifndef OPENSSL_SYS_WINDOWS
|
||||
+ }
|
||||
+#endif
|
||||
+ }
|
||||
+ }
|
||||
+ return buf;
|
||||
|
@ -8,7 +8,9 @@ let
|
||||
(throw "openssl needs its platform name cross building" null)
|
||||
stdenv.cross;
|
||||
|
||||
patchesCross = isCross:
|
||||
patchesCross = isCross: let
|
||||
isDarwin = stdenv.isDarwin || (isCross && stdenv.cross.libc == "libSystem");
|
||||
in
|
||||
[ # Allow the location of the X509 certificate file (the CA
|
||||
# bundle) to be set through the environment variable
|
||||
# ‘OPENSSL_X509_CERT_FILE’. This is necessary because the
|
||||
@ -29,7 +31,7 @@ let
|
||||
./kfreebsd-gnu.patch
|
||||
]
|
||||
|
||||
++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch;
|
||||
++ stdenv.lib.optional isDarwin ./darwin-arch.patch;
|
||||
|
||||
in
|
||||
|
||||
@ -91,6 +93,8 @@ stdenv.mkDerivation {
|
||||
rm $out/bin/c_rehash $out/ssl/misc/CA.pl $out/ssl/misc/tsget
|
||||
'';
|
||||
configureScript = "./Configure";
|
||||
} // stdenv.lib.optionalAttrs (opensslCrossSystem == "darwin64-x86_64-cc") {
|
||||
CC = "gcc";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -1,4 +1,8 @@
|
||||
{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
|
||||
{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true
|
||||
, windows ? null
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pcre-8.34";
|
||||
@ -16,12 +20,16 @@ stdenv.mkDerivation rec {
|
||||
--enable-jit
|
||||
${if unicodeSupport then "--enable-unicode-properties" else ""}
|
||||
${if !cplusplusSupport then "--disable-cpp" else ""}
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
|
||||
'' + optionalString stdenv.isDarwin "CXXFLAGS=-O0";
|
||||
|
||||
doCheck = with stdenv; !(isCygwin || isFreeBSD);
|
||||
# XXX: test failure on Cygwin
|
||||
# we are running out of stack on both freeBSDs on Hydra
|
||||
|
||||
crossAttrs = optionalAttrs (stdenv.cross.libc == "msvcrt") {
|
||||
buildInputs = [ windows.mingw_w64_pthreads.crossDrv ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.pcre.org/";
|
||||
description = "A library for Perl Compatible Regular Expressions";
|
||||
@ -35,7 +43,7 @@ stdenv.mkDerivation rec {
|
||||
PCRE library is free, even for building proprietary software.
|
||||
'';
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.simons ];
|
||||
};
|
||||
}
|
||||
|
@ -148,8 +148,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
crossAttrs = let
|
||||
isMingw = stdenv.cross.config == "i686-pc-mingw32" ||
|
||||
stdenv.cross.config == "x86_64-w64-mingw32";
|
||||
isMingw = stdenv.cross.libc == "msvcrt";
|
||||
in {
|
||||
# I've not tried any case other than i686-pc-mingw32.
|
||||
# -nomake tools: it fails linking some asian language symbols
|
||||
|
@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
|
||||
"-f" "win32/Makefile.gcc"
|
||||
"PREFIX=${stdenv.cross.config}-"
|
||||
] ++ (if static then [] else [ "SHARED_MODE=1" ]);
|
||||
} // stdenv.lib.optionalAttrs (stdenv.cross.libc == "libSystem") {
|
||||
makeFlags = [ "RANLIB=${stdenv.cross.config}-ranlib" ];
|
||||
};
|
||||
|
||||
# zlib doesn't like the automatic --disable-shared from the Cygwin stdenv.
|
||||
|
28
pkgs/development/mobile/xpwn/default.nix
Normal file
28
pkgs/development/mobile/xpwn/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchgit, cmake, zlib, libpng, bzip2, libusb, openssl }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "xpwn-0.5.8git";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://github.com/dborca/xpwn.git";
|
||||
rev = "4534da88d4e8a32cdc9da9b5326e2cc482c95ef0";
|
||||
sha256 =
|
||||
"1h1ak40fg5bym0hifpii9q2hqdp2m387cwfzb4bl6qq36xpkd6wv";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
sed -r -i \
|
||||
-e 's/(install.*TARGET.*DESTINATION )\.\)/\1bin)/' \
|
||||
-e 's!(install.*(FILE|DIR).*DESTINATION )([^)]*)!\1share/xpwn/\3!' \
|
||||
*/CMakeLists.txt
|
||||
sed -i -e '/install/d' CMakeLists.txt
|
||||
'';
|
||||
|
||||
buildInputs = [ cmake zlib libpng bzip2 libusb openssl ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";
|
||||
description = "Custom NOR firmware loader/IPSW generator for the iPhone";
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
@ -26,7 +26,13 @@ stdenv.mkDerivation rec {
|
||||
patches =
|
||||
# Don't search in non-Nix locations such as /usr, but do search in
|
||||
# Nixpkgs' Glibc.
|
||||
optional (stdenv ? glibc) ./search-path.patch;
|
||||
optional (stdenv ? glibc) ./search-path.patch ++
|
||||
optional (stdenv ? cross) (fetchurl {
|
||||
name = "fix-darwin-cross-compile.patch";
|
||||
url = "http://public.kitware.com/Bug/file_download.php?"
|
||||
+ "file_id=4981&type=bug";
|
||||
sha256 = "16acmdr27adma7gs9rs0dxdiqppm15vl3vv3agy7y8s94wyh4ybv";
|
||||
});
|
||||
|
||||
buildInputs = [ curl expat zlib bzip2 libarchive ]
|
||||
++ optional useNcurses ncurses
|
||||
|
@ -1,26 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
if test $cross = "arm-linux" ; then
|
||||
configureFlags="--target=arm-linux"
|
||||
elif test $cross = "mips-linux" ; then
|
||||
configureFlags="--target=mips-linux"
|
||||
elif test $cross = "mipsel-linux" ; then
|
||||
configureFlags="--target=mipsel-linux"
|
||||
elif test $cross = "sparc-linux" ; then
|
||||
configureFlags="--target=sparc-linux"
|
||||
elif test $cross = "powerpc-linux" ; then
|
||||
configureFlags="--target=powerpc-linux"
|
||||
elif test $cross = "ppc-linux" ; then
|
||||
configureFlags="--target=powerpc-linux"
|
||||
fi
|
||||
|
||||
patchConfigure() {
|
||||
# Clear the default library search path.
|
||||
if test "$noSysDirs" = "1"; then
|
||||
echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
|
||||
fi
|
||||
}
|
||||
|
||||
preConfigure=patchConfigure
|
||||
|
||||
genericBuild
|
@ -1,13 +0,0 @@
|
||||
{stdenv, fetchurl, noSysDirs, cross}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "binutils-2.16.1";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2;
|
||||
md5 = "6a9d529efb285071dad10e1f3d2b2967";
|
||||
};
|
||||
inherit noSysDirs;
|
||||
#configureFlags = if cross=="arm-linux" then "--target=arm-linux" else if cross=="mips-linux" then "--target=mips-linux" else if cross=="sparc-linux" then "--target=sparc-linux";
|
||||
inherit cross;
|
||||
}
|
64
pkgs/os-specific/darwin/cctools-port/default.nix
Normal file
64
pkgs/os-specific/darwin/cctools-port/default.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ stdenv, cross, fetchurl, autoconf, automake, libtool
|
||||
, libcxx, llvm, clang, openssl, libuuid
|
||||
, maloader, makeWrapper, xctoolchain
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cctools-port-${version}";
|
||||
version = "845";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/tpoechtrager/cctools-port/archive/"
|
||||
+ "cctools-${version}-ld64-136-1.tar.gz";
|
||||
sha256 = "06pg6h1g8avgx4j6cfykdpggf490li796gzhhyqn27jsagli307i";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
autoconf automake libtool libcxx llvm clang openssl libuuid makeWrapper
|
||||
];
|
||||
|
||||
patches = [ ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs tools
|
||||
sed -i -e 's/which/type -P/' tools/*.sh
|
||||
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' cctools/autogen.sh
|
||||
|
||||
# Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157
|
||||
cat > cctools/include/unistd.h <<EOF
|
||||
#ifdef __block
|
||||
# undef __block
|
||||
# include_next "unistd.h"
|
||||
# define __block __attribute__((__blocks__(byref)))
|
||||
#else
|
||||
# include_next "unistd.h"
|
||||
#endif
|
||||
EOF
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
cd cctools
|
||||
sh autogen.sh
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"CXXFLAGS=-I${libcxx}/include/c++/v1"
|
||||
"--target=${cross.config}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
for tool in dyldinfo dwarfdump dsymutil; do
|
||||
makeWrapper "${maloader}/bin/ld-mac" "$out/bin/${cross.config}-$tool" \
|
||||
--add-flags "${xctoolchain}/bin/$tool"
|
||||
ln -s "$out/bin/${cross.config}-$tool" "$out/bin/$tool"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.opensource.apple.com/source/cctools/";
|
||||
description = "Mac OS X Compiler Tools (cross-platform port)";
|
||||
license = stdenv.lib.licenses.apsl20;
|
||||
};
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp
|
||||
index 2565518..9250016 100644
|
||||
--- a/cctools/ld64/src/ld/Options.cpp
|
||||
+++ b/cctools/ld64/src/ld/Options.cpp
|
||||
@@ -2522,6 +2522,11 @@ void Options::parse(int argc, const char* argv[])
|
||||
throw "missing argument to -rpath";
|
||||
fRPaths.push_back(path);
|
||||
}
|
||||
+ else if ( strcmp(arg, "-rpath-link") == 0 ) {
|
||||
+ const char* path = argv[++i];
|
||||
+ if ( path == NULL )
|
||||
+ throw "missing argument to -rpath-link";
|
||||
+ }
|
||||
else if ( strcmp(arg, "-read_only_stubs") == 0 ) {
|
||||
fReadOnlyx86Stubs = true;
|
||||
}
|
31
pkgs/os-specific/darwin/cctools-port/ld-rpath-nonfinal.patch
Normal file
31
pkgs/os-specific/darwin/cctools-port/ld-rpath-nonfinal.patch
Normal file
@ -0,0 +1,31 @@
|
||||
diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp
|
||||
index 9250016..91d54ec 100644
|
||||
--- a/cctools/ld64/src/ld/Options.cpp
|
||||
+++ b/cctools/ld64/src/ld/Options.cpp
|
||||
@@ -4175,23 +4175,9 @@ void Options::checkIllegalOptionCombinations()
|
||||
throw "-r and -dead_strip cannot be used together";
|
||||
|
||||
// can't use -rpath unless targeting 10.5 or later
|
||||
- if ( fRPaths.size() > 0 ) {
|
||||
- if ( !minOS(ld::mac10_5, ld::iOS_2_0) )
|
||||
- throw "-rpath can only be used when targeting Mac OS X 10.5 or later";
|
||||
- switch ( fOutputKind ) {
|
||||
- case Options::kDynamicExecutable:
|
||||
- case Options::kDynamicLibrary:
|
||||
- case Options::kDynamicBundle:
|
||||
- break;
|
||||
- case Options::kStaticExecutable:
|
||||
- case Options::kObjectFile:
|
||||
- case Options::kDyld:
|
||||
- case Options::kPreload:
|
||||
- case Options::kKextBundle:
|
||||
- throw "-rpath can only be used when creating a dynamic final linked image";
|
||||
- }
|
||||
- }
|
||||
-
|
||||
+ if ( fRPaths.size() > 0 && !minOS(ld::mac10_5, ld::iOS_2_0) )
|
||||
+ throw "-rpath can only be used when targeting Mac OS X 10.5 or later";
|
||||
+
|
||||
if ( fPositionIndependentExecutable ) {
|
||||
switch ( fOutputKind ) {
|
||||
case Options::kDynamicExecutable:
|
36
pkgs/os-specific/darwin/maloader/default.nix
Normal file
36
pkgs/os-specific/darwin/maloader/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ stdenv, fetchgit, opencflite, clang, libcxx }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "maloader-0git";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://github.com/shinh/maloader.git";
|
||||
rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442";
|
||||
sha256 = "07j9b7n0grrbxxyn2h8pnk6pa8b370wq5z5zwbds8dlhi7q37rhn";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i \
|
||||
-e '/if.*loadLibMac.*mypath/s|mypath|"'"$out/lib/"'"|' \
|
||||
-e 's|libCoreFoundation\.so|${opencflite}/lib/&|' \
|
||||
ld-mac.cc
|
||||
'';
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${libcxx}/include/c++/v1";
|
||||
buildInputs = [ clang libcxx ];
|
||||
buildFlags = [ "USE_LIBCXX=1" "release" ];
|
||||
|
||||
installPhase = ''
|
||||
install -vD libmac.so "$out/lib/libmac.so"
|
||||
|
||||
for bin in extract macho2elf ld-mac; do
|
||||
install -vD "$bin" "$out/bin/$bin"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Mach-O loader for Linux";
|
||||
homepage = "https://github.com/shinh/maloader";
|
||||
license = stdenv.lib.licenses.bsd2;
|
||||
};
|
||||
}
|
21
pkgs/os-specific/darwin/opencflite/default.nix
Normal file
21
pkgs/os-specific/darwin/opencflite/default.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ stdenv, fetchurl, icu, libuuid, tzdata }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "opencflite-${version}";
|
||||
version = "476.19.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/opencflite/${name}.tar.gz";
|
||||
sha256 = "0jgmzs0ycl930hmzcvx0ykryik56704yw62w394q1q3xw5kkjn9v";
|
||||
};
|
||||
|
||||
configureFlags = [ "--with-uuid=${libuuid}" ];
|
||||
buildInputs = [ icu tzdata.lib ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "Cross platform port of the OS X CoreFoundation";
|
||||
homepage = "http://sourceforge.net/projects/opencflite/";
|
||||
license = stdenv.lib.licenses.apsl20;
|
||||
};
|
||||
}
|
52
pkgs/os-specific/darwin/xcode/default.nix
Normal file
52
pkgs/os-specific/darwin/xcode/default.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ stdenv, requireFile, xpwn }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
osxVersion = "10.9";
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "xcode-${version}";
|
||||
version = "5.1";
|
||||
|
||||
src = requireFile {
|
||||
name = "xcode_${version}.dmg";
|
||||
url = meta.homepage;
|
||||
sha256 = "70bb550cc14eca80b9825f4ae9bfbf7f076bb75777311be428bc30a7eb7a6f7e";
|
||||
};
|
||||
|
||||
phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
|
||||
outputs = [ "out" "toolchain" ];
|
||||
|
||||
|
||||
unpackCmd = let
|
||||
basePath = "Xcode.app/Contents/Developer/Platforms/MacOSX.platform";
|
||||
sdkPath = "${basePath}/Developer/SDKs";
|
||||
in ''
|
||||
${xpwn}/bin/dmg extract "$curSrc" main.hfs > /dev/null
|
||||
${xpwn}/bin/hfsplus main.hfs extractall "${sdkPath}" > /dev/null
|
||||
'';
|
||||
|
||||
setSourceRoot = "sourceRoot=MacOSX${osxVersion}.sdk";
|
||||
|
||||
patches = optional (osxVersion == "10.9") ./gcc-fix-enum-attributes.patch;
|
||||
|
||||
installPhase = ''
|
||||
ensureDir "$out/share/sysroot"
|
||||
cp -a * "$out/share/sysroot/"
|
||||
ln -s "$out/share/sysroot/usr/lib" "$out/lib"
|
||||
ln -s "$out/share/sysroot/usr/include" "$out/include"
|
||||
|
||||
ensureDir "$toolchain"
|
||||
pushd "$toolchain"
|
||||
${xpwn}/bin/hfsplus "$(dirs +1)/../main.hfs" extractall \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr \
|
||||
> /dev/null
|
||||
popd
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://developer.apple.com/downloads/";
|
||||
description = "Apple's XCode SDK";
|
||||
license = stdenv.lib.licenses.unfree;
|
||||
};
|
||||
}
|
13
pkgs/os-specific/darwin/xcode/gcc-fix-enum-attributes.patch
Normal file
13
pkgs/os-specific/darwin/xcode/gcc-fix-enum-attributes.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/System/Library/Frameworks/Foundation.framework/Headers/NSUserNotification.h b/System/Library/Frameworks/Foundation.framework/Headers/NSUserNotification.h
|
||||
index fa0c290..7da7e0c 100644
|
||||
--- a/System/Library/Frameworks/Foundation.framework/Headers/NSUserNotification.h
|
||||
+++ b/System/Library/Frameworks/Foundation.framework/Headers/NSUserNotification.h
|
||||
@@ -13,7 +13,7 @@ typedef NS_ENUM(NSInteger, NSUserNotificationActivationType) {
|
||||
NSUserNotificationActivationTypeNone = 0,
|
||||
NSUserNotificationActivationTypeContentsClicked = 1,
|
||||
NSUserNotificationActivationTypeActionButtonClicked = 2,
|
||||
- NSUserNotificationActivationTypeReplied NS_AVAILABLE(10_9, NA) = 3
|
||||
+ NSUserNotificationActivationTypeReplied = 3
|
||||
} NS_ENUM_AVAILABLE(10_8, NA);
|
||||
|
||||
NS_CLASS_AVAILABLE(10_8, NA)
|
@ -1,30 +1,30 @@
|
||||
{stdenv, fetchurl, binutilsCross ? null, gccCross ? null, onlyHeaders ? false}:
|
||||
{ stdenv, fetchurl, binutilsCross ? null, gccCross ? null
|
||||
, onlyHeaders ? false
|
||||
, onlyPthreads ? false
|
||||
}:
|
||||
|
||||
let
|
||||
name = "mingw-w64-2.0.3";
|
||||
name = "mingw-w64-3.1.0";
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
inherit name;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/mingw-w64/mingw-w64-v2.0.3.tar.gz";
|
||||
sha256 = "043jk6z90f9pxs9kfn6ckh2vlnbgcv6yfbp5ybahrj3z58dcijp5";
|
||||
url = "mirror://sourceforge/mingw-w64/mingw-w64-v3.1.0.tar.bz2";
|
||||
sha256 = "1lhpw381gc59w8b1r9zzdwa9cdi2wx6qx7s6rvajapmbw7ksgrzc";
|
||||
};
|
||||
|
||||
# I don't know what's that $host directory about, I put the
|
||||
# files inside include as usual.
|
||||
postInstall = ''
|
||||
rmdir $out/include
|
||||
mv $out/x86_64-w64-mingw32/* $out
|
||||
rm -R $out/x86_64-w64-mingw32
|
||||
'';
|
||||
} //
|
||||
(if onlyHeaders then {
|
||||
name = name + "-headers";
|
||||
preConfingure = ''
|
||||
preConfigure = ''
|
||||
cd mingw-w64-headers
|
||||
'';
|
||||
configureFlags = "--without-crt --host=x86_64-w64-mingw32";
|
||||
configureFlags = "--without-crt";
|
||||
} else if onlyPthreads then {
|
||||
name = name + "-pthreads";
|
||||
preConfigure = ''
|
||||
cd mingw-w64-libraries/winpthreads
|
||||
'';
|
||||
} else {
|
||||
buildInputs = [ gccCross binutilsCross ];
|
||||
|
||||
|
@ -14,6 +14,7 @@ stdenv.mkDerivation {
|
||||
|
||||
crossAttrs = {
|
||||
patchPhase = ''
|
||||
sed -i -e '/<sys\\stat\.h>/s|\\|/|' bzip2.c
|
||||
sed -i -e 's/CC=gcc/CC=${stdenv.cross.config}-gcc/' \
|
||||
-e 's/AR=ar/AR=${stdenv.cross.config}-ar/' \
|
||||
-e 's/RANLIB=ranlib/RANLIB=${stdenv.cross.config}-ranlib/' \
|
||||
|
@ -1,4 +1,6 @@
|
||||
{ stdenv, fetchurl, xproto, libXt, libX11 }:
|
||||
{ stdenv, fetchurl, xproto, libXt, libX11, gifview ? false, static ? false }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gifsicle-1.78";
|
||||
@ -8,7 +10,9 @@ stdenv.mkDerivation {
|
||||
sha256 = "0dzp5sg82klji4lbj1m4cyg9fb3l837gkipdx657clib97klyv53";
|
||||
};
|
||||
|
||||
buildInputs = [ xproto libXt libX11 ];
|
||||
buildInputs = optional gifview [ xproto libXt libX11 ];
|
||||
|
||||
LDFLAGS = optional static "-static";
|
||||
|
||||
meta = {
|
||||
description = "Command-line tool for creating, editing, and getting information about GIF images and animations";
|
||||
|
@ -1,7 +1,9 @@
|
||||
{ stdenv, fetchurl }:
|
||||
{ stdenv, fetchurl, libpng, static ? false }:
|
||||
|
||||
# This package comes with its own copy of zlib, libpng and pngxtern
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "optipng-0.7.4";
|
||||
|
||||
@ -10,6 +12,24 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1zrphbz17rhhfl1l95q5s979rrhifbwczl2xj1fdrnq5jid5s2sj";
|
||||
};
|
||||
|
||||
buildInputs = [ libpng ];
|
||||
|
||||
LDFLAGS = optional static "-static";
|
||||
configureFlags = "--with-system-zlib --with-system-libpng";
|
||||
|
||||
crossAttrs = {
|
||||
CC="${stdenv.cross.config}-gcc";
|
||||
LD="${stdenv.cross.config}-gcc";
|
||||
AR="${stdenv.cross.config}-ar";
|
||||
RANLIB="${stdenv.cross.config}-ranlib";
|
||||
configurePhase = ''
|
||||
./configure -prefix="$out" --with-system-zlib --with-system-libpng
|
||||
'';
|
||||
postInstall = optional (stdenv.cross.libc == "msvcrt") ''
|
||||
mv "$out"/bin/optipng "$out"/bin/optipng.exe
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = http://optipng.sourceforge.net/;
|
||||
description = "A PNG optimizer";
|
||||
|
@ -1631,7 +1631,9 @@ let
|
||||
|
||||
openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
|
||||
|
||||
optipng = callPackage ../tools/graphics/optipng { };
|
||||
optipng = callPackage ../tools/graphics/optipng {
|
||||
libpng = libpng12;
|
||||
};
|
||||
|
||||
oslrd = callPackage ../tools/networking/oslrd { };
|
||||
|
||||
@ -2515,10 +2517,10 @@ let
|
||||
gcc_realCross = gcc48_realCross;
|
||||
|
||||
gccCrossStageStatic = let
|
||||
isMingw = (stdenv.cross.libc == "msvcrt");
|
||||
isMingw64 = isMingw && stdenv.cross.config == "x86_64-w64-mingw32";
|
||||
libcCross1 = if isMingw64 then windows.mingw_w64_headers else
|
||||
if isMingw then windows.mingw_headers1 else null;
|
||||
libcCross1 =
|
||||
if stdenv.cross.libc == "msvcrt" then windows.mingw_w64_headers
|
||||
else if stdenv.cross.libc == "libSystem" then darwin.xcode
|
||||
else null;
|
||||
in
|
||||
wrapGCCCross {
|
||||
gcc = forceNativeDrv (lib.addMetaAttrs { hydraPlatforms = []; } (
|
||||
@ -3594,11 +3596,13 @@ let
|
||||
gold = false;
|
||||
});
|
||||
|
||||
binutilsCross = lowPrio (forceNativeDrv (import ../development/tools/misc/binutils {
|
||||
inherit stdenv fetchurl zlib;
|
||||
noSysDirs = true;
|
||||
cross = assert crossSystem != null; crossSystem;
|
||||
}));
|
||||
binutilsCross =
|
||||
if crossSystem != null && crossSystem.libc == "libSystem" then darwin.cctools
|
||||
else lowPrio (forceNativeDrv (import ../development/tools/misc/binutils {
|
||||
inherit stdenv fetchurl zlib;
|
||||
noSysDirs = true;
|
||||
cross = assert crossSystem != null; crossSystem;
|
||||
}));
|
||||
|
||||
bison2 = callPackage ../development/tools/parsing/bison/2.x.nix { };
|
||||
bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
|
||||
@ -3985,6 +3989,8 @@ let
|
||||
|
||||
xmlindent = callPackage ../development/web/xmlindent {};
|
||||
|
||||
xpwn = callPackage ../development/mobile/xpwn {};
|
||||
|
||||
xxdiff = callPackage ../development/tools/misc/xxdiff {
|
||||
bison = bison2;
|
||||
};
|
||||
@ -4409,9 +4415,8 @@ let
|
||||
# We can choose:
|
||||
libcCrossChooser = name : if name == "glibc" then glibcCross
|
||||
else if name == "uclibc" then uclibcCross
|
||||
else if name == "msvcrt" && stdenv.cross.config == "x86_64-w64-mingw32" then
|
||||
windows.mingw_w64
|
||||
else if name == "msvcrt" then windows.mingw_headers3
|
||||
else if name == "msvcrt" then windows.mingw_w64
|
||||
else if name == "libSystem" then darwin.xcode
|
||||
else throw "Unknown libc";
|
||||
|
||||
libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
|
||||
@ -6761,6 +6766,22 @@ let
|
||||
|
||||
cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
|
||||
|
||||
darwin = rec {
|
||||
cctools = forceNativeDrv (callPackage ../os-specific/darwin/cctools-port {
|
||||
cross = assert crossSystem != null; crossSystem;
|
||||
inherit maloader;
|
||||
xctoolchain = xcode.toolchain;
|
||||
});
|
||||
|
||||
maloader = callPackage ../os-specific/darwin/maloader {
|
||||
inherit opencflite;
|
||||
};
|
||||
|
||||
opencflite = callPackage ../os-specific/darwin/opencflite {};
|
||||
|
||||
xcode = callPackage ../os-specific/darwin/xcode {};
|
||||
};
|
||||
|
||||
devicemapper = lvm2;
|
||||
|
||||
dmidecode = callPackage ../os-specific/linux/dmidecode { };
|
||||
@ -7404,6 +7425,10 @@ let
|
||||
onlyHeaders = true;
|
||||
};
|
||||
|
||||
mingw_w64_pthreads = callPackage ../os-specific/windows/mingw-w64 {
|
||||
onlyPthreads = true;
|
||||
};
|
||||
|
||||
pthreads = callPackage ../os-specific/windows/pthread-w32 {
|
||||
mingw_headers = mingw_headers3;
|
||||
};
|
||||
|
@ -140,11 +140,11 @@ in {
|
||||
crossUltraSparcLinux = mapTestOnCross crossSystem basic;
|
||||
}) // (
|
||||
|
||||
/* Test some cross builds on mingw32 */
|
||||
/* Test some cross builds on 32 bit mingw-w64 */
|
||||
let
|
||||
crossSystem = {
|
||||
config = "i686-pc-mingw32";
|
||||
arch = "x86";
|
||||
config = "i686-w64-mingw32";
|
||||
arch = "x86"; # Irrelevant
|
||||
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
|
||||
platform = {};
|
||||
};
|
||||
@ -161,11 +161,10 @@ in {
|
||||
};
|
||||
}) // (
|
||||
|
||||
/* Test some cross builds on mingw-w64 */
|
||||
/* Test some cross builds on 64 bit mingw-w64 */
|
||||
let
|
||||
crossSystem = {
|
||||
# That's the triplet they use in the mingw-w64 docs,
|
||||
# and it's relevant for nixpkgs conditions.
|
||||
# That's the triplet they use in the mingw-w64 docs.
|
||||
config = "x86_64-w64-mingw32";
|
||||
arch = "x86_64"; # Irrelevant
|
||||
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
|
||||
|
Loading…
Reference in New Issue
Block a user