From 5a222fa399a730dff7059171444e99a90a22706a Mon Sep 17 00:00:00 2001 From: Jake Hamilton Date: Fri, 29 Aug 2025 12:32:37 -0700 Subject: [PATCH] feat: working native x86_64-linux gcc --- tidepool/src/builders/basic.nix | 12 +- tidepool/src/lib/default.nix | 1 + tidepool/src/lib/fp.nix | 16 + tidepool/src/lib/packages.nix | 61 ++-- tidepool/src/lib/systems.nix | 288 +++++++++--------- tidepool/src/lib/types.nix | 44 +-- .../src/packages/foundation/bash/default.nix | 3 + .../versions/5.2.15-stage1-passthrough.nix | 34 +++ .../bash/versions/5.2.15-stage1.nix | 87 ++++++ .../packages/foundation/binutils/default.nix | 3 +- .../versions/2.41-stage1-passthrough.nix | 33 ++ .../binutils/versions/2.41-stage1.nix | 118 ++----- .../src/packages/foundation/bison/default.nix | 3 + .../versions/3.8.2-stage1-passthrough.nix | 33 ++ .../bison/versions/3.8.2-stage1.nix | 81 +++++ .../src/packages/foundation/bzip2/default.nix | 5 +- .../versions/1.0.8-stage1-passthrough.nix | 35 +++ .../bzip2/versions/1.0.8-stage1.nix | 72 +++++ .../foundation/bzip2/versions/1.0.8.nix | 72 ----- .../packages/foundation/coreutils/default.nix | 3 + .../versions/9.4-stage1-passthrough.nix | 33 ++ .../coreutils/versions/9.4-stage1.nix | 83 +++++ .../packages/foundation/diffutils/default.nix | 3 + .../versions/3.10-stage1-passthrough.nix | 33 ++ .../diffutils/versions/3.10-stage1.nix | 76 +++++ .../foundation/diffutils/versions/3.10.nix | 39 --- .../packages/foundation/findutils/default.nix | 3 + .../versions/4.9.0-stage1-passthrough.nix | 33 ++ .../findutils/versions/4.9.0-stage1.nix | 77 +++++ .../src/packages/foundation/gawk/default.nix | 3 + .../versions/5.2.2-stage1-passthrough.nix | 33 ++ .../foundation/gawk/versions/5.2.2-stage1.nix | 77 +++++ .../src/packages/foundation/gcc/default.nix | 3 +- .../foundation/gcc/versions/13.2.0-stage1.nix | 15 +- .../foundation/gcc/versions/13.2.0-stage2.nix | 21 +- .../versions/13.2.0-stage3-passthrough.nix | 36 +++ .../foundation/gcc/versions/13.2.0-stage3.nix | 26 +- .../foundation/gcc/versions/13.2.0-stage4.nix | 60 ++-- .../src/packages/foundation/glibc/default.nix | 4 +- .../versions/2.38-stage1-passthrough.nix | 33 ++ .../versions/{2.38.nix => 2.38-stage1.nix} | 23 +- .../packages/foundation/gnugrep/default.nix | 3 + .../versions/3.11-stage1-passthrough.nix | 33 ++ .../gnugrep/versions/3.11-stage1.nix | 77 +++++ .../src/packages/foundation/gnum4/default.nix | 3 + .../versions/1.4.19-stage1-passthrough.nix | 35 +++ .../gnum4/versions/1.4.19-stage1.nix | 77 +++++ .../packages/foundation/gnumake/default.nix | 3 + .../patches/4.4.1-0001-No-impure-bin-sh.patch | 34 +++ .../4.4.1-0002-remove-impure-dirs.patch | 39 +++ .../versions/4.4.1-stage1-passthrough.nix | 35 +++ .../gnumake/versions/4.4.1-stage1.nix | 86 ++++++ .../packages/foundation/gnupatch/default.nix | 3 + .../versions/2.7-stage1-passthrough.nix | 35 +++ .../gnupatch/versions/2.7-stage1.nix | 76 +++++ .../packages/foundation/gnused/default.nix | 3 + .../versions/4.9-stage1-passthrough.nix | 33 ++ .../foundation/gnused/versions/4.9-stage1.nix | 77 +++++ .../packages/foundation/gnutar/default.nix | 3 + .../versions/1.35-stage1-passthrough.nix | 33 ++ .../gnutar/versions/1.35-stage1.nix | 76 +++++ .../src/packages/foundation/gzip/default.nix | 3 + .../gzip/versions/1.13-stage1-passthrough.nix | 33 ++ .../foundation/gzip/versions/1.13-stage1.nix | 76 +++++ .../foundation/linux-headers/default.nix | 4 +- .../versions/6.5.6-stage1-passthrough.nix | 32 ++ .../linux-headers/versions/6.5.6-stage1.nix | 70 +++++ .../linux-headers/versions/6.5.6.nix | 61 ---- .../src/packages/foundation/xz/default.nix | 3 + .../xz/versions/5.4.3-stage1-passthrough.nix | 38 +++ .../foundation/xz/versions/5.4.3-stage1.nix | 76 +++++ 71 files changed, 2304 insertions(+), 574 deletions(-) create mode 100644 tidepool/src/lib/fp.nix create mode 100644 tidepool/src/packages/foundation/bash/versions/5.2.15-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/bash/versions/5.2.15-stage1.nix create mode 100644 tidepool/src/packages/foundation/binutils/versions/2.41-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/bison/versions/3.8.2-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/bison/versions/3.8.2-stage1.nix create mode 100644 tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1.nix delete mode 100644 tidepool/src/packages/foundation/bzip2/versions/1.0.8.nix create mode 100644 tidepool/src/packages/foundation/coreutils/versions/9.4-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/coreutils/versions/9.4-stage1.nix create mode 100644 tidepool/src/packages/foundation/diffutils/versions/3.10-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/diffutils/versions/3.10-stage1.nix delete mode 100644 tidepool/src/packages/foundation/diffutils/versions/3.10.nix create mode 100644 tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1.nix create mode 100644 tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1.nix create mode 100644 tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3-passthrough.nix create mode 100644 tidepool/src/packages/foundation/glibc/versions/2.38-stage1-passthrough.nix rename tidepool/src/packages/foundation/glibc/versions/{2.38.nix => 2.38-stage1.nix} (75%) create mode 100644 tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1.nix create mode 100644 tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1.nix create mode 100644 tidepool/src/packages/foundation/gnumake/patches/4.4.1-0001-No-impure-bin-sh.patch create mode 100644 tidepool/src/packages/foundation/gnumake/patches/4.4.1-0002-remove-impure-dirs.patch create mode 100644 tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1.nix create mode 100644 tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1.nix create mode 100644 tidepool/src/packages/foundation/gnused/versions/4.9-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gnused/versions/4.9-stage1.nix create mode 100644 tidepool/src/packages/foundation/gnutar/versions/1.35-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gnutar/versions/1.35-stage1.nix create mode 100644 tidepool/src/packages/foundation/gzip/versions/1.13-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/gzip/versions/1.13-stage1.nix create mode 100644 tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1.nix delete mode 100644 tidepool/src/packages/foundation/linux-headers/versions/6.5.6.nix create mode 100644 tidepool/src/packages/foundation/xz/versions/5.4.3-stage1-passthrough.nix create mode 100644 tidepool/src/packages/foundation/xz/versions/5.4.3-stage1.nix diff --git a/tidepool/src/builders/basic.nix b/tidepool/src/builders/basic.nix index 7637b87..06a81b5 100644 --- a/tidepool/src/builders/basic.nix +++ b/tidepool/src/builders/basic.nix @@ -5,7 +5,7 @@ let inherit (config) lib packages; inherit (config.internal.packages) foundation; - pretty = lib.generators.pretty {}; + pretty = lib.generators.pretty { }; in { config.builders = { @@ -77,10 +77,14 @@ in ++ (lib.packages.dependencies.get dependencies.host.host) ++ (lib.packages.dependencies.get dependencies.host.target) ++ (lib.packages.dependencies.get dependencies.target.target) - ++ [ + ++ lib.lists.when (system == "i686-linux") [ foundation.stage2-bash foundation.stage2-coreutils ] + ++ lib.lists.when (system == "x86_64-linux") [ + (lib.packages.build packages.foundation.bash.versions."5.2.15-stage1" "i686-linux" system system).package + (lib.packages.build packages.foundation.coreutils.versions."9.4-stage1" "i686-linux" system system).package + ] ); in builtins.concatStringsSep ":" ( @@ -120,8 +124,8 @@ in }; }; in - if sorted ? result then - result + if sorted ? result then + result else builtins.throw '' ${pretty phases} diff --git a/tidepool/src/lib/default.nix b/tidepool/src/lib/default.nix index fa47f84..dd90003 100644 --- a/tidepool/src/lib/default.nix +++ b/tidepool/src/lib/default.nix @@ -4,5 +4,6 @@ ./packages.nix ./systems.nix ./types.nix + ./fp.nix ]; } diff --git a/tidepool/src/lib/fp.nix b/tidepool/src/lib/fp.nix new file mode 100644 index 0000000..8c6ac50 --- /dev/null +++ b/tidepool/src/lib/fp.nix @@ -0,0 +1,16 @@ +{ lib, config }: +{ + config = { + lib.fp = { + foldl = f: default: items: + let + process = index: + if index < 0 then + default + else + f (process (index - 1)) (builtins.elemAt items index); + in + process (builtins.length items - 1); + }; + }; +} diff --git a/tidepool/src/lib/packages.nix b/tidepool/src/lib/packages.nix index c7407bd..9c0067b 100644 --- a/tidepool/src/lib/packages.nix +++ b/tidepool/src/lib/packages.nix @@ -14,8 +14,7 @@ in in builtins.map (dependency: dependency.package) available; - build = - build': host': target': + build = build': host': target': builtins.mapAttrs (name: dep: lib.packages.build dep build' host' target'); collect = @@ -179,8 +178,8 @@ in let getHooks = (builtins.trace dependency.name) - (builtins.trace dependency.hooks) - dependency.hooks or (lib.fp.const { }); + (builtins.trace dependency.hooks) + dependency.hooks or (lib.fp.const { }); in dependency.hooks ctx ) @@ -257,6 +256,15 @@ in target = lib.modules.override 75 target; }; + withDependencyErrorContext = prefix: deps: + builtins.mapAttrs + (name: value: + builtins.addErrorContext + "📦 [Aux Tidepool] while resolving dependency `${lib.options.getIdentifier (["deps"] ++ prefix ++ [name])}` for `${identifier}`." + value + ) + deps; + withPlatform = lib.modules.run { args = { global = global.config; @@ -277,14 +285,6 @@ in ]; }; - withDependencyErrorContext = prefix: deps: - builtins.mapAttrs - (name: value: - builtins.addErrorContext - "📦 [Aux Tidepool] while resolving dependency `${lib.options.getIdentifier (["deps"] ++ prefix ++ [name])}` for `${identifier}`." - value - ) deps; - # Not all platform information can be effectively handled via submodules. To handle # the case where a user copies the resolved config over we need to ensure that # dependencies are appropriately updated. @@ -293,26 +293,26 @@ in build = { build = lib.packages.dependencies.build build build build - (withDependencyErrorContext ["build" "build"] withPlatform.config.deps.build.build); + (withDependencyErrorContext [ "build" "build" ] withPlatform.config.deps.build.build); host = lib.packages.dependencies.build build build host - (withDependencyErrorContext ["build" "host"] withPlatform.config.deps.build.host); + (withDependencyErrorContext [ "build" "host" ] withPlatform.config.deps.build.host); target = lib.packages.dependencies.build build build target - (withDependencyErrorContext ["build" "target"] withPlatform.config.deps.build.target); + (withDependencyErrorContext [ "build" "target" ] withPlatform.config.deps.build.target); }; host = { host = lib.packages.dependencies.build build host host - (withDependencyErrorContext ["host" "host"] withPlatform.config.deps.host.host); + (withDependencyErrorContext [ "host" "host" ] withPlatform.config.deps.host.host); target = lib.packages.dependencies.build build host target - (withDependencyErrorContext ["host" "target"] withPlatform.config.deps.host.target); + (withDependencyErrorContext [ "host" "target" ] withPlatform.config.deps.host.target); }; target = { target = lib.packages.dependencies.build build target target - (withDependencyErrorContext ["target" "target"] withPlatform.config.deps.target.target); + (withDependencyErrorContext [ "target" "target" ] withPlatform.config.deps.target.target); }; }; }; @@ -337,18 +337,18 @@ in package = (builtins.addErrorContext "📦 [Aux Tidepool] while building package ${package.name}") - (lib.modules.override 0 (withDeps.builder.build withDeps)); + (lib.modules.override 0 (withDeps.builder.build withDeps)); }; } ) ]; }; - support = lib.packages.supports withPlatform.config build host target; + buildSystem = withPlatform.config.platform.build; + hostSystem = withPlatform.config.platform.host; + targetSystem = withPlatform.config.platform.target; - buildSystem = lib.systems.withBuildInfo build; - hostSystem = lib.systems.withBuildInfo host; - targetSystem = lib.systems.withBuildInfo target; + support = lib.packages.supports withPlatform.config buildSystem.double hostSystem.double targetSystem.double; result = if !support.compatible then @@ -358,26 +358,23 @@ in else withPackage.config; in - builtins.addErrorContext "📦 [Aux Tidepool] while building package `${identifier}` for platform build=${buildSystem.double}, host=${hostSystem.double}, target=${targetSystem.double}." + builtins.addErrorContext "📦 [Aux Tidepool] while building package `${identifier}` for platform build=${buildSystem.double}, host=${hostSystem.double}, target=${targetSystem.double}." + (builtins.trace "(lib) Building package ${result.name}") result; supports = alias: build: host: target: let - buildSystem = lib.systems.withBuildInfo build; - hostSystem = lib.systems.withBuildInfo host; - targetSystem = lib.systems.withBuildInfo target; - package = lib.packages.resolve alias; matches = builtins.filter (platform: - platform.build.double == buildSystem.double && - platform.host.double == hostSystem.double && - platform.target.double == targetSystem.double) + platform.build.double == build && + platform.host.double == host && + platform.target.double == target) package.platforms; in { compatible = (config.preferences.packages.allow.incompatible && builtins.length matches == 0) - || builtins.length matches > 0; + || builtins.length matches > 0; broken = !config.preferences.packages.allow.broken && package.meta.broken; }; diff --git a/tidepool/src/lib/systems.nix b/tidepool/src/lib/systems.nix index 8af8730..16dea69 100644 --- a/tidepool/src/lib/systems.nix +++ b/tidepool/src/lib/systems.nix @@ -1,6 +1,6 @@ -{ lib, config }: +{ config }: let - lib' = config.lib; + inherit (config) lib; types = config.lib.systems.types; setTypes = @@ -26,12 +26,12 @@ let getDoubles = predicate: - builtins.map lib'.systems.into.double (builtins.filter predicate lib'.systems.doubles.all); + builtins.map lib.systems.into.double (builtins.filter predicate lib.systems.doubles.all); in { config = { lib.systems = { - match = builtins.mapAttrs (lib.fp.const matchAnyAttrs) lib'.systems.patterns; + match = builtins.mapAttrs (lib.fp.const matchAnyAttrs) lib.systems.patterns; platforms = { pc = { @@ -45,7 +45,7 @@ in }; }; - pc_simplekernel = lib.attrs.mergeRecursive lib'.systems.platforms.pc { + pc_simplekernel = lib.attrs.mergeRecursive lib.systems.platforms.pc { linux-kernel.autoModules = false; }; @@ -234,7 +234,7 @@ in }; # Legacy attribute, for compatibility with existing configs only. - raspberrypi2 = lib'.systems.platforms.armv7l-hf-multiplatform; + raspberrypi2 = lib.systems.platforms.armv7l-hf-multiplatform; # Nvidia Bluefield 2 (w. crypto support) bluefield2 = { @@ -301,7 +301,7 @@ in }; }; - guruplug = lib.recursiveUpdate lib'.systems.platforms.sheevaplug { + guruplug = lib.recursiveUpdate lib.systems.platforms.sheevaplug { # Define `CONFIG_MACH_GURUPLUG' (see # ) # and other GuruPlug-specific things. Requires the `guruplug-defconfig' @@ -309,7 +309,7 @@ in linux-kernel.baseConfig = "guruplug_defconfig"; }; - beaglebone = lib.recursiveUpdate lib'.systems.platforms.armv7l-hf-multiplatform { + beaglebone = lib.recursiveUpdate lib.systems.platforms.armv7l-hf-multiplatform { linux-kernel = { name = "beaglebone"; baseConfig = "bb.org_defconfig"; @@ -603,7 +603,7 @@ in mipsel-linux-gnu = { triple = "mipsel-unknown-linux-gnu"; } - // lib'.systems.platforms.gcc_mips32r2_o32; + // lib.systems.platforms.gcc_mips32r2_o32; # This function takes a minimally-valid "platform" and returns an # attrset containing zero or more additional attrs which should be @@ -612,31 +612,31 @@ in platform: # x86 if platform.isx86 then - lib'.systems.platforms.pc + lib.systems.platforms.pc # ARM else if platform.isAarch32 then let version = platform.system.cpu.version or null; in if version == null then - lib'.systems.platforms.pc + lib.systems.platforms.pc else if lib.versions.gte "6" version then - lib'.systems.platforms.sheevaplug + lib.systems.platforms.sheevaplug else if lib.versions.gte "7" version then - lib'.systems.platforms.raspberrypi + lib.systems.platforms.raspberrypi else - lib'.systems.platforms.armv7l-hf-multiplatform + lib.systems.platforms.armv7l-hf-multiplatform else if platform.isAarch64 then if platform.isDarwin then - lib'.systems.platforms.apple-m1 + lib.systems.platforms.apple-m1 else - lib'.systems.platforms.aarch64-multiplatform + lib.systems.platforms.aarch64-multiplatform else if platform.isRiscV then - lib'.systems.platforms.riscv-multiplatform + lib.systems.platforms.riscv-multiplatform else if platform.system.cpu == types.cpus.mipsel then - lib'.systems.platforms.mipsel-linux-gnu + lib.systems.platforms.mipsel-linux-gnu else if platform.system.cpu == types.cpus.powerpc64le then - lib'.systems.platforms.powernv + lib.systems.platforms.powernv else { }; }; @@ -940,41 +940,41 @@ in default = [ ]; x86-64 = [ ]; x86-64-v2 = [ "x86-64" ]; - x86-64-v3 = [ "x86-64-v2" ] ++ lib'.systems.architectures.inferiors.x86-64-v2; - x86-64-v4 = [ "x86-64-v3" ] ++ lib'.systems.architectures.inferiors.x86-64-v3; + x86-64-v3 = [ "x86-64-v2" ] ++ lib.systems.architectures.inferiors.x86-64-v2; + x86-64-v4 = [ "x86-64-v3" ] ++ lib.systems.architectures.inferiors.x86-64-v3; # x86_64 Intel # https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html - nehalem = [ "x86-64-v2" ] ++ lib'.systems.architectures.inferiors.x86-64-v2; - westmere = [ "nehalem" ] ++ lib'.systems.architectures.inferiors.nehalem; - sandybridge = [ "westmere" ] ++ lib'.systems.architectures.inferiors.westmere; - ivybridge = [ "sandybridge" ] ++ lib'.systems.architectures.inferiors.sandybridge; + nehalem = [ "x86-64-v2" ] ++ lib.systems.architectures.inferiors.x86-64-v2; + westmere = [ "nehalem" ] ++ lib.systems.architectures.inferiors.nehalem; + sandybridge = [ "westmere" ] ++ lib.systems.architectures.inferiors.westmere; + ivybridge = [ "sandybridge" ] ++ lib.systems.architectures.inferiors.sandybridge; haswell = lib.unique ( [ "ivybridge" "x86-64-v3" ] - ++ lib'.systems.architectures.inferiors.ivybridge - ++ lib'.systems.architectures.inferiors.x86-64-v3 + ++ lib.systems.architectures.inferiors.ivybridge + ++ lib.systems.architectures.inferiors.x86-64-v3 ); - broadwell = [ "haswell" ] ++ lib'.systems.architectures.inferiors.haswell; - skylake = [ "broadwell" ] ++ lib'.systems.architectures.inferiors.broadwell; + broadwell = [ "haswell" ] ++ lib.systems.architectures.inferiors.haswell; + skylake = [ "broadwell" ] ++ lib.systems.architectures.inferiors.broadwell; skylake-avx512 = lib.unique ( [ "skylake" "x86-64-v4" ] - ++ lib'.systems.architectures.inferiors.skylake - ++ lib'.systems.architectures.inferiors.x86-64-v4 + ++ lib.systems.architectures.inferiors.skylake + ++ lib.systems.architectures.inferiors.x86-64-v4 ); - cannonlake = [ "skylake-avx512" ] ++ lib'.systems.architectures.inferiors.skylake-avx512; - icelake-client = [ "cannonlake" ] ++ lib'.systems.architectures.inferiors.cannonlake; - icelake-server = [ "icelake-client" ] ++ lib'.systems.architectures.inferiors.icelake-client; - cascadelake = [ "cannonlake" ] ++ lib'.systems.architectures.inferiors.cannonlake; - cooperlake = [ "cascadelake" ] ++ lib'.systems.architectures.inferiors.cascadelake; - tigerlake = [ "icelake-server" ] ++ lib'.systems.architectures.inferiors.icelake-server; + cannonlake = [ "skylake-avx512" ] ++ lib.systems.architectures.inferiors.skylake-avx512; + icelake-client = [ "cannonlake" ] ++ lib.systems.architectures.inferiors.cannonlake; + icelake-server = [ "icelake-client" ] ++ lib.systems.architectures.inferiors.icelake-client; + cascadelake = [ "cannonlake" ] ++ lib.systems.architectures.inferiors.cannonlake; + cooperlake = [ "cascadelake" ] ++ lib.systems.architectures.inferiors.cascadelake; + tigerlake = [ "icelake-server" ] ++ lib.systems.architectures.inferiors.icelake-server; # CX16 does not exist on alderlake, while it does on nearly all other intel CPUs alderlake = [ ]; @@ -1006,16 +1006,16 @@ in # https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html # https://en.wikichip.org/wiki/amd/microarchitectures/zen # https://en.wikichip.org/wiki/intel/microarchitectures/skylake - znver1 = [ "skylake" ] ++ lib'.systems.architectures.inferiors.skylake; # Includes haswell and x86-64-v3 - znver2 = [ "znver1" ] ++ lib'.systems.architectures.inferiors.znver1; - znver3 = [ "znver2" ] ++ lib'.systems.architectures.inferiors.znver2; + znver1 = [ "skylake" ] ++ lib.systems.architectures.inferiors.skylake; # Includes haswell and x86-64-v3 + znver2 = [ "znver1" ] ++ lib.systems.architectures.inferiors.znver1; + znver3 = [ "znver2" ] ++ lib.systems.architectures.inferiors.znver2; znver4 = lib.unique ( [ "znver3" "x86-64-v4" ] - ++ lib'.systems.architectures.inferiors.znver3 - ++ lib'.systems.architectures.inferiors.x86-64-v4 + ++ lib.systems.architectures.inferiors.znver3 + ++ lib.systems.architectures.inferiors.x86-64-v4 ); # other @@ -1031,7 +1031,7 @@ in validate = { architecture = let - isSupported = feature: x: builtins.elem feature (lib'.systems.architectures.features.${x} or [ ]); + isSupported = feature: x: builtins.elem feature (lib.systems.architectures.features.${x} or [ ]); in { sse3Support = isSupported "sse3"; @@ -1052,108 +1052,108 @@ in lib.any lib.id [ # x86 ( - b == lib'.systems.types.cpus.i386 && lib'.systems.validate.compatible a lib'.systems.types.cpus.i486 + b == lib.systems.types.cpus.i386 && lib.systems.validate.compatible a lib.systems.types.cpus.i486 ) ( - b == lib'.systems.types.cpus.i486 && lib'.systems.validate.compatible a lib'.systems.types.cpus.i586 + b == lib.systems.types.cpus.i486 && lib.systems.validate.compatible a lib.systems.types.cpus.i586 ) ( - b == lib'.systems.types.cpus.i586 && lib'.systems.validate.compatible a lib'.systems.types.cpus.i686 + b == lib.systems.types.cpus.i586 && lib.systems.validate.compatible a lib.systems.types.cpus.i686 ) # XXX: Not true in some cases. Like in WSL mode. ( - b == lib'.systems.types.cpus.i686 - && lib'.systems.validate.compatible a lib'.systems.types.cpus.x86_64 + b == lib.systems.types.cpus.i686 + && lib.systems.validate.compatible a lib.systems.types.cpus.x86_64 ) # ARMv4 ( - b == lib'.systems.types.cpus.arm - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv5tel + b == lib.systems.types.cpus.arm + && lib.systems.validate.compatible a lib.systems.types.cpus.armv5tel ) # ARMv5 ( - b == lib'.systems.types.cpus.armv5tel - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv6l + b == lib.systems.types.cpus.armv5tel + && lib.systems.validate.compatible a lib.systems.types.cpus.armv6l ) # ARMv6 ( - b == lib'.systems.types.cpus.armv6l - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv6m + b == lib.systems.types.cpus.armv6l + && lib.systems.validate.compatible a lib.systems.types.cpus.armv6m ) ( - b == lib'.systems.types.cpus.armv6m - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv7l + b == lib.systems.types.cpus.armv6m + && lib.systems.validate.compatible a lib.systems.types.cpus.armv7l ) # ARMv7 ( - b == lib'.systems.types.cpus.armv7l - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv7a + b == lib.systems.types.cpus.armv7l + && lib.systems.validate.compatible a lib.systems.types.cpus.armv7a ) ( - b == lib'.systems.types.cpus.armv7l - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv7r + b == lib.systems.types.cpus.armv7l + && lib.systems.validate.compatible a lib.systems.types.cpus.armv7r ) ( - b == lib'.systems.types.cpus.armv7l - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv7m + b == lib.systems.types.cpus.armv7l + && lib.systems.validate.compatible a lib.systems.types.cpus.armv7m ) # ARMv8 - (b == lib'.systems.types.cpus.aarch64 && a == lib'.systems.types.cpus.armv8a) + (b == lib.systems.types.cpus.aarch64 && a == lib.systems.types.cpus.armv8a) ( - b == lib'.systems.types.cpus.armv8a - && lib'.systems.validate.compatible a lib'.systems.types.cpus.aarch64 + b == lib.systems.types.cpus.armv8a + && lib.systems.validate.compatible a lib.systems.types.cpus.aarch64 ) ( - b == lib'.systems.types.cpus.armv8r - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv8a + b == lib.systems.types.cpus.armv8r + && lib.systems.validate.compatible a lib.systems.types.cpus.armv8a ) ( - b == lib'.systems.types.cpus.armv8m - && lib'.systems.validate.compatible a lib'.systems.types.cpus.armv8a + b == lib.systems.types.cpus.armv8m + && lib.systems.validate.compatible a lib.systems.types.cpus.armv8a ) # PowerPC ( - b == lib'.systems.types.cpus.powerpc - && lib'.systems.validate.compatible a lib'.systems.types.cpus.powerpc64 + b == lib.systems.types.cpus.powerpc + && lib.systems.validate.compatible a lib.systems.types.cpus.powerpc64 ) ( - b == lib'.systems.types.cpus.powerpcle - && lib'.systems.validate.compatible a lib'.systems.types.cpus.powerpc64le + b == lib.systems.types.cpus.powerpcle + && lib.systems.validate.compatible a lib.systems.types.cpus.powerpc64le ) # MIPS ( - b == lib'.systems.types.cpus.mips - && lib'.systems.validate.compatible a lib'.systems.types.cpus.mips64 + b == lib.systems.types.cpus.mips + && lib.systems.validate.compatible a lib.systems.types.cpus.mips64 ) ( - b == lib'.systems.types.cpus.mipsel - && lib'.systems.validate.compatible a lib'.systems.types.cpus.mips64el + b == lib.systems.types.cpus.mipsel + && lib.systems.validate.compatible a lib.systems.types.cpus.mips64el ) # RISCV ( - b == lib'.systems.types.cpus.riscv32 - && lib'.systems.validate.compatible a lib'.systems.types.cpus.riscv64 + b == lib.systems.types.cpus.riscv32 + && lib.systems.validate.compatible a lib.systems.types.cpus.riscv64 ) # SPARC ( - b == lib'.systems.types.cpus.sparc - && lib'.systems.validate.compatible a lib'.systems.types.cpus.sparc64 + b == lib.systems.types.cpus.sparc + && lib.systems.validate.compatible a lib.systems.types.cpus.sparc64 ) # WASM ( - b == lib'.systems.types.cpus.wasm32 - && lib'.systems.validate.compatible a lib'.systems.types.cpus.wasm64 + b == lib.systems.types.cpus.wasm32 + && lib.systems.validate.compatible a lib.systems.types.cpus.wasm64 ) # identity @@ -1237,7 +1237,7 @@ in value: lib.types.is "systemWithBuildInfo" value && value ? system - && lib'.systems.types.platform.check value.system; + && lib.systems.types.platform.check value.system; }; endian = lib.types.enum (builtins.attrValues types.endians); @@ -1763,8 +1763,8 @@ in value: let parts = lib.strings.split "-" value; - skeleton = lib'.systems.skeleton parts; - system = lib'.systems.create (lib'.systems.from.skeleton skeleton); + skeleton = lib.systems.skeleton parts; + system = lib.systems.create (lib.systems.from.skeleton skeleton); in system; @@ -1791,9 +1791,9 @@ in vendor = if spec ? vendor then getVendor spec.vendor - else if lib'.systems.match.isDarwin resolved then + else if lib.systems.match.isDarwin resolved then types.vendors.apple - else if lib'.systems.match.isWindows resolved then + else if lib.systems.match.isWindows resolved then types.vendors.pc else types.vendors.unknown; @@ -1809,10 +1809,10 @@ in abi = if spec ? abi then getAbi spec.abi - else if lib'.systems.match.isLinux resolved || lib'.systems.match.isWindows resolved then - if lib'.systems.match.isAarch32 resolved then + else if lib.systems.match.isLinux resolved || lib.systems.match.isWindows resolved then + if lib.systems.match.isAarch32 resolved then if lib.versions.gte "6" (resolved.cpu.version) then types.abis.gnueabihf else types.abis.gnueabi - else if lib'.systems.match.isPower64 resolved && lib'.systems.match.isBigEndian resolved then + else if lib.systems.match.isPower64 resolved && lib.systems.match.isBigEndian resolved then types.abis.gnuabielfv2 else types.abis.gnu @@ -2220,12 +2220,12 @@ in }; }; isUnix = [ - lib'.systems.match.isBSD - lib'.systems.match.isDarwin - lib'.systems.match.isLinux - lib'.systems.match.isSunOS - lib'.systems.match.isCygwin - lib'.systems.match.isRedox + lib.systems.match.isBSD + lib.systems.match.isDarwin + lib.systems.match.isLinux + lib.systems.match.isSunOS + lib.systems.match.isCygwin + lib.systems.match.isRedox ]; isMacOS = { @@ -2337,7 +2337,7 @@ in }; doubles = { - resolved = builtins.map lib'.systems.from.string lib'.systems.doubles.all; + resolved = builtins.map lib.systems.from.string lib.systems.doubles.all; all = [ # Cygwin @@ -2444,34 +2444,34 @@ in "i686-windows" ]; - arm = getDoubles lib'.systems.match.isAarch32; - armv7 = getDoubles lib'.systems.match.isArmv7; - aarch64 = getDoubles lib'.systems.match.isAarch64; - x86 = getDoubles lib'.systems.match.isx86; - i686 = getDoubles lib'.systems.match.isi686; - x86_64 = getDoubles lib'.systems.match.isx86_64; - microblaze = getDoubles lib'.systems.match.isMicroBlaze; - mips = getDoubles lib'.systems.match.isMips; - mmix = getDoubles lib'.systems.match.isMmix; - power = getDoubles lib'.systems.match.isPower; - riscv = getDoubles lib'.systems.match.isRiscV; - riscv32 = getDoubles lib'.systems.match.isRiscV32; - riscv64 = getDoubles lib'.systems.match.isRiscV64; - rx = getDoubles lib'.systems.match.isRx; - vc4 = getDoubles lib'.systems.match.isVc4; - or1k = getDoubles lib'.systems.match.isOr1k; - m68k = getDoubles lib'.systems.match.isM68k; - s390 = getDoubles lib'.systems.match.isS390; - s390x = getDoubles lib'.systems.match.isS390x; - loongarch64 = getDoubles lib'.systems.match.isLoongArch64; - js = getDoubles lib'.systems.match.isJavaScript; + arm = getDoubles lib.systems.match.isAarch32; + armv7 = getDoubles lib.systems.match.isArmv7; + aarch64 = getDoubles lib.systems.match.isAarch64; + x86 = getDoubles lib.systems.match.isx86; + i686 = getDoubles lib.systems.match.isi686; + x86_64 = getDoubles lib.systems.match.isx86_64; + microblaze = getDoubles lib.systems.match.isMicroBlaze; + mips = getDoubles lib.systems.match.isMips; + mmix = getDoubles lib.systems.match.isMmix; + power = getDoubles lib.systems.match.isPower; + riscv = getDoubles lib.systems.match.isRiscV; + riscv32 = getDoubles lib.systems.match.isRiscV32; + riscv64 = getDoubles lib.systems.match.isRiscV64; + rx = getDoubles lib.systems.match.isRx; + vc4 = getDoubles lib.systems.match.isVc4; + or1k = getDoubles lib.systems.match.isOr1k; + m68k = getDoubles lib.systems.match.isM68k; + s390 = getDoubles lib.systems.match.isS390; + s390x = getDoubles lib.systems.match.isS390x; + loongarch64 = getDoubles lib.systems.match.isLoongArch64; + js = getDoubles lib.systems.match.isJavaScript; - bigEndian = getDoubles lib'.systems.match.isBigEndian; - littleEndian = getDoubles lib'.systems.match.isLittleEndian; + bigEndian = getDoubles lib.systems.match.isBigEndian; + littleEndian = getDoubles lib.systems.match.isLittleEndian; - cygwin = getDoubles lib'.systems.match.isCygwin; - darwin = getDoubles lib'.systems.match.isDarwin; - freebsd = getDoubles lib'.systems.match.isFreeBSD; + cygwin = getDoubles lib.systems.match.isCygwin; + darwin = getDoubles lib.systems.match.isDarwin; + freebsd = getDoubles lib.systems.match.isFreeBSD; # Should be better, but MinGW is unclear. gnu = getDoubles ( @@ -2516,17 +2516,17 @@ in abi = types.abis.gnuabielfv2; } ); - illumos = getDoubles lib'.systems.match.isSunOS; - linux = getDoubles lib'.systems.match.isLinux; - netbsd = getDoubles lib'.systems.match.isNetBSD; - openbsd = getDoubles lib'.systems.match.isOpenBSD; - unix = getDoubles lib'.systems.match.isUnix; - wasi = getDoubles lib'.systems.match.isWasi; - redox = getDoubles lib'.systems.match.isRedox; - windows = getDoubles lib'.systems.match.isWindows; - genode = getDoubles lib'.systems.match.isGenode; + illumos = getDoubles lib.systems.match.isSunOS; + linux = getDoubles lib.systems.match.isLinux; + netbsd = getDoubles lib.systems.match.isNetBSD; + openbsd = getDoubles lib.systems.match.isOpenBSD; + unix = getDoubles lib.systems.match.isUnix; + wasi = getDoubles lib.systems.match.isWasi; + redox = getDoubles lib.systems.match.isRedox; + windows = getDoubles lib.systems.match.isWindows; + genode = getDoubles lib.systems.match.isGenode; - embedded = getDoubles lib'.systems.match.isNone; + embedded = getDoubles lib.systems.match.isNone; mesaPlatforms = [ "i686-linux" @@ -2550,7 +2550,7 @@ in settings = if builtins.isString args then { system = args; } else args; resolved = { - system = lib'.systems.from.string (if settings ? triple then settings.triple else settings.system); + system = lib.systems.from.string (if settings ? triple then settings.triple else settings.system); inherit ( @@ -2559,21 +2559,21 @@ in gcc = settings.gcc or { }; rustc = settings.rustc or { }; } - // lib'.systems.platforms.select resolved + // lib.systems.platforms.select resolved ) linux-kernel gcc rustc ; - double = lib'.systems.into.double resolved.system; - triple = lib'.systems.into.triple resolved.system; + double = lib.systems.into.double resolved.system; + triple = lib.systems.into.triple resolved.system; isExecutable = platform: (resolved.isAndroid == platform.isAndroid) && resolved.system.kernel == platform.system.kernel - && lib'.systems.validate.compatible resolved.system.cpu platform.system.cpu; + && lib.systems.validate.compatible resolved.system.cpu platform.system.cpu; # The difference between `isStatic` and `hasSharedLibraries` is mainly the # addition of the `staticMarker` (see make-derivation.nix). Some @@ -2791,14 +2791,18 @@ in }; }; } - // builtins.mapAttrs (name: match: match resolved.system) lib'.systems.match + // builtins.mapAttrs (name: match: match resolved.system) lib.systems.match // builtins.mapAttrs ( name: validate: validate (resolved.gcc.arch or "default") - ) lib'.systems.validate.architecture + ) lib.systems.validate.architecture // (builtins.removeAttrs settings [ "system" ]); assertions = builtins.foldl' ( - result: { assertion, message }: if assertion resolved then result else builtins.throw message + result: + { assertion, message }: + if assertion resolved then + result + else builtins.throw message ) true (resolved.system.abi.assertions or [ ]); in assert resolved.useAndroidPrebuilt -> resolved.isAndroid; diff --git a/tidepool/src/lib/types.nix b/tidepool/src/lib/types.nix index 6c1aa80..3d29ec7 100644 --- a/tidepool/src/lib/types.nix +++ b/tidepool/src/lib/types.nix @@ -203,7 +203,7 @@ in in lib.packages.build package build host target; in - lib.types.attrs.of (lib.types.coerce initial transform lib.types.package); + lib.types.attrs.lazy (lib.types.coerce initial transform lib.types.package); alias = lib.types.submodule ( { config, name }: @@ -224,14 +224,13 @@ in stable = lib.options.create { description = "The stable version of the package."; type = lib.types.package; - default.value = null; + default.value = config.latest; }; latest = lib.options.create { description = "The latest version of the package."; type = lib.types.package; - default.value = - if config.versions == { } then null else config.versions.${lib.packages.getLatest config}; + default.value = if config.versions == { } then null else config.versions.${lib.packages.getLatest config}; }; versions = lib.options.create { @@ -640,7 +639,9 @@ in package = lib.options.create { description = "The built derivation."; type = lib.types.derivation; - default.value = config.builder.build config; + default.value = + (builtins.trace "(internal) Building package ${config.name}") + config.builder.build config; }; phases = lib.options.create { @@ -671,19 +672,26 @@ in description = "The dependencies for the package."; type = deps build host target; default.value = { }; - apply = value: { - build = { - build = lib.packages.dependencies.build build build build value.build.build; - host = lib.packages.dependencies.build build build host value.build.host; - target = lib.packages.dependencies.build build build target value.build.target; - }; - host = { - host = lib.packages.dependencies.build build host host value.host.host; - target = lib.packages.dependencies.build build host target value.host.target; - }; - target = { - target = lib.packages.dependencies.build build target target value.target.target; - }; + apply = value: + if value ? __done__ then + value + else + (builtins.trace "(internal) building dependencies for package ${config.name}") + { + __done__ = true; + + build = { + build = lib.packages.dependencies.build build build build value.build.build; + host = lib.packages.dependencies.build build build host value.build.host; + target = lib.packages.dependencies.build build build target value.build.target; + }; + host = { + host = lib.packages.dependencies.build build host host value.host.host; + target = lib.packages.dependencies.build build host target value.host.target; + }; + target = { + target = lib.packages.dependencies.build build target target value.target.target; + }; }; }; }; diff --git a/tidepool/src/packages/foundation/bash/default.nix b/tidepool/src/packages/foundation/bash/default.nix index 62a2204..e54c933 100644 --- a/tidepool/src/packages/foundation/bash/default.nix +++ b/tidepool/src/packages/foundation/bash/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.bash = { stable = config.packages.foundation.bash.versions."5.2.15-bootstrap"; + latest = config.packages.foundation.bash.versions."5.2.15-stage1-passthrough"; versions = { + "5.2.15-stage1-passthrough" = ./versions/5.2.15-stage1-passthrough.nix; + "5.2.15-stage1" = ./versions/5.2.15-stage1.nix; "5.2.15-bootstrap" = ./versions/5.2.15-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/bash/versions/5.2.15-stage1-passthrough.nix b/tidepool/src/packages/foundation/bash/versions/5.2.15-stage1-passthrough.nix new file mode 100644 index 0000000..1ebea9e --- /dev/null +++ b/tidepool/src/packages/foundation/bash/versions/5.2.15-stage1-passthrough.nix @@ -0,0 +1,34 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnupatch.versions."2.7-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU Bourne-Again Shell, the de facto standard shell on Linux"; + homepage = "https://www.gnu.org/software/bash"; + license = lib.licenses.gpl3Plus; + main = "/bin/bash"; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/bash/versions/5.2.15-stage1.nix b/tidepool/src/packages/foundation/bash/versions/5.2.15-stage1.nix new file mode 100644 index 0000000..7f85006 --- /dev/null +++ b/tidepool/src/packages/foundation/bash/versions/5.2.15-stage1.nix @@ -0,0 +1,87 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU Bourne-Again Shell, the de facto standard shell on Linux"; + homepage = "https://www.gnu.org/software/bash"; + license = lib.licenses.gpl3Plus; + main = "/bin/bash"; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/bash/bash-${version}.tar.gz"; + sha256 = "132qng0jy600mv1fs95ylnlisx2wavkkgpb19c6kmz7lnmjhjwhk"; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + }; + host = { + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + binutils = packages.foundation.binutils.versions."2.41-stage1"; + }; + }; + + host = { + host = { + coreutils = packages.foundation.coreutils.versions."9.4-stage1"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd bash-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} \ + --enable-static-link \ + bash_cv_func_strtoimax=y \ + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + rm $out/bin/bashbug + + ln -s $out/bin/bash $out/bin/sh + ''; + }; + + }; +} diff --git a/tidepool/src/packages/foundation/binutils/default.nix b/tidepool/src/packages/foundation/binutils/default.nix index b07ff56..cc8d81d 100644 --- a/tidepool/src/packages/foundation/binutils/default.nix +++ b/tidepool/src/packages/foundation/binutils/default.nix @@ -2,9 +2,10 @@ { config.packages.foundation.binutils = { stable = config.packages.foundation.binutils.versions."2.41-bootstrap"; - latest = config.packages.foundation.binutils.versions."2.41-stage1"; + latest = config.packages.foundation.binutils.versions."2.41-stage1-passthrough"; versions = { + "2.41-stage1-passthrough" = ./versions/2.41-stage1-passthrough.nix; "2.41-stage1" = ./versions/2.41-stage1.nix; "2.41-bootstrap" = ./versions/2.41-bootstrap.nix; }; diff --git a/tidepool/src/packages/foundation/binutils/versions/2.41-stage1-passthrough.nix b/tidepool/src/packages/foundation/binutils/versions/2.41-stage1-passthrough.nix new file mode 100644 index 0000000..1fcef47 --- /dev/null +++ b/tidepool/src/packages/foundation/binutils/versions/2.41-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.binutils.versions."2.41-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "Tools for manipulating binaries (linker, assembler, etc.)"; + homepage = "https://www.gnu.org/software/binutils"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/binutils/versions/2.41-stage1.nix b/tidepool/src/packages/foundation/binutils/versions/2.41-stage1.nix index e5c5a48..6beb9ed 100644 --- a/tidepool/src/packages/foundation/binutils/versions/2.41-stage1.nix +++ b/tidepool/src/packages/foundation/binutils/versions/2.41-stage1.nix @@ -66,109 +66,35 @@ in sha256 = "rppXieI0WeWWBuZxRyPy0//DHAMXQZHvDQFb3wYAdFA="; }; - platform = lib.modules.override 1 { - build = - if - config.platform.target.double == "x86_64-linux" || config.platform.target.double == "i686-linux" - then - "i686-linux" - else - "x86_64-linux"; - }; - deps = { build = { build = { - gnumake = if isBootstrapped then - packages.foundation.gnumake.versions."4.4.1-bootstrap" - else - packages.foundation.gnumake.latest; - - gnused = if isBootstrapped then - packages.foundation.gnused.versions."4.9-bootstrap" - else - packages.foundation.gnused.latest; - - gnugrep = if isBootstrapped then - packages.foundation.gnugrep.versions."3.11-bootstrap" - else - packages.foundation.gnugrep.latest; - - gnupatch = if isBootstrapped then - packages.foundation.gnupatch.versions."2.7-bootstrap" - else - packages.foundation.gnupatch.latest; - - gawk = if isBootstrapped then - packages.foundation.gawk.versions."5.2.2-bootstrap" - else - packages.foundation.gawk.latest; - - diffutils = if isBootstrapped then - packages.foundation.diffutils.versions."3.10-bootstrap" - else - packages.foundation.diffutils.latest; - - findutils = if isBootstrapped then - packages.foundation.findutils.versions."4.9.0-bootstrap" - else - packages.foundation.findutils.latest; - - gnutar = if isBootstrapped then - packages.foundation.gnutar.versions."1.35-bootstrap" - else - packages.foundation.gnutar.latest; - - gzip = if isBootstrapped then - packages.foundation.gzip.versions."1.13-bootstrap" - else - packages.foundation.gzip.latest; - - bzip2 = if isBootstrapped then - packages.foundation.bzip2.versions."1.0.8-bootstrap" - else - packages.foundation.bzip2.latest; - - xz = if isBootstrapped then - packages.foundation.xz.versions."5.4.3-bootstrap" - else - packages.foundation.xz.latest; - - gcc = if isBootstrapped then - packages.foundation.gcc.versions."13.2.0-bootstrap" - else - packages.foundation.gcc.latest; - - binutils = if isBootstrapped then - packages.foundation.binutils.versions."2.41-bootstrap" - else - packages.foundation.binutils.latest.extend { - platform = { - build = lib.modules.overrides.force "i686-linux"; - }; - }; + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + bzip2 = packages.foundation.bzip2.versions."1.0.8-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + binutils = packages.foundation.binutils.versions."2.41-bootstrap"; }; host = { - binutils = if isBootstrapped then - packages.foundation.binutils.versions."2.41-bootstrap" - else - packages.foundation.binutils.latest.extend { - platform = { - build = lib.modules.overrides.force "i686-linux"; - }; - }; - }; + gcc = + if isBootstrapped then + packages.foundation.gcc.versions."13.2.0-bootstrap" + else + packages.foundation.gcc.versions."13.2.0-stage2"; - target = { - # binutils = if isBootstrapped then - # packages.foundation.binutils.versions."2.41-bootstrap" - # else - # packages.foundation.binutils.latest.extend { - # platform = { - # build = lib.modules.overrides.force "i686-linux"; - # }; - # }; + binutils = + if isBootstrapped then + packages.foundation.binutils.versions."2.41-bootstrap" + else + packages.foundation.binutils.versions."2.41-stage1"; }; }; }; diff --git a/tidepool/src/packages/foundation/bison/default.nix b/tidepool/src/packages/foundation/bison/default.nix index 09f0e5f..99a779f 100644 --- a/tidepool/src/packages/foundation/bison/default.nix +++ b/tidepool/src/packages/foundation/bison/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.bison = { stable = config.packages.foundation.bison.versions."3.8.2-bootstrap"; + latest = config.packages.foundation.bison.versions."3.8.2-stage1-passthrough"; versions = { + "3.8.2-stage1-passthrough" = ./versions/3.8.2-stage1-passthrough.nix; + "3.8.2-stage1" = ./versions/3.8.2-stage1.nix; "3.8.2-bootstrap" = ./versions/3.8.2-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/bison/versions/3.8.2-stage1-passthrough.nix b/tidepool/src/packages/foundation/bison/versions/3.8.2-stage1-passthrough.nix new file mode 100644 index 0000000..8b4c689 --- /dev/null +++ b/tidepool/src/packages/foundation/bison/versions/3.8.2-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.bison.versions."3.8.2-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "Yacc-compatible parser generator."; + homepage = "https://www.gnu.org/software/bison"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/bison/versions/3.8.2-stage1.nix b/tidepool/src/packages/foundation/bison/versions/3.8.2-stage1.nix new file mode 100644 index 0000000..49dd89d --- /dev/null +++ b/tidepool/src/packages/foundation/bison/versions/3.8.2-stage1.nix @@ -0,0 +1,81 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "Yacc-compatible parser generator."; + homepage = "https://www.gnu.org/software/bison"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/bison/bison-${version}.tar.xz"; + sha256 = "m7oCFMz38QecXVkhAEUie89hlRmEDr+oDNOEnP9aW/I="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + gnum4 = packages.foundation.gnum4.versions."1.4.19-bootstrap"; + }; + + host = { + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + binutils = packages.foundation.binutils.versions."2.41-stage1"; + }; + }; + + host = { + host = { + glibc = packages.foundation.glibc.versions."2.38-stage1"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd bison-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/bzip2/default.nix b/tidepool/src/packages/foundation/bzip2/default.nix index e27f25a..b5670c3 100644 --- a/tidepool/src/packages/foundation/bzip2/default.nix +++ b/tidepool/src/packages/foundation/bzip2/default.nix @@ -2,10 +2,11 @@ { config.packages.foundation.bzip2 = { stable = config.packages.foundation.bzip2.versions."1.0.8-bootstrap"; - latest = config.packages.foundation.bzip2.versions."1.0.8"; + latest = config.packages.foundation.bzip2.versions."1.0.8-stage1-passthrough"; versions = { - "1.0.8" = ./versions/1.0.8.nix; + "1.0.8-stage1-passthrough" = ./versions/1.0.8-stage1-passthrough.nix; + "1.0.8-stage1" = ./versions/1.0.8-stage1.nix; "1.0.8-bootstrap" = ./versions/1.0.8-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1-passthrough.nix b/tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1-passthrough.nix new file mode 100644 index 0000000..1b9a828 --- /dev/null +++ b/tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1-passthrough.nix @@ -0,0 +1,35 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.bzip2.versions."1.0.8-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "High-quality data compression program."; + homepage = "https://www.sourceware.org/bzip2"; + license = lib.licenses.bsdOriginal; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + + hooks = package.hooks; + }; +} diff --git a/tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1.nix b/tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1.nix new file mode 100644 index 0000000..b050846 --- /dev/null +++ b/tidepool/src/packages/foundation/bzip2/versions/1.0.8-stage1.nix @@ -0,0 +1,72 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; + + prefix = lib.strings.when + (config.platform.build.triple != config.platform.host.triple) + "${config.platform.host.triple}-"; +in +{ + config = { + meta = { + description = "High-quality data compression program."; + homepage = "https://www.sourceware.org/bzip2"; + license = lib.licenses.bsdOriginal; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz"; + sha256 = "0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd bzip2-${version} + ''; + + build = '' + # Build + make \ + -j $NIX_BUILD_CORES \ + CC="$CC" \ + AR="${config.deps.build.host.binutils.package}/bin/${prefix}ar" \ + RANLIB="${config.deps.build.host.binutils.package}/bin/${prefix}ranlib" \ + STRIP="${config.deps.build.host.binutils.package}/bin/${prefix}strip" \ + NM="${config.deps.build.host.binutils.package}/bin/${prefix}nm" \ + bzip2 bzip2recover + ''; + + install = '' + # Install + make install -j $NIX_BUILD_CORES PREFIX=$out + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/bzip2/versions/1.0.8.nix b/tidepool/src/packages/foundation/bzip2/versions/1.0.8.nix deleted file mode 100644 index 149ec49..0000000 --- a/tidepool/src/packages/foundation/bzip2/versions/1.0.8.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ config, global }: - -let - inherit (global) lib packages builders mirrors; - inherit (global.internal.packages) foundation; - - isBuildBootstrapped = config.platform.build.double == "i686-linux"; - isHostBootstrapped = config.platform.host.double == "i686-linux"; - - isBootstrapped = isBuildBootstrapped && isHostBootstrapped; - - prefix = lib.strings.when - (config.platform.build.triple != config.platform.target.triple) - "${config.platform.target.triple}-"; -in { - config = { - meta = { - description = "High-quality data compression program."; - homepage = "https://www.sourceware.org/bzip2"; - license = lib.licenses.bsdOriginal; - }; - - platforms = [ - { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } - ]; - - builder = builders.basic; - - src = builtins.fetchurl { - url = "https://sourceware.org/pub/bzip2/bzip2-${config.version}.tar.gz"; - sha256 = "0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"; - }; - - deps = { - build = { - build = { - inherit (packages.foundation) - gnumake - gnutar - gzip; - }; - - host = { - inherit (packages.foundation) - binutils - gcc; - }; - }; - }; - - phases = { - unpack = '' - # Unpack - tar xf ${config.src} - cd bzip2-${config.version} - ''; - - build = '' - # Build - make \ - -j $NIX_BUILD_CORES \ - CFLAGS=-static \ - bzip2 bzip2recover - ''; - - install = '' - # Install - make install -j $NIX_BUILD_CORES PREFIX=$out - ''; - }; - }; -} diff --git a/tidepool/src/packages/foundation/coreutils/default.nix b/tidepool/src/packages/foundation/coreutils/default.nix index f6e9735..8243c90 100644 --- a/tidepool/src/packages/foundation/coreutils/default.nix +++ b/tidepool/src/packages/foundation/coreutils/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.coreutils = { stable = config.packages.foundation.coreutils.versions."9.4-bootstrap"; + latest = config.packages.foundation.coreutils.versions."9.4-stage1-passthrough"; versions = { + "9.4-stage1-passthrough" = ./versions/9.4-stage1-passthrough.nix; + "9.4-stage1" = ./versions/9.4-stage1.nix; "9.4-bootstrap" = ./versions/9.4-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/coreutils/versions/9.4-stage1-passthrough.nix b/tidepool/src/packages/foundation/coreutils/versions/9.4-stage1-passthrough.nix new file mode 100644 index 0000000..90b5c2d --- /dev/null +++ b/tidepool/src/packages/foundation/coreutils/versions/9.4-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.coreutils.versions."9.4-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "The GNU Core Utilities"; + homepage = "https://www.gnu.org/software/coreutils"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/coreutils/versions/9.4-stage1.nix b/tidepool/src/packages/foundation/coreutils/versions/9.4-stage1.nix new file mode 100644 index 0000000..2284302 --- /dev/null +++ b/tidepool/src/packages/foundation/coreutils/versions/9.4-stage1.nix @@ -0,0 +1,83 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; + + prefix = lib.strings.when + (config.platform.build.triple != config.platform.host.triple) + "${config.platform.host.triple}-"; + + configureFlags = [ + "--prefix=${builtins.placeholder "out"}" + "--build=${config.platform.build.triple}" + "--host=${config.platform.host.triple}" + "--enable-single-binary=symlinks" + ]; +in +{ + config = { + meta = { + description = "The GNU Core Utilities"; + homepage = "https://www.gnu.org/software/coreutils"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/coreutils/coreutils-${version}.tar.gz"; + sha256 = "X2ANkJOXOwr+JTk9m8GMRPIjJlf0yg2V6jHHAutmtzk="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xzf ${config.src} + cd coreutils-${version} + ''; + + configure = '' + # Configure + bash ./configure ${builtins.concatStringsSep " " configureFlags} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES V=1 + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/diffutils/default.nix b/tidepool/src/packages/foundation/diffutils/default.nix index 25a20c6..08a88be 100644 --- a/tidepool/src/packages/foundation/diffutils/default.nix +++ b/tidepool/src/packages/foundation/diffutils/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.diffutils = { stable = config.packages.foundation.diffutils.versions."3.10-bootstrap"; + latest = config.packages.foundation.diffutils.versions."3.10-stage1-passthrough"; versions = { + "3.10-stage1-passthrough" = ./versions/3.10-stage1-passthrough.nix; + "3.10-stage1" = ./versions/3.10-stage1.nix; "3.10-bootstrap" = ./versions/3.10-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/diffutils/versions/3.10-stage1-passthrough.nix b/tidepool/src/packages/foundation/diffutils/versions/3.10-stage1-passthrough.nix new file mode 100644 index 0000000..d9e66c8 --- /dev/null +++ b/tidepool/src/packages/foundation/diffutils/versions/3.10-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.diffutils.versions."3.10-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "Commands for showing the differences between files (diff, cmp, etc.)."; + homepage = "https://www.gnu.org/software/diffutils"; + license = lib.licenses.gpl3Only; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/diffutils/versions/3.10-stage1.nix b/tidepool/src/packages/foundation/diffutils/versions/3.10-stage1.nix new file mode 100644 index 0000000..a10df87 --- /dev/null +++ b/tidepool/src/packages/foundation/diffutils/versions/3.10-stage1.nix @@ -0,0 +1,76 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "Commands for showing the differences between files (diff, cmp, etc.)."; + homepage = "https://www.gnu.org/software/diffutils"; + license = lib.licenses.gpl3Only; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/diffutils/diffutils-${version}.tar.xz"; + sha256 = "kOXpPMck5OvhLt6A3xY0Bjx6hVaSaFkZv+YLVWyb0J4="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd diffutils-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/diffutils/versions/3.10.nix b/tidepool/src/packages/foundation/diffutils/versions/3.10.nix deleted file mode 100644 index 57d5a07..0000000 --- a/tidepool/src/packages/foundation/diffutils/versions/3.10.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ config, global }: - -let - inherit (global) lib packages builders; - inherit (global.internal.packages) foundation; -in { - config = { - meta = { - description = "Commands for showing the differences between files (diff, cmp, etc.)."; - homepage = "https://www.gnu.org/software/diffutils"; - license = lib.licenses.gpl3Only; - }; - - platforms = [ - { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } - ]; - - builder = builders.basic; - - src = builtins.fetchurl { - url = "${config.aux.mirrors.gnu}/diffutils/diffutils-${config.version}.tar.xz"; - sha256 = "kOXpPMck5OvhLt6A3xY0Bjx6hVaSaFkZv+YLVWyb0J4="; - }; - - deps = { - build = { - inherit (packages.foundation) - gnumake - gnused - gnugrep - gnutar - gawk - xz - diffutils - findutils; - }; - }; - }; -} diff --git a/tidepool/src/packages/foundation/findutils/default.nix b/tidepool/src/packages/foundation/findutils/default.nix index 1ce7a67..33acd74 100644 --- a/tidepool/src/packages/foundation/findutils/default.nix +++ b/tidepool/src/packages/foundation/findutils/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.findutils = { stable = config.packages.foundation.findutils.versions."4.9.0-bootstrap"; + latest = config.packages.foundation.findutils.versions."4.9.0-stage1-passthrough"; versions = { + "4.9.0-stage1-passthrough" = ./versions/4.9.0-stage1-passthrough.nix; + "4.9.0-stage1" = ./versions/4.9.0-stage1.nix; "4.9.0-bootstrap" = ./versions/4.9.0-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1-passthrough.nix b/tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1-passthrough.nix new file mode 100644 index 0000000..fa2530e --- /dev/null +++ b/tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.findutils.versions."4.9.0-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU Find Utilities, the basic directory searching utilities of the GNU operating system."; + homepage = "https://www.gnu.org/software/findutils"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1.nix b/tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1.nix new file mode 100644 index 0000000..6bb162e --- /dev/null +++ b/tidepool/src/packages/foundation/findutils/versions/4.9.0-stage1.nix @@ -0,0 +1,77 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU Find Utilities, the basic directory searching utilities of the GNU operating system."; + homepage = "https://www.gnu.org/software/findutils"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/findutils/findutils-${version}.tar.xz"; + sha256 = "or+4wJ1DZ3DtxZ9Q+kg+eFsWGjt7nVR1c8sIBl/UYv4="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd findutils-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + rm $out/bin/updatedb + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gawk/default.nix b/tidepool/src/packages/foundation/gawk/default.nix index e8b1676..a99dfb6 100644 --- a/tidepool/src/packages/foundation/gawk/default.nix +++ b/tidepool/src/packages/foundation/gawk/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gawk = { stable = config.packages.foundation.gawk.versions."5.2.2-bootstrap"; + latest = config.packages.foundation.gawk.versions."5.2.2-stage1-passthrough"; versions = { + "5.2.2-stage1-passthrough" = ./versions/5.2.2-stage1-passthrough.nix; + "5.2.2-stage1" = ./versions/5.2.2-stage1.nix; "5.2.2-bootstrap" = ./versions/5.2.2-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1-passthrough.nix b/tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1-passthrough.nix new file mode 100644 index 0000000..559d160 --- /dev/null +++ b/tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gawk.versions."5.2.2-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU implementation of the Awk programming language."; + homepage = "https://www.gnu.org/software/gawk"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1.nix b/tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1.nix new file mode 100644 index 0000000..a68752f --- /dev/null +++ b/tidepool/src/packages/foundation/gawk/versions/5.2.2-stage1.nix @@ -0,0 +1,77 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU implementation of the Awk programming language."; + homepage = "https://www.gnu.org/software/gawk"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/gawk/gawk-${version}.tar.gz"; + sha256 = "lFrvfM/xAfILIqEIArwAXplKsrjqPnJMwaGXxi9B9lA="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd gawk-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + rm $out/bin/gawkbug + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gcc/default.nix b/tidepool/src/packages/foundation/gcc/default.nix index e9aa05d..6820b41 100644 --- a/tidepool/src/packages/foundation/gcc/default.nix +++ b/tidepool/src/packages/foundation/gcc/default.nix @@ -8,10 +8,11 @@ { config.packages.foundation.gcc = { stable = config.packages.foundation.gcc.versions."13.2.0-bootstrap"; - latest = config.packages.foundation.gcc.versions."13.2.0-stage3"; + latest = config.packages.foundation.gcc.versions."13.2.0-stage4"; versions = { "13.2.0-stage4" = ./versions/13.2.0-stage4.nix; + "13.2.0-stage3-passthrough" = ./versions/13.2.0-stage3-passthrough.nix; "13.2.0-stage3" = ./versions/13.2.0-stage3.nix; "13.2.0-stage2" = ./versions/13.2.0-stage2.nix; "13.2.0-stage1" = ./versions/13.2.0-stage1.nix; diff --git a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage1.nix b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage1.nix index 596a416..9ba509c 100644 --- a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage1.nix +++ b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage1.nix @@ -5,23 +5,12 @@ let inherit (global) lib packages builders mirrors; inherit (global.internal.packages) foundation; - isBuildBootstrapped = config.platform.build.double == "i686-linux"; - isHostBootstrapped = config.platform.host.double == "i686-linux"; - - isBootstrapped = isBuildBootstrapped && isHostBootstrapped; - version = lib.strings.removeSuffix "-stage1" config.version; prefix = lib.strings.when (config.platform.build.triple != config.platform.target.triple) "${config.platform.target.triple}-"; - arch = - if config.platform.target.double == "x86_64-linux" || config.platform.target.double == "i686-linux" then - "i686-linux" - else - "x86_64-linux"; - patches = [ ../patches/libstdc++-target.patch ]; @@ -186,7 +175,7 @@ in }; hooks = ctx: { - "aux:gcc:env" = lib.dag.entry.between [ "unpack" ] [ "configure" ] '' + "aux:gcc:env" = lib.dag.entry.before [ "unpack" "configure" "build" "install" ] '' export CC='${config.package}/bin/${prefix}gcc' export CXX='${config.package}/bin/${prefix}g++' export CC_FOR_TARGET=$CC @@ -237,7 +226,7 @@ in install = '' # Install - ${lib.strings.when ((lib.systems.withBuildInfo config.platform.host).is64bit) '' + ${lib.strings.when (config.platform.host.is64bit) '' mkdir -p $out/lib ln -s lib $out/lib64 ''} diff --git a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage2.nix b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage2.nix index 53e0092..339c635 100644 --- a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage2.nix +++ b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage2.nix @@ -5,23 +5,12 @@ let inherit (global) lib packages builders mirrors; inherit (global.internal.packages) foundation; - isBuildBootstrapped = config.platform.build.double == "i686-linux"; - isHostBootstrapped = config.platform.host.double == "i686-linux"; - - isBootstrapped = isBuildBootstrapped && isHostBootstrapped; - version = lib.strings.removeSuffix "-stage2" config.version; prefix = lib.strings.when (config.platform.build.triple != config.platform.target.triple) "${config.platform.target.triple}-"; - arch = - if config.platform.target.double == "x86_64-linux" || config.platform.target.double == "i686-linux" then - "i686-linux" - else - "x86_64-linux"; - patches = [ ../patches/libstdc++-target.patch ]; @@ -186,7 +175,7 @@ in target = { target = { - glibc = packages.foundation.glibc.latest; + glibc = packages.foundation.glibc.versions."2.38-stage1"; }; }; }; @@ -198,8 +187,8 @@ in LDFLAGS_FOR_TARGET = "-L$(pwd)/${config.platform.target.triple}/libgcc -L${config.deps.target.target.glibc.package}/lib"; }; - hooks = lib.modules.override 0 (ctx: { - "aux:gcc:env" = lib.dag.entry.between [ "unpack" ] [ "configure" ] '' + hooks = ctx: { + "aux:gcc:env" = lib.dag.entry.before [ "unpack" "configure" "build" "install" ] '' export CC='${config.package}/bin/${prefix}gcc ${builtins.concatStringsSep " " gccFlags}' export CXX='${config.package}/bin/${prefix}g++ ${builtins.concatStringsSep " " gccFlags}' export CC_FOR_TARGET=$CC @@ -209,7 +198,7 @@ in alias gcc='$CC' alias g++='$CXX' ''; - }); + }; phases = { unpack = '' @@ -254,7 +243,7 @@ in install = '' # Install - ${lib.strings.when ((lib.systems.withBuildInfo config.platform.host).is64bit) '' + ${lib.strings.when (config.platform.host.is64bit) '' mkdir -p $out/lib ln -s lib $out/lib64 ''} diff --git a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3-passthrough.nix b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3-passthrough.nix new file mode 100644 index 0000000..885c02e --- /dev/null +++ b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3-passthrough.nix @@ -0,0 +1,36 @@ +# gcc-bootstrap +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gcc.versions."13.2.0-stage3".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU Compiler Collection."; + homepage = "https://gcc.gnu.org"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + + hooks = package.hooks; + }; +} diff --git a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3.nix b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3.nix index b5d330a..6937322 100644 --- a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3.nix +++ b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage3.nix @@ -5,23 +5,12 @@ let inherit (global) lib packages builders mirrors; inherit (global.internal.packages) foundation; - isBuildBootstrapped = config.platform.build.double == "i686-linux"; - isHostBootstrapped = config.platform.host.double == "i686-linux"; - - isBootstrapped = isBuildBootstrapped && isHostBootstrapped; - version = lib.strings.removeSuffix "-stage3" config.version; prefix = lib.strings.when (config.platform.build.triple != config.platform.target.triple) "${config.platform.target.triple}-"; - arch = - if config.platform.target.double == "x86_64-linux" || config.platform.target.double == "i686-linux" then - "i686-linux" - else - "x86_64-linux"; - patches = [ ../patches/libstdc++-target.patch ]; @@ -30,8 +19,8 @@ let "-Wl,-dynamic-linker" "-Wl,${config.deps.host.host.glibc.package}/lib/ld-linux${ lib.strings.when ( - (lib.systems.withBuildInfo config.platform.target).isx86 - && (lib.systems.withBuildInfo config.platform.target).is64bit + config.platform.target.isx86 + && config.platform.target.is64bit ) "-x86-64" }.so.2" "-B${config.deps.host.host.glibc.package}/lib" @@ -187,9 +176,10 @@ in binutils = packages.foundation.binutils.versions."2.41-stage1"; }; }; + host = { host = { - glibc = packages.foundation.glibc.latest; + glibc = packages.foundation.glibc.versions."2.38-stage1"; }; }; }; @@ -200,8 +190,8 @@ in LDFLAGS_FOR_TARGET = "-L$(pwd)/${config.platform.target.triple}/libgcc -L${config.deps.host.host.glibc.package}/lib"; }; - hooks = lib.modules.override 0 (ctx: { - "aux:gcc:env" = lib.dag.entry.between [ "unpack" ] [ "configure" ] '' + hooks = ctx: { + "aux:gcc:env" = lib.dag.entry.before [ "unpack" "configure" "build" "install" ] '' export CC='${config.package}/bin/gcc ${builtins.concatStringsSep " " gccFlags}' export CXX='${config.package}/bin/g++ ${builtins.concatStringsSep " " gccFlags}' export CC_FOR_TARGET=$CC @@ -211,7 +201,7 @@ in alias gcc='$CC' alias g++='$CXX' ''; - }); + }; phases = { unpack = '' @@ -248,7 +238,7 @@ in install = '' # Install - ${lib.strings.when ((lib.systems.withBuildInfo config.platform.host).is64bit) '' + ${lib.strings.when (config.platform.host.is64bit) '' mkdir -p $out/lib ln -s lib $out/lib64 ''} diff --git a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage4.nix b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage4.nix index c0fd2ac..4573553 100644 --- a/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage4.nix +++ b/tidepool/src/packages/foundation/gcc/versions/13.2.0-stage4.nix @@ -5,23 +5,8 @@ let inherit (global) lib packages builders mirrors; inherit (global.internal.packages) foundation; - isBuildBootstrapped = config.platform.build.double == "i686-linux"; - isHostBootstrapped = config.platform.host.double == "i686-linux"; - - isBootstrapped = isBuildBootstrapped && isHostBootstrapped; - version = lib.strings.removeSuffix "-stage4" config.version; - prefix = lib.strings.when - (config.platform.build.triple != config.platform.target.triple) - "${config.platform.target.triple}-"; - - arch = - if config.platform.target.double == "x86_64-linux" || config.platform.target.double == "i686-linux" then - "i686-linux" - else - "x86_64-linux"; - patches = [ ../patches/libstdc++-target.patch ]; @@ -30,8 +15,8 @@ let "-Wl,-dynamic-linker" "-Wl,${config.deps.host.host.glibc.package}/lib/ld-linux${ lib.strings.when ( - (lib.systems.withBuildInfo config.platform.target).isx86 - && (lib.systems.withBuildInfo config.platform.target).is64bit + config.platform.target.isx86 + && config.platform.target.is64bit ) "-x86-64" }.so.2" "-B${config.deps.host.host.glibc.package}/lib" @@ -119,11 +104,6 @@ in { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } ]; - platform = lib.modules.override 1 { - build = arch; - }; - - builder = builders.basic; src = builtins.fetchurl { @@ -166,32 +146,32 @@ in deps = { build = { build = { - bzip2 = packages.foundation.bzip2.versions."1.0.8-bootstrap"; - diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; - findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; - gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; - gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; - gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; - gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; - gnused = packages.foundation.gnused.versions."4.9-bootstrap"; - gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; - gzip = packages.foundation.gzip.versions."1.13-bootstrap"; - xz = packages.foundation.xz.versions."5.4.3-bootstrap"; - binutils = packages.foundation.binutils.versions."2.41"; + bzip2 = packages.foundation.bzip2.versions."1.0.8-stage1-passthrough"; + diffutils = packages.foundation.diffutils.versions."3.10-stage1-passthrough"; + findutils = packages.foundation.findutils.versions."4.9.0-stage1-passthrough"; + gawk = packages.foundation.gawk.versions."5.2.2-stage1-passthrough"; + gnugrep = packages.foundation.gnugrep.versions."3.11-stage1-passthrough"; + gnumake = packages.foundation.gnumake.versions."4.4.1-stage1-passthrough"; + gnupatch = packages.foundation.gnupatch.versions."2.7-stage1-passthrough"; + gnused = packages.foundation.gnused.versions."4.9-stage1-passthrough"; + gnutar = packages.foundation.gnutar.versions."1.35-stage1-passthrough"; + gzip = packages.foundation.gzip.versions."1.13-stage1-passthrough"; + xz = packages.foundation.xz.versions."5.4.3-stage1-passthrough"; + binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough"; }; host = { - gcc = packages.foundation.gcc.versions."13.2.0-stage3"; + gcc = packages.foundation.gcc.versions."13.2.0-stage3-passthrough"; }; target = { - binutils = packages.foundation.binutils.versions."2.41"; + binutils = packages.foundation.binutils.versions."2.41-stage1-passthrough"; }; }; host = { host = { - glibc = packages.foundation.glibc; + glibc = packages.foundation.glibc.versions."2.38-stage1-passthrough"; }; }; }; @@ -205,7 +185,7 @@ in LIBRARY_PATH = "${config.deps.host.host.glibc.package}/lib"; }; - hooks = lib.modules.override 0 (ctx: { + hooks = ctx: { "aux:gcc:env" = lib.dag.entry.between [ "unpack" ] [ "configure" ] '' export CC='${config.package}/bin/gcc ${builtins.concatStringsSep " " gccFlags}' export CXX='${config.package}/bin/g++ ${builtins.concatStringsSep " " gccFlags}' @@ -216,7 +196,7 @@ in alias gcc='$CC' alias g++='$CXX' ''; - }); + }; phases = { unpack = '' @@ -253,7 +233,7 @@ in install = '' # Install - ${lib.strings.when ((lib.systems.withBuildInfo config.platform.host).is64bit) '' + ${lib.strings.when (config.platform.host.is64bit) '' mkdir -p $out/lib ln -s lib $out/lib64 ''} diff --git a/tidepool/src/packages/foundation/glibc/default.nix b/tidepool/src/packages/foundation/glibc/default.nix index 8f9c6be..ea7763d 100644 --- a/tidepool/src/packages/foundation/glibc/default.nix +++ b/tidepool/src/packages/foundation/glibc/default.nix @@ -2,9 +2,11 @@ { config.packages.foundation.glibc = { stable = config.packages.foundation.glibc.versions."2.38-bootstrap"; + latest = config.packages.foundation.glibc.versions."2.38-stage1-passthrough"; versions = { - "2.38" = ./versions/2.38.nix; + "2.38-stage1-passthrough" = ./versions/2.38-stage1-passthrough.nix; + "2.38-stage1" = ./versions/2.38-stage1.nix; "2.38-bootstrap" = ./versions/2.38-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/glibc/versions/2.38-stage1-passthrough.nix b/tidepool/src/packages/foundation/glibc/versions/2.38-stage1-passthrough.nix new file mode 100644 index 0000000..da7fc53 --- /dev/null +++ b/tidepool/src/packages/foundation/glibc/versions/2.38-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.glibc.versions."2.38-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "The GNU C Library."; + homepage = "https://www.gnu.org/software/libc"; + license = lib.licenses.lgpl2Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/glibc/versions/2.38.nix b/tidepool/src/packages/foundation/glibc/versions/2.38-stage1.nix similarity index 75% rename from tidepool/src/packages/foundation/glibc/versions/2.38.nix rename to tidepool/src/packages/foundation/glibc/versions/2.38-stage1.nix index 2189b94..908109b 100644 --- a/tidepool/src/packages/foundation/glibc/versions/2.38.nix +++ b/tidepool/src/packages/foundation/glibc/versions/2.38-stage1.nix @@ -4,14 +4,7 @@ let inherit (global) lib packages builders mirrors; inherit (global.internal.packages) foundation; - isBuildBootstrapped = config.platform.build.double == "i686-linux"; - isHostBootstrapped = config.platform.host.double == "i686-linux"; - - isBootstrapped = isBuildBootstrapped && isHostBootstrapped; - - isCross = - (config.platform.build.triple != config.platform.host.triple) - && (config.platform.host.triple == config.platform.target.triple); + version = lib.strings.removeSuffix "-stage1" config.version; in { config = { @@ -28,7 +21,7 @@ in builder = builders.basic; src = builtins.fetchurl { - url = "${mirrors.gnu}/libc/glibc-${config.version}.tar.xz"; + url = "${mirrors.gnu}/libc/glibc-${version}.tar.xz"; sha256 = "+4KZiZiyspllRnvBtp0VLpwwfSzzAcnq+0VVt3DvP9I="; }; @@ -48,23 +41,19 @@ in xz = packages.foundation.xz.versions."5.4.3-bootstrap"; python = packages.foundation.python.versions."3.12.0-bootstrap"; bison = packages.foundation.bison.versions."3.8.2-bootstrap"; + linux-headers = packages.foundation.linux-headers.versions."6.5.6-bootstrap"; }; host = { gcc = packages.foundation.gcc.versions."13.2.0-stage1"; binutils = packages.foundation.binutils.versions."2.41-stage1"; }; }; - host = { - host = { - linux-headers = packages.foundation.linux-headers; - }; - }; }; phases = { unpack = '' tar xf ${config.src} - cd glibc-${config.version} + cd glibc-${version} ''; configure = '' @@ -75,7 +64,7 @@ in --prefix=$out \ --build=${config.platform.build.triple} \ --host=${config.platform.host.triple} \ - --with-headers=${config.deps.host.host.linux-headers.package}/include \ + --with-headers=${config.deps.build.build.linux-headers.package}/include \ --with-binutils=${config.deps.build.host.binutils.package}/${config.platform.target.triple}/bin ''; @@ -87,7 +76,7 @@ in install = '' # Install make -j $NIX_BUILD_CORES install - ln -sv $(ls -d ${config.deps.host.host.linux-headers.package}/include/* | grep -v scsi\$) $out/include/ + ln -sv $(ls -d ${config.deps.build.build.linux-headers.package}/include/* | grep -v scsi\$) $out/include/ ''; }; }; diff --git a/tidepool/src/packages/foundation/gnugrep/default.nix b/tidepool/src/packages/foundation/gnugrep/default.nix index 3c7d8c5..c48e1c0 100644 --- a/tidepool/src/packages/foundation/gnugrep/default.nix +++ b/tidepool/src/packages/foundation/gnugrep/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gnugrep = { stable = config.packages.foundation.gnugrep.versions."3.11-bootstrap"; + latest = config.packages.foundation.gnugrep.versions."3.11-stage1-passthrough"; versions = { + "3.11-stage1-passthrough" = ./versions/3.11-stage1-passthrough.nix; + "3.11-stage1" = ./versions/3.11-stage1.nix; "3.11-bootstrap" = ./versions/3.11-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1-passthrough.nix b/tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1-passthrough.nix new file mode 100644 index 0000000..235c712 --- /dev/null +++ b/tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnugrep.versions."3.11-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU implementation of the Unix grep command."; + homepage = "https://www.gnu.org/software/grep"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1.nix b/tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1.nix new file mode 100644 index 0000000..eb69c60 --- /dev/null +++ b/tidepool/src/packages/foundation/gnugrep/versions/3.11-stage1.nix @@ -0,0 +1,77 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU implementation of the Unix grep command."; + homepage = "https://www.gnu.org/software/grep"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/grep/grep-${version}.tar.xz"; + sha256 = "HbKu3eidDepCsW2VKPiUyNFdrk4ZC1muzHj1qVEnbqs="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd grep-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + rm $out/bin/{egrep,fgrep} + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnum4/default.nix b/tidepool/src/packages/foundation/gnum4/default.nix index 99c4ee4..37c0db5 100644 --- a/tidepool/src/packages/foundation/gnum4/default.nix +++ b/tidepool/src/packages/foundation/gnum4/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gnum4 = { stable = config.packages.foundation.gnum4.versions."1.4.19-bootstrap"; + latest = config.packages.foundation.gnum4.versions."1.4.19-stage1-passthrough"; versions = { + "1.4.19-stage1-passthrough" = ./versions/1.4.19-stage1-passthrough.nix; + "1.4.19-stage1" = ./versions/1.4.19-stage1.nix; "1.4.19-bootstrap" = ./versions/1.4.19-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1-passthrough.nix b/tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1-passthrough.nix new file mode 100644 index 0000000..77196d5 --- /dev/null +++ b/tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1-passthrough.nix @@ -0,0 +1,35 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnum4.versions."1.4.19-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU M4, a macro processor."; + homepage = "https://www.gnu.org/software/m4"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + + hooks = package.hooks; + }; +} diff --git a/tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1.nix b/tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1.nix new file mode 100644 index 0000000..d6cb5bc --- /dev/null +++ b/tidepool/src/packages/foundation/gnum4/versions/1.4.19-stage1.nix @@ -0,0 +1,77 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU M4, a macro processor."; + homepage = "https://www.gnu.org/software/m4"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/m4/m4-${version}.tar.xz"; + sha256 = "Y67eXG0zttmxNRHNC+LKwEby5w/QoHqpVzoEqCeDr5Y="; + }; + + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd m4-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnumake/default.nix b/tidepool/src/packages/foundation/gnumake/default.nix index 2fc6ce8..f1ab6e2 100644 --- a/tidepool/src/packages/foundation/gnumake/default.nix +++ b/tidepool/src/packages/foundation/gnumake/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gnumake = { stable = config.packages.foundation.gnumake.versions."4.4.1-bootstrap"; + latest = config.packages.foundation.gnumake.versions."4.4.1-stage1-passthrough"; versions = { + "4.4.1-stage1-passthrough" = ./versions/4.4.1-stage1-passthrough.nix; + "4.4.1-stage1" = ./versions/4.4.1-stage1.nix; "4.4.1-bootstrap" = ./versions/4.4.1-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gnumake/patches/4.4.1-0001-No-impure-bin-sh.patch b/tidepool/src/packages/foundation/gnumake/patches/4.4.1-0001-No-impure-bin-sh.patch new file mode 100644 index 0000000..6b013b3 --- /dev/null +++ b/tidepool/src/packages/foundation/gnumake/patches/4.4.1-0001-No-impure-bin-sh.patch @@ -0,0 +1,34 @@ +From e00a5257a6ca5fedbf68b09eee7df3502971a057 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= +Date: Sat, 24 Apr 2021 10:11:40 +0200 +Subject: [PATCH 1/2] No impure bin sh + +default_shell is used to populuate default shell used to execute jobs. +Unless SHELL is set to a different value this would be /bin/sh. +Our stdenv provides sh in form of bash anyway. Having this value not +hard-coded has some advantages: + +- It would ensure that on all systems it uses sh from its PATH rather + than /bin/sh, which helps as different systems might have different + shells there (bash vs. dash) +- In the past I had issues with LD_PRELOAD with BEAR, where /bin/sh + used a different glibc than BEAR which came from my development shell. +--- + src/job.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/job.c b/src/job.c +index ae1f18b..6b4ddb3 100644 +--- a/src/job.c ++++ b/src/job.c +@@ -77,7 +77,7 @@ char * vms_strsignal (int status); + + #else + +-const char *default_shell = "/bin/sh"; ++const char *default_shell = "sh"; + int batch_mode_shell = 0; + + #endif +-- +2.31.1 diff --git a/tidepool/src/packages/foundation/gnumake/patches/4.4.1-0002-remove-impure-dirs.patch b/tidepool/src/packages/foundation/gnumake/patches/4.4.1-0002-remove-impure-dirs.patch new file mode 100644 index 0000000..b5bab54 --- /dev/null +++ b/tidepool/src/packages/foundation/gnumake/patches/4.4.1-0002-remove-impure-dirs.patch @@ -0,0 +1,39 @@ +From 795d63d3c8b5c0dbb7e544954f75507b371b7228 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= +Date: Sat, 24 Apr 2021 10:20:16 +0200 +Subject: [PATCH 2/2] remove impure dirs + +--- + src/read.c | 3 --- + src/remake.c | 2 -- + 2 files changed, 5 deletions(-) + +diff --git a/src/read.c b/src/read.c +index fa197fb..defacfb 100644 +--- a/src/read.c ++++ b/src/read.c +@@ -109,9 +109,6 @@ static const char *default_include_directories[] = + #endif + INCLUDEDIR, + #ifndef _AMIGA +- "/usr/gnu/include", +- "/usr/local/include", +- "/usr/include", + #endif + 0 + }; +diff --git a/src/remake.c b/src/remake.c +index fb237c5..94bff7d 100644 +--- a/src/remake.c ++++ b/src/remake.c +@@ -1601,8 +1601,6 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr) + static const char *dirs[] = + { + #ifndef _AMIGA +- "/lib", +- "/usr/lib", + #endif + #if defined(WINDOWS32) && !defined(LIBDIR) + /* +-- +2.31.1 diff --git a/tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1-passthrough.nix b/tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1-passthrough.nix new file mode 100644 index 0000000..de58d36 --- /dev/null +++ b/tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1-passthrough.nix @@ -0,0 +1,35 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnumake.versions."4.4.1-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "A tool to control the generation of non-source files from sources."; + homepage = "https://www.gnu.org/software/make"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + + hooks = package.hooks; + }; +} diff --git a/tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1.nix b/tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1.nix new file mode 100644 index 0000000..f32ad90 --- /dev/null +++ b/tidepool/src/packages/foundation/gnumake/versions/4.4.1-stage1.nix @@ -0,0 +1,86 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; + + patches = [ + ../patches/4.4.1-0001-No-impure-bin-sh.patch + ../patches/4.4.1-0002-remove-impure-dirs.patch + ]; +in +{ + config = { + meta = { + description = "A tool to control the generation of non-source files from sources."; + homepage = "https://www.gnu.org/software/make"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/make/make-${version}.tar.gz"; + sha256 = "3Rb7HWe/q3mnL16DkHNcSePo5wtJRaFasfgd23hlj7M="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd make-${version} + ''; + + patch = '' + # Patch + ${lib.strings.concatMapSep "\n" (file: "patch -Np1 -i ${file}") patches} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnupatch/default.nix b/tidepool/src/packages/foundation/gnupatch/default.nix index f5204ba..776c094 100644 --- a/tidepool/src/packages/foundation/gnupatch/default.nix +++ b/tidepool/src/packages/foundation/gnupatch/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gnupatch = { stable = config.packages.foundation.gnupatch.versions."2.7-bootstrap"; + latest = config.packages.foundation.gnupatch.versions."2.7-stage1-passthrough"; versions = { + "2.7-stage1-passthrough" = ./versions/2.7-stage1-passthrough.nix; + "2.7-stage1" = ./versions/2.7-stage1.nix; "2.7-bootstrap" = ./versions/2.7-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1-passthrough.nix b/tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1-passthrough.nix new file mode 100644 index 0000000..cb920e1 --- /dev/null +++ b/tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1-passthrough.nix @@ -0,0 +1,35 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnupatch.versions."2.7-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU Patch, a program to apply differences to files."; + homepage = "https://www.gnu.org/software/patch"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + + hooks = package.hooks; + }; +} diff --git a/tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1.nix b/tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1.nix new file mode 100644 index 0000000..43d2b16 --- /dev/null +++ b/tidepool/src/packages/foundation/gnupatch/versions/2.7-stage1.nix @@ -0,0 +1,76 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU Patch, a program to apply differences to files."; + homepage = "https://www.gnu.org/software/patch"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/patch/patch-${version}.tar.xz"; + sha256 = "XCyR/kFUKWISbwvhUKpPo0lIXPLtwMfqfbwky4FxEa4="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd patch-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnused/default.nix b/tidepool/src/packages/foundation/gnused/default.nix index 890f07d..b81a262 100644 --- a/tidepool/src/packages/foundation/gnused/default.nix +++ b/tidepool/src/packages/foundation/gnused/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gnused = { stable = config.packages.foundation.gnused.versions."4.9-bootstrap"; + latest = config.packages.foundation.gnused.versions."4.9-stage1-passthrough"; versions = { + "4.9-stage1-passthrough" = ./versions/4.9-stage1-passthrough.nix; + "4.9-stage1" = ./versions/4.9-stage1.nix; "4.9-bootstrap" = ./versions/4.9-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gnused/versions/4.9-stage1-passthrough.nix b/tidepool/src/packages/foundation/gnused/versions/4.9-stage1-passthrough.nix new file mode 100644 index 0000000..d9cff3f --- /dev/null +++ b/tidepool/src/packages/foundation/gnused/versions/4.9-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnused.versions."4.9-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU sed, a batch stream editor."; + homepage = "https://www.gnu.org/software/sed"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnused/versions/4.9-stage1.nix b/tidepool/src/packages/foundation/gnused/versions/4.9-stage1.nix new file mode 100644 index 0000000..c5cbe80 --- /dev/null +++ b/tidepool/src/packages/foundation/gnused/versions/4.9-stage1.nix @@ -0,0 +1,77 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU sed, a batch stream editor."; + homepage = "https://www.gnu.org/software/sed"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/sed/sed-${version}.tar.xz"; + sha256 = "biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE="; + }; + + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd sed-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnutar/default.nix b/tidepool/src/packages/foundation/gnutar/default.nix index e58e9f3..1549032 100644 --- a/tidepool/src/packages/foundation/gnutar/default.nix +++ b/tidepool/src/packages/foundation/gnutar/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gnutar = { stable = config.packages.foundation.gnutar.versions."1.35-bootstrap"; + latest = config.packages.foundation.gnutar.versions."1.35-stage1-passthrough"; versions = { + "1.35-stage1-passthrough" = ./versions/1.35-stage1-passthrough.nix; + "1.35-stage1" = ./versions/1.35-stage1.nix; "1.35-bootstrap" = ./versions/1.35-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gnutar/versions/1.35-stage1-passthrough.nix b/tidepool/src/packages/foundation/gnutar/versions/1.35-stage1-passthrough.nix new file mode 100644 index 0000000..d3b3b47 --- /dev/null +++ b/tidepool/src/packages/foundation/gnutar/versions/1.35-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gnutar.versions."1.35-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU implementation of the `tar` archiver."; + homepage = "https://www.gnu.org/software/tar"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gnutar/versions/1.35-stage1.nix b/tidepool/src/packages/foundation/gnutar/versions/1.35-stage1.nix new file mode 100644 index 0000000..34cd8af --- /dev/null +++ b/tidepool/src/packages/foundation/gnutar/versions/1.35-stage1.nix @@ -0,0 +1,76 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU implementation of the `tar` archiver."; + homepage = "https://www.gnu.org/software/tar"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/tar/tar-${version}.tar.gz"; + sha256 = "FNVeMgY+qVJuBX+/Nfyr1TN452l4fv95GcN1WwLStX4="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xzf ${config.src} + cd tar-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gzip/default.nix b/tidepool/src/packages/foundation/gzip/default.nix index 29ec074..94bdb81 100644 --- a/tidepool/src/packages/foundation/gzip/default.nix +++ b/tidepool/src/packages/foundation/gzip/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.gzip = { stable = config.packages.foundation.gzip.versions."1.13-bootstrap"; + latest = config.packages.foundation.gzip.versions."1.13-stage1-passthrough"; versions = { + "1.13-stage1-passthrough" = ./versions/1.13-stage1-passthrough.nix; + "1.13-stage1" = ./versions/1.13-stage1.nix; "1.13-bootstrap" = ./versions/1.13-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/gzip/versions/1.13-stage1-passthrough.nix b/tidepool/src/packages/foundation/gzip/versions/1.13-stage1-passthrough.nix new file mode 100644 index 0000000..55d59d2 --- /dev/null +++ b/tidepool/src/packages/foundation/gzip/versions/1.13-stage1-passthrough.nix @@ -0,0 +1,33 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.gzip.versions."1.13-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "GNU zip compression program."; + homepage = "https://www.gnu.org/software/gzip"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/gzip/versions/1.13-stage1.nix b/tidepool/src/packages/foundation/gzip/versions/1.13-stage1.nix new file mode 100644 index 0000000..a4b7b49 --- /dev/null +++ b/tidepool/src/packages/foundation/gzip/versions/1.13-stage1.nix @@ -0,0 +1,76 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "GNU zip compression program."; + homepage = "https://www.gnu.org/software/gzip"; + license = lib.licenses.gpl3Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/gzip/gzip-${version}.tar.xz"; + sha256 = "dFTraTXbF8ZlVXbC4bD6vv04tNCTbg+H9IzQYs6RoFc="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xf ${config.src} + cd gzip-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES bin_SCRIPTS= + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES bin_SCRIPTS= install + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/linux-headers/default.nix b/tidepool/src/packages/foundation/linux-headers/default.nix index 8e96bd8..0c8d80f 100644 --- a/tidepool/src/packages/foundation/linux-headers/default.nix +++ b/tidepool/src/packages/foundation/linux-headers/default.nix @@ -2,9 +2,11 @@ { config.packages.foundation.linux-headers = { stable = config.packages.foundation.linux-headers.versions."6.5.6-bootstrap"; + latest = config.packages.foundation.linux-headers.versions."6.5.6-stage1-passthrough"; versions = { - "6.5.6" = ./versions/6.5.6.nix; + "6.5.6-stage1-passthrough" = ./versions/6.5.6-stage1-passthrough.nix; + "6.5.6-stage1" = ./versions/6.5.6-stage1.nix; "6.5.6-bootstrap" = ./versions/6.5.6-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1-passthrough.nix b/tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1-passthrough.nix new file mode 100644 index 0000000..10acc21 --- /dev/null +++ b/tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1-passthrough.nix @@ -0,0 +1,32 @@ +{ config, global }: + +let + inherit (global) lib packages builders; + inherit (global.internal.packages) foundation; + + package = packages.foundation.linux-headers.versions."6.5.6-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "Header files and scripts for the Linux kernel."; + license = lib.licenses.lgpl2Plus; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + }; +} diff --git a/tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1.nix b/tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1.nix new file mode 100644 index 0000000..a59fff6 --- /dev/null +++ b/tidepool/src/packages/foundation/linux-headers/versions/6.5.6-stage1.nix @@ -0,0 +1,70 @@ +{ config, global }: + +let + inherit (global) lib packages builders; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "Header files and scripts for the Linux kernel."; + license = lib.licenses.lgpl2Plus; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "https://cdn.kernel.org/pub/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz"; + sha256 = "eONtQhRUcFHCTfIUD0zglCjWxRWtmnGziyjoCUqV0vY="; + }; + + deps = { + build = { + build = { + diffutils = packages.foundation.diffutils.versions."3.10-bootstrap"; + findutils = packages.foundation.findutils.versions."4.9.0-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnupatch = packages.foundation.gnupatch.versions."2.7-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + tar xf ${config.src} + cd linux-${version} + ''; + + build = '' + make -j $NIX_BUILD_CORES V=1 \ + "CC=$CC" \ + "HOSTCC=$CC" \ + ARCH=${config.platform.host.linux.arch} \ + headers + ''; + + install = '' + find usr/include -name '.*' -exec rm {} + + mkdir -p $out + cp -rv usr/include $out/ + ''; + }; + }; +} diff --git a/tidepool/src/packages/foundation/linux-headers/versions/6.5.6.nix b/tidepool/src/packages/foundation/linux-headers/versions/6.5.6.nix deleted file mode 100644 index 018b8ca..0000000 --- a/tidepool/src/packages/foundation/linux-headers/versions/6.5.6.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ config, global }: - -let - inherit (global) lib packages builders; - inherit (global.internal.packages) foundation; -in -{ - config = { - meta = { - description = "Header files and scripts for the Linux kernel."; - license = lib.licenses.lgpl2Plus; - }; - - platforms = [ - { build = "i686-linux"; host = "i686-linux"; target = "i686-linux"; } - { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } - # { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } - ]; - - builder = builders.basic; - - src = builtins.fetchurl { - url = "https://cdn.kernel.org/pub/linux/kernel/v${lib.versions.major config.version}.x/linux-${config.version}.tar.xz"; - sha256 = "eONtQhRUcFHCTfIUD0zglCjWxRWtmnGziyjoCUqV0vY="; - }; - - env = { - PATH = lib.paths.bin [ - foundation.stage2-gcc - foundation.stage1-musl - foundation.stage2-binutils - foundation.stage2-gnumake - foundation.stage2-gnupatch - foundation.stage2-gnused - foundation.stage2-gnugrep - foundation.stage2-gawk - foundation.stage2-diffutils - foundation.stage2-findutils - foundation.stage2-gnutar - foundation.stage1-xz - ]; - }; - - phases = { - unpack = '' - tar xf ${config.src} - cd linux-${config.version} - ''; - - build = '' - make -j $NIX_BUILD_CORES CC=musl-gcc HOSTCC=musl-gcc ARCH=${config.platform.target.linux.arch} headers - ''; - - install = '' - find usr/include -name '.*' -exec rm {} + - mkdir -p $out - cp -rv usr/include $out/ - ''; - }; - }; -} diff --git a/tidepool/src/packages/foundation/xz/default.nix b/tidepool/src/packages/foundation/xz/default.nix index 8eb7646..4fb3aaf 100644 --- a/tidepool/src/packages/foundation/xz/default.nix +++ b/tidepool/src/packages/foundation/xz/default.nix @@ -2,8 +2,11 @@ { config.packages.foundation.xz = { stable = config.packages.foundation.xz.versions."5.4.3-bootstrap"; + latest = config.packages.foundation.xz.versions."5.4.3-stage1-passthrough"; versions = { + "5.4.3-stage1-passthrough" = ./versions/5.4.3-stage1-passthrough.nix; + "5.4.3-stage1" = ./versions/5.4.3-stage1.nix; "5.4.3-bootstrap" = ./versions/5.4.3-bootstrap.nix; }; }; diff --git a/tidepool/src/packages/foundation/xz/versions/5.4.3-stage1-passthrough.nix b/tidepool/src/packages/foundation/xz/versions/5.4.3-stage1-passthrough.nix new file mode 100644 index 0000000..f6febe9 --- /dev/null +++ b/tidepool/src/packages/foundation/xz/versions/5.4.3-stage1-passthrough.nix @@ -0,0 +1,38 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + package = packages.foundation.xz.versions."5.4.3-stage1".extend { + platform = { + build = lib.modules.overrides.force "i686-linux"; + host = lib.modules.overrides.force config.platform.host; + target = lib.modules.overrides.force config.platform.target; + }; + }; +in +{ + config = { + meta = { + description = "A general-purpose data compression software, successor of LZMA."; + homepage = "https://tukaani.org/xz"; + license = [ + lib.licences.gpl2Plus + lib.licenses.lgpl21Plus + ]; + }; + + platforms = [ + { build = "x86_64-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.passthrough // { + settings = { + derivation = package.package; + }; + }; + + hooks = package.hooks; + }; +} diff --git a/tidepool/src/packages/foundation/xz/versions/5.4.3-stage1.nix b/tidepool/src/packages/foundation/xz/versions/5.4.3-stage1.nix new file mode 100644 index 0000000..0ea1456 --- /dev/null +++ b/tidepool/src/packages/foundation/xz/versions/5.4.3-stage1.nix @@ -0,0 +1,76 @@ +{ config, global }: + +let + inherit (global) lib packages builders mirrors; + inherit (global.internal.packages) foundation; + + version = lib.strings.removeSuffix "-stage1" config.version; +in +{ + config = { + meta = { + description = "A general-purpose data compression software, successor of LZMA."; + homepage = "https://tukaani.org/xz"; + license = [ + lib.licences.gpl2Plus + lib.licenses.lgpl21Plus + ]; + }; + + platforms = [ + { build = "i686-linux"; host = "x86_64-linux"; target = "x86_64-linux"; } + ]; + + builder = builders.basic; + + src = builtins.fetchurl { + url = "https://tukaani.org/xz/xz-${version}.tar.gz"; + sha256 = "HDguC8Lk4K9YOYqQPdYv/35RAXHS3keh6+BtFSjpt+k="; + }; + + deps = { + build = { + build = { + gnumake = packages.foundation.gnumake.versions."4.4.1-bootstrap"; + gnused = packages.foundation.gnused.versions."4.9-bootstrap"; + gawk = packages.foundation.gawk.versions."5.2.2-bootstrap"; + gnutar = packages.foundation.gnutar.versions."1.35-bootstrap"; + gnugrep = packages.foundation.gnugrep.versions."3.11-bootstrap"; + gzip = packages.foundation.gzip.versions."1.13-bootstrap"; + xz = packages.foundation.xz.versions."5.4.3-bootstrap"; + }; + + host = { + binutils = packages.foundation.binutils.versions."2.41-stage1"; + gcc = packages.foundation.gcc.versions."13.2.0-stage2"; + }; + }; + }; + + phases = { + unpack = '' + # Unpack + tar xzf ${config.src} + cd xz-${version} + ''; + + configure = '' + # Configure + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; + }; +}