* 'guix install' downloads all outputs for packages with cmake build system. @ 2024-10-09 13:55 nigko 2024-12-10 14:49 ` Simon Tournier 0 siblings, 1 reply; 6+ messages in thread From: nigko @ 2024-10-09 13:55 UTC (permalink / raw) To: help-guix Hello Guix! I have found that a command 'guix install <package>' with a package having (1) cmake build system (2) (length outputs) > 1 would download all outputs of the package from a substitute server, not just "out" output as it should. For example, a package 'x265', which has 'static' and 'out' outputs and cmake build system gives: ------------------------------------------------------------------------ # don't forget to insure that /gnu/store does not already contain # x265's static output before running this command: $ guix install x265 The following package will be installed: x265 3.5 ... 2,8 MB will be downloaded x265-3.5-static 1.3MiB x265-3.5 1.4MiB ... ------------------------------------------------------------------------ There are 84 packages in the main guix repository satisfying (1) and (2) criteria . Here is the full list of their names for you to try: apache-arrow argagg arx-libertatis bctoolbox bcunit belcard belle-sip belr ceph cmake dealii dealii-openmpi dhtnet dino discregrid fcitx fcitx5-chinese-addons fcitx5-gtk gdcm gemmi gnucash grpc insight-toolkit java-antlr4-runtime-cpp libavif libdecaf libftdi libgit2 liblinphone libssh lime llvm llvm-for-mesa llvm-for-rocm mariadb mediastreamer2 mmg mympd openscenegraph ortp protobuf pt-scotch pt-scotch-shared pt-scotch32 qtbase qtdeclarative scotch scotch-shared scotch32 sortmerna supercollider tidy tidy-html transmission webkitgtk webkitgtk-for-gtk3 webkitgtk-with-libsoup2 weechat woff2 wpewebkit x265 An interesting bit about this abnormal behavior was gained from the discusstion on IRC. It turns out that the command 'guix install --no-grafts <package>' with --no-grafts flag does not download all the outputs of the package but only the "out" output, as one would expect from 'guix install' command. So the issue seems to be related to grafts. What do you think? Regards, Nigko ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'guix install' downloads all outputs for packages with cmake build system. 2024-10-09 13:55 'guix install' downloads all outputs for packages with cmake build system nigko @ 2024-12-10 14:49 ` Simon Tournier 2024-12-10 18:28 ` Nigko Yerden 0 siblings, 1 reply; 6+ messages in thread From: Simon Tournier @ 2024-12-10 14:49 UTC (permalink / raw) To: nigko, help-guix Hi, On Wed, 09 Oct 2024 at 18:55, nigko <nigko.yerden@gmail.com> wrote: > ------------------------------------------------------------------------ > # don't forget to insure that /gnu/store does not already contain > # x265's static output before running this command: > $ guix install x265 > The following package will be installed: > x265 3.5 > ... > 2,8 MB will be downloaded > x265-3.5-static 1.3MiB > x265-3.5 1.4MiB > ... > ------------------------------------------------------------------------ Hum. I am not able to reproduce. First, let be sure nothing is already in the store. --8<---------------cut here---------------start------------->8--- $ guix gc --list-dead | grep x265-3.5-static finding garbage collector roots... determining live/dead paths... $ guix gc --list-live | grep x265-3.5-static finding garbage collector roots... determining live/dead paths... $ find /gnu/store -maxdepth 1 -type d -name "x256-3.5-static" -print --8<---------------cut here---------------end--------------->8--- Second, try to install: --8<---------------cut here---------------start------------->8--- $ guix install x265 --dry-run guix install: warning: Your Guix installation is 92 days old. guix install: warning: Consider running 'guix pull' followed by 'guix package -u' to get up-to-date packages and security updates. The following package would be installed: x265 3.5 --8<---------------cut here---------------end--------------->8--- And ’static’ output does not seem required. > An interesting bit about this abnormal behavior was gained from the > discusstion on IRC. It turns out that the command > 'guix install --no-grafts <package>' with --no-grafts flag does not > download all the outputs of the package but only the "out" output, > as one would expect from 'guix install' command. So the issue seems > to be related to grafts. What do you think? Could you give your Guix revision? Mine is 056910e; please note x265 had not be modified since a while and the package isn’t grafted. --8<---------------cut here---------------start------------->8--- $ guix build x265 -d /gnu/store/5v0d3wf3rhy69i1fl0jdchpmwy5wxbas-x265-3.5.drv $ guix build x265 -d --no-grafts /gnu/store/5v0d3wf3rhy69i1fl0jdchpmwy5wxbas-x265-3.5.drv --8<---------------cut here---------------end--------------->8--- Hum, I don’t know where could the observed behaviour come from? Cheers, simon ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'guix install' downloads all outputs for packages with cmake build system. 2024-12-10 14:49 ` Simon Tournier @ 2024-12-10 18:28 ` Nigko Yerden 2024-12-11 8:54 ` Rutherther 0 siblings, 1 reply; 6+ messages in thread From: Nigko Yerden @ 2024-12-10 18:28 UTC (permalink / raw) To: Simon Tournier, help-guix Simon Tournier wrote: > Hum. I am not able to reproduce. > > First, let be sure nothing is already in the store. > > --8<---------------cut here---------------start------------->8--- > $ guix gc --list-dead | grep x265-3.5-static > finding garbage collector roots... > determining live/dead paths... > > $ guix gc --list-live | grep x265-3.5-static > finding garbage collector roots... > determining live/dead paths... > > $ find /gnu/store -maxdepth 1 -type d -name "x256-3.5-static" -print > --8<---------------cut here---------------end--------------->8--- > > Second, try to install: > > --8<---------------cut here---------------start------------->8--- > $ guix install x265 --dry-run > guix install: warning: Your Guix installation is 92 days old. > guix install: warning: Consider running 'guix pull' followed by > 'guix package -u' to get up-to-date packages and security updates. > > The following package would be installed: > x265 3.5 > --8<---------------cut here---------------end--------------->8--- > > And ’static’ output does not seem required. > >> An interesting bit about this abnormal behavior was gained from the >> discusstion on IRC. It turns out that the command >> 'guix install --no-grafts <package>' with --no-grafts flag does not >> download all the outputs of the package but only the "out" output, >> as one would expect from 'guix install' command. So the issue seems >> to be related to grafts. What do you think? > > Could you give your Guix revision? Mine is 056910e; please note x265 > had not be modified since a while and the package isn’t grafted. > > --8<---------------cut here---------------start------------->8--- > $ guix build x265 -d > /gnu/store/5v0d3wf3rhy69i1fl0jdchpmwy5wxbas-x265-3.5.drv > > $ guix build x265 -d --no-grafts > /gnu/store/5v0d3wf3rhy69i1fl0jdchpmwy5wxbas-x265-3.5.drv > --8<---------------cut here---------------end--------------->8--- > > Hum, I don’t know where could the observed behaviour come from? > > Cheers, > simon Hello Simon, Now I'm on 47ab553178eb00d02ba9588ed1f7df44fb2f7c4c guix commit and still have the problem: ----begin----------------------------------------------------------- $ guix build x265 -d 3,9 MB will be downloaded: /gnu/store/1h81psijhx3l8p88ds66q7a001rgvcl2-x265-3.5 /gnu/store/4zw8h8za4z1cg4k5iz5lha6v1s9wzwkz-x265-3.5-static substituting /gnu/store/4zw8h8za4z1cg4k5iz5lha6v1s9wzwkz-x265-3.5-static... downloading from https://cuirass.genenetwork.org/nar/zstd/4zw8h8za4z1cg4k5iz5lha6v1s9wzwkz-x265-3.5-static ... x265-3.5-static 2.2MiB substituting /gnu/store/1h81psijhx3l8p88ds66q7a001rgvcl2-x265-3.5... downloading from https://cuirass.genenetwork.org/nar/zstd/1h81psijhx3l8p88ds66q7a001rgvcl2-x265-3.5 ... x265-3.5 1.5MiB /gnu/store/7555d85ldgn3vgby3sdgl0rf9ac1b6mv-x265-3.5.drv ----end------------------------------------------------------------- Moreover, since then I have realized that the problem is not specific to packages with cmake build system but concerns all packages with multiple outputs. Your Guix installation is 92 days old. Probably this is the reason why you wasn't able to reproduce the problem. As far as I remember this problem have arisen since the latest core packages update. Regards, Nigko ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'guix install' downloads all outputs for packages with cmake build system. 2024-12-10 18:28 ` Nigko Yerden @ 2024-12-11 8:54 ` Rutherther 2024-12-11 11:42 ` nigko 2024-12-11 13:02 ` nigko 0 siblings, 2 replies; 6+ messages in thread From: Rutherther @ 2024-12-11 8:54 UTC (permalink / raw) To: Nigko Yerden; +Cc: Simon Tournier, help-guix Hello Nigko, > Hello Simon, > Now I'm on 47ab553178eb00d02ba9588ed1f7df44fb2f7c4c guix commit and > still have the problem: > ----begin----------------------------------------------------------- > $ guix build x265 -d You are building the package. I think I've already explained it on the IRC few weeks ago: due to how guix is made, build always builds all outputs. That is because when you are building the package, there is just one build process and in middle of that process some files are copied to other outputs. With `guix build`, you cannot even specify the outputs. So even on substitution, you get all of them. That's what you would get if nothing was substituted and the build ran on your system. > Moreover, since then I have realized that the problem is not specific > to packages with cmake build system but concerns all packages with > multiple outputs. Yes, with guix build it is for all packages, is expected, and there is likely no way around it. Please provide guix install example, where this happens, that's what you reported as an issue earlier. With install, you no longer need to get all outputs, when you do not need to build the package, so you should be able to get just one output as long as it is substituted. So indeed, if install substitutes all outputs for some packages, something is wrong and it should be possible to fix it. Rutherther Date: Wed, 11 Dec 2024 09:54:36 +0100 Message-ID: <878qsmppkj.fsf@ditigal.xyz> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'guix install' downloads all outputs for packages with cmake build system. 2024-12-11 8:54 ` Rutherther @ 2024-12-11 11:42 ` nigko 2024-12-11 13:02 ` nigko 1 sibling, 0 replies; 6+ messages in thread From: nigko @ 2024-12-11 11:42 UTC (permalink / raw) To: Rutherther; +Cc: Simon Tournier, help-guix Hello Rutherther, On Wed, Dec 11, 2024 at 1:54 PM Rutherther <rutherther@ditigal.xyz> wrote: > You are building the package. I think I've already explained it on > the IRC few weeks ago: due to how guix is made, build always builds > all outputs. That is because when you are building the package, > there is just one build process and in middle of that process > some files are copied to other outputs. With `guix build`, you cannot > even specify the outputs. So even on substitution, you get all > of them. That's what you would get if nothing was substituted > and the build ran on your system. > > > Moreover, since then I have realized that the problem is not specific > > to packages with cmake build system but concerns all packages with > > multiple outputs. > > Yes, with guix build it is for all packages, is expected, > and there is likely no way around it. Please provide guix install > example, where this happens, that's what you reported as an issue earlier. > With install, you no longer need to get all outputs, > when you do not need to build the package, > so you should be able to get just one output as long as > it is substituted. So indeed, if install substitutes all outputs > for some packages, something is wrong and it should be possible to fix it. You are right. Here is the output of guix install: -------------------------begin-------------------------------------------------- $ guix install x265 guix install: warning: Your Guix installation is 16 days old. guix install: warning: Consider running 'guix pull' followed by 'guix package -u' to get up-to-date packages and security updates. The following package will be installed: x265 3.5 substitute: updating substitutes from 'https://cuirass.genenetwork.org'... 100.0% substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0% 3.9 MB will be downloaded x265-3.5-static 2.2MiB x265-3.5 1.5MiB The following derivation will be built: /gnu/store/5vpq2pqp6s4ig6m0mcwrcbhv22ks2i9j-profile.drv ... -------------------------end---------------------------------------------------- And here is the version with --no-grafts option (after cleaning the store, of course): -------------------------begin-------------------------------------------------- $ guix install --no-grafts x265 guix install: warning: Your Guix installation is 16 days old. guix install: warning: Consider running 'guix pull' followed by 'guix package -u' to get up-to-date packages and security updates. The following package will be installed: x265 3.5 The following derivation will be built: /gnu/store/vzs886g803pzp0wfg94z6ckqlyl2z16v-profile.drv 1.6 MB will be downloaded x265-3.5 1.5MiB generating GLib schema cache... ... -------------------------end---------------------------------------------------- Regards, Nigko ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'guix install' downloads all outputs for packages with cmake build system. 2024-12-11 8:54 ` Rutherther 2024-12-11 11:42 ` nigko @ 2024-12-11 13:02 ` nigko 1 sibling, 0 replies; 6+ messages in thread From: nigko @ 2024-12-11 13:02 UTC (permalink / raw) To: Rutherther; +Cc: Simon Tournier, help-guix Here is an example of problematic package with gnu-build-system: ----------------------begin-------------------------------------------- $ guix install libsmf guix install: warning: Your Guix installation is 16 days old. guix install: warning: Consider running 'guix pull' followed by 'guix package -u' to get up-to-date packages and security updates. The following package will be installed: libsmf 1.3 substitute: updating substitutes from 'https://cuirass.genenetwork.org'... 100.0% substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0% 0.1 MB will be downloaded libsmf-1.3-static 21KiB libsmf-1.3 36KiB The following derivation will be built: /gnu/store/hkbg1bppzchxzcc9z3mx7hmn1mz8v97p-profile.drv building CA certificate bundle... ... ----------------------end---------------------------------------------- With --no-grafts option: ----------------------begin-------------------------------------------- $ guix install --no-grafts libsmf guix install: warning: Your Guix installation is 16 days old. guix install: warning: Consider running 'guix pull' followed by 'guix package -u' to get up-to-date packages and security updates. The following package will be installed: libsmf 1.3 substitute: updating substitutes from 'https://cuirass.genenetwork.org'... 100.0% The following derivation will be built: /gnu/store/qhxnykr6r0zkw5s030yg2ham9fsvjw04-profile.drv 0.0 MB will be downloaded libsmf-1.3 36KiB generating GLib schema cache... ... ----------------------end---------------------------------------------- Regards, Nigko ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-12-11 13:03 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-09 13:55 'guix install' downloads all outputs for packages with cmake build system nigko 2024-12-10 14:49 ` Simon Tournier 2024-12-10 18:28 ` Nigko Yerden 2024-12-11 8:54 ` Rutherther 2024-12-11 11:42 ` nigko 2024-12-11 13:02 ` nigko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).