Development and pending features

Anders F Björklund afb at algonet.se
Mon Aug 11 23:56:36 PDT 2008


Gustavo Niemeyer wrote:

> Hey Anders,
>
> First, let me tell you that this is a very nice list of features.   
> It'll take me
> some time to get through all of them, but I will get through them.

Thank you, and there is no rush - especially not on the new features...
And most of the platform issues / bugfixes are patched downstream, too.

Details or discussions on separate items should probably go to new  
topics,
or to the items in Launchpad - whichever fits best, either is fine  
with me.

>> Platform support
>>
>> * bugfixes
>> - the patch for file descriptors, to work on Mac OS X (old patch from
>> MacPorts)
>
> Isn't this one already fixed in trunk?

It is, I just listed it again to make sure :-) The patch is from 2005...
For the record, the bug is https://bugs.launchpad.net/smart/+bug/243981

>> - add patch for rpm.archscore, to work with older RPM versions:  
>> 4.4.7 and
>> 5.0.0
>
> This would be nice.  We just have to do it in a way that doesn't break
> the arch support when it is available.

And both MacPorts RPM 4.4.9 and FreeBSD RPM 5.0.3 do have the archscore,
now implemented with the new "PlatformScore" instead of "MachineScore".

As suggested elsewhere*, the best would probably be to make archscore a
utility function somewhere in smart.backends.rpm and hide details there.
It could also use a memoization / lookup table for the architectures,
since the values don't change and might be costly to get every time ?

* for instance http://students.mimuw.edu.pl/~mk209475/smart/raport.html

>> * slack
>> - add support for .tbz (bzip2) and .tlz (lzma) packages, in  
>> addition to .tgz
>> - add features: requires/conflicts relations, checksums,  
>> compressed metadata
>
> Sweet.  It's cool to see this being updated.  I haven't managed to  
> test the
> slackware support myself for quite a while.

I found a few minor typos, but otherwise it seemed to be working OK.
It did want to fetch the PACKAGES.TXT file new every time, though ?

I don't have slack, but Vector 5.9 which is based on Slackware 12.0
and where the new "slapt-get" features (like relations) are used...
It "should" work with Slackware and Zenwalk and other distributions
using slack packages too, but I don't think that has been tested.

>> New Smart features
>>
>> * reference
>> - improves the existing parsing of reference URLs, to add more  
>> channel
>> support
>>  adds a new "Reference" tab to the GUI interface, for viewing the
>> information
>
> Sounds good in theory, even though I'm not sure about the new tab.
> Isn't the General tab adequate for this?

It should be, that new tab is rather annoying. In theory, there "could"
be a whole list of reference URLs but in practice there is only one...

Will rewrite.

>> * changelog
>> - reads changelog from rpm database or files, mandriva hdlists or rpm
>> metadata
>>  adds a new "Changelog" tab to the GUI interface, for viewing the
>> information
>
> That's a great one!

The main problem is that the extra data for the changelog bloats the  
cache.
While the filelists are only added to fulfill file dependencies, this  
adds
overhead to every single package which makes cache loading even  
slower...
To be more useful, it would be nicer if this could be done "on demand" ?

>> * groups
>> - reads group (virtual package) information from yum comps.xml and  
>> yast
>> patterns
>>  not the same as the existing smart groups, which come from  
>> packages (e.g.
>> rpm)
>
> That's interesting, as we discussed a few times.  It may require some
> attention during integration to actually be really useful.

The prefixing of the virtual packages might not be optimal either,  
but it
is more straightforward than the "groupinstall, "grouplist",  
"groupinfo" ?
As in: they would at least show up in the usual pkg interface instead of
appearing outside. Who knows, maybe it would even help fix  
dependencies...

Both comps and patterns use weak dependencies such as suggests/ 
recommends,
these are currently ignored by the loader - making some of the groups  
empty.

>> * errata
>> - reads update errata information from external data, and adds to  
>> package
>> info
>>  information available: type, date, summary, description,  
>> reference URLs
>> (CVE)
>
> The patches I've seen look great.  We just need to extend the  
> support to
> be covered by the C module, and implement some testing.

I added a field "reboot", for packages that suggest a reboot (e.g.  
kernel)
There's also a "severity" (1-10) that isn't available in current  
metadata.

The severity/impact/importance would translate to a Low-Important- 
Critical
scale, like in e.g. http://www.redhat.com/security/updates/ 
classification/

--anders





More information about the Smart mailing list