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).
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.
Created attachment 428616 [details] metadata.xml
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!
@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?
Created attachment 429792 [details] slack-2.0.3.ebuild They changed some paths in deb archive.
slack 2.0.4 is out ... but again doesn't work with this ebuild. Not sure if that's the ebuild or the deb.
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.
Unfortunately here, 2.0.4 crashes on start :(
> 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.
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]
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.
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.
Created attachment 435194 [details] slack-2.0.6.ebuild 1. media-libs/libcanberra[gtk] -> media-libs/libcanberra[gtk3]
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!
> 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.
Created attachment 439444 [details] slack-2.1.0.ebuild 1. Bump to 2.1.0 2. Fixed slack icon (removed src_prepare section).
(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?
> Anybody up for a github pull request to get this in the tree? Done. https://github.com/gentoo/gentoo/pull/2088
Shouldn't it be named as net-im/slack-bin?
You are right. I'll rename it on next version bump.
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
> 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?
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.
FYI - slack 2.1.2 is available, so there's an opportune time to rename the ebuild at the same time.
Created attachment 444656 [details] slack-bin-2.1.2.ebuild
Patrice Clement Can you confirm just commit 0084795 or I have to pull a new request on github?
Please file a new pull request.
Done - https://github.com/gentoo/gentoo/pull/2342
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!