mme: Maintenance Made Easy
Package, build and release YaST maintenance updates for SUSE Linux Enterprise 11 and 10.
(For SLE 12 a better mechanism based on Jenkins CI is already in place)
It uses OBS (openSUSE Build Service), and Git. It builds in a chroot without needing virtual machines.
git clone https://github.com/mvidner/maintenance-made-easy.git cd maintenance-made-easy make install-links
It will link the programs from the working copy to your
Prepare a fix in your Git working copy, commit it. Pushing or merging is not required for this script so you can test unreleased fixes.
cd .../your-working-copy mme-all sp4
The required argument is the target release. The full option menu is:
Usage: mme-all [options] SHORT_PRJ [build options] where SHORT_PRJ is sp4 or sp3 (for SLE11), sle10sp4 ... Options: -h Help -r <RPM name>; defaults to contents of RPMNAME -g <git URL> clone from here instead; defaults to CWD if .git/ exists -B Don't branch the OBS project Build options: anything for 'osc build'; --no-verify or -x strace may be useful
The script will read RPMNAME and check out the latest good package from IBS
~/obs/$REPO/$RPMNAME). Actually it will branch the OBS package first so
that you can then commit and submit your package, once the fix is confirmed to
be good. If you are just testing a colleague's fix you may want to skip the
It will build the old version of the package to fill the build root with proper dependencies.
It will clone the working copy into the chroot, using your UID, to make ad-hoc edits and fixes easier.
It will make a package via
make package-local in the chroot and copy the
result to the OBS checkout.
It will call
If the build succeeded, you should proceed to call
osc ci and
by hand. This is not automatic.
(But remember to merge the reviewed fix in Git first.)
If the build failed, call
mme-chroot and select the appropriate build root
from a menu to get a shell where you can enjoy debugging.
Author: Martin Vidner