目次
rpmbuild
rpmbuild 環境を整える
$ sudo dnf install rpm-build rpm-sign gcc-c++ $ sudo dnf groupinstall "Development Tools" $ sudo dnf install fedora-packager
rpmbuild を行うためのディレクトリ構造を作成
必ず root 以外で作業すること。
$ rpmdev-setuptree
ホームディレクトリに以下の構造が作成される。
$ tree ~/rpmbuild
/home/tomoyan/rpmbuild ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS 6 directories, 0 files
rpm マクロの修正(パッケージ署名の準備)
gpg2 の準備については GnuPG - GNU Privacy Guard の「自分の鍵の作成」 を参照。
$ nano ~/.rpmmacros
%_topdir %(echo $HOME)/rpmbuild %__arch_install_post \ [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \ case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \ /usr/lib/rpm/check-buildroot # gpg2 による署名 %_signature gpg # 鍵の名前 or ID %_gpg_name C3CE4841130D45F78878E28BD977F84F14067924 # gpg2 のパス %_gpgbin /usr/bin/gpg2 # パッケージ作成者 %packager TomoYan <tomoyan@tomoyan.net>
パッケージソースのダウンロードとインストール
パッケージソースのダウンロード
$ dnf download --source nvidia-390xx-kmod
fedora-source リポジトリーの有効化 updates-source リポジトリーの有効化 rpmfusion-free-source リポジトリーの有効化 rpmfusion-free-updates-source リポジトリーの有効化 rpmfusion-nonfree-source リポジトリーの有効化 rpmfusion-nonfree-nvidia-driver-source リポジトリーの有効化 rpmfusion-nonfree-steam-source リポジトリーの有効化 rpmfusion-nonfree-updates-source リポジトリーの有効化 メタデータの期限切れの最終確認: 0:14:49 前の 2024年04月14日 10時30分48秒 に実施しました。 nvidia-390xx-kmod-390.157-8.fc39.src.rpm 74 kB/s | 101 kB 00:01
インストール
$ rpm -ivh nvidia-390xx-kmod-390.157-8.fc39.src.rpm
更新中 / インストール中... 1:nvidia-390xx-kmod-3:390.157-8.fc3################################# [100%]
ビルドの依存関係をインストール
$ sudo dnf builddep -y ~/rpmbuild/SPECS/nvidia-390xx-kmod.spec
メタデータの期限切れの最終確認: 0:03:27 前の 2024年04月14日 10時47分36秒 に実施しました。 パッケージ kmodtool-1.1-8.fc39.noarch は既にインストールされています。 パッケージ elfutils-libelf-devel-0.191-2.fc39.x86_64 は既にインストールされています。 パッケージ gcc-13.2.1-7.fc39.x86_64 は既にインストールされています。 パッケージ xorg-x11-drv-nvidia-390xx-kmodsrc-3:390.157-3.fc39.x86_64 は既にインストールされています。 依存関係が解決しました。 ============================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ============================================================================================================== インストール: buildsys-build-rpmfusion x86_64 11:39-0.1.fc39 rpmfusion-free 12 k トランザクションの概要 ============================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 12 k インストール後のサイズ: 7.8 k パッケージのダウンロード: buildsys-build-rpmfusion-39-0.1.fc39.x86_64.rpm 15 kB/s | 12 kB 00:00 -------------------------------------------------------------------------------------------------------------- 合計 5.2 kB/s | 12 kB 00:02 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : buildsys-build-rpmfusion-11:39-0.1.fc39.x86_64 1/1 検証 : buildsys-build-rpmfusion-11:39-0.1.fc39.x86_64 1/1 インストール済み: buildsys-build-rpmfusion-11:39-0.1.fc39.x86_64 完了しました!
パッケージソースのビルド
$ rpmbuild -ba ~/rpmbuild/SPECS/nvidia-390xx-kmod.spec
setting SOURCE_DATE_EPOCH=1712361600 実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.O00nre + umask 022 + cd /home/tomoyan/rpmbuild/BUILD + kmodtool --target x86_64 --repo rpmfusion --kmodname nvidia-390xx-kmod --filterfile /home/tomoyan/rpmbuild/SOURCES/nvidia-390xx-kmodtool-excludekernel-filterfile --akmod %{?rhel:%global with_rhel_kabi 1} %if 0%{?rhel} || 0%{?fedora} %global kmod_pkg_name kmod-nvidia-390xx %global pkg_kmod_name nvidia-390xx-kmod %{?obsolete_name:%global kmod_obsolete_name kmod-%{obsolete_name}} %endif %global akmod_install mkdir -p $RPM_BUILD_ROOT/%{_usrsrc}/akmods/; \rpmbuild --define "_sourcedir %{_sourcedir}" \--define "_srcrpmdir $RPM_BUILD_ROOT/%{_usrsrc}/akmods/" \%{?dist:--define 'dist %{dist}}' \-bs --nodeps %{_specdir}/%{name}.spec ; \ln -s $(ls $RPM_BUILD_ROOT/%{_usrsrc}/akmods/) $RPM_BUILD_ROOT/%{_usrsrc}/akmods/%{pkg_kmod_name}.latest %package -n akmod-nvidia-390xx Summary: Akmod package for nvidia-390xx kernel module(s) Requires: kmodtool Requires: akmods %{?AkmodsBuildRequires:Requires: %{AkmodsBuildRequires}} # same requires and provides as a kmods package would have Requires: %{pkg_kmod_name}-common >= %{?epoch:%{epoch}:}%{version} Provides: %{pkg_kmod_name} = %{?epoch:%{epoch}:}%{version}-%{release} %description -n akmod-nvidia-390xx This package provides the akmod package for the nvidia-390xx kernel modules. %posttrans -n akmod-nvidia-390xx nohup /usr/sbin/akmods --from-akmod-posttrans --akmod nvidia-390xx &> /dev/null & %post -n akmod-nvidia-390xx [ -x /usr/sbin/akmods-ostree-post ] && /usr/sbin/akmods-ostree-post nvidia-390xx %{_usrsrc}/akmods/%{pkg_kmod_name}-%{version}-%{release}.src.rpm %files -n akmod-nvidia-390xx %defattr(-,root,root,-) %{_usrsrc}/akmods/* %package -n %{kmod_pkg_name} Summary: Metapackage which tracks in nvidia-390xx kernel module for newest kernel Provides: %{pkg_kmod_name} = %{?epoch:%{epoch}:}%{version}-%{release} Provides: %{kmod_pkg_name}-xen = %{?epoch:%{epoch}:}%{version}-%{release} Provides: %{kmod_pkg_name}-smp = %{?epoch:%{epoch}:}%{version}-%{release} Provides: %{kmod_pkg_name}-PAE = %{?epoch:%{epoch}:}%{version}-%{release} Requires: akmod-nvidia-390xx = %{?epoch:%{epoch}:}%{version}-%{release} %description -n %{kmod_pkg_name} This is a meta-package without payload which sole purpose is to require the nvidia-390xx kernel module(s) for the newest kernel, to make sure you get it together with a new kernel. %files -n %{kmod_pkg_name} %defattr(644,root,root,755) + cd /home/tomoyan/rpmbuild/BUILD + rm -rf nvidia-390xx-kmod-390.157 + /usr/bin/mkdir -p nvidia-390xx-kmod-390.157 + cd nvidia-390xx-kmod-390.157 + rm -rf /home/tomoyan/rpmbuild/BUILD/nvidia-390xx-kmod-390.157-SPECPARTS + /usr/bin/mkdir -p /home/tomoyan/rpmbuild/BUILD/nvidia-390xx-kmod-390.157-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + tar --use-compress-program xz -xf /usr/share/nvidia-390xx-kmod-390.157/nvidia-390xx-kmod-390.157-x86_64.tar.xz + echo 'Patch #12 (do-div-cast.patch):' Patch #12 (do-div-cast.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 12 --fuzz=0 -d kernel patching file nvidia-modeset/nvidia-modeset-linux.c + echo 'Patch #13 (0018-backport-nv_install_notifier-changes-from-418.30.patch):' Patch #13 (0018-backport-nv_install_notifier-changes-from-418.30.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 13 --fuzz=0 -d kernel patching file nvidia/nv-acpi.c Hunk #1 succeeded at 502 (offset -1 lines). Hunk #2 succeeded at 532 (offset -1 lines). Hunk #3 succeeded at 560 (offset -1 lines). Hunk #4 succeeded at 576 (offset -1 lines). Hunk #5 succeeded at 608 (offset -1 lines). Hunk #6 succeeded at 676 (offset -1 lines). + echo 'Patch #19 (kernel-4.16+-memory-encryption.patch):' Patch #19 (kernel-4.16+-memory-encryption.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 19 --fuzz=0 patching file kernel/common/inc/nv-linux.h patching file kernel/conftest.sh Hunk #1 succeeded at 2074 (offset 18 lines). + echo 'Patch #20 (nvidia-390xx-kmod-0024-kernel-6.2-adaptation.patch):' Patch #20 (nvidia-390xx-kmod-0024-kernel-6.2-adaptation.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 20 --fuzz=0 patching file kernel/nvidia-drm/nvidia-drm-connector.c patching file kernel/nvidia-drm/nvidia-drm-drv.c patching file kernel/nvidia-drm/nvidia-drm-fb.c patching file kernel/nvidia/nv-acpi.c + echo 'Patch #21 (nvidia-390xx-kmod-0025-kernel-6.3-adaptation.patch):' Patch #21 (nvidia-390xx-kmod-0025-kernel-6.3-adaptation.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 21 --fuzz=0 patching file kernel/nvidia-uvm/uvm8.c patching file kernel/nvidia/nv-mmap.c + echo 'Patch #22 (nvidia-390xx-kmod-0026-kernel-6.4-adaptation.patch):' Patch #22 (nvidia-390xx-kmod-0026-kernel-6.4-adaptation.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 22 --fuzz=0 patching file kernel/nvidia-drm/nvidia-drm-drv.c + echo 'Patch #23 (nvidia-390xx-kmod-0027-kernel-6.5-garbage-collect-all-references-to-get_user.patch):' Patch #23 (nvidia-390xx-kmod-0027-kernel-6.5-garbage-collect-all-references-to-get_user.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 23 --fuzz=0 -d kernel patching file common/inc/nv-mm.h patching file conftest.sh Hunk #1 succeeded at 3086 (offset 5 lines). + echo 'Patch #24 (nvidia-390xx-kmod-0028-kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch):' Patch #24 (nvidia-390xx-kmod-0028-kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 24 --fuzz=0 -d kernel patching file common/inc/nv-mm.h patching file conftest.sh Hunk #1 succeeded at 3056 (offset 5 lines). Hunk #2 succeeded at 3079 (offset 5 lines). patching file nvidia-drm/nvidia-drm-linux.c patching file nvidia-uvm/uvm8_tools.c patching file nvidia/os-mlock.c + echo 'Patch #25 (nvidia-390xx-kmod-0029-kernel-6.6-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch):' Patch #25 (nvidia-390xx-kmod-0029-kernel-6.6-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 25 --fuzz=0 -d kernel patching file nvidia-drm/nvidia-drm-drv.c Hunk #1 succeeded at 705 (offset 8 lines). patching file nvidia-drm/nvidia-drm.Kbuild + echo 'Patch #26 (nvidia-390xx-kmod-0030-kernel-6.6-refuse-to-load-legacy-module-if-IBT-is-enabled.patch):' Patch #26 (nvidia-390xx-kmod-0030-kernel-6.6-refuse-to-load-legacy-module-if-IBT-is-enabled.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 26 --fuzz=0 -d kernel patching file nvidia-modeset/nvidia-modeset-linux.c patching file nvidia/nv.c + echo 'Patch #27 (nvidia-390xx-kmod-0031-kernel-6.8-adaptation.patch):' Patch #27 (nvidia-390xx-kmod-0031-kernel-6.8-adaptation.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 27 --fuzz=0 -d kernel patching file nvidia-drm/nvidia-drm-drv.c + echo 'Patch #30 (use-kbuild-compiler.patch):' Patch #30 (use-kbuild-compiler.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 30 --fuzz=0 -d kernel patching file Makefile + echo 'Patch #31 (conftest-verbose.patch):' Patch #31 (conftest-verbose.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 31 --fuzz=0 -d kernel patching file Kbuild Hunk #1 succeeded at 114 (offset -1 lines). Hunk #2 succeeded at 148 (offset -1 lines). Hunk #3 succeeded at 169 (offset -1 lines). + echo 'Patch #32 (cc_version_check-gcc5.patch):' Patch #32 (cc_version_check-gcc5.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 32 --fuzz=0 -d kernel patching file conftest.sh Hunk #1 succeeded at 4627 (offset 11 lines). + echo 'Patch #33 (bashisms.patch):' Patch #33 (bashisms.patch): + /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix 33 --fuzz=0 -d kernel patching file conftest.sh Hunk #1 succeeded at 4869 (offset 11 lines). + RPM_EC=0 ++ jobs -p + exit 0 実行中(%build): /bin/sh -e /var/tmp/rpm-tmp.RtiW10 + umask 022 + cd /home/tomoyan/rpmbuild/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd nvidia-390xx-kmod-390.157 + RPM_EC=0 ++ jobs -p + exit 0 実行中(%install): /bin/sh -e /var/tmp/rpm-tmp.xb86B8 + umask 022 + cd /home/tomoyan/rpmbuild/BUILD + '[' /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64 '!=' / ']' + rm -rf /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64 ++ dirname /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64 + mkdir -p /home/tomoyan/rpmbuild/BUILDROOT + mkdir /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd nvidia-390xx-kmod-390.157 + mkdir -p /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64//usr/src/akmods/ + rpmbuild --define '_sourcedir /home/tomoyan/rpmbuild/SOURCES' --define '_srcrpmdir /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64//usr/src/akmods/' --define 'dist .fc39' -bs --nodeps /home/tomoyan/rpmbuild/SPECS/nvidia-390xx-kmod.spec Wrote: /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64/usr/src/akmods/nvidia-390xx-kmod-390.157-8.fc39.src.rpm ++ ls /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64//usr/src/akmods/ + ln -s nvidia-390xx-kmod-390.157-8.fc39.src.rpm /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64//usr/src/akmods/nvidia-390xx-kmod.latest + '[' '%{buildarch}' = noarch ']' + QA_CHECK_RPATHS=1 + case "${QA_CHECK_RPATHS:-}" in + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j8 + /usr/lib/rpm/redhat/brp-python-hardlink ファイルの処理中: akmod-nvidia-390xx-390.157-8.fc39.x86_64 Provides: akmod-nvidia = 3:390.157 akmod-nvidia-390xx = 3:390.157-8.fc39 akmod-nvidia-390xx(x86-64) = 3:390.157-8.fc39 nvidia-390xx-kmod = 3:390.157-8.fc39 Requires(interp): /bin/sh /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires(posttrans): /bin/sh Obsoletes: akmod-nvidia < 3:390.157 ファイルの処理中: kmod-nvidia-390xx-390.157-8.fc39.x86_64 パッケージに含まれないファイルの検査中: /usr/lib/rpm/check-files /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64 書き込みが完了しました: /home/tomoyan/rpmbuild/SRPMS/nvidia-390xx-kmod-390.157-8.fc39.src.rpm 書き込みが完了しました: /home/tomoyan/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm 書き込みが完了しました: /home/tomoyan/rpmbuild/RPMS/x86_64/akmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.9HIYWt + umask 022 + cd /home/tomoyan/rpmbuild/BUILD + cd nvidia-390xx-kmod-390.157 + /usr/bin/rm -rf /home/tomoyan/rpmbuild/BUILDROOT/nvidia-390xx-kmod-390.157-8.fc39.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 実行中(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.DV2zxR + umask 022 + cd /home/tomoyan/rpmbuild/BUILD + rm -rf /home/tomoyan/rpmbuild/BUILD/nvidia-390xx-kmod-390.157-SPECPARTS + rm -rf nvidia-390xx-kmod-390.157 nvidia-390xx-kmod-390.157.gemspec + RPM_EC=0 ++ jobs -p + exit 0
パッケージの署名
$ rpmsign --addsign ~/rpmbuild/RPMS/x86_64/*
/home/tomoyan/rpmbuild/RPMS/x86_64/akmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm: /home/tomoyan/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm:
パッケージ署名の確認
$ rpm --checksig ~/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm
/home/tomoyan/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm: ダイジェスト 署名 OK
$ rpm -qi ~/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm
Name : kmod-nvidia-390xx
Epoch : 3
Version : 390.157
Release : 8.fc39
Architecture: x86_64
Install Date: (not installed)
Group : System Environment/Kernel
Size : 0
License : Redistributable, no modification permitted
Signature : EdDSA/SHA512, 2024年04月14日 11時21分03秒, Key ID d977f84f14067924
Source RPM : nvidia-390xx-kmod-390.157-8.fc39.src.rpm
Build Date : 2024年04月14日 10時53分18秒
Build Host : highway-x.fireball.local
URL : http://www.nvidia.com/
Summary : Metapackage which tracks in nvidia-390xx kernel module for newest kernel
Description :
This is a meta-package without payload which sole purpose is to require the
nvidia-390xx kernel module(s) for the newest kernel,
to make sure you get it together with a new kernel.
「ダイジェスト SIGNATURES OK ではありません」と言われる場合🤔
$ rpm --checksig ~/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm
/home/tomoyan/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm: ダイジェスト SIGNATURES OK ではありません
公開鍵のエクスポート - GnuPG - GNU Privacy Guard を行って、システムに RPM-GPG-KEY-xxx をインポートしてから再度署名を確認する😉
$ sudo rpm --import RPM-GPG-KEY-tomoyan-39
$ rpm --checksig ~/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm
/home/tomoyan/rpmbuild/RPMS/x86_64/kmod-nvidia-390xx-390.157-8.fc39.x86_64.rpm: ダイジェスト 署名 OK