8000 Please provide ARMv8 images · Issue #13 · kjarosh/latex-docker · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Please provide ARMv8 images #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers a 8000 nd 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

Open
sdavids opened this issue Sep 9, 2024 · 10 comments
Open

Please provide ARMv8 images #13

sdavids opened this issue Sep 9, 2024 · 10 comments

Comments

@sdavids
Copy link
sdavids commented Sep 9, 2024

Apple uses ARM in Macs since 2020.

$ sw_vers
ProductName:            macOS
ProductVersion:         14.6.1
BuildVersion:           23G93
$ uname -m
arm64
$ docker --version
Docker version 27.1.1, build 6312585

$ docker run --rm -v "$PWD:/src" -w /src -u "$UID:$GID" kjarosh/latex:2024.3 latexmk -pdf -output-directory=out main.tex
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
...

https://tug.org/texlive/doc.html#platforms

aarch64-linux | GNU/Linux on ARM64

https://github.com/docker-library/official-images#architectures-other-than-amd64

ARMv8 64-bit (arm64v8)

https://hub.docker.com/_/alpine

arm64v8


https://docs.docker.com/build/building/multi-platform/

https://docs.docker.com/reference/cli/docker/buildx/build/#platform

@sdavids
Copy link
Author
sdavids commented Sep 9, 2024

A workaround is to add --platform=linux/amd64:

docker run --platform=linux/amd64 ... kjarosh/latex:2024.3 ...

That needs Rosetta 2 to be installed and enabled in Docker though.

@kjarosh
Copy link
Owner
kjarosh commented Sep 9, 2024

You're right that both TeXLive and Alpine provide aarch64 versions, but the problem is that TeXLive does not provide aarch64 version with musl (which Alpine uses). The link to tug.org you posted (https://tug.org/texlive/doc.html#platforms) lists x86_64 as the only architecture with musl support.

So the options are currently to either:

  1. do not use Alpine and use something with glibc, which would basically require a full rewrite of the image increasing its size,
  2. use something different than Alpine for aarch64 images only, which would be weird,
  3. somehow make TeXLive work with aarch64 and musl, that will probably require building TeXLive from sources and will make that support unofficial (assuming it even works).

To be honest building TeXLive from sources sounds interesting, but is a major feature to implement.

@kjarosh
Copy link
Owner
kjarosh commented Oct 14, 2024

I'm thinking the easiest and cleanest way of providing texlive on Alpine aarch64 would be writing a custom APKBUILD for texlive and building it. There's an existing APKBUILD for texlive (https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/texlive) but I cannot use it in any way as it's not licensed.

@sdavids
Copy link
Author
sdavids commented Feb 5, 2025

@sdavids
Copy link
Author
sdavids commented Feb 5, 2025

This issue precludes using your image as a devcontainer image.

It supports image runArgs but there is no way to say "only do this on ARM64".

@kjarosh
Copy link
Owner
kjarosh commented Feb 5, 2025

as it's not licensed.

https://gitlab.alpinelinux.org/alpine/aports/-/blame/master/community/texlive/APKBUILD#L12

This is the license o 8000 f the contents of the package, not of the package metadata itself (and build instructions). See https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package#license

The APKBUILD (and possibly related files from the directory) are lacking license information, which means that by default I do not have any right to use them.

Please let me know if you find any licensing information, I would happily use that to provide the image for AArch64. But as of now I would have to come up with my own build file for alpine, which is a bit too time consuming (for now at least).

@sdavids
Copy link
Author
sdavids commented Feb 5, 2025

The APKBUILD (and possibly related files from the directory) are lacking license information, which means that by default I do not have any right to use them.

@maribu You are listed as the maintainer, maybe you could resolve the licensing issue?

This project currently uses the MIT license.

@maribu
Copy link
maribu commented Feb 5, 2025

I think licensing the APKBUILDs in Alpine is something to better discuss with the Alpine maintainers. Just adding a license info to a single APKBUILD without coordination with the rest of the distro is something that I don't think is a good idea. That said, I would support any coordinated change to add an explicit free license and would agree that my contributes are licensed under whatever free License Alpine recommends.

For now: Feel free to use the parts of the APKBUILD that I authored for a new APKBUILD under 0BSD (that is what Arch Linux used for PKGBUILDs; I think that one has a good chance to be championed for Alpine as well). I hope that helps with the immediate problem.

@sertonix
Copy link

For the record: There is an open issue to license the aports themselfs. https://gitlab.alpinelinux.org/alpine/aports/-/issues/9074

@kjarosh
Copy link
Owner
kjarosh commented Feb 13, 2025

Thank you @sertonix for mentioning the issue. I read it when I first researched the possibility of using aports, but couldn't find it last week. Also thank you for your contribution and involvement with this issue in general. I think it's important for aports to license their work properly.

Thank you @maribu for your permission but I can see that, unfortunately, the texlive APKBUILD had multiple contributors. Realistically, we would need permission from each single contributor. Patches cannot really be licensed without regard for the license of the original work, as they are considered derivative work.

Regarding the 0BSD license that Alpine plans to add without a consent (or with the "consent" defined as "the lack of consent")---it doesn't change anything. We still need consent from all authors. I'm not sure if Alpine plans to disclose which authors consented or not; without it, their LICENSE file doesn't mean anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
0