Attached are the patches that make the --with-source option recursive, add documentation, add a test, adjust a test, and update the news. As expected, the changes I made are incompatible with the test "options->transformation, with-source, no matches". Since options->transformation, with-source does a recursive replacement, it returns a clone of the package in question. I have tried changing the comparison to eq?, eqv? and equal?, each returning false, so I settled on a (limited) comparison of the packages' attributes. On 9/13/20 6:55 AM, Ludovic Courtès wrote: > Hi, > > Jesse Gibbons skribis: > >> On 9/11/20 9:43 AM, Ludovic Courtès wrote: > [...] > >>> So maybe drop the second clause for non-recursive replacement, and drop >>> ‘transform-package-source’ as well. >> I included a fallback to transform-package-source because the >> following happens: >> >> $ ./pre-inst-env guix build --with-source=$(guix build --source hello) hello >> guix build: error: invalid source replacement specification: >> "/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz" >> >> This does not fail when I fall back to the non-recursive logic. >> >> I can drop transform-package-source, but I will need to do some more >> hacking to figure out how the package name and version are parsed from >> the file name as described in the manual, and move it to the logic in >> transform-package-inputs/source. > Yes, that’d be nice. Namely, if you do: > > guix build hello --source=hello-1.2.3.tar.gz > > it should work just as now (from the source file name, we assume that > the source applies to package “hello”). > > Conversely, doing: > > guix build hello --source=xyz-hello-1.2.3.tar.gz > > would have no effect. It would not even emit a warning, unlike now. > >> I'm not going to have as much free time starting next week, so I might >> not be able to do that for a while, but I will try to get it done >> ASAP. > Sure, let’s stay in touch, I think we’re almost done! > > Thank you, > Ludo’.