Page MenuHomeSolus

Package request: Keybase
Closed, ResolvedPublic

Tokens
"Like" token, awarded by FxPape."Like" token, awarded by ghishadow."Like" token, awarded by Velfess."Like" token, awarded by miwilc."Like" token, awarded by curantes."Like" token, awarded by mcritchlow."Like" token, awarded by kbknapp."Like" token, awarded by baimafeima.
Assigned To
Authored By
Tebro, Oct 18 2016

Description

Name: Keybase
Homepage: https://keybase.io/

Source for client: https://github.com/keybase/client
Source for kbfs: https://github.com/keybase/kbfs

Building the entire thing is a bit involved.

Event Timeline

Tebro created this task.Oct 18 2016, 6:49 AM
DataDrake triaged this task as Low priority.
DataDrake moved this task from Backlog to Accepted For Inclusion on the Package Requests board.
BearzR added a subscriber: BearzR.Feb 16 2017, 12:18 PM

Just a few notes on getting this working. So installing the client and the kbfs is straightforward(Example: https://ma.tc/tecigehali). However on solus at least-didn't test elsewhere--you will need to create a mountpoint 'Keybase' and then run kbfsfuse manually to mount the fs. so something like:

mkdir /home/tom/Keybase && kbfsfuse -bserver=bserver.kbfs.keybase.io:443 -mdserver=mdserver.kbfs.keybase.io:443 /home/tom/Keybase/ &

Cheers,

@JoshStrobl is there any chance you could provide keybase as a package in the repos?

@rajlego I'm assigned to it. It'll happen when it happens. Alternatively, someone else is welcome to package it up.

For kbfs I guess they'll have to make a release before it can be included in the Solus repository.
If so, perhaps it would be a good idea to get in touch with them (i.e. raising an issue on their github repository) to ask them when they plan to make the first official release.

kbknapp added a subscriber: kbknapp.

per @kyrios123 comment above, the work-in-progress issue asking for a release in kbps https://github.com/keybase/kbfs/issues/686

I am currently looking at this. Progress so far: I can build the keybase cli binary into a package, but that alone does not provide a complete solution. Looking into ways of building the entire stack.

ylk added a subscriber: ylk.Jul 30 2017, 9:14 AM
ylk added a comment.Aug 5 2017, 6:31 AM

One of the developers recommended repackaging the .deb binaries instead of compiling it: https://news.ycombinator.com/item?id=14928368
Thoughts?

miwilc added a subscriber: miwilc.Oct 12 2017, 3:07 PM

@ylk Maybe as a temporary solution we could do that on the 3rd-party repo, if @JoshStrobl is willing.

I guess we could do the same on the main repo...

Tebro added a comment.EditedOct 13 2017, 6:45 AM

I made a package on an earlier version that was built from source, but with the newer versions it stopped working so now I just make a package for myself that repackages the .deb files.

This is the package.yml I use if someone else wants to do it for themselves.

name: keybase
version: 1.0.30
release: 3
extract: no
networking: yes
license: BSD-3-Clause
component: security.crypto
summary: Keybase is a free, open source security app. It's also a public directory of people.
source:
    - https://prerelease.keybase.io/keybase_amd64.deb: 2d80c7c71dca6e9716eaf50b4eb87a0a428ccd82bd7a8f013608ba9da96f8b08
description: |
    The Keybase app helps you perform cryptographically-secure operations with people you know on the Internet: chatting, file sharing, even publishing public documents. It's all easier and safer with Keybase.
install: |
    cp $sources/keybase_amd64.deb .

    install -d $installdir

    ar xf keybase_amd64.deb
    tar xf data.tar.xz -C $installdir

    rm -rf $installdir/etc/cron.daily

    # This creates the /keybase mountpoint where kbfs is mounted
    install -Dm 00644 $pkgfiles/keybase.tmpfiles $installdir/%libdir%/tmpfiles.d/keybase.conf

I based it on the arch keybase-bin package script

miwilc added a comment.EditedOct 14 2017, 6:28 PM
In T1132#84358, @Tebro wrote:
install -Dm 00644 $pkgfiles/keybase.tmpfiles $installdir/%libdir%/tmpfiles.d/keybase.conf

This line is giving problems while building, can you confirm it works on your machine? Im building against main.

I dont see the point of it, as it appears to points towards a non-existing file.

+ install -Dm 00644 /home/build/work/files/keybase.tmpfiles /home/build/YPKG/root/keybase/install/usr/lib64/tmpfiles.d/keybase.conf
install: cannot stat '/home/build/work/files/keybase.tmpfiles': No such file or directory
Command '['/bin/bash', '--norc', '--noprofile', '/tmp/ypkg-installYqteub']' returned non-zero exit status 1
[Build] install failed
ERRO[19:31:21] Failed to build package                       error="exit status 1"

@miwilc this is because @Tebro has created a file and you don't have it.
For details about it, check the help center.

Yes, sorry about that this is the file that is missing @miwilc

files/keybase.tmpfiles

d /keybase 0777 - - -
GotExx added a subscriber: GotExx.Nov 2 2017, 7:58 AM
Velfess added a subscriber: Velfess.
In T1132#84358, @Tebro wrote:

I made a package on an earlier version that was built from source, but with the newer versions it stopped working so now I just make a package for myself that repackages the .deb files.
This is the package.yml I use if someone else wants to do it for themselves.

name: keybase
version: 1.0.30
release: 3
extract: no
networking: yes
license: BSD-3-Clause
component: security.crypto
summary: Keybase is a free, open source security app. It's also a public directory of people.
source:
    - https://prerelease.keybase.io/keybase_amd64.deb: 2d80c7c71dca6e9716eaf50b4eb87a0a428ccd82bd7a8f013608ba9da96f8b08
description: |
    The Keybase app helps you perform cryptographically-secure operations with people you know on the Internet: chatting, file sharing, even publishing public documents. It's all easier and safer with Keybase.
install: |
    cp $sources/keybase_amd64.deb .
    install -d $installdir
    ar xf keybase_amd64.deb
    tar xf data.tar.xz -C $installdir
    rm -rf $installdir/etc/cron.daily
    # This creates the /keybase mountpoint where kbfs is mounted
    install -Dm 00644 $pkgfiles/keybase.tmpfiles $installdir/%libdir%/tmpfiles.d/keybase.conf

I based it on the arch keybase-bin package script

Cheers, works great.

bgta added a subscriber: bgta.Jan 14 2018, 7:38 AM

so is this package proposed by @Tebro ready to be included in Solus?

FxPape added a subscriber: FxPape.

Thanks @funnylookinhat . That's great news ?

FWIW - It looks like Keybase may be developing a snap package: https://github.com/keybase/client/blob/master/packaging/linux/snap/snapcraft.yaml

Unpacking the deb file works great. I placed the files where they should be and just ran the post install script and it works.

I see arch has a really simple script here:

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=keybase-bin

its removes the cron.daily task from the deb. And uses hardcoded checksums to validate.

The sum for amd64 can be found at:

https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages

I think its a no brainer to implement a script that just downloads the deb file, verifies its checksum, unpacks it and runs the post install script.

You are talking about replicating the build process of keybase. And as a developer myself I find that to be very fragile. What if they change their own build process?

The best thing as I see it is to rely on binaries and add keybase to third party packages.

drohm added a subscriber: drohm.Jun 24 2018, 9:32 PM
JoshStrobl removed JoshStrobl as the assignee of this task.Jul 20 2018, 1:48 PM
JoshStrobl added a subscriber: JoshStrobl.
DataDrake closed this task as Resolved.Oct 20 2018, 5:14 PM
DataDrake claimed this task.