Subject: Multiple output packages causes noop profile generations

From: Marius Bakke <[email-masked]>
Date: Fri, 02 Dec 2016 18:43:54 +0100

Sorry for the non-descriptive title. It appears that having non-default
outputs in the profile always causes a new profile generation even if
the package derivations themselves don't change. Here is an example:

$ guix package -u
The following packages will be upgraded:
   bind:utils   9.10.4-P4 → 9.10.4-P4   /gnu/store/ypv8jppwn3dvhnkrmibw3p2h35cm30ij-bind-9.10.4-P4-utils
   git:send-email       2.11.0 → 2.11.0 /gnu/store/xnm8msrlh4ac9bxzvf9pgai8xnjjkvwj-git-2.11.0-send-email
   transmission:gui     2.92 → 2.92     /gnu/store/x2q22mfakkkf7nr68nfsxcvci4psz0vi-transmission-2.92-gui

substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/ws9msik5wm3qqzmi6j0ff5qhf8bzhr20-profile.drv
   /gnu/store/zlxic4wlk32zl2w1mrjx4n8qn0kabsg8-fonts-dir.drv
   /gnu/store/scap2hk64ly2g1jh00xzxg36w8bp7mih-xdg-mime-database.drv
   /gnu/store/n5vb0ysg3b3kx62dlszppnz9cp9xc9gr-info-dir.drv
   /gnu/store/laqlnv1dgf7dsj1kyznbqq7vj306p3xg-gtk-im-modules.drv
   /gnu/store/d5dr00lcv7f290x59mpbbwxfz6pl75hq-gtk-icon-themes.drv
   /gnu/store/60r69w2jfq3pwaijwh3qrpwvzfbhg70p-ca-certificate-bundle.drv
49 packages in profile

Those packages already were at the latest versions and a new empty
generation is created. Running the same command again:

$ guix package -u
The following packages will be upgraded:
   transmission:gui     2.92 → 2.92     /gnu/store/x2q22mfakkkf7nr68nfsxcvci4psz0vi-transmission-2.92-gui
   git:send-email       2.11.0 → 2.11.0 /gnu/store/xnm8msrlh4ac9bxzvf9pgai8xnjjkvwj-git-2.11.0-send-email
   bind:utils   9.10.4-P4 → 9.10.4-P4   /gnu/store/ypv8jppwn3dvhnkrmibw3p2h35cm30ij-bind-9.10.4-P4-utils

substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/l0cn4ywl69g05am2qv582l5hxpqa2y2g-profile.drv
   /gnu/store/qr24xwmp9prqy1yyyp3yha61a7pf2hhw-ca-certificate-bundle.drv
   /gnu/store/kg0xd3rjjclgiin1dk772svhinzad220-info-dir.drv
   /gnu/store/hh2477qjgg9kl77c6arnrlrlmkw7nyhb-gtk-im-modules.drv
   /gnu/store/fwjbhn15g7s56rcpk5afj8a6w4p15wv2-gtk-icon-themes.drv
   /gnu/store/6ibbk1jags9249lvjpcrlzljvjjzzkvq-fonts-dir.drv
   /gnu/store/61260hfwwx7wjz140sp280qzmjwxlcfw-xdg-mime-database.drv
49 packages in profile

Output of "guix package --list-generations":

[...lots of generations...]

Generation 71   Dec 02 2016 17:37:47

Generation 72   Dec 02 2016 17:46:21    (current)

Diffing the profile derivations only shows changes to
ca-certificate-bundle.drv, gtk-icon-themes.drv, fonts-dir.drv,
gtk-im-modules.drv, info-dir.drv, xdg-mime-database.drv, the profiles
themselves, and the profile-builder. Although the order is different.