Re: package names in dependencies
On Tue, Mar 23, 2021 at 12:27 PM Jakub Bogusz wrote: > > On Tue, Mar 23, 2021 at 12:18:36PM -0400, Neal Gompa wrote: > > On Tue, Mar 23, 2021 at 11:39 AM Elan Ruusamäe wrote: > > > > > > > > > On 23.03.2021 12:59, Neal Gompa wrote: > > > > On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe > > > > wrote: > > > >> i found some odd inconsistency: > > > >> > > > >> > > > >> error: line 319: Illegal char ')' (0x29) in: Obsoletes: > > > >> virtual(init-daemon) > > > >> error: line 319: Only package names are allowed in Obsoletes: > > > >> Obsoletes:virtual(init-daemon) > > > >> > > > >> > > > >> So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on > > > >> some > > > >> other tags; > > > >> > > > >> > > > >> Requires: webserver(indexfile) > > > >> Requires: webserver(php) >= 4.2.0 > > > >> Suggests: php(openssl) > > > >> Suggests: webserver(setenv) > > > >> Provides: group(eventum) > > > >> Provides: user(eventum) > > > >> > > > > Obsoletes has to be a real package name, but virtual names are allowed > > > > for other tags. > > > Why? > > > > This was always the case in RPM, but it started enforcing it in RPM > > > > 4.13. > > > > > > PLD has used virtual obsoletes for the time i've used it (since 2004). > > > > > > and we are using it when multiple packages provide something common, say: > > > > > > 'init-daemon" > > > > > > they are mutually exclusive, so installing one, must uninstall the other. > > > > > > and if adding new "virtual(init-daemon)" virtual, without need to update > > > other packages, they all can have O/P: virtual(init-daemon) > > > > > > > > > now rpm enforces that each of those packages must cross reference all > > > 'the other' virtuals... duh! > > > > > > > RPM since RPM 4.10 supports mutual exclusion by using Provides + Conflicts. > > > > For example, the following is enough to get the behavior you want: > > > > Provides: init-daemon > > Conflicts: init-daemon > > Uhm, AFAIR such combo was treated as self-conflict by some RPM-based package > management software, thus making package non-installable... > > Does it have well defined semantics now? > Hmm, actually I was wrong, it was done in RPM 4.9.0: https://rpm.org/wiki/Releases/4.9.0 As for "well-defined semantics", it's basically this mailing list post: http://lists.rpm.org/pipermail/rpm-maint/2010-April/002719.html It generally works for me, though admittedly, I've only tested YUM, DNF, and Zypper. -- 真実はいつも一つ!/ Always, there's only one truth! ___ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en
Re: package names in dependencies
On Tue, Mar 23, 2021 at 12:18:36PM -0400, Neal Gompa wrote: > On Tue, Mar 23, 2021 at 11:39 AM Elan Ruusamäe wrote: > > > > > > On 23.03.2021 12:59, Neal Gompa wrote: > > > On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe wrote: > > >> i found some odd inconsistency: > > >> > > >> > > >> error: line 319: Illegal char ')' (0x29) in: Obsoletes: > > >> virtual(init-daemon) > > >> error: line 319: Only package names are allowed in Obsoletes: > > >> Obsoletes:virtual(init-daemon) > > >> > > >> > > >> So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on some > > >> other tags; > > >> > > >> > > >> Requires: webserver(indexfile) > > >> Requires: webserver(php) >= 4.2.0 > > >> Suggests: php(openssl) > > >> Suggests: webserver(setenv) > > >> Provides: group(eventum) > > >> Provides: user(eventum) > > >> > > > Obsoletes has to be a real package name, but virtual names are allowed > > > for other tags. > > Why? > > > This was always the case in RPM, but it started enforcing it in RPM 4.13. > > > > PLD has used virtual obsoletes for the time i've used it (since 2004). > > > > and we are using it when multiple packages provide something common, say: > > > > 'init-daemon" > > > > they are mutually exclusive, so installing one, must uninstall the other. > > > > and if adding new "virtual(init-daemon)" virtual, without need to update > > other packages, they all can have O/P: virtual(init-daemon) > > > > > > now rpm enforces that each of those packages must cross reference all > > 'the other' virtuals... duh! > > > > RPM since RPM 4.10 supports mutual exclusion by using Provides + Conflicts. > > For example, the following is enough to get the behavior you want: > > Provides: init-daemon > Conflicts: init-daemon Uhm, AFAIR such combo was treated as self-conflict by some RPM-based package management software, thus making package non-installable... Does it have well defined semantics now? -- Jakub Boguszhttp://qboosh.pl/ ___ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en
Re: package names in dependencies
On Tue, Mar 23, 2021 at 11:39 AM Elan Ruusamäe wrote: > > > On 23.03.2021 12:59, Neal Gompa wrote: > > On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe wrote: > >> i found some odd inconsistency: > >> > >> > >> error: line 319: Illegal char ')' (0x29) in: Obsoletes: > >> virtual(init-daemon) > >> error: line 319: Only package names are allowed in Obsoletes: > >> Obsoletes:virtual(init-daemon) > >> > >> > >> So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on some > >> other tags; > >> > >> > >> Requires: webserver(indexfile) > >> Requires: webserver(php) >= 4.2.0 > >> Suggests: php(openssl) > >> Suggests: webserver(setenv) > >> Provides: group(eventum) > >> Provides: user(eventum) > >> > > Obsoletes has to be a real package name, but virtual names are allowed > > for other tags. > Why? > > This was always the case in RPM, but it started enforcing it in RPM 4.13. > > PLD has used virtual obsoletes for the time i've used it (since 2004). > > and we are using it when multiple packages provide something common, say: > > 'init-daemon" > > they are mutually exclusive, so installing one, must uninstall the other. > > and if adding new "virtual(init-daemon)" virtual, without need to update > other packages, they all can have O/P: virtual(init-daemon) > > > now rpm enforces that each of those packages must cross reference all > 'the other' virtuals... duh! > RPM since RPM 4.10 supports mutual exclusion by using Provides + Conflicts. For example, the following is enough to get the behavior you want: Provides: init-daemon Conflicts: init-daemon -- 真実はいつも一つ!/ Always, there's only one truth! ___ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en
Re: package names in dependencies
On 23.03.2021 12:59, Neal Gompa wrote: On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe wrote: i found some odd inconsistency: error: line 319: Illegal char ')' (0x29) in: Obsoletes: virtual(init-daemon) error: line 319: Only package names are allowed in Obsoletes: Obsoletes:virtual(init-daemon) So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on some other tags; Requires: webserver(indexfile) Requires: webserver(php) >= 4.2.0 Suggests: php(openssl) Suggests: webserver(setenv) Provides: group(eventum) Provides: user(eventum) Obsoletes has to be a real package name, but virtual names are allowed for other tags. Why? This was always the case in RPM, but it started enforcing it in RPM 4.13. PLD has used virtual obsoletes for the time i've used it (since 2004). and we are using it when multiple packages provide something common, say: 'init-daemon" they are mutually exclusive, so installing one, must uninstall the other. and if adding new "virtual(init-daemon)" virtual, without need to update other packages, they all can have O/P: virtual(init-daemon) now rpm enforces that each of those packages must cross reference all 'the other' virtuals... duh! ___ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en
Re: package names in dependencies
On Tue, Mar 23, 2021 at 5:04 AM Elan Ruusamäe wrote: > > i found some odd inconsistency: > > > error: line 319: Illegal char ')' (0x29) in: Obsoletes: virtual(init-daemon) > error: line 319: Only package names are allowed in Obsoletes: > Obsoletes:virtual(init-daemon) > > > So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on some > other tags; > > > Requires: webserver(indexfile) > Requires: webserver(php) >= 4.2.0 > Suggests: php(openssl) > Suggests: webserver(setenv) > Provides: group(eventum) > Provides: user(eventum) > Obsoletes has to be a real package name, but virtual names are allowed for other tags. This was always the case in RPM, but it started enforcing it in RPM 4.13. -- 真実はいつも一つ!/ Always, there's only one truth! ___ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en
package names in dependencies
i found some odd inconsistency: error: line 319: Illegal char ')' (0x29) in: Obsoletes: virtual(init-daemon) error: line 319: Only package names are allowed in Obsoletes: Obsoletes: virtual(init-daemon) So: "Obsoletes: virtual(init-daemon)" is not okay, but it's fine on some other tags; Requires: webserver(indexfile) Requires: webserver(php) >= 4.2.0 Suggests: php(openssl) Suggests: webserver(setenv) Provides: group(eventum) Provides: user(eventum) ___ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en