iputils: builder rewritten, open-max.patch added
svn path=/nixpkgs/branches/stdenv-updates/; revision=9818
This commit is contained in:
@@ -1,20 +1,11 @@
|
|||||||
source $stdenv/setup
|
source $stdenv/setup
|
||||||
|
|
||||||
tar zxvf $src
|
makeFlags="KERNEL_INCLUDE=$kernelHeaders/include LIBC_INCLUDE=$glibc/include"
|
||||||
cd iputils
|
|
||||||
|
|
||||||
sed -e "s^KERNEL_INCLUDE=.*$^KERNEL_INCLUDE=$kernelHeaders/include^" < Makefile > Makefile.new
|
preConfigure="sed -e 's@check-kernel @@' -i Makefile"
|
||||||
|
|
||||||
mv Makefile.new Makefile
|
|
||||||
sed -e "s^LIBC_INCLUDE=.*$^LIBC_INCLUDE=$glibc/include^" < Makefile > Makefile.new
|
|
||||||
mv Makefile.new Makefile
|
|
||||||
|
|
||||||
#make ping arping tracepath
|
|
||||||
make
|
|
||||||
|
|
||||||
mkdir -p $out/bin
|
|
||||||
mkdir -p $out/sbin
|
|
||||||
|
|
||||||
|
installPhase="
|
||||||
|
mkdir -pv $out/bin $out/sbin
|
||||||
install -c arping $out/sbin/
|
install -c arping $out/sbin/
|
||||||
install -c ping $out/bin/
|
install -c ping $out/bin/
|
||||||
install -c ping6 $out/sbin/
|
install -c ping6 $out/sbin/
|
||||||
@@ -22,3 +13,6 @@ install -c rdisc $out/sbin/
|
|||||||
install -c tracepath $out/sbin/
|
install -c tracepath $out/sbin/
|
||||||
install -c tracepath6 $out/sbin/
|
install -c tracepath6 $out/sbin/
|
||||||
install -c traceroute6 $out/sbin/
|
install -c traceroute6 $out/sbin/
|
||||||
|
";
|
||||||
|
|
||||||
|
genericBuild
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ stdenv.mkDerivation {
|
|||||||
};
|
};
|
||||||
|
|
||||||
inherit kernelHeaders glibc;
|
inherit kernelHeaders glibc;
|
||||||
#buildInputs = [bison flex openssl];
|
patches = [ ./open-max.patch ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
--- iputils-s20070202/rdisc.c.open-max 2007-08-07 11:34:03.000000000 +0200
|
||||||
|
+++ iputils-s20070202/rdisc.c 2007-08-07 11:41:30.000000000 +0200
|
||||||
|
@@ -240,14 +240,25 @@
|
||||||
|
{
|
||||||
|
int t;
|
||||||
|
pid_t pid;
|
||||||
|
-
|
||||||
|
+ long open_max;
|
||||||
|
+
|
||||||
|
if (trace)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if ((open_max = sysconf(_SC_OPEN_MAX)) == -1) {
|
||||||
|
+ if (errno == 0) {
|
||||||
|
+ (void) fprintf(stderr, "OPEN_MAX is not supported\n");
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ (void) fprintf(stderr, "sysconf() error\n");
|
||||||
|
+ }
|
||||||
|
+ exit(1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if ((pid=fork()) != 0)
|
||||||
|
exit(0);
|
||||||
|
|
||||||
|
- for (t = 0; t < OPEN_MAX; t++)
|
||||||
|
+ for (t = 0; t < open_max; t++)
|
||||||
|
if (t != s)
|
||||||
|
close(t);
|
||||||
|
|
||||||
Reference in New Issue
Block a user