emacs-eask/cli

[RFE] Add PKGBUILD to make easier installation on Archlinux (?)

Closed this issue · 9 comments

This is really a question, but it's also an RFE for which I can write the code/docs if maintainers are okay with the idea. I'd ask this in some chat but I didn't find in README any communication channel (like an ML or Matrix or plain old IRC…), so am doing that here.

Archlinux packaging system supports providing a simple script where you define a few functions and variables, and then run makepkg and the packaging system downloads the source code and builds a package for you. This "script" is called PKGBUILD, and I could write one and add a paragraph to "Installation" section which would refer to using this script to simplify installation on this distro.

Is that something maintainers would be interested in?

This is really a question, but it's also an RFE for which I can write the code/docs if maintainers are okay with the idea. I'd ask this in some chat but I didn't find in README any communication channel (like an ML or Matrix or plain old IRC…), so am doing that here.

Sorry for the terrible documentation. There is a discord link in the README file and on the top of the website.

Archlinux packaging system supports providing a simple script where you define a few functions and variables, and then run makepkg and the packaging system downloads the source code and builds a package for you. This "script" is called PKGBUILD, and I could write one and add a paragraph to "Installation" section which would refer to using this script to simplify installation on this distro.

Is that something maintainers would be interested in?

That's awesome! I don't use Arch Linux and do not have the knowledge to do this, so feel free to open PRs for this! :)

Great, thanks! I'll send a PR closing this then later today

I am confused. Release tarballs contain an x86_64 binary eask, however when following docs for building from source I end up with a bash script bin/eask. There's no building step, so how do you get an x86_64 binary?

When you build from source, you are using the node.js environment (through bin/eask). We are building the executable through pkg (this will soon be replaced with built-in single executable applications.). You can find the command in package.json file:

cli/package.json

Lines 8 to 14 in dde1398

"pkg-all": "pkg package.json",
"pkg-linux-arm64": "pkg package.json -t node16-linux-arm64 --output dist/eask",
"pkg-linux-x64": "pkg package.json -t node16-linux-x64 --output dist/eask",
"pkg-macos-arm64": "pkg package.json -t node16-macos-arm64 --output dist/eask",
"pkg-macos-x64": "pkg package.json -t node16-macos-x64 --output dist/eask",
"pkg-win-arm64": "pkg package.json -t node16-win-arm64 --output dist/eask",
"pkg-win-x64": "pkg package.json -t node16-win-x64 --output dist/eask"

Thank you!

Sorry for the terrible documentation. There is a discord link in the README file and on the top of the website.

Btw, it's okay, it's just my bad that I didn't know a communication channel may be shown inside a badge C: So I didn't read them

So, I think besides just building with pkg there's something else is missing, because after I run a eask installed to /usr/bin/ I get a Pkg: Error reading from file.. Although it works fine when run locally from dist/eask

Yeah, you need to copy the lisp folder to the same directory as the executable to structure the same as our release binaries. You can see it by downloading any .tar.gz/.zip from the release page.

Oh, I see. It's just that, it seems unusual to have files structure where /usr/bin/ contains both a binary and some shared files. In Emacs for example, lisp/ files are being put under /usr/share/. Is there no way to do the same for eask?

No, unfortunately this is not possible. :(

I preferred the current structure due to the simplicity and the project scale.