From 560c64a23b05503f8351eaf488f3d6d972c695a4 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher <sharlatanus@gmail.com> Date: Fri, 13 Sep 2024 21:43:44 +0100 Subject: gnu: go-github-com-prometheus-common: Fix build. * gnu/packages/prometheus.scm (go-github-com-prometheus-common): Fix build. [arguments]: <#:phases>: Add 'fix-embed-files. Change-Id: Ia213327d15288315b54b623c4a15837d7d895a69 --- gnu/packages/prometheus.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/prometheus.scm b/gnu/packages/prometheus.scm index 71b4646f6a..1959859b6c 100644 --- a/gnu/packages/prometheus.scm +++ b/gnu/packages/prometheus.scm @@ -239,6 +239,25 @@ Prometheus metrics.") #:import-path "github.com/prometheus/common" #:phases #~(modify-phases %standard-phases + ;; TODO: Implement it in go-build-system. + ;; + ;; This happens due to Golang can't determine the valid directory of + ;; the module of embed file which is symlinked during setup + ;; environment phase, but easy resolved after coping file from the + ;; store to the build directory of the current package, see details + ;; in Golang source: + ;; + ;; - URL: <https://github.com/golang/go/blob/> + ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454 + ;; - file: src/cmd/go/internal/load/pkg.go#L2059 + (add-after 'unpack 'fix-embed-files + (lambda _ + (for-each (lambda (file) + (let ((file-store-path (readlink file))) + (delete-file file) + (copy-recursively file-store-path file))) + (find-files "src" (string-append + ".*(editions_defaults.binpb)$"))))) ;; XXX: Workaround for go-build-system's lack of Go modules support. (delete 'build) (replace 'check -- cgit v1.2.3