Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 570654 - app-crypt/keybase-1.0.8.0 - keybase.io client in Go
Summary: app-crypt/keybase-1.0.8.0 - keybase.io client in Go
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Nicolas Bock
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-02 21:10 UTC by Matt Whitlock
Modified: 2016-01-20 12:21 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
keybase-1.0.7.0.ebuild (keybase-1.0.7.0.ebuild,822 bytes, text/plain)
2016-01-02 21:10 UTC, Matt Whitlock
Details
keybase-1.0.7.0.ebuild (keybase-1.0.7.0.ebuild,822 bytes, text/plain)
2016-01-07 11:19 UTC, Matt Whitlock
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Whitlock 2016-01-02 21:10:12 UTC
Created attachment 421674 [details]
keybase-1.0.7.0.ebuild

The Keybase.io client has apparently been rewritten in Go. The version of Keybase presently in the tree (app-crypt/keybase-0.8.25) was written in Node.js. The ebuild in the tree, therefore, no longer applies to the present release.

Attached is a new ebuild that builds the new Keybase.io client using >=dev-lang/go-1.5. I have tested the resulting binary lightly. (It runs and appears to function, but I do not yet have a Keybase login, so I can't fully test it.)
Comment 1 Matt Whitlock 2016-01-03 15:37:00 UTC
Is this logically a different package than app-crypt/keybase? (I'm wondering about the apparent package rename.)

Also, I'm wondering about all those extra words in the title now. My ebuild only builds the command-line client (which includes the service), not the iOS, Android, or Electron apps.

I guess maybe this ebuild would work on OS X. (Does Gentoo support OS X?)
Comment 2 Nicolas Bock gentoo-dev 2016-01-04 04:23:08 UTC
(In reply to Matt Whitlock from comment #1)
> Is this logically a different package than app-crypt/keybase? (I'm wondering
> about the apparent package rename.)
> 
I am not sure. From reading through the project's descriptions it sounds to me as if app-crypt/keybase is the CLI. But then again, the Go code you refer to supposedly also includes a CLI client. Do you know what the difference is between these two projects (client and node-client)?
Comment 3 Matt Whitlock 2016-01-04 17:28:47 UTC
(In reply to Nicolas Bock from comment #2)
> (In reply to Matt Whitlock from comment #1)
> > Is this logically a different package than app-crypt/keybase? (I'm wondering
> > about the apparent package rename.)
> > 
> I am not sure. From reading through the project's descriptions it sounds to
> me as if app-crypt/keybase is the CLI. But then again, the Go code you refer
> to supposedly also includes a CLI client. Do you know what the difference is
> between these two projects (client and node-client)?

As luck would have it, I stumbled upon a bug report showing some output from an older version of the CLI client.

https://github.com/keybase/keybase-issues/issues/1712

The first comment in that bug report shows the output from "keybase version", showing Keybase CLI version 0.8.15 (which is in the range of versions of app-crypt/keybase in the Portage tree) and a Node.js version, suggesting that the Keybase CLI was once written in Node.js.

Now the Keybase CLI is written in Go.

In other words, if you really want to change the name of the package to app-crypt/keybase-client, then you should enter a package move.
Comment 4 Nicolas Bock gentoo-dev 2016-01-04 17:42:00 UTC
(In reply to Matt Whitlock from comment #3)
> (In reply to Nicolas Bock from comment #2)
> > (In reply to Matt Whitlock from comment #1)
> > > Is this logically a different package than app-crypt/keybase? (I'm wondering
> > > about the apparent package rename.)
> > > 
> > I am not sure. From reading through the project's descriptions it sounds to
> > me as if app-crypt/keybase is the CLI. But then again, the Go code you refer
> > to supposedly also includes a CLI client. Do you know what the difference is
> > between these two projects (client and node-client)?
> 
> As luck would have it, I stumbled upon a bug report showing some output from
> an older version of the CLI client.
> 
> https://github.com/keybase/keybase-issues/issues/1712
> 
> The first comment in that bug report shows the output from "keybase
> version", showing Keybase CLI version 0.8.15 (which is in the range of
> versions of app-crypt/keybase in the Portage tree) and a Node.js version,
> suggesting that the Keybase CLI was once written in Node.js.
> 
> Now the Keybase CLI is written in Go.
> 
> In other words, if you really want to change the name of the package to
> app-crypt/keybase-client, then you should enter a package move.

There are two repositories under keybase on github: node and node-client. The node-client is the js based code, node is many things including a CLI client. Are you suggesting that the node-client project is being phased out in favor of the node project?
Comment 5 Matt Whitlock 2016-01-04 18:21:23 UTC
(In reply to Nicolas Bock from comment #4)
> There are two repositories under keybase on github: node and node-client.
> The node-client is the js based code, node is many things including a CLI
> client. Are you suggesting that the node-client project is being phased out
> in favor of the node project?

There is no "keybase/node" repository on Github. There is "keybase/client" and "keybase/node-client". The "node-client" is the older one; last commit was on 30 November 2015. The "client" repository is the newer one; last commit was today. Further, the right-hand column at https://keybase.io/download says:

> Deprecation warning Node.js users, please uninstall with:
> 
> npm uninstall -g keybase
> 
> Source code
> 
> Keybase is open source. You can always find our latest source code at
> https://github.com/keybase/client.

So the Node.js client has been deprecated, and the new client is in the "client" repository.
Comment 6 Nicolas Bock gentoo-dev 2016-01-04 19:14:46 UTC
(In reply to Matt Whitlock from comment #5)
> (In reply to Nicolas Bock from comment #4)
> > There are two repositories under keybase on github: node and node-client.
> > The node-client is the js based code, node is many things including a CLI
> > client. Are you suggesting that the node-client project is being phased out
> > in favor of the node project?
> 
> There is no "keybase/node" repository on Github. There is "keybase/client"
> and "keybase/node-client". The "node-client" is the older one; last commit
> was on 30 November 2015. The "client" repository is the newer one; last
> commit was today. Further, the right-hand column at
> https://keybase.io/download says:
> 
> > Deprecation warning Node.js users, please uninstall with:
> > 
> > npm uninstall -g keybase
> > 
> > Source code
> > 
> > Keybase is open source. You can always find our latest source code at
> > https://github.com/keybase/client.
> 
> So the Node.js client has been deprecated, and the new client is in the
> "client" repository.

Cool! Thanks for the additional information!
Comment 7 Matt Whitlock 2016-01-04 19:23:49 UTC
Incidentally, I now have a Keybase account, and I've successfully used the Keybase CLI built by the attached ebuild to sign in, attach a PGP key, and prove my identity on several services, so I'd declare that it works correctly.

Would you change the package name in the title of this ticket back to "app-crypt/keybase"?
Comment 8 Nicolas Bock gentoo-dev 2016-01-04 19:25:10 UTC
(In reply to Matt Whitlock from comment #7)
> Incidentally, I now have a Keybase account, and I've successfully used the
> Keybase CLI built by the attached ebuild to sign in, attach a PGP key, and
> prove my identity on several services, so I'd declare that it works
> correctly.
> 
> Would you change the package name in the title of this ticket back to
> "app-crypt/keybase"?

I think, given that the current code base is deprecated, we should use the same name. I will have a closer look at your ebuild and update the one in tree.
Comment 9 Matt Whitlock 2016-01-04 19:54:58 UTC
(In reply to Nicolas Bock from comment #8)
> I will have a closer look at your ebuild and update the one in tree.

You may want to change my "ln -rs" to a simple "mv" since I don't know if '-r' is available in all deployed versions of 'ln'.
Comment 10 Matt Whitlock 2016-01-07 11:19:06 UTC
Created attachment 422174 [details]
keybase-1.0.7.0.ebuild

I omitted a '|| die' in my ebuild, and also I changed the "ln -rs" to a "mv" and used "dirname" in the "mkdir" command.
Comment 11 Matt Whitlock 2016-01-19 05:54:10 UTC
Renaming the attached ebuild successfully builds keybase-1.0.8.0.
Comment 12 Nicolas Bock gentoo-dev 2016-01-19 17:27:55 UTC
Matt, sorry for the delays, but I finally committed your ebuild to the tree. Please give it a try! And thanks so much for taking the time to writing that ebuild.
Comment 13 Matt Whitlock 2016-01-19 20:01:06 UTC
(In reply to Nicolas Bock from comment #12)
> Please give it a try!

Works! Thanks.