Porting changes from stdenv-updates into this branch.
This comes from: svn diff ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff patch -p0 < diff and then adding into svn all files new from the patch. trunk@18255 comes from the last time I updated stdenv-updates from trunk. svn path=/nixpkgs/stdenv-updates2/; revision=18272
This commit is contained in:
parent
6e86ca940f
commit
4b27d28701
|
@ -1,4 +1,4 @@
|
|||
{stdenv, fetchurl, ocaml, zlib, ncurses}:
|
||||
{stdenv, fetchurl, ocaml, zlib, ncurses, gd, libpng}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mldonkey-3.0.0";
|
||||
|
@ -13,6 +13,16 @@ stdenv.mkDerivation {
|
|||
homepage = http://mldonkey.sourceforge.net/;
|
||||
};
|
||||
|
||||
buildInputs = [ ocaml zlib ncurses ];
|
||||
configureFlags = "--disable-gd --disable-gui";
|
||||
buildInputs = [ ocaml zlib ncurses gd libpng ];
|
||||
configureFlags = [ "--disable-gui" "--enable-ocamlver=3.11.1" ];
|
||||
|
||||
# Byte code compilation (the ocaml opt compiler is not supported in many platforms)
|
||||
buildPhase = "make mlnet.byte";
|
||||
installPhase = ''
|
||||
ensureDir $out/bin
|
||||
cp mlnet.byte $out/bin/mlnet
|
||||
'';
|
||||
|
||||
# ocaml bytecode selfcontained binaries loose the bytecode if stripped
|
||||
dontStrip = true;
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ mkGccWrapper() {
|
|||
|
||||
if ! test -f "$src"; then
|
||||
echo "$src does not exist (skipping)"
|
||||
return
|
||||
return 1
|
||||
fi
|
||||
|
||||
gccProg="$src"
|
||||
|
@ -91,18 +91,24 @@ mkGccWrapper() {
|
|||
chmod +x "$dst"
|
||||
}
|
||||
|
||||
mkGccWrapper $out/bin/gcc $gccPath/gcc
|
||||
ln -s gcc $out/bin/cc
|
||||
|
||||
mkGccWrapper $out/bin/g++ $gccPath/g++
|
||||
ln -s g++ $out/bin/c++
|
||||
|
||||
if test -e $gccPath/gfortran; then
|
||||
mkGccWrapper $out/bin/gfortran $gccPath/gfortran
|
||||
ln -s gfortran $out/bin/g77
|
||||
ln -s gfortran $out/bin/f77
|
||||
if mkGccWrapper $out/bin/gcc $gccPath/gcc
|
||||
then
|
||||
ln -sv gcc $out/bin/cc
|
||||
fi
|
||||
|
||||
if mkGccWrapper $out/bin/g++ $gccPath/g++
|
||||
then
|
||||
ln -sv g++ $out/bin/c++
|
||||
fi
|
||||
|
||||
if mkGccWrapper $out/bin/gfortran $gccPath/gfortran
|
||||
then
|
||||
ln -sv gfortran $out/bin/g77
|
||||
ln -sv gfortran $out/bin/f77
|
||||
fi
|
||||
|
||||
mkGccWrapper $out/bin/gcj $gccPath/gcj || true
|
||||
|
||||
|
||||
# Create a symlink to as (the assembler). This is useful when a
|
||||
# gcc-wrapper is installed in a user environment, as it ensures that
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
# variables so that the compiler and the linker just "work".
|
||||
|
||||
{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
|
||||
, gcc ? null, libc ? null, binutils ? null, shell ? ""
|
||||
, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? ""
|
||||
}:
|
||||
|
||||
assert nativeTools -> nativePrefix != "";
|
||||
assert !nativeTools -> gcc != null && binutils != null;
|
||||
assert !nativeTools -> gcc != null && binutils != null && coreutils != null;
|
||||
assert !nativeLibc -> libc != null;
|
||||
|
||||
let
|
||||
|
@ -35,6 +35,8 @@ stdenv.mkDerivation {
|
|||
inherit nativeTools nativeLibc nativePrefix gcc;
|
||||
libc = if nativeLibc then null else libc;
|
||||
binutils = if nativeTools then null else binutils;
|
||||
# The wrapper scripts use 'cat', so we may need coreutils
|
||||
coreutils = if nativeTools then null else coreutils;
|
||||
|
||||
langC = if nativeTools then true else gcc.langC;
|
||||
langCC = if nativeTools then true else gcc.langCC;
|
||||
|
@ -54,6 +56,7 @@ stdenv.mkDerivation {
|
|||
if !nativeLibc then
|
||||
(if stdenv.system == "i686-linux" then "ld-linux.so.2" else
|
||||
if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
|
||||
if stdenv.system == "armv5tel-linux" then "ld-linux.so.3" else
|
||||
if stdenv.system == "powerpc-linux" then "ld.so.1" else
|
||||
abort "don't know the name of the dynamic linker for this platform")
|
||||
else "";
|
||||
|
|
|
@ -27,3 +27,7 @@ fi
|
|||
if test -n "@libc@"; then
|
||||
addToSearchPath PATH @libc@/bin
|
||||
fi
|
||||
|
||||
if test -n "@coreutils@"; then
|
||||
addToSearchPath PATH @coreutils@/bin
|
||||
fi
|
||||
|
|
|
@ -12,12 +12,17 @@
|
|||
# `contents = {object = ...; symlink = /init;}' is a typical
|
||||
# argument.
|
||||
|
||||
{stdenv, perl, cpio, contents}:
|
||||
{stdenv, perl, cpio, contents, uboot ? null}:
|
||||
|
||||
assert stdenv.system == "armv5tel-linux" -> uboot != null;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "initrd";
|
||||
builder = ./make-initrd.sh;
|
||||
buildInputs = [perl cpio];
|
||||
buildInputs = [perl cpio]
|
||||
++ stdenv.lib.optional (stdenv.system == "armv5tel-linux") [ uboot ];
|
||||
|
||||
makeUInitrd = if (stdenv.system == "armv5tel-linux") then true else false;
|
||||
|
||||
# !!! should use XML.
|
||||
objects = map (x: x.object) contents;
|
||||
|
|
|
@ -37,3 +37,8 @@ storePaths=$(perl $pathsFromGraph closure-*)
|
|||
# Put the closure in a gzipped cpio archive.
|
||||
ensureDir $out
|
||||
(cd root && find * -print0 | cpio -ov -H newc --null | gzip -9 > $out/initrd)
|
||||
|
||||
if [ -n "$makeUInitrd" ]; then
|
||||
mv $out/initrd $out/initrd.gz
|
||||
mkimage -A arm -O linux -T ramdisk -C gzip -d $out/initrd.gz $out/initrd
|
||||
fi
|
||||
|
|
|
@ -22,7 +22,7 @@ for module in $rootModules; do
|
|||
done
|
||||
|
||||
echo "closure:"
|
||||
ensureDir $out
|
||||
ensureDir $out/lib/modules/"$version"
|
||||
for module in $closure; do
|
||||
target=$(echo $module | sed "s^/nix/store/.*/lib/modules/^$out/lib/modules/^")
|
||||
if test -e "$target"; then continue; fi
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
, langJava ? false
|
||||
, profiledCompiler ? false
|
||||
, staticCompiler ? false
|
||||
, enableShared ? true
|
||||
, texinfo ? null
|
||||
, gmp, mpfr
|
||||
, bison ? null, flex ? null
|
||||
|
@ -15,7 +16,7 @@ assert langTreelang -> bison != null && flex != null;
|
|||
|
||||
with stdenv.lib;
|
||||
|
||||
let version = "4.3.3"; in
|
||||
let version = "4.3.4"; in
|
||||
|
||||
stdenv.mkDerivation ({
|
||||
name = "${name}-${version}";
|
||||
|
@ -25,19 +26,19 @@ stdenv.mkDerivation ({
|
|||
src =
|
||||
optional /*langC*/ true (fetchurl {
|
||||
url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
|
||||
sha256 = "08yksvipnqmqbmif30rwjkg3y0m6ray5r84wa2argv8q0bpz9426";
|
||||
sha256 = "1yk80nwyw8vkpw8d3x7lkg3zrv3ngjqlvj0i8zslzgj7a27q729i";
|
||||
}) ++
|
||||
optional langCC (fetchurl {
|
||||
url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
|
||||
sha256 = "12z2zh03yq214qs2cqzh8c64jjfz544nk1lzi9rygjwm8yjsvzm9";
|
||||
sha256 = "0d8pyk5c9zmph25f4fl63vd8vhljj6ildbxpz2hr594g5i6pplpq";
|
||||
}) ++
|
||||
optional langFortran (fetchurl {
|
||||
url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
|
||||
sha256 = "1b2wbysviyh7l9fqbd6zy5y6y89xgysy99gr8wx8xkc1hy2nwdsq";
|
||||
sha256 = "1xf2njykv1qcgxiqwj693dxjf77ss1rcxirylvnsp5hs89mdlj12";
|
||||
}) ++
|
||||
optional langJava (fetchurl {
|
||||
url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
|
||||
sha256 = "1mlazpydd9qv7zwxkbb5sw3clfawfndhcc3f5lzycminvn6qmfkb";
|
||||
sha256 = "1v3krhxi3zyaqfj0x8dbxvg67fjp29cr1psyf71r9zf757p3vqsw";
|
||||
});
|
||||
|
||||
patches =
|
||||
|
@ -56,6 +57,7 @@ stdenv.mkDerivation ({
|
|||
|
||||
configureFlags = "
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
${if enableShared then "" else "--disable-shared"}
|
||||
--disable-libstdcxx-pch
|
||||
--with-system-zlib
|
||||
--enable-languages=${
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
args: with args;
|
||||
|
||||
let
|
||||
useX11 = (stdenv.system != "armv5tel-linux");
|
||||
useNativeCompilers = (stdenv.system != "armv5tel-linux");
|
||||
inherit (stdenv.lib) optionals optionalString;
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
|
||||
name = "ocaml-3.11.1";
|
||||
|
@ -10,10 +15,10 @@ stdenv.mkDerivation (rec {
|
|||
};
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
configureFlags = ["-no-tk" "-x11lib" x11];
|
||||
buildFlags = "world bootstrap world.opt";
|
||||
buildInputs = [x11 ncurses];
|
||||
installTargets = "install installopt";
|
||||
configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11 ];
|
||||
buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
|
||||
buildInputs = [ncurses] ++ optionals useX11 [ x11 ];
|
||||
installTargets = "install" + optionalString useNativeCompilers " installopt";
|
||||
patchPhase = ''
|
||||
CAT=$(type -tp cat)
|
||||
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
|
||||
|
|
31
pkgs/development/compilers/ocaml/cvs.nix
Normal file
31
pkgs/development/compilers/ocaml/cvs.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
args: with args;
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
|
||||
name = "ocaml-cvs-2009-09-24";
|
||||
|
||||
src = fetchcvs {
|
||||
cvsRoot = ":pserver:anoncvs@camlcvs.inria.fr:/caml";
|
||||
module = "ocaml";
|
||||
date = "2009-09-24";
|
||||
sha256 = "3909bffebc9ce36ca51711d7d95596cba94376ebb1975c6ed46b09c9892c3ef1";
|
||||
};
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
configureFlags = ["-no-tk"];
|
||||
buildFlags = "world" +
|
||||
(if (stdenv.system != "armv5tel-linux") then "bootstrap world.opt" else "");
|
||||
buildInputs = [ncurses];
|
||||
installTargets = "install" + (if (stdenv.system != "armv5tel-linux") then "installopt" else "");
|
||||
patchPhase = ''
|
||||
CAT=$(type -tp cat)
|
||||
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://caml.inria.fr/ocaml;
|
||||
license = "QPL, LGPL2 (library part)";
|
||||
desctiption = "Most popular variant of the Caml language";
|
||||
};
|
||||
|
||||
})
|
|
@ -2,6 +2,13 @@
|
|||
, impureLibcPath ? null
|
||||
}:
|
||||
|
||||
let
|
||||
preBuildNoNative = ''
|
||||
# Make Cwd work on NixOS (where we don't have a /bin/pwd).
|
||||
substituteInPlace lib/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
|
||||
'';
|
||||
preBuildNative = "";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "perl-5.10.0";
|
||||
|
||||
|
@ -24,16 +31,21 @@ stdenv.mkDerivation {
|
|||
# "installstyle" option to ensure that modules are put under
|
||||
# $out/lib/perl5 - this is the general default, but because $out
|
||||
# contains the string "perl", Configure would select $out/lib.
|
||||
configureFlags = ''
|
||||
-de -Dcc=gcc -Uinstallusrbinperl -Dinstallstyle=lib/perl5 -Duseshrplib
|
||||
${if stdenv ? glibc then "-Dusethreads" else ""}
|
||||
'';
|
||||
# Miniperl needs -lm. perl needs -lrt.
|
||||
configureFlags = [
|
||||
"-de"
|
||||
"-Dcc=gcc"
|
||||
"-Uinstallusrbinperl"
|
||||
"-Dinstallstyle=lib/perl5"
|
||||
"-Duseshrplib"
|
||||
(if stdenv ? glibc then "-Dusethreads" else "")
|
||||
];
|
||||
|
||||
configureScript = "${stdenv.shell} ./Configure";
|
||||
|
||||
dontAddPrefix = true;
|
||||
|
||||
preConfigure =
|
||||
configurePhase =
|
||||
''
|
||||
configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
|
||||
|
||||
|
@ -41,13 +53,11 @@ stdenv.mkDerivation {
|
|||
GLIBC=${if impureLibcPath == null then "$(cat $NIX_GCC/nix-support/orig-libc)" else impureLibcPath}
|
||||
configureFlags="$configureFlags -Dlocincpth=$GLIBC/include -Dloclibpth=$GLIBC/lib"
|
||||
fi
|
||||
${stdenv.shell} ./Configure $configureFlags \
|
||||
${if stdenv.system == "armv5tel-linux" then "-Dldflags=\"-lm -lrt\"" else ""};
|
||||
'';
|
||||
|
||||
preBuild =
|
||||
''
|
||||
# Make Cwd work on NixOS (where we don't have a /bin/pwd).
|
||||
${if stdenv.system == "i686-darwin" then "" else "substituteInPlace lib/Cwd.pm --replace \"'/bin/pwd'\" \"'$(type -tP pwd)'\""}
|
||||
'';
|
||||
preBuild = if (stdenv.gcc.nativeTools) then preBuildNative else preBuildNoNative;
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
}
|
||||
|
|
63
pkgs/development/libraries/eglibc/builder.sh
Normal file
63
pkgs/development/libraries/eglibc/builder.sh
Normal file
|
@ -0,0 +1,63 @@
|
|||
# Glibc cannot have itself in its RPATH.
|
||||
export NIX_NO_SELF_RPATH=1
|
||||
|
||||
source $stdenv/setup
|
||||
|
||||
# Explicitly tell glibc to use our pwd, not /bin/pwd.
|
||||
export PWD_P=$(type -tP pwd)
|
||||
|
||||
# Needed to install share/zoneinfo/zone.tab. Set to impure /bin/sh to
|
||||
# prevent a retained dependency on the bootstrap tools in the
|
||||
# stdenv-linux bootstrap.
|
||||
export BASH_SHELL=/bin/sh
|
||||
|
||||
preConfigure() {
|
||||
|
||||
for i in libc/configure libc/io/ftwtest-sh; do
|
||||
# Can't use substituteInPlace here because replace hasn't been
|
||||
# built yet in the bootstrap.
|
||||
sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
|
||||
done
|
||||
|
||||
# Include source for debugging
|
||||
ensureDir $out/src
|
||||
cp -R libc ports $out/src
|
||||
ln -s $out/src/ports $out/src/libc/ports
|
||||
# glibc wants -O2 minimum
|
||||
export CFLAGS="-pipe -g -O2"
|
||||
|
||||
mkdir $NIX_BUILD_TOP/build
|
||||
cd $NIX_BUILD_TOP/build
|
||||
|
||||
configureScript=$out/src/libc/configure
|
||||
}
|
||||
|
||||
|
||||
postConfigure() {
|
||||
# Hack: get rid of the `-static' flag set by the bootstrap stdenv.
|
||||
# This has to be done *after* `configure' because it builds some
|
||||
# test binaries.
|
||||
export NIX_CFLAGS_LINK=
|
||||
export NIX_LDFLAGS_BEFORE=
|
||||
|
||||
export NIX_DONT_SET_RPATH=1
|
||||
unset CFLAGS
|
||||
}
|
||||
|
||||
|
||||
postInstall() {
|
||||
if test -n "$installLocales"; then
|
||||
make localedata/install-locales
|
||||
fi
|
||||
rm $out/etc/ld.so.cache
|
||||
(cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
|
||||
|
||||
# Fix for NIXOS-54 (ldd not working on x86_64). Make a symlink
|
||||
# "lib64" to "lib".
|
||||
if test -n "$is64bit"; then
|
||||
ln -s lib $out/lib64
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
genericBuild
|
32
pkgs/development/libraries/eglibc/default.nix
Normal file
32
pkgs/development/libraries/eglibc/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ stdenv, fetchsvn, kernelHeaders
|
||||
, installLocales ? true
|
||||
, profilingLibraries ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "eglibc-2.10";
|
||||
|
||||
src = fetchsvn {
|
||||
url = svn://svn.eglibc.org/branches/eglibc-2_10;
|
||||
rev = 8690;
|
||||
sha256 = "029hklrx2rlhsb5r2csd0gapjm0rbr8n28ib6jnnhms12x302viq";
|
||||
};
|
||||
|
||||
inherit kernelHeaders installLocales;
|
||||
|
||||
configureFlags = [
|
||||
"--with-headers=${kernelHeaders}/include"
|
||||
"--without-fp"
|
||||
"--enable-add-ons=libidn,ports,nptl"
|
||||
"--disable-profile"
|
||||
"--host=arm-linux-gnueabi"
|
||||
"--build=arm-linux-gnueabi"
|
||||
];
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/libc/;
|
||||
description = "The GNU C Library";
|
||||
};
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
{ stdenv, fetchurl
|
||||
|
||||
, # FreeType supports hinting using a TrueType bytecode interpreter,
|
||||
# as well as sub-pixel rendering. These are patented by Apple and
|
||||
# Microsoft, respectively, so they are disabled by default. This
|
||||
|
@ -8,7 +7,7 @@
|
|||
useEncumberedCode ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (rec {
|
||||
name = "freetype-2.3.11";
|
||||
|
||||
src = fetchurl {
|
||||
|
@ -26,4 +25,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = http://www.freetype.org/;
|
||||
license = "GPLv2+"; # or the FreeType License (BSD + advertising clause)
|
||||
};
|
||||
}
|
||||
} //
|
||||
# The asm for armel is written with the 'asm' keyword.
|
||||
(if (stdenv.system == "armv5tel-linux") then
|
||||
{CFLAGS = "-std=gnu99";} else {}))
|
||||
|
|
42
pkgs/development/libraries/glibc-2.9/binutils-2.20.patch
Normal file
42
pkgs/development/libraries/glibc-2.9/binutils-2.20.patch
Normal file
|
@ -0,0 +1,42 @@
|
|||
Support GNU Binutils 2.20 and beyond. Patch from
|
||||
http://sourceware.org/ml/libc-alpha/2009-09/msg00009.html .
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 48e6952..b1d84d7 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4841,7 +4841,7 @@ $as_echo_n "checking version of $AS... " >&6; }
|
||||
ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
- 2.1[3-9]*)
|
||||
+ 2.1[3-9]*|[2-9].[2-9]*)
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
|
||||
@@ -4904,7 +4904,7 @@ $as_echo_n "checking version of $LD... " >&6; }
|
||||
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
- 2.1[3-9]*)
|
||||
+ 2.1[3-9]*|[2-9].[2-9]*)
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index 4584afe..7c4f71f 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -897,10 +897,10 @@ AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
|
||||
# Accept binutils 2.13 or newer.
|
||||
AC_CHECK_PROG_VER(AS, $AS, --version,
|
||||
[GNU assembler.* \([0-9]*\.[0-9.]*\)],
|
||||
- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
|
||||
+ [2.1[3-9]*|[2-9].[2-9]*], AS=: critic_missing="$critic_missing as")
|
||||
AC_CHECK_PROG_VER(LD, $LD, --version,
|
||||
[GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
|
||||
- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
|
||||
+ [2.1[3-9]*|[2-9].[2-9]*], LD=: critic_missing="$critic_missing ld")
|
||||
|
||||
# We need the physical current working directory. We cannot use the
|
||||
# "pwd -P" shell builtin since that's not portable. Instead we try to
|
|
@ -26,11 +26,13 @@ preConfigure() {
|
|||
# don't want as a dependency in the Nixpkgs bootstrap. So force
|
||||
# the output file to be newer.
|
||||
touch locale/C-translit.h
|
||||
|
||||
tar xvjf "$srcPorts"
|
||||
|
||||
mkdir ../build
|
||||
cd ../build
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
configureScript=../$sourceRoot/configure
|
||||
configureScript=../configure
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,6 +44,7 @@ postConfigure() {
|
|||
export NIX_LDFLAGS_BEFORE=
|
||||
|
||||
export NIX_DONT_SET_RPATH=1
|
||||
unset CFLAGS
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -9,8 +9,13 @@ stdenv.mkDerivation rec {
|
|||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/glibc-2.9-20081208.tar.bz2;
|
||||
sha256 = "0zhxbgcsl97pf349m0lz8d5ljvvzrcqc23yf08d888xlk4ms8m3h";
|
||||
url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
|
||||
sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
|
||||
};
|
||||
|
||||
srcPorts = fetchurl {
|
||||
url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
|
||||
sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
|
||||
};
|
||||
|
||||
inherit kernelHeaders installLocales;
|
||||
|
@ -46,12 +51,28 @@ stdenv.mkDerivation rec {
|
|||
|
||||
/* Have rpcgen(1) look for cpp(1) in $PATH. */
|
||||
./rpcgen-path.patch
|
||||
|
||||
/* Support GNU Binutils 2.20 and above. */
|
||||
./binutils-2.20.patch
|
||||
];
|
||||
|
||||
configureFlags = ''
|
||||
--enable-add-ons
|
||||
--with-headers=${kernelHeaders}/include
|
||||
${if profilingLibraries then "--enable-profile" else "--disable-profile"}
|
||||
configureFlags = [
|
||||
"--enable-add-ons"
|
||||
"--with-headers=${kernelHeaders}/include"
|
||||
(if profilingLibraries then "--enable-profile" else "--disable-profile")
|
||||
] ++ (if (stdenv.system == "armv5tel-linux") then [
|
||||
"--host=arm-linux-gnueabi"
|
||||
"--build=arm-linux-gnueabi"
|
||||
"--without-fp"
|
||||
] else []);
|
||||
|
||||
preInstall = ''
|
||||
ensureDir $out/lib
|
||||
ln -s ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm $out/lib/libgcc_s.so.1
|
||||
'';
|
||||
|
||||
# Workaround for this bug:
|
||||
|
|
|
@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0zhxbgcsl97pf349m0lz8d5ljvvzrcqc23yf08d888xlk4ms8m3h";
|
||||
};
|
||||
|
||||
patches = [
|
||||
/* Support GNU Binutils 2.20 and above. */
|
||||
./binutils-2.20.patch
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
export PWD_P=$(type -tP pwd)
|
||||
for i in configure io/ftwtest-sh; do
|
||||
|
|
|
@ -10,13 +10,35 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "glibc-locales-2.9";
|
||||
|
||||
|
||||
builder = ./localesbuilder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/glibc-2.9-20081208.tar.bz2;
|
||||
sha256 = "0zhxbgcsl97pf349m0lz8d5ljvvzrcqc23yf08d888xlk4ms8m3h";
|
||||
url = http://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.bz2;
|
||||
sha256 = "0v53m7flx6qcx7cvrvvw6a4dx4x3y6k8nvpc4wfv5xaaqy2am2q9";
|
||||
};
|
||||
|
||||
configurePhase = "true";
|
||||
srcPorts = fetchurl {
|
||||
url = http://ftp.gnu.org/gnu/glibc/glibc-ports-2.9.tar.bz2;
|
||||
sha256 = "0r2sn527wxqifi63di7ns9wbjh1cainxn978w178khhy7yw9fk42";
|
||||
};
|
||||
|
||||
inherit (stdenv) is64bit;
|
||||
|
||||
configureFlags = [
|
||||
"--enable-add-ons"
|
||||
"--without-headers"
|
||||
"--disable-profile"
|
||||
] ++ (if (stdenv.system == "armv5tel-linux") then [
|
||||
"--host=arm-linux-gnueabi"
|
||||
"--build=arm-linux-gnueabi"
|
||||
"--without-fp"
|
||||
] else []);
|
||||
|
||||
patches = [
|
||||
/* Support GNU Binutils 2.20 and above. */
|
||||
./binutils-2.20.patch
|
||||
];
|
||||
|
||||
# Awful hack: `localedef' doesn't allow the path to `locale-archive'
|
||||
# to be overriden, but you *can* specify a prefix, i.e. it will use
|
||||
|
@ -25,8 +47,6 @@ stdenv.mkDerivation rec {
|
|||
# $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive.
|
||||
buildPhase =
|
||||
''
|
||||
touch config.make
|
||||
touch config.status
|
||||
mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale"
|
||||
make localedata/install-locales \
|
||||
LOCALEDEF="localedef --prefix=$TMPDIR" \
|
||||
|
|
50
pkgs/development/libraries/glibc-2.9/localesbuilder.sh
Normal file
50
pkgs/development/libraries/glibc-2.9/localesbuilder.sh
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Glibc cannot have itself in its RPATH.
|
||||
export NIX_NO_SELF_RPATH=1
|
||||
|
||||
source $stdenv/setup
|
||||
|
||||
# Explicitly tell glibc to use our pwd, not /bin/pwd.
|
||||
export PWD_P=$(type -tP pwd)
|
||||
|
||||
# Needed to install share/zoneinfo/zone.tab. Set to impure /bin/sh to
|
||||
# prevent a retained dependency on the bootstrap tools in the
|
||||
# stdenv-linux bootstrap.
|
||||
export BASH_SHELL=/bin/sh
|
||||
|
||||
|
||||
preConfigure() {
|
||||
|
||||
for i in configure io/ftwtest-sh; do
|
||||
# Can't use substituteInPlace here because replace hasn't been
|
||||
# built yet in the bootstrap.
|
||||
sed -i "$i" -e "s^/bin/pwd^$PWD_P^g"
|
||||
done
|
||||
|
||||
# In the glibc 2.6/2.7 tarballs C-translit.h is a little bit older
|
||||
# than C-translit.h.in, forcing Make to rebuild it unnecessarily.
|
||||
# This wouldn't be problem except that it requires Perl, which we
|
||||
# don't want as a dependency in the Nixpkgs bootstrap. So force
|
||||
# the output file to be newer.
|
||||
touch locale/C-translit.h
|
||||
|
||||
tar xvjf "$srcPorts"
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
configureScript=../configure
|
||||
}
|
||||
|
||||
|
||||
postConfigure() {
|
||||
# Hack: get rid of the `-static' flag set by the bootstrap stdenv.
|
||||
# This has to be done *after* `configure' because it builds some
|
||||
# test binaries.
|
||||
export NIX_CFLAGS_LINK=
|
||||
export NIX_LDFLAGS_BEFORE=
|
||||
|
||||
export NIX_DONT_SET_RPATH=1
|
||||
unset CFLAGS
|
||||
}
|
||||
|
||||
genericBuild
|
|
@ -10,6 +10,9 @@ stdenv.mkDerivation {
|
|||
|
||||
patchFlags = "-p0";
|
||||
|
||||
CFLAGS = "-O0";
|
||||
CXXFLAGS = "-O0";
|
||||
|
||||
patches = [
|
||||
(fetchurl {
|
||||
url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-libs/icu/files/icu-3.8-setBreakType-public.diff?rev=1.1";
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
{stdenv, fetchurl}:
|
||||
|
||||
# I could not build it in armv5tel-linux
|
||||
assert stdenv.system != "armv5tel-linux";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "libxcrypt-3.0.2";
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
This patch is to make sure that `libncurses' is among the `NEEDED'
|
||||
dependencies of `libreadline.so' and `libhistory.so'.
|
||||
|
||||
Failing to do that, applications linking against Readline are
|
||||
forced to explicitly link against libncurses as well; in addition,
|
||||
this trick doesn't work when using GNU ld's `--as-needed'.
|
||||
|
||||
--- shlib/Makefile.in 2009-01-06 18:03:22.000000000 +0100
|
||||
+++ shlib/Makefile.in 2009-07-27 14:43:25.000000000 +0200
|
||||
@@ -84,7 +84,7 @@ SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
|
||||
SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
|
||||
SHOBJ_LIBS = @SHOBJ_LIBS@
|
||||
|
||||
-SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@
|
||||
+SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ -lncurses
|
||||
SHLIB_LIBS = @SHLIB_LIBS@
|
||||
|
||||
SHLIB_DOT = @SHLIB_DOT@
|
8
pkgs/development/libraries/readline/readline-patches.nix
Normal file
8
pkgs/development/libraries/readline/readline-patches.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Automatically generated by `update-patch-set.sh'; do not edit.
|
||||
|
||||
patch: [
|
||||
(patch "001" "1wbqnsxm4nd8rjckl8mdqcb82pphnsj2yxs4f2nf88kyhwzy544i")
|
||||
(patch "002" "070c3jz8fs5q17yy3l70wxklgnw6hp5ac9zhb0jdnrr9hf0wi6kl")
|
||||
(patch "003" "1gwssafy42hcijcynmlpqsasch7kqxbv2cqw0p7f9p2y6vp9ng2j")
|
||||
(patch "004" "1yzaycdfqjs5jdl0k7qg9cx47bdlq9xs0m6lfq42ys3yscmb1jzm")
|
||||
]
|
|
@ -9,7 +9,20 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
propagatedBuildInputs = [ncurses];
|
||||
|
||||
|
||||
patchFlags = "-p0";
|
||||
patches =
|
||||
[ ./link-against-ncurses.patch ]
|
||||
++
|
||||
(let
|
||||
patch = nr: sha256:
|
||||
fetchurl {
|
||||
url = "mirror://gnu/readline/readline-6.0-patches/readline60-${nr}";
|
||||
inherit sha256;
|
||||
};
|
||||
in
|
||||
import ./readline-patches.nix patch);
|
||||
|
||||
meta = {
|
||||
description = "GNU Readline, a library for interactive line editing";
|
||||
|
||||
|
@ -31,5 +44,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = http://savannah.gnu.org/projects/readline/;
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{stdenv, fetchurl, noSysDirs}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "binutils-2.19.1";
|
||||
|
||||
name = "binutils-2.20";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/binutils/${name}.tar.bz2";
|
||||
sha256 = "1xirhxwc94bk6hn2k6i5ly4knbcjsqgy2lp7kl1s5q5csys2b0iy";
|
||||
sha256 = "1c3m789p5rwmmnck5ms4zcnc40axss3gxzivz571al1vmbq0kpz1";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -14,16 +14,16 @@ stdenv.mkDerivation rec {
|
|||
# RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
|
||||
./new-dtags.patch
|
||||
];
|
||||
|
||||
|
||||
inherit noSysDirs;
|
||||
|
||||
preConfigure = ''
|
||||
# Clear the default library search path.
|
||||
if test "$noSysDirs" = "1"; then
|
||||
echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
|
||||
echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
|
||||
fi
|
||||
'';
|
||||
|
||||
|
||||
configureFlags = "--disable-werror"; # needed for dietlibc build
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
stdenv.mkDerivation {
|
||||
name = "strace-4.5.18";
|
||||
|
||||
patches = [ ./strace-4.5.18-arm-syscalls.patch ];
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/strace/strace-4.5.18.tar.bz2;
|
||||
sha256 = "1l16vax3mn2wak288g1inmn30i49vlghnvfwr0z2rwh41r3vgrwm";
|
||||
|
|
|
@ -0,0 +1,162 @@
|
|||
From f5da8d0c38ea0eb660cb17de7aa62cda6899eb75 Mon Sep 17 00:00:00 2001
|
||||
From: ldv <ldv>
|
||||
Date: Thu, 1 Jan 2009 23:20:38 +0000
|
||||
Subject: [PATCH] 2008-11-13 Kirill A. Shutemov <kirill@shutemov.name>
|
||||
|
||||
* linux/arm/syscallent.h: Fix build on ARM EABI which does not
|
||||
provide syscalls socketcall and ipc.
|
||||
---
|
||||
ChangeLog | 5 +++++
|
||||
linux/arm/syscallent.h | 4 +++-
|
||||
2 files changed, 8 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
|
||||
index 5ccef2f..edc3641 100644
|
||||
--- a/linux/arm/syscallent.h
|
||||
+++ b/linux/arm/syscallent.h
|
||||
@@ -431,6 +431,7 @@
|
||||
{ 5, 0, printargs, "SYS_398" }, /* 398 */
|
||||
{ 5, 0, printargs, "SYS_399" }, /* 399 */
|
||||
|
||||
+#ifndef __ARM_EABI__
|
||||
#if SYS_socket_subcall != 400
|
||||
#error fix me
|
||||
#endif
|
||||
@@ -481,3 +482,4 @@
|
||||
{ 4, TI, sys_shmdt, "shmdt" }, /* 440 */
|
||||
{ 4, TI, sys_shmget, "shmget" }, /* 441 */
|
||||
{ 4, TI, sys_shmctl, "shmctl" }, /* 442 */
|
||||
+#endif
|
||||
--
|
||||
1.6.1.3
|
||||
|
||||
From 885d06bc92bae2f6aad85ef2fe0b806a06f60712 Mon Sep 17 00:00:00 2001
|
||||
From: ldv <ldv>
|
||||
Date: Thu, 1 Jan 2009 23:23:47 +0000
|
||||
Subject: [PATCH] 2008-11-13 Kirill A. Shutemov <kirill@shutemov.name>
|
||||
|
||||
* linux/arm/syscallent.h: Update syscalls.
|
||||
Based on patch by Enrico Scholz.
|
||||
---
|
||||
ChangeLog | 3 +
|
||||
linux/arm/syscallent.h | 98 ++++++++++++++++++++++++------------------------
|
||||
2 files changed, 52 insertions(+), 49 deletions(-)
|
||||
|
||||
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
|
||||
index edc3641..6dd783a 100644
|
||||
--- a/linux/arm/syscallent.h
|
||||
+++ b/linux/arm/syscallent.h
|
||||
@@ -328,63 +328,63 @@
|
||||
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 295 */
|
||||
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 296 */
|
||||
{ 3, TN, sys_recvmsg, "recvmsg" }, /* 297 */
|
||||
- { 5, 0, printargs, "SYS_298" }, /* 298 */
|
||||
- { 5, 0, printargs, "SYS_299" }, /* 299 */
|
||||
- { 5, 0, printargs, "SYS_300" }, /* 300 */
|
||||
- { 5, 0, printargs, "SYS_301" }, /* 301 */
|
||||
- { 5, 0, printargs, "SYS_302" }, /* 302 */
|
||||
- { 5, 0, printargs, "SYS_303" }, /* 303 */
|
||||
- { 5, 0, printargs, "SYS_304" }, /* 304 */
|
||||
- { 5, 0, printargs, "SYS_305" }, /* 305 */
|
||||
- { 5, 0, printargs, "SYS_306" }, /* 306 */
|
||||
- { 5, 0, printargs, "SYS_307" }, /* 307 */
|
||||
- { 5, 0, printargs, "SYS_308" }, /* 308 */
|
||||
- { 5, 0, printargs, "SYS_309" }, /* 309 */
|
||||
- { 5, 0, printargs, "SYS_310" }, /* 310 */
|
||||
- { 5, 0, printargs, "SYS_311" }, /* 311 */
|
||||
- { 5, 0, printargs, "SYS_312" }, /* 312 */
|
||||
- { 5, 0, printargs, "SYS_313" }, /* 313 */
|
||||
- { 5, 0, printargs, "SYS_314" }, /* 314 */
|
||||
- { 5, 0, printargs, "SYS_315" }, /* 315 */
|
||||
- { 5, 0, printargs, "SYS_316" }, /* 316 */
|
||||
- { 5, 0, printargs, "SYS_317" }, /* 317 */
|
||||
- { 5, 0, printargs, "SYS_318" }, /* 318 */
|
||||
- { 5, 0, printargs, "SYS_319" }, /* 319 */
|
||||
- { 5, 0, printargs, "SYS_320" }, /* 320 */
|
||||
- { 5, 0, printargs, "SYS_321" }, /* 321 */
|
||||
- { 5, 0, printargs, "SYS_322" }, /* 322 */
|
||||
- { 5, 0, printargs, "SYS_323" }, /* 323 */
|
||||
- { 5, 0, printargs, "SYS_324" }, /* 324 */
|
||||
- { 5, 0, printargs, "SYS_325" }, /* 325 */
|
||||
- { 5, 0, printargs, "SYS_326" }, /* 326 */
|
||||
- { 5, 0, printargs, "SYS_327" }, /* 327 */
|
||||
- { 5, 0, printargs, "SYS_328" }, /* 328 */
|
||||
- { 5, 0, printargs, "SYS_329" }, /* 329 */
|
||||
- { 5, 0, printargs, "SYS_330" }, /* 330 */
|
||||
- { 5, 0, printargs, "SYS_331" }, /* 331 */
|
||||
- { 5, 0, printargs, "SYS_332" }, /* 332 */
|
||||
- { 5, 0, printargs, "SYS_333" }, /* 333 */
|
||||
- { 5, 0, printargs, "SYS_334" }, /* 334 */
|
||||
+ { 4, TI, sys_semop, "semop" }, /* 298 */
|
||||
+ { 4, TI, sys_semget, "semget" }, /* 299 */
|
||||
+ { 4, TI, sys_semctl, "semctl" }, /* 300 */
|
||||
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 301 */
|
||||
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 302 */
|
||||
+ { 4, TI, sys_msgget, "msgget" }, /* 303 */
|
||||
+ { 4, TI, sys_msgctl, "msgctl" }, /* 304 */
|
||||
+ { 4, TI, sys_shmat, "shmat" }, /* 305 */
|
||||
+ { 4, TI, sys_shmdt, "shmdt" }, /* 306 */
|
||||
+ { 4, TI, sys_shmget, "shmget" }, /* 307 */
|
||||
+ { 4, TI, sys_shmctl, "shmctl" }, /* 308 */
|
||||
+ { 5, 0, printargs, "add_key" }, /* 309 */
|
||||
+ { 4, 0, printargs, "request_key" }, /* 310 */
|
||||
+ { 5, 0, printargs, "keyctl" }, /* 311 */
|
||||
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 312 */
|
||||
+ { 5, 0, printargs, "vserver" }, /* 313 */
|
||||
+ { 3, 0, printargs, "ioprio_set" }, /* 314 */
|
||||
+ { 2, 0, printargs, "ioprio_get" }, /* 315 */
|
||||
+ { 0, TD, printargs, "inotify_init" }, /* 316 */
|
||||
+ { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 317 */
|
||||
+ { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 318 */
|
||||
+ { 6, 0, sys_mbind, "mbind" }, /* 319 */
|
||||
+ { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 320 */
|
||||
+ { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 321 */
|
||||
+ { 4, TD|TF, sys_openat, "openat" }, /* 322 */
|
||||
+ { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 323 */
|
||||
+ { 4, TD|TF, sys_mknodat, "mknodat" }, /* 324 */
|
||||
+ { 5, TD|TF, sys_fchownat, "fchownat" }, /* 325 */
|
||||
+ { 3, TD|TF, sys_futimesat, "futimesat" }, /* 326 */
|
||||
+ { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 327 */
|
||||
+ { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 328 */
|
||||
+ { 4, TD|TF, sys_renameat, "renameat" }, /* 329 */
|
||||
+ { 5, TD|TF, sys_linkat, "linkat" }, /* 330 */
|
||||
+ { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 331 */
|
||||
+ { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 332 */
|
||||
+ { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 333 */
|
||||
+ { 3, TD|TF, sys_faccessat, "faccessat" }, /* 334 */
|
||||
{ 5, 0, printargs, "SYS_335" }, /* 335 */
|
||||
{ 5, 0, printargs, "SYS_336" }, /* 336 */
|
||||
- { 5, 0, printargs, "SYS_337" }, /* 337 */
|
||||
- { 5, 0, printargs, "SYS_338" }, /* 338 */
|
||||
- { 5, 0, printargs, "SYS_339" }, /* 339 */
|
||||
- { 5, 0, printargs, "SYS_340" }, /* 340 */
|
||||
+ { 1, TP, sys_unshare, "unshare" }, /* 337 */
|
||||
+ { 2, 0, printargs, "set_robust_list" }, /* 338 */
|
||||
+ { 3, 0, printargs, "get_robust_list" }, /* 339 */
|
||||
+ { 6, TD, printargs, "splice" }, /* 340 */
|
||||
{ 5, 0, printargs, "SYS_341" }, /* 341 */
|
||||
- { 5, 0, printargs, "SYS_342" }, /* 342 */
|
||||
- { 5, 0, printargs, "SYS_343" }, /* 343 */
|
||||
+ { 4, TD, printargs, "tee" }, /* 342 */
|
||||
+ { 4, TD, printargs, "vmsplice" }, /* 343 */
|
||||
{ 6, 0, sys_move_pages, "move_pages" }, /* 344 */
|
||||
{ 3, 0, sys_getcpu, "getcpu" }, /* 345 */
|
||||
{ 5, 0, printargs, "SYS_346" }, /* 346 */
|
||||
- { 5, 0, printargs, "SYS_347" }, /* 347 */
|
||||
- { 5, 0, printargs, "SYS_348" }, /* 348 */
|
||||
+ { 5, 0, printargs, "kexec_load" }, /* 347 */
|
||||
+ { 4, TD|TF, sys_utimensat, "utimensat" }, /* 348 */
|
||||
{ 3, TD|TS, sys_signalfd, "signalfd" }, /* 349 */
|
||||
{ 4, TD, sys_timerfd, "timerfd" }, /* 350 */
|
||||
{ 1, TD, sys_eventfd, "eventfd" }, /* 351 */
|
||||
- { 5, 0, printargs, "SYS_352" }, /* 352 */
|
||||
- { 5, 0, printargs, "SYS_353" }, /* 353 */
|
||||
- { 5, 0, printargs, "SYS_354" }, /* 354 */
|
||||
+ { 6, TF, sys_fallocate, "fallocate" }, /* 352 */
|
||||
+ { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 353 */
|
||||
+ { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 354 */
|
||||
{ 5, 0, printargs, "SYS_355" }, /* 355 */
|
||||
{ 5, 0, printargs, "SYS_356" }, /* 356 */
|
||||
{ 5, 0, printargs, "SYS_357" }, /* 357 */
|
||||
--
|
||||
1.6.1.3
|
53
pkgs/misc/uboot/default.nix
Normal file
53
pkgs/misc/uboot/default.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{stdenv, fetchurl, unzip}:
|
||||
|
||||
assert stdenv.system == "armv5tel-linux";
|
||||
|
||||
# All this file is made for the Marvell Sheevaplug
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "uboot-sheevaplug-3.4.19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.4.tar.bz2";
|
||||
sha256 = "19vp4rlikz7h72pqsjhgz7nmgjy4c6vabvxkw67wni70vy5ddy8s";
|
||||
};
|
||||
|
||||
srcAddon = fetchurl {
|
||||
url = "http://www.plugcomputer.org/data/uboot/u-boot-3.4.19.zip";
|
||||
sha256 = "1wag1l6agr8dbnnfaw6bgcrwynwwgry4ihb3gp438699wmkmy91k";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
mv u-boot-1.1.4 u-boot-3.4.19
|
||||
unzip -o $srcAddon
|
||||
sourceRoot=u-boot-3.4.19
|
||||
'';
|
||||
|
||||
patches = [ ./gas220.patch ];
|
||||
|
||||
# Remove the cross compiler prefix, and add reiserfs support
|
||||
configurePhase = ''
|
||||
make mrproper
|
||||
make rd88f6281Sheevaplug_config NBOOT=1 LE=1
|
||||
sed -i /CROSS_COMPILE/d include/config.mk
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
unset src
|
||||
make clean all
|
||||
'';
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
dontStrip = true;
|
||||
NIX_STRIP_DEBUG = false;
|
||||
|
||||
installPhase = ''
|
||||
ensureDir $out
|
||||
cp u-boot-rd88f6281Sheevaplug_400db_nand.bin $out
|
||||
cp u-boot u-boot.map $out
|
||||
|
||||
ensureDir $out/bin
|
||||
cp tools/{envcrc,mkimage} $out/bin
|
||||
'';
|
||||
}
|
18
pkgs/misc/uboot/gas220.patch
Normal file
18
pkgs/misc/uboot/gas220.patch
Normal file
|
@ -0,0 +1,18 @@
|
|||
Patch to allow assembling with binutils 2.20. It worked without this patch in 2.19.1
|
||||
diff --git a/board/mv_feroceon/USP/jump.S b/board/mv_feroceon/USP/jump.S
|
||||
index 4b6b9ee..58037fc 100644
|
||||
--- a/board/mv_feroceon/USP/jump.S
|
||||
+++ b/board/mv_feroceon/USP/jump.S
|
||||
@@ -29,9 +29,11 @@ disclaimer.
|
||||
#include "sys/mvCpuIfRegs.h"
|
||||
|
||||
|
||||
-jumpStart:
|
||||
|
||||
.section ".reset_vector_sect",#alloc, #execinstr
|
||||
+
|
||||
+jumpStart:
|
||||
+
|
||||
#if defined(MV_88F6082) || defined(MV_88F6183) || defined(DB_88F5181_OLD) || defined(DB_FPGA) || \
|
||||
defined(MV88F6281) || defined(MV88F6192) || defined(MV88F6180) || defined(MV_88F6183L) || \
|
||||
defined(MV88F6190)
|
|
@ -13,9 +13,9 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [
|
||||
pkgconfig python pciutils expat libusb dbus.libs dbus_glib glib
|
||||
libuuid perl perlXMLParser gettext zlib gperf
|
||||
consolekit policykit libsmbios
|
||||
consolekit policykit
|
||||
# !!! libsmbios is broken; it doesn't install headers.
|
||||
];
|
||||
] ++ stdenv.lib.optional (stdenv.system != "armv5tel-linux") [ libsmbios ];
|
||||
|
||||
# !!! Hm, maybe the pci/usb.ids location should be in /etc, so that
|
||||
# we don't have to rebuild HAL when we update the PCI/USB IDs.
|
||||
|
@ -28,7 +28,8 @@ stdenv.mkDerivation rec {
|
|||
--enable-umount-helper
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [libusb libsmbios];
|
||||
propagatedBuildInputs = [ libusb ]
|
||||
++ stdenv.lib.optional (stdenv.system != "armv5tel-linux") [ libsmbios ];
|
||||
|
||||
preConfigure = ''
|
||||
for i in hald/linux/probing/probe-smbios.c hald/linux/osspec.c \
|
||||
|
|
|
@ -16,6 +16,7 @@ stdenv.mkDerivation {
|
|||
if stdenv.system == "i686-linux" then "i386" else
|
||||
if stdenv.system == "x86_64-linux" then "x86_64" else
|
||||
if stdenv.system == "powerpc-linux" then "powerpc" else
|
||||
if stdenv.system == "armv5tel-linux" then "arm" else
|
||||
abort "don't know what the kernel include directory is called for this platform";
|
||||
|
||||
buildInputs = [perl];
|
||||
|
|
|
@ -54,6 +54,11 @@ configurePhase() {
|
|||
cat .config
|
||||
}
|
||||
|
||||
postBuild() {
|
||||
if [ -n "$makeUImage" ]; then
|
||||
make uImage
|
||||
fi
|
||||
}
|
||||
|
||||
installPhase() {
|
||||
|
||||
|
@ -65,15 +70,24 @@ installPhase() {
|
|||
archDir=x86
|
||||
fi
|
||||
|
||||
|
||||
# Copy the bzImage and System.map.
|
||||
cp System.map $out
|
||||
if test "$arch" = um; then
|
||||
ensureDir $out/bin
|
||||
cp linux $out/bin
|
||||
else
|
||||
cp arch/$archDir/boot/bzImage $out/vmlinuz
|
||||
if [ -n "$makeUImage" ]; then
|
||||
image=arch/$archDir/boot/uImage
|
||||
cp arch/$archDir/boot/uImage $out
|
||||
else
|
||||
cp arch/$archDir/boot/bzImage $out/vmlinuz
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
cp vmlinux $out
|
||||
|
||||
# Install the modules in $out/lib/modules with matching paths
|
||||
# in modules.dep (i.e., refererring to $out/lib/modules, not
|
||||
# /lib/modules). The depmod_opts= is to prevent the kernel
|
||||
|
|
1786
pkgs/os-specific/linux/kernel/config-2.6.31-armv5tel
Normal file
1786
pkgs/os-specific/linux/kernel/config-2.6.31-armv5tel
Normal file
File diff suppressed because it is too large
Load diff
|
@ -37,10 +37,12 @@
|
|||
|
||||
, preConfigure ? ""
|
||||
, extraMeta ? {}
|
||||
, platform ? { uboot = null; }
|
||||
, ...
|
||||
}:
|
||||
|
||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
|
||||
|| stdenv.system == "armv5tel-linux";
|
||||
|
||||
let
|
||||
|
||||
|
@ -71,13 +73,15 @@ stdenv.mkDerivation {
|
|||
map (p: if p ? extraConfig then p.extraConfig else "") kernelPatches;
|
||||
in lib.concatStrings (addNewlines (configFromPatches ++ extraConfig));
|
||||
|
||||
buildInputs = [perl mktemp];
|
||||
buildInputs = [perl mktemp]
|
||||
++ lib.optional (platform.uboot != null) [platform.uboot];
|
||||
|
||||
arch =
|
||||
if xen then "xen" else
|
||||
if userModeLinux then "um" else
|
||||
if stdenv.system == "i686-linux" then "i386" else
|
||||
if stdenv.system == "x86_64-linux" then "x86_64" else
|
||||
if stdenv.system == "armv5tel-linux" then "arm" else
|
||||
abort "Platform ${stdenv.system} is not supported.";
|
||||
|
||||
makeFlags = if userModeLinux then "ARCH=um SHELL=bash" else "";
|
||||
|
@ -87,6 +91,8 @@ stdenv.mkDerivation {
|
|||
allowLocalVersion = false; # don't allow patches to set a suffix
|
||||
inherit localVersion; # but do allow the user to set one.
|
||||
|
||||
makeUImage = if (platform.uboot != null) then true else false;
|
||||
|
||||
meta = {
|
||||
description =
|
||||
(if userModeLinux then
|
||||
|
|
|
@ -19,6 +19,7 @@ import ./generic.nix (
|
|||
config =
|
||||
if stdenv.system == "i686-linux" then ./config-2.6.28-i686-smp else
|
||||
if stdenv.system == "x86_64-linux" then ./config-2.6.28-x86_64-smp else
|
||||
if stdenv.system == "armv5tel-linux" then ./config-2.6.28-arm else
|
||||
abort "No kernel configuration for your platform!";
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ import ./generic.nix (
|
|||
config =
|
||||
if stdenv.system == "i686-linux" then ./config-2.6.29-i686-smp else
|
||||
if stdenv.system == "x86_64-linux" then ./config-2.6.29-x86_64-smp else
|
||||
if stdenv.system == "armv5tel-linux" then ./config-2.6.29-arm else
|
||||
abort "No kernel configuration for your platform!";
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ import ./generic.nix (
|
|||
iwlwifi = true;
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
preConfigure = if (stdenv.system != "armv5tel-linux") then ''
|
||||
killOption () {
|
||||
sed -re 's/^('"$1"')=[ym]/# \1 is not set/' -i .config
|
||||
}
|
||||
|
@ -55,9 +55,10 @@ import ./generic.nix (
|
|||
setOptionYes CONFIG_PREEMPT_VOLUNTARY
|
||||
|
||||
cp .config ${config}
|
||||
'';
|
||||
'' else "";
|
||||
|
||||
config = "./kernel-config";
|
||||
config = if (stdenv.system == "armv5tel-linux") then
|
||||
(./config-2.6.31-armv5tel) else "./kernel-config";
|
||||
}
|
||||
|
||||
// args
|
||||
|
|
|
@ -15,6 +15,8 @@ stdenv.mkDerivation {
|
|||
makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
|
||||
|
||||
preBuild = ''
|
||||
sed -i /CONFIG_AEABI/d defconfig
|
||||
echo "CONFIG_AEABI=y" >> defconfig
|
||||
makeFlags=$(eval "echo $makeFlags")
|
||||
|
||||
mkdir linux
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{stdenv, fetchurl, pam, libxcrypt}:
|
||||
{stdenv, fetchurl, pam, libxcrypt ? null}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "pam_unix2-2.6";
|
||||
|
@ -8,5 +8,5 @@ stdenv.mkDerivation {
|
|||
sha256 = "067xnyd3q8ik73glxwyx1lydk4bgl78lzq44mnqqp4jrpnpd04ml";
|
||||
};
|
||||
|
||||
buildInputs = [pam libxcrypt];
|
||||
buildInputs = [pam ];
|
||||
}
|
||||
|
|
38
pkgs/os-specific/linux/uclibc/default.nix
Normal file
38
pkgs/os-specific/linux/uclibc/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{stdenv, fetchurl, kernelHeaders}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "uclibc-0.9.30.1";
|
||||
src = fetchurl {
|
||||
url = http://www.uclibc.org/downloads/uClibc-0.9.30.1.tar.bz2;
|
||||
sha256 = "132cf27hkgi0q4qlwbiyj4ffj76sja0jcxm0aqzzgks65jh6k5rd";
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
make defconfig
|
||||
sed -e s@/usr/include@${kernelHeaders}@ \
|
||||
-e 's@^RUNTIME_PREFIX.*@RUNTIME_PREFIX="/"@' \
|
||||
-e 's@^DEVEL_PREFIX.*@DEVEL_PREFIX="/"@' \
|
||||
${if stdenv.system=="armv5tel-linux" then
|
||||
''-e 's/.*CONFIG_ARM_OABI.*//' \
|
||||
-e 's/.*CONFIG_ARM_EABI.*/CONFIG_ARM_EABI=y/' \
|
||||
-e 's/.*ARCH_BIG_ENDIAN.*/#ARCH_BIG_ENDIAN=y/' \
|
||||
-e 's/.*ARCH_WANTS_BIG_ENDIAN.*/#ARCH_WANTS_BIG_ENDIAN=y/' \
|
||||
-e 's/.*ARCH_WANTS_LITTLE_ENDIAN.*/ARCH_WANTS_LITTLE_ENDIAN=y/' '' else ""} \
|
||||
-i .config
|
||||
make oldconfig
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
make PREFIX=$out install
|
||||
(cd $out/include && ln -s ${kernelHeaders}/include/* .) || exit 1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.uclibc.org/;
|
||||
description = "A small implementation of the C library";
|
||||
license = "LGPLv2";
|
||||
};
|
||||
}
|
|
@ -3,7 +3,10 @@ let
|
|||
s = import ./src-for-2.6.31-zen5.nix;
|
||||
in
|
||||
(import ../kernel/generic.nix) (rec {
|
||||
inherit (a) stdenv fetchurl perl mktemp module_init_tools;
|
||||
inherit (a) stdenv fetchurl perl mktemp module_init_tools platform;
|
||||
|
||||
uboot = if (platform.name == "sheevaplug") then
|
||||
platform.uboot else null;
|
||||
|
||||
src = a.builderDefs.fetchGitFromSrcInfo s;
|
||||
version = "2.6.31-zen5";
|
||||
|
@ -11,7 +14,7 @@ let
|
|||
features = {
|
||||
iwlwifi = true;
|
||||
zen = true;
|
||||
fbConDecor = true;
|
||||
fbConDecor = if (platform.name == "pc") then true else false;
|
||||
aufs = true;
|
||||
};
|
||||
|
||||
|
@ -23,7 +26,7 @@ let
|
|||
linux;
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
configFunctions = ''
|
||||
killOption () {
|
||||
sed -re 's/^('"$1"')=.*/# \1 is not set/' -i .config
|
||||
}
|
||||
|
@ -38,7 +41,10 @@ let
|
|||
setOptionYes () {
|
||||
setOptionVal "$1" y
|
||||
}
|
||||
'';
|
||||
|
||||
|
||||
configurePC = ''
|
||||
make allmodconfig
|
||||
|
||||
killOption CONFIG_CMDLINE_OVERRIDE
|
||||
|
@ -99,4 +105,89 @@ let
|
|||
''
|
||||
cp .config ${config}
|
||||
'';
|
||||
|
||||
configureBaseSheevaplug = ''
|
||||
ARCH=arm make kirkwood_defconfig
|
||||
'';
|
||||
|
||||
configureBaseVersatileARM = ''
|
||||
ARCH=arm make versatile_defconfig
|
||||
'';
|
||||
|
||||
configureARM = ''
|
||||
killOption CONFIG_CMDLINE_OVERRIDE
|
||||
|
||||
killOption 'CONFIG_.*_DEBUG.*'
|
||||
killOption 'CONFIG_DEBUG.*'
|
||||
killOption CONFIG_AUDIT_ARCH
|
||||
killOption CONFIG_PERF_COUNTERS
|
||||
killOption 'CONFIG_GCOV.*'
|
||||
killOption 'CONFIG_KGDB.*'
|
||||
killOption 'CONFIG_.*_TEST'
|
||||
killOption CONFIG_TASKSTATS
|
||||
|
||||
killOption CONFIG_SLQB
|
||||
killOption CONFIG_SLQB_ALLOCATOR
|
||||
setOptionYes CONFIG_SLUB_ALLOCATOR
|
||||
setOptionYes CONFIG_SLUB
|
||||
killOption CONFIG_ACPI_CUSTOM_DSDT_INITRD
|
||||
killOption CONFIG_DEVTMPFS
|
||||
killOption CONFIG_DEVTMPFS_MOUNT
|
||||
|
||||
killOption CONFIG_IMA
|
||||
'' +
|
||||
''
|
||||
killOption CONFIG_USB_OTG_BLACKLIST_HUB
|
||||
''+
|
||||
''
|
||||
killOption CONFIG_KERNEL_BZIP2
|
||||
killOption CONFIG_KERNEL_LZMA
|
||||
setOptionYes CONFIG_KERNEL_GZIP
|
||||
''+
|
||||
''
|
||||
killOption CONFIG_FB_TILEBLITTING
|
||||
killOption CONFIG_FB_S3
|
||||
killOption CONFIG_FB_VT8623
|
||||
killOption CONFIG_FB_ARK
|
||||
killOption CONFIG_FRAMEBUFFER_CONSOLE
|
||||
killOption CONFIG_FB
|
||||
make oldconfig
|
||||
killOption CONFIG_FB_CON_DECOR
|
||||
killOption CONFIG_FB_VESA
|
||||
''+
|
||||
''
|
||||
killOption CONFIG_PREEMPT_NONE
|
||||
setOptionYes CONFIG_PREEMPT_VOLUNTARY
|
||||
''+
|
||||
''
|
||||
killOption CONFIG_PRAMFS
|
||||
''+
|
||||
''
|
||||
setOptionYes CONFIG_MTD_UBI
|
||||
setOptionYes CONFIG_REISERFS_FS
|
||||
setOptionYes CONFIG_FUSE_FS
|
||||
setOptionYes CONFIG_ISO9660_FS
|
||||
''+
|
||||
(if a.lib.attrByPath ["ckSched"] false a then ''
|
||||
killOption CONFIG_CPU_CFS
|
||||
setOptionYes CONFIG_CPU_BFS
|
||||
killOption CONFIG_NO_HZ
|
||||
killOption CONFIG_HZ_1000
|
||||
setOptionYes CONFIG_HZ_250
|
||||
setOptionVal CONFIG_HZ 250
|
||||
''else "") +
|
||||
''
|
||||
cp .config ${config}
|
||||
'';
|
||||
|
||||
|
||||
preConfigure = configFunctions +
|
||||
(if (platform.name == "pc") then
|
||||
(configureBaseSheevaplug + configureARM)
|
||||
else if (platform.name == "sheevaplug") then
|
||||
(configureBaseSheevaplug + configureARM)
|
||||
else if (platform.name == "versatileARM") then
|
||||
(configureBaseVersatileARM + configureARM)
|
||||
else throw "platform not supported"
|
||||
);
|
||||
})
|
||||
|
|
37
pkgs/shells/bash/bash-patches.nix
Normal file
37
pkgs/shells/bash/bash-patches.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Automatically generated by `update-patch-set.sh'; do not edit.
|
||||
|
||||
patch: [
|
||||
(patch "001" "06q3y3i2kp09bnjd99lxa95psdmj2haril7pxhdbz9sx9qh19dg3")
|
||||
(patch "002" "1x2w3mmz1qga30zf95wmnpjsdp8cnd2ljl29mfq9r6q1cvjifla9")
|
||||
(patch "003" "1n3vg6p4nc7kd896s0fp48y9f6ddf3bkpdqzgmdpgqxi243c8073")
|
||||
(patch "004" "1bnja962g9isrqhrw8dzxsx7ssvc2ayk1a9vmg2dx6gai8gys0sb")
|
||||
(patch "005" "0l4l62riap2kqy20789x7f6bfx361yvixds0gnh10rli4v05h1j2")
|
||||
(patch "006" "1r429n2b5cs2gi5zjv1hlr8k7jplnjg3y563369z799x1x9651y7")
|
||||
(patch "007" "0vb11vy8r5ayr88hrlli8xj2qcird1qg8l99nknrwnni4jg5b3am")
|
||||
(patch "008" "1z6q0lq1yxwpf6nf1z39jbyycv6cfv6gwpaqmgg7pnw31z029nw7")
|
||||
(patch "009" "0avyvz8rkj66x715zf1b3w2pgbwwzaj977v9pcrscjksc50c4iq0")
|
||||
(patch "010" "05j8xq2s1wnii1za1s6nglzga9xp7q1dmcs1bqqrlggz8mmnyhgj")
|
||||
(patch "011" "1m2lhfhy6bl3j88qi9kcn6n1qb439n8pmhl4cqsmi2g8xwli9j7z")
|
||||
(patch "012" "1ww327ga4s7607jgr0xd6nh8bg4xgf2vk63p2yy9b1iaq7lxdi5j")
|
||||
(patch "013" "0fjc3qj4q6q2zfq1qmiarp6s4hhbh80q47xwws0mvgpks7wwl33n")
|
||||
(patch "014" "16n3l7627n8b1p9s9ss9fcj7nbn1s6yndwmlh3v751knj73c9v8k")
|
||||
(patch "015" "0548fm4vd3sv3y4g3csysm1mm7jk5hvyfwglw1c0pj2lvyzf583v")
|
||||
(patch "016" "06fmf6jmgzl0x1vd7pkyi90sa1wjywkd42gi1phqmrwgj9p96flg")
|
||||
(patch "017" "08gh63spac39z90n1d8gpx571x7n4bwzp2yqm3ik9c1rcgz2mvib")
|
||||
(patch "018" "0cg6q3fn0j8kzd9w7plnwrbyxv8hzwx9vjp3ij9vx1p3n26vpcqx")
|
||||
(patch "019" "0xbl1f5l04pmrs5dsq2nbpcs58zgz0f48nj4hqic143h0y7r8jah")
|
||||
(patch "020" "11371hsarqc5czij1lmkj79c0h1b7hninkzrzmqpr1hnwgmrm6hw")
|
||||
(patch "021" "0k8ii0yb4zhxmc90n3y2wpkczrxh7j1avjflnsi42j8hidpjsiq2")
|
||||
(patch "022" "04lh6n91bif6wbcmizps40yc9qwfw720xq3vmmrkz1m13b3isnh4")
|
||||
(patch "023" "11nwbnp4gmsjw46gq9gahzlbdagl3r1vdvcxvxfwlqppflim42sq")
|
||||
(patch "024" "1aqp6z2mlp1m921ckgiiqd42fnvjrhil4bkkw58vjcgygv2bm7m5")
|
||||
(patch "025" "023aixd4v3adsvnni9jf2qcfgpsza544k76k2ny78d036vb00ygp")
|
||||
(patch "026" "1jzn8185iw49126mngbz8007dd6ca9m04n5yhhc5c9b6ki0g9gd9")
|
||||
(patch "027" "1wkp9ci0ccvgmnjyg5z3qkcfh2z7p3rgdm8cc5k8mk5sn5mw4pgn")
|
||||
(patch "028" "06id09sb9rvlw7phibs6aw7ncjddikia0mjr9jdis75byfx2q8jv")
|
||||
(patch "029" "0rpsam2m9mxnxcgcdr461sijprqi9wv6i9gg5c7c46gwj4gs5x8m")
|
||||
(patch "030" "1wwajl7fb5vy25m08fp4jshgqdh02m66zj7yq8i0j65675ldx1bz")
|
||||
(patch "031" "037viyi9n9hnc5yyfgrr1ssvqr2vkasn08x3qvyxak7f0s4k2gv0")
|
||||
(patch "032" "1pma7w85vq831izaqc4p9831hfsfl31s4n155azkrxywpqv4fsza")
|
||||
(patch "033" "1x845nfqg8wr1x4wls9jdrzdq1lbig02w07wpmfr4h4r6bhgd5n4")
|
||||
]
|
|
@ -3,7 +3,7 @@
|
|||
assert interactive -> readline != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "bash-4.0-p17";
|
||||
name = "bash-4.0-p28";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/bash/bash-4.0.tar.gz";
|
||||
|
@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
|
|||
-DSSH_SOURCE_BASHRC
|
||||
'';
|
||||
|
||||
postInstall = "ln -s bash $out/bin/sh";
|
||||
|
||||
patchFlags = "-p0";
|
||||
|
||||
patches =
|
||||
|
@ -30,25 +28,8 @@ stdenv.mkDerivation rec {
|
|||
url = "mirror://gnu/bash/bash-4.0-patches/bash40-${nr}";
|
||||
inherit sha256;
|
||||
};
|
||||
in [
|
||||
(patch "001" "06q3y3i2kp09bnjd99lxa95psdmj2haril7pxhdbz9sx9qh19dg3")
|
||||
(patch "002" "1x2w3mmz1qga30zf95wmnpjsdp8cnd2ljl29mfq9r6q1cvjifla9")
|
||||
(patch "003" "1n3vg6p4nc7kd896s0fp48y9f6ddf3bkpdqzgmdpgqxi243c8073")
|
||||
(patch "004" "1bnja962g9isrqhrw8dzxsx7ssvc2ayk1a9vmg2dx6gai8gys0sb")
|
||||
(patch "005" "0l4l62riap2kqy20789x7f6bfx361yvixds0gnh10rli4v05h1j2")
|
||||
(patch "006" "1r429n2b5cs2gi5zjv1hlr8k7jplnjg3y563369z799x1x9651y7")
|
||||
(patch "007" "0vb11vy8r5ayr88hrlli8xj2qcird1qg8l99nknrwnni4jg5b3am")
|
||||
(patch "008" "1z6q0lq1yxwpf6nf1z39jbyycv6cfv6gwpaqmgg7pnw31z029nw7")
|
||||
(patch "009" "0avyvz8rkj66x715zf1b3w2pgbwwzaj977v9pcrscjksc50c4iq0")
|
||||
(patch "010" "05j8xq2s1wnii1za1s6nglzga9xp7q1dmcs1bqqrlggz8mmnyhgj")
|
||||
(patch "011" "1m2lhfhy6bl3j88qi9kcn6n1qb439n8pmhl4cqsmi2g8xwli9j7z")
|
||||
(patch "012" "1ww327ga4s7607jgr0xd6nh8bg4xgf2vk63p2yy9b1iaq7lxdi5j")
|
||||
(patch "013" "0fjc3qj4q6q2zfq1qmiarp6s4hhbh80q47xwws0mvgpks7wwl33n")
|
||||
(patch "014" "16n3l7627n8b1p9s9ss9fcj7nbn1s6yndwmlh3v751knj73c9v8k")
|
||||
(patch "015" "0548fm4vd3sv3y4g3csysm1mm7jk5hvyfwglw1c0pj2lvyzf583v")
|
||||
(patch "016" "06fmf6jmgzl0x1vd7pkyi90sa1wjywkd42gi1phqmrwgj9p96flg")
|
||||
(patch "017" "08gh63spac39z90n1d8gpx571x7n4bwzp2yqm3ik9c1rcgz2mvib")
|
||||
];
|
||||
in
|
||||
import ./bash-patches.nix patch;
|
||||
|
||||
# Note: Bison is needed because the patches above modify parse.y.
|
||||
buildInputs = [bison]
|
||||
|
@ -57,6 +38,18 @@ stdenv.mkDerivation rec {
|
|||
|
||||
configureFlags = "--with-installed-readline";
|
||||
|
||||
postInstall = ''
|
||||
# Add an `sh' -> `bash' symlink.
|
||||
ln -s bash "$out/bin/sh"
|
||||
|
||||
# Install the completion examples.
|
||||
ensureDir "$out/etc"
|
||||
cp -v "examples/complete/bash_completion" "$out/etc"
|
||||
|
||||
ensureDir "$out/etc/bash_completion.d"
|
||||
cp -v "examples/complete/complete.gnu-longopt" "$out/etc/bash_completion.d"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/bash/;
|
||||
description =
|
||||
|
@ -75,5 +68,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
||||
|
|
47
pkgs/shells/bash/update-patch-set.sh
Normal file
47
pkgs/shells/bash/update-patch-set.sh
Normal file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Update patch set for GNU Bash or Readline.
|
||||
|
||||
if [ $# -ne 2 ]
|
||||
then
|
||||
echo "Usage: $(basename $0) PROJECT VERSION"
|
||||
echo ""
|
||||
echo "Update the patch set for PROJECT (one of \`bash' or \`readline') for"
|
||||
echo "the given version (e.g., \`4.0'). Produce \`PROJECT-patches.nix'."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROJECT="$1"
|
||||
VERSION="$2"
|
||||
VERSION_CONDENSED="$(echo $VERSION | sed -es/\\.//g)"
|
||||
|
||||
GPG="$(if $(type -P gpg2 > /dev/null); then echo gpg2; else echo gpg; fi)"
|
||||
PATCH_LIST="$PROJECT-patches.nix"
|
||||
|
||||
set -e
|
||||
|
||||
start=1
|
||||
end=100 # must be > 99 for correct padding
|
||||
|
||||
rm -vf "$PATCH_LIST"
|
||||
|
||||
( echo "# Automatically generated by \`$(basename $0)'; do not edit." ; \
|
||||
echo "" ; \
|
||||
echo "patch: [" ) \
|
||||
>> "$PATCH_LIST"
|
||||
|
||||
for i in `seq -w $start $end`
|
||||
do
|
||||
wget ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i || break
|
||||
wget ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i.sig
|
||||
"$GPG" --verify $PROJECT$VERSION_CONDENSED-$i.sig
|
||||
echo "(patch \"$i\" \"$(nix-hash --flat --type sha256 --base32 $PROJECT$VERSION_CONDENSED-$i)\")" \
|
||||
>> "$PATCH_LIST"
|
||||
|
||||
rm -f $PROJECT$VERSION_CONDENSED-$i{,.sig}
|
||||
done
|
||||
|
||||
echo "]" >> "$PATCH_LIST"
|
||||
|
||||
echo "Got $(expr $i - 1) patches."
|
||||
echo "Patch list has been written to \`$PATCH_LIST'."
|
|
@ -54,6 +54,7 @@ rec {
|
|||
stdenv =
|
||||
if stdenvType == "i686-linux" then stdenvLinux else
|
||||
if stdenvType == "x86_64-linux" then stdenvLinux else
|
||||
if stdenvType == "armv5tel-linux" then stdenvLinux else
|
||||
if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
|
||||
if stdenvType == "i686-mingw" then stdenvMinGW else
|
||||
if stdenvType == "i686-darwin" then stdenvNix else
|
||||
|
|
|
@ -71,7 +71,8 @@ let
|
|||
isDarwin = result.system == "i686-darwin" || result.system == "powerpc-darwin";
|
||||
isLinux = result.system == "i686-linux"
|
||||
|| result.system == "x86_64-linux"
|
||||
|| result.system == "powerpc-linux";
|
||||
|| result.system == "powerpc-linux"
|
||||
|| result.system == "armv5tel-linux";
|
||||
isi686 = result.system == "i686-linux"
|
||||
|| result.system == "i686-darwin"
|
||||
|| result.system == "i686-freebsd"
|
||||
|
|
13
pkgs/stdenv/linux/bootstrap/armv5tel/default.nix
Normal file
13
pkgs/stdenv/linux/bootstrap/armv5tel/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
sh = ./sh;
|
||||
bzip2 = ./bzip2;
|
||||
mkdir = ./mkdir;
|
||||
cpio = ./cpio;
|
||||
ln = ./ln;
|
||||
curl = ./curl.bz2;
|
||||
|
||||
bootstrapTools = {
|
||||
url = "http://vicerveza.homeunix.net/~viric/tmp/bootstrap-tools-armv5tel-linux.cpio.bz2";
|
||||
sha256 = "0b7mrcl7naj1xpqx1qnlmd825dxzikzhxir3mw4pr3dy28n0b2ka";
|
||||
};
|
||||
}
|
|
@ -13,6 +13,7 @@ rec {
|
|||
if system == "i686-linux" then import ./bootstrap/i686
|
||||
else if system == "x86_64-linux" then import ./bootstrap/x86_64
|
||||
else if system == "powerpc-linux" then import ./bootstrap/powerpc
|
||||
else if system == "armv5tel-linux" then import ./bootstrap/armv5tel
|
||||
else abort "unsupported platform for the pure Linux stdenv";
|
||||
|
||||
|
||||
|
@ -50,7 +51,10 @@ rec {
|
|||
|
||||
builder = bootstrapFiles.sh;
|
||||
|
||||
args = [ ./scripts/unpack-bootstrap-tools.sh ];
|
||||
args = if (system == "armv5tel-linux") then
|
||||
([ ./scripts/unpack-bootstrap-tools-arm.sh ])
|
||||
else
|
||||
([ ./scripts/unpack-bootstrap-tools.sh ]);
|
||||
|
||||
inherit (bootstrapFiles) bzip2 mkdir curl cpio;
|
||||
|
||||
|
@ -120,12 +124,12 @@ rec {
|
|||
|
||||
# A helper function to call gcc-wrapper.
|
||||
wrapGCC =
|
||||
{gcc ? bootstrapTools, libc, binutils, shell ? "", name ? "bootstrap-gcc"}:
|
||||
{gcc ? bootstrapTools, libc, binutils, coreutils, shell ? "", name ? "bootstrap-gcc-wrapper"}:
|
||||
|
||||
import ../../build-support/gcc-wrapper {
|
||||
nativeTools = false;
|
||||
nativeLibc = false;
|
||||
inherit gcc binutils libc shell name;
|
||||
inherit gcc binutils coreutils libc shell name;
|
||||
stdenv = stdenvLinuxBoot0;
|
||||
};
|
||||
|
||||
|
@ -134,7 +138,8 @@ rec {
|
|||
# of bootstrap tools only, and a minimal Glibc to keep the GCC
|
||||
# configure script happy.
|
||||
stdenvLinuxBoot1 = stdenvBootFun {
|
||||
gcc = wrapGCC {libc = bootstrapGlibc; binutils = bootstrapTools;};
|
||||
gcc = wrapGCC {libc = bootstrapGlibc; binutils = bootstrapTools;
|
||||
coreutils = bootstrapTools; };
|
||||
inherit fetchurl;
|
||||
};
|
||||
|
||||
|
@ -156,7 +161,8 @@ rec {
|
|||
# this one uses the Glibc built in step 3. It still uses
|
||||
# the rest of the bootstrap tools, including GCC.
|
||||
stdenvLinuxBoot2 = removeAttrs (stdenvBootFun {
|
||||
gcc = wrapGCC {binutils = bootstrapTools; libc = stdenvLinuxGlibc;};
|
||||
gcc = wrapGCC {binutils = bootstrapTools; coreutils = bootstrapTools;
|
||||
libc = stdenvLinuxGlibc;};
|
||||
extraAttrs = {glibc = stdenvLinuxGlibc;};
|
||||
inherit fetchurl;
|
||||
}) ["gcc" "binutils"];
|
||||
|
@ -176,6 +182,7 @@ rec {
|
|||
stdenvLinuxBoot3 = stdenvBootFun {
|
||||
gcc = wrapGCC rec {
|
||||
inherit (stdenvLinuxBoot2Pkgs) binutils;
|
||||
coreutils = bootstrapTools;
|
||||
libc = stdenvLinuxGlibc;
|
||||
gcc = stdenvLinuxBoot2Pkgs.gcc.gcc;
|
||||
name = "";
|
||||
|
@ -210,6 +217,7 @@ rec {
|
|||
|
||||
gcc = wrapGCC rec {
|
||||
inherit (stdenvLinuxBoot2Pkgs) binutils;
|
||||
inherit (stdenvLinuxBoot3Pkgs) coreutils;
|
||||
libc = stdenvLinuxGlibc;
|
||||
gcc = stdenvLinuxBoot2Pkgs.gcc.gcc;
|
||||
shell = stdenvLinuxBoot3Pkgs.bash + "/bin/bash";
|
||||
|
|
|
@ -10,20 +10,26 @@ rec {
|
|||
aclSupport = false;
|
||||
});
|
||||
|
||||
gccLinkStatic = wrapGCCWith (import ../../build-support/gcc-wrapper) uclibc
|
||||
stdenv.gcc.gcc;
|
||||
stdenvLinkStatic = overrideGCC stdenv gccLinkStatic;
|
||||
|
||||
curlDiet = import ../../tools/networking/curl {
|
||||
curlStatic = import ../../tools/networking/curl {
|
||||
stdenv = stdenvLinkStatic;
|
||||
inherit fetchurl;
|
||||
stdenv = useDietLibC stdenv;
|
||||
zlibSupport = false;
|
||||
sslSupport = false;
|
||||
linkStatic = true;
|
||||
};
|
||||
|
||||
|
||||
bzip2Diet = import ../../tools/compression/bzip2 {
|
||||
bzip2Static = import ../../tools/compression/bzip2 {
|
||||
stdenv = stdenvLinkStatic;
|
||||
inherit fetchurl;
|
||||
stdenv = useDietLibC stdenv;
|
||||
linkStatic = true;
|
||||
};
|
||||
|
||||
#gccNoShared = wrapGCC ( gcc.gcc.override { enableShared = false; } );
|
||||
|
||||
build =
|
||||
|
||||
|
@ -33,6 +39,7 @@ rec {
|
|||
buildInputs = [nukeReferences cpio];
|
||||
|
||||
buildCommand = ''
|
||||
set -x
|
||||
ensureDir $out/bin $out/lib $out/libexec
|
||||
|
||||
# Copy what we need of Glibc.
|
||||
|
@ -132,8 +139,8 @@ rec {
|
|||
cp ${klibc}/lib/klibc/bin.static/cpio $out/in-nixpkgs
|
||||
cp ${klibc}/lib/klibc/bin.static/mkdir $out/in-nixpkgs
|
||||
cp ${klibc}/lib/klibc/bin.static/ln $out/in-nixpkgs
|
||||
cp ${curlDiet}/bin/curl $out/in-nixpkgs
|
||||
cp ${bzip2Diet}/bin/bzip2 $out/in-nixpkgs
|
||||
cp ${curlStatic}/bin/curl $out/in-nixpkgs
|
||||
cp ${bzip2Static}/bin/bzip2 $out/in-nixpkgs
|
||||
chmod u+w $out/in-nixpkgs/*
|
||||
strip $out/in-nixpkgs/*
|
||||
nuke-refs $out/in-nixpkgs/*
|
||||
|
|
48
pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh
Normal file
48
pkgs/stdenv/linux/scripts/unpack-bootstrap-tools-arm.sh
Normal file
|
@ -0,0 +1,48 @@
|
|||
set -e
|
||||
|
||||
# Unpack the bootstrap tools tarball.
|
||||
echo Unpacking the bootstrap tools...
|
||||
$mkdir $out
|
||||
$bzip2 -d < $tarball | (cd $out && $cpio -V -i)
|
||||
|
||||
# Set the ELF interpreter / RPATH in the bootstrap binaries.
|
||||
echo Patching the bootstrap tools...
|
||||
|
||||
# On x86_64, ld-linux-x86-64.so.2 barfs on patchelf'ed programs. So
|
||||
# use a copy of patchelf.
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? $out/bin/cp $out/bin/patchelf .
|
||||
|
||||
for i in $out/bin/* $out/libexec/gcc/*/*/*; do
|
||||
echo patching $i
|
||||
if ! test -L $i; then
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
fi
|
||||
done
|
||||
for i in $out/lib/librt* ; do
|
||||
echo patching $i
|
||||
if ! test -L $i; then
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
fi
|
||||
done
|
||||
|
||||
# Fix the libc linker script.
|
||||
export PATH=$out/bin
|
||||
cat $out/lib/libc.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libc.so.tmp
|
||||
mv $out/lib/libc.so.tmp $out/lib/libc.so
|
||||
cat $out/lib/libpthread.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libpthread.so.tmp
|
||||
mv $out/lib/libpthread.so.tmp $out/lib/libpthread.so
|
||||
|
||||
# Provide some additional symlinks.
|
||||
ln -s bash $out/bin/sh
|
||||
|
||||
ln -s bzip2 $out/bin/bunzip2
|
||||
|
||||
# fetchurl needs curl.
|
||||
bzip2 -d < $curl > $out/bin/curl
|
||||
chmod +x $out/bin/curl
|
|
@ -10,13 +10,24 @@ echo Patching the bootstrap tools...
|
|||
|
||||
# On x86_64, ld-linux-x86-64.so.2 barfs on patchelf'ed programs. So
|
||||
# use a copy of patchelf.
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.2 $out/bin/cp $out/bin/patchelf .
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? $out/bin/cp $out/bin/patchelf .
|
||||
|
||||
for i in $out/bin/* $out/libexec/gcc/*/*/*; do
|
||||
echo patching $i
|
||||
if ! test -L $i; then
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.2 \
|
||||
./patchelf --set-interpreter $out/lib/ld-linux*.so.2 --set-rpath $out/lib --force-rpath $i
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
fi
|
||||
done
|
||||
for i in $out/lib/librt* ; do
|
||||
echo patching $i
|
||||
if ! test -L $i; then
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
LD_LIBRARY_PATH=$out/lib $out/lib/ld-linux*.so.? \
|
||||
$out/bin/patchelf --set-interpreter $out/lib/ld-linux*.so.? --set-rpath $out/lib --force-rpath $i
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -24,6 +35,8 @@ done
|
|||
export PATH=$out/bin
|
||||
cat $out/lib/libc.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libc.so.tmp
|
||||
mv $out/lib/libc.so.tmp $out/lib/libc.so
|
||||
cat $out/lib/libpthread.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libpthread.so.tmp
|
||||
mv $out/lib/libpthread.so.tmp $out/lib/libpthread.so
|
||||
|
||||
# Provide some additional symlinks.
|
||||
ln -s bash $out/bin/sh
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{stdenv, fetchurl}:
|
||||
{stdenv, fetchurl, linkStatic ? false}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "bzip2-1.0.5";
|
||||
|
@ -11,7 +11,11 @@ stdenv.mkDerivation {
|
|||
};
|
||||
|
||||
sharedLibrary =
|
||||
!stdenv.isDarwin && !(stdenv ? isDietLibC) && !(stdenv ? isStatic) && stdenv.system != "i686-cygwin";
|
||||
!stdenv.isDarwin && !(stdenv ? isDietLibC) && !(stdenv ? isStatic) && stdenv.system != "i686-cygwin" && !linkStatic;
|
||||
|
||||
makeFlags = if linkStatic then "LDFLAGS=-static" else "";
|
||||
|
||||
inherit linkStatic;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.bzip.org;
|
||||
|
|
|
@ -1,17 +1,35 @@
|
|||
{stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gzip-1.3.12";
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gzip-1.3.13";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://ftp.gnu.org/gnu/gzip/gzip-1.3.12.tar.gz;
|
||||
sha256 = "1bw7sm68xjlnlzgcx66hnw80ac1qqyvhw0vw27zilgbzbzh5nmiz";
|
||||
url = "mirror://gnu/gzip/${name}.tar.gz";
|
||||
sha256 = "18vwa7x0b1sql9bs2d15n94fx3him1m6xpnwsfz52djjbjgzy1hx";
|
||||
};
|
||||
|
||||
patches = [ ./getopt.patch ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gzip.org/;
|
||||
description = "The gzip compression program";
|
||||
homepage = http://www.gnu.org/software/gzip/;
|
||||
description = "Gzip, the GNU zip compression program";
|
||||
|
||||
longDescription =
|
||||
''gzip (GNU zip) is a popular data compression program written by
|
||||
Jean-loup Gailly for the GNU project. Mark Adler wrote the
|
||||
decompression part.
|
||||
|
||||
We developed this program as a replacement for compress because of
|
||||
the Unisys and IBM patents covering the LZW algorithm used by
|
||||
compress. These patents made it impossible for us to use compress,
|
||||
and we needed a replacement. The superior compression ratio of gzip
|
||||
is just a bonus.
|
||||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
|
||||
patches = [./gnulib-futimens.patch];
|
||||
}
|
||||
|
|
54
pkgs/tools/compression/gzip/getopt.patch
Normal file
54
pkgs/tools/compression/gzip/getopt.patch
Normal file
|
@ -0,0 +1,54 @@
|
|||
See http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00089.html .
|
||||
|
||||
From dd0ebefe4fe761f6f422a400430db53c64dbffd7 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Blake <ebb9@byu.net>
|
||||
Date: Tue, 6 Oct 2009 20:44:13 -0600
|
||||
Subject: [PATCH] getopt: fix compilation on darwin
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
* lib/getopt.in.h (includes): Leave breadcrumbs during system
|
||||
include.
|
||||
* lib/unistd.in.h (getopt): Use them to avoid recursive include.
|
||||
Reported by Ludovic Courtès.
|
||||
|
||||
Signed-off-by: Eric Blake <ebb9@byu.net>
|
||||
---
|
||||
ChangeLog | 5 +++++
|
||||
lib/getopt.in.h | 6 +++++-
|
||||
lib/unistd.in.h | 2 +-
|
||||
3 files changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lib/getopt.in.h b/lib/getopt.in.h
|
||||
index 9de467a..7377f3c 100644
|
||||
--- a/lib/getopt.in.h
|
||||
+++ b/lib/getopt.in.h
|
||||
@@ -22,9 +22,13 @@
|
||||
@PRAGMA_SYSTEM_HEADER@
|
||||
#endif
|
||||
|
||||
-/* The include_next requires a split double-inclusion guard. */
|
||||
+/* The include_next requires a split double-inclusion guard. We must
|
||||
+ also inform the replacement unistd.h to not recursively use
|
||||
+ <getopt.h>; our definitions will be present soon enough. */
|
||||
#if @HAVE_GETOPT_H@
|
||||
+# define _GL_SYSTEM_GETOPT
|
||||
# @INCLUDE_NEXT@ @NEXT_GETOPT_H@
|
||||
+# undef _GL_SYSTEM_GETOPT
|
||||
#endif
|
||||
|
||||
#ifndef _GL_GETOPT_H
|
||||
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
|
||||
index 38e2e13..b6ea889 100644
|
||||
--- a/lib/unistd.in.h
|
||||
+++ b/lib/unistd.in.h
|
||||
@@ -49,7 +49,7 @@
|
||||
#endif
|
||||
|
||||
/* Get getopt(), optarg, optind, opterr, optopt. */
|
||||
-#if @GNULIB_UNISTD_H_GETOPT@
|
||||
+#if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
|
||||
# include <getopt.h>
|
||||
#endif
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
now hat glibc-2.6 declares futimens.
|
||||
http://lists.gnu.org/archive/html/bug-gnulib/2007-05/msg00089.html
|
||||
|
||||
diff -ru cpio-2.7.orig/lib/utimens.c cpio-2.7/lib/utimens.c
|
||||
--- cpio-2.7.orig/lib/utimens.c 2007-05-20 21:23:57.000000000 +0900
|
||||
+++ cpio-2.7/lib/utimens.c 2007-05-21 08:40:22.000000000 +0900
|
||||
@@ -73,7 +73,7 @@
|
||||
Return 0 on success, -1 (setting errno) on failure. */
|
||||
|
||||
int
|
||||
-futimens (int fd ATTRIBUTE_UNUSED,
|
||||
+gl_futimens (int fd ATTRIBUTE_UNUSED,
|
||||
char const *file, struct timespec const timespec[2])
|
||||
{
|
||||
/* There's currently no interface to set file timestamps with
|
||||
@@ -166,5 +166,5 @@
|
||||
int
|
||||
utimens (char const *file, struct timespec const timespec[2])
|
||||
{
|
||||
- return futimens (-1, file, timespec);
|
||||
+ return gl_futimens (-1, file, timespec);
|
||||
}
|
||||
diff -ru cpio-2.7.orig/lib/utimens.h cpio-2.7/lib/utimens.h
|
||||
--- cpio-2.7.orig/lib/utimens.h 2007-05-20 21:23:57.000000000 +0900
|
||||
+++ cpio-2.7/lib/utimens.h 2007-05-21 08:39:57.000000000 +0900
|
||||
@@ -1,3 +1,3 @@
|
||||
#include "timespec.h"
|
||||
-int futimens (int, char const *, struct timespec const [2]);
|
||||
+int gl_futimens (int, char const *, struct timespec const [2]);
|
||||
int utimens (char const *, struct timespec const [2]);
|
||||
diff -ur gzip-1.3.12.orig/gzip.c gzip-1.3.12/gzip.c
|
||||
--- gzip-1.3.12.orig/gzip.c 2007-05-21 09:12:46.000000000 +0900
|
||||
+++ gzip-1.3.12/gzip.c 2007-05-21 09:13:14.000000000 +0900
|
||||
@@ -1637,7 +1637,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (futimens (ofd, ofname, timespec) != 0)
|
||||
+ if (gl_futimens (ofd, ofname, timespec) != 0)
|
||||
{
|
||||
int e = errno;
|
||||
WARN ((stderr, "%s: ", program_name));
|
28
pkgs/tools/misc/coreutils/7.5.nix
Normal file
28
pkgs/tools/misc/coreutils/7.5.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{stdenv, fetchurl, aclSupport ? false, acl}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "coreutils-7.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/coreutils/${name}.tar.gz";
|
||||
sha256 = "1hf333y85fm0q7f1apx2zjjhivwj620nc8kcifdcm0sg8fwlj7rl";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optional aclSupport acl;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/coreutils/;
|
||||
description = "The basic file, shell and text manipulation utilities of the GNU operating system";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Core Utilities are the basic file, shell and text
|
||||
manipulation utilities of the GNU operating system. These are
|
||||
the core utilities which are expected to exist on every
|
||||
operating system.
|
||||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
|
@ -1,15 +1,15 @@
|
|||
{stdenv, fetchurl, aclSupport ? false, acl}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "coreutils-7.2";
|
||||
|
||||
name = "coreutils-7.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/coreutils/${name}.tar.gz";
|
||||
sha256 = "1cpx66kwcg5w78by8i27wb24j0flz2ivv9fqmd4av8z5jbnbyxyx";
|
||||
sha256 = "1m153jmnrg9v4x6qiw7azd3cjms13s32yihbzb7zi9bw8a5zx6qx";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optional aclSupport acl;
|
||||
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/coreutils/;
|
||||
description = "The basic file, shell and text manipulation utilities of the GNU operating system";
|
||||
|
@ -22,5 +22,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{stdenv, fetchurl, zlibSupport ? false, zlib ? null, sslSupport ? false, openssl ? null}:
|
||||
{stdenv, fetchurl, zlibSupport ? false, zlib ? null, sslSupport ? false, openssl ? null, linkStatic ? false}:
|
||||
|
||||
assert zlibSupport -> zlib != null;
|
||||
assert sslSupport -> openssl != null;
|
||||
|
@ -20,12 +20,20 @@ stdenv.mkDerivation rec {
|
|||
|
||||
configureFlags = ''
|
||||
${if sslSupport then "--with-ssl=${openssl}" else "--without-ssl"}
|
||||
${if linkStatic then "--enable-static --disable-shared" else ""}
|
||||
'';
|
||||
|
||||
dontDisableStatic = if linkStatic then true else false;
|
||||
|
||||
CFLAGS = if stdenv ? isDietLibC then "-DHAVE_INET_NTOA_R_2_ARGS=1" else "";
|
||||
LDFLAGS = if linkStatic then "-static" else "";
|
||||
CXX = "g++";
|
||||
CXXCPP = "g++ -E";
|
||||
|
||||
# libtool hack to get a static binary. Notice that to 'configure' I passed
|
||||
# other LDFLAGS, because it doesn't use libtool for linking in the tests.
|
||||
makeFlags = if linkStatic then "LDFLAGS=-all-static" else "";
|
||||
|
||||
passthru = {
|
||||
inherit sslSupport openssl;
|
||||
};
|
||||
|
|
|
@ -1,17 +1,46 @@
|
|||
{stdenv, fetchurl, gettext, openssl ? null}:
|
||||
{ stdenv, fetchurl, gettext, perl, gnutls ? null }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "wget-1.11.4";
|
||||
|
||||
name = "wget-1.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/wget/${name}.tar.bz2";
|
||||
sha256 = "1yr7w182n7lvkajvq07wnw65sw2vmxjkc3611kpc728vhvi54zwb";
|
||||
sha256 = "16msgly5xn0qj6ngsw34q9j7ag8jkci6020w21d30jgqw8wdj8y8";
|
||||
};
|
||||
|
||||
buildInputs = [gettext openssl];
|
||||
patches = [ ./gnutls-support.patch ];
|
||||
|
||||
preConfigure =
|
||||
'' for i in "doc/texi2pod.pl" "tests/run-px" "util/rmold.pl"
|
||||
do
|
||||
sed -i "$i" -e 's|/usr/bin.*perl|${perl}/bin/perl|g'
|
||||
done
|
||||
'';
|
||||
|
||||
buildInputs = [ gettext perl ]
|
||||
++ stdenv.lib.optional (gnutls != null) gnutls;
|
||||
|
||||
configureFlags =
|
||||
if gnutls != null
|
||||
then "--with-ssl=gnutls"
|
||||
else "";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "A console downloading program. Has some features for mirroring sites.";
|
||||
homepage = http://www.gnu.org/software/wget;
|
||||
description = "GNU Wget, a tool for retrieving files using HTTP, HTTPS, and FTP";
|
||||
|
||||
longDescription =
|
||||
'' GNU Wget is a free software package for retrieving files using HTTP,
|
||||
HTTPS and FTP, the most widely-used Internet protocols. It is a
|
||||
non-interactive commandline tool, so it may easily be called from
|
||||
scripts, cron jobs, terminals without X-Windows support, etc.
|
||||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
homepage = http://www.gnu.org/software/wget/;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
||||
|
|
16
pkgs/tools/networking/wget/gnutls-support.patch
Normal file
16
pkgs/tools/networking/wget/gnutls-support.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
This patch fixes GnuTLS support:
|
||||
|
||||
http.o: In function `gethttp':
|
||||
http.c:(.text+0x26c6): undefined reference to `ssl_connect_wget'
|
||||
|
||||
--- wget-1.12/src/http.c 2009-09-22 05:02:18.000000000 +0200
|
||||
+++ wget-1.12/src/http.c 2009-10-03 17:24:46.000000000 +0200
|
||||
@@ -1762,7 +1762,7 @@ gethttp (struct url *u, struct http_stat
|
||||
|
||||
if (conn->scheme == SCHEME_HTTPS)
|
||||
{
|
||||
- if (!ssl_connect_wget (sock))
|
||||
+ if (!ssl_connect (sock))
|
||||
{
|
||||
fd_close (sock);
|
||||
return CONSSLERR;
|
|
@ -1,15 +1,35 @@
|
|||
{stdenv, fetchurl}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gawk-3.1.6";
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gawk-3.1.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = mirror://gnu/gawk/gawk-3.1.6.tar.bz2;
|
||||
sha256 = "0v6ba4hxfiiy3bny5japd3zmzxlh8vdkmswk96yngd6i1dddsgsi";
|
||||
url = "mirror://gnu/gawk/${name}.tar.bz2";
|
||||
sha256 = "0wfyiqc28cxb5wjbdph4y33h1fdf56nj6cm7as546niwjsw7cazi";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/gawk/;
|
||||
description = "GNU implementation of the AWK programming language";
|
||||
description = "GNU implementation of the Awk programming language";
|
||||
|
||||
longDescription = ''
|
||||
Many computer users need to manipulate text files: extract and then
|
||||
operate on data from parts of certain lines while discarding the rest,
|
||||
make changes in various text files wherever certain patterns appear,
|
||||
and so on. To write a program to do these things in a language such as
|
||||
C or Pascal is a time-consuming inconvenience that may take many lines
|
||||
of code. The job is easy with awk, especially the GNU implementation:
|
||||
Gawk.
|
||||
|
||||
The awk utility interprets a special-purpose programming language that
|
||||
makes it possible to handle many data-reformatting jobs with just a few
|
||||
lines of code.
|
||||
'';
|
||||
|
||||
license = "GPLv3+";
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.ludo ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -321,7 +321,7 @@ let
|
|||
};
|
||||
|
||||
makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix {
|
||||
inherit stdenv perl cpio contents;
|
||||
inherit stdenv perl cpio contents uboot;
|
||||
};
|
||||
|
||||
makeSetupHook = script: runCommand "hook" {} ''
|
||||
|
@ -409,6 +409,23 @@ let
|
|||
'';
|
||||
|
||||
|
||||
platformPC = assert system == "i686-linux" || system == "x86_64-linux"; {
|
||||
name = "pc";
|
||||
uboot = null;
|
||||
};
|
||||
|
||||
platformSheevaplug = assert system == "armv5tel-linux"; {
|
||||
name = "sheevaplug";
|
||||
inherit uboot;
|
||||
};
|
||||
|
||||
platformVersatileARM = assert system == "armv5tel-linux"; {
|
||||
name = "versatileARM";
|
||||
uboot = null;
|
||||
};
|
||||
|
||||
platform = platformPC;
|
||||
|
||||
### TOOLS
|
||||
|
||||
darwinArchUtility = import ../os-specific/darwin/arch {
|
||||
|
@ -589,14 +606,22 @@ let
|
|||
inherit fetchurl stdenv ppl;
|
||||
};
|
||||
|
||||
coreutils = useFromStdenv "coreutils"
|
||||
(makeOverridable (if stdenv ? isDietLibC
|
||||
coreutils75_real = makeOverridable (import ../tools/misc/coreutils/7.5.nix) {
|
||||
inherit fetchurl stdenv acl;
|
||||
aclSupport = stdenv.isLinux;
|
||||
};
|
||||
|
||||
coreutils_real = makeOverridable (if stdenv ? isDietLibC
|
||||
then import ../tools/misc/coreutils-5
|
||||
else import ../tools/misc/coreutils)
|
||||
{
|
||||
inherit fetchurl stdenv acl;
|
||||
aclSupport = stdenv.isLinux;
|
||||
});
|
||||
};
|
||||
|
||||
coreutils = useFromStdenv "coreutils"
|
||||
(if system == "armv5tel-linux" then coreutils75_real
|
||||
else coreutils_real);
|
||||
|
||||
cpio = import ../tools/archivers/cpio {
|
||||
inherit fetchurl stdenv;
|
||||
|
@ -1096,7 +1121,7 @@ let
|
|||
};
|
||||
|
||||
mldonkey = import ../applications/networking/p2p/mldonkey {
|
||||
inherit fetchurl stdenv ocaml zlib ncurses;
|
||||
inherit fetchurl stdenv ocaml zlib ncurses gd libpng;
|
||||
};
|
||||
|
||||
monit = builderDefsPackage ../tools/system/monit {
|
||||
|
@ -1682,7 +1707,7 @@ let
|
|||
};
|
||||
|
||||
wget = import ../tools/networking/wget {
|
||||
inherit fetchurl stdenv gettext openssl;
|
||||
inherit fetchurl stdenv gettext gnutls perl;
|
||||
};
|
||||
|
||||
which = import ../tools/system/which {
|
||||
|
@ -2171,7 +2196,7 @@ let
|
|||
ocaml = ocaml_3_11_1;
|
||||
|
||||
ocaml_3_08_0 = import ../development/compilers/ocaml/3.08.0.nix {
|
||||
inherit fetchurl stdenv x11 ncurses;
|
||||
inherit fetchurl stdenv fetchcvs x11 ncurses;
|
||||
};
|
||||
|
||||
ocaml_3_09_1 = import ../development/compilers/ocaml/3.09.1.nix {
|
||||
|
@ -2264,7 +2289,7 @@ let
|
|||
nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
|
||||
gcc = baseGCC;
|
||||
libc = glibc;
|
||||
inherit stdenv binutils;
|
||||
inherit stdenv binutils coreutils;
|
||||
};
|
||||
|
||||
wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
|
||||
|
@ -3446,11 +3471,16 @@ let
|
|||
#installLocales = false;
|
||||
};
|
||||
|
||||
glibc29 = import ../development/libraries/glibc-2.9 {
|
||||
glibc29 = makeOverridable (import ../development/libraries/glibc-2.9) {
|
||||
inherit fetchurl stdenv kernelHeaders;
|
||||
installLocales = getPkgConfig "glibc" "locales" false;
|
||||
};
|
||||
|
||||
eglibc = import ../development/libraries/eglibc {
|
||||
inherit fetchsvn stdenv kernelHeaders;
|
||||
installLocales = getPkgConfig "glibc" "locales" false;
|
||||
};
|
||||
|
||||
glibcLocales = makeOverridable (import ../development/libraries/glibc-2.9/locales.nix) {
|
||||
inherit fetchurl stdenv;
|
||||
};
|
||||
|
@ -3491,13 +3521,11 @@ let
|
|||
|
||||
gmp = import ../development/libraries/gmp {
|
||||
inherit fetchurl stdenv m4;
|
||||
cxx = false;
|
||||
};
|
||||
|
||||
gmpxx = import ../development/libraries/gmp {
|
||||
inherit fetchurl stdenv m4;
|
||||
cxx = true;
|
||||
};
|
||||
# `gmpxx' used to mean "GMP with C++ bindings". Now `gmp' has C++ bindings
|
||||
# by default, so that distinction is obsolete.
|
||||
gmpxx = gmp;
|
||||
|
||||
goffice = import ../development/libraries/goffice {
|
||||
inherit fetchurl stdenv pkgconfig libgsf libxml2 cairo
|
||||
|
@ -5550,13 +5578,14 @@ let
|
|||
};
|
||||
|
||||
kernel_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
|
||||
inherit fetchurl stdenv perl mktemp module_init_tools;
|
||||
inherit fetchurl stdenv perl mktemp module_init_tools platform;
|
||||
kernelPatches = [];
|
||||
};
|
||||
|
||||
kernel_2_6_31_zen5 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.31-zen5.nix) {
|
||||
inherit fetchurl stdenv perl mktemp module_init_tools
|
||||
lib builderDefs;
|
||||
inherit platform;
|
||||
};
|
||||
|
||||
kernel_2_6_31_zen5_bfs = kernel_2_6_31_zen5.override {
|
||||
|
@ -5860,7 +5889,7 @@ let
|
|||
};
|
||||
|
||||
pam_unix2 = import ../os-specific/linux/pam_unix2 {
|
||||
inherit stdenv fetchurl pam libxcrypt;
|
||||
inherit stdenv fetchurl pam;
|
||||
};
|
||||
|
||||
pcmciaUtils = composedArgsAndFun (import ../os-specific/linux/pcmciautils) {
|
||||
|
@ -5984,6 +6013,14 @@ let
|
|||
inherit (xlibs) libX11 xproto;
|
||||
};*/
|
||||
|
||||
uboot = import ../misc/uboot {
|
||||
inherit fetchurl stdenv unzip;
|
||||
};
|
||||
|
||||
uclibc = import ../os-specific/linux/uclibc {
|
||||
inherit fetchurl stdenv kernelHeaders;
|
||||
};
|
||||
|
||||
udev = makeOverridable (import ../os-specific/linux/udev) {
|
||||
inherit fetchurl stdenv gperf pkgconfig acl libusb usbutils pciutils glib;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue