Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread Panu Matilainen
Yup, the soname abstraction and the libtool style major.minor.micro version in the filename don't exactly meet in practise. So reading through the comments more throroughly, turning the version *in the filename* (or symlink) into a version as suggested by @keszybz. That'd be enforcing the libto

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread Panu Matilainen
Oh and BTW, even for a proof-of-concept, you really need to start with the internal dependency generator. In the external one, the whole world-iview is upside down, and starting there is likely to run into conceptual problems elsewhere. -- Reply to this email directly or view it on GitHub: htt

Re: [Rpm-maint] [rpm-software-management/rpm] Split ___build_pre macro to make mocking rpm build environment easier (PR #2369)

2023-01-30 Thread Panu Matilainen
@pmatilai requested changes on this pull request. Splitting it up at some random point in the middle makes no sense for rpm. Call it `%___build_pre_env` and move *all* the environment stuff there and I'm willing to consider. -- Reply to this email directly or view it on GitHub: https://githu

[Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread Panu Matilainen
The external dependency generator has been on life support for about 20 years now and we've been warning about it being deprecated for almost seven years now. Yet it's still being used by some, and continues to attract unwanted attention by simply being there. I think it's time to finally pull

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread ニール・ゴンパ
Last I checked, the only thing I know of still using this mechanism is the MinGW/Windows binary dependency generator. @rwmjones, did this get fixed sometime in the last few years? -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/2373#is

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread ニール・ゴンパ
> > add a versioned requires. (libcurl.so.4()(64bit) → libcurl.so.4()(64bit) >= > > 4.8.0). > > The whole point of sonames is that it's NOT tied to versions but the soname > abstraction, and this kind of dependency breaks that point. I can think of one real-world case this would have broke: the

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread Panu Matilainen
AIUI mingw was one of the first ever to adopt the new-style internal generator, but there are bunch of others, including but not limited to using the filter-macros in Fedora. And then there's kernel ksyms stuff, only relevant for RHEL. And whatever other distros are doing in this space. -- Rep

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread rwmjones
Can someone describe (for example) a simple regular expression to use on spec files to determine if they use this "external dependency generator"? -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/2373#issuecomment-1408270777 You are rece

[Rpm-maint] [rpm-software-management/rpm] RPM v6 package format, first public draft for commenting (Discussion #2374)

2023-01-30 Thread Panu Matilainen
In the spirit of release early and often, here goes the (admittedly rough) first public draft of the rpm v6 package format that people have seen mentions of here and there. As you'll notice, this will be a relatively conservative update to the format, a facelift if you like, rather than a radica

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread Panu Matilainen
Look for `_use_internal_dependency_generator` (getting set to 0, that's the only thing it's ever used for) references in specs and macros. In Fedora, another telltale is `%filter_setup` which uses that internally. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-soft

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread ニール・ゴンパ
Also another hint is if you override `%_find_requires`, I think? -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/2373#issuecomment-1408550189 You are receiving this because you are subscribed to this thread. Message ID:

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread rwmjones
It seems like we removed it from OCaml packages around Fedora 20, and from libguestfs in Fedora 22. It is not used in any current package that I maintain. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/2373#issuecomment-1408559567 You

Re: [Rpm-maint] [rpm-software-management/rpm] Drop support for external dependency generator (Issue #2373)

2023-01-30 Thread Panu Matilainen
Yeah, `%__find_requires` and `%__find_provides` overrides are telltale signs worth checking, but neither of those do nothing at all by themselves unless accompanied with `_use_internal_dependency_generator`. I've seen more than one case where these were simply forgotten behind. -- Reply to thi

[Rpm-maint] [rpm-software-management/rpm] RFE: Additional cli verify options, specifically for config files (Issue #2375)

2023-01-30 Thread Jarrod Makin
To complement the following verify options: [--nolinkto] [--nofiledigest] [--nosize] [--nouser] [--nogroup] [--nomtime] [--nomode] [--nordev] [--nocaps] I would like to suggest the following new options: [--noconfiglinkto] [--noconfigfiledigest] [--noconfigsize] [--noconfiguser] [--noconfiggroup]

Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Additional cli verify options, specifically for config files (Issue #2375)

2023-01-30 Thread Panu Matilainen
Sorry but no, rpm has way too many cli switches as it is. You can use 'rpm -Va --noconfig' to ignore config files entirely. For finer control over which files to verify, the rpm verify functionality is available in the Python bindings. -- Reply to this email directly or view it on GitHub: http

Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Additional cli verify options, specifically for config files (Issue #2375)

2023-01-30 Thread Panu Matilainen
Closed #2375 as completed. -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/2375#event-8388429235 You are receiving this because you are subscribed to this thread. Message ID: ___ Rpm-maint ma

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread Gordon Messmer
> I can think of one real-world case this would have broke: the SDL -> > sdl12-compat transition Would that have required Fedora to do more than either [bump the so version](https://github.com/libsdl-org/sdl12-compat/commit/883b629995e998e04b2ccd80a2c3ada46b0ce093) or, worst case, manually add

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread Gordon Messmer
> (libcurl.so.4()(64bit) → libcurl.so.4()(64bit) >= 4.8.0) I'm going to start work on an implementation of this soon. I've been looking over elfdeps.c and thinking through implementation details, yesterday. One thing that comes to mind is that while the Provides: change would be backward compa

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread ニール・ゴンパ
> > I can think of one real-world case this would have broke: the SDL -> > > sdl12-compat transition > > Would that have required Fedora to do more than either [bump the so > version](https://github.com/libsdl-org/sdl12-compat/commit/883b629995e998e04b2ccd80a2c3ada46b0ce093) > or, worst case, m

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread Gordon Messmer
> to deal with weaknesses in the Debian's packaging system I'm curious... do you have a reference that describes those weaknesses? (I have very little experience with dpkg) > Bumping the soversion would have been a big deal, since it's an ABI break I'm not suggesting bumping the major version.

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread ニール・ゴンパ
Ah, I misremembered when it came to where the weakness was. It had to do with how the Steam Runtime "judges" library versions: https://github.com/libsdl-org/sdl12-compat/issues/53#issuecomment-979976631 -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-manage

Re: [Rpm-maint] [rpm-software-management/rpm] Query format | Values intended to be queried by tag 'epoch' not queried when invoked by tag 'evr' (Issue #2364)

2023-01-30 Thread Daniel Alley
"evr" is a defined strategy for creating a string summarizing a package's critical details as a string, which the user can query. `(none)` is just a special value the `rpm` cli uses to represent the nonexistence of a tag. I would not expect an EVR to ever look like `(none):4.18.0-1.fc37`, that

Re: [Rpm-maint] [rpm-software-management/rpm] RPM v6 package format, first public draft for commenting (Discussion #2374)

2023-01-30 Thread Demi Marie Obenour
Could the signature also cover something indicating the package version? -- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/discussions/2374#discussioncomment-4824257 You are receiving this because you are subscribed to this thread. Message ID:

[Rpm-maint] [rpm-software-management/rpm] 363: rpm -e and verify conflicting files removed 1 FAILED (rpme.at:305) (Issue #2376)

2023-01-30 Thread xujing
I ran test cases using rpm-4.18.0 and found one test case failed: ``` ... 357: rpm -e and shared files removed 1.1 ok 358: rpm -e and shared files removed 1.2 ok 359: rpm -e and verify colored files removed 1.1 ok 360: rpm -e and verify colored files removed 1.2 ok 3

Re: [Rpm-maint] [rpm-software-management/rpm] 363: rpm -e and verify conflicting files removed 1 FAILED (rpme.at:305) (Issue #2376)

2023-01-30 Thread xujing
I tried to manually execute the test case and found that verifying conflicta and conflictb alone was as expected. ``` [root@localhost testing]# FAKECHROOT_BASE=/root/rpmbuild/BUILD/rpm-4.18.0/tests/rpmtests.dir/363/testing fakechroot rpm --define "_buildhost testhost" --define "_topdir /build"

Re: [Rpm-maint] [rpm-software-management/rpm] rpm install failed:error: unpacking of archive failed on file /usr/sbin/aaa;636c6826: cpio: open failed - No such file or directory (Issue #2273)

2023-01-30 Thread xujing
I get the same results as you, without -- force. ``` [root@localhost ~]# rpm -ivh /tmp/test-1.0-1.noarch.rpm Verifying... # [100%] Preparing... # [100%] file /usr/sbin/aaa conflicts between attempted installs of test-1.0-1.noarch and

Re: [Rpm-maint] [rpm-software-management/rpm] RPM v6 package format, first public draft for commenting (Discussion #2374)

2023-01-30 Thread Panu Matilainen
That's a good question. Starting with, how exactly is the package version determined? If we assume stricter header layout for v6 then it can't really be in a header tag because we need to know the format before parsing it. A new header magic I guess, but then that feels heavy-handed when the hea

Re: [Rpm-maint] [rpm-software-management/rpm] Enhance requires with version information from the build root. (PR #2372)

2023-01-30 Thread Panu Matilainen
> One thing that comes to mind is that while the Provides: change would be > backward compatible, the Requires: change would not. New packages would be > generated with Requirements that existing packages wouldn't satisfy, which > would require a "rebuild the world" deployment that obsoletes mos

Re: [Rpm-maint] [rpm-software-management/rpm] rpm install failed:error: unpacking of archive failed on file /usr/sbin/aaa;636c6826: cpio: open failed - No such file or directory (Issue #2273)

2023-01-30 Thread Panu Matilainen
Ack, thanks for confirming that. The "use-case" for --force is to replace some file(s) from another package with different content, in which case it's reasonable to allow an operator override. But there's no circumstance in which it makes sense for a package to overwrite it's own contents as wo

[Rpm-maint] [rpm-software-management/rpm] support for POSIX getopt() behaviour (PR #2377)

2023-01-30 Thread (GalaxyMaster)
[POSIX defines optarg only for options with arguments](https://pubs.opengroup.org/onlinepubs/95399/functions/getopt.html) and callback() is expecting optarg to be NULL for options without arguments, however, at least on musl optarg will carry a pointer to the argument of the previous option