Richard W.M. Jones
2014-Nov-11 18:49 UTC
Re: [Libguestfs] Add support for slackware in supermin
On Tue, Nov 11, 2014 at 06:41:40PM +0000, Richard W.M. Jones wrote:> 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.Reading further in the thread - I agree with Pino that this is not ideal. It would be better to have the package manager db store deps. But I don't have any problems with a big list in libguestfs packagelist.in (defended by `if SLACKWARE ...') Rich.> Rich. > > > Thanks for your reply > > > > Mathieu > > Le 10 nov. 2014 19:06, "Pino Toscano" <ptoscano@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 > > _______________________________________________ > Libguestfs mailing list > Libguestfs@redhat.com > https://www.redhat.com/mailman/listinfo/libguestfs-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
Mathieu Bouillaguet
2014-Nov-15 19:36 UTC
Re: [Libguestfs] Add support for slackware in supermin
2014-11-11 19:49 GMT+01:00 Richard W.M. Jones <rjones@redhat.com>:> On Tue, Nov 11, 2014 at 06:41:40PM +0000, Richard W.M. Jones wrote: > > 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. > > Reading further in the thread - I agree with Pino that this is not > ideal. It would be better to have the package manager db store deps. > But I don't have any problems with a big list in libguestfs > packagelist.in (defended by `if SLACKWARE ...') > > Rich. > > > Rich. > > > > > Thanks for your reply > > > > > > Mathieu > > > Le 10 nov. 2014 19:06, "Pino Toscano" <ptoscano@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 > > > > _______________________________________________ > > Libguestfs mailing list > > Libguestfs@redhat.com > > https://www.redhat.com/mailman/listinfo/libguestfs > > -- > Richard Jones, Virtualization Group, Red Hat > http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > Fedora Windows cross-compiler. Compile Windows programs, test, and > build Windows installers. Over 100 libraries supported. > http://fedoraproject.org/wiki/MinGW >What are the drawbacks of using libguestfs with the fixed appliance instead of supermin with builtin distrib support ? Thanks
Richard W.M. Jones
2014-Nov-15 20:16 UTC
Re: [Libguestfs] Add support for slackware in supermin
On Sat, Nov 15, 2014 at 08:36:48PM +0100, Mathieu Bouillaguet wrote:> What are the drawbacks of using libguestfs with the fixed appliance > instead of supermin with builtin distrib support ?It's not nice for you or Slackware that you will be relying on a "binary blob" that you cannot rebuild from source (except by installing Fedora or Debian, of course). It's what Gentoo are doing however. Their ebuild downloads the Fedora-based fixed appliance from http://libguestfs.org/download/binaries/appliance/ , unpacks it somewhere and sets the paths as appropriate. Reference: http://packages.gentoo.org/package/app-emulation/libguestfs http://packages.gentoo.org/package/app-emulation/libguestfs-appliance Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW