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

Re: Conditional Recommends



* Eugene V. Lyubimkin [2011-05-22 18:08 +0300]:
> On 2011-05-22 16:07, Carsten Hey wrote:
> > 'Enhances:', 'Provides', 'Conflicts' and 'Breaks' also require extensive
> > scanning in the package database.
>
> Conflicts and Breaks do not. So, yes, partly true. I personally don't
> want one more reverse-field to handle;

Two remain, good enough ;)


> > Anyway, this subthread is all about reverse recommendations, even with
> > negations you would need to scan the whole repository for implications
> > in 'Recommends:' fields, or they would neither solve the tdep problem
> > nor the original problem (see the end of this mail).
>
> I did not spot further statements about this in the end of your mail.

The point I had in mind is that forward recommendations, i.e.,
'Recommends:' require more effort to maintain than backward
recommendations for tdeps and similar packages.  Below mentioned is just
one way to implement the package relationships for tdeps, IIRC somewhere
in this thread the real plans to do so are mentioned.


tdeps with backward recommendations:

        Package: hexahop

        Package: hexahop-l10n-$LANGUAGE
        Recommended-By: hexahop & translations-$LANGUAGE

The above is all the would be needed, additional to either a real
package translations-$LANGUAGE or a virtual package with this name
provided by hexahop-l10n-$LANGUAGE.


tdeps with forward recommendations:

        Package: hexahop
        Recommends: !translations-da | hexahop-l10n-da,
                    !translations-de | hexahop-l10n-de,
                    !translations-es | hexahop-l10n-es,
                    ...


tdeps with forward recommendations and indirection:

        Package: hexahop
        Recommends: hexahop-translations

        Package: hexahop-translations
        Recommends: !translations-da | hexahop-l10n-da,
                    !translations-de | hexahop-l10n-de,
                    !translations-es | hexahop-l10n-es,
                    ...

The third example with indirections would have advantages if one l10n
package contains the translations for multiple packages (which seems to
be planned).


Additionally, tdeps could be some kind of leaf packages, as mentioned in
http://lists.debian.org/debian-project/2011/03/msg00039.html or just
depend on the according package they provide translations for.


> So, no, this subthread is not about reverse recommendations, it's about
> conditional recommendations. I don't need to rescan the whole repository
> to satisfy '!A | B-plugin-A' given I scanned it once for Provides.

If apt and cupt don't (which would be correct, on a second thought),
installing translations for new languages would be all but easy for
users, unless package managers provides a clever way to do this.


Regards
Carsten


Reply to: