On Mon, Oct 15, 2018 at 09:59:04AM +0200, Pierre Neidhardt wrote: > 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.
I think a guix channel is the appropriate way to manage these versions (channels are all about versions in my opinion) and I can provide a binary substitute server. Still we can merge current versions in mainline. Pj.