Hello Guix! I had it on my to-do list and Andy said he’d like to have something like that to publish Guile 2.2 binaries: the ‘guix pack’ command below is a generalization of the code that builds the Guix binary tarball¹. It creates a bundle of the closure of the given packages, with a profile containing all the packages. Examples: --8<---------------cut here---------------start------------->8--- $ ./pre-inst-env guix pack guile-next /gnu/store/c2brwnrx0066lvf1d9hg82lvb1wkmd78-tarball.tar.lz $ ./pre-inst-env guix pack guile-next guix /gnu/store/kc6bxqwrf9z2vvxwndhw8s39s39h5mz6-tarball.tar.lz $ tar tvf /gnu/store/kc6bxqwrf9z2vvxwndhw8s39s39h5mz6-tarball.tar.lz|grep /bin/gui[lx] -r-xr-xr-x root/root 2974 1970-01-01 01:00 ./gnu/store/060piiiz4nmb51jc3wk01bgikajrnfjd-guile-2.0.13/bin/guild -r-xr-xr-x root/root 13472 1970-01-01 01:00 ./gnu/store/060piiiz4nmb51jc3wk01bgikajrnfjd-guile-2.0.13/bin/guile -r-xr-xr-x root/root 7008 1970-01-01 01:00 ./gnu/store/060piiiz4nmb51jc3wk01bgikajrnfjd-guile-2.0.13/bin/guile-config -r-xr-xr-x root/root 3050 1970-01-01 01:00 ./gnu/store/060piiiz4nmb51jc3wk01bgikajrnfjd-guile-2.0.13/bin/guile-snarf lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/060piiiz4nmb51jc3wk01bgikajrnfjd-guile-2.0.13/bin/guile-tools -> guild -r-xr-xr-x root/root 2978 1970-01-01 01:00 ./gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guild -r-xr-xr-x root/root 12784 1970-01-01 01:00 ./gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile -r-xr-xr-x root/root 7022 1970-01-01 01:00 ./gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile-config -r-xr-xr-x root/root 3072 1970-01-01 01:00 ./gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile-snarf lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile-tools -> guild -r-xr-xr-x root/root 744 1970-01-01 01:00 ./gnu/store/6xlybn33znrp4nyvy39wbrwjrl8l9qnd-guix-0.12.0-5.1162/bin/guix -r-xr-xr-x root/root 933120 1970-01-01 01:00 ./gnu/store/6xlybn33znrp4nyvy39wbrwjrl8l9qnd-guix-0.12.0-5.1162/bin/guix-daemon lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guild -> /gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guild lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guile -> /gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guile-config -> /gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile-config lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guile-snarf -> /gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile-snarf lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guile-tools -> /gnu/store/62hqgi4cac0f70v1ycsvv985fl3l1hzr-guile-next-2.1.7/bin/guile-tools lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guix -> /gnu/store/6xlybn33znrp4nyvy39wbrwjrl8l9qnd-guix-0.12.0-5.1162/bin/guix lrwxrwxrwx root/root 0 1970-01-01 01:00 ./gnu/store/ynafk7v924xil993dqbx4mxxnm9ifsi6-profile/bin/guix-daemon -> /gnu/store/6xlybn33znrp4nyvy39wbrwjrl8l9qnd-guix-0.12.0-5.1162/bin/guix-daemon --8<---------------cut here---------------end--------------->8--- Andy, does this correspond to what you have in mind? I’d like to move support for Docker (currently in ‘guix archive’) to this new command because I think it’s more appropriate: ‘guix archive’ is supposed to be rather low-level so it would not create a profile, for instance. Ricardo, WDYT? If there are no objections, I’d like to commit it soonish. Thanks! Ludo’. ¹ https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/install.scm#n52