Skip to content

Build modernization#5

Merged
chris-allan merged 6 commits intoglencoesoftware:masterfrom
sbesson:build_modernization
Feb 12, 2026
Merged

Build modernization#5
chris-allan merged 6 commits intoglencoesoftware:masterfrom
sbesson:build_modernization

Conversation

@sbesson
Copy link
Copy Markdown
Member

@sbesson sbesson commented Jan 20, 2026

First part of the work towards the resolution of #2

This PR focuses on getting the build system functional and upgrade and cover the target environments:

  • upgrades all the outdated GitHub actions versions and runner labels to fix the GitHub workflow build
  • adds support for building the jpeg-turbo libraries on OSX arm64 and Linux aarch64 and bundles them as part of the JAR
  • bumps the based Dockerfile to manylinux_2_28 based on a supported distribution
  • bumps the nativelib-loader library used for testing to 2.4.0 to allow the testing on macos-arm
  • bumps Gradle to 8.7 and replaces jcenter by mavenCentral
  • expands the GitHub workflow matrix to test the JAR against all supported Java versions (currently 8, 11, 17, 21) and platforms /architectures (OS X x86_64, OS X arm64, Linux x86_64, Linux aarch64, Windows x86_64)

The other points of the original issue including:

  • the upgrade of the underlying libjpeg-turbo library
  • the decisions around package name, namespace, ownership and repository hosting
    are not covered here and will need to be discussed as follow-ups

@sbesson
Copy link
Copy Markdown
Member Author

sbesson commented Jan 26, 2026

The JAR produced by the GitHub workflow can also be tested functionally using the Bio-Formats command-line tools and the BF_CP variable.

As a proof of concept, it was used in the context of ome/bioformats#4405 (review) on my arm64 OS X laptop. With a regular build of Bio-Formats command line tools, the following command failed with Exception in thread "main" java.io.IOException: JPEG service failed to load Turbo JPEG library

./bftools/showinf test3.npdis

After setting BF_CP to point at the SNAPSHOT JAR

BF_CP=./libjpeg-turbo-java-0.1.0-SNAPSHOT.jar ./bftools/showinf -noflat -resolution 2 test3.ndpis

worked as expected and opened the image in the viewer

Copy link
Copy Markdown
Member

@melissalinkert melissalinkert left a comment

Choose a reason for hiding this comment

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

I wasn't able to test Linux arm builds locally, but can confirm that reading JPEG .ndpi with an M1 Mac now works. Double-checking existing support on Windows/Linux x86 also showed no issue.

Copy link
Copy Markdown
Member

@chris-allan chris-allan left a comment

Choose a reason for hiding this comment

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

Looking good here on the platforms I'm able to test on:

  • linux x86_64
  • windows x86_64

@chris-allan chris-allan merged commit f707504 into glencoesoftware:master Feb 12, 2026
27 checks passed
@sbesson sbesson deleted the build_modernization branch February 12, 2026 19:35
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.

3 participants