• Masahiro Yamada's avatar
    kbuild: deb-pkg: set DEB_* variables if debian/rules is directly executed · 159956f3
    Masahiro Yamada authored
    Since commit 491b146d ("kbuild: builddeb: Eliminate debian/arch
    use"), direct execution of debian/rules results in the following error:
    
      dpkg-architecture: error: unknown option 'DEB_HOST_MULTIARCH'
    
    The current code:
    
      dpkg-architecture -a$DEB_HOST_ARCH -qDEB_HOST_MULTIARCH
    
    ... does not look sensible because:
    
     - For this code to work correctly, DEB_HOST_ARCH must be pre-defined,
       which is true when the packages are built via dpkg-buildpackage.
       In this case, DEB_HOST_MULTIARCH is also likely defined, hence there
       is no need to query DEB_HOST_MULTIARCH in the first place.
    
     - If DEB_HOST_MULTIARCH is undefined, DEB_HOST_ARCH is likely undefined
       too. So, you cannot query DEB_HOST_MULTIARCH in this way. This is
       mostly the case where debian/rules is directly executed.
    
    When debian/rules is directly executed, querying DEB_HOST_MUCHARCH is
    not enough because we need to know DEB_{BUILD,HOST}_GNU_TYPE as well.
    
    All DEB_* variables are defined when the package build is initiated by
    dpkg-buildpackage, but otherwise, let's call dpkg-architecture to set
    all DEB_* environment variables.
    
    This requires dpkg 1.20.6 or newer because --print-format option
    was added in dpkg commit 7c54fa2b232e ("dpkg-architecture: Add a
    --print-format option").
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: default avatarNicolas Schier <n.schier@avm.de>
    159956f3
builddeb 6.53 KB