Presenting bm - BuildManager

Helio Chissini de Castro helio at kde.org
Fri Jul 30 11:09:01 UTC 2010


Hello Guys

My first post here is to present a small utility that maybe will
be useful for people building rpms on your machine locally and want to avoid
all the usual flags and directories needed to use rpmbuild directly.

bm,
buildManager is a small python tool created several years ago in the
Conectiva distro ( now Mandriva ) with the requirements to allow basic
principles:

- User can build the package as user. no root, and don't need
to create any kind of dir or setup
- Short circuit operations can be done
easily during the development stage
- Results and log can be easily moved
and reach

So, bm achieved all this requirements ( and a few more ) and i´ve
been using it for so long time that as i moved to use Fedora in my day by
day job and home, i needed to package and push to main distro.
( Forgive me
if fedora already have similar tool, i´m too new hr to know :-)

Main page
long time gone since the main author, Gustavo Niemeyer left to Canonical,
but tool is self-explanatory.

Why bm is so useful ? let me show some
example. My long pain in terms of develop at Mandriva times are big packages
like Qt, or kdebindings.
The nature of this packages during new version
changes or snapshots is changing file list, or for some non-clean
environment compilation breaks in the middle.
The regular situation would be
analyze the log if you redirected for some output, fix, and start the
process from the beginning.
what we will do with bm ?

Start: 
bm
<package>.srpm  or 
bm --unpack-dir=<mydir> <package>.srpm

- bm creates the
structure <package>/{SPECS,SOURCES,RPMS,SRPMS,BUILD,BUILDROOT} automatically
in place. No need to set build place
- bm create the log called
log.<package> doesn't matter which operation you did inside SPECS

So, after
analyze and fix, i decide just skip the prep stage ( we don't need patch
again, etc.. ) then
bm --without prep

Or, we just need change the file list
? Then
bm --without build

And with this operations short-circuit will be
done and your time will reduced a lot. any rpm options can be passed in this
way too

Want to create package, move for some place, move the srpm for
other place move the log with looki glog passing live and clean the build
dir after ?

bm -l --move-log=/tmp/mylog --move-succeeded-srpm=/tmp/mysrpm
--move-rpm=/tmp/rpms --clean-on-success

There's plenty of other options
available. Hope this tool be usefull for more people as it is for me,

Best
regards

-- 
Helio Chissini de Castro
South America and Brazil Primary
Contact
KDE Developer since 2002


More information about the devel mailing list