Hi all,I'm using the following incantation:guix build --with-source=foobar@9.5.0=/opt/thirdparty/foobar/foobar950_beta/linux64 foobar
However the package build is failing with:
(copy-file "lib/libfoobar.so.9.0.1" "/gnu/store/gkawzac…")
In procedure copy-file: No such file or directory
That is the new version number 9.5.0 is not written to every place when transforming the original package (version 9.0.1). I think only the package-version is updated, but the other package components are not then regenerated, meaning that if they use the package-version as an input we get a disjoint package.
In the example above I use version like so:
(add-after 'install 'install-foobar-library
(lambda* (#:key outputs #:allow-other-keys)
(let* ((dir (string-append (assoc-ref outputs "out")
"/lib/python3.8/site-packages/foobar/"))
(lib-to-install (string-append "libfoobar.so." ,version))But ",version" is not updated, nor is it updated if I change this to call (package-version foobar).If I drop into Guile I can see this a bit more clearly by writing a manifest - the code below gives exactly the same error however when the package-version is displayed it correctly responds with 9.5.0.Not sure if this should be considered a bug, or if there is a lazy way of evaluating version so avoid the problem - I think it's unexpected from a practicioners point of view as packages end up inconsistent.I presume I can manually replace the arguments section of the package in the manifest to workaround this - is there a standard way of doing this?Any ideas or clarifications welcome!Cheers,Phil.(use-modules (guix transformations)
(guix packages))
(define transform
;; The package transformation procedure.
(options->transformation
'((with-source . "gurobipy@9.5.0=/opt/thirdparty/foobar/foobar950_beta/linux64"))))
(define my-package (transform (specification->package "foobar")))
(display (package-version my-package)) ;; this will display version 9.5.0
(newline)
(packages->manifest
(list my-package)) ;; building this will fail because copy-file still looks for 9.0.1