The Mer Wiki now uses your Mer user account and password (create account on

Local Mer

From Mer Wiki
Revision as of 16:58, 27 November 2011 by Stskeeps (Talk | contribs)

Jump to: navigation, search

Local Mer

A “local Mer” setup is the term given to the local OBS setup you need if you want to do a clean build of Mer.


  • Independence
  • Project configuration changes (build flags, etc)
  • Paranoia
  • Experiments

The process has the following steps - repeat for whatever architectures are needed: i586 is mandatory and must be first:

  1. Create local project
  2. Set the target schedulers
  3. Setup a suitable prjconf
  4. Create a linkpac for each of the packages
  5. Allow the local build to take place
  6. Remove the remote link

Limitations in the current OBS mean we can’t use normal linked builds because it doesn’t disable all i586 builds except the ones we want

A typical session looks like this:


osc -A merci meta prj Core:${BS_ARCH} -F - <<EOF
<project name="Core:${BS_ARCH}">

  <person role="maintainer" userid="Admin"/>
  <person role="bugowner" userid="Admin"/>
  <repository name="Core_${BS_ARCH}">
osc -A merci ls fakeobs:Core:${BS_ARCH} | xargs -L1 -Ixxx osc -A merci linkpac -c fakeobs:Core:${BS_ARCH} xxx Core:${BS_ARCH} xxx

# Crude check there were no errors
osc -A merci ls fakeobs:Core:${BS_ARCH} | sort > /tmp/fake-list
osc -A merci ls Core:${BS_ARCH} | sort > /tmp/bs-list
diff /tmp/fake-list /tmp/bs-list

# Copy the prjconf
osc -A merci meta prjconf fakeobs:Core:${BS_ARCH} | osc -A merci meta prjconf Core:${BS_ARCH} -F -

# Add in the paths

echo "Please add:"
echo '<path repository="Core_i586" project="Core:i586"/>'
echo ';<path repository="Core_${BS_ARCH}" project="fakeobs:Core:${BS_ARCH}"/>'
osc -A merci meta prj Core:${BS_ARCH} -e

At this point you chould check the project monitor page for any broken projects - these should be manually linkpac’ed again eg:

echo -e "elfutils-libelf-x86\nmeego-cross-armv7hl-sysroot" | xargs -L1 -Ixxx osc -A merci linkpac -c fakeobs:Core:${BS_ARCH} xxx Core:${BS_ARCH} xxx

Now wait for the project to rebuild. The following command is interesting:

watch osc -A merci jobhistory Core:${BS_ARCH} Core_${BS_ARCH} ${BS_SCHED}

Once this is done edit the project and remove the fakeobs:Core lines

osc -A merci meta prj Core:${BS_ARCH} | grep -v fakeobs | osc -A merci meta prj Core:${BS_ARCH} -F -
Personal tools