On 2011/3/31 Oon-Ee Ng <ngoonee.talk@gmail.com> wrote:
I agree with the concept. However, in your opinion does nvidia-beta-all fall under non-reproducible? It does different things on different machines, but entirely in a non-interactive way. In case you don't want to bother to take a look at the PKGBUILD (I wouldn't), here's the basic thing it does:-
1. grep through files in /boot/ to find installed kernels 2. compile the NVIDIA driver for those kernels
It cannot be compiled in a chroot (unless the requisite kernels are available), but it seems to satisfy the rest of your criteria.
My definition was not about interactivity but dynamic nature. nvidia-beta-all is dynamic in the sense that it *computes* local variables that influence the resulting package. A reproducible package does as much as it can to hardcode the parameters and options it uses so that each time it is compiled it must produce the same results (this is usually false, because sonames may change and installed package may influence configuration steps). In other words, I think PKGBUILDs that could be incorportaed in a binary repository as is should not be removed in favour of a PKGBUILD that cannot be used for a binary repository: nvidia-beta-all can't be used for a repository because it can produce totally different packages with the same name, version and pkgrel. It is however a convenient thing to have. By the way, I think you should tweak your PKGBUILD so that it correctly sets its $depends array. I don't think nvidia packages really depend on their associated kernels (I mean you can remove the kernels without removing the modules) but it prevents it from being used as is by people who only have kernel26-lts, for example. -- Rémy.