Skip to content

Conversation

@mkurz
Copy link

@mkurz mkurz commented Dec 11, 2025

All I did was basically just copying the linux maven profile and created the linux-aarch64 one, with everything changed to aarch64.
Same for the GitHub actions workflow.

The only thing I do not understand is why in pdf-over-commons/pom.xml you have win32.x86_64 hardcoded as dependency?
I had to change that to the aarch64 ones to make things work for me - but I think there needs to be a more general solution?

Anyway, with this PR I am now able to run PDF-Over successfully on my Linux aarch64 system - with PDF signing via ID Austria working successfully.

$ uname -m
aarch64

$ java -version
openjdk version "21.0.9" 2025-10-21 LTS
OpenJDK Runtime Environment Temurin-21.0.9+10 (build 21.0.9+10-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.9+10 (build 21.0.9+10-LTS, mixed mode, sharing)

$ mvn -B clean install -Plinux-aarch64 -Pci-build -Dno-native-profile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] PDF-Over                                                           [pom]
[INFO] pdf-over-commons                                                   [jar]
[INFO] PDF-Over PDF-AS 4 Signer                                           [jar]
[INFO] PDF-Over GUI                                                       [jar]
[INFO] 
[INFO] -------------------------< at.a-sit:pdf-over >--------------------------
[INFO] Building PDF-Over 4.4.8-SNAPSHOT                                   [1/4]
[INFO]   from pom.xml
...
[INFO] --- jarsigner:1.4:sign (sign) @ pdf-over-gui ---
[INFO] 1 archive(s) processed
[INFO] 
[INFO] --- truezip:1.2:copy (build-archive) @ pdf-over-gui ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for PDF-Over 4.4.8-SNAPSHOT:
[INFO] 
[INFO] PDF-Over ........................................... SUCCESS [  0.109 s]
[INFO] pdf-over-commons ................................... SUCCESS [  0.953 s]
[INFO] PDF-Over PDF-AS 4 Signer ........................... SUCCESS [  3.666 s]
[INFO] PDF-Over GUI ....................................... SUCCESS [  2.590 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.370 s
[INFO] Finished at: 2025-12-11T00:48:08+01:00
[INFO] ------------------------------------------------------------------------

$ GDK_BACKEND=x11 java -cp './pdf-over-build/lib/*' at.asit.pdfover.gui.Main "$@"
Screenshot_20251211_010114

(I am running Asahi Linux on my MacBook Pro M1. Actually, not the reference distribution Fedora Asahi Remix, but Asahi Arch Linux ARM (which I am also maintaining)).

<version>4.35</version>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt.gtk.linux.aarch64</artifactId>
<version>3.129.0</version>
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the only thing I don't really understand - why do you depend on the win32 artifacts?
Not sure if it is OK to just switch to the linux aarch64 artifacts here.
Or should the dependency be marked as provided?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you do not trust me with this binary, please download it yourself from https://adoptium.net/de/temurin/releases?version=21&os=linux&arch=aarch64&mode=filter

@mkurz
Copy link
Author

mkurz commented Dec 11, 2025

BTW:
swt shared object files get extracted to ~/.swt/lib/. With this pull request they are now the correct aarch64 files:

$ file ~/.swt/lib/linux/aarch64/libswt-*
/home/mkurz/.swt/lib/linux/aarch64/libswt-atk-gtk-4968r13.so:   ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=fc4c22b082ad6c9eb5a334150b124fce75aa56ff, stripped
/home/mkurz/.swt/lib/linux/aarch64/libswt-awt-gtk-4968r13.so:   ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=dfb11570cfc997bd7aa53518bceeb4be649a278c, stripped
/home/mkurz/.swt/lib/linux/aarch64/libswt-cairo-gtk-4968r13.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b12272c25d812ea6c66032cb6c7a8e8bd81b2599, stripped
/home/mkurz/.swt/lib/linux/aarch64/libswt-gtk-4968r13.so:       ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=95ed4f381415300d56851ea513de0cfcca981aaa, stripped
/home/mkurz/.swt/lib/linux/aarch64/libswt-pi3-gtk-4968r13.so:   ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=598fb8d4259af693cc4d984208762873661a845b, stripped

(It says ARM aarch64, not x86_64 or similar)

In case you try this PR on a aarch64 machine and did install the current x86_64 app before, you should always remove the ~/.swt folder before installing the aarch64 package because it seems the files will not be replaced once they exist.

@iaik-jheher
Copy link
Contributor

Just letting you know that I've seen your pull requests, but am unlikely to have time to address them before the new year.

@mkurz
Copy link
Author

mkurz commented Dec 11, 2025

There is absolutely no hurry.

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

Successfully merging this pull request may close these issues.

2 participants