Skip to content

Commit 3516e7b

Browse files
authored
feat: Remove kernel version from kmod name (#257)
1 parent a1d215e commit 3516e7b

6 files changed

+59
-1
lines changed

Containerfile.common

+11
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
6161
done && \
6262
find /var/cache/rpms
6363

64+
# Remove kernel version from kmod package names
65+
# FIXME: This will only work for 6.* kernels unfortunately
66+
# FIXME: The sed is a gross hack, maybe PR upstream?
67+
RUN set -e; \
68+
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; \
69+
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
70+
basename=$(basename ${rpm}); \
71+
name=${basename%%-6*}; \
72+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
73+
done
74+
6475
FROM scratch
6576

6677
COPY --from=builder /var/cache/rpms /rpms

Containerfile.extra

+11
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
6161
done && \
6262
find /var/cache/rpms
6363

64+
# Remove kernel version from kmod package names
65+
# FIXME: This will only work for 6.* kernels unfortunately
66+
# FIXME: The sed is a gross hack, maybe PR upstream?
67+
RUN set -e; \
68+
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; \
69+
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
70+
basename=$(basename ${rpm}); \
71+
name=${basename%%-6*}; \
72+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
73+
done
74+
6475
FROM scratch
6576

6677
COPY --from=builder /var/cache/rpms /rpms

Containerfile.nvidia

+11
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,17 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
5858
done && \
5959
find /var/cache/rpms
6060

61+
# Remove kernel version from kmod package names
62+
# FIXME: This will only work for 6.* kernels unfortunately
63+
# FIXME: The sed is a gross hack, maybe PR upstream?
64+
RUN set -e; \
65+
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; \
66+
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
67+
basename=$(basename ${rpm}); \
68+
name=${basename%%-6*}; \
69+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
70+
done
71+
6172
FROM scratch
6273

6374
COPY --from=builder /var/cache/rpms /rpms

Containerfile.nvidia-open

+11
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,17 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
5858
done && \
5959
find /var/cache/rpms
6060

61+
# Remove kernel version from kmod package names
62+
# FIXME: This will only work for 6.* kernels unfortunately
63+
# FIXME: The sed is a gross hack, maybe PR upstream?
64+
RUN set -e; \
65+
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; \
66+
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
67+
basename=$(basename ${rpm}); \
68+
name=${basename%%-6*}; \
69+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
70+
done
71+
6172
FROM scratch
6273

6374
COPY --from=builder /var/cache/rpms /rpms

Containerfile.zfs

+11
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,17 @@ RUN --mount=type=cache,dst=/var/cache/dnf \
3535
/tmp/build-kmod-zfs.sh && \
3636
/tmp/dual-sign-zfs.sh
3737

38+
# Remove kernel version from kmod package names
39+
# FIXME: This will only work for 6.* kernels unfortunately
40+
# FIXME: The sed is a gross hack, maybe PR upstream?
41+
RUN set -e; \
42+
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; \
43+
for rpm in $(find /var/cache/rpms/kmods -type f -name \*.rpm); do \
44+
basename=$(basename ${rpm}); \
45+
name=${basename%%-6*}; \
46+
fpm --verbose -s rpm -t rpm -p ${rpm} -f --name ${name} ${rpm}; \
47+
done
48+
3849
FROM scratch
3950

4051
COPY --from=builder /var/cache/rpms /rpms

build-prep.sh

+4-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ fi
5050
### PREPARE BUILD ENV
5151
dnf install -y \
5252
akmods \
53-
mock
53+
mock \
54+
ruby-devel
55+
56+
gem install fpm
5457

5558
if [[ ! -s "/tmp/certs/private_key.priv" ]]; then
5659
echo "WARNING: Using test signing key. Run './generate-akmods-key' for production builds."

0 commit comments

Comments
 (0)