Mar 302013
 

Development has slowed on sbotools once again, which probably makes since given the size of the change-set for 1.5; this release is strictly a bug-fix release. Here are the highlights:

  • A bug where sbotools unsafely assumed the existence of /tmp/SBo has been fixed (this looked like “readdir() attempted on invalid dirhandle $tsbo_dh” with some other details afterward).
  • Support for $TMP being set in the environment has finally been implemented. SlackBuild files make use of this info, or fall back to /tmp/SBo; previously, we would not honour user changes to $TMP so all scripts used /tmp/SBo, which may not be what the user expects.
  • A bug where trying to install something which doesn’t exist threw a meaningless error has been fixed (this looked like “Odd number of elements in hash assignment” with some other details afterward).
  • A bug in the requirement checking code which could match something which was not a perl module against something installed via the cpan has been fixed.
  • A bug which would, in certain conditions, cause the queue to be generated out-of-order, which could cause builds to fail to sboinstall trying to build something before its requirement has been built, has been fixed. Thanks to W. Li for reporting this.

An updated slackbuild has been submitted to slackbuilds.org; you can either wait for it to be accepted there then use sboupgrade to update to 1.6 (if you have 1.5 installed), or you can download the slackbuild from there and modify it for 1.6 and use it to update manually.

The local-modification changes are still planned, just with one thing and another, they have not yet been gotten to, but unless we find some more stupid bugs first, that will be the next thing worked on. In theory…

sbotools on dawnrazor.net
sbotools on SlackBuilds.org

Feb 142013
 

This release took a little longer as we finally felt that sbotools was in a sufficiently stable state as to be submitted to SlackBuilds.org. So, that’s the most obvious change, and it also means that, moving forward, sbotools will be able to upgrade itself. For this release, if you have a previous version installed, you will not be able to upgrade it using sboupgrade, since the tag for previous versions was _d4wnr4z0r instead of _SBo, meaning sbotools will not see an older version as an upgradable SBo; simply remove the old package and then install the new one. Beyond that, here’s a summary of the other changes in this version:

  • Proper varying exit statuses have been implemented to indicate the cause of the exit. Read the man page for a given command to determine its possible exit codes; if there are none documented, that command can only exit 0. If there are multiple errors, the exit code will be based on the last one encountered prior to exiting.
  • Several minor fixes in the way that sboupgrade and sboinstall operate.
  • If sboupgrade or sboinstall encounter an error, instead of simply stopping, they will ask if one would like to continue on. In some cases, errors encountered are not sufficient to stop other things from working, so this allows one to have the scripts continue on in order to do as much as can be done.
  • A bug where certain special characters in download links broke the downloading of those source files has been fixed.
  • A bug where an invalidly formatted file in /var/log/packages would cause sboinstall and sboupgrade to die has been fixed.
  • Previously sboupgrade and sboinstall, when set to “make clean”, as well as sboclean, had no knowledge of -compat32 stuff still lying around under /tmp; those items are now properly cleaned.
  • A bug where sbocheck would die if there were no updates, instead of exiting cleanly, has been fixed.
  • Several non-optimal sections of code have been optimized.

Moving forward, our next big thing is to implement a method of handling local modifications. We also have a couple bug reports to look into, and we’ll also be getting a wiki and some other fun things setup at some point.

sbotools on dawnrazor.net
sbotools on SlackBuilds.org

Jan 062013
 

sbotools 1.4 is now released, yes, less than a week after 1.3, but we have a lot of small fixes and enhancements in this release. Not all are user-visible, but here are the ones that are:

  • When checking for installed requirements, sbotools is now aware of non-SBo packages. This means you can, for example, install jdk from /extra, and sbotools will see that as fulfilling an SBo’s requirement to have jdk already installed.
  • When checking for installed requirements, sbotools is aware of CPAN-installed Perl modules. Note that not all CPAN-installed Perl modules register themselves in the system’s perllocal.pod, so sbotools won’t know about them, and in some cases SlackBuilds of Perl modules rename the module in bizarre ways, and sbotools won’t know about such renamings.
  • A bug where attempting to build a compat32 package from something which had differing 32-bit and 64-bit download links would fail due to the slackbuild attempting to use the 64-bit source packages has been fixed.
  • The requirement to have Text::Tabulate installed for sbotools is no more.
  • sbocheck now writes a log, located at /var/log/sbocheck.log, of what updates it finds as available.
  • A bug where sbotools was no longer aware of installed compat32 packages from SlackBuilds.org, due to a modification in how these packages get tagged, has been fixed.
  • A bug where sbotools could not always “make clean” the source directories, or would do an incomplete job of it, has been fixed.
  • sbotools will now attempt to download and md5sum verify all source files for all packages queued before attempting to build any of them.
  • A bug where if a source fail already existed but failed md5sum verification sbotools would not remove it before wget’ing a new copy, resulting in the new copy having .1 appended and the md5sum verification still failing, has been fixed.

As I mentioned last release, we’re a lot more organized now, and it has helped a lot.

Moving forward, we’re looking at the different ways we can go about supporting local modifications to the tree, implementing a wiki, doing some refactoring/rewriting/cleanups, and (probably the very next thing we’ll do) implementing a new testing method which we figure ought to expose a number of interesting bugs that we don’t even know about yet.

Exciting!

Dec 312012
 

sbotools 1.3 is here, and includes a new tool called “sboremove”; sboremove utilizes requirement information in the slackbuilds.org tree to provide the ability to easily remove an SBo along with all of its requirements. It is also aware of other installed SBos and their requirements and, by default, will not offer to remove any of a specified SBo’s requirements if another installed SBo shares any such requirements – though there is, of course, an option to have it do so.
Beyond that, there are a couple cosmetic bug fixes, as well as a fix for a bug which caused SBos specified to sboinstall which were also requirements of other specified SBos at the same time to show up multiple times in the install queue.

Moving forward, we’re starting to get a lot more organized now, which should positively impact not only the quality of sbotools but also the speed at which we can effect positive, beneficial changes to the codebase.

enjoy!

Nov 302012
 

The big news for this release is that I am now joined by xocel of iquidus.org in developing sbotools.

Among other interesting things, xocel brings to sbotools a queue system, which allows us to implement some pretty nifty stuff that wasn’t as feasible before; some of that is in this release, some wasn’t quite ready yet and will be “coming soon”.

This release does represent a pretty significant changeset, and while we’ve done significant testing to ensure this release runs as expected, it is of course impossible to catch all bugs. Please email one or the other of us with any bugs found; our email addresses can be found on any of the man pages.

There aren’t too many user-visible changes for this release:

  • sbofind now has a -q option to show what all would be built for any sbo’s matching the search term.
  • When the sbo tree is rsync’s, –delete is now used so that removed files/directories are properly removed from the local tree. If you want to keep something that’s been removed upstream, you’ll need to relocate it outside of the working tree.
  • sboupgrade/sboinstall will now seek confirmation/options/etc for each sbo it expects to build before running any slackbuilds.

And that’s probably about it. The great majority of the work for this release centered around the queue system, so not much in the way of new features at present.

sbotools.

 Posted by at 10:08
Oct 042012
 

Well, that was quick.

These releases fix a bug where TiMidity++ and probably certain other slackbuilds wouldn’t work, because the link contains %2Bs which of course get translated into +s in the actual filename, and sbotools did not previously know that could happen. Other than some extremely minor cleanups along the way, that’s it.

sbotools.

Oct 042012
 

sbotools 1.0 is now released. This is the first version that supports Slackware 14.0 – and note that this version does NOT support Slackware 13.37. It is version 1.0 because, with the REQUIRES information in the slackbuild’s .info file now, I can finally considering the requirement-handling to work correctly in the very great majority of cases. If you need sbotools for Slackware 13.37, use the 0.x branch of sbotools; the latest release there is 0.9. The 0.x branch will still receive bug-fixes, as well as minor things like consistency and cleanup changes back-ported from the 1.x branch, but it will not likely be actively developed beyond such things. The source between the two branches is kept as same as possible, though, so there is still a possibility of back-porting any new features from 1.x, if any do get added. Anyway, beyond the bug-fixes applied to 0.9, the only other changes in this version are some minor consistency cleanups (particularly in the man pages), and the fact that this version supports only Slackware 14.0.

I will be utilizing this for a time to watch for any remaining bugs and eventually submitting sbotools 1.x to slackbuilds.org.

sbotools.

Oct 032012
 

sbotools 0.9 fixes some pretty stupid bugs that managed to slip through in 0.8. This may be the final version to support Slackware 13.37, unless some more bugs show up. Here are changes:

  • a bug where compat32 packages apparently wouldn’t install after building is fixed.
  • a bug where installing compat32 packages could result in their 64-bit versions being built and installed twice is fixed.
  • a bug where sboupgrade -fz would call sboupgrade -rz during recursion is fixed.

A version supporting 14.0 is forthcoming… probably tonight (which probably means very early tomorrow morning).

That’s all. sbotools.

Jul 052012
 

Well, this is fairly overdue, considering that Pat bumped the slackware-version in -current to 14.0 a week and a half ago. Possibly the only noticeable difference in this release is that it now supports -current again, whereas 0.6 expects -current’s slackware-version to be 13.37.0.  In the meantime, there have many changes to the code itself. A lot of stuff has been cleaned up and refactored, a number of things have been made more robust, and some few hundred lines of code were removed. The code no longer handles temp files itself but uses File::Temp, which is better in virtually every way. A lot of little bugs were fixed along the way… but I didn’t keep track of which were pre-existing conditions and which were created along the way, so I can’t say those are bug fixes to the previous version as such.

And somewhere along the line I got into the idea of test-driven development, so that should, theoretically, mean the code is in better shape by definition… theoretically.

At any rate, click click.

Jun 012012
 

sbotools 0.6 is now released. I am now considering sbotools to be essentially feature-complete. Here are some of the changes with this release:

  • Numerous enhancements have been made to the requirement-parsing code to work around some of the many variations in the way requirements are specified in README files.
  • sbofind has two new options: -i and -r, which show the contents of .info files and the contents of README files, respectively.
  • sboclean now exists as a simple means of cleaning distfiles and working directories.
  • Much cleanup and refactoring of code.
  • sboupgrade and sboinstall now grok  groupadd and useradd commands listed in README files, and offer to run those commands first.
  • sbofind’s search has been made case-insensitive.
  • sboupgrade and sboinstall now grok when a slackbuild has options documented in the README (of the form KEY=value); when they see this, they offer the option to set any options for the slackbuild.
  • The “Proceed with” question displayed after a README now reflects -compat32 when the -p flag is specified to sboupgrade or sboinstall.
  • Installation of a compat32 package now requires the non-compat32 version to be installed; when it is not, sboupgrade and sboinstall will offer to install it.
  • A bug which caused the -c option sboupgrade and sboinstall to not disabling cleaning of the working directories has been fixed.
  • Several other minor glitches have been fixed, wording has been cleaned up, man pages have been reorganized, etc.

Check out the sobtools page, and please report any problems found.