From 9d093bc60172ff6a89d54e8fd87677cd5fccd338 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Sat, 14 Sep 2024 21:30:49 +0100 Subject: gnu: go-github-com-ipfs-go-ds-badger: Fix build. * gnu/packages/ipfs.scm (go-github-com-ipfs-go-ds-badger): Fix build. [arguments]: <#:phases>: Add 'fix-embed-files. Change-Id: I78f43ec2598ab6644e4be0d4d0c2fec665f2551b --- gnu/packages/ipfs.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index 988a565e03..706015b633 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -354,7 +354,27 @@ throughout its lifetime.") (list ;; XXX: Tests time out, figure out workaround. #:tests? #f - #:import-path "github.com/ipfs/go-ds-badger")) + #:import-path "github.com/ipfs/go-ds-badger" + #: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: + ;; - 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" ".*(editions_defaults.binpb)$"))))))) (propagated-inputs (list go-github-com-dgraph-io-badger go-github-com-ipfs-go-datastore -- cgit v1.2.3