The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)
Local Mer
(Add a "Tied to remote" reminder in the description.) |
|||
| Line 13: | Line 13: | ||
The process has the following steps - repeat for whatever architectures are needed: i586 is mandatory and must be first: | The process has the following steps - repeat for whatever architectures are needed: i586 is mandatory and must be first: | ||
| − | # Create local project | + | # Create local project tied to the remote source |
# Set the target schedulers | # Set the target schedulers | ||
# Setup a suitable prjconf | # Setup a suitable prjconf | ||
| Line 33: | Line 33: | ||
<description> | <description> | ||
| + | Tied to remote. | ||
</description> | </description> | ||
<person role="maintainer" userid="Admin"/> | <person role="maintainer" userid="Admin"/> | ||
| Line 73: | Line 74: | ||
<pre>watch osc -A merci jobhistory Core:${BS_ARCH} Core_${BS_ARCH} ${BS_SCHED}</pre> | <pre>watch osc -A merci jobhistory Core:${BS_ARCH} Core_${BS_ARCH} ${BS_SCHED}</pre> | ||
| − | |||
| − | <pre>osc -A merci meta prj Core:${BS_ARCH} | grep -v fakeobs | osc -A merci meta prj Core:${BS_ARCH} -F -</pre> | + | Once this is done edit the project and remove the fakeobs:Core lines (also remove the "Tied to remote" reminder in the description) : |
| + | |||
| + | <pre>osc -A merci meta prj Core:${BS_ARCH} | grep -v fakeobs | grep -v "Tied to remote" | osc -A merci meta prj Core:${BS_ARCH} -F -</pre> | ||
Revision as of 09:29, 28 November 2011
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.
Why?
- 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:
- Create local project tied to the remote source
- Set the target schedulers
- Setup a suitable prjconf
- Create a linkpac for each of the packages
- Allow the local build to take place
- Remove the remote link
Notes:
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:
BS_ARCH=armv7l
BS_SCHED=armv7el
osc -A merci meta prj Core:${BS_ARCH} -F - <<EOF
<project name="Core:${BS_ARCH}">
<title></title>
<description>
Tied to remote.
</description>
<person role="maintainer" userid="Admin"/>
<person role="bugowner" userid="Admin"/>
<debuginfo>
<disable/>
</debuginfo>
<build>
<enable/>
</build>
<publish>
<enable/>
</publish>
<repository name="Core_${BS_ARCH}">
<arch>i586</arch>
<arch>${BS_SCHED}</arch>
</repository>
</project>
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
# 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 (also remove the "Tied to remote" reminder in the description) :
osc -A merci meta prj Core:${BS_ARCH} | grep -v fakeobs | grep -v "Tied to remote" | osc -A merci meta prj Core:${BS_ARCH} -F -