[Libguestfs] Add support for slackware in supermin

Richard W.M. Jones rjones at redhat.com
Tue Nov 11 18:41:40 UTC 2014


On Tue, Nov 11, 2014 at 03:23:40PM +0100, Mathieu Bouillaguet wrote:
> Hi Pino,
> 
> Thanks for your reply and details.
> 
> I started looking at the others package manager code and as I see it there
> is one main problem to port supermin to slackware distro.
> 
> Slackware builtin package management tools (pkgtool and slackpkg) do not
> manage package dependencies. There is no easy solution to solve this
> problem.
> There are third party packet manager which manage dependencies but they are
> not supported and I don't personnaly use it.
> 
> It would be possible to make supermin install only the packages entered on
> the command line by the user for slackware distro but maybe other tools
> rely on the package dependency installation semantic.
> 
> What is your opinion about this ? How supermin is used by other tools like
> libguestfs ?

>From a libguestfs p.o.v it'll be fine to list all packages needed (ie
including dependencies) in libguestfs.git/appliance/packagelist.in.
That should mean that the complete list of packages is passed to
supermin on the cmdline, so the supermin slackware dependency resolver
can be a no-op.

Rich.

> Thanks for your reply
> 
> Mathieu
>  Le 10 nov. 2014 19:06, "Pino Toscano" <ptoscano at redhat.com> a écrit :
> 
> > Hi Mathieu,
> >
> > On Sunday 09 November 2014 16:14:32 Richard W.M. Jones wrote:
> > > On Sat, Nov 08, 2014 at 02:27:49PM +0100, Mathieu Bouillaguet wrote:
> > > > Hi,
> > > >
> > > > What needs to be implemented to add support for slackware
> > > > distribution in supermin ?
> > >
> > > hi Mathieu
> > >
> > > I'm on holiday at the moment and will give a more complete reply
> > > when I get back.  In brief you need to be able to do a few simple
> > > package database meta operations such as listing all files in a
> > > package and listing the installed deps of a named pkg.  This pre-
> > > supposes that slackware has such a packaging db.  Pino CCd can
> > > give more details, and you can look at existing pkg systems in
> > > src/*.ml.
> >
> > As Rich said briefly, supermin needs to be taught about the package
> > manager running on Slackware.  supermin needs it to perform some
> > operations on the system, such as:
> > - query the basic information about a package (name, version, and all
> >   the basic attributes such as epoch and architecture, if present/needed
> >   to unequivocally identify a package later) given its name
> > - get the last time the package system has "changed" (like after an
> >   update, or having installed/removed some package); this is needed so
> >   supermin can avoid querying the package system when the set of
> >   installed packages has not changed since last time supermin was run
> > - get the list of dependencies of a package
> > - get the list of files of a package, marking whether a file is
> >   considered "configuration file" by the package manager; usually this
> >   is the case for files in /etc, which the admin can edit, and the
> >   package manager carefully handles when updating packages providing
> >   them
> > - download and extract packages from the sources of the package manager;
> >   this is needed so supermin can pick pristine copies of the files of an
> >   installed package, usually to have unedited configuration files
> >
> > supermin supports already few package manager, and you can find in the
> > src/ subdirectory their implementations: dpkg.ml, pacman.ml, rpm.ml.
> >
> > --
> > Pino Toscano
> >

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list