keybase / client

Keybase Go Library, Client, Service, OS X, iOS, Android, Electron
BSD 3-Clause "New" or "Revised" License
8.91k stars 1.23k forks source link

Gentoo package does not build/install Keybase at /opt/keybase/Keybase #16856

Open witcheslive opened 5 years ago

witcheslive commented 5 years ago

Hello, I am using the official ebuild of keybase and kbfs and while I have the command line working fine (although I did experience an issue already posted #16050 where it does not generate the /keybase mountpoint correctly and I had to create the mount point in ~/.config/keybase to get it to work at all, and eventually download and run a copy of post_install.sh to fix it to where it shows up in /keybase like it should) I cannot get the desktop to work. When I check the desktop logs, I see

/usr/bin/run_keybase: line 121: /opt/keybase/Keybase: No such file or directory

For every attempt to run it. Indeed, there is no Keybase at /opt/keybase/ nor does a freshly updated locate command find the Keybase binary or script.

I am using i3 as my window manager, though as there are no USE flags for this package, it does not seem like it should matter as to whether or not it builds and installs Keybase to the correct location

heronhaye commented 5 years ago

This is something you'll have to bring up with the Gentoo maintainers, we don't package Keybase for Gentoo ourselves. That being said, it would be great if Keybase did work out of the box on Gentoo, so if the maintainers have any questions we'll do our best to answer them.

I took a glance at the ebuild files and it seems the KBFS package is still using the old repository so it is very out of date and needs to be updated. Additionally, I didn't see any code for building the GUI binary /opt/keybase/Keybase, perhaps it was never packaged for Gentoo?

Your options for using the gui are

1) download https://prerelease.keybase.io/linux_binaries/deb/index.html and extract the binary included with the debian package 2) build it yourself as described in https://github.com/keybase/client/blob/master/packaging/linux/build_binaries.sh#L131-L144. You may also be interested in the code surrounding there, for the desktop icon and systemd units. Please note that this does not build it completely from scratch, and uses a prebuilt Electron binary, and this is likely why it was not included in the ebuild files. If you do want to build it from source code only, you'll need to compile Electron yourself and then use that binary with the build process above.

witcheslive commented 5 years ago

Filed a bug with Gentoo, cross referencing here:

https://bugs.gentoo.org/682614

heronhaye commented 5 years ago

Sounds good. You should also mention that the KBFS code location has changed to be in keybase/client as descried in the GitHub issue you linked initially. Fixing that will give you the newer versions of KBFS which will autocreate the mount directory if needed (this is just a matter of changing the remote git link and the build command to go build github.com/keybase/client/go/kbfs/kbfsfuse).

Also, a point of clarification: the kbfs mountdir is always located within the user-writable directory in ~/.config or in $XDG_RUNTIME_DIR (if set). In addition to that, the (optional) keybase-redirector binary allows users to use /keybase to access their files as well (and the files are different depending on which user is accessing it). More info at https://keybase.io/docs/linux-user-guide#configuring-kbfs.

As always we're happy to help with any questions.

eli-schwartz commented 5 years ago

If you need additional context for building it, you can take a look at my Arch Linux packaging recipe here: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/keybase

Of some note is that I patch yarn in order to reduce the amount of network downloads: https://git.archlinux.org/svntogit/community.git/tree/trunk/0001-Don-t-use-electron-to-build.patch?h=packages/keybase Because I'm not using the npmjs.com version of electron, so I just need to create the dist folder for the app itself.

msva commented 5 years ago

by the way, I've added a "fixed" ebuild in my repo (overlay "mva"), so you can take it from there for now.

heronhaye commented 5 years ago

@msva can you post on the gentoo tracker? https://bugs.gentoo.org/658676 Keybase does not maintain this ebuild.

bljordan commented 1 year ago

This is something you'll have to bring up with the Gentoo maintainers, we don't package Keybase for Gentoo ourselves. That being said, it would be great if Keybase did work out of the box on Gentoo, so if the maintainers have any questions we'll do our best to answer them.

I took a glance at the ebuild files and it seems the KBFS package is still using the old repository so it is very out of date and needs to be updated. Additionally, I didn't see any code for building the GUI binary /opt/keybase/Keybase, perhaps it was never packaged for Gentoo?

Your options for using the gui are

1. download https://prerelease.keybase.io/linux_binaries/deb/index.html and extract the binary included with the debian package

2. build it yourself as described in https://github.com/keybase/client/blob/master/packaging/linux/build_binaries.sh#L131-L144. You may also be interested in the code surrounding there, for the desktop icon and systemd units. Please note that this does _not_ build it completely from scratch, and uses a prebuilt Electron binary, and this is likely why it was not included in the ebuild files. If you do want to build it from source code only, you'll need to compile Electron yourself and then use that binary with the build process above.

Option #1 works fine. Thank you.

sudo echo "app-crypt/keybase fuse" >> /etc/portage/package.use/keybase
emerge -av app-crypt/keybase

wget https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_6.0.2-20220610191041.a459abf326_amd64.deb
ar x keybase_6.0.2-20220610191041.a459abf326_amd64.deb
tar vxf data.tar.xz
sudo cp -R opt/keybase/* /opt/keybase