diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 730983d895fe..777b33a84731 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -1,4 +1,4 @@ -{ stdenv, runCommand, nettools, perl, kmod }: +{ stdenv, runCommand, nettools, perl, kmod, writeTextFile }: with stdenv.lib; @@ -54,7 +54,20 @@ in features ? readFeatures config }: -let commonMakeFlags = [ "O=../build" ]; in +let + commonMakeFlags = [ + "O=../build" + "INSTALL_PATH=$(out)" + "INSTALLKERNEL=${installkernel}" + ]; + + installkernel = writeTextFile { name = "installkernel"; executable=true; text = '' + #!/bin/sh + mkdir $4 + mv -v $2 $4 + mv -v $3 $4 + '';}; +in stdenv.mkDerivation ({ name = "linux-${version}"; @@ -70,9 +83,8 @@ stdenv.mkDerivation ({ prePatch = '' for mf in $(find -name Makefile -o -name Makefile.include); do echo "stripping FHS paths in \`$mf'..." - sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g' + sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g ; s|/sbin/||g' done - sed -i -e 's|/sbin/depmod|${kmod}/sbin/depmod|' Makefile ''; configurePhase = '' @@ -85,19 +97,7 @@ stdenv.mkDerivation ({ runHook postConfigure ''; - INSTALL_PATH = "$(out)"; - - buildNativeInputs = [ perl nettools ]; - - installPhase = '' - runHook preInstall - mkdir $out - mv -v ../build/System.map $out - # !!! Assumes x86 - mv -v ../build/arch/x86/boot/bzImage $out - mv -v ../build/vmlinux $out - runHook postInstall - ''; + buildNativeInputs = [ perl nettools kmod ]; makeFlags = commonMakeFlags; } // optionalAttrs features.modular { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d8223f2e0ffd..88e1626e5801 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5858,7 +5858,7 @@ let # A function to build a manually-configured kernel linuxManualConfig = import ../os-specific/linux/kernel/manual-config.nix { - inherit stdenv runCommand nettools perl kmod; + inherit stdenv runCommand nettools perl kmod writeTextFile; }; keyutils = callPackage ../os-specific/linux/keyutils { };