Subject: Re: [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.

From: Kei Kebreau <[email-masked]>
Date: Sat, 16 Jun 2018 11:23:33 -0400

Pierre Neidhardt <[email-masked]> writes:

>>> Any particular reason you decided to use '(zero? (system* ...))' rather
>>> than '(invoke ...)' for this phase? I tried it with 'invoke' and it
>>> worked fine.
>
> I did not know about `invoke' :)
> I just found its definition in guix/build/utils.scm.
>

Well now you know! :)

>> Also, do note that the snippet needs to be updated, as bundled libraries
>> (now including googletest) have moved to the "vendor" subdirectory. Once
>> you remove the "vendor" subdirectory, you may have to add 'googletest'
>> from '(gnu packages check)' to the native-inputs.
>
> So the vender directory has 3 dependencies:
>
> - tinyxml which is already used externally, so it's safe to remove the
>   embedded version.
>
> - easyloggingpp which is not packaged in Guix I believe.  We need to
>   package it first before we can remove it.
>

Observation agrees with both of these.

> - googletest: this one does not have an option in CMakeList.txt to be
>   used externally.  So either we report upstream or we patch the
>   CMakeList.txt.
>

I see that while CMakeLists.txt doesn't have an external option to
control this, it *does* look for googletest in the vendor
directory. Perhaps we can add our own googletest as a native input and
remove the bundled googletest and CMakeLists.txt's references to it in a
snippet?

> All things considered, why not sticking to the vendored libraries?
>

We try to unbundle third-party software in our packages in order to ease
the burden of security maintenance and avoid duplication of work in
general. There are probably other reasons that I can't remember right
now, too.

> What do you think?

This sounds actionable to me!