3
0
Fork
You've already forked guix-past
0
GNU Guix channel providing packages from the past.
  • Scheme 100%
Find a file
Nicolas Graves be7997692e
past: python2-numpy-1.8: Fix package.
* modules/past/packages/python27.scm (python2-numpy-1.8)[arguments]
<#:python>: Replace python-2 by python-2+libxcrypt.
Signed-off-by: Ludovic Courtès <ludovic.courtes@inria.fr>
Merges: #32 
2026年01月19日 10:13:51 +01:00
modules/past past: python2-numpy-1.8: Fix package. 2026年01月19日 10:13:51 +01:00
.gitignore Initial commit. 2020年03月30日 14:49:07 +02:00
.gitlab-ci.yml .gitlab-ci: Use the latest 'guix lint'. 2020年07月03日 23:56:18 +02:00
.guix-authorizations .guix-authorizations: Remove Jakub due to inactivity. 2025年08月19日 11:21:28 +02:00
.guix-channel Change repository URL to codeberg.org. 2024年10月22日 17:28:11 +02:00
.mailmap mailmap: Update entries for Bonface Munyoki 2020年07月27日 10:01:23 +03:00
CODEOWNERS CODEOWNERS: Fix case of team names. 2024年12月17日 17:14:24 +01:00
COPYING Initial commit. 2020年03月30日 14:49:07 +02:00
NEWS Add news entry for the migration. 2024年10月22日 17:33:54 +02:00
README.md README.md: Update the "Contributing" section. 2024年10月22日 18:34:17 +02:00

Guix-Past: Bringing software from the past to the present

pipeline status SWH

So you want to reproduce the software environment that you used ten years ago, say, as the basis of the conclusions of a scientific paper?

You would happily run guix time-machine. Alas, GNU Guix didn’t exist in 2010.

Worry no more! The Guix-Past channel brings old software to today’s world. It gives you packages from "back then" that you can deploy here and now.

Getting Started

To use it, adjust ~/.config/guix/channels.scm so that it reads something along these lines:

(cons (channel
 (name 'guix-past)
 (url "https://codeberg.org/guix-science/guix-past")
 ;; The following lines allow 'guix pull' to authenticate
 ;; this channel. It requires a recent Guix (July 2020)
 ;; and can be omitted with older versions.
 (introduction
 (make-channel-introduction
 "0c119db2ea86a389769f4d2b9c6f5c41c027e336"
 (openpgp-fingerprint
 "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5"))))
 %default-channels)

... and run guix pull—see the Guix manual for more information on channels.

Read the "Hacking" section for information on how to grow this channel!

Pre-Built Binaries

Pre-built binaries for Guix Past packages are served from https://guix.bordeaux.inria.fr. To benefit from them, you must:

  1. Add https://guix.bordeaux.inria.fr to the --substitute-urls option of guix-daemon or that of client tools. To enable it globally, do:

    $EDITOR /etc/systemd/system/guix-daemon.service
     ... add ‘--substitute-urls='https://ci.guix.gnu.org https://guix.bordeaux.inria.fr'’
     to the ‘guix-daemon’ command line.
    systemctl daemon-reload
    systemctl restart guix-daemon.service
    
  2. Authorize the key used to sign substitutes:

    (public-key
     (ecc
     (curve Ed25519)
     (q #89FBA276A976A8DE2A69774771A92C8C879E0F24614AAAAE23119608707B3F06#)))
    

    Typically, assuming the key above is stored in key.txt, run as root:

    guix archive --authorize < key.txt
    

Hacking

This channel provides exclusively free software in accordance with the FSDG.

The module hierarchy mirrors that of upstream Guix. For example, the (past packages autotools) module contains old versions of packages found in (gnu packages autotools).

To loosen coupling with Guix modules, it is sometimes a good idea to resort to specification->package instead of relying on modules and variable names, which are subject to change.

It makes most sense to add software dating back to before 2019, around the time where time travel became possible.

If you’re a committer, please do this:

cat > .git/hooks/pre-push <<EOF
#!/bin/sh
exec guix git authenticate 0c119db2ea86a389769f4d2b9c6f5c41c027e336 "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5"
EOF
chmod +x .git/hooks/pre-push

This will check whether your commits are signed by a key listed in .guix-authorizations before pushing.

That’s it! Now you’re welcome to contribute your bits!

Contributing

You can contribute in several ways:

  1. by opening a pull request to get your changes merged;
  2. by emailing patches to guix-patches@gnu.org with "Guix-Past" in the subject;
  3. by opening an issue to report problems.

Meta-History

This channel saw the light as part of the ReScience C Ten Years Reproducibility Challenge.