On Wed, Jan 20, 2021 at 11:15:17AM +0100, zimoun wrote: > Cool if Microsoft support long time archive of CRAN packages. Well, it > seems possible to use it as fallback. Hi, Thanks for the review. You could say the same thing about Software Heritage. You never know. I was considering starting a new thread questioning the sufficiency of the manifest and channels to reproduce an environment (you can find this kind of statement in Konrad Hinsen’s “Reproducible computations with Guix” last year’s GuixHPC blog post, for instance). Looks like you also want to archive the source code, just in case. > > (packages->manifest > > (list (first (lookup-inferior-packages inferior "r-foreign" "0.8-75-fixed")) > > (specification->package "r"))) > > Here, the package “r-foreign” come from d81fb2a and so it is built using > the R build system from d81fb2a. I do want d81fb2a r-foreign be built by d81fb2a R build system. > However, the package “r” come from the current Guix, i.e., the Guix when > the manifest is called. It is called from the time machine, so it’s also d81fb2a, right? That’s what I want. > Specifying --commit and --channels is redundant. Other said, the > --commit is not necessary because it is already provided by your > ’channel-specs.scm’. But that’s a detail. :-) Thanks. I thought that --channels referred to the package definitions, whereas --commit to the guix version that processes them (yes, I know that the definitions are a part of guix, but still). Does `environment -C` imply `environment --pure`, as well? > By “chance”, the file ’channel-specs.scm’ and ’manifest.scm’ points to > the same commit. This is intentional. I want to have an environment reflecting the d81fb2a state of things, so that’s why I’m consistent with the commit. > However, the inferior in ’manifest.scm’ is not necessary. Why? If it’s not there, you’re facing the hash mismatch problem, aren’t you? Please, explain. > Inferiors in ’manifest.scm’ are used when you want to put some packages > from different Guix commits in the same profile. And it is not what you > want here; if I understand correctly your problem. If a tool designed for some purpose turns out to be suitable for other purposes, as well, I see no reason for not using it for latter. It’s a bit like Unix philosophy. I use an inferior to substitute a guix package also in my config.scm. I added some patch or something (I don’t remember), so the definition is loaded from another channel, rather than another guix commit. Maybe I even borrowed this trick from someone who had been showing it on this mailing list. (define wz-channel (cons* (channel (name 'guix-wz) (url "file:///home/w/guix/guix-wz-git")) %default-channels)) (define spectrwm-wz (first (lookup-inferior-packages (inferior-for-channels wz-channel) "spectrwm-wz" "3.2.0"))) ; I should upgrade it, I guess (packages (append (list ;; dadada spectrwm-wz) %base-packages)) It works for me. If there are better solutions, I’ll be happy to learn. WŻ