@@ -334,3 +334,15 @@ do_unpack[postfuncs] += "create_source_date_epoch_stamp"
def get_source_date_epoch_value(d):
return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d)
+
+def deb_list_beautify(d, varname):
+ line = d.getVar(varname)
+ if not line:
+ return ''
+
+ var_list = []
+ for a in line.split(','):
+ stripped = a.strip()
+ if stripped:
+ var_list.append(stripped)
+ return ', '.join(var_list)
@@ -18,6 +18,8 @@ DEBIAN_CHANGELOG_TIMESTAMP ??= "3600"
DESCRIPTION ??= "must not be empty"
MAINTAINER ??= "Unknown maintainer <unknown@example.com>"
+DEBIANIZE_BUILD_DEPENDS ?= "debhelper-compat (= ${DEBIAN_COMPAT}), ${DEBIAN_BUILD_DEPENDS}"
+
deb_add_changelog() {
changelog_v="${CHANGELOG_V}"
timestamp="${DEBIAN_CHANGELOG_TIMESTAMP}"
@@ -73,15 +75,15 @@ Section: misc
Priority: optional
Standards-Version: 3.9.6
Maintainer: ${MAINTAINER}
-Build-Depends: debhelper-compat (= ${DEBIAN_COMPAT}), ${DEBIAN_BUILD_DEPENDS}
+Build-Depends: ${@ deb_list_beautify(d, 'DEBIANIZE_BUILD_DEPENDS')}
Package: ${BPN}
Architecture: ${DPKG_ARCH}
-Depends: ${DEBIAN_DEPENDS}
-Provides: ${DEBIAN_PROVIDES}
-Replaces: ${DEBIAN_REPLACES}
-Breaks: ${DEBIAN_BREAKS}
-Conflicts: ${DEBIAN_CONFLICTS}
+Depends: ${@ deb_list_beautify(d, 'DEBIAN_DEPENDS')}
+Provides: ${@ deb_list_beautify(d, 'DEBIAN_PROVIDES')}
+Replaces: ${@ deb_list_beautify(d, 'DEBIAN_REPLACES')}
+Breaks: ${@ deb_list_beautify(d, 'DEBIAN_BREAKS')}
+Conflicts: ${@ deb_list_beautify(d, 'DEBIAN_CONFLICTS')}
Multi-Arch: ${DEBIAN_MULTI_ARCH}
Description: ${DESCRIPTION}
EOF
Newer dpkg-deb versions got more pedantic to the control file format. Introduce debian package list format helper to cleanup empty items or unexpected commas in dependency options passing to the default control file. This prevents errors like: | dpkg-deb: error: unexpected end of file in archive magic version number in *.deb | Unexpected character ')' parsing formula 'Package (= ), Architecture (= ), $PackageType (= deb)'! | There have been errors! caused by empty DEBIAN_BUILD_DEPENDS value in the line: | Build-Depends: debhelper-compat (= ${DEBIAN_COMPAT}), ${DEBIAN_BUILD_DEPENDS} which results in: | Build-Depends: debhelper-compat (= 13), Signed-off-by: Anton Mikanovich <amikan@ilbers.de> --- meta/classes/base.bbclass | 12 ++++++++++++ meta/classes/debianize.bbclass | 14 ++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-)