The patch is at the end of the email. kbfsfuse doesn't compile on OpenBSD because the golang fuse library is not compatible with OpenBSD but we can use kbfsfuse without the FUSE support. I just added a little hack to make the code build. The FUSE part is still broken but we can use the kbfsfuse daemon to access KBFS.
OK? ---- This part is only for people who is not aware of some keybase features. Feel free to ignore it. I was going to write a README for the package but at the end it was more a manual for the keybase services than a README for our package. If we don't explain how to use a word processor, we should not explain how to use a web service. So, here is a quick howto with some tricks. I assume that you have a keybase account and your OpenBSD computer is provisioned in keybase. Otherwise, please read https://keybase.io/docs/command_line/basics . You need two daemons to use the keybase services. "keybase" and "kbfsfuse". Use "keybase ctl start" to start the main daemon. "kbfsfuse" requires a keybase daemon running, so run it always after the main daemon. You can add both to your crontab or autostart programs if you don't want to run them manually everytime. KBFS is a distributed filesystem with journaling support. Don't worry if you power off your computer in the middle of a transfer. Also, KBFS streams transparently the files from the keybase servers. If you have a weak connection (e.g. wifi), run "keybase fs sync enable /keybase/private/youruser" to keep a local cache of your files. List your files: keybase fs ls /keybase/private/youruser Copy a file: keybase fs cp /your/file /keybase/private/youruser/ Stream a video: keybase fs read /keybase/private/youruser/video.webm | mpv - Recover a deleted file: keybase fs recover /keybase/private/youruser/lostfile (they save the files for two weeks) Send a file to someone: keybase fs cp /your/file /keybase/private/youruser,otheruser/ (now you have a shared folder with otheruser) For more options: keybase fs (run keybase with the options and you will see the arguments) They are offering 250GB for free, so you can use keybase even for remote backups. They also gives 100GB for encrypted git repos. The FS, git repos and chat are also available for teams. Migrating your git repos: - keybase git create ports - git clone --mirror https://github.com/openbsd/ports.git ports-mirror - cd ports-mirror - git push --mirror keybase://private/youruser/ports - cd .. && rm -rf ports-mirror - git clone keybase://private/youruser/ports The git repos are just standard repos but use a helper to upload the blobs encrypted to KBFS. For chat with other users: keybase chat read, send, upload, download (the experience is quite crappy without the electron GUI) Encrypt and decrypt files: keybase encrypt, decrypt PGP: keybase pgp The golang team will release go 1.13 this summer. I tested keybase a few weeks ago with go 1.13 and it will consume less RAM. Just in case you don't like how top looks when you're running the daemons :) . ---- Index: Makefile =================================================================== --- Makefile (revision 139067) +++ Makefile (working copy) @@ -9,6 +9,7 @@ # XXX: https://github.com/keybase/client/issues/10800 V = 4.1.0 +REVISION = 0 GH_ACCOUNT = keybase GH_PROJECT = client GH_TAGNAME = v${V} @@ -34,14 +35,30 @@ NO_TEST = Yes +# Until github.com/bazil/fuse/pull/104 is fixed, we need to use this +# workaround. Despite of the name, kbfsfuse is a daemon for some keybase +# services and the FUSE support is optional. +pre-build: + cd ${WRKSRC}/go/vendor/bazil.org/fuse && \ + for i in *freebsd*.go fs/fstestutil/*freebsd*.go; \ + do mv -v "$$i" $$(echo "$$i" | sed -e 's,freebsd,openbsd,g'); \ + done && \ + sed -i "s/syscall\.EPROTO/syscall\.EIO/g" fuse.go + cd ${WRKSRC}/go/kbfs/kbfsfuse && \ + sed -i "s/defaultMountType = \"\"/defaultMountType = \"none\"/" defaults.go && \ + sed -i "s/defaultMountType = \"force\"/defaultMountType = \"none\"/" defaults_production.go + do-build: cd ${WRKSRC}/go/keybase && ${MODGO_CMD} build -tags \ production cd ${WRKSRC}/go/kbfs/kbfsgit/git-remote-keybase && \ ${MODGO_CMD} build -tags production + cd ${WRKSRC}/go/kbfs/kbfsfuse && \ + ${MODGO_CMD} build -tags production do-install: ${INSTALL_PROGRAM} ${WRKSRC}/go/keybase/keybase ${PREFIX}/bin/ ${INSTALL_PROGRAM} ${WRKSRC}/go/kbfs/kbfsgit/git-remote-keybase/git-remote-keybase ${PREFIX}/bin/ + ${INSTALL_PROGRAM} ${WRKSRC}/go/kbfs/kbfsfuse/kbfsfuse ${PREFIX}/bin/ .include <bsd.port.mk> Index: pkg/PLIST =================================================================== --- pkg/PLIST (revision 139067) +++ pkg/PLIST (working copy) @@ -1,3 +1,4 @@ @comment $OpenBSD: PLIST,v 1.2 2019/06/19 21:07:05 juanfra Exp $ @bin bin/git-remote-keybase +@bin bin/kbfsfuse @bin bin/keybase