Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-26 Thread Panu Matilainen

On Thu, 25 Nov 2010, R P Herrold wrote:


On Thu, 25 Nov 2010, FlorianFesti wrote:

There have been various issues with packages that demand a special order of 
installation but do not want to Require the package to be installed first. 
So a tag that is like Requires: during ordering but ignored otherwise is 
needed.



OrderWithRequires: It is not really beautiful ...


The phrase 'do not want to Require the package' says to me:
Suggests:
-or-
Enhances:
which are basically saying a non-mandatory: Requires:


See Florian's reply - Suggests/Enhances and friends have attached fluffy 
semantics any depsolver is free to interpret as they wish. The ordering 
hints have clear semantics: If (and only if) the associated dependencies 
are present in a transaction, use this additional information for 
ordering. Depsolvers should not do anything at all with them, ever.


It is my strong recollection that RPM previously had soft Requires.  The 
rpm-list shows this in the thread from Peters around 10 Jan 2006


Rpm.org releases never had soft requires. The tags exist but they 
haven't been used (so far).



cAos and Mezzanine used it

I think it was in part a response to:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=114338

What Trac or Bug number is driving this 'do not want to Require the package' 
'functional requirement' so that I may review it, and try to understand why 
well known [from prior RPM experience and from Debian practice] (and not so 
ugly formulations) such as Suggests or Enhances are not preferred?


The request for this is scattered over mailing lists, private 
communication and RH bugzilla over time, I don't have a direct reference 
at hand. But a short summary of the case:


Kernel initrd creation (mkinitrd, dracut) mechanisms have special needs: 
they can have support for arbitrary number of rare, special hardware 
packeges that shouldn't be dragged in on every installation. Yet if those 
optional packages are installed, they should be installed before the 
initrd generation to ensure latest versions (be it bug/security fix or 
just an enhancement) get bundled up in the initrd on updates. Requires are 
currently needed to ensure the ordering, which is bad. Suggests/Recommends 
etc are not at all optimal here either as their behavior depends on 
depsolver policy. Also while anybody can take advantage of extra features 
supported through optional packages on regular software (so it makes sense 
to at least show the soft dependencies to all users), hardware support is 
different: if you dont have a piece of hardware then you dont and there's 
no point suggesting them to everybody.


- Panu -
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-26 Thread Michael Schroeder
On Fri, Nov 26, 2010 at 10:22:56AM +0200, Panu Matilainen wrote:
 Kernel initrd creation (mkinitrd, dracut) mechanisms have special needs: 
 they can have support for arbitrary number of rare, special hardware 
 packeges that shouldn't be dragged in on every installation. Yet if those 
 optional packages are installed, they should be installed before the 
 initrd generation to ensure latest versions (be it bug/security fix or 
 just an enhancement) get bundled up in the initrd on updates. Requires are 
 currently needed to ensure the ordering, which is bad. Suggests/Recommends 
 etc are not at all optimal here either as their behavior depends on 
 depsolver policy.

Oh, but in that case you ned the reverse version of Requires, 
because the kernel package cannot know all special hardware packages.
Thus something like Enhances: kernel, but with a different
keyword.

Cheers,
  Michael.

-- 
Michael Schroeder   m...@suse.de
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-26 Thread Panu Matilainen

On Fri, 26 Nov 2010, Michael Schroeder wrote:


On Fri, Nov 26, 2010 at 10:22:56AM +0200, Panu Matilainen wrote:

Kernel initrd creation (mkinitrd, dracut) mechanisms have special needs:
they can have support for arbitrary number of rare, special hardware
packeges that shouldn't be dragged in on every installation. Yet if those
optional packages are installed, they should be installed before the
initrd generation to ensure latest versions (be it bug/security fix or
just an enhancement) get bundled up in the initrd on updates. Requires are
currently needed to ensure the ordering, which is bad. Suggests/Recommends
etc are not at all optimal here either as their behavior depends on
depsolver policy.


Oh, but in that case you ned the reverse version of Requires,
because the kernel package cannot know all special hardware packages.
Thus something like Enhances: kernel, but with a different
keyword.


At least in Fedora, the dependencies for initrd needs are in dracut, which 
in turn knows which extra packages it currently supports. But yes, there 
should be a reverse variant of the ordering syntax too.


- Panu -
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-26 Thread Phil Knirsch

On 11/26/2010 10:53 AM, Panu Matilainen wrote:

On Fri, 26 Nov 2010, Michael Schroeder wrote:


On Fri, Nov 26, 2010 at 10:22:56AM +0200, Panu Matilainen wrote:

Kernel initrd creation (mkinitrd, dracut) mechanisms have special needs:
they can have support for arbitrary number of rare, special hardware
packeges that shouldn't be dragged in on every installation. Yet if
those
optional packages are installed, they should be installed before the
initrd generation to ensure latest versions (be it bug/security fix or
just an enhancement) get bundled up in the initrd on updates.
Requires are
currently needed to ensure the ordering, which is bad.
Suggests/Recommends
etc are not at all optimal here either as their behavior depends on
depsolver policy.


Oh, but in that case you ned the reverse version of Requires,
because the kernel package cannot know all special hardware packages.
Thus something like Enhances: kernel, but with a different
keyword.


At least in Fedora, the dependencies for initrd needs are in dracut,
which in turn knows which extra packages it currently supports. But yes,
there should be a reverse variant of the ordering syntax too.



Well, partially.

During installation it's actually determined by anaconda, e.g. for many 
of the various options around storage (luks, fcoe, lvm, dmraid, 
multipath etc) anaconda simply installs those it needs to generate and 
configure those, which in turn then get picked up automatically by 
dracut to generate the initramfs.


Same goes for later in the system when you haven't set up e.g. a LVM 
during installation you'll first need the tools (aka, install them 
manually to configure and setup your lvm devices) and afterwards, in 
case you need those devices during the initramfs stage you'll need to 
recreate the initramfs, but here again the tools will obviously then be 
available as you needed those previously to do the setup anyway.


Thanks  regards, Phil

TL;DR: Dracut in itself tries to not require any of the tools it ships 
modules for but instead relies on either the installer or the system 
later to have the tools installed which are needed in the modules for 
bootup in the created initramfs.


--
Philipp Knirsch  | Tel.:  +49-711-96437-470
Supervisor Core Services | Fax.:  +49-711-96437-111
Red Hat GmbH | Email: Phil Knirsch pknir...@redhat.com
Hauptstaetterstr. 58 | Web:   http://www.redhat.com/
D-70178 Stuttgart, Germany
Motd:  You're only jealous cos the little penguins are talking to me.
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-25 Thread FlorianFesti

Hi!

There have been various issues with packages that demand a special order 
of installation but do not want to Require the package to be installed 
first. So a tag that is like Requires: during ordering but ignored 
otherwise is needed.


Panu had a look into the problem yesterday and it turned out this can be 
done by simply adding a new tag triple and very few additional lines of 
code. But it also turned out that's really hard to come up with a good 
name for it. After banging our heads against the wall for the morning we 
settled on OrderWithRequires: It is not really beautiful but here are 
the reasons why we preferred it over two dozen other options:


* It contains Requires which make clear that it is handled exactly 
like normal Requires during ordering.
* We considered using Sort instead of Order as its less ambiguous 
but order is already part of the rpm nomenclature (--noorder).
* It does not contain before or after which get wrong when it comes 
to ordering erases.

* OrderWithRequires(pre) is supported and looks familiar.
* It offers adding OrderWithRequiredBy later for adding a reverse relation.
* It's long and descriptive. As it is going to be rarely used typing 
effort is not an argument.


Nevertheless we still have the feeling there might be better names. 
Suggestions are welcome!


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-25 Thread Michael Schroeder
On Thu, Nov 25, 2010 at 02:13:36PM +0100, FlorianFesti wrote:
 There have been various issues with packages that demand a special order 
 of installation but do not want to Require the package to be installed 
 first. So a tag that is like Requires: during ordering but ignored 
 otherwise is needed.

OK, I'll bite. Can you list a few examples? I don't think I've
seen the need for this here at SUSE.

Cheers,
  Michael.

-- 
Michael Schroeder   m...@suse.de
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-25 Thread Peter Bowen
On Thu, 2010-11-25 at 14:13 +0100, FlorianFesti wrote:
 There have been various issues with packages that demand a special order 
 of installation but do not want to Require the package to be installed 
 first. So a tag that is like Requires: during ordering but ignored 
 otherwise is needed.
 
 Panu had a look into the problem yesterday and it turned out this can be 
 done by simply adding a new tag triple and very few additional lines of 
 code. But it also turned out that's really hard to come up with a good 
 name for it. After banging our heads against the wall for the morning we 
 settled on OrderWithRequires: It is not really beautiful but here are 
 the reasons why we preferred it over two dozen other options:
 
 * It contains Requires which make clear that it is handled exactly 
 like normal Requires during ordering.
 * We considered using Sort instead of Order as its less ambiguous 
 but order is already part of the rpm nomenclature (--noorder).
 * It does not contain before or after which get wrong when it comes 
 to ordering erases.
 * OrderWithRequires(pre) is supported and looks familiar.
 * It offers adding OrderWithRequiredBy later for adding a reverse relation.
 * It's long and descriptive. As it is going to be rarely used typing 
 effort is not an argument.
 
 Nevertheless we still have the feeling there might be better names. 
 Suggestions are welcome!

What about suggests or recommends  (and enhances for the reverse)?
I think almost any scenario where you want explicit order but not a hard
dependency between packages falls into these categories.

Thanks,
Peter

___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-25 Thread FlorianFesti

On 11/25/2010 02:20 PM, Peter Bowen wrote:

What about suggests or recommends  (and enhances for the reverse)?
I think almost any scenario where you want explicit order but not a hard
dependency between packages falls into these categories.
Not exactly as they (where they are implemented - RPM upstream ist 
*still* missing them) carry additional semantics that is unwanted for 
this case. This tag is about ordering only. It does not tell whoever to 
include the other package into the transaction or bug the user to 
decide. But I agree that suggests, recommends and enhances should 
probably considered for ordering, too.


Florian
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-25 Thread R P Herrold

On Thu, 25 Nov 2010, FlorianFesti wrote:

There have been various issues with packages that demand a special order of 
installation but do not want to Require the package to be installed first. So 
a tag that is like Requires: during ordering but ignored otherwise is needed.



OrderWithRequires: It is not really beautiful ...


The phrase 'do not want to Require the package' says to me:
Suggests:
-or-
Enhances:
which are basically saying a non-mandatory: Requires:

It is my strong recollection that RPM previously had soft 
Requires.  The rpm-list shows this in the thread from Peters 
around 10 Jan 2006


cAos and Mezzanine used it

I think it was in part a response to:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=114338

What Trac or Bug number is driving this 'do not want to 
Require the package' 'functional requirement' so that I may 
review it, and try to understand why well known [from prior 
RPM experience and from Debian practice] (and not so ugly 
formulations) such as Suggests or Enhances are not preferred?


-- Russ herrold
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] Enforce install/erase order without adding a Requires:

2010-11-25 Thread Ville Skyttä
On Thursday 25 November 2010, FlorianFesti wrote:
 Hi!
 
 There have been various issues with packages that demand a special order
 of installation but do not want to Require the package to be installed
 first. So a tag that is like Requires: during ordering but ignored
 otherwise is needed.
 
 Panu had a look into the problem yesterday and it turned out this can be
 done by simply adding a new tag triple and very few additional lines of
 code. But it also turned out that's really hard to come up with a good
 name for it. After banging our heads against the wall for the morning we
 settled on OrderWithRequires: It is not really beautiful but here are
 the reasons why we preferred it over two dozen other options:
 
 * It contains Requires which make clear that it is handled exactly
 like normal Requires during ordering.

If it's actually not a Requires, it shouldn't IMO contain that word.

If Suggests/Enhances are not desirable for this, how about DependencyOrder?

Some actual, concrete example cases exactly what for and how this would be 
used might result in better suggestions.
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint