name: JPEG 2000 feature on: push: paths: - ".gitea/workflows/jpeg2000.yml" - "Cargo.toml" - "Cargo.lock" - "crates/libremetaverse/Cargo.toml" - "crates/libremetaverse-types/**" - "crates/libremetaverse-imaging/**" - "crates/libremetaverse-openjpeg/**" pull_request: paths: - ".gitea/workflows/jpeg2000.yml" - "Cargo.toml" - "Cargo.lock" - "crates/libremetaverse/Cargo.toml" - "crates/libremetaverse-types/**" - "crates/libremetaverse-imaging/**" - "crates/libremetaverse-openjpeg/**" workflow_dispatch: jobs: linux: runs-on: ubuntu-latest env: # Ubuntu 24.04 also ships an older libopenjp2.so.7. Ensure both # pkg-config and the runtime loader select the audited 2.5.4 install. PKG_CONFIG_PATH: /usr/local/lib/pkgconfig LD_LIBRARY_PATH: /usr/local/lib steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Install OpenJPEG 2.5.4 run: | sudo apt-get update sudo apt-get install --yes build-essential cmake pkg-config git clone --branch v2.5.4 --depth 1 https://github.com/uclouvain/openjpeg.git /tmp/openjpeg-2.5.4 cmake -S /tmp/openjpeg-2.5.4 -B /tmp/openjpeg-build -DBUILD_CODEC=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release cmake --build /tmp/openjpeg-build --parallel sudo cmake --install /tmp/openjpeg-build sudo ldconfig test "$(pkg-config --modversion libopenjp2)" = "2.5.4" - name: Build and test optional feature run: | cargo test -p libremetaverse-imaging --features jpeg2000 cargo check -p libremetaverse --features jpeg2000