-
-
Notifications
You must be signed in to change notification settings - Fork 321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Alpine package for aarch64 #1903
Comments
Thanks @wbadart. (We should clarify that it's x64 on the install page.) I think the answer depends on whether Github offers aarch64 workers - I think not right now ? |
Or, does alpine have such infrastructure ? How do they obtain aarch64 binaries for other packages ? |
And does it need to be Alpine-specific, or would a generic static aarch64 binary that also worked for other Pi distros be possible ? |
Good questions, not sure. I think the Alpine wiki page on creating packages may be outdated (e.g. it doesn't give Could cross-compiling be a possible avenue for |
I believe GHC doesn't really do cross-compiling, unless possibly via some Nix magic. |
@wbadart You should be able to just take an existing static aarch64 build from https://hledger.org and use that. Or follow my instructions here to build it youself e.g. In a aarch64 docker or chroot: #1268 (comment) |
I didn't understand that, where is "an existing static aarch64 build from https://hledger.org/" ? |
On https://hledger.org/install.html there is a link unter Raspberry Pi to https://github.com/simonmichael/hledger/releases/tag/1.18.1 where my build of hledger for aarch64 is available: https://github.com/simonmichael/hledger/releases/download/1.18.1/hledger-aarch64-manjaro.gz It's a little outdated though... |
Ah, thanks.
|
@nobodyinperson thanks for the tip! I'll see check and see if |
I put the build instructions together into a Here is hledger-1.26.1-linux-aarch64.gz Apparently, with |
Thanks! Did you try cabal update to resolve the build errors ? What was the full cabal output ?
… On Dec 21, 2022, at 23:47, Yann Büchau ***@***.***> wrote:
I put the build instructions together into a Dockerfile so building hledger e.g. for aarch64 is simpler in the future: https://gitlab.com/nobodyinperson/hledger-build-docker <https://gitlab.com/nobodyinperson/hledger-build-docker>
Here is hledger v 1.26.1 aarch64 built this way, @simonmichael <https://github.com/simonmichael> feel free to add it to the GitHub Release page and https://hledger.org/install.html#raspberry-pi <https://hledger.org/install.html#raspberry-pi>:
hledger-1.26.1-linux-aarch64.gz <https://github.com/simonmichael/hledger/files/10285691/hledger-1.26.1-linux-aarch64.gz>
Apparently, with cabal, hledger 1.26.1 is the latest buildable version. Later versions throw weird dependency errors. At least in that debian container. 🤷
—
Reply to this email directly, view it on GitHub <#1903 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAACPIHDJTVFSWWXTP3GKPTWOQPTPANCNFSM55IJWDIQ>.
You are receiving this because you were mentioned.
|
Meanwhile my Raspberry Pi built yet an older version of hledger: Error message for any version above 1.26.1 (tested with 1.27 and 1.28): Sending build context to Docker daemon 211.2MB
Step 1/9 : FROM debian
---> 917ea2fdcbd6
Step 2/9 : MAINTAINER Yann Büchau <nobodyinperson@posteo.de>
---> Using cache
---> a1bc1777526f
Step 3/9 : ENV LC_ALL=C.UTF-8
---> Using cache
---> b6a4e72e5443
Step 4/9 : RUN apt-get update
---> Using cache
---> 31021e0f6b66
Step 5/9 : RUN apt-get install -y cabal-install
---> Using cache
---> 5d652f6765ac
Step 6/9 : RUN cabal update
---> Using cache
---> 512969eb431f
Step 7/9 : RUN cabal install alex happy
---> Using cache
---> 356c275388a5
Step 8/9 : RUN cabal install hledger-1.28
---> Running in 6d1780a6fcfb
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: hledger-1.28 (user goal)
[__1] next goal: base (dependency of hledger)
[__1] rejecting: base-4.13.0.0/installed-4.1... (conflict: hledger =>
base>=4.14 && <4.18)
[__1] rejecting: base-4.17.0.0, base-4.16.4.0, base-4.16.3.0, base-4.16.2.0,
base-4.16.1.0, base-4.16.0.0, base-4.15.1.0, base-4.15.0.0, base-4.14.3.0,
base-4.14.2.0, base-4.14.1.0, base-4.14.0.0, base-4.13.0.0, base-4.12.0.0,
base-4.11.1.0, base-4.11.0.0, base-4.10.1.0, base-4.10.0.0, base-4.9.1.0,
base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0, base-4.7.0.2,
base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0,
base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0,
base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0,
base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable package requires
installed instance)
[__1] fail (backjumping, conflict set: base, hledger)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: hledger, base |
If it's using base-4.13, that must be GHC 8.8 ? If so that's too old, the oldest GHC we build with nowadays is 8.10.
|
❯ sudo docker run --rm -it debian sh -c 'apt update -q 2>/dev/null >/dev/null;apt show ghc 2>/dev/null | grep -i version'
Version: 8.8.4-2 Yep, debian again with its delightfully up-to-date software... 🙄 |
Finally got the build working with the hledger-1.28-linux-aarch64-fedora.gz However as alpine uses musl-libc, these builds won't work under Alpine I'm afraid, maybe with this compatibility g-something. All other platforms should be able to run this binary as usual. |
Would it help you out if there were more platforms supported in Docker images? I'm attempting to do that in #2002. Also thinking that potentially all the build steps in the Linux binary build could happen in the top level Dockerfile and the CI step for that could just consume that Dockerfile |
hledger, on aarch64, is available since alpine v3.17 from upstream community repository. The instructions to install hledger are updated to reflect this as well. |
@simonmichael This issue is fixed downstream. I maintain hledger and related software in alpine. Sharing information about how we package software: We build everything from source. We have automated builders for all distribution supported architectures that build, test and sign packages. We couldn't package hledger for aarch64 before because GHC wasn't ported to it then. As of now, only x86_64 and aarch64 are supported. Once GHC is ported to other architectures, porting hledger should be as trivial as |
Thanks @d5ng4i. After simonmichael/hledger_site#115, is this issue now resolved ? I've lost the context a bit. |
This was fixed a year ago. I should have mentioned this in <#1903 (comment)>. We can close this issue.
…On September 11, 2024 1:21:55 AM GMT+05:30, Simon Michael ***@***.***> wrote:
Thanks @d5ng4i. After simonmichael/hledger_site#115, is this issue now resolved ? I've lost the context a bit.
--
Reply to this email directly or view it on GitHub:
#1903 (comment)
You are receiving this because you were mentioned.
Message ID: ***@***.***>
|
Hi Simon-
I'm trying to get
hledger
installed on a Raspberry Pi 4 running Alpine (3.16). I was excited to see packages in the Installation Guide for both Alpine (apk) and Raspberry Pi, but after enabling theapk
testing repo and trying to installhledger
, the package wasn't found.I realized after a moment that the
apk
package isx86_64
-only. Given what automation the project already has in place, how big a lift would it be to tack onaarch64
binaries forapk
? Happy to help out where I can, though I've never been on the distributor end of anapk
package, so I'd need some time to get spun up on that.Thanks for your consideration!
The text was updated successfully, but these errors were encountered: