Local Mer

= Local Mer =

A &ldquo;local Mer&rdquo; setup is the term given to the local OBS setup you need if you want to do a clean build of Mer.

Why?


 * Independence
 * Project configuration changes (build flags, etc)
 * Paranoia
 * Experiments
 * &hellip;

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

Notes:

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

A typical session looks like this:

BS_ARCH=armv7l BS_SCHED=armv7el

osc -A merci meta prj Core:${BS_ARCH} -F - &lt;&lt;EOF &lt;project name=&quot;Core:${BS_ARCH}&quot;&gt; &lt;title&gt;&lt;/title&gt; &lt;description&gt;

&lt;/description&gt; &lt;person role=&quot;maintainer&quot; userid=&quot;Admin&quot;/&gt; &lt;person role=&quot;bugowner&quot; userid=&quot;Admin&quot;/&gt; &lt;debuginfo&gt; &lt;disable/&gt; &lt;/debuginfo&gt; &lt;build&gt; &lt;enable/&gt; &lt;/build&gt; &lt;publish&gt; &lt;enable/&gt; &lt;/publish&gt; &lt;repository name=&quot;Core_${BS_ARCH}&quot;&gt; &lt;arch&gt;i586&lt;/arch&gt; &lt;arch&gt;${BS_SCHED}&lt;/arch&gt; &lt;/repository&gt; &lt;/project&gt; EOF 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

osc -A merci ls fakeobs:Core:${BS_ARCH} | sort &gt; /tmp/fake-list osc -A merci ls Core:${BS_ARCH} | sort &gt; /tmp/bs-list diff /tmp/fake-list /tmp/bs-list
 * 1) Crude check there were no errors

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


 * 1) Add in the paths

echo &quot;Please add:&quot; echo &quot;&lt;path repository=&quot;Core_i586&quot; project=&quot;Core:i586&quot;/&gt;&quot; echo &quot;&lt;path repository=&quot;Core_${BS_ARCH}&quot; project=&quot;fakeobs:Core:${BS_ARCH}&quot;/&gt;&quot; 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&rsquo;ed again eg:

echo -e &quot;elfutils-libelf-x86\nmeego-cross-armv7hl-sysroot&quot; | 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 -