hurd: cleanup unmaintained target

This has been not touched in 6 years. Let's remove it to cause less
problems when adding new cross-compiling infrastructure.
This also simplify gcc significantly.

Changed files
+34 -906
lib
pkgs
development
compilers
tools
misc
os-specific
stdenv
generic
tools
filesystems
nixpart
misc
parted
top-level
+1 -1
lib/systems/doubles.nix
···
cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin;
freebsd = filterDoubles predicates.isFreeBSD;
-
# Should be better, but MinGW is unclear, and HURD is bit-rotted.
+
# Should be better, but MinGW is unclear.
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; });
illumos = filterDoubles predicates.isSunOS;
linux = filterDoubles predicates.isLinux;
+1 -1
lib/systems/for-meta.nix
···
cygwin = [ patterns.isCygwin ];
darwin = [ patterns.isDarwin ];
freebsd = [ patterns.isFreeBSD ];
-
# Should be better, but MinGW is unclear, and HURD is bit-rotted.
+
# Should be better, but MinGW is unclear.
gnu = [
{ kernel = parse.kernels.linux; abi = abis.gnu; }
{ kernel = parse.kernels.linux; abi = abis.gnueabi; }
+1 -2
lib/systems/inspect.nix
···
isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
-
isUnix = [ isBSD isDarwin isLinux isSunOS isHurd isCygwin ];
+
isUnix = [ isBSD isDarwin isLinux isSunOS isCygwin ];
isMacOS = { kernel = kernels.macos; };
isiOS = { kernel = kernels.ios; };
isLinux = { kernel = kernels.linux; };
isSunOS = { kernel = kernels.solaris; };
isFreeBSD = { kernel = kernels.freebsd; };
-
isHurd = { kernel = kernels.hurd; };
isNetBSD = { kernel = kernels.netbsd; };
isOpenBSD = { kernel = kernels.openbsd; };
isWindows = { kernel = kernels.windows; };
-3
lib/systems/parse.nix
···
macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; };
ios = { execFormat = macho; families = { inherit darwin; }; };
freebsd = { execFormat = elf; families = { inherit bsd; }; };
-
hurd = { execFormat = elf; families = { }; };
linux = { execFormat = elf; families = { }; };
netbsd = { execFormat = elf; families = { inherit bsd; }; };
none = { execFormat = unknown; families = { }; };
···
"2" = # We only do 2-part hacks for things Nix already supports
if elemAt l 1 == "cygwin"
then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; }
-
else if elemAt l 1 == "gnu"
-
then { cpu = elemAt l 0; kernel = "hurd"; abi = "gnu"; }
else { cpu = elemAt l 0; kernel = elemAt l 1; };
"3" = # Awkwards hacks, beware!
if elemAt l 1 == "apple"
+1 -1
lib/tests/systems.nix
···
cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]);
darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]);
freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]);
-
gnu = assertTrue (mseteq gnu (linux /* ++ hurd ++ kfreebsd ++ ... */));
+
gnu = assertTrue (mseteq gnu (linux /* ++ kfreebsd ++ ... */));
illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]);
linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]);
netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]);
+3 -47
pkgs/development/compilers/gcc/4.8/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
libc_dev = stdenv.cc.libc_dev;
postPatch =
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
-
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread)
+
++ optionals javaAwtGtk [ gmp mpfr ])
);
EXTRA_TARGET_FLAGS = optionals
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version;
+3 -48
pkgs/development/compilers/gcc/4.9/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
libc_dev = stdenv.cc.libc_dev;
postPatch =
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
-
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread)
-
);
+
++ optionals javaAwtGtk [ gmp mpfr ]));
EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null)
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+4 -48
pkgs/development/compilers/gcc/5/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
'';
postPatch =
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
] ++
optional (libelf != null) "--with-libelf=${libelf}" ++
optional (!(crossMingw && crossStageStatic))
-
"--with-native-system-header-dir=${getDev stdenv.cc.libc}/include" ++
+
"--with-native-system-header-dir=${getDev stdenv.cc.libc}/include" ++
# Basic configuration
[
···
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
···
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread)
-
);
+
));
EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null)
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+3 -48
pkgs/development/compilers/gcc/6/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
'';
postPatch =
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
-
++ optionals javaAwtGtk [ gmp mpfr ]
-
++ optional (libpthread != null) libpthread)
-
);
+
++ optionals javaAwtGtk [ gmp mpfr ]));
EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null)
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+3 -49
pkgs/development/compilers/gcc/7/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
patchShebangs $configureScript
done
'' + (
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
-
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
-
++ optional (zlib != null) zlib
-
++ optional (libpthread != null) libpthread)
-
);
+
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null)
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+3 -49
pkgs/development/compilers/gcc/8/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
patchShebangs $configureScript
done
'' + (
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
-
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
-
++ optional (zlib != null) zlib
-
++ optional (libpthread != null) libpthread)
-
);
+
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null)
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+3 -49
pkgs/development/compilers/gcc/snapshot/default.nix
···
, name ? "gcc"
, libcCross ? null
, crossStageStatic ? false
-
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
, # Strip kills static libs of other archs (hence no cross)
stripped ? hostPlatform == buildPlatform && targetPlatform == hostPlatform
, gnused ? null
···
hardeningDisable = [ "format" ];
postPatch =
-
if targetPlatform.isHurd
-
then
-
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
-
# in glibc, so add the right `-I' flags to the default spec string.
-
assert libcCross != null -> libpthreadCross != null;
-
let
-
libc = if libcCross != null then libcCross else stdenv.glibc;
-
gnu_h = "gcc/config/gnu.h";
-
extraCPPDeps =
-
libc.propagatedBuildInputs
-
++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
-
++ stdenv.lib.optional (libpthread != null) libpthread;
-
extraCPPSpec =
-
concatStrings (intersperse " "
-
(map (x: "-I${x.dev or x}/include") extraCPPDeps));
-
extraLibSpec =
-
if libpthreadCross != null
-
then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
-
else "-L${libpthread}/lib";
-
in
-
'' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
-
-
echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
-
sed -i "${gnu_h}" \
-
-es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
-
-
echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc.dev}/include'..."
-
sed -i "${gnu_h}" \
-
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
-
''
-
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
···
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
-
++ optional (libpthread != null) libpthread
-
++ optional (libpthreadCross != null) libpthreadCross
-
-
# On GNU/Hurd glibc refers to Mach & Hurd
-
# headers.
-
++ optionals (libcCross != null && libcCross ? propagatedBuildInputs)
-
libcCross.propagatedBuildInputs
));
-
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
-
++ optional (zlib != null) zlib
-
++ optional (libpthread != null) libpthread)
-
);
+
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
EXTRA_TARGET_FLAGS = optionals
(targetPlatform != hostPlatform && libcCross != null)
···
] else [
"-Wl,-rpath,${libcCross.out}/lib"
"-Wl,-rpath-link,${libcCross.out}/lib"
-
]) ++ optionals (libpthreadCross != null) [
-
"-L${libpthreadCross}/lib"
-
"-Wl,${libpthreadCross.TARGET_LDFLAGS}"
-
]);
+
]));
passthru =
{ inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+1 -8
pkgs/development/tools/misc/gdb/default.nix
···
, pythonSupport ? hostPlatform == buildPlatform && !hostPlatform.isCygwin, python ? null
, guile ? null
-
# Additional dependencies for GNU/Hurd.
-
, mig ? null, hurd ? null
-
}:
let
···
version = "8.1.1";
in
-
assert targetPlatform.isHurd -> mig != null && hurd != null;
assert pythonSupport -> python != null;
stdenv.mkDerivation rec {
···
patches = [ ./debug-info-from-env.patch ]
++ stdenv.lib.optional stdenv.isDarwin ./darwin-target-match.patch;
-
nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ]
-
# TODO(@Ericson2314) not sure if should be host or target
-
++ stdenv.lib.optional targetPlatform.isHurd mig;
+
nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ];
buildInputs = [ ncurses readline gmp mpfr expat zlib guile ]
++ stdenv.lib.optional pythonSupport python
-
++ stdenv.lib.optional targetPlatform.isHurd hurd
++ stdenv.lib.optional doCheck dejagnu;
propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
-113
pkgs/os-specific/gnu/default.nix
···
-
# Packages that make up the GNU/Hurd operating system (aka. GNU).
-
-
args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
-
, texinfo, glibcCross, hurdPartedCross, libuuid, samba
-
, gccCrossStageStatic, gcc
-
, pkgsi686Linux, newScope, config
-
, targetPlatform, buildPlatform
-
, overrides ? {}
-
, buildPackages, pkgs
-
}:
-
-
with args;
-
-
let
-
callPackage = newScope gnu;
-
-
forcedNativePackages =
-
if stdenv.hostPlatform == stdenv.buildPlatform
-
then pkgs
-
else buildPackages;
-
-
gnu = {
-
hurdCross = forcedNativePackages.callPackage ./hurd {
-
inherit fetchgit stdenv autoconf libtool texinfo
-
glibcCross hurdPartedCross;
-
inherit (gnu) machHeaders mig;
-
libuuid = libuuid.crossDrv;
-
automake = automake111x;
-
headersOnly = false;
-
cross = assert targetPlatform != buildPlatform; targetPlatform;
-
gccCross = gcc;
-
};
-
-
hurdCrossIntermediate = forcedNativePackages.callPackage ./hurd {
-
inherit fetchgit stdenv autoconf libtool texinfo glibcCross;
-
inherit (gnu) machHeaders mig;
-
hurdPartedCross = null;
-
libuuid = null;
-
automake = automake111x;
-
headersOnly = false;
-
cross = assert targetPlatform != buildPlatform; targetPlatform;
-
-
# The "final" GCC needs glibc and the Hurd libraries (libpthread in
-
# particular) so we first need an intermediate Hurd built with the
-
# intermediate GCC.
-
gccCross = gccCrossStageStatic;
-
-
# This intermediate Hurd is only needed to build libpthread, which needs
-
# libihash, and to build Parted, which needs libstore and
-
# libshouldbeinlibc.
-
buildTarget = "libihash libstore libshouldbeinlibc";
-
installTarget = "libihash-install libstore-install libshouldbeinlibc-install";
-
};
-
-
hurdHeaders = callPackage ./hurd {
-
automake = automake111x;
-
headersOnly = true;
-
gccCross = null;
-
glibcCross = null;
-
libuuid = null;
-
hurdPartedCross = null;
-
};
-
-
libpthreadHeaders = callPackage ./libpthread {
-
headersOnly = true;
-
hurd = null;
-
};
-
-
libpthreadCross = forcedNativePackages.callPackage ./libpthread {
-
inherit fetchgit stdenv autoconf automake libtool glibcCross;
-
inherit (gnu) machHeaders hurdHeaders;
-
hurd = gnu.hurdCrossIntermediate;
-
gccCross = gccCrossStageStatic;
-
cross = assert targetPlatform != buildPlatform; targetPlatform;
-
};
-
-
# In theory GNU Mach doesn't have to be cross-compiled. However, since it
-
# has to be built for i586 (it doesn't work on x86_64), one needs a cross
-
# compiler for that host.
-
mach = callPackage ./mach {
-
automake = automake111x;
-
};
-
-
machHeaders = callPackage ./mach {
-
automake = automake111x;
-
headersOnly = true;
-
mig = null;
-
};
-
-
mig = callPackage ./mig {
-
# Build natively, but force use of a 32-bit environment because we're
-
# targeting `i586-pc-gnu'.
-
stdenv = pkgsi686Linux.stdenv;
-
};
-
-
# XXX: Use this one for its `.crossDrv'. Using the one above from
-
# `x86_64-linux' leads to building a different cross-toolchain because of
-
# the `forceSystem'.
-
mig_raw = callPackage ./mig {};
-
-
smbfs = callPackage ./smbfs {
-
hurd = gnu.hurdCross;
-
};
-
-
unionfs = callPackage ./unionfs {
-
hurd = gnu.hurdCross;
-
};
-
}
-
-
# Allow callers to override elements of this attribute set.
-
// overrides;
-
-
in gnu # we trust!
-91
pkgs/os-specific/gnu/hurd/default.nix
···
-
{ fetchgit, stdenv, autoconf, automake, libtool, texinfo
-
, machHeaders, mig, headersOnly ? true
-
, cross ? null, gccCross ? null, glibcCross ? null
-
, hurdPartedCross ? null, libuuid ? null
-
, buildTarget ? "all", installTarget ? "install" }:
-
-
assert (cross != null) -> (gccCross != null);
-
assert (hurdPartedCross != null) -> (libuuid != null);
-
-
let
-
# Unfortunately we can't use `master@{DATE}', see
-
# <http://www.bramschoenmakers.nl/en/node/645>.
-
date = "20111115";
-
rev = "969fbb646ffd89a482302e303eaded79781c3331";
-
suffix = if headersOnly
-
then "-headers"
-
else (if buildTarget != "all"
-
then "-minimal"
-
else "");
-
in
-
stdenv.mkDerivation ({
-
name = "hurd${suffix}-${date}";
-
-
src = fetchgit {
-
url = "git://git.sv.gnu.org/hurd/hurd.git";
-
sha256 = "b7f57ec2c6dcaf35ec03fb7979eb5506180ce4c6e2edf60a587f12ac5b11f004";
-
inherit rev;
-
};
-
-
buildInputs = [ autoconf automake libtool texinfo mig ]
-
++ stdenv.lib.optional (hurdPartedCross != null) hurdPartedCross
-
++ stdenv.lib.optional (libuuid != null) libuuid
-
++ stdenv.lib.optional (gccCross != null) gccCross
-
++ stdenv.lib.optional (glibcCross != null) glibcCross;
-
-
propagatedBuildInputs = [ machHeaders ];
-
-
configureFlags = stdenv.lib.optionals headersOnly [ "--build=i586-pc-gnu" ]
-
++ (if hurdPartedCross != null
-
then [ "--with-parted" ]
-
else [ "--without-parted" ]);
-
-
# Use `preConfigure' only for `autoreconf', so that users know they can
-
# simply clear it when the autoconf phase is unneeded.
-
preConfigure = "autoreconf -vfi";
-
-
postConfigure =
-
'' echo "removing \`-o root' from makefiles..."
-
for mf in {utils,daemons}/Makefile
-
do
-
sed -i "$mf" -e's/-o root//g'
-
done
-
'';
-
-
# Not needed after https://github.com/NixOS/nixpkgs/pull/43833
-
dontPatchShebangs = stdenv.hostPlatform != stdenv.buildPlatform;
-
-
meta = {
-
description = "The GNU Hurd, GNU project's replacement for the Unix kernel";
-
-
longDescription =
-
'' The GNU Hurd is the GNU project's replacement for the Unix kernel.
-
It is a collection of servers that run on the Mach microkernel to
-
implement file systems, network protocols, file access control, and
-
other features that are implemented by the Unix kernel or similar
-
kernels (such as Linux).
-
'';
-
-
license = stdenv.lib.licenses.gpl2Plus;
-
-
homepage = http://www.gnu.org/software/hurd/;
-
-
maintainers = [ stdenv.lib.maintainers.ludo ];
-
};
-
}
-
-
//
-
-
stdenv.lib.optionalAttrs (!headersOnly && buildTarget != null) {
-
# Use the default `buildPhase' and `installPhase' so that the usual hooks
-
# can still be used.
-
buildFlags = buildTarget;
-
installTargets = assert installTarget != null; installTarget;
-
}
-
-
//
-
-
stdenv.lib.optionalAttrs headersOnly {
-
dontBuild = true;
-
installPhase = "make install-headers";
-
})
-81
pkgs/os-specific/gnu/libpthread/default.nix
···
-
{ fetchgit, stdenv, autoconf, automake, libtool
-
, machHeaders, hurdHeaders, hurd, headersOnly ? false
-
, cross ? null, gccCross ? null, glibcCross ? null }:
-
-
assert (cross != null) -> (gccCross != null) && (glibcCross != null);
-
assert (!headersOnly) -> (hurd != null);
-
-
let
-
date = "20111020";
-
-
# Use the `tschwinge/Peter_Herbolzheimer' branch as prescribed in
-
# <http://www.gnu.org/software/hurd/hurd/building/cross-compiling.html>.
-
rev = "a7b82c3302bf9c47176648eb802a61ae2d9a16f5";
-
in
-
stdenv.mkDerivation ({
-
name = "libpthread-hurd-${if headersOnly then "headers-" else ""}${date}";
-
-
src = fetchgit {
-
url = "git://git.sv.gnu.org/hurd/libpthread.git";
-
sha256 = "e8300762914d927c0da4168341a5982a1057613e1af363ee68942087b2570b3d";
-
inherit rev;
-
};
-
-
nativeBuildInputs = [ autoconf automake libtool ];
-
buildInputs = [ machHeaders hurdHeaders ]
-
++ stdenv.lib.optional (!headersOnly) hurd
-
++ stdenv.lib.optional (gccCross != null) gccCross;
-
-
preConfigure = "autoreconf -vfi";
-
-
meta = {
-
description = "GNU Hurd's libpthread";
-
-
license = stdenv.lib.licenses.lgpl2Plus;
-
-
maintainers = [ stdenv.lib.maintainers.ludo ];
-
};
-
}
-
-
//
-
-
(if headersOnly
-
then {
-
configureFlags =
-
[ "--build=i586-pc-gnu"
-
"ac_cv_lib_ihash_hurd_ihash_create=yes"
-
];
-
-
dontBuild = true;
-
installPhase = "make install-data-local-headers";
-
}
-
else { })
-
-
//
-
-
(if cross != null
-
then {
-
# Tell gcc where to find `crt1.o' et al. This is specified in two
-
# different ways: one for gcc as run from `configure', and one for linking
-
# libpthread.so (by default `libtool --mode=link' swallows `-B', hence
-
# this workaround; see
-
# <http://lists.gnu.org/archive/html/bug-libtool/2010-05/msg00012.html>.)
-
LDFLAGS = "-B${glibcCross}/lib";
-
makeFlags = [ "LDFLAGS=-Wc,-B${glibcCross}/lib" ];
-
-
# Help the linker find glibc.
-
CPATH = "${glibcCross}/include";
-
LIBRARY_PATH = "${glibcCross}/lib";
-
-
passthru = {
-
# Extra target LDFLAGS to allow the cross-linker to find the
-
# dependencies of the cross libpthread.so, namely libihash.so.
-
# Note: these are raw `ld' flags, so `-Wl,' must be prepended when using
-
# `gcc'.
-
#
-
# This is actually only useful while building the final cross-gcc, since
-
# afterwards gcc-cross-wrapper should add the relevant flags.
-
TARGET_LDFLAGS = "-rpath-link=${hurd}/lib";
-
};
-
}
-
else { }))
-57
pkgs/os-specific/gnu/mach/default.nix
···
-
{ fetchgit, stdenv, mig ? null, autoconf, automake, texinfo
-
, headersOnly ? false }:
-
-
assert (!headersOnly) -> (mig != null);
-
-
let
-
date = "20120303";
-
rev = "2a603e88f86bee88e013c2451eacf076fbcaed81";
-
in
-
stdenv.mkDerivation ({
-
name = "gnumach${if headersOnly then "-headers" else ""}-${date}";
-
-
src = fetchgit {
-
url = "git://git.sv.gnu.org/hurd/gnumach.git";
-
sha256 = "1q8zk8xzbiwpnvvmfgkylj4gwkvkn5n2ydy9j054qv5plnaczj1c";
-
inherit rev;
-
};
-
-
configureFlags =
-
stdenv.lib.optional headersOnly "--build=i586-pc-gnu" # cheat
-
-
# Always enable dependency tracking. See
-
# <http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00137.html>.
-
++ [ "--enable-dependency-tracking" ];
-
-
nativeBuildInputs = [ autoconf automake texinfo ]
-
++ stdenv.lib.optional (mig != null) mig;
-
-
preConfigure = "autoreconf -vfi";
-
-
meta = {
-
description = "GNU Mach, the microkernel used by the GNU Hurd";
-
-
longDescription =
-
'' GNU Mach is the microkernel that the GNU Hurd system is based on.
-
-
It is maintained by the Hurd developers for the GNU project and
-
remains compatible with Mach 3.0.
-
-
The majority of GNU Mach's device drivers are from Linux 2.0. They
-
were added using glue code, i.e., a Linux emulation layer in Mach.
-
'';
-
-
license = stdenv.lib.licenses.gpl2Plus;
-
-
homepage = http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html;
-
-
maintainers = [ stdenv.lib.maintainers.ludo ];
-
platforms = [ "i586-gnu" ];
-
};
-
}
-
-
//
-
-
(if headersOnly
-
then { dontBuild = true; installPhase = "make install-data"; }
-
else {}))
-50
pkgs/os-specific/gnu/mig/default.nix
···
-
{ fetchgit, stdenv, autoconf, automake, flex, bison, machHeaders, bash }:
-
-
let
-
date = "20100512";
-
rev = "4fee6a5652f609cb68cdbd9049d4da7a194f15f8";
-
in
-
stdenv.mkDerivation {
-
name = "mig-${date}";
-
-
src = fetchgit {
-
url = "git://git.sv.gnu.org/hurd/mig.git";
-
sha256 = "d6958d9b60925d4600aac133c9505bc873a16b203c69260bd0fb228922ee9273";
-
inherit rev;
-
};
-
-
patches = [ ./noyywrap.patch ];
-
-
nativeBuildInputs = [ autoconf automake flex bison machHeaders ];
-
-
preConfigure = "autoreconf -vfi";
-
-
doCheck = true;
-
-
# Fix the shebang to point to the cross-built shell. Won't be needed
-
# after #43833.
-
postInstall = ''
-
sed -i "$out/bin/mig" -e 's|^#!/.*|#!${bash}/bin/sh|g'
-
'';
-
-
meta = {
-
description = "GNU MIG, the Mach interface generator";
-
-
longDescription =
-
'' GNU MIG is the GNU distribution of the Mach 3.0 interface generator
-
MIG, as maintained by the GNU Hurd developers for the GNU project.
-
-
You need this tool to compile the GNU Mach and GNU Hurd
-
distributions, and to compile the GNU C library for the Hurd. Also,
-
you will need it for other software in the GNU system that uses
-
Mach-based inter-process communication.
-
'';
-
-
license = stdenv.lib.licenses.gpl2Plus;
-
-
homepage = http://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html;
-
-
# platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # really GNU/Hurd
-
maintainers = [ stdenv.lib.maintainers.ludo ];
-
};
-
}
-12
pkgs/os-specific/gnu/mig/noyywrap.patch
···
-
Fix undefined reference to `yywrap'.
-
-
diff --git a/lexxer.l b/lexxer.l
-
index 9725d0b..15264bc 100644
-
--- a/lexxer.l
-
+++ b/lexxer.l
-
@@ -1,4 +1,5 @@
-
%option nounput
-
+%option noyywrap
-
-
%k 10000
-
%n 5000
-44
pkgs/os-specific/gnu/smbfs/default.nix
···
-
{ fetchcvs, stdenv, hurd, machHeaders, samba }:
-
-
let
-
date = "2012-03-15";
-
samba_patched = stdenv.lib.overrideDerivation samba (attrs: {
-
patches = attrs.patches ++ [ ./samba-without-byte-range-locks.patch ];
-
});
-
in
-
stdenv.mkDerivation rec {
-
name = "smbfs-${date}";
-
-
src = fetchcvs {
-
cvsRoot = ":pserver:anonymous@cvs.savannah.nongnu.org:/sources/hurdextras";
-
module = "smbfs";
-
sha256 = "5941d1a5da4488cbf0efe9aa0b41fe4ff5ba57b84ed24f7ff7c0feda4501d3e3";
-
inherit date;
-
};
-
-
patchPhase =
-
'' sed -i "Makefile" \
-
-e 's|gcc|i586-pc-gnu-gcc|g ;
-
s|^LDFLAGS=\(.*\)$|LDFLAGS=\1 -pthread|g'
-
'';
-
-
buildInputs = [ hurd machHeaders samba_patched ];
-
-
installPhase =
-
'' mkdir -p "$out/hurd"
-
cp -v smbfs "$out/hurd"
-
-
mkdir -p "$out/share/doc/${name}"
-
cp -v README "$out/share/doc/${name}"
-
'';
-
-
meta = {
-
description = "SMB/CIFS file system translator for GNU/Hurd";
-
-
homepage = http://www.nongnu.org/hurdextras/;
-
-
license = stdenv.lib.licenses.gpl3Plus;
-
-
maintainers = [ stdenv.lib.maintainers.ludo ];
-
};
-
}
-14
pkgs/os-specific/gnu/smbfs/samba-without-byte-range-locks.patch
···
-
Since GNU/Hurd doesn't support byte-range file locks, shamelessly
-
disable them to allow the SMB client library to work (it uses TDB
-
to access /etc/samba/private/secrets.tdb, for instance.)
-
-
--- samba/lib/tdb/common/lock.c 2010-02-08 16:12:57.000000000 +0100
-
+++ samba/lib/tdb/common/lock.c 2012-03-01 23:39:02.000000000 +0100
-
@@ -48,7 +48,7 @@ int tdb_brlock(struct tdb_context *tdb,
-
struct flock fl;
-
int ret;
-
-
- if (tdb->flags & TDB_NOLOCK) {
-
+ if (1) {
-
return 0;
-
}
-43
pkgs/os-specific/gnu/unionfs/default.nix
···
-
{ fetchgit, stdenv, hurd, machHeaders, mig }:
-
-
let
-
date = "20120313";
-
rev = "64dfa4e12d93c13b676d1cd7d86f4f4004ebfafa";
-
in
-
stdenv.mkDerivation rec {
-
name = "unionfs-${date}";
-
-
src = fetchgit {
-
url = "git://git.sv.gnu.org/hurd/unionfs.git";
-
sha256 = "1c3d71112cb25f8f82719a16df936e43abcb1adb77af96c1bb100a8ad0889d65";
-
inherit rev;
-
};
-
-
patchPhase =
-
'' sed -i "Makefile" \
-
-e 's|gcc|i586-pc-gnu-gcc|g ;
-
s|-std=gnu99|-std=gnu99 -fgnu89-inline|g'
-
'';
-
-
makeFlags = [ "CC=i586-pc-gnu-gcc" ];
-
buildInputs = [ hurd machHeaders ];
-
nativeBuildInputs = [ mig ];
-
-
installPhase =
-
'' mkdir -p "$out/hurd"
-
cp -v unionfs "$out/hurd"
-
-
mkdir -p "$out/share/doc/${name}"
-
cp -v [A-Z]* "$out/share/doc/${name}"
-
'';
-
-
meta = {
-
description = "Union file system translator for GNU/Hurd";
-
-
homepage = http://www.gnu.org/software/hurd/hurd/translator/unionfs.html;
-
-
license = stdenv.lib.licenses.gpl2Plus;
-
-
maintainers = [ stdenv.lib.maintainers.ludo ];
-
};
-
}
+1 -1
pkgs/stdenv/generic/default.nix
···
# Utility flags to test the type of platform.
inherit (hostPlatform)
-
isDarwin isLinux isSunOS isHurd isCygwin isFreeBSD isOpenBSD
+
isDarwin isLinux isSunOS isCygwin isFreeBSD isOpenBSD
isi686 isx86_64 is64bit isAarch32 isAarch64 isMips isBigEndian;
isArm = builtins.trace "stdenv.isArm is deprecated after 18.03" hostPlatform.isArm;
+2 -3
pkgs/tools/filesystems/nixpart/0.4/parted.nix
···
{ stdenv, fetchurl, lvm2, libuuid, gettext, readline
-
, utillinux, check, enableStatic ? false, hurd ? null }:
+
, utillinux, check, enableStatic ? false }:
stdenv.mkDerivation rec {
name = "parted-3.1";
···
buildInputs = [ libuuid ]
++ stdenv.lib.optional (readline != null) readline
++ stdenv.lib.optional (gettext != null) gettext
-
++ stdenv.lib.optional (lvm2 != null) lvm2
-
++ stdenv.lib.optional (hurd != null) hurd;
+
++ stdenv.lib.optional (lvm2 != null) lvm2;
configureFlags =
(if (readline != null)
+2 -3
pkgs/tools/misc/parted/default.nix
···
{ stdenv, fetchurl, fetchpatch, lvm2, libuuid, gettext, readline, perl, python2
-
, utillinux, check, enableStatic ? false, hurd ? null }:
+
, utillinux, check, enableStatic ? false }:
stdenv.mkDerivation rec {
name = "parted-3.2";
···
buildInputs = [ libuuid ]
++ stdenv.lib.optional (readline != null) readline
++ stdenv.lib.optional (gettext != null) gettext
-
++ stdenv.lib.optional (lvm2 != null) lvm2
-
++ stdenv.lib.optional (hurd != null) hurd;
+
++ stdenv.lib.optional (lvm2 != null) lvm2;
configureFlags =
(if (readline != null)
+2 -40
pkgs/top-level/all-packages.nix
···
patchutils = callPackage ../tools/text/patchutils { };
-
parted = callPackage ../tools/misc/parted { hurd = null; };
+
parted = callPackage ../tools/misc/parted { };
pell = callPackage ../applications/misc/pell { };
···
p0f = callPackage ../tools/security/p0f { };
pngout = callPackage ../tools/graphics/pngout { };
-
-
hurdPartedCross =
-
if targetPlatform != buildPlatform && targetPlatform.config == "i586-pc-gnu"
-
then (makeOverridable
-
({ hurd }:
-
(parted.override {
-
# Needs the Hurd's libstore.
-
inherit hurd;
-
-
# The Hurd wants a libparted.a.
-
enableStatic = true;
-
-
gettext = null;
-
readline = null;
-
devicemapper = null;
-
}).crossDrv)
-
{ hurd = gnu.hurdCrossIntermediate; })
-
else null;
ipsecTools = callPackage ../os-specific/linux/ipsec-tools { flex = flex_2_5_35; };
···
gdb = callPackage ../development/tools/misc/gdb {
guile = null;
-
hurd = gnu.hurdCross;
-
inherit (gnu) mig;
};
jhiccup = callPackage ../development/tools/java/jhiccup { };
···
libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
-
libuuid =
-
if targetPlatform != buildPlatform && targetPlatform.config == "i586-pc-gnu"
-
then (utillinuxMinimal // {
-
crossDrv = lib.overrideDerivation utillinuxMinimal.crossDrv (args: {
-
# `libblkid' fails to build on GNU/Hurd.
-
configureFlags = args.configureFlags
-
+ " --disable-libblkid --disable-mount --disable-libmount"
-
+ " --disable-fsck --enable-static --disable-partx";
-
doCheck = false;
-
CPPFLAGS = # ugly hack for ugly software!
-
lib.concatStringsSep " "
-
(map (v: "-D${v}=4096")
-
[ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
-
});
-
})
-
else if stdenv.isLinux
+
libuuid = if stdenv.isLinux
then utillinuxMinimal
else null;
···
nmon = callPackage ../os-specific/linux/nmon { };
-
-
# GNU/Hurd core packages.
-
gnu = recurseIntoAttrs (callPackage ../os-specific/gnu { });
hwdata = callPackage ../os-specific/linux/hwdata { };