Back from a long silence period, here it is : the 6th opus of the
"
slack-get development diary" !
There is a lot of new things that I need to talk about !
First the bad news : I saw on CPAN reports that the "fix" I made for
Slackware::Slackget to properly test on Solaris OS is not working.
That is a bad thing but... I don't really see the purpose on trying to fix an
issue on an OS which is not a Slackware based one and not even a GNU/Linux OS !
The Slackware::Slackget module will never be usefull on this OS, so since I
have no Solaris to test I will just forget about it (unless somebody provides
me with a patch for this system.
Now for all the good news :
- slack-get suite (sg_daemon + slack-get) is now able to install,
upgrade and remove packages
That's the first point, and I think it's a pretty important
one
. I fixed all the daemon and the (cli) client to make them
able to perform packages operations without any problems.
So from now on, you can start a daemon and do a
"slack-get install
flightgear" for example

That's a very important point but it's nothing worth talking about without the
dependencies tracking system.
Talking about that...
- the dependencies tracking system is now fully
functionnal
Woohooo ! This part was certainly one of the most painfull, but I finally
manage to get it working the right way.
This part still need to be tested and there is no guarantees, so far, that it
is working properly in all cases.
But so far my tests where very promisefull ! I add no problems and for the
moment I have not yet discovered any bugs in this feature.
Again, that does not means that I will not uncover bugs later.
- add support for automatic GPG key import
I added the possibility for the sg_daemon to download and import a GPG key. For
the moment it only import Slackware Project's key and it is almost hardcoded
but there is no reasons to extend this feature to all medias sooner or
later.
This feature works well and is totally automatic : if sg_daemon do not find the
Slackware Project's key in the user's GPG keyring, it download it and import
it. Nice and easy.
- add new feature to slack-get (cli client)
I added a new command to slack-get, it is called
"info". You can
use it the exact same way than the
"search" command (this is the
exact same code which is processing it).
The goal of this command is to provide more informations about a package. Here
is an usage example :
$ ./slack-get info flightgear --media=slacky
Package: flightgear-1.0.0-i686-1as
Size (compressed): 3158 KB
Version: 1.0.0
Source: slacky
Description: The FlightGear flight simulator open-source project.The
goal of the FlightGear project is to create a
sophisticated flight simulator framework for use in
research or academic environments, for the development and
pursuit
of other interesting flight simulation ideas, and as an end-user
application
http://www.flightgear.org/ WWW.SLACKY.IT PackaGer Gohanz.
This little example, allow me to introduce the new command line option :
--media. This one allow you to restrict the "search" or "info" commandes to the
choosen media (in the previous example I wanted only results from the Slacky.it
website).
Last about the slack-get cli client, I fixed lots of "non closing bugs". The
non closing bugs are an annoying problem of slack-get cli client.
While the whole system became multitasks, it's becomming difficult to keep
track of what the client asked by itself (particularly in a
multi-administrators context), and after asking a sg_daemon to perform some
tasks (and after the tasks are finished) the client does not end.
I corrected a lot of thoses problems.
A good example of this issue is with the
"slack-get update"
command. This one scheduled a tasks to upgrade all packages which have new ones
in the patches/ subtree of the official-media (see config.xml). After the
update, the client was not quitting. It is now corrected.
- dynamic network backends negociation
Some of you may have noticed that sg_daemon should be able to dynamically
negociate what network backends the client and it should use to understand each
others. Until this morning it was not working, and it is now !
If sg_daemon supports XML and Base64 backends, and if the slack-get client
supports XML and Gzip backends ; they will both agree on using the biggest
common denominator (in this case they will use XML only).
I am very happy (and quite proud) of this mechanism. It allows tons of new
development and many plugins to come !
- lots of updates in the Slackware::Slackget Perl
module
Last but not least I made tons of modifications in the Slackware::Slackget
module. I added constants, generative methods to Slackware::Slackget::Media,
add codes to Slackware::Slackget::GPG to support new import features, add
method to Slackware::Slackget to check host's Slackware's version, and so on
and so forth !
As a conclusion, I will just say that there is still some works to do but it's
becomming to be a very usable tool. I'm using it every day now.
I hope all the work I made on slack-get will be of interets for you all !
As a bonus track I give you the new slack-get logo (that I made myself... so be
kind

)

Enjoy !
Arnaud Dupuis