Skip to content
Snippets Groups Projects
  • Dan Callahan's avatar
    fa6deb29
    Fix failures in Debian packaging (#9079) · fa6deb29
    Dan Callahan authored
    Debian package builds were failing for two reasons:
    
     1. Python versions prior to 3.7 throw exceptions when attempting to print
        Unicode characters under a "C" locale. (#9076)
    
     2. We depended on `dh-systemd` which no longer exists in Debian Bullseye, but
        is necessary in Ubuntu Xenial. (#9073)
    
    Setting `LANG="C.UTF-8"` in the build environment fixes the first issue.
    See also: https://bugs.python.org/issue19846
    
    
    
    The second issue is a bit trickier. The dh-systemd package was merged into
    debhelper version 9.20160709 and a transitional package left in its wake.
    
    The transitional dh-systemd package was removed in Debian Bullseye.
    
    However, Ubuntu Xenial ships an older debhelper, and still needs dh-systemd.
    
    Thus, builds were failing on Bullseye since we depended on a package which had
    ceased existing, but we couldn't remove it from the debian/control file and our
    build scripts because we still needed it for Ubuntu Xenial.
    
    We can fix the debian/control issue by listing dh-systemd as an alternative to
    the newer versions of debhelper. Since dh-systemd declares that it depends on
    debhelper, Ubuntu Xenial will select its older dh-systemd which will in turn
    pull in its older debhelper, resulting in no change from the status quo. All
    other supported releases will satisfy the debhelper dependency constraint and
    skip the dh-systemd alternative.
    
    Build scripts were fixed by unconditionally attempting to install dh-systemd on
    all releases and suppressing failures.
    
    Once we drop support for Ubuntu Xenial, we can revert most of this commit and
    rely on the version constraint on debhelper in debian/control.
    
    Fixes #9076
    Fixes #9073
    
    Signed-off-by: default avatarDan Callahan <danc@element.io>
    fa6deb29
    History
    Fix failures in Debian packaging (#9079)
    Dan Callahan authored
    Debian package builds were failing for two reasons:
    
     1. Python versions prior to 3.7 throw exceptions when attempting to print
        Unicode characters under a "C" locale. (#9076)
    
     2. We depended on `dh-systemd` which no longer exists in Debian Bullseye, but
        is necessary in Ubuntu Xenial. (#9073)
    
    Setting `LANG="C.UTF-8"` in the build environment fixes the first issue.
    See also: https://bugs.python.org/issue19846
    
    
    
    The second issue is a bit trickier. The dh-systemd package was merged into
    debhelper version 9.20160709 and a transitional package left in its wake.
    
    The transitional dh-systemd package was removed in Debian Bullseye.
    
    However, Ubuntu Xenial ships an older debhelper, and still needs dh-systemd.
    
    Thus, builds were failing on Bullseye since we depended on a package which had
    ceased existing, but we couldn't remove it from the debian/control file and our
    build scripts because we still needed it for Ubuntu Xenial.
    
    We can fix the debian/control issue by listing dh-systemd as an alternative to
    the newer versions of debhelper. Since dh-systemd declares that it depends on
    debhelper, Ubuntu Xenial will select its older dh-systemd which will in turn
    pull in its older debhelper, resulting in no change from the status quo. All
    other supported releases will satisfy the debhelper dependency constraint and
    skip the dh-systemd alternative.
    
    Build scripts were fixed by unconditionally attempting to install dh-systemd on
    all releases and suppressing failures.
    
    Once we drop support for Ubuntu Xenial, we can revert most of this commit and
    rely on the version constraint on debhelper in debian/control.
    
    Fixes #9076
    Fixes #9073
    
    Signed-off-by: default avatarDan Callahan <danc@element.io>