Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate plain HTTP dependency (include everything needed for HTTPS in srcfs) #345

Open
Googulator opened this issue Dec 14, 2023 · 1 comment

Comments

@Googulator
Copy link
Collaborator

Plain HTTP is a dangerous dependency for sustainability. Plain HTTP download sources are expected to become increasingly rare as sites switch to redirecting to their HTTPS versions.

For this reason, it's advisable to switch to including prerequisites for HTTPS downloads in srcfs.

Unfortunately, this will increase srcfs size, which I would like to see reduced to no more than 256MiB, to facilitate building "trusted flash drives". For this reason, various strategies will be needed to reduce the overhead, e.g.:

  • For ca-certificates, we download Mozilla's nss library. This is a massive, almost 70MB tarball - all for a single file. We could just ship that file in live-bootstrap itself, or download it from some other source (e.g. Mozilla's Hg or Git repository - if we predownload, there's no need for it to be plain HTTP).
  • gmp, autoconf-archive, mpfr, mpc and libarchive are currently built before openssl, but they don't appear to be prerequisites - they should just be delayed until after HTTPS is available.
  • building both bison-3.4.1 and bison-3.4.2 seems redundant - why not just build the same version once with a custom makefile, and than again with its proper build system? Hopefully this redundancy can be eliminated.
  • The number of different gnulib snapshots downloaded seems excessive.
@MaxHearnden
Copy link
Contributor

Given that all downloaded files are currently checked using a hash, the CA bundle could be omitted. This would get the sustainability/compatibility of HTTPS, keeping the authenticity from the hash. Although this would compromise privacy compared to a CA bundle.

This is the approach currently taken by nixpkgs/NixOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants