https://bugzilla.novell.com/show_bug.cgi?id=466146
User jsmeix@novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=466146#c1
Johannes Meixner changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|jsmeix@novell.com |bnc-team-screening@forge.pr
| |ovo.novell.com
--- Comment #1 from Johannes Meixner 2009-01-15 06:10:26 MST ---
I know this.
It is not caused by the YaST printer module but
by the underlying package installation stuff.
I call only
Package::Install( "hplip" )
Therefore I reassgn it back to YaST.
I would need a YaST package installation function
which installs automatically only what is required
by the package which was specified and nothing else.
See my comments for the TestAndInstallPackage function
in /usr/share/YaST2/modules/Printerlib.ycp
(you use openSUSE 11.1 RC2, I run the final version so that
there might be minor differences to what you have on your system):
-----------------------------------------------------------------------------
Intentionally Package::Installed(package_name) is not used here
because it does 'rpm -q' and if this fails it does 'rpm -q --whatprovides'
but I am only interested in the result for the real package name here
because alternatives would be handled in the upper-level functions
(e.g. in the user dialogs) which call TestAndInstallPackage:
..
Package::Install(package_name) has unexpected side-effects
because it does additionally remove whatever other packages
for example to "automatically solve" existing package conflicts
without any dialog where the user could accept or reject
additional removals (the user may have intentionally accepted
whatever package conflict).
I am only interested to install exactly the one package
which was specified and all what this one package requires
but I am not interested to get whatever other packages removed
but I do not know a function which does this.
Therefore I use Package::Install(package_name) because it is
most important to get all installed what is required by the
package which was specified.
..
Intentionally Package::Remove(package_name) is not used here
because it does additionally remove whatever other packages
for example to "automatically solve" existing package conflicts
without any dialog where the user could accept or reject
additional removals (the user may have intentionally accepted
whatever package conflict).
Furthermore Package::Remove(package_name) does additionally install
whatever other packages for example to "automatically solve" whatever
kind of soft requirements (Recommends) for other packages.
I am only interested to remove exactly the one package which was
specified and I am not interested to get whatever replacement
package installed automatically because alternatives and/or
substitutes would be handled in the upper-level functions
(e.g. in the user dialogs) which call TestAndInstallPackage.
Usually (i.e. in a openSUSE standard system) the packages which are
removed here do not have dependencies or the calling function removes
dependant packages in the right order (e.g. first hplip and then
hplip-hpijs, see driveradd.ycp) but the user might have installed
whatever third-party packages which could have dependencies to the
package which should be removed here.
Therefore there is a test if the removal would break RPM dependencies
but intentionally it is not tested whether the removal
would "break" whatever kind of soft requirements (Recommends).
-----------------------------------------------------------------------------
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.