>I guess I wish that the custom install were as easy as guix shell (and that it would also do sensible things like recompiling dependencies if you modified a library).
The reason for the seemingly duplicate "foo" in the "--with-" options is that those "--with-" can apply to dependencies if you specify the right package there (so in the example, something else than "foo"--like something foo depends on). In that case it will recompile everything that needs recompiling.
> But maybe it’s actually hard to do for reasons I haven’t thought about.
It can easily be that we all made our own workarounds and so while it would be easy to add a nice frontend, nobody has a need.
So if you do think of a nice way, please try to do it.
For example we have some bias for emacs: inside emacs the guix development is very comfortable (we have and ship our own extensions for emacs). But that doesn't help you if you are not an emacs user.
The Guix package repo is a monorepo (see below)--all those packages have to work (and be tested) together.
From time to time I do think it would be nice to reduce barrier of entry by automating existing package editing inside a shell script we could ship:
if [ ! -d guix ]
then
git clone --depth=1 https://git.savannah.gnu.org/git/guix.git guix
else
(cd guix && git pull --rebase)
fi \
&& cd guix
&& guix shell -C -D guix -- ./bootstrap \
&& guix shell -C -D guix -- ./configure --localstatedir=/var --disable-daemon \
&& guix shell -C -D guix -- make -j5 \
&& ./pre-inst-env guix edit foo \
&& git add gnu/packages/*.scm
(the guix edit is NOT in the guix shell environment, therefore you have an editor)
... but so far it never makes it out of my head to an actual script shipped with guix :(
If we did make it--what would the package it would be in be called? Or should it be a subcommand of the "guix" command?
That said, if you want to make your own NEW packages, that's easy and well-supported. You can put a guix.scm whereever you like and lots of guix stuff will pick it up automatically.