On Sat, 7 Jan 2006, Pascal Bleser wrote:
Breaking into a new thread.
We should have done that early, I guess ;)
Ken Schneider wrote:
On Fri, 2006-01-06 at 15:24 +0100, Clayton wrote:
1. It doesn't show me what version I already have installed (as Synaptic and Aptitude do). To me this is somewhat of a "deal breaker"... this really needs to be included in Smart-gui to make it useful/usable. I don't understand. Could you please provide a screenshot or a more detailed "how to reproduce"? Which "view" are you using in smart-gui? I'm thinking in terms of how Synaptic (or Aptitude) presents the information about installed applications.
If I filter the view so I just see upgradable packages, I'm shown two columns... Package and Version. What does this tell me? The version available or the version installed? It doesn't say (although from my own experience it looks like it's showing the available version). Also... assuming it's showing the available version, I can't easily see what version I already have installed (in fact, I can't see any obvious way at all to find out what version is already installed for those packages that are flagged as upgradable).
Look at how Synaptic presents the same info... Package, Installed Version, Available version. It's this installed vs repository version comparison I'm missing. I would hazard a guess that a lot of other people will be missing that same info....
This is my only complaint using smart. How hard can it be to add another column showing the installed version so a comparison can be made?
It's not, definately not with smart. File an enhancement request ;-)
So about the question what can smart do that yast2's package manager doesn't.
First off, it's all written in Python. It's really nice and clean code, very modular, which is a good sign for long-term maintainance and quality of it as a whole. As an example, Mauricio added YaST2 repository support (still experimental, included in my "smart-0.41-10" package): he didn't have to patch anything, just 3 new files that get dropped and "plug" into Smart's architecture.
There is still much room for improvements, no question about that, but what Christoph meant and what I'd also like to ask: please test it and file bug reports. And if you'd like to contribute in other ways: coding on the project, translating locale messages, writing documentation.
So, what's so nice about Smart. * mirrors - - mirrors are managed globally, for every single operation, because you just define URL mappings (e.g. "http://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS" -> "http://ftp.belnet.be/packages/opensuse/distribution/SL-10.0-OSS"), that's it, it will apply for every file retrieval because it's managed by a central component - - you can define several of such "mirror mappings" and Smart collects information about hits and misses as well as average speed, selecting the best mirror based on that information (IIRC it even parallelizes downloads and distributes them on several mirrors, when available)
* supports many repository formats It's a single tool that supports - - several repository formats: rpm-md (yum), apt-rpm, apt-deb, urpmi, redcarpet, rpmhd, up2date, yast2 (experimental atm) - - installing from just a directory of files, without any metadata - - several backends: rpm, dpkg, slack (obviously a bad idea to install dpkg packages on an RPM system; in fact it means that smart runs on a lot of distributions, not just RPM-based ones) - - several frontends, currently: command-line, shell, gtk2 GUI; this is very pluggable in its architecture as well, someone could develop another gtk2 UI or a PyQt one or.. whatever has bindings in Python, and it's directly into the runtime, no need for libraries or "shelling out"
The maintainer of the project, Gustavo Niemeyer (the former maintainer of apt-rpm, and he also contributed a lot to synaptic) is very active on the project, as well as a really nice chap to discuss with. He's also very open to improvements, ideas and constructive criticism.
These are just a few of the very nice things with smart. It's not perfect yet, still has many points where it can be improved. That's why Christoph, Mauricio and I are calling for testing ;)
But it has already proven to be very solid and consistent in terms of package management and dependency handling (especially 0.41 that sorts out a lot of bugs that happened on SUSE Linux < 10.1 because of an older RPM version). The UIs still need improvements, especially the GUI (personally, I mostly use the shell interface), but the deal is: let's work on it and contribute feedback, ideas, and maybe even your experience in Python coding.
Given it's a very modular architecture and clean design, imagine all the possibilites once the core is really solid (I think it already is as of now, the issues are rather with the UIs): a very smart and portable (in every sense: package repository formats, backends) package management engine that can be extended in nearly every possible way (and work on many different distributions). Personally, at least, and as a software developer, I find the concept very attractive and I can definitely see the potential of the project. Well, that's the reason why I want to get involved in it.
Well said -- but to make this long story short: SMART is smart. So don't be stupid ;) The upcoming Beta1 of SUSE Linux 10.1 will ship with the latest and greatest SMART, by the way. Have a nice weekend Christoph