Subject: Re: bug#25966: [PATCH 2/2] gnu: gitolite: Fix shebangs in hooks.

From: ng0 <[email-masked]>
Date: Tue, 14 Mar 2017 19:27:02 +0000

Leo Famulari transcribed 2.8K bytes:
> On Sun, Mar 05, 2017 at 04:24:14PM +0100, Clément Lassieur wrote:
> > [email-masked] writes:
> > 
> > > +                  (add-before 'install 'fix-hooks-shebangs
> > > +                    (lambda* (#:key inputs #:allow-other-keys)
> > > +                      (let ((perl (string-append (assoc-ref inputs "perl")
> > > +                                                 "/bin/perl")))
> > > +                        ;; The files in 'lib/Gitolite/Hooks' keep references to
> > > +                        ;; '/usr/bin/perl', without this fix it is impossible to
> > > +                        ;; to run gitolite in production.
> > > +                        (substitute* (find-files "src/lib/Gitolite/Hooks" ".*")
> > > +                          (("/usr/bin/perl")
> > > +                           perl))
> > > +                        #t)))
> > 
> > This patch introduces references to the store in files installed by
> > "gitolite setup" command.  Those files are installed once and for all.
> > So for example .gitolite/hooks/common/update's shebang is
> > #!/gnu/store/vcjvzmdy5091bklv73rx9nc0yvlk12yv-perl-5.24.0/bin/perl.  But
> > then what happens when perl is upgraded, and Guix garbage collected?  My
> > understanding is that the shebang won't work anymore, and gitolite will
> > be broken.
> > 
> > One can use instead special-files-service-type, which allows to have
> > /usr/bin/perl working.  But it won't work anymore with this patch.
> 
> Ah, seems like the same issue as with the Git hooks.
> 
> > I suggest we revert it, but I might be wrong.  WDYT?
> 
> If these hooks are intended to be copied out of /gnu/store, then the
> change should be reverted until we have a better solution.
> 
> I think it's better for the hook scripts to fail the first time than for
> them to fail later, after a seemingly unrelated action like `guix gc`.

I agree. Please revert it. I'd like to continue this discussion to see
what we can come up with.

Thanks