Skip to content

Commit 27e72cc

Browse files
p5bsherman
andauthored
chore: refactor package rename script to support all kernel versions (#259)
Co-authored-by: Benjamin Sherman <[email protected]>
1 parent 3516e7b commit 27e72cc

5 files changed

+35
-16
lines changed

Containerfile.common

+7-3
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,18 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
6262
find /var/cache/rpms
6363

6464
# Remove kernel version from kmod package names
65-
# FIXME: This will only work for 6.* kernels unfortunately
6665
# FIXME: The sed is a gross hack, maybe PR upstream?
6766
RUN set -e; \
6867
sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \
68+
kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \
6969
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
7070
basename=$(basename ${rpm}); \
71-
name=${basename%%-6*}; \
72-
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
71+
name=${basename%%-${kernel_version}*}; \
72+
if [[ "$basename" == *"$kernel_version"* ]]; then \
73+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
74+
else \
75+
echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \
76+
fi; \
7377
done
7478

7579
FROM scratch

Containerfile.extra

+7-4
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,20 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
6262
find /var/cache/rpms
6363

6464
# Remove kernel version from kmod package names
65-
# FIXME: This will only work for 6.* kernels unfortunately
6665
# FIXME: The sed is a gross hack, maybe PR upstream?
6766
RUN set -e; \
6867
sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \
68+
kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \
6969
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
7070
basename=$(basename ${rpm}); \
71-
name=${basename%%-6*}; \
72-
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
71+
name=${basename%%-${kernel_version}*}; \
72+
if [[ "$basename" == *"$kernel_version"* ]]; then \
73+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
74+
else \
75+
echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \
76+
fi; \
7377
done
7478

7579
FROM scratch
7680

7781
COPY --from=builder /var/cache/rpms /rpms
78-

Containerfile.nvidia

+7-3
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,18 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
5959
find /var/cache/rpms
6060

6161
# Remove kernel version from kmod package names
62-
# FIXME: This will only work for 6.* kernels unfortunately
6362
# FIXME: The sed is a gross hack, maybe PR upstream?
6463
RUN set -e; \
6564
sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \
65+
kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \
6666
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
6767
basename=$(basename ${rpm}); \
68-
name=${basename%%-6*}; \
69-
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
68+
name=${basename%%-${kernel_version}*}; \
69+
if [[ "$basename" == *"$kernel_version"* ]]; then \
70+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
71+
else \
72+
echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \
73+
fi; \
7074
done
7175

7276
FROM scratch

Containerfile.nvidia-open

+7-3
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,18 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
5959
find /var/cache/rpms
6060

6161
# Remove kernel version from kmod package names
62-
# FIXME: This will only work for 6.* kernels unfortunately
6362
# FIXME: The sed is a gross hack, maybe PR upstream?
6463
RUN set -e; \
6564
sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \
65+
kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \
6666
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
6767
basename=$(basename ${rpm}); \
68-
name=${basename%%-6*}; \
69-
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
68+
name=${basename%%-${kernel_version}*}; \
69+
if [[ "$basename" == *"$kernel_version"* ]]; then \
70+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
71+
else \
72+
echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \
73+
fi; \
7074
done
7175

7276
FROM scratch

Containerfile.zfs

+7-3
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,18 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
3636
/tmp/dual-sign-zfs.sh
3737

3838
# Remove kernel version from kmod package names
39-
# FIXME: This will only work for 6.* kernels unfortunately
4039
# FIXME: The sed is a gross hack, maybe PR upstream?
4140
RUN set -e; \
4241
sed -i -e 's/args = \["rpmbuild", "-bb"\]/args = \["rpmbuild", "-bb", "--buildroot", "#{build_path}\/BUILD"\]/g' /usr/local/share/gems/gems/fpm-*/lib/fpm/package/rpm.rb; \
42+
kernel_version=$(rpm -q --qf "%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel-core | head -n 1); \
4343
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
4444
basename=$(basename ${rpm}); \
45-
name=${basename%%-6*}; \
46-
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
45+
name=${basename%%-${kernel_version}*}; \
46+
if [[ "$basename" == *"$kernel_version"* ]]; then \
47+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
48+
else \
49+
echo "Skipping $basename rebuild as its name does not contain $kernel_version"; \
50+
fi; \
4751
done
4852

4953
FROM scratch

0 commit comments

Comments
 (0)