From: Uladzimir Bely <ubely@ilbers.de>
To: Anton Mikanovich <amikan@ilbers.de>, isar-users@googlegroups.com
Subject: Re: [PATCH v3] debianize: Fix unexpected characters in package lists
Date: Thu, 27 Mar 2025 13:33:07 +0300 [thread overview]
Message-ID: <ab182292bad2f9f85deadde7a94d61e629b028e0.camel@ilbers.de> (raw)
In-Reply-To: <20250320144512.342515-1-amikan@ilbers.de>
On Thu, 2025-03-20 at 16:45 +0200, Anton Mikanovich wrote:
> 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>
> ---
>
> Changes since v2:
> - Fix missing vardeps.
>
> Changes since v1:
> - Update also file headers.
>
> meta/classes/base.bbclass | 16 ++++++++++++++++
> meta/classes/debianize.bbclass | 21 +++++++++++++++------
> 2 files changed, 31 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index 7d4ab49f..c730eec9 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -1,4 +1,8 @@
> +# This software is a part of ISAR.
> +#
> # Copyright (C) 2003 Chris Larson
> +# Copyright (C) 2015-2025 ilbers GmbH
> +# Copyright (C) 2017-2025 Siemens AG
> #
> # Permission is hereby granted, free of charge, to any person
> obtaining a
> # copy of this software and associated documentation files (the
> "Software"),
> @@ -334,3 +338,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)
> diff --git a/meta/classes/debianize.bbclass
> b/meta/classes/debianize.bbclass
> index 5e9d76f3..4989c601 100644
> --- a/meta/classes/debianize.bbclass
> +++ b/meta/classes/debianize.bbclass
> @@ -1,6 +1,7 @@
> # This software is a part of ISAR.
> # Copyright (C) 2017-2019 Siemens AG
> # Copyright (C) 2021 Siemens Mobility GmbH
> +# Copyright (C) 2025 ilbers GmbH
> #
> # SPDX-License-Identifier: MIT
>
> @@ -18,6 +19,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}"
> @@ -66,6 +69,12 @@ EOF
> }
>
>
> +deb_create_control[vardeps] += "DEBIANIZE_BUILD_DEPENDS \
> + DEBIAN_DEPENDS \
> + DEBIAN_PROVIDES \
> + DEBIAN_REPLACES \
> + DEBIAN_BREAKS \
> + DEBIAN_CONFLICTS"
> deb_create_control() {
> cat << EOF > ${S}/debian/control
> Source: ${BPN}
> @@ -73,15 +82,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
> --
> 2.34.1
Applied to next.
--
Best regards,
Uladzimir.
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/ab182292bad2f9f85deadde7a94d61e629b028e0.camel%40ilbers.de.
prev parent reply other threads:[~2025-03-27 10:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-20 14:45 Anton Mikanovich
2025-03-27 10:33 ` Uladzimir Bely [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ab182292bad2f9f85deadde7a94d61e629b028e0.camel@ilbers.de \
--to=ubely@ilbers.de \
--cc=amikan@ilbers.de \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox