diff mbox series

package_rpm: proposal to use internal dependency generator

Message ID 20240109075641.993044-1-xiangyu.chen@eng.windriver.com
State New
Headers show
Series package_rpm: proposal to use internal dependency generator | expand

Commit Message

Xiangyu Chen Jan. 9, 2024, 7:56 a.m. UTC
From: Xiangyu Chen <xiangyu.chen@windriver.com>

Currently we are using external dependency generator, the rpm upstream already
marked it as "Old Style Dependency Generators"[1], they also added a warning message
in rpm source code to inform that the external dependency generator is deprecated[2].

Since it is only kept for backwards compatibility and may get removed in a future
release of rpm, so here is a proposal to use internal dependency generator by default.

[1] https://rpm-software-management.github.io/rpm/manual/dependency_generators.html
[2] https://github.com/rpm-software-management/rpm/commit/cfcdd942

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
---
 meta/classes-global/package_rpm.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alexandre Belloni Jan. 9, 2024, 9:44 p.m. UTC | #1
Hello,

This causes failures on the autobuilders:
https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/8478/steps/11/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/37/builds/8432/steps/11/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/100/builds/5523/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/81/builds/6142/steps/11/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/82/builds/5957/steps/12/logs/stdio


DNF version: 4.18.2
cachedir: /home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-ptest-valgrind/1.0/rootfs/var/cache/dnf
Added oe-repo repo from /home/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/beaglebone_yocto-poky-linux-gnueabi/core-image-ptest-valgrind/1.0/oe-rootfs-repo
User-Agent: falling back to 'libdnf': could not detect OS or basearch
repo: using cache for: oe-repo
oe-repo: using metadata from Tue 09 Jan 2024 09:11:27 AM UTC.
Last metadata expiration check: 0:00:01 ago on Tue 09 Jan 2024 09:11:29 AM UTC.
--> Starting dependency resolution
--> Finished dependency resolution
Error: 
 Problem: conflicting requests
  - nothing provides /bin/csh needed by valgrind-ptest-3.21.0-r0.cortexa8hf_neon from oe-repo
  - nothing provides /this/is/a/bogus/interpreter/name needed by valgrind-ptest-3.21.0-r0.cortexa8hf_neon from oe-repo
  - nothing provides /usr/local/bin/bash needed by valgrind-ptest-3.21.0-r0.cortexa8hf_neon from oe-repo
  - nothing provides /usr/local/bin/ksh93 needed by valgrind-ptest-3.21.0-r0.cortexa8hf_neon from oe-repo
(try to add '--skip-broken' to skip uninstallable packages)



On 09/01/2024 15:56:41+0800, Xiangyu Chen wrote:
> From: Xiangyu Chen <xiangyu.chen@windriver.com>
> 
> Currently we are using external dependency generator, the rpm upstream already
> marked it as "Old Style Dependency Generators"[1], they also added a warning message
> in rpm source code to inform that the external dependency generator is deprecated[2].
> 
> Since it is only kept for backwards compatibility and may get removed in a future
> release of rpm, so here is a proposal to use internal dependency generator by default.
> 
> [1] https://rpm-software-management.github.io/rpm/manual/dependency_generators.html
> [2] https://github.com/rpm-software-management/rpm/commit/cfcdd942
> 
> Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
> ---
>  meta/classes-global/package_rpm.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass
> index 2fc18fe98c..05cecee7d7 100644
> --- a/meta/classes-global/package_rpm.bbclass
> +++ b/meta/classes-global/package_rpm.bbclass
> @@ -681,7 +681,7 @@ python do_package_rpm () {
>      cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'"
>      cmd = cmd + " --define '_builddir " + d.getVar('B') + "'"
>      cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'"
> -    cmd = cmd + " --define '_use_internal_dependency_generator 0'"
> +    cmd = cmd + " --define '_use_internal_dependency_generator 1'"
>      cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
>      cmd = cmd + " --define '_build_id_links none'"
>      cmd = cmd + " --define '_source_payload %s'" % rpmbuild_compmode
> -- 
> 2.25.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#193444): https://lists.openembedded.org/g/openembedded-core/message/193444
> Mute This Topic: https://lists.openembedded.org/mt/103616137/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Richard Purdie Jan. 10, 2024, 4:38 p.m. UTC | #2
On Tue, 2024-01-09 at 15:56 +0800, Xiangyu Chen wrote:
> From: Xiangyu Chen <xiangyu.chen@windriver.com>
> 
> Currently we are using external dependency generator, the rpm upstream already
> marked it as "Old Style Dependency Generators"[1], they also added a warning message
> in rpm source code to inform that the external dependency generator is deprecated[2].
> 
> Since it is only kept for backwards compatibility and may get removed in a future
> release of rpm, so here is a proposal to use internal dependency generator by default.
> 
> [1] https://rpm-software-management.github.io/rpm/manual/dependency_generators.html
> [2] https://github.com/rpm-software-management/rpm/commit/cfcdd942
> 
> Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
> ---
>  meta/classes-global/package_rpm.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass
> index 2fc18fe98c..05cecee7d7 100644
> --- a/meta/classes-global/package_rpm.bbclass
> +++ b/meta/classes-global/package_rpm.bbclass
> @@ -681,7 +681,7 @@ python do_package_rpm () {
>      cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'"
>      cmd = cmd + " --define '_builddir " + d.getVar('B') + "'"
>      cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'"
> -    cmd = cmd + " --define '_use_internal_dependency_generator 0'"
> +    cmd = cmd + " --define '_use_internal_dependency_generator 1'"
>      cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
>      cmd = cmd + " --define '_build_id_links none'"
>      cmd = cmd + " --define '_source_payload %s'" % rpmbuild_compmode

This will not work since we have some significant use of the external
dependency generation elsewhere in the codebase. I'd also not that
message was from 2016, so probably not urgent at this point.

Cheers,

Richard
diff mbox series

Patch

diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass
index 2fc18fe98c..05cecee7d7 100644
--- a/meta/classes-global/package_rpm.bbclass
+++ b/meta/classes-global/package_rpm.bbclass
@@ -681,7 +681,7 @@  python do_package_rpm () {
     cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'"
     cmd = cmd + " --define '_builddir " + d.getVar('B') + "'"
     cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'"
-    cmd = cmd + " --define '_use_internal_dependency_generator 0'"
+    cmd = cmd + " --define '_use_internal_dependency_generator 1'"
     cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
     cmd = cmd + " --define '_build_id_links none'"
     cmd = cmd + " --define '_source_payload %s'" % rpmbuild_compmode