Hi there
While reading the Guix reference manual, I get a silly concern. I
believe it is silly because this concern must have been addressed, but I
am still interested in details.
My concern is about the storage resources of the substitute servers.
Since guix is a functional package manager, each package (e.g. emacs)
must have lots of builds, with (sometimes, even slightly)
differences of inputs. The value of a substitute server is to pre-build
these packages, and provide them on demand. I can't figure out how many
different emacs builds exist at a time on
a substitute server, but I guess there are many. On the other hand, guix
also provides time-machine functionality, which allow users use versions
of packages years ago. So my concern and questions:
1. Does a substitute server keeps all the packages it build? If the
answer is yes, won't it consume huge storage resources? If the answer is
no, then the user who use time-machine travel back to
years before have to build all the packages from scratch?
2. If I am going to create a mirror of guix's official substitute
server, what is the requirement of the storage?
3. Does a package really has lots of build on a substitute server? For
example, emacs-29.1 has lots of inputs. I guess each time there is a
commit to guix repository which change the inputs, there will be a build
of it, so there must be lots of emacs-29.1 builds, with different
hash numbers. Or am I wrong?
Regards
Pan