From d032d69220802ffca85ba9235c86664716063730 Mon Sep 17 00:00:00 2001 From: orthogonaleety <108008609+orthogonaleety@users.noreply.github.com> Date: Mon, 25 May 2026 13:06:57 +0100 Subject: [PATCH 1/4] Bump spec to libwacom 2.18, add Fedora 44 job Multiple Fedora 44 packages build against libwacom 2.18. --- .github/workflows/release.yml | 119 ++++++++++++++++++++++++++++++- pkg/fedora/libwacom-surface.spec | 2 +- 2 files changed, 119 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0933624..71257a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -66,6 +66,64 @@ jobs: name: debian-latest path: release + build-f44: + name: Build Fedora 44 package + runs-on: ubuntu-latest + container: + image: registry.fedoraproject.org/fedora:44 + options: --security-opt seccomp=unconfined + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install build dependencies + run: | + dnf distro-sync -y + dnf install -y make rpmdevtools rpm-sign 'dnf-command(builddep)' + dnf builddep -y pkg/fedora/libwacom-surface.spec + + - name: Build package + run: | + cd pkg/fedora + + # Build the .rpm packages + ./makerpm + + - name: Sign packages + env: + GPG_KEY_ID: 56C464BAAC421453 + GPG_KEY: ${{ secrets.LINUX_SURFACE_GPG_KEY }} + run: | + cd pkg/fedora/out + + # import GPG key + echo "$GPG_KEY" | base64 -d | gpg --import --no-tty --batch --yes + + # sign package + cd noarch + rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID" + + cd .. + + cd x86_64 + rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID" + + - name: Prepare artifacts + run: | + cd pkg/fedora + mkdir release + + cp out/noarch/* release/ + cp out/x86_64/* release/ + + rm release/libwacom-surface-devel-* + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: fedora-44-latest + path: pkg/fedora/release + build-f43: name: Build Fedora 43 package runs-on: ubuntu-latest @@ -242,7 +300,7 @@ jobs: release: name: Publish release - needs: [build-deb, build-f43, build-f42, build-f41] + needs: [build-deb, build-f44, build-f43, build-f42, build-f41] runs-on: ubuntu-latest steps: - name: Download Debian artifacts @@ -251,6 +309,12 @@ jobs: name: debian-latest path: debian-latest + - name: Download Fedora 44 artifacts + uses: actions/download-artifact@v4 + with: + name: fedora-44-latest + path: fedora-44-latest + - name: Download Fedora 43 artifacts uses: actions/download-artifact@v4 with: @@ -330,6 +394,59 @@ jobs: git commit -m "Update Debian libwacom" git push --set-upstream origin "${update_branch}" + repo-f44: + name: Update Fedora 44 package repository + needs: [release] + runs-on: ubuntu-latest + container: + image: registry.fedoraproject.org/fedora:44 + options: --security-opt seccomp=unconfined + steps: + - name: Install dependencies + run: | + dnf install -y git findutils + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: fedora-44-latest + path: fedora-44-latest + + - name: Update repository + env: + SURFACEBOT_TOKEN: ${{ secrets.LINUX_SURFACE_BOT_TOKEN }} + BRANCH_STAGING: u/staging + GIT_REF: ${{ github.ref }} + run: | + repo="https://surfacebot:${SURFACEBOT_TOKEN}@github.com/linux-surface/repo.git" + + # clone package repository + git clone -b "${BRANCH_STAGING}" "${repo}" repo + + # copy packages + cp fedora-44-latest/* repo/fedora/f44 + cd repo/fedora/f44 + + # parse git tag from ref + GIT_TAG=$(echo $GIT_REF | sed 's|^refs/tags/||g') + + # convert packages into references + for pkg in $(find . -name '*.rpm'); do + echo "libwacom-surface:$GIT_TAG/$(basename $pkg)" > $pkg.blob + rm $pkg + done + + # set git identity + git config --global user.email "surfacebot@users.noreply.github.com" + git config --global user.name "surfacebot" + + # commit and push + update_branch="${BRANCH_STAGING}-$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" + git checkout -b "${update_branch}" + git add . + git commit -m "Update Fedora 44 libwacom" + git push --set-upstream origin "${update_branch}" + repo-f43: name: Update Fedora 43 package repository needs: [release] diff --git a/pkg/fedora/libwacom-surface.spec b/pkg/fedora/libwacom-surface.spec index 6ae748c..b159f0b 100644 --- a/pkg/fedora/libwacom-surface.spec +++ b/pkg/fedora/libwacom-surface.spec @@ -1,7 +1,7 @@ %global debug_package %{nil} Name: libwacom-surface -Version: 2.17.0 +Version: 2.18.0 Release: 1%{?dist} Summary: Tablet Information Client Library Requires: %{name}-data From 8ff61aa7926f4886132a6ef3053773be76f62279 Mon Sep 17 00:00:00 2001 From: orthogonaleety <108008609+orthogonaleety@users.noreply.github.com> Date: Mon, 25 May 2026 13:09:29 +0100 Subject: [PATCH 2/4] bump action versions ready for Node 20 deprecation https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ --- .github/workflows/release.yml | 40 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71257a7..1e5d93c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ jobs: apt-get -q -y build-dep libwacom libwacom-dev - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build package run: | @@ -61,7 +61,7 @@ jobs: mv ./pkg/deb/*.deb release - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: debian-latest path: release @@ -74,7 +74,7 @@ jobs: options: --security-opt seccomp=unconfined steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install build dependencies run: | @@ -119,7 +119,7 @@ jobs: rm release/libwacom-surface-devel-* - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: fedora-44-latest path: pkg/fedora/release @@ -132,7 +132,7 @@ jobs: options: --security-opt seccomp=unconfined steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install build dependencies run: | @@ -177,7 +177,7 @@ jobs: rm release/libwacom-surface-devel-* - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: fedora-43-latest path: pkg/fedora/release @@ -190,7 +190,7 @@ jobs: options: --security-opt seccomp=unconfined steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install build dependencies run: | @@ -235,7 +235,7 @@ jobs: rm release/libwacom-surface-devel-* - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: fedora-42-latest path: pkg/fedora/release @@ -248,7 +248,7 @@ jobs: options: --security-opt seccomp=unconfined steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install build dependencies run: | @@ -293,7 +293,7 @@ jobs: rm release/libwacom-surface-devel-* - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: fedora-41-latest path: pkg/fedora/release @@ -304,31 +304,31 @@ jobs: runs-on: ubuntu-latest steps: - name: Download Debian artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: debian-latest path: debian-latest - name: Download Fedora 44 artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-44-latest path: fedora-44-latest - name: Download Fedora 43 artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-43-latest path: fedora-43-latest - name: Download Fedora 42 artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-42-latest path: fedora-42-latest - name: Download Fedora 41 artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-41-latest path: fedora-41-latest @@ -354,7 +354,7 @@ jobs: apt-get install -y git - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: debian-latest path: debian-latest @@ -407,7 +407,7 @@ jobs: dnf install -y git findutils - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-44-latest path: fedora-44-latest @@ -460,7 +460,7 @@ jobs: dnf install -y git findutils - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-43-latest path: fedora-43-latest @@ -513,7 +513,7 @@ jobs: dnf install -y git findutils - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-42-latest path: fedora-42-latest @@ -566,7 +566,7 @@ jobs: dnf install -y git findutils - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: fedora-41-latest path: fedora-41-latest From e5aba80afa5f0e3f596fc4b60f3764c64a217519 Mon Sep 17 00:00:00 2001 From: orthogonaleety <108008609+orthogonaleety@users.noreply.github.com> Date: Mon, 25 May 2026 13:10:35 +0100 Subject: [PATCH 3/4] remove fedora 41 and 42 from publication of libwacom 2.18 fedora 41 and 42 not tested against libwacom 2.18 https://packages.fedoraproject.org/pkgs/libwacom/libwacom/ --- .github/workflows/release.yml | 236 +--------------------------------- 1 file changed, 1 insertion(+), 235 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e5d93c..5edd97a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -182,125 +182,9 @@ jobs: name: fedora-43-latest path: pkg/fedora/release - build-f42: - name: Build Fedora 42 package - runs-on: ubuntu-latest - container: - image: registry.fedoraproject.org/fedora:42 - options: --security-opt seccomp=unconfined - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Install build dependencies - run: | - dnf distro-sync -y - dnf install -y make rpmdevtools rpm-sign 'dnf-command(builddep)' - dnf builddep -y pkg/fedora/libwacom-surface.spec - - - name: Build package - run: | - cd pkg/fedora - - # Build the .rpm packages - ./makerpm - - - name: Sign packages - env: - GPG_KEY_ID: 56C464BAAC421453 - GPG_KEY: ${{ secrets.LINUX_SURFACE_GPG_KEY }} - run: | - cd pkg/fedora/out - - # import GPG key - echo "$GPG_KEY" | base64 -d | gpg --import --no-tty --batch --yes - - # sign package - cd noarch - rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID" - - cd .. - - cd x86_64 - rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID" - - - name: Prepare artifacts - run: | - cd pkg/fedora - mkdir release - - cp out/noarch/* release/ - cp out/x86_64/* release/ - - rm release/libwacom-surface-devel-* - - - name: Upload artifacts - uses: actions/upload-artifact@v7 - with: - name: fedora-42-latest - path: pkg/fedora/release - - build-f41: - name: Build Fedora 41 package - runs-on: ubuntu-latest - container: - image: registry.fedoraproject.org/fedora:41 - options: --security-opt seccomp=unconfined - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Install build dependencies - run: | - dnf distro-sync -y - dnf install -y make rpmdevtools rpm-sign 'dnf-command(builddep)' - dnf builddep -y pkg/fedora/libwacom-surface.spec - - - name: Build package - run: | - cd pkg/fedora - - # Build the .rpm packages - ./makerpm - - - name: Sign packages - env: - GPG_KEY_ID: 56C464BAAC421453 - GPG_KEY: ${{ secrets.LINUX_SURFACE_GPG_KEY }} - run: | - cd pkg/fedora/out - - # import GPG key - echo "$GPG_KEY" | base64 -d | gpg --import --no-tty --batch --yes - - # sign package - cd noarch - rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID" - - cd .. - - cd x86_64 - rpm --resign *.rpm --define "_gpg_name $GPG_KEY_ID" - - - name: Prepare artifacts - run: | - cd pkg/fedora - mkdir release - - cp out/noarch/* release/ - cp out/x86_64/* release/ - - rm release/libwacom-surface-devel-* - - - name: Upload artifacts - uses: actions/upload-artifact@v7 - with: - name: fedora-41-latest - path: pkg/fedora/release - release: name: Publish release - needs: [build-deb, build-f44, build-f43, build-f42, build-f41] + needs: [build-deb, build-f44, build-f43] runs-on: ubuntu-latest steps: - name: Download Debian artifacts @@ -321,18 +205,6 @@ jobs: name: fedora-43-latest path: fedora-43-latest - - name: Download Fedora 42 artifacts - uses: actions/download-artifact@v8 - with: - name: fedora-42-latest - path: fedora-42-latest - - - name: Download Fedora 41 artifacts - uses: actions/download-artifact@v8 - with: - name: fedora-41-latest - path: fedora-41-latest - - name: Upload assets uses: svenstaro/upload-release-action@v2 with: @@ -499,109 +371,3 @@ jobs: git add . git commit -m "Update Fedora 43 libwacom" git push --set-upstream origin "${update_branch}" - - repo-f42: - name: Update Fedora 42 package repository - needs: [release] - runs-on: ubuntu-latest - container: - image: registry.fedoraproject.org/fedora:42 - options: --security-opt seccomp=unconfined - steps: - - name: Install dependencies - run: | - dnf install -y git findutils - - - name: Download artifacts - uses: actions/download-artifact@v8 - with: - name: fedora-42-latest - path: fedora-42-latest - - - name: Update repository - env: - SURFACEBOT_TOKEN: ${{ secrets.LINUX_SURFACE_BOT_TOKEN }} - BRANCH_STAGING: u/staging - GIT_REF: ${{ github.ref }} - run: | - repo="https://surfacebot:${SURFACEBOT_TOKEN}@github.com/linux-surface/repo.git" - - # clone package repository - git clone -b "${BRANCH_STAGING}" "${repo}" repo - - # copy packages - cp fedora-42-latest/* repo/fedora/f42 - cd repo/fedora/f42 - - # parse git tag from ref - GIT_TAG=$(echo $GIT_REF | sed 's|^refs/tags/||g') - - # convert packages into references - for pkg in $(find . -name '*.rpm'); do - echo "libwacom-surface:$GIT_TAG/$(basename $pkg)" > $pkg.blob - rm $pkg - done - - # set git identity - git config --global user.email "surfacebot@users.noreply.github.com" - git config --global user.name "surfacebot" - - # commit and push - update_branch="${BRANCH_STAGING}-$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - git checkout -b "${update_branch}" - git add . - git commit -m "Update Fedora 42 libwacom" - git push --set-upstream origin "${update_branch}" - - repo-f41: - name: Update Fedora 41 package repository - needs: [release] - runs-on: ubuntu-latest - container: - image: registry.fedoraproject.org/fedora:41 - options: --security-opt seccomp=unconfined - steps: - - name: Install dependencies - run: | - dnf install -y git findutils - - - name: Download artifacts - uses: actions/download-artifact@v8 - with: - name: fedora-41-latest - path: fedora-41-latest - - - name: Update repository - env: - SURFACEBOT_TOKEN: ${{ secrets.LINUX_SURFACE_BOT_TOKEN }} - BRANCH_STAGING: u/staging - GIT_REF: ${{ github.ref }} - run: | - repo="https://surfacebot:${SURFACEBOT_TOKEN}@github.com/linux-surface/repo.git" - - # clone package repository - git clone -b "${BRANCH_STAGING}" "${repo}" repo - - # copy packages - cp fedora-41-latest/* repo/fedora/f41 - cd repo/fedora/f41 - - # parse git tag from ref - GIT_TAG=$(echo $GIT_REF | sed 's|^refs/tags/||g') - - # convert packages into references - for pkg in $(find . -name '*.rpm'); do - echo "libwacom-surface:$GIT_TAG/$(basename $pkg)" > $pkg.blob - rm $pkg - done - - # set git identity - git config --global user.email "surfacebot@users.noreply.github.com" - git config --global user.name "surfacebot" - - # commit and push - update_branch="${BRANCH_STAGING}-$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - git checkout -b "${update_branch}" - git add . - git commit -m "Update Fedora 41 libwacom" - git push --set-upstream origin "${update_branch}" From faf4781cbc1cd6422a681f011a591669a8d6aea7 Mon Sep 17 00:00:00 2001 From: orthogonaleety <108008609+orthogonaleety@users.noreply.github.com> Date: Mon, 25 May 2026 13:31:05 +0100 Subject: [PATCH 4/4] Bump libwacom to 2.18.0 for Debian Debian Sid is built against libwacom 2.18.0: https://packages.debian.org/sid/libwacom-common --- pkg/deb/debian/control | 8 ++++---- pkg/deb/debian/rules | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/deb/debian/control b/pkg/deb/debian/control index f47fa6a..902568a 100644 --- a/pkg/deb/debian/control +++ b/pkg/deb/debian/control @@ -58,7 +58,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, systemd, libwacom-common-surface (= ${binary:Version}) Conflicts: libwacom9 -Provides: libwacom9 (= 2.17.0-1) +Provides: libwacom9 (= 2.18.0-1) Description: Wacom model feature query library (patched for Surface devices) libwacom is a library to identify wacom tablets and their model-specific features. It provides easy access to information such as "is this a @@ -75,7 +75,7 @@ Depends: ${misc:Depends}, libgudev-1.0-dev, libwacom9-surface (= ${binary:Version}) Conflicts: libwacom-dev, libwacom2-dev-surface -Provides: libwacom-dev (= 2.17.0-1) +Provides: libwacom-dev (= 2.18.0-1) Description: Wacom model feature query library (development files) libwacom is a library to identify wacom tablets and their model-specific features. It provides easy access to information such as "is this a @@ -87,7 +87,7 @@ Package: libwacom-common-surface Architecture: all Depends: ${misc:Depends} Conflicts: libwacom-common -Provides: libwacom-common (= 2.17.0-1) +Provides: libwacom-common (= 2.18.0-1) Description: Wacom model feature query library (common data files) libwacom is a library to identify wacom tablets and their model-specific features. It provides easy access to information such as "is this a @@ -104,7 +104,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, systemd, libwacom9-surface (= ${binary:Version}) Conflicts: libwacom-bin -Provides: libwacom-bin (= 2.17.0-1) +Provides: libwacom-bin (= 2.18.0-1) Description: Wacom model feature query library (utilities) libwacom is a library to identify wacom tablets and their model-specific features. It provides easy access to information such as "is this a diff --git a/pkg/deb/debian/rules b/pkg/deb/debian/rules index 5c11fd3..565bba3 100755 --- a/pkg/deb/debian/rules +++ b/pkg/deb/debian/rules @@ -3,7 +3,7 @@ export DH_VERBOSE = 1 export DEB_BUILD_OPTIONS = noautodbgsym LIBWACOM_V1 = 1.12.1 -LIBWACOM_V2 = 2.17.0 +LIBWACOM_V2 = 2.18.0 SRC_V1 = libwacom-$(LIBWACOM_V1) SRC_V2 = libwacom-$(LIBWACOM_V2)