[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFC] DEP-6: Meta-Package debian/control field



Eugene V. Lyubimkin wrote:

> Hello,

Hello Eugene,
thanks for your feedback.

> David Paleino wrote:
>> Implementation
> [...]
>> ### Package managers ###
> [...]
>> If any dependant package is a meta-package, as defined by this
>> document, it should **NOT** be removed, opposed to what the current
>> implementations do. The package manager should then add the removed
>> package to a "blacklist" for the dependant meta-package. This allows
>> for upgrades of the meta-package without re-installing everything again,
>> i.e. the package manager should check the dependencies of the
>> meta-package against its blacklist, if present.
>
> No, it doesn't. Dpkg and any sane high-level package manager won't
> consider installing/upgrading/keeping some package (meta or not) without
> all Depends installed.

We can always change our tools to comply with that, no? :)

> What you described above seems more like 'Recommends'-handling to me, and
> some high-level package managers (I can say for cupt) have some logic to
> not install the same recommended packages again if they were not installed
> or removed when upgrading "parent" packages.

Yes, it's a concept similar to Recommends, the only difference is that you 
cannot override their installation (while, at the current state, you CAN say 
not to install Recommends).

>> #### Blacklist management ####
>> Package managers should allow for deletion of the blacklist upon
>> removal of the meta-package.
>> 
>> Moreover, they should allow the deletion of the blacklist, and the
>> installation of the missing meta-package dependencies at the same time.
>
> The "blacklist" support also is already present somewhere (speaking of
> cupt, you can set pin like "-2000" to some package, and it won't be pulled
> for Recommends/Suggests).

Ok, I was thinking at something more automated, to be honest. See this 
example:

# apt-get install metapackage
# apt-get --purge remove dependency1

At this point, "dependency1" gets blacklisted or -- if you prefer -- the 
package manager sets is pin to -infinity.

# apt-get clean-blaclist metapackage

The "blacklist" for metapackage gets cleaned, and, at the same time, a "apt-
get --reinstall install metapackage" is issued.

(sorry for using apt-get and not cupt for my examples ;))

> To summarize: if I am not mistaken, this DEP cannot be implemented due to
> technical reasons in its current form.

Could you please expand this a bit?
Adding a new field to debian/control always needs a change in our tools, and 
this one touches package managers. What's wrong with this? :)

Thanks for commenting,
David

-- 
 . ''`.   Debian developer | http://wiki.debian.org/DavidPaleino
 : :'  : Linuxer #334216 --|-- http://www.hanskalabs.net/
 `. `'`  GPG: 1392B174 ----|---- http://snipr.com/qa_page
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174


Reply to: