* A function `useKlibc' to build a package using klibc as the C
library. * Removed devicemapperStatic, e2fsprogsDiet, lvm2Static since they're redundant (it's what you get when you use pkgsDiet/pkgsStatic). svn path=/nixpkgs/trunk/; revision=12554
This commit is contained in:
parent
e920df26c6
commit
a9d19f45db
@ -1,4 +1,4 @@
|
|||||||
{stdenv, fetchurl, static ? false}:
|
{stdenv, fetchurl}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "device-mapper-1.02.26";
|
name = "device-mapper-1.02.26";
|
||||||
@ -6,7 +6,7 @@ stdenv.mkDerivation {
|
|||||||
url = ftp://sources.redhat.com/pub/dm/device-mapper.1.02.26.tgz;
|
url = ftp://sources.redhat.com/pub/dm/device-mapper.1.02.26.tgz;
|
||||||
sha256 = "0x905frw06s6k5p1rlc2hbgaphgalinarbdg82664sri0qmbkrfv";
|
sha256 = "0x905frw06s6k5p1rlc2hbgaphgalinarbdg82664sri0qmbkrfv";
|
||||||
};
|
};
|
||||||
configureFlags = if static then "--enable-static_link" else "";
|
configureFlags = if stdenv ? isStatic then "--enable-static_link" else "";
|
||||||
# To prevent make install from failing.
|
# To prevent make install from failing.
|
||||||
installFlags = "OWNER= GROUP=";
|
installFlags = "OWNER= GROUP=";
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,9 @@ source $stdenv/setup
|
|||||||
|
|
||||||
preBuild=preBuild
|
preBuild=preBuild
|
||||||
preBuild() {
|
preBuild() {
|
||||||
mkdir -p linux/include
|
mkdir -p linux/include
|
||||||
ln -s $kernel/lib/modules/*/build/include/* linux/include/
|
cp -prd $kernel/lib/modules/*/build/include/* linux/include/
|
||||||
|
chmod -R u+w linux/include/
|
||||||
}
|
}
|
||||||
|
|
||||||
makeFlagsArray=(V=1 prefix=$out SHLIBDIR=$out/lib)
|
makeFlagsArray=(V=1 prefix=$out SHLIBDIR=$out/lib)
|
||||||
|
@ -8,8 +8,10 @@ stdenv.mkDerivation {
|
|||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://kernel/linux/libs/klibc/klibc-1.5.tar.bz2;
|
url = mirror://kernel/linux/libs/klibc/klibc-1.5.tar.bz2;
|
||||||
sha256 = "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017";
|
sha256 = "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017";
|
||||||
|
# url = mirror://kernel/linux/libs/klibc/Testing/klibc-1.5.14.tar.bz2;
|
||||||
|
# sha256 = "1cmrqpgamnv2ns7dlxjm61zc88dxm4ff0aya413ij1lmhp2h2sfc";
|
||||||
};
|
};
|
||||||
inherit kernel;
|
inherit kernel;
|
||||||
buildInputs = [perl bison mktemp];
|
buildInputs = [perl bison mktemp];
|
||||||
patches = [./install.patch];
|
#patches = [./install.patch];
|
||||||
}
|
}
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
diff -rc klibc-1.4-orig/scripts/Kbuild.install klibc-1.4/scripts/Kbuild.install
|
|
||||||
*** klibc-1.4-orig/scripts/Kbuild.install 2006-06-19 03:17:15.000000000 +0200
|
|
||||||
--- klibc-1.4/scripts/Kbuild.install 2006-11-25 22:41:09.000000000 +0100
|
|
||||||
***************
|
|
||||||
*** 96,107 ****
|
|
||||||
$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
|
|
||||||
$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
|
|
||||||
$(Q)set -e ; for d in linux scsi asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \
|
|
||||||
! mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)include/$$d ; \
|
|
||||||
! for r in $(KLIBCKERNELSRC)/include $(KLIBCKERNELOBJ)/include \
|
|
||||||
! $(KLIBCKERNELOBJ)/include2 ; do \
|
|
||||||
[ ! -d $$r/$$d ] || \
|
|
||||||
! cp -rfL $$r/$$d/. \
|
|
||||||
! $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \
|
|
||||||
done ; \
|
|
||||||
done
|
|
||||||
$(Q)cd $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include && ln -sf asm-$(KLIBCARCH) asm
|
|
||||||
--- 96,105 ----
|
|
||||||
$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
|
|
||||||
$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
|
|
||||||
$(Q)set -e ; for d in linux scsi asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \
|
|
||||||
! for r in $(KLIBCKERNELSRC)/include ; do \
|
|
||||||
[ ! -d $$r/$$d ] || \
|
|
||||||
! cp -rd $$r/$$d \
|
|
||||||
! $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d ; \
|
|
||||||
done ; \
|
|
||||||
done
|
|
||||||
$(Q)cd $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include && ln -sf asm-$(KLIBCARCH) asm
|
|
@ -1,4 +1,4 @@
|
|||||||
{stdenv, fetchurl, devicemapper, static ? false}:
|
{stdenv, fetchurl, devicemapper}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "lvm2-2.02.38";
|
name = "lvm2-2.02.38";
|
||||||
@ -7,7 +7,7 @@ stdenv.mkDerivation {
|
|||||||
sha256 = "13nx6iqgga3ric51b36p15cxzhmh83s7spb2559iz3s24x4s0845";
|
sha256 = "13nx6iqgga3ric51b36p15cxzhmh83s7spb2559iz3s24x4s0845";
|
||||||
};
|
};
|
||||||
buildInputs = [devicemapper];
|
buildInputs = [devicemapper];
|
||||||
configureFlags = if static then "--enable-static_link" else "";
|
configureFlags = if stdenv ? isStatic then "--enable-static_link" else "";
|
||||||
# To prevent make install from failing.
|
# To prevent make install from failing.
|
||||||
preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\"";
|
preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\"";
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
{stdenv, fetchurl}:
|
{stdenv, fetchurl}:
|
||||||
|
|
||||||
if stdenv.system != "x86_64-linux" || ! (stdenv ? isDietLibC) || !stdenv.isDietLibC then
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "udev-125";
|
name = "udev-125";
|
||||||
|
|
||||||
@ -15,7 +13,7 @@ stdenv.mkDerivation {
|
|||||||
preBuild = ''
|
preBuild = ''
|
||||||
makeFlagsArray=(prefix=$out usrbindir=$out/bin usrsbindir=$out/sbin usrlibdir=$out/lib \
|
makeFlagsArray=(prefix=$out usrbindir=$out/bin usrsbindir=$out/sbin usrlibdir=$out/lib \
|
||||||
mandir=$out/share/man includedir=$out/include \
|
mandir=$out/share/man includedir=$out/include \
|
||||||
EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id extras/floppy extras/path_id extras/scsi_id extras/usb_id extras/volume_id"
|
EXTRAS="extras/ata_id extras/edd_id extras/floppy extras/path_id extras/scsi_id extras/usb_id ${if stdenv ? isKlibc then "" else "extras/cdrom_id extras/volume_id"}"
|
||||||
INSTALL='install -c' DESTDIR=/)
|
INSTALL='install -c' DESTDIR=/)
|
||||||
|
|
||||||
substituteInPlace udev_rules.c --replace /lib/udev $out/lib/udev
|
substituteInPlace udev_rules.c --replace /lib/udev $out/lib/udev
|
||||||
@ -30,32 +28,3 @@ stdenv.mkDerivation {
|
|||||||
description = "Udev manages the /dev filesystem";
|
description = "Udev manages the /dev filesystem";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# for now svn revision 10849 because this works fine with current dietlibc
|
|
||||||
# this should be fixed (maybe using klibc) or by patching udev somewhen
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "udev-118";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = mirror://kernel/linux/utils/kernel/hotplug/udev-118.tar.bz2;
|
|
||||||
sha256 = "1i488wqm7i6nz6gidbkxkb47hr427ika48i8imwrvvnpg1kzhska";
|
|
||||||
};
|
|
||||||
|
|
||||||
# "DESTDIR=/" is a hack to prevent "make install" from trying to
|
|
||||||
# mess with /dev.
|
|
||||||
preBuild = ''
|
|
||||||
makeFlagsArray=(etcdir=$out/etc sbindir=$out/sbin usrbindir=$out/bin usrsbindir=$out/sbin mandir=$out/share/man INSTALL='install -c' DESTDIR=/)
|
|
||||||
'';
|
|
||||||
|
|
||||||
preInstall = ''
|
|
||||||
installFlagsArray=(udevdir=$TMPDIR/dummy)
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html;
|
|
||||||
description = "Udev manages the /dev filesystem";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -103,6 +103,34 @@ let pkgs = rec {
|
|||||||
isDietLibC = true;
|
isDietLibC = true;
|
||||||
} // {inherit fetchurl;};
|
} // {inherit fetchurl;};
|
||||||
|
|
||||||
|
# Return a modified stdenv that uses klibc to create small
|
||||||
|
# statically linked binaries.
|
||||||
|
useKlibc = stdenv: klibc: stdenv //
|
||||||
|
{ mkDerivation = args: stdenv.mkDerivation (args // {
|
||||||
|
NIX_CFLAGS_LINK = "-static";
|
||||||
|
|
||||||
|
# These are added *after* the command-line flags, so we'll
|
||||||
|
# always optimise for size.
|
||||||
|
NIX_CFLAGS_COMPILE =
|
||||||
|
(if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "")
|
||||||
|
+ " -Os -s";
|
||||||
|
|
||||||
|
configureFlags =
|
||||||
|
(if args ? configureFlags then args.configureFlags else "")
|
||||||
|
+ " --disable-shared"; # brrr...
|
||||||
|
|
||||||
|
NIX_GCC = runCommand "klibc-wrapper" {} ''
|
||||||
|
ensureDir $out/bin
|
||||||
|
ln -s ${klibc}/bin/klcc $out/bin/gcc
|
||||||
|
ln -s ${klibc}/bin/klcc $out/bin/cc
|
||||||
|
ensureDir $out/nix-support
|
||||||
|
echo 'PATH=$PATH:${stdenv.gcc.binutils}/bin' > $out/nix-support/setup-hook
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
isKlibc = true;
|
||||||
|
isStatic = true;
|
||||||
|
} // {inherit fetchurl;};
|
||||||
|
|
||||||
# Return a modified stdenv that tries to build statically linked
|
# Return a modified stdenv that tries to build statically linked
|
||||||
# binaries.
|
# binaries.
|
||||||
makeStaticBinaries = stdenv: stdenv //
|
makeStaticBinaries = stdenv: stdenv //
|
||||||
@ -4760,11 +4788,6 @@ let pkgs = rec {
|
|||||||
inherit fetchurl stdenv;
|
inherit fetchurl stdenv;
|
||||||
};
|
};
|
||||||
|
|
||||||
devicemapperStatic = lowPrio (appendToName "static" (import ../os-specific/linux/device-mapper {
|
|
||||||
inherit fetchurl stdenv;
|
|
||||||
static = true;
|
|
||||||
}));
|
|
||||||
|
|
||||||
dmidecodeFun = lib.sumArgs (selectVersion ../os-specific/linux/dmidecode "2.9") {
|
dmidecodeFun = lib.sumArgs (selectVersion ../os-specific/linux/dmidecode "2.9") {
|
||||||
inherit fetchurl stdenv builderDefs;
|
inherit fetchurl stdenv builderDefs;
|
||||||
};
|
};
|
||||||
@ -4781,11 +4804,6 @@ let pkgs = rec {
|
|||||||
inherit fetchurl stdenv;
|
inherit fetchurl stdenv;
|
||||||
};
|
};
|
||||||
|
|
||||||
e2fsprogsDiet = lowPrio (appendToName "diet" (import ../os-specific/linux/e2fsprogs {
|
|
||||||
inherit fetchurl;
|
|
||||||
stdenv = useDietLibC stdenv;
|
|
||||||
}));
|
|
||||||
|
|
||||||
e3cfsprogs = import ../os-specific/linux/e3cfsprogs {
|
e3cfsprogs = import ../os-specific/linux/e3cfsprogs {
|
||||||
inherit stdenv fetchurl gettext;
|
inherit stdenv fetchurl gettext;
|
||||||
};
|
};
|
||||||
@ -5321,12 +5339,6 @@ let pkgs = rec {
|
|||||||
inherit fetchurl stdenv devicemapper;
|
inherit fetchurl stdenv devicemapper;
|
||||||
};
|
};
|
||||||
|
|
||||||
lvm2Static = lowPrio (appendToName "static" (import ../os-specific/linux/lvm2 {
|
|
||||||
inherit fetchurl stdenv;
|
|
||||||
static = true;
|
|
||||||
devicemapper = devicemapperStatic;
|
|
||||||
}));
|
|
||||||
|
|
||||||
mdadm = import ../os-specific/linux/mdadm {
|
mdadm = import ../os-specific/linux/mdadm {
|
||||||
inherit fetchurl stdenv groff;
|
inherit fetchurl stdenv groff;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user