• Different linux-image produced w/wo pkg.linux.nokerneldbg profile?

    From Masahiro Yamada@21:1/5 to All on Sun Mar 12 07:00:01 2023
    Hello Ben,


    I have a question about the following commits:

    [1] a4c612e9e09a963937ea162cff716eb3f6d68c3a
    ("d/bin/gencontrol.py, d/rules.real: Replace DEBUG variable with if_package")

    [2] 140798ec27895a346d871283fb24dfa07fc54b4c
    ("Add pkg.linux.nokerneldbg build profile")


    With the pkg.linux.nokerneldbg profile given,
    the linux-image will skip --add-gnu-debuglink and re-do signing.


    This does not seem to comply with what is mentioned in BuildProfileSpec. (https://wiki.debian.org/BuildProfileSpec)


    ----------------------------------->8---------------------------------------- [Profile built binary packages]

    A binary package must contain the exact same content for all
    profiles with which
    it builds including no activated profile at all (if it builds in
    that case). Otherwise a
    package depending on that binary package might not find the
    functionality or data
    it expects it to provide. This means that if necessary binary
    packages have to be
    split or that a source package has to be built in two stages. This requirement can
    not technically be checked before ReproducibleBuilds happen.

    This requirement does not apply if the "stage1" or "nodoc" profile
    is active. In this
    case, only the parts of the package that expose a functional
    interface (scripts,
    programs, libraries, headers) must not be different. Non-functional interfaces like
    documentation can be different or missing in the produced binary packages. ----------------------------------->8----------------------------------------


    To produce the same package w/wo pkg.linux.nokerneldbg,
    does the following change make sense?



    diff --git a/debian/rules.real b/debian/rules.real
    index 0e88ed78d6..6c59b26ffb 100644
    --- a/debian/rules.real
    +++ b/debian/rules.real
    @@ -368,7 +368,6 @@ endif
    binary_image_dt \
    DIR='$(DIR)' DESTDIR='$(DESTDIR)' REAL_VERSION='$(REAL_VERSION)'
    +$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_STRIP=1
    -ifeq ($(call if_package,linux-image-$(ABINAME)$(LOCALVERSION)-dbg,y),y)
    # We are building debug info, so add debug links
    set -o pipefail; \
    find $(DESTDIR) -name '*.ko' | sed 's|$(DESTDIR)/lib/modules/$(REAL_VERSION)/kernel/||' | while read
    module ; do \
    @@ -379,7 +378,6 @@ ifeq ($(call if_package,linux-image-$(ABINAME)$(LOCALVERSION)-dbg,y),y)
    +if grep -qs '^CONFIG_MODULE_SIG_ALL=y' $(DIR)/.config; then \
    $(MAKE_CLEAN) -C $(DIR) modules_sign INSTALL_MOD_PATH=$(DESTDIR); \
    fi
    -endif
    sed '/CONFIG_\(MODULE_SIG_\(ALL\|KEY\)\|SYSTEM_TRUSTED_KEYS\|BUILD_SALT\)[
    =]/d' $(DIR)/.config > $(DESTDIR)/boot/config-$(REAL_VERSION)