Skip to content

minimal-bootstrap: add static packages#459002

Merged
jopejoe1 merged 21 commits intoNixOS:masterfrom
pyrox0:minimal-bootstrap-next
Jan 12, 2026
Merged

minimal-bootstrap: add static packages#459002
jopejoe1 merged 21 commits intoNixOS:masterfrom
pyrox0:minimal-bootstrap-next

Conversation

@pyrox0
Copy link
Member

@pyrox0 pyrox0 commented Nov 6, 2025

This is part 2 of the work started with #448701(and has all the commits from it, so should not be merged before it). This takes @emilytrau 's work from #260193, updating it to nixpkgs' current formatting standards, and updates a few of the packages. I consider this the minimal viable package set to create a bootstrapTools replacement now(currently {i686,x86_64}-linux-musl only), however considering the complexity of nixpkgs' stdenv, that's something I haven't looked into at this point. Assistance with making a gcc that targets glibc, as well as with getting this integrated into stdenv proper, would be very much appreciated. Building a gcc built against glibc is done in #471642

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. labels Nov 6, 2025
@pyrox0 pyrox0 force-pushed the minimal-bootstrap-next branch from 2566a9f to 58ea856 Compare November 27, 2025 19:24
@nixpkgs-ci nixpkgs-ci bot added 2.status: merge conflict This PR has merge conflicts with the target branch 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. labels Dec 11, 2025
@pyrox0 pyrox0 force-pushed the minimal-bootstrap-next branch 2 times, most recently from 0f6bc74 to 14b2be8 Compare December 15, 2025 22:00
@nixpkgs-ci nixpkgs-ci bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Dec 15, 2025
@pyrox0 pyrox0 force-pushed the minimal-bootstrap-next branch from 14b2be8 to cbb8ef3 Compare December 15, 2025 22:04
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. and removed 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. labels Dec 15, 2025
Copy link
Contributor

@Gskartwii Gskartwii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! I was able to build this on i686-linux, and also on x86_64-linux after dealing with the above two points.

@pyrox0 pyrox0 force-pushed the minimal-bootstrap-next branch from cbb8ef3 to 004eddf Compare December 16, 2025 20:03
@pyrox0
Copy link
Member Author

pyrox0 commented Dec 16, 2025

Tested both fixes mentioned above, they work perfectly. Thanks!

Copy link
Contributor

@Gskartwii Gskartwii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logic looks good to me and all 😁 I was able to build everything on x86_64-linux and i686-linux.

Only nit is that we may want to change the indentation in a couple of places.

@pyrox0 pyrox0 force-pushed the minimal-bootstrap-next branch from 004eddf to f2d7930 Compare December 17, 2025 17:41
@pyrox0 pyrox0 marked this pull request as ready for review December 25, 2025 16:59
@Ericson2314
Copy link
Member

No more impure bootstrap is a Christmas/New Years present I'm very excited for, thank you both!

Copy link
Contributor

@Gskartwii Gskartwii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks so much!

@nixpkgs-ci nixpkgs-ci bot added 12.approvals: 1 This PR was reviewed and approved by one person. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages. labels Jan 1, 2026
@philiptaron
Copy link
Contributor

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 459002 --package minimal-bootstrap
Commit: f2d79303957db2f5fe9262913a9b69b436ba25f2


x86_64-linux

✅ 129 packages built:
  • minimal-bootstrap.bash
  • minimal-bootstrap.bash-static
  • minimal-bootstrap.bash_2_05
  • minimal-bootstrap.binutils
  • minimal-bootstrap.binutils-static
  • minimal-bootstrap.bison
  • minimal-bootstrap.busybox-static
  • minimal-bootstrap.bzip2
  • minimal-bootstrap.bzip2-static
  • minimal-bootstrap.coreutils
  • minimal-bootstrap.coreutils-musl
  • minimal-bootstrap.coreutils-static
  • minimal-bootstrap.diffutils
  • minimal-bootstrap.diffutils-static
  • minimal-bootstrap.findutils
  • minimal-bootstrap.findutils-static
  • minimal-bootstrap.gawk
  • minimal-bootstrap.gawk-mes
  • minimal-bootstrap.gawk-static
  • minimal-bootstrap.gcc-latest
  • minimal-bootstrap.gcc46
  • minimal-bootstrap.gcc46-cxx
  • minimal-bootstrap.gcc8
  • minimal-bootstrap.glibc
  • minimal-bootstrap.gnugrep
  • minimal-bootstrap.gnugrep-static
  • minimal-bootstrap.gnum4
  • minimal-bootstrap.gnumake
  • minimal-bootstrap.gnumake-musl
  • minimal-bootstrap.gnumake-static
  • minimal-bootstrap.gnupatch
  • minimal-bootstrap.gnupatch-static
  • minimal-bootstrap.gnused
  • minimal-bootstrap.gnused-mes
  • minimal-bootstrap.gnused-static
  • minimal-bootstrap.gnutar
  • minimal-bootstrap.gnutar-latest
  • minimal-bootstrap.gnutar-musl
  • minimal-bootstrap.gnutar-static
  • minimal-bootstrap.gzip
  • minimal-bootstrap.gzip-static
  • minimal-bootstrap.heirloom
  • minimal-bootstrap.heirloom-devtools
  • minimal-bootstrap.kaem
  • minimal-bootstrap.linux-headers
  • minimal-bootstrap.ln-boot
  • minimal-bootstrap.mes-libc
  • minimal-bootstrap.mes.compiler
  • minimal-bootstrap.mes.libs
  • minimal-bootstrap.mes.nyacc
  • minimal-bootstrap.mes.src
  • minimal-bootstrap.mes.srcPost
  • minimal-bootstrap.mes.srcPost.bin (minimal-bootstrap.mes.srcPost.bin.bin)
  • minimal-bootstrap.mescc-tools
  • minimal-bootstrap.mescc-tools-extra
  • minimal-bootstrap.musl
  • minimal-bootstrap.musl11
  • minimal-bootstrap.musl11-intermediate
  • minimal-bootstrap.patchelf-static
  • minimal-bootstrap.python
  • minimal-bootstrap.stage0-posix.M1
  • minimal-bootstrap.stage0-posix.M2
  • minimal-bootstrap.stage0-posix.blood-elf-0
  • minimal-bootstrap.stage0-posix.hex0
  • minimal-bootstrap.stage0-posix.hex0-seed
  • minimal-bootstrap.stage0-posix.hex2
  • minimal-bootstrap.stage0-posix.kaem-minimal
  • minimal-bootstrap.stage0-posix.kaem-unwrapped
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M0
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-0
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-0-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-0-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-0-footer_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-1-footer_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-1_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M1-macro-1_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M2-0-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M2-0-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M2-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M2-0_c
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.M2-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.blood-elf-0-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.blood-elf-0-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.blood-elf-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.blood-elf-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.catm
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.cc_arch
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.cc_arch-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.cc_arch-1_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2-0
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2-1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-0-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-0-footer_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-0_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-0_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-2-footer_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-2_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.hex2_linker-2_hex2
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.kaem-footer_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.kaem_M1
  • minimal-bootstrap.stage0-posix.mescc-tools-boot.kaem_hex2
  • minimal-bootstrap.stage0-posix.src
  • minimal-bootstrap.test
  • minimal-bootstrap.tinycc-mes.compiler
  • minimal-bootstrap.tinycc-mes.libs
  • minimal-bootstrap.tinycc-mes.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.libs
  • minimal-bootstrap.tinycc-mes.prev.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.prev.libs
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.libs
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.libs
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.prev.libs
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.prev.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.prev.prev.libs
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.prev.prev.prev.compiler
  • minimal-bootstrap.tinycc-mes.prev.prev.prev.prev.prev.prev.prev.libs
  • minimal-bootstrap.tinycc-musl-intermediate.compiler
  • minimal-bootstrap.tinycc-musl-intermediate.libs
  • minimal-bootstrap.tinycc-musl.compiler
  • minimal-bootstrap.tinycc-musl.libs
  • minimal-bootstrap.xz
  • minimal-bootstrap.zlib

Copy link
Contributor

@philiptaron philiptaron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

Let's merge this!

pname = "linux-headers";
version = "4.14.67";
version = "6.5.6";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious: why this version specifically?

@nixpkgs-ci nixpkgs-ci bot added 12.approvals: 2 This PR was reviewed and approved by two persons. and removed 12.approvals: 1 This PR was reviewed and approved by one person. labels Jan 6, 2026
Copy link
Member

@jopejoe1 jopejoe1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me and I don't see anything bloking this so will merge this now!

@jopejoe1 jopejoe1 added this pull request to the merge queue Jan 12, 2026
Merged via the queue into NixOS:master with commit 7ec2930 Jan 12, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 12.approvals: 2 This PR was reviewed and approved by two persons. 12.approved-by: package-maintainer This PR was reviewed and approved by a maintainer listed in any of the changed packages.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants