On Aug 25, 2009, at 3:15 PM, Shawn Walker wrote:

Jonathan Edwards wrote:
(1) a package contains a binary or driver you might want, but you don't care about the GUI component that's also in the package .. the GUI dependencies are "require"d but you don't really want them since you don't want to pull in the entire windowing environment.

The creator of the package has stated that the software delivery is not complete without the GUI component. File a bug with the package maintainer to fix the package if that is not the case.

okay if we need to talk specifics .. but let's not just talk about the specifics of each particular case - i don't think it's worth anyone's time to write long diatribes to attempt to document every specific use case for much larger problems that can be imagined

- let's say that you have an administrator who'd like to run a headless opensolaris server .. in other words no windowing system. However - he does have a local X display that will work fine for throwing applications back to like say .. firefox .. he doesn't care about ogg, nor the gnome dependencies - yet these are required for the components within the package for the included components that need them .. so what's the "correct" way of packaging here? create multiple smaller packages and then chain them together into a larger dependent cluster and then leave it to the administrator to piecemeal what they do and don't need? or simply allow someone to install a bundle unconditionally and rip out what they don't want? .. which one is closer to KISS?

(2) there's no mechanism for an OR .. in other words - let's say that package A has a requirement for a certain library, but that requirement could be met by either package B (which pulls in packages C, D, E, F) .. or package X (which only pulls in packages Y and Z)

Do you have an actual, specific usage case? At best, every time we've discussed this in the past, only hypotheticals have been able to justify it.

pkg(5) does have the concept of 'optional' dependencies which could satisfy this scenario leaving the user to choose which one to install.

sure .. Darren's database example is one .. eg: a database is required, say, but you can pick one from a list - (not quite the same as an optional dependency) ..

KDE vs Gnome is another .. or dropped down a level - window manager choices (ice, flux, compiz, etc) .. or even lower Xorg or Xvnc (ie: headless example above)

scanning some of the dependencies in the manifest tree - SUNWbash dependencies looks like another potential hot-button

(3) the customer has their own custom packages which provides proper dependencies for package A and knows this.

Then they should name their package 'package A' and use the preferred publisher mechanism we currently have to override that other package.

so building off the example of SUNWbash - this is starting to sound an awful lot like the old "ln -s /bin/bash /bin/sh" (or the "export PATH="/usr/gnu/bin:/usr/bin:..") trick .. in other words if the proper way to solve this is for someone to effectively trojan their package to satisfy the package A dependency - i believe that something is broken in the methodology

(4) there is a known security issue with package E .. hence no easy way to extract that package from the mix and replace it

There is actually. Name your replacement package 'package E', then publish it, and set the publisher for its repository as 'preferred'.

in more extreme cases if you needed to remove package E - i guess you could simply publish an empty package here, but that seems like a broken dependency methodology to work around the inability for someone to intentionally break a dependency

cheerios
Jonathan
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to