Hey, brand new to ipfs. Looking forward to getting my head around it. (FYI, submitting this issue from decentralized web summit, where I just sat in on the IPFS archiving session.)
Following the instructions to download and install, I run into this:
$ make install
*** Parse error in /home/dave/gocode/src/github.com/ipfs/go-ipfs: Missing dependency operator (Makefile:6)
*** Parse error: Need an operator in 'else' (Makefile:8)
*** Parse error: Need an operator in 'endif' (Makefile:10)
*** Parse error: Need an operator in 'v04x.ipfs.io' (Makefile:19)
Note, I'm on OpenBSD which sometimes leads to issues that noone else runs into. This may be one of those. I haven't had time to really investigate.
Is there an option to build without the makefile?
Can you try building it with GNUmakefiles (gmake).
Sure. Unfortunately, I get:
$ gmake build
installing gx v0.7.0
unrecognized system environment: openbsd-amd64
currently only linux, darwin, windows and freebsd are supported by this script
Makefile:30: recipe for target 'bin/gx-v0.7.0' failed
gmake: *** [bin/gx-v0.7.0] Error 1
@dncohen Yeah, make install isnt going to work for openbsd right now. One way to get this to work would be to get gx and gx go manually:
go get -u github.com/whyrusleeping/gx
go get -u github.com/whyrusleeping/gx-go
and then run gx install and go install ./cmd/ipfs.
Whoa! gx looks like a pretty fascinating effort in its own right. I'll have to get my head around that.
The gx commands worked quite smoothly. The final build/install of ipfs errors out with:
$ go build ./cmd/ipfs
# github.com/ipfs/go-ipfs/Godeps/_workspace/src/bazil.org/fuse
Godeps/_workspace/src/bazil.org/fuse/error_std.go:27: undefined: errNoXattr
Godeps/_workspace/src/bazil.org/fuse/fuse.go:1092: undefined: attr
Godeps/_workspace/src/bazil.org/fuse/fuse_kernel.go:378: undefined: attr
go build github.com/ipfs/go-ipfs/fuse/node: no buildable Go source files in /home/dave/gocode/src/github.com/ipfs/go-ipfs/fuse/node
...which looks like something I could report to the bazil.org/fuse project.
Thanks for the help!
@dncohen thanks! I've put a lot of effort into making gx a very nice tool :)
As for the fuse stuff, thats generally our biggest issue when it comes to cross platform stuff, you can do go build -tags=nofuse ./cmd/ipfs
Progress! That command builds it, with these minor changes:
diff --git a/core/commands/mount_nofuse.go b/core/commands/mount_nofuse.go
index a58947b..6805da4 100644
--- a/core/commands/mount_nofuse.go
+++ b/core/commands/mount_nofuse.go
@@ -1,4 +1,4 @@
-// +build linux darwin freebsd netbsd
+// +build linux darwin freebsd netbsd openbsd
// +build nofuse
package commands
diff --git a/fuse/node/mount_nofuse.go b/fuse/node/mount_nofuse.go
index 5b626ce..5ba902e 100644
--- a/fuse/node/mount_nofuse.go
+++ b/fuse/node/mount_nofuse.go
@@ -1,4 +1,4 @@
-// +build linux darwin freebsd netbsd
+// +build linux darwin freebsd netbsd openbsd
// +build nofuse
package node
Hah great! Wanna make a PR with this? Then we can build binaries for https://dist.ipfs.io for the next release.
Hello,
I have followed the instructions in described previously, but
unfortunately I get another error message.
I am also using OpenBSD (5.9), with go go version go1.5.3 openbsd/386.
# gx/ipfs/QmaaC9QMYTQHCbMq3Ebr3uMaAR2ev4AVqMmsJpgQijAZbJ/go-reuseport/poll
../../../gx/ipfs/QmaaC9QMYTQHCbMq3Ebr3uMaAR2ev4AVqMmsJpgQijAZbJ/go-reuseport/poll/poll_bsd.go:24: cannot use uint64(fd) (type uint64) as type uint32 in field value
Should I open another issue for this?
Thanks in advance.
Edit:
This is the error message if I run go build -tags=nofuse directly in the directory:
/root/go/src/gx/ipfs/QmaaC9QMYTQHCbMq3Ebr3uMaAR2ev4AVqMmsJpgQijAZbJ/go-reuseport/poll/poll_bsd.go:24: cannot use uint64(fd) (type uint64) as type uint32 in field value
Yes please. It is different bug in one of our dependencies.
Feel free to re-open if you want to continue tracking items here. I see openbsd-amd64 now builds with the nofuse tag.
I noticed that gmake build doesn't work, because it fails to download a gx build for openbsd. But the more manual instructions do work. Thanks!