[zypp-devel] [Fwd: [yast-devel] introduce a package history to remove obsolete packages]
FYI, Forwarding from yast-devel: This rather sounds libzypp-related. Bye Lukas
Lukas Ocilka napsal(a):
FYI, Forwarding from yast-devel: This rather sounds libzypp-related.
Bye Lukas
<snip> REFINEMENTS to the idea above, which make it more complicated and powerful. Points 2, 4 and 5 remain as they are.
1. Make a history of installed packages, which hold following information: When Package X was installed, also packages Y + Z were installed which are in an dependency relation to X. If the dependency criterion is not used, unrelated software that was installed at the same time (e.g. two completely unrelated programs) would fall under the removal category, which is unwanted.
3. If the user decides not to remove them they should be tagged as potentially "obsolete without dependencies". If they have dependencies on W from a different installation time point, they should be marked as "obsolete with dependencies". The user could use an option in YAST to remove all obsolete packages in the installation which are tagged "obsolete without dependencies".
I think easier way is only remember package which user want explicit install (like you click on something in YaST and few others is also checked, so remember only first...same in zypper). Then make call like remove obsolete, which take this list of packages and create tree of its dependencies (also apply soft and hard locks). And uninstall everything which is not in this tree of dependencies. Pepa -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
I think easier way is only remember package which user want explicit install (like you click on something in YaST and few others is also checked, so remember only first...same in zypper). Then make call like remove obsolete, which take this list of packages and create tree of its dependencies (also apply soft and hard locks). And uninstall everything which is not in this tree of dependencies. Pepa
Be careful with packages that were installed using rpm directly. You will not have them in your list of being 'requested' by the user. Always removing them would certainly not be a good idea though. Dominique -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Dominique Leuenberger napsal(a):
I think easier way is only remember package which user want explicit install (like you click on something in YaST and few others is also checked, so remember only first...same in zypper). Then make call like remove obsolete, which take this list of packages and create tree of its dependencies (also apply soft and hard locks). And uninstall everything which is not in this tree of dependencies. Pepa
Be careful with packages that were installed using rpm directly. You will not have them in your list of being 'requested' by the user. Always removing them would certainly not be a good idea though.
Dominique
same problem have previous sollution, because we remember only dependencies of package installed by libzypp frontend (yast, zypper...). So when you install some dependency via rpm, then we don't know it. Pepa -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
same problem have previous sollution, because we remember only dependencies of package installed by libzypp frontend (yast, zypper...). So when you install some dependency via rpm, then we don't know it.
Pepa
Indeed, but I think it's less 'risky', as we will probably not rip out any dependency that we see is still in use. If we remember only leaf packages, and remove all leaf packages that are not in use, we get out all the addons a user might install. If we remember all the dependencies that were pulled it automatically and only care for those, all leaf packages and dependency packages a user installs (using rpm or on request using zypper) are not in the automatic dependency tree and are thus not affected. Dominique -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Dominique Leuenberger wrote:
same problem have previous sollution, because we remember only dependencies of package installed by libzypp frontend (yast, zypper...). So when you install some dependency via rpm, then we don't know it.
Pepa
Indeed, but I think it's less 'risky', as we will probably not rip out any dependency that we see is still in use. If we remember only leaf packages, and remove all leaf packages that are not in use, we get out all the addons a user might install.
You can detect and remember packages installed by RPM as explicitly installed. There should exist a GUI to view explicitly tagged packages, to tag and untag them as explicitly required. Additionally it would be very useful to save this list and even make this list as an optional start point for package installation on upgrade or fresh install to another partition (it would require evaluation of provides/obsoletes on top of this list).
If we remember all the dependencies that were pulled it automatically and only care for those, all leaf packages and dependency packages a user installs (using rpm or on request using zypper) are not in the automatic dependency tree and are thus not affected.
It is still possible to offer "Full dependency cleanup". It exist for example in Gentoo as depclean. It is very dangerous there. Depclean would be a very powerful dependency exercise for our packages. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Mon, Jun 09, Lukas Ocilka wrote:
FYI, Forwarding from yast-devel: This rather sounds libzypp-related.
Bye Lukas
Date: Fri, 6 Jun 2008 20:33:46 +0100 From: Hanno Svoboda <hs403@cam.ac.uk> To: yast-devel@opensuse.org Subject: [yast-devel] introduce a package history to remove obsolete packages
I use yast in openSUSE 10.3 to manage my software packages. I like to explore many different FLOSS projects and install quite a lot of software which I remove later on. A big problem for me is that my installation becomes more bloated after a while, because libraries and dependencies which came with the installed software can't be identified and are not automatically removed (probably for a good reason). Therefor I like to propose an idea, which could potentially solve this issue:
1. Create a history of installed packages with following information:
Yes, such a history would be nice, and it is also mentioned in FATE (110205). Appart form questions like what information to store, and in which format.. ..such a history would be a good candidate for a zypp extension. Some (someday plugable?) piece of code that is connected to signals emitted from future libzypp e.g during commmit or repository management. I'm currently looking into the Boost signals and slots library to see how we can use it to manage those connections. Signals represent callbacks with multiple targets. This is something our callback implementation lacks. -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres YaST Development ma@novell.com SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0 +------------------------------------------------------------------+ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Michael Andres wrote: [...]
I'm currently looking into the Boost signals and slots library to see how we can use it to manage those connections. Signals represent callbacks with multiple targets. This is something our callback implementation lacks.
BTW do you know libsigc++? (http://libsigc.sourceforge.net/) I used it in a small project in the past. I don't know Boost signals, but it could be another candidate to consider if Boost would not fit our needs... -- Best Regards Ladislav Slezák Yast Developer ------------------------------------------------------------------------ SUSE LINUX, s.r.o. e-mail: lslezak@suse.cz Lihovarská 1060/12 tel: +420 284 028 960 190 00 Prague 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Tue, Jun 10, Ladislav Slezak wrote:
Michael Andres wrote: [...]
I'm currently looking into the Boost signals and slots library to see how we can use it to manage those connections. Signals represent callbacks with multiple targets. This is something our callback implementation lacks.
BTW do you know libsigc++? (http://libsigc.sourceforge.net/)
I used it in a small project in the past.
I don't know Boost signals, but it could be another candidate to consider if Boost would not fit our needs...
Yes, boost is inspired by libsigc++. I'm looking at both. -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres YaST Development ma@novell.com SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0 +------------------------------------------------------------------+ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
participants (6)
-
Dominique Leuenberger
-
josef reidiner
-
Ladislav Slezak
-
Lukas Ocilka
-
Michael Andres
-
Stanislav Brabec