Re: package names in dependencies

2021-03-23 Thread Neal Gompa
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

2021-03-23 Thread Jakub Bogusz
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

2021-03-23 Thread Neal Gompa
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

2021-03-23 Thread Elan Ruusamäe


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

2021-03-23 Thread Neal Gompa
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

2021-03-23 Thread Elan Ruusamäe

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