debianize: introduce DEBIAN_PROVIDES and DEBIAN_REPLACES

Message ID 20240228094135.3557447-1-srinuvasan.a@siemens.com
State Accepted, archived
Headers show
Series debianize: introduce DEBIAN_PROVIDES and DEBIAN_REPLACES | expand

Commit Message

Arjunan, Srinu Feb. 28, 2024, 9:41 a.m. UTC
From: Srinuvasan A <srinuvasan.a@siemens.com>

Allow setting the Provides and Replaces field for auto generated control files,
with this changes now user can configure the provides and replaces in the debian/control file.

Recipes can simply setting the Provides and Replaces field now by defining the
DEBIAN_PROVIDES and DEBIAN_REPLACES variable.

Signed-off-by: Srinuvasan A <srinuvasan.a@siemens.com>
---
 doc/user_manual.md             | 4 ++++
 meta/classes/debianize.bbclass | 4 ++++
 2 files changed, 8 insertions(+)

Comments

Arjunan, Srinu March 4, 2024, 6:08 a.m. UTC | #1
Hi Uladzimir,

Can you please merge this changes if no objection.

Thanks,
Srinu

On Wednesday, February 28, 2024 at 3:11:58 PM UTC+5:30 
srinuv...@siemens.com wrote:

> From: Srinuvasan A <srinuv...@siemens.com>
>
> Allow setting the Provides and Replaces field for auto generated control 
> files,
> with this changes now user can configure the provides and replaces in the 
> debian/control file.
>
> Recipes can simply setting the Provides and Replaces field now by defining 
> the
> DEBIAN_PROVIDES and DEBIAN_REPLACES variable.
>
> Signed-off-by: Srinuvasan A <srinuv...@siemens.com>
> ---
> doc/user_manual.md | 4 ++++
> meta/classes/debianize.bbclass | 4 ++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/doc/user_manual.md b/doc/user_manual.md
> index 747b5ffe..bc730243 100644
> --- a/doc/user_manual.md
> +++ b/doc/user_manual.md
> @@ -936,6 +936,10 @@ For the variables please have a look at the previous 
> example, the following new
> Have a look at the `example-raw` recipe to get an idea how the `dpkg-raw` 
> class can be used to customize your image.
> Note that the package will be build using the whole debian package 
> workflow, so your package will be checked by many debhelper scripts. If 
> those helpers point out quality issues it might be a good idea to fix them. 
> But `example-raw` also shows how rules can still be violated.
>
> +Other (optional) customization variables include:
> + - `DEBIAN_PROVIDES` - declare a virtual package to satisfy dependencies
> + - `DEBIAN_REPLACES` - to replace a package with another
> +
> ### Prebuilt .deb packages from somewhere
>
> In some cases you might find yourself having a `.deb` that someone else 
> built,
> diff --git a/meta/classes/debianize.bbclass 
> b/meta/classes/debianize.bbclass
> index 7de98673..adbb5da4 100644
> --- a/meta/classes/debianize.bbclass
> +++ b/meta/classes/debianize.bbclass
> @@ -8,6 +8,8 @@ CHANGELOG_V ??= "${PV}"
> DPKG_ARCH ??= "any"
> DEBIAN_BUILD_DEPENDS ??= ""
> DEBIAN_DEPENDS ??= ""
> +DEBIAN_PROVIDES ??= ""
> +DEBIAN_REPLACES ??= ""
> DEBIAN_CONFLICTS ??= ""
> DEBIAN_MULTI_ARCH ??= "no"
> DEBIAN_COMPAT ??= "10"
> @@ -74,6 +76,8 @@ Build-Depends: debhelper-compat (= ${DEBIAN_COMPAT}), 
> ${DEBIAN_BUILD_DEPENDS}
> Package: ${BPN}
> Architecture: ${DPKG_ARCH}
> Depends: ${DEBIAN_DEPENDS}
> +Provides: ${DEBIAN_PROVIDES}
> +Replaces: ${DEBIAN_REPLACES}
> Conflicts: ${DEBIAN_CONFLICTS}
> Multi-Arch: ${DEBIAN_MULTI_ARCH}
> Description: ${DESCRIPTION}
> -- 
> 2.34.1
>
>
Uladzimir Bely March 4, 2024, 12:15 p.m. UTC | #2
On Sun, 2024-03-03 at 22:08 -0800, 'srinu' via isar-users wrote:
> Hi Uladzimir,
> 
> Can you please merge this changes if no objection.
> 
> Thanks,
> Srinu
> 

Hello Srinuvasan,

We are going to perform a new release today. All the targets were
already tested and adding any new patches on top will results in
postponing the release.
As your patch is not a fix but improvement we plan to apply it right
after the tagging.


> On Wednesday, February 28, 2024 at 3:11:58 PM UTC+5:30
> srinuv...@siemens.com wrote:
> > From: Srinuvasan A <srinuv...@siemens.com>
> > 
> > Allow setting the Provides and Replaces field for auto generated
> > control files,
> > with this changes now user can configure the provides and replaces
> > in the debian/control file.
> > 
> > Recipes can simply setting the Provides and Replaces field now by
> > defining the
> > DEBIAN_PROVIDES and DEBIAN_REPLACES variable.
> > 
> > Signed-off-by: Srinuvasan A <srinuv...@siemens.com>
Uladzimir Bely March 6, 2024, 7:20 a.m. UTC | #3
On Wed, 2024-02-28 at 15:11 +0530, srinuvasan.a@siemens.com wrote:
> From: Srinuvasan A <srinuvasan.a@siemens.com>
> 
> Allow setting the Provides and Replaces field for auto generated
> control files,
> with this changes now user can configure the provides and replaces in
> the debian/control file.
> 
> Recipes can simply setting the Provides and Replaces field now by
> defining the
> DEBIAN_PROVIDES and DEBIAN_REPLACES variable.
> 
> Signed-off-by: Srinuvasan A <srinuvasan.a@siemens.com>
> ---
>  doc/user_manual.md             | 4 ++++
>  meta/classes/debianize.bbclass | 4 ++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/doc/user_manual.md b/doc/user_manual.md
> index 747b5ffe..bc730243 100644
> --- a/doc/user_manual.md
> +++ b/doc/user_manual.md
> @@ -936,6 +936,10 @@ For the variables please have a look at the
> previous example, the following new
>  Have a look at the `example-raw` recipe to get an idea how the
> `dpkg-raw` class can be used to customize your image.
>  Note that the package will be build using the whole debian package
> workflow, so your package will be checked by many debhelper scripts.
> If those helpers point out quality issues it might be a good idea to
> fix them. But `example-raw` also shows how rules can still be
> violated.
>  
> +Other (optional) customization variables include:
> + - `DEBIAN_PROVIDES` - declare a virtual package to satisfy
> dependencies
> + - `DEBIAN_REPLACES` - to replace a package with another
> +
>  ### Prebuilt .deb packages from somewhere
>  
>  In some cases you might find yourself having a `.deb` that someone
> else built,
> diff --git a/meta/classes/debianize.bbclass
> b/meta/classes/debianize.bbclass
> index 7de98673..adbb5da4 100644
> --- a/meta/classes/debianize.bbclass
> +++ b/meta/classes/debianize.bbclass
> @@ -8,6 +8,8 @@ CHANGELOG_V ??= "${PV}"
>  DPKG_ARCH ??= "any"
>  DEBIAN_BUILD_DEPENDS ??= ""
>  DEBIAN_DEPENDS ??= ""
> +DEBIAN_PROVIDES ??= ""
> +DEBIAN_REPLACES ??= ""
>  DEBIAN_CONFLICTS ??= ""
>  DEBIAN_MULTI_ARCH ??= "no"
>  DEBIAN_COMPAT ??= "10"
> @@ -74,6 +76,8 @@ Build-Depends: debhelper-compat (=
> ${DEBIAN_COMPAT}), ${DEBIAN_BUILD_DEPENDS}
>  Package: ${BPN}
>  Architecture: ${DPKG_ARCH}
>  Depends: ${DEBIAN_DEPENDS}
> +Provides: ${DEBIAN_PROVIDES}
> +Replaces: ${DEBIAN_REPLACES}
>  Conflicts: ${DEBIAN_CONFLICTS}
>  Multi-Arch: ${DEBIAN_MULTI_ARCH}
>  Description: ${DESCRIPTION}

Applied to next, thanks.

Patch

diff --git a/doc/user_manual.md b/doc/user_manual.md
index 747b5ffe..bc730243 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -936,6 +936,10 @@  For the variables please have a look at the previous example, the following new
 Have a look at the `example-raw` recipe to get an idea how the `dpkg-raw` class can be used to customize your image.
 Note that the package will be build using the whole debian package workflow, so your package will be checked by many debhelper scripts. If those helpers point out quality issues it might be a good idea to fix them. But `example-raw` also shows how rules can still be violated.
 
+Other (optional) customization variables include:
+ - `DEBIAN_PROVIDES` - declare a virtual package to satisfy dependencies
+ - `DEBIAN_REPLACES` - to replace a package with another
+
 ### Prebuilt .deb packages from somewhere
 
 In some cases you might find yourself having a `.deb` that someone else built,
diff --git a/meta/classes/debianize.bbclass b/meta/classes/debianize.bbclass
index 7de98673..adbb5da4 100644
--- a/meta/classes/debianize.bbclass
+++ b/meta/classes/debianize.bbclass
@@ -8,6 +8,8 @@  CHANGELOG_V ??= "${PV}"
 DPKG_ARCH ??= "any"
 DEBIAN_BUILD_DEPENDS ??= ""
 DEBIAN_DEPENDS ??= ""
+DEBIAN_PROVIDES ??= ""
+DEBIAN_REPLACES ??= ""
 DEBIAN_CONFLICTS ??= ""
 DEBIAN_MULTI_ARCH ??= "no"
 DEBIAN_COMPAT ??= "10"
@@ -74,6 +76,8 @@  Build-Depends: debhelper-compat (= ${DEBIAN_COMPAT}), ${DEBIAN_BUILD_DEPENDS}
 Package: ${BPN}
 Architecture: ${DPKG_ARCH}
 Depends: ${DEBIAN_DEPENDS}
+Provides: ${DEBIAN_PROVIDES}
+Replaces: ${DEBIAN_REPLACES}
 Conflicts: ${DEBIAN_CONFLICTS}
 Multi-Arch: ${DEBIAN_MULTI_ARCH}
 Description: ${DESCRIPTION}