Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 42 additions & 159 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand Down Expand Up @@ -61,20 +61,20 @@ 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

build-f43:
name: Build Fedora 43 package
build-f44:
name: Build Fedora 44 package
runs-on: ubuntu-latest
container:
image: registry.fedoraproject.org/fedora:43
image: registry.fedoraproject.org/fedora:44
options: --security-opt seccomp=unconfined
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install build dependencies
run: |
Expand Down Expand Up @@ -119,78 +119,20 @@ jobs:
rm release/libwacom-surface-devel-*

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: fedora-43-latest
name: fedora-44-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@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-42-latest
path: pkg/fedora/release

build-f41:
name: Build Fedora 41 package
build-f43:
name: Build Fedora 43 package
runs-on: ubuntu-latest
container:
image: registry.fedoraproject.org/fedora:41
image: registry.fedoraproject.org/fedora:43
options: --security-opt seccomp=unconfined
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install build dependencies
run: |
Expand Down Expand Up @@ -235,40 +177,34 @@ jobs:
rm release/libwacom-surface-devel-*

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: fedora-41-latest
name: fedora-43-latest
path: pkg/fedora/release

release:
name: Publish release
needs: [build-deb, build-f43, build-f42, build-f41]
needs: [build-deb, build-f44, build-f43]
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@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
with:
name: fedora-42-latest
path: fedora-42-latest

- name: Download Fedora 41 artifacts
uses: actions/download-artifact@v4
with:
name: fedora-41-latest
path: fedora-41-latest

- name: Upload assets
uses: svenstaro/upload-release-action@v2
with:
Expand All @@ -290,7 +226,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
Expand Down Expand Up @@ -330,23 +266,23 @@ jobs:
git commit -m "Update Debian libwacom"
git push --set-upstream origin "${update_branch}"

repo-f43:
name: Update Fedora 43 package repository
repo-f44:
name: Update Fedora 44 package repository
needs: [release]
runs-on: ubuntu-latest
container:
image: registry.fedoraproject.org/fedora:43
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
uses: actions/download-artifact@v8
with:
name: fedora-43-latest
path: fedora-43-latest
name: fedora-44-latest
path: fedora-44-latest

- name: Update repository
env:
Expand All @@ -360,8 +296,8 @@ jobs:
git clone -b "${BRANCH_STAGING}" "${repo}" repo

# copy packages
cp fedora-43-latest/* repo/fedora/f43
cd repo/fedora/f43
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')
Expand All @@ -380,79 +316,26 @@ jobs:
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 43 libwacom"
git commit -m "Update Fedora 44 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@v4
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
repo-f43:
name: Update Fedora 43 package repository
needs: [release]
runs-on: ubuntu-latest
container:
image: registry.fedoraproject.org/fedora:41
image: registry.fedoraproject.org/fedora:43
options: --security-opt seccomp=unconfined
steps:
- name: Install dependencies
run: |
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
name: fedora-43-latest
path: fedora-43-latest

- name: Update repository
env:
Expand All @@ -466,8 +349,8 @@ jobs:
git clone -b "${BRANCH_STAGING}" "${repo}" repo

# copy packages
cp fedora-41-latest/* repo/fedora/f41
cd repo/fedora/f41
cp fedora-43-latest/* repo/fedora/f43
cd repo/fedora/f43

# parse git tag from ref
GIT_TAG=$(echo $GIT_REF | sed 's|^refs/tags/||g')
Expand All @@ -486,5 +369,5 @@ jobs:
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 commit -m "Update Fedora 43 libwacom"
git push --set-upstream origin "${update_branch}"
8 changes: 4 additions & 4 deletions pkg/deb/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion pkg/deb/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion pkg/fedora/libwacom-surface.spec
Original file line number Diff line number Diff line change
@@ -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
Expand Down