From 4980ae0fbc9dca90f8476950cdacd7bdcf3fefac Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Tue, 16 Apr 2024 11:24:56 +0200 Subject: [PATCH] mkosi: Add support for building debug packages This allows building debug packages by setting WITH_DEBUG=1. This slows down the build a lot so it's opt in. We don't yet install these but can do so in a future commit. --- .../mkosi.conf.d/10-arch/mkosi.build.chroot | 12 +++++++++++- .../10-centos-fedora/mkosi.build.chroot | 15 +++++++++++++-- .../10-debian-ubuntu/mkosi.build.chroot | 14 ++++++++++++-- .../mkosi.conf.d/10-opensuse/mkosi.build.chroot | 11 ++++++++++- 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.build.chroot b/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.build.chroot index 807823205f1..fb855803602 100755 --- a/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.build.chroot +++ b/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.build.chroot @@ -26,7 +26,17 @@ mount --mkdir --rbind "$PWD/pkg/$ID" "pkg/$ID/src/" # tmpfs during the build script so these changes don't end up in the image itself. tee --append /etc/makepkg.conf >/dev/null <>debian/changelog.new mv debian/changelog.new debian/changelog build() { - DEB_BUILD_OPTIONS="$( ((WITH_TESTS)) || echo nocheck) $( ((WITH_DOCS)) || echo nodoc) nostrip terse optimize=-lto" \ - DEB_BUILD_PROFILES="$( ((WITH_TESTS)) || echo nocheck) $( ((WITH_DOCS)) || echo nodoc) pkg.systemd.upstream" \ + DEB_BUILD_OPTIONS="\ + $( ((WITH_TESTS)) || echo nocheck) \ + $( ((WITH_DOCS)) || echo nodoc) \ + $( ((WITH_DEBUG)) || echo nostrip) \ + terse + optimize=-lto \ + " \ + DEB_BUILD_PROFILES="\ + $( ((WITH_TESTS)) || echo nocheck) \ + $( ((WITH_DOCS)) || echo nodoc) \ + pkg.systemd.upstream \ + " \ DEB_CFLAGS_APPEND="-Og" \ DPKG_FORCE="unsafe-io" \ DPKG_DEB_COMPRESSOR_TYPE="none" \ diff --git a/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot b/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot index 5bc78aee3bf..fe89611e36e 100755 --- a/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot +++ b/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot @@ -22,7 +22,15 @@ fi # extension. find "pkg/$ID" -name "files.*" -exec sed --in-place 's/\.gz$//' {} \; +# Fix the %install override so debuginfo packages are generated. +tee --append /usr/lib/rpm/suse/macros <<'EOF' +%install %{debug_package}\ +%%install\ +%{nil} +EOF + build() { + IFS= # TODO: Replace meson_build and meson_install overrides with "--undefine __meson_verbose" once # https://github.com/mesonbuild/meson/pull/12835 is available. # shellcheck disable=SC2046 @@ -38,7 +46,8 @@ build() { ${BUILDDIR:+"_vpath_builddir $BUILDDIR"} \ --define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ --define "_binary_payload w.ufdio" \ - --define "debug_package %{nil}" \ + $( ((WITH_DEBUG)) || echo --define) \ + $( ((WITH_DEBUG)) || echo "debug_package %{nil}") \ --define "vendor openSUSE" \ --define "version_override $(cat meson.version)" \ --define "release_override $(date "+%Y%m%d%H%M%S" --date "@$TS")" \ -- 2.39.2