On 15/01/16 09:33, Harald Dunkel wrote: > On 01/14/2016 10:11 AM, Andrey Rahmatullin wrote: >> On Thu, Jan 14, 2016 at 09:35:31AM +0100, Harald Dunkel wrote: >>> For running a local set of meta packages I would like to >>> express package dependencies depending upon other packages >>> installed, e.g. >>> >>> Package: xyz >>> Version: all >>> Depends: ${misc:Depends} >>> , dbus (systemd >= 215) >>> >>> Hopefully you get the meaning. >> I'm not sure I do. >> >>> Package xyz could make sure >>> that dbus is installed, if systemd is installed. (systemd >>> version 215 itself just recommends dbus.) >> What if systemd isn't installed? Nothing happens? >> > Thats what I was trying to express. > >>> >>> Another example: >>> >>> Package: mykde >>> Version: all >>> Depends: ${misc:Depends} >>> . kde-full >>> , mykde1 (kde-full >= 5:66) >>> , mykde2 (kde-full >= 5:77) >>> , mykde3 (kde-full >= 5:84) >>> >>> Package mykde1 >>> : >>> : >> This is even less clear. >> > In this example mykde depends upon kde-full and a set of other > packages, depending upon the version of kde-full. > > I am not proud of the syntax, either. Surely you have a better > suggestion about how to express this kind of package dependencies. > The '|' character to express a condition is already taken, and so are the parentheses.
How about some Perl-like post-annotation as in Package: mykde Version: all Depends: ${misc:Depends} . kde-full , mykde1 if kde-full >= 5:66 , mykde2 if kde-full >= 5:77 , mykde3 if kde-full >= 5:84 This way you can mix the two semantics Package: mykde Version: all Depends: ${misc:Depends} . kde-full , mykde1 (>= 4.99)if kde-full >= 5:66 , mykde1 (>= 5.0) if kde-full >= 5:77 How long will it take until someone implements tic-tac-toe with Debian package dependencies? Just kidding. If the package maintainers get this right, then I think these logics would indeed help to get Debian systems leaner and possibly also more stable. But I primarily see some beauty that intrigues me. Steffen