From 6195c0e8081b03fefa341b73fa5a0a8695b70fff Mon Sep 17 00:00:00 2001 From: Emily Trau Date: Mon, 11 Sep 2023 20:17:23 -0700 Subject: [PATCH 1/3] minimal-bootstrap.bash: add `bin/sh` symlink --- pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix index 9c9682fdf9d5..dea5ad9f017f 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix @@ -95,4 +95,5 @@ bootBash.runCommand "${pname}-${version}" { # Install make install + ln -s bash $out/bin/sh '' From 04a90698aa2615d33eb5360a6cb4de3f1cf3571a Mon Sep 17 00:00:00 2001 From: Emily Trau Date: Mon, 11 Sep 2023 20:21:51 -0700 Subject: [PATCH 2/3] minimal-bootstrap.gawk-mes: rename from gawk --- pkgs/os-specific/linux/minimal-bootstrap/default.nix | 12 ++++++++++-- .../minimal-bootstrap/gawk/{default.nix => mes.nix} | 0 2 files changed, 10 insertions(+), 2 deletions(-) rename pkgs/os-specific/linux/minimal-bootstrap/gawk/{default.nix => mes.nix} (100%) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/default.nix index 2a10a3395ba7..83bf415c24d6 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/default.nix @@ -19,6 +19,7 @@ lib.makeScope bootBash = bash_2_05; gcc = gcc2; glibc = glibc22; + gawk = gawk-mes; }; binutils = callPackage ./binutils { @@ -27,11 +28,13 @@ lib.makeScope binutils = binutils-mes; glibc = glibc22; sed = heirloom.sed; + gawk = gawk-mes; }; binutils-mes = callPackage ./binutils { bash = bash_2_05; tinycc = tinycc-mes; sed = heirloom.sed; + gawk = gawk-mes; mesBootstrap = true; }; @@ -46,15 +49,17 @@ lib.makeScope bash = bash_2_05; gcc = gcc2; glibc = glibc22; + gawk = gawk-mes; }; findutils = callPackage ./findutils { bash = bash_2_05; gcc = gcc2; glibc = glibc22; + gawk = gawk-mes; }; - gawk = callPackage ./gawk { + gawk-mes = callPackage ./gawk/mes.nix { bash = bash_2_05; tinycc = tinycc-mes; gnused = gnused-mes; @@ -76,11 +81,13 @@ lib.makeScope gcc46 = callPackage ./gcc/4.6.nix { gcc = gcc2; glibc = glibc22; + gawk = gawk-mes; }; inherit (callPackage ./glibc { bash = bash_2_05; gnused = gnused-mes; + gawk = gawk-mes; }) glibc22; gnugrep = callPackage ./gnugrep { @@ -140,6 +147,7 @@ lib.makeScope xz = callPackage ./xz { bash = bash_2_05; tinycc = tinycc-mes; + gawk = gawk-mes; inherit (heirloom) sed; }; @@ -153,7 +161,7 @@ lib.makeScope echo ${bzip2.tests.get-version} echo ${diffutils.tests.get-version} echo ${findutils.tests.get-version} - echo ${gawk.tests.get-version} + echo ${gawk-mes.tests.get-version} echo ${gcc2.tests.get-version} echo ${gcc2-mes.tests.get-version} echo ${gcc46.tests.get-version} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix similarity index 100% rename from pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix rename to pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix From 5a3d1bcb12edfeb665e41351163fd1628cb29c23 Mon Sep 17 00:00:00 2001 From: Emily Trau Date: Mon, 11 Sep 2023 21:44:03 -0700 Subject: [PATCH 3/3] minimal-bootstrap.gawk: init at 4.1.4 --- .../linux/minimal-bootstrap/default.nix | 8 +++ .../linux/minimal-bootstrap/gawk/common.nix | 11 +++ .../linux/minimal-bootstrap/gawk/default.nix | 68 +++++++++++++++++++ .../linux/minimal-bootstrap/gawk/mes.nix | 13 +--- 4 files changed, 90 insertions(+), 10 deletions(-) create mode 100644 pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix create mode 100644 pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix diff --git a/pkgs/os-specific/linux/minimal-bootstrap/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/default.nix index 83bf415c24d6..b8807eec0902 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/default.nix @@ -65,6 +65,13 @@ lib.makeScope gnused = gnused-mes; }; + gawk = callPackage ./gawk { + bash = bash_2_05; + gcc = gcc2; + glibc = glibc22; + bootGawk = gawk-mes; + }; + gcc2 = callPackage ./gcc/2.nix { bash = bash_2_05; gcc = gcc2-mes; @@ -162,6 +169,7 @@ lib.makeScope echo ${diffutils.tests.get-version} echo ${findutils.tests.get-version} echo ${gawk-mes.tests.get-version} + echo ${gawk.tests.get-version} echo ${gcc2.tests.get-version} echo ${gcc2-mes.tests.get-version} echo ${gcc46.tests.get-version} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix new file mode 100644 index 000000000000..d95c66d86337 --- /dev/null +++ b/pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix @@ -0,0 +1,11 @@ +{ lib }: + +{ + meta = with lib; { + description = "GNU implementation of the Awk programming language"; + homepage = "https://www.gnu.org/software/gawk"; + license = licenses.gpl3Plus; + maintainers = teams.minimal-bootstrap.members; + platforms = platforms.unix; + }; +} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix new file mode 100644 index 000000000000..935414f21760 --- /dev/null +++ b/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix @@ -0,0 +1,68 @@ +{ lib +, buildPlatform +, hostPlatform +, fetchurl +, bash +, gcc +, glibc +, binutils +, linux-headers +, gnumake +, gnugrep +, gnused +, gnutar +, gzip +, bootGawk +}: +let + inherit (import ./common.nix { inherit lib; }) meta; + pname = "gawk"; + # >= 4.2.0 fails to cleanly build. may be worth investigating in the future. + # for now this version is sufficient to build glibc 2.16 + version = "4.1.4"; + + src = fetchurl { + url = "mirror://gnu/gawk/gawk-${version}.tar.gz"; + sha256 = "0dadjkpyyizmyd0l098qps8lb39r0vrz3xl3hwz2cmjs5c70h0wc"; + }; +in +bash.runCommand "${pname}-${version}" { + inherit pname version meta; + + nativeBuildInputs = [ + gcc + binutils + gnumake + gnused + gnugrep + gnutar + gzip + bootGawk + ]; + + passthru.tests.get-version = result: + bash.runCommand "${pname}-get-version-${version}" {} '' + ${result}/bin/awk --version + mkdir $out + ''; +} '' + # Unpack + tar xzf ${src} + cd gawk-${version} + + # Configure + export C_INCLUDE_PATH="${glibc}/include:${linux-headers}/include" + export LIBRARY_PATH="${glibc}/lib" + export LIBS="-lc -lnss_files -lnss_dns -lresolv" + bash ./configure \ + --prefix=$out \ + --build=${buildPlatform.config} \ + --host=${hostPlatform.config} + + # Build + make gawk + + # Install + install -D gawk $out/bin/gawk + ln -s gawk $out/bin/awk +'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix index d840a204416d..c14399309306 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix @@ -10,7 +10,8 @@ , gnugrep }: let - pname = "gawk"; + inherit (import ./common.nix { inherit lib; }) meta; + pname = "gawk-mes"; # >=3.1.x is incompatible with mes-libc version = "3.0.6"; @@ -25,7 +26,7 @@ let ]; in bash.runCommand "${pname}-${version}" { - inherit pname version; + inherit pname version meta; nativeBuildInputs = [ tinycc.compiler @@ -40,14 +41,6 @@ bash.runCommand "${pname}-${version}" { ${result}/bin/awk --version mkdir $out ''; - - meta = with lib; { - description = "GNU implementation of the Awk programming language"; - homepage = "https://www.gnu.org/software/gawk"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; } '' # Unpack ungz --file ${src} --output gawk.tar