OS RedHat 8.4

Tôi biết rằng việc có %debug_packagemacro trong một spectệp sẽ tạo ra debuginfo cho một gói và sẽ tạo ra mypackage-debuginfo-<VERSION>.<ARCH>rpm. Tuy nhiên, điều buồn cười là tệp thông số kỹ thuật tôi có không có macro này và chưa xây dựng bộ gỡ lỗi.

Tuy nhiên, ở đầu spectệp có một số biến toàn cục:

%global _hardened_build 1
%global sysrepo 0
%undefine _missing_build_ids_terminate_build
%define _unpackaged_files_terminate_build 0

Tôi tự hỏi liệu một trong số chúng có bật %debug_packagemacro không?

answer

TL; DR: Thêm dòng sau vào cấu hình của bạn:

%global debug_package %{nil}

Bạn đã không đề cập đến hệ điều hành này là gì, nhưng kinh nghiệm của tôi là debuginfo được tạo tự động cho các gói nhị phân và bạn phải vô hiệu hóa nó một cách cụ thể đối với các gói không phải noarch.

Cách tắt được ghi lại ở đây: https://docs.fedoraproject.org/en-US/packaging-guidelines/Debuginfo/#_useless_or_incomplete_debuginfo_packages_due_to_other_reasons

If you wish to disable generation of the useless debuginfo package while waiting for improvements to find-debuginfo.sh or if it's unlikely that it could be enhanced to produce a good debuginfo for your package (for example no architecture dependent files, but package is not noarch because of the installation paths it uses), use %global debug_package %{nil} in the specfile, and be sure to add a comment next to it explaining why it was done.

Và nếu nó không hoạt động trên phiên bản của bạn, bạn có thể tìm hiểu thông tin đầu ra của lệnh sau:

rpm --showrc

Trên phiên bản Rocky 8.5 của tôi, tôi thấy rằng debug_packagemacro là macro xác định gói bổ sung, vì vậy hãy thiết lập để %{nil}vô hiệu hóa nó một cách hiệu quả. Bạn cũng có thể xem noarchcác gói không có debuginfo như thế nào.

$ rpm --showrc| sed -ne '/^-13: debug_package/,/^-/p'
-13: debug_package
%ifnarch noarch
%global __debug_package 1
%_debuginfo_template
%{?_debugsource_packages:%_debugsource_template}
%endif
%{nil}
-13: defined    %{expand:%%{?%{1}:1}%%{!?%{1}:0}}