| Message ID | 20251029120223.113791-1-srinuvasan.a@siemens.com |
|---|---|
| State | New |
| Headers | show |
| Series | [v2] debianize: set appropriate Standards-Version for each debian suite | expand |
On 29.10.25 13:02, srinuvasan.a via isar-users wrote: > From: srinuvasan <srinuvasan.a@siemens.com> > > The Standards-Version field in debian/control declares the Debian Policy > version that the package complies with. Currently, the custom source packages > use a hard-coded Standards-Version: 3.9.6, which is obsolete and does not align > with the policies of newer Debian releases > We have a lot of hand-written control files with that version in isar and isar-cip-core in addition. Any plans for addressing those as well? BTW, what is the concrete impact of not having a recent version? Missing that from this description. Jan > Update the packaging to set the correct Standards-Version dynamically based on > the target Debian suite, ensuring compliance with the appropriate Debian Policy > version for each release. > > Signed-off-by: srinuvasan <srinuvasan.a@siemens.com> > --- > RECIPE-API-CHANGELOG.md | 7 +++++++ > meta/classes/debianize.bbclass | 14 ++++++++++++-- > 2 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md > index cf04fa5c..bb5f9b9c 100644 > --- a/RECIPE-API-CHANGELOG.md > +++ b/RECIPE-API-CHANGELOG.md > @@ -242,6 +242,13 @@ consumption by imaging classes. > Additional build dependencies of auto-debianized packages can now be defined > by setting DEBIAN_BUILD_DEPENDS. > > +### Add STANDARDS_VERSION as a deb_debianize parameter > + > +By default, the Standards-Version field in the debian/control file is automatically > +set based on the corresponding Debian suite. > +If you need to override this default value, you can do so by defining > +the STANDARDS_VERSION variable in your recipe. > + > ### Separation of ${S} and ${D} in dpkg-raw > > ${S} can now be used for checking out sources without being linked implicitly > diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass > index 1f54e8f9..2fad991a 100644 > --- a/meta/classes/debianize.bbclass > +++ b/meta/classes/debianize.bbclass > @@ -80,14 +80,24 @@ deb_create_control[vardeps] += "DEBIANIZE_BUILD_DEPENDS \ > DEBIAN_BREAKS \ > DEBIAN_BUILT_USING \ > DEBIAN_CONFLICTS \ > - DEBIAN_RULES_REQUIRES_ROOT" > + DEBIAN_RULES_REQUIRES_ROOT \ > + STANDARDS_VERSION" > deb_create_control() { > # Add Source section > + if [ -z "${STANDARDS_VERSION}" ]; then > + case "${BASE_DISTRO_CODENAME}" in > + buster) STANDARDS_VERSION="4.3.0" ;; > + bullseye) STANDARDS_VERSION="4.5.1" ;; > + bookworm) STANDARDS_VERSION="4.6.2" ;; > + trixie|sid|*) STANDARDS_VERSION="4.7.2" ;; > + esac > + fi > + > cat << EOF > ${S}/debian/control > Source: ${BPN} > Section: ${@ deb_list_beautify(d, 'DEBIAN_SECTION')} > Priority: optional > -Standards-Version: 3.9.6 > +Standards-Version: ${STANDARDS_VERSION} > Maintainer: ${MAINTAINER} > Build-Depends: ${@ deb_list_beautify(d, 'DEBIANIZE_BUILD_DEPENDS')} > EOF
diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index cf04fa5c..bb5f9b9c 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -242,6 +242,13 @@ consumption by imaging classes. Additional build dependencies of auto-debianized packages can now be defined by setting DEBIAN_BUILD_DEPENDS. +### Add STANDARDS_VERSION as a deb_debianize parameter + +By default, the Standards-Version field in the debian/control file is automatically +set based on the corresponding Debian suite. +If you need to override this default value, you can do so by defining +the STANDARDS_VERSION variable in your recipe. + ### Separation of ${S} and ${D} in dpkg-raw ${S} can now be used for checking out sources without being linked implicitly diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass index 1f54e8f9..2fad991a 100644 --- a/meta/classes/debianize.bbclass +++ b/meta/classes/debianize.bbclass @@ -80,14 +80,24 @@ deb_create_control[vardeps] += "DEBIANIZE_BUILD_DEPENDS \ DEBIAN_BREAKS \ DEBIAN_BUILT_USING \ DEBIAN_CONFLICTS \ - DEBIAN_RULES_REQUIRES_ROOT" + DEBIAN_RULES_REQUIRES_ROOT \ + STANDARDS_VERSION" deb_create_control() { # Add Source section + if [ -z "${STANDARDS_VERSION}" ]; then + case "${BASE_DISTRO_CODENAME}" in + buster) STANDARDS_VERSION="4.3.0" ;; + bullseye) STANDARDS_VERSION="4.5.1" ;; + bookworm) STANDARDS_VERSION="4.6.2" ;; + trixie|sid|*) STANDARDS_VERSION="4.7.2" ;; + esac + fi + cat << EOF > ${S}/debian/control Source: ${BPN} Section: ${@ deb_list_beautify(d, 'DEBIAN_SECTION')} Priority: optional -Standards-Version: 3.9.6 +Standards-Version: ${STANDARDS_VERSION} Maintainer: ${MAINTAINER} Build-Depends: ${@ deb_list_beautify(d, 'DEBIANIZE_BUILD_DEPENDS')} EOF