Page MenuHomeSolus

Package request: Keybase
Closed, ResolvedPublic

Assigned To
Authored By
Tebro
Oct 18 2016, 6:49 AM
Referenced Files
None
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.

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

DataDrake triaged this task as Low priority.
DataDrake moved this task from Backlog to Accepted For Inclusion on the Package Requests board.

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.

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.

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

@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...

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

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 - - -
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.

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

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.

Unknown Object (User) added a subscriber: Unknown Object (User).Jul 5 2018, 10:37 AM
JoshStrobl added a subscriber: JoshStrobl.
DataDrake claimed this task.