Building ancient nixpkgs

From NixOS Wiki
Jump to: navigation, search

Nix's reproducibility allows for easy building of ancient nixpkgs checkouts.

An attempt to get firefox 2.0 running can be found here: https://github.com/ckiee/nixpkgs/commits/2007-fixing

Replacing outdated nix.cs.uu.nl

You may find that the build fails as it cannot find some tarballs. This is solved by updating the primary mirror URL to one that is still running:

for x in $(find); do sed -i 's/nix.cs.uu.nl/tarballs.nixos.org/g' "$x"; done
for x in $(find); do sed -i 's/dist\/tarballs\///g' "$x"; done

You will also want to run nix-build with the --no-substitute flag to avoid any outdated caches.

Replacing outdated package sources

nix-build may fail while trying to fetch a package from a 3rd-party mirror. If this happens, you will need to search the internet for another mirror from which you can fetch the package; for certain nixpkgs versions you will need to ensure it does not force-redirect to SSL as curl was not built with SSL support in early versions.

You can manually add a tarball to the store by using nix-prefetch-url. You have to use the same checksum algorithm used in the nixpkgs definition with the --type parameter.