Not really happy with smart

Gustavo Niemeyer gustavo at niemeyer.net
Sun Dec 18 09:50:57 PST 2005


Hello Michael,

> I'm new to smart, testing it out as a long time yum user, and thought
> I'd join the mailing list to help improve the product with the things
> I don't really like about it.

That's great. You're very welcome to do that. We're ready to
improve it to suit new use cases.

> First off, as I've been using yum for years, I have scripts which run
> on each of my yum clients which query the yum repo's (enabling
> specific ones to check based on the package I want checked on the
> repo) and email me a list of updated package daily so I can decide /
> apply them.

You can enable specific channels in Smart using an option like

    -o force-channels=alias1,alias2,etc

> I do this by first disabling all 3rd party repo's and keeping only
> base ones.  I then run a nightly check based on that (to pickup vendor
> errata for example), and I then cron a yum check-update for each of
> the 3rd party repo's by enabling the specific repo with a list of
> packages I use from that repo, then email it to myself.

You can do the same thing using something imilar to

    yes n | smart upgrade

We may certainly improve that to become something nicer. Your input
on how do you think this could be done in a nicer way is welcome.

[...]
> while the yum syntax I cron nightly for 3rd party repo's is:
> 
> yum --enablerepo=repo1 check-update package1 package2 package3

What does it show?

You can do something similar with:

    smart -o force-channels=repo1 upgrade package1 package2 package3

> If updates are found, then emails are generated informing me of the packages,
> which repo they exist in and I can then manually update them on the node.

Can you please tell me what you'd expect from that feature precisely,
so that I can either tell you how to do it, or may implement it for
the next version.

[...]
> # smart upgrade --check perl perl-suidperl
> Loading cache...
> Updating cache...                         
> ########################################################## [100%]
> 
> Computing transaction...
> There are new upgrades available!
> 
> This tells me smart can't "list" the new packages for me (so I can't email
> myself about new updates being available), and I can't find any way so
> far on how smart can.

smart upgrade?

The --check command was implemented to support tray icons that tell you
when there are new updates available. In that case, they only need a
meaningful return status to know if there are packages available or not.

We can certainly implement additional features on it, or even a
different command option depending on your needs.

> I also want the ability for smart to enable and disable repo's via the
> command line, in the same fashion I can do it with yum ie. have smart
> check the "base" repo's from the vendor, and enable the 3rd party
> repo's using the command line for the packages I want checked on that
> repo.
[...]

Right, that's what the force-channels option was made for.


> Again, I've just started "learning" smart so may be off-base with this one,
> but yum seems to take a much easier approach to providing this functionality
> than smart does.

I can't really compare since I'm not a yum user for obvious reasons.
What I can do is implement something that suits your use case.

[...]
> Very nice, formatted and informative output, with a nice transaction summary.
> To me, when looking at smart's equivalent output on package upgrades, smart
> can learn alot from yum on how to present it to the admin.

Can you please tell me what kind of feature you're missing more
specifically?  From what I see in the given output, it looks pretty
much like the Smart output, with some additional information that
is not valid for Smart (populating transaction, processing dependency,
etc), since Smart does global dependency resolution, rather than
trying to solve a single dependency like this.


> Other features like support for other repo's etc don't really concern
> me because I'd never use them. I use exclusively RH based systems and
> yum repo's from ATrpms, Dag, Dries, Freshrpms, Newrpms which supply
> most of the packages I need (if they don't I just build my own RPM or
> install from source).

In that case you'll be glad to know that the rpm-md support is being
greately improved in terms of speed by using cElementTree, in version
0.41.

> I decided to test smart based on favourable comments from Axel
> (ATrpms) but haven't really been impressed with it, so thought I'd
> join the list and voice my issues in the hope that the software could
> be made better.
> 
> Please consider this email constructive criticism.

No doubts. Your mail is sound. Thanks for using that approach.

-- 
Gustavo Niemeyer
http://niemeyer.net



More information about the Smart mailing list