Re: [Rpm-maint] Enforce install/erase order without adding a Requires:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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