emacs-eask / cli

CLI for building, running, testing, and managing your Emacs Lisp dependencies
https://emacs-eask.github.io/
GNU General Public License v3.0
138 stars 21 forks source link

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

Closed Hi-Angel closed 9 months ago

Hi-Angel commented 9 months ago

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?

jcs090218 commented 9 months ago

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! :)

Hi-Angel commented 9 months ago

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

Hi-Angel commented 9 months ago

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?

jcs090218 commented 9 months ago

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:

https://github.com/emacs-eask/cli/blob/dde13987ab38b7998d5607a1999b5e4bc855c440/package.json#L8-L14

Hi-Angel commented 9 months ago

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

Hi-Angel commented 9 months ago

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

jcs090218 commented 9 months ago

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.

Hi-Angel commented 9 months ago

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?

jcs090218 commented 9 months ago

No, unfortunately this is not possible. :(

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