Hi Efraim, Thank you for your review! Efraim Flashner writes: > On Tue, May 31, 2016 at 05:44:00PM -0400, Leo Famulari wrote: >> On Tue, May 31, 2016 at 08:53:17AM -0500, Lukas Gradl wrote: >> > * gnu/packages/check.scm (googletest): New variable. >> >> Awesome, thanks for this patch! >> >> > + (build-system cmake-build-system) >> >> I noticed in the README.md that upstream suggests use of GNU Make unless >> building from a Git checkout. Did you try that? >> >> > + (native-inputs >> > + `(("python-2" ,python-2))) >> >> The README also suggests that this is only necessary for building from >> Git, although it's worth finding out what they mean by "re-generating >> certain source files from templates". We prefer to re-build "generated" >> source files since they are not really "source files" in many cases. >> >> > + (replace 'install >> > + (lambda _ >> > + (let ((out (assoc-ref %outputs "out"))) >> > + (and >> > + (mkdir-p (string-append out "/lib")) >> > + (mkdir-p (string-append out "/include")) >> > + (zero? >> > + (system* "cp" "-r" >> > + "../googletest-release-1.7.0/include" >> > + out)) >> > + (zero? (system* "cp" "libgtest.a" "libgtest_main.a" >> > + (string-append out "/lib")))))))))) >> >> I think these uses of (system*) could be replaced by (copy-recursively) >> and (install-file), respectively. >> > > I haven't tried building this package yet > > (and -> you can probably switch this for a (begin OK, this is done. > googletest-release-1.7.0 -> > (string-append "../google-release-" version "/include") I seem to have some trouble with that. The package passes all phases except for "install". When it reaches install I get the following error: ---8<--- cut here -------------------- start --->8--- Start 40: gtest_xml_outfiles_test 40/41 Test #40: gtest_xml_outfiles_test ............ Passed 0.19 sec Start 41: gtest_xml_output_unittest 41/41 Test #41: gtest_xml_output_unittest .......... Passed 0.12 sec 100% tests passed, 0 tests failed out of 41 Total Test time (real) = 4.68 sec phase `check' succeeded after 6.7 seconds starting phase `install' Backtrace: In ice-9/boot-9.scm: 157: 13 [catch #t # ...] In unknown file: ?: 12 [apply-smob/1 #] In ice-9/boot-9.scm: 63: 11 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 432: 10 [eval # #] In ice-9/boot-9.scm: 2401: 9 [save-module-excursion #] 4050: 8 [#] 1724: 7 [%start-stack load-stack #] 1729: 6 [#] In unknown file: ?: 5 [primitive-load "/gnu/store/yjwm79h6b6fswb9wdy2ak8b1bdz6s7hw-googletest-1.7.0-guile-builder"] In ice-9/eval.scm: 387: 4 [eval # ()] In srfi/srfi-1.scm: 830: 3 [every1 # ...] In /gnu/store/915kgcfqqasrnf18rhznc77z96i01i6d-module-import/guix/build/gnu-build-system.scm: 593: 2 [# #] In ice-9/eval.scm: 387: 1 [eval # #] In unknown file: ?: 0 [string-append "../googletest-release-" # "/include"] ERROR: In procedure string-append: ERROR: In procedure string-append: Wrong type (expecting string): # builder for `/gnu/store/ljnpvx73fqdg455nh1kj2ac2i3k9jy3r-googletest-1.7.0.drv' failed with exit code 1 @ build-failed /gnu/store/ljnpvx73fqdg455nh1kj2ac2i3k9jy3r-googletest-1.7.0.drv - 1 builder for `/gnu/store/ljnpvx73fqdg455nh1kj2ac2i3k9jy3r-googletest-1.7.0.drv' failed with exit code 1 guix build: error: build failed: build of `/gnu/store/ljnpvx73fqdg455nh1kj2ac2i3k9jy3r-googletest-1.7.0.drv' failed lukas@serenity$ ---8<--- cut here -------------------- end ----->8--- The patch that created this error is attached. I am not sure what is happening here. Is all of the code in the argument of modify phases executed in a different scope where "version" is something else? I do not quite understand this. > (zero? (system* "cp" "libgtest.a" "libgtest_main.a" > won't this just copy libgtest.a to libgtest_main.a ? I am not sure, but if it behaves like invoking "cp" on the command line, then it should copy both of these to the directory that is on the next line: + (zero? (system* "cp" "libgtest.a" "libgtest_main.a" + (string-append out "/lib")))))))))) I replaced all these statements with (install-file ...) and (copy-recursively ...) as mentioned by Leo. Thank you for your help! Best, Lukas