Hi Guix!

I'm in the process of packaging IPFS.
It has about 100 dependencies, most of which are currently missing in
Guix, so that's gonna take me some hours :p
Thankfully Go is rather straightforward to package so that should be
alright.

That said, the case of IPFS of particular: it uses it's own dependency
manager "gx" which retrieves the specific versions of its deps over the
IFPS protocol.

The build recipe is as follows (from the project's Rules.mk):

--8<---------------cut here---------------start------------->8---
install_unsupported:
        @echo "note: this command has yet to be tested to build in the system 
you are using"
        @echo "installing gx"
        go get -v -u github.com/whyrusleeping/gx
        go get -v -u github.com/whyrusleeping/gx-go
        @echo check gx and gx-go
        gx -v && gx-go -v
        @echo downloading dependencies
        gx install --global
        @echo "installing go-ipfs"
        go install -v -tags nofuse ./cmd/ipfs
--8<---------------cut here---------------end--------------->8---

This raises a few questions:

- IPFS is rather peculiar about its dependency versions.
If I package all those dependencies in Guix, I should use the same
versions.  But then we should make sure that no one is going to update
those packages independently, which would break the strict versioning of
IPFS.

Else I could package all those deps as usual (i.e. the latest version) and then 
for
the IPFS package I would use the native inputs as follows:

  ("go-path" ,(package (inherit go-path)
                       (version "1.1.9")
                       (source (origin...
                                  (base32 <new-hash-here>)))))

I should probably define a function of PACKAGE VERSION BASE32 arguments.

- gx retrieves the deps over IPFS: how important is this?  Should we do
  the same?  What about using "gx"?  We could also implement a new
  "gx-fetch" method fully written in Guile.

Thoughts?

--
Pierre Neidhardt
https://ambrevar.xyz/

Attachment: signature.asc
Description: PGP signature

Reply via email to