Skip to content

Commit

Permalink
Merge branch 'main' into nvidia-545
Browse files Browse the repository at this point in the history
  • Loading branch information
EyeCantCU authored Nov 23, 2023
2 parents 055517c + c204fda commit 62f87d9
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 37 deletions.
29 changes: 22 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@ on:
pull_request:
merge_group:
schedule:
- cron: '0 6 * * *' # 6am everyday (1h after 'config')
- cron: '0 14 * * *' # 2pm UTC everyday (timed against official fedora container pushes, and after 'config')
workflow_dispatch:
env:
IMAGE_NAME: akmods
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
SOURCE_IMAGE: base

jobs:
push-ghcr:
name: Build and push akmods image
name: akmods image
runs-on: ubuntu-22.04
permissions:
contents: read
Expand All @@ -21,7 +20,7 @@ jobs:
strategy:
fail-fast: false
matrix:
kernel_flavor: [main, asus, surface]
kernel_flavor: [main, asus, fsync, surface]
cfile_suffix: [common, nvidia]
major_version: [37, 38, 39]
nvidia_version: [0, 470, 535, 545]
Expand All @@ -36,6 +35,10 @@ jobs:
nvidia_version: 0
- kernel_flavor: asus
major_version: 37
- kernel_flavor: fsync
major_version: 37
- kernel_flavor: fsync
major_version: 38
- kernel_flavor: surface
major_version: 37
- kernel_flavor: surface
Expand All @@ -45,6 +48,17 @@ jobs:
- name: Checkout Push to Registry action
uses: actions/checkout@v4

- name: Matrix Variables
shell: bash
run: |
if [[ "${{ matrix.major_version }}" -ge "40" ]]; then
echo "SOURCE_IMAGE=fedora-silverblue" >> $GITHUB_ENV
echo "SOURCE_ORG=fedora" >> $GITHUB_ENV
else
echo "SOURCE_IMAGE=base" >> $GITHUB_ENV
echo "SOURCE_ORG=fedora-ostree-desktops" >> $GITHUB_ENV
fi
- name: Generate tags
id: generate-tags
shell: bash
Expand Down Expand Up @@ -99,7 +113,7 @@ jobs:
- name: Get current versions
id: labels
run: |
skopeo inspect docker://quay.io/fedora-ostree-desktops/${{ env.SOURCE_IMAGE }}:${{ matrix.major_version }} > inspect.json
skopeo inspect docker://quay.io/${{ env.SOURCE_ORG }}/${{ env.SOURCE_IMAGE }}:${{ matrix.major_version }} > inspect.json
version=$(jq -r '.Labels["org.opencontainers.image.version"]' inspect.json)
linux=$(jq -r '.Labels["ostree.linux"]' inspect.json)
echo "VERSION=$version" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -132,6 +146,7 @@ jobs:
${{ steps.generate-tags.outputs.alias_tags }}
build-args: |
SOURCE_IMAGE=${{ env.SOURCE_IMAGE }}
SOURCE_ORG=${{ env.SOURCE_ORG }}
KERNEL_FLAVOR=${{ matrix.kernel_flavor }}
FEDORA_MAJOR_VERSION=${{ matrix.major_version }}
NVIDIA_MAJOR_VERSION=${{ matrix.nvidia_version }}
Expand All @@ -142,7 +157,7 @@ jobs:
# https://github.com/macbre/push-to-ghcr/issues/12
- name: Lowercase Registry
id: registry_case
uses: ASzc/change-string-case-action@v5
uses: ASzc/change-string-case-action@v6
with:
string: ${{ env.IMAGE_REGISTRY }}

Expand Down Expand Up @@ -172,7 +187,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

# Sign container
- uses: sigstore/cosign-installer@v3.1.2
- uses: sigstore/cosign-installer@v3.2.0
if: github.event_name != 'pull_request'

- name: Sign container image
Expand Down
17 changes: 9 additions & 8 deletions Containerfile.common
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

#Build from base, simpley because it's the smallest image
ARG SOURCE_IMAGE="${SOURCE_IMAGE:-base}"
ARG BASE_IMAGE="quay.io/fedora-ostree-desktops/${SOURCE_IMAGE}"
ARG SOURCE_ORG="${SOURCE_ORG:-fedora-ostree-desktops}"
ARG BASE_IMAGE="quay.io/${SOURCE_ORG}/${SOURCE_IMAGE}"
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}"

FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder
Expand All @@ -18,8 +19,6 @@ COPY certs /tmp/certs
COPY ublue-os-akmods-addons.spec /tmp/ublue-os-akmods-addons/ublue-os-akmods-addons.spec
ADD https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/repo/fedora-${FEDORA_MAJOR_VERSION}/ublue-os-akmods-fedora-${FEDORA_MAJOR_VERSION}.repo \
/tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/_copr_ublue-os-akmods.repo
ADD https://negativo17.org/repos/fedora-steam.repo \
/tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-steam.repo
ADD https://negativo17.org/repos/fedora-multimedia.repo \
/tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo

Expand All @@ -34,22 +33,24 @@ RUN if grep -qv "surface" <<< "${KERNEL_FLAVOR}"; then \
; else \
export KERNEL_NAME="kernel-surface" \
; fi && \
if grep -qv "asus" <<< "${KERNEL_FLAVOR}"; then \
/tmp/build-kmod-evdi.sh \
; fi && \
if grep -qv "fsync" <<< "${KERNEL_FLAVOR}"; then \
/tmp/build-kmod-steamdeck.sh \
; fi && \
/tmp/build-kmod-gasket.sh && \
/tmp/build-kmod-gcadapter_oc.sh && \
/tmp/build-kmod-nct6687d.sh && \
/tmp/build-kmod-openrazer.sh && \
/tmp/build-kmod-openrgb.sh && \
/tmp/build-kmod-ryzen-smu.sh && \
/tmp/build-kmod-steamdeck.sh && \
/tmp/build-kmod-v4l2loopback.sh && \
/tmp/build-kmod-winesync.sh && \
/tmp/build-kmod-wl.sh && \
/tmp/build-kmod-xpadneo.sh && \
/tmp/build-kmod-xpad-noone.sh && \
/tmp/build-kmod-xone.sh && \
if [[ "${FEDORA_MAJOR_VERSION}" -le "38" ]]; then \
/tmp/build-kmod-evdi.sh \
; fi
/tmp/build-kmod-xone.sh

RUN cp /tmp/ublue-os-akmods-addons/rpmbuild/RPMS/noarch/ublue-os-akmods-addons*.rpm \
/var/cache/rpms/ublue-os/
Expand Down
3 changes: 2 additions & 1 deletion Containerfile.nvidia
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

#Build from base, simpley because it's the smallest image
ARG SOURCE_IMAGE="${SOURCE_IMAGE:-base}"
ARG BASE_IMAGE="quay.io/fedora-ostree-desktops/${SOURCE_IMAGE}"
ARG SOURCE_ORG="${SOURCE_ORG:-fedora-ostree-desktops}"
ARG BASE_IMAGE="quay.io/${SOURCE_ORG}/${SOURCE_IMAGE}"
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-39}"

FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder
Expand Down
2 changes: 0 additions & 2 deletions build-kmod-steamdeck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,5 @@ modinfo /usr/lib/modules/${KERNEL}/extra/steamdeck/steamdeck-hwmon.ko.xz > /dev/
|| (find /var/cache/akmods/steamdeck/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/${KERNEL}/extra/steamdeck/{extcon,leds}-steamdeck.ko.xz > /dev/null \
|| (find /var/cache/akmods/steamdeck/ -name \*.log -print -exec cat {} \; && exit 1)
modinfo /usr/lib/modules/${KERNEL}/extra/steamdeck/dwc3-pci.ko.xz > /dev/null \
|| (find /var/cache/akmods/steamdeck/ -name \*.log -print -exec cat {} \; && exit 1)

rm -f /etc/yum.repos.d/_copr_ublue-os-akmods.repo
4 changes: 2 additions & 2 deletions build-kmod-xone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set -oeux pipefail


cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-steam.repo /etc/yum.repos.d/
cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo /etc/yum.repos.d/

ARCH="$(rpm -E '%_arch')"
KERNEL="$(rpm -q "${KERNEL_NAME}" --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}')"
Expand All @@ -17,4 +17,4 @@ akmods --force --kernels "${KERNEL}" --kmod xone
modinfo /usr/lib/modules/${KERNEL}/extra/xone/xone-{dongle,gip-chatpad,gip-gamepad,gip-guitar,gip-headset,gip,wired}.ko.xz > /dev/null \
|| (find /var/cache/akmods/xone/ -name \*.log -print -exec cat {} \; && exit 1)

rm -f /etc/yum.repos.d/negativo17-fedora-steam.repo
rm -f /etc/yum.repos.d/negativo17-fedora-multimedia.repo
4 changes: 2 additions & 2 deletions build-kmod-xpadneo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set -oeux pipefail


cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-steam.repo /etc/yum.repos.d/
cp /tmp/ublue-os-akmods-addons/rpmbuild/SOURCES/negativo17-fedora-multimedia.repo /etc/yum.repos.d/

ARCH="$(rpm -E '%_arch')"
KERNEL="$(rpm -q "${KERNEL_NAME}" --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}')"
Expand All @@ -17,4 +17,4 @@ akmods --force --kernels "${KERNEL}" --kmod xpadneo
modinfo /usr/lib/modules/${KERNEL}/extra/xpadneo/hid-xpadneo.ko.xz > /dev/null \
|| (find /var/cache/akmods/xpadneo/ -name \*.log -print -exec cat {} \; && exit 1)

rm -f /etc/yum.repos.d/negativo17-fedora-steam.repo
rm -f /etc/yum.repos.d/negativo17-fedora-multimedia.repo
22 changes: 14 additions & 8 deletions build-prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,6 @@ rpm-ostree install \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${RELEASE}.noarch.rpm \
fedora-repos-archive

# force use of single rpmfusion mirror
sed -i.bak 's%^metalink=%#metalink=%' /etc/yum.repos.d/rpmfusion-*.repo
sed -i 's%^#baseurl=http://download1.rpmfusion.org%baseurl=http://mirrors.ocf.berkeley.edu/rpmfusion%' /etc/yum.repos.d/rpmfusion-*.repo
# after F39 launches, bump to 40
if [[ "${FEDORA_MAJOR_VERSION}" -ge 39 ]]; then
sed -i 's%free/fedora/releases%free/fedora/development%' /etc/yum.repos.d/rpmfusion-*.repo
fi


### PREPARE CUSTOM KERNEL SUPPORT
if [[ "asus" == "${KERNEL_FLAVOR}" ]]; then
Expand All @@ -52,6 +44,20 @@ if [[ "asus" == "${KERNEL_FLAVOR}" ]]; then
kernel-modules \
kernel-modules-core \
kernel-modules-extra
elif [[ "fsync" == "${KERNEL_FLAVOR}" ]]; then
echo "Installing kernel-fsync:"
wget https://copr.fedorainfracloud.org/coprs/sentry/kernel-fsync/repo/fedora-$(rpm -E %fedora)/sentry-kernel-fsync-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_sentry-kernel-fsync.repo
rpm-ostree cliwrap install-to-root /
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:sentry:kernel-fsync \
kernel \
kernel-core \
kernel-devel \
kernel-devel-matched \
kernel-modules \
kernel-modules-core \
kernel-modules-extra
elif [[ "surface" == "${KERNEL_FLAVOR}" ]]; then
echo "Installing Surface Kernel:"
# Add Linux Surface repo
Expand Down
17 changes: 10 additions & 7 deletions ublue-os-akmods-addons.spec
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: ublue-os-akmods-addons
Version: 0.3
Version: 0.4
Release: 1%{?dist}
Summary: Signing key and repos for ublue os akmods

Expand All @@ -11,7 +11,7 @@ Supplements: mokutil policycoreutils

Source0: public_key.der
Source1: _copr_ublue-os-akmods.repo
Source2: negativo17-fedora-steam.repo
Source2: negativo17-fedora-multimedia.repo

%description
Adds the signing key for importing with mokutil to enable secure boot for kernel modules and repo files required to install akmod dependencies.
Expand All @@ -24,23 +24,26 @@ Adds the signing key for importing with mokutil to enable secure boot for kernel
# Have different name for *.der in case kmodgenca is needed for creating more keys
install -Dm0644 %{SOURCE0} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/pki/akmods/certs/akmods-ublue.der
install -Dm0644 %{SOURCE1} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/_copr_ublue-os-akmods.repo
install -Dm0644 %{SOURCE2} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-steam.repo
install -Dm0644 %{SOURCE2} %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-multimedia.repo

sed -i 's@enabled=1@enabled=0@g' %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-steam.repo
sed -i 's@enabled=1@enabled=0@g' %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-multimedia.repo

install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/pki/akmods/certs/akmods-ublue.der %{buildroot}%{_sysconfdir}/pki/akmods/certs/akmods-ublue.der
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/_copr_ublue-os-akmods.repo %{buildroot}%{_sysconfdir}/yum.repos.d/_copr_ublue-os-akmods.repo
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-steam.repo %{buildroot}%{_sysconfdir}/yum.repos.d/negativo17-fedora-steam.repo
install -Dm0644 %{buildroot}%{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-multimedia.repo %{buildroot}%{_sysconfdir}/yum.repos.d/negativo17-fedora-multimedia.repo

%files
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/pki/akmods/certs/akmods-ublue.der
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/_copr_ublue-os-akmods.repo
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-steam.repo
%attr(0644,root,root) %{_datadir}/ublue-os/%{_sysconfdir}/yum.repos.d/negativo17-fedora-multimedia.repo
%attr(0644,root,root) %{_sysconfdir}/pki/akmods/certs/akmods-ublue.der
%attr(0644,root,root) %{_sysconfdir}/yum.repos.d/_copr_ublue-os-akmods.repo
%attr(0644,root,root) %{_sysconfdir}/yum.repos.d/negativo17-fedora-steam.repo
%attr(0644,root,root) %{_sysconfdir}/yum.repos.d/negativo17-fedora-multimedia.repo

%changelog
* Mon Nov 20 2023 RJ Trujillo <eyecantcu@pm.me> - 0.4
- Migrate xpadneo/xone modules from negativo17 fedora-steam to negativo17 fedora-multimedia

* Mon Jul 17 2023 Kyle Gospodnetich <me@kylegospodneti.ch> - 0.3
- Add ublue-os/akmods copr repo for modules not available upstream/elsewhere

Expand Down

0 comments on commit 62f87d9

Please sign in to comment.