Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 575786 - net-im/slack-bin: Slack.com desktop application
Summary: net-im/slack-bin: Slack.com desktop application
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Vladimir Pavljuchenkov (SpiderX)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-26 23:30 UTC by Tanktalus
Modified: 2016-09-27 20:29 UTC (History)
4 users (show)

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


Attachments
proposed initial draft of a slack ebuild (slack-2.0.0.0.ebuild,641 bytes, text/plain)
2016-02-26 23:30 UTC, Tanktalus
Details
slack-2.0.1.ebuild (slack-2.0.1.ebuild,1.45 KB, text/plain)
2016-03-19 22:14 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
metadata.xml (metadata.xml,587 bytes, text/xml)
2016-03-19 22:14 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
slack-2.0.3.ebuild (slack-2.0.3.ebuild,1.57 KB, text/plain)
2016-04-06 17:13 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
slack-2.0.4.ebuild (slack-2.0.4.ebuild,1.68 KB, text/plain)
2016-05-10 18:24 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
slack-2.0.4.ebuild (slack-2.0.4.ebuild,1.68 KB, text/plain)
2016-05-11 14:04 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
ebuild to install the slack 2.0.5 binary (slack built) program (slack-2.0.5.ebuild,739 bytes, text/plain)
2016-05-23 20:22 UTC, Paul Healy
Details
slack-2.0.6.ebuild (slack-2.0.6.ebuild,1.68 KB, text/plain)
2016-05-24 08:11 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
slack-2.1.0.ebuild (slack-2.1.0.ebuild,1.49 KB, text/plain)
2016-07-02 15:52 UTC, Vladimir Pavljuchenkov (SpiderX)
Details
slack-bin-2.1.2.ebuild (slack-bin-2.1.2.ebuild,1.55 KB, text/plain)
2016-08-31 20:23 UTC, Vladimir Pavljuchenkov (SpiderX)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tanktalus 2016-02-26 23:30:35 UTC
Created attachment 426714 [details]
proposed initial draft of a slack ebuild

Slack has a standalone client that is marginally more useful than the browser-based client.  It's available in debian (Ubuntu) and RPM (Fedora) versions.  I've found the RPM version to work fine on my Gentoo system, but I didn't like it showing up in "rpm -qa" so I wrote a quick ebuild for it.

Unfortunately, I couldn't find an actual license in there to know what license it is.

I've built this ebuild as net-im/slack, and I'm sure I'm not properly following all the Gentoo standards for it, but I figure this is a good start, and others can use it, too, whether it's integrated into portage or not (and they can find this bug and download the ebuild for their own use).
Comment 1 Vladimir Pavljuchenkov (SpiderX) 2016-03-19 22:14:40 UTC
Created attachment 428614 [details]
slack-2.0.1.ebuild

My version of ebuild.
Diffs from previous one:
1. x86 support.
2. Includes RDEPEND and all licenses.
3. Installs to /opt.
Comment 2 Vladimir Pavljuchenkov (SpiderX) 2016-03-19 22:14:55 UTC
Created attachment 428616 [details]
metadata.xml
Comment 3 Tanktalus 2016-03-20 03:32:20 UTC
Another difference is you went for the debian version of the source.  Not that it matters at the end of the day - as long as it extracts and works.  Which it does seem to here.  Thanks!
Comment 4 Tanktalus 2016-04-06 16:17:53 UTC
@SpiderX - looks like 2.0.3 is out and makes a number of layout changes that break your ebuild.  You seem to know more about this stuff than I do, would you take another crack at it?
Comment 5 Vladimir Pavljuchenkov (SpiderX) 2016-04-06 17:13:02 UTC
Created attachment 429792 [details]
slack-2.0.3.ebuild

They changed some paths in deb archive.
Comment 6 Tanktalus 2016-05-10 16:00:33 UTC
slack 2.0.4 is out ... but again doesn't work with this ebuild.  Not sure if that's the ebuild or the deb.
Comment 7 Vladimir Pavljuchenkov (SpiderX) 2016-05-10 18:24:23 UTC
Created attachment 433858 [details]
slack-2.0.4.ebuild

> slack 2.0.4 is out ... but again doesn't work with this ebuild.  Not sure if that's the ebuild or the deb.

Both :)

1. Bump to 2.0.4.
2. Reworked dependencies.
3. Fix another QA_PREBUILT.
Comment 8 Tanktalus 2016-05-10 20:05:09 UTC
Unfortunately here, 2.0.4 crashes on start :(
Comment 9 Vladimir Pavljuchenkov (SpiderX) 2016-05-10 20:23:47 UTC
> Unfortunately here, 2.0.4 crashes on start :(

1. Try to remove config - rm /home/<user>/.config/Slack

2. Launch from shell - /opt/slack/slack
and show output.
Comment 10 Tanktalus 2016-05-11 04:17:25 UTC
I don't generally use gnome - so this "libgnome-keyring.so.0" isn't installed.  May be another requirement here :)  After merging libgnome-keyring 3.12.0, it loads and works.

$ /opt/slack/slack
Creating Slack Application
(electron) submitUrl is deprecated. Use submitURL instead.
https://notify.bugsnag.com:443/ "{\"apiKey\":\"acaff8df67924f677747922423057034\",\"notifier\":{\"name\":\"Bugsnag Node Notifier\",\"version\":null,\"url\":\"https://github.com/bugsnag/bugsnag-node\"},\"events\":[{\"exceptions\":[{\"message\":\"libgnome-keyring.so.0: cannot open shared object file: No such file or directory\",\"errorClass\":\"Error\",\"stacktrace\":[{\"file\":null,\"path\":null,\"method\":\"Error\",\"lineNumber\":null,\"columnNumber\":null},{\"file\":\"ELECTRON_ASAR.js\",\"path\":\"ELECTRON_ASAR.js\",\"method\":\"module.(anonymous function) [as dlopen]\",\"lineNumber\":158,\"columnNumber\":20},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._extensions..node\",\"lineNumber\":440,\"columnNumber\":18},{\"file\":\"ELECTRON_ASAR.js\",\"path\":\"ELECTRON_ASAR.js\",\"method\":\"module.(anonymous function) [as .node]\",\"lineNumber\":169,\"columnNumber\":18},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"node_modules/keytar/lib/keytar.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/keytar/lib/keytar.js\",\"method\":\"none\",\"lineNumber\":4,\"columnNumber\":12},{\"file\":\"node_modules/keytar/lib/keytar.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/keytar/lib/keytar.js\",\"method\":\"none\",\"lineNumber\":58,\"columnNumber\":4},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"_compile\",\"lineNumber\":413,\"columnNumber\":34},{\"file\":\"node_modules/electron-compile/lib/require-hook.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/electron-compile/lib/require-hook.js\",\"method\":\"require.extensions.(anonymous function) [as .js]\",\"lineNumber\":39,\"columnNumber\":14},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"src/browser/keychain-storage.js\",\"path\":\"/opt/slack/resources/app.asar/src/browser/keychain-storage.js\",\"method\":\"none\",\"lineNumber\":19,\"columnNumber\":15,\"inProject\":true},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"_compile\",\"lineNumber\":413,\"columnNumber\":34},{\"file\":\"node_modules/electron-compile/lib/require-hook.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/electron-compile/lib/require-hook.js\",\"method\":\"require.extensions.(anonymous function) [as .js]\",\"lineNumber\":39,\"columnNumber\":14},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"src/lib/store.js\",\"path\":\"/opt/slack/resources/app.asar/src/lib/store.js\",\"method\":\"none\",\"lineNumber\":43,\"columnNumber\":24,\"inProject\":true},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"_compile\",\"lineNumber\":413,\"columnNumber\":34},{\"file\":\"node_modules/electron-compile/lib/require-hook.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/electron-compile/lib/require-hook.js\",\"method\":\"require.extensions.(anonymous function) [as .js]\",\"lineNumber\":39,\"columnNumber\":14},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"src/actions/app-actions.js\",\"path\":\"/opt/slack/resources/app.asar/src/actions/app-actions.js\",\"method\":\"none\",\"lineNumber\":8,\"columnNumber\":14,\"inProject\":true},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"_compile\",\"lineNumber\":413,\"columnNumber\":34},{\"file\":\"node_modules/electron-compile/lib/require-hook.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/electron-compile/lib/require-hook.js\",\"method\":\"require.extensions.(anonymous function) [as .js]\",\"lineNumber\":39,\"columnNumber\":14},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"src/magic-login/process-link.js\",\"path\":\"/opt/slack/resources/app.asar/src/magic-login/process-link.js\",\"method\":\"none\",\"lineNumber\":18,\"columnNumber\":19,\"inProject\":true},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"_compile\",\"lineNumber\":413,\"columnNumber\":34},{\"file\":\"node_modules/electron-compile/lib/require-hook.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/electron-compile/lib/require-hook.js\",\"method\":\"require.extensions.(anonymous function) [as .js]\",\"lineNumber\":39,\"columnNumber\":14},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"src/browser/application.js\",\"path\":\"/opt/slack/resources/app.asar/src/browser/application.js\",\"method\":\"none\",\"lineNumber\":71,\"columnNumber\":20,\"inProject\":true},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"_compile\",\"lineNumber\":413,\"columnNumber\":34},{\"file\":\"node_modules/electron-compile/lib/require-hook.js\",\"path\":\"/opt/slack/resources/app.asar/node_modules/electron-compile/lib/require-hook.js\",\"method\":\"require.extensions.(anonymous function) [as .js]\",\"lineNumber\":39,\"columnNumber\":14},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"load\",\"lineNumber\":357,\"columnNumber\":32},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"Module._load\",\"lineNumber\":314,\"columnNumber\":12},{\"file\":\"module.js\",\"path\":\"module.js\",\"method\":\"require\",\"lineNumber\":367,\"columnNumber\":17},{\"file\":\"internal/module.js\",\"path\":\"internal/module.js\",\"method\":\"require\",\"lineNumber\":16,\"columnNumber\":19},{\"file\":\"src/browser/main.js\",\"path\":\"/opt/slack/resources/app.asar/src/browser/main.js\",\"method\":\"global.reporter.autoNotify\",\"lineNumber\":239,\"columnNumber\":21,\"inProject\":true},{\"file\":\"domain.js\",\"path\":\"domain.js\",\"method\":\"run\",\"lineNumber\":228,\"columnNumber\":14},{\"file\":\"src/browser/bugsnag/bugsnag.js\",\"path\":\"/opt/slack/resources/app.asar/src/browser/bugsnag/bugsnag.js\",\"method\":\"none\",\"lineNumber\":199,\"columnNumber\":20,\"inProject\":true},{\"file\":\"internal/process/next_tick.js\",\"path\":\"internal/process/next_tick.js\",\"method\":\"_combinedTickCallback\",\"lineNumber\":67,\"columnNumber\":7},{\"file\":\"internal/process/next_tick.js\",\"path\":\"internal/process/next_tick.js\",\"method\":\"_tickDomainCallback\",\"lineNumber\":122,\"columnNumber\":9}]}],\"metaData\":{\"severity\":\"error\"},\"appVersion\":\"2.0.4\",\"releaseStage\":\"production\",\"payloadVersion\":\"2\",\"severity\":\"error\",\"device\":{\"hostname\":\"naboo\"}}]}"
[Error: Failed to get path]
Comment 11 Vladimir Pavljuchenkov (SpiderX) 2016-05-11 14:04:00 UTC
Created attachment 433964 [details]
slack-2.0.4.ebuild

> I don't generally use gnome - so this "libgnome-keyring.so.0" isn't installed.  May be another requirement here :)  After merging libgnome-keyring 3.12.0, it loads and works.

Yes, you are right.
I made a mistake - mentioned gnome-base/gnome-keyring, when gnome-base/libgnome-keyring should be here.
Fixed.
Comment 12 Paul Healy 2016-05-23 20:22:24 UTC
Created attachment 435134 [details]
ebuild to install the slack 2.0.5 binary (slack built) program

Just noticed/found this bug - for reference here is an ebuild I have been using to install slack.
Comment 13 Vladimir Pavljuchenkov (SpiderX) 2016-05-24 08:11:02 UTC
Created attachment 435194 [details]
slack-2.0.6.ebuild

1. media-libs/libcanberra[gtk] -> media-libs/libcanberra[gtk3]
Comment 14 Michael 'veremitz' Everitt 2016-05-25 11:46:29 UTC
Any of you guys up for maintaining this under the Gentoo Proxy Maintainers project (https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers) ?

And a quick FYI .. please attach build/run logs or pastebin .. keeps the bugzie tidy and easy to (scan-) read :) Cheers!
Comment 15 Vladimir Pavljuchenkov (SpiderX) 2016-05-25 11:58:28 UTC
> Any of you guys up for maintaining this under the Gentoo Proxy Maintainers project?

Sure.
I am a proxy-maintainer of some ebuilds - dhcpdrop, qtpass, etc...(https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers/Proxy_Maintained_Packages)

If someone is going to review and commit this ebuild to the portage tree, I could maintain it.
Comment 16 Vladimir Pavljuchenkov (SpiderX) 2016-07-02 15:52:39 UTC
Created attachment 439444 [details]
slack-2.1.0.ebuild

1. Bump to 2.1.0
2. Fixed slack icon (removed src_prepare section).
Comment 17 Leho Kraav (:macmaN @lkraav) 2016-08-15 08:55:49 UTC
(In reply to Vladimir Pavljuchenkov (SpiderX) from comment #16)
> Created attachment 439444 [details]
> slack-2.1.0.ebuild
> 
> 1. Bump to 2.1.0
> 2. Fixed slack icon (removed src_prepare section).

Ebuild works nicely. Anybody up for a github pull request to get this in the tree?
Comment 18 Vladimir Pavljuchenkov (SpiderX) 2016-08-15 18:43:35 UTC
> Anybody up for a github pull request to get this in the tree?
Done.
https://github.com/gentoo/gentoo/pull/2088
Comment 19 Victor Gaydov 2016-08-17 19:16:01 UTC
Shouldn't it be named as net-im/slack-bin?
Comment 20 Vladimir Pavljuchenkov (SpiderX) 2016-08-17 19:23:53 UTC
You are right.
I'll rename it on next version bump.
Comment 21 Patrice Clement gentoo-dev 2016-08-20 08:25:12 UTC
Your PR looks good except for the Manifest file which should solely contain the distfiles hashes [1]. Did you commit it using repoman? Also, this is a binary package so Victor is right, the package name must be "slack-bin" and not "slack". I would advise you to close this PR to get everything sorted and file another one. Thanks.

[1]: https://github.com/SpiderX/gentoo/blob/f0250caf2931140237527df738fee7214e05044b/net-im/slack/Manifest#L1
Comment 22 Vladimir Pavljuchenkov (SpiderX) 2016-08-20 10:38:53 UTC
> Your PR looks good except for the Manifest file which should solely contain the distfiles hashes [1].

How should I generate Manifest?

I used to run 'ebuild <ebuild> digest'. Now I see that 'ebuild <ebuild> manifest' is suggested (https://devmanual.gentoo.org/general-concepts/manifest/). But both, digest and manifest params, do the same - they create Manifest with everything in the package directory.
'repoman --mode manifest' behaves in the same way.

Or I should use app-portage/repoman and portage-2.3.0?

P.S. Is manual (https://devmanual.gentoo.org/general-concepts/manifest/) outdated?
"Also The Manifest file contains digests (currently RMD160, SHA1, SHA256, SHA512 and WHIRLPOOL) and file size data for <b>every file</b> in the directory and any subdirectories."

P.P.S. Or I should just remove everything except distfiles hashes from Manifest manually?
Comment 23 Patrice Clement gentoo-dev 2016-08-21 16:47:59 UTC
You're making your life harder than it should. Use repoman! :)

First, cd into the directory your ebuild is in:
$ cd /path/to/your/repo/net-im/slack-bin/

Invoke git and add your new ebuild to the repo, along with the Manifest and the metadata.xml files:
$ git add .

Never commit with git but with repoman like such:
$ repoman commit

repoman will (re)generate the hashes and update the Manifest file if needed. The rest is similar to git: it will then prompt you for a commit message.

Let me know if you need help.
Comment 24 Tanktalus 2016-08-31 19:09:22 UTC
FYI - slack 2.1.2 is available, so there's an opportune time to rename the ebuild at the same time.
Comment 25 Vladimir Pavljuchenkov (SpiderX) 2016-08-31 20:23:08 UTC
Created attachment 444656 [details]
slack-bin-2.1.2.ebuild
Comment 26 Vladimir Pavljuchenkov (SpiderX) 2016-08-31 20:27:37 UTC
Patrice Clement

Can you confirm just commit 0084795 or I have to pull a new request on github?
Comment 27 Patrice Clement gentoo-dev 2016-09-04 10:17:22 UTC
Please file a new pull request.
Comment 28 Vladimir Pavljuchenkov (SpiderX) 2016-09-16 13:06:24 UTC
Done - https://github.com/gentoo/gentoo/pull/2342
Comment 29 Patrice Clement gentoo-dev 2016-09-27 20:29:51 UTC
commit e780cced313278807c053656e1baa3f721c5e006 (HEAD -> master, origin/master, origin/HEAD)
Author:     Vladimir Pavljuchenko (SpiderX) <spiderx@spiderx.dp.ua>
AuthorDate: Fri Sep 16 16:02:04 2016 +0300
Commit:     Patrice Clement <monsieurp@gentoo.org>
CommitDate: Tue Sep 27 22:23:30 2016 +0200

net-im/slack-bin: new package.

Slack is a cloud-based team collaboration tool. It offers persistent chat rooms
(channels) organized by topic, as well as private groups and direct messaging.
All content (files, conversations, people) inside Slack is searchable. Slack
integrates with a large number of third-party services and supports
community-built integrations.

Base for ebuild from https://github.com/SpiderX/portage-overlay/tree/master/net-im/slack-bin.

Gentoo-Bug: https://bugs.gentoo.org/575786

Package-Manager: portage-2.2.28
Closes: https://github.com/gentoo/gentoo/pull/2342

Signed-off-by: Patrice Clement <monsieurp@gentoo.org>

net-im/slack-bin/Manifest               |  2 +
net-im/slack-bin/metadata.xml           | 22 ++++++++++
net-im/slack-bin/slack-bin-2.1.2.ebuild | 78 +++++++++++++++++++++++++++++++++
3 files changed, 102 insertions(+)
create mode 100644 net-im/slack-bin/Manifest
create mode 100644 net-im/slack-bin/metadata.xml
create mode 100644 net-im/slack-bin/slack-bin-2.1.2.ebuild

Thank you for your contribution!