OpenSuse Build Service/Fremantle Setup
(Tidy up) |
(update git links) |
||
| Line 14: | Line 14: | ||
(see https://projects.maemo.org/trac/maemoobs/wiki/Fremantle too) | (see https://projects.maemo.org/trac/maemoobs/wiki/Fremantle too) | ||
| - | Setup the projects | + | == Gitorious Project == |
| + | |||
| + | The config and modified source needed to make the OBS work with Fremantle is kept: | ||
| + | http://gitorious.org/m-obs | ||
| + | |||
| + | == Setup the projects == | ||
=== Maemo:Fremantle:1.2:Std === | === Maemo:Fremantle:1.2:Std === | ||
| Line 182: | Line 187: | ||
Since this project is a target it needs a prjconf: | Since this project is a target it needs a prjconf: | ||
| - | + | http://gitorious.org/m-obs/maemoconf | |
== Extras == | == Extras == | ||
| Line 192: | Line 197: | ||
osc -A $API co Maemo:Fremantle:1.2:Bootstrap scratchbox-fake | osc -A $API co Maemo:Fremantle:1.2:Bootstrap scratchbox-fake | ||
cd Maemo:Fremantle:1.2:Bootstrap/scratchbox-fake | cd Maemo:Fremantle:1.2:Bootstrap/scratchbox-fake | ||
| - | git clone git | + | git clone git://gitorious.org/m-obs/scratchbox-fake.git |
cd scratchbox-fake | cd scratchbox-fake | ||
dpkg-buildpackage -S -uc -us -I.git | dpkg-buildpackage -S -uc -us -I.git | ||
| Line 209: | Line 214: | ||
osc -A $API co Maemo:Fremantle:1.2:Bootstrap busybox | osc -A $API co Maemo:Fremantle:1.2:Bootstrap busybox | ||
cd Maemo:Fremantle:1.2:Bootstrap/busybox | cd Maemo:Fremantle:1.2:Bootstrap/busybox | ||
| - | git clone git | + | git clone git://gitorious.org/m-obs/busybox.git |
cd busybox | cd busybox | ||
dpkg-buildpackage -S -uc -us -I.git | dpkg-buildpackage -S -uc -us -I.git | ||
| Line 222: | Line 227: | ||
osc -A $API co Maemo:Fremantle:1.2:Bootstrap fakeroot | osc -A $API co Maemo:Fremantle:1.2:Bootstrap fakeroot | ||
cd Maemo:Fremantle:1.2:Bootstrap/fakeroot | cd Maemo:Fremantle:1.2:Bootstrap/fakeroot | ||
| - | git clone git | + | git clone git://gitorious.org/m-obs/fakeroot.git |
cd fakeroot | cd fakeroot | ||
dpkg-buildpackage -S -uc -us -I.git | dpkg-buildpackage -S -uc -us -I.git | ||
Revision as of 11:31, 9 May 2010
Contents |
Fremantle
This currently refers to some inaccessible repos. I'll open them up as I get time.
Target:
- Use Maemo:Fremantle:1.2 as build target for Maemo Extras
Approach:
- Copy all Nokia Fremantle Binaries to Maemo:Fremantle:1.2:Std
- Create Maemo:Fremantle:1.2:Bootstrap/<pkg> to create packages (use useforbuild = no?)
- Create Maemo:Fremantle:1.2:Loaded to include additional binaries needed by OBS
- Create Maemo:Fremantle:1.2 as the nominal target for :Extras and the main prjconf
(see https://projects.maemo.org/trac/maemoobs/wiki/Fremantle too)
Gitorious Project
The config and modified source needed to make the OBS work with Fremantle is kept:
http://gitorious.org/m-obs
Setup the projects
Maemo:Fremantle:1.2:Std
# Specify the OBS we're working on
API=http://build.obs.maemo.org/
# Get the Fremantle binaries
mkdir -p /Downloads/fremantle1.2/
cd /Downloads/fremantle1.2/
wget -e robots=off --accept \*.deb --mirror --no-parent --progress=dot \
--no-host-directories --cut-dirs=2 -nv \
http://repository.maemo.org /pool/fremantle-update2/
# Prepare for the :full dir for the OBS
REPO=/backend_storage/maemo-sdk-5/pool/maemo5.0
OBS=/backend_storage/obs/fremantle1.2
mkdir $OBS
cd $OBS
mkdir -p armel_full i586_full
find $REPO -name *armel.deb | xargs -I@ ln @ armel_full
find $REPO -name *i386.deb | xargs -I@ ln @ i586_full
find $REPO -name *all.deb | xargs -I@ ln @ armel_full
find $REPO -name *all.deb | xargs -I@ ln @ i586_full
# On an OBS client
osc -A $API meta prj Maemo:Fremantle:1.2:Std -F - <<XML
<project name="Maemo:Fremantle:1.2:Std">
<title>Fremantle 1.2</title>
<description>
The standard binaries from Nokia
</description>
<person role="maintainer" userid="Admin"/>
<person role="bugowner" userid="Admin"/>
<build>
<enable/>
</build>
<publish>
<disable/>
</publish>
<debuginfo>
<disable/>
</debuginfo>
<repository name="standard">
<arch>armv7el</arch>
<arch>i586</arch>
</repository>
</project>
XML
# Back on OBS server
# Copy the binaries into the new project
cd /srv/obs/build/Maemo:Fremantle\:1.2\:Std/standard/
mkdir -p i586 armv7el
ln -s $OBS/i586_full i586/:full
ln -s $OBS/armel_full armv7el/:full
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std standard i586
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std standard armv7el
chown -R obsrun:obsrun /srv/obs/build/Maemo:Fremantle:1.2:Std
Maemo:Fremantle:1.2:Bootstrap
# On an OBS client
osc -A $API meta prj Maemo:Fremantle:1.2:Bootstrap -F - <<XML
<project name="Maemo:Fremantle:1.2:Bootstrap">
<title>Fremantle 1.2</title>
<description>
The standard binaries from Nokia
</description>
<person role="maintainer" userid="Admin"/>
<person role="bugowner" userid="Admin"/>
<build>
<enable/>
</build>
<publish>
<disable/>
</publish>
<debuginfo>
<disable/>
</debuginfo>
<useforbuild>
<disable/>
</useforbuild>
<repository name="Debian_5.0_standard">
<path project="openSUSE.org:Debian:5.0" repository="standard"/>
<arch>armv5el</arch>
<arch>i586</arch>
</repository>
<repository name="Ubuntu_9.04_standard">
<path project="openSUSE.org:Ubuntu:9.04" repository="standard"/>
<arch>armv5el</arch>
<arch>i586</arch>
</repository>
</project>
XML
This project has <useforbuild> disabled. This means that a package built in this project will not attempt to resolve dependencies from peer packages.
Now ensure the Ubuntu/Debian bootstrapped armv5el binaries are copied to the armv7el repo
echo ExportFilter: armel\.deb$ armv5el | osc -A $API meta prjconf Maemo:Fremantle:1.2:Bootstrap -F -
Maemo:Fremantle:1.2:Loaded
This project
osc -A $API meta prj Maemo:Fremantle:1.2:Loaded -F - <<XML
<project name="Maemo:Fremantle:1.2:Loaded">
<title>Fremantle 1.2 Loaded</title>
<description>
This project contains all the binaries used in addition to the
standard Nokia ones. They are built in Maemo:Fremantle:1.2:Bootstrap and
then copied into here.
</description>
<person role="maintainer" userid="Admin"/>
<person role="bugowner" userid="Admin"/>
<build>
<enable/>
</build>
<publish>
<disable/>
</publish>
<debuginfo>
<disable/>
</debuginfo>
<repository name="standard">
<arch>armv7el</arch>
<arch>i586</arch>
</repository>
</project>
XML
Maemo:Fremantle:1.2
This project is used as a target by applications. It is a multi-path project looking first in :Loaded and then in :Std
osc -A $API meta prj Maemo:Fremantle:1.2 -F - <<XML
<project name="Maemo:Fremantle:1.2">
<title>Fremantle 1.2</title>
<description>
This project is the OBS Fremantle target. It is based on the standard
Nokia binaries with some additional binaries needed for Fremantle.
</description>
<person role="maintainer" userid="Admin"/>
<person role="bugowner" userid="Admin"/>
<build>
<enable/>
</build>
<publish>
<disable/>
</publish>
<debuginfo>
<disable/>
</debuginfo>
<repository name="standard">
<path project="Maemo:Fremantle:1.2:Loaded" repository="standard"/>
<path project="Maemo:Fremantle:1.2:Std" repository="standard"/>
<arch>armv7el</arch>
<arch>i586</arch>
</repository>
</project>
XML
Since this project is a target it needs a prjconf: http://gitorious.org/m-obs/maemoconf
Extras
Binaries for :Loaded
scratchbox-fake
osc -A $API meta pkg Maemo:Fremantle:1.2:Bootstrap scratchbox-fake -e osc -A $API co Maemo:Fremantle:1.2:Bootstrap scratchbox-fake cd Maemo:Fremantle:1.2:Bootstrap/scratchbox-fake git clone git://gitorious.org/m-obs/scratchbox-fake.git cd scratchbox-fake dpkg-buildpackage -S -uc -us -I.git cd .. osc addremove osc commit -m"From git"
busybox
This just provides 'su' through busybox-login.
Stskeeps reports that there's a login pkg inside Nokia that would be better.
osc -A $API meta pkg Maemo:Fremantle:1.2:Bootstrap busybox -e osc -A $API co Maemo:Fremantle:1.2:Bootstrap busybox cd Maemo:Fremantle:1.2:Bootstrap/busybox git clone git://gitorious.org/m-obs/busybox.git cd busybox dpkg-buildpackage -S -uc -us -I.git cd .. osc addremove osc commit -m"From git"
fakeroot
osc -A $API meta pkg Maemo:Fremantle:1.2:Bootstrap fakeroot -e osc -A $API co Maemo:Fremantle:1.2:Bootstrap fakeroot cd Maemo:Fremantle:1.2:Bootstrap/fakeroot git clone git://gitorious.org/m-obs/fakeroot.git cd fakeroot dpkg-buildpackage -S -uc -us -I.git cd .. osc addremove osc commit -m"From git"
