Pierre Neidhardt 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!