Monday, January 27, 2014

Managing SBo Dependencies Easily

For those who uses SlackBuild scripts from SBo project might be pleased with this news. It's not a new thing for me since i have known about this tool for few months, but never tested in real (in fact forgotten about this) until few weeks ago when Ponce (Matteo Bernadini) wrote it on LQ.

This new tool is called sqg, made by Chess Griffin, one of the co-author of sbopkg, a great tool to manage package installation from SBo repository. This tool was released along with sbopkg 0.37.0, but it was released under contrib directory, so not so many people noticed it.

I believe you have heard about sbopkg which can help user to download, build, and install packages from SBo repository. This tool (sbopkg) still don't handle dependencies using SBo's metadata script (REQUIRES line), so users must handle the order of the package installation by themselves. Some people already started to use queue files to help them creating list of package installation order, but they must make it manually or use the queue files hosted in the repository made by Mauro Giachero.

All those things is now solved by the new tool called sqg. Basically it's a sbopkg queue generator which can help you to build queue file for a single package or to all packages in SBo repository using the metadata in every SBo package (*.info file).

Here's how to make use of sqg:
  • install sbopkg and configure it to point to the correct SBo repository 
  • run initial checkout: sbopkg -r (you can skip this step if you already have the latest update from SBo)
  • move sqg from /usr/doc/sbopkg-0.37.0/contrib/sqg to /usr/bin (or make a symlink)
  • edit line 48. Change the REPO_BRANCH to 14.1 (i assume you are using Slackware 14.1)
  • start creating queue files for all packages: sqg -a (this could take some time)
By the time it finished creating the queue files, all of them will be placed under /var/lib/sbopkg/queues/. If you have made your own queue files, please make a backup of it first, since it will overwrite everything on that directory.

Now, everytime you install a new package using sbopkg, it will find the queue first and if it found, it will offer you to use the queue or use an individual package. If you already have all the dependencies installed, then you can pick the individual to save time by installing the package you need. If you are building a new system, then you can pick the queue to download all the requirements along with the package you need and build them in order. Very nice :)

Kudos to Chess Griffin for this wonderful tool.