OpenSuse Build Service/Fremantle Setup

(enable publishing and promote from bootstrap)
(not :Std:Loaded)
Line 249: Line 249:
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/i386/ -name *.deb | xargs -I@ ln @ i586/:full
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/i386/ -name *.deb | xargs -I@ ln @ i586/:full
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/armel/ -name *.deb | xargs -I@ ln @ armv7el/:full
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/armel/ -name *.deb | xargs -I@ ln @ armv7el/:full
-
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std:Loaded standard i586
+
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Loaded standard i586
-
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std:Loaded standard armv7el
+
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Loaded standard armv7el
== Extras ==
== Extras ==

Revision as of 14:32, 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>
    <enable/>
  </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 has the extra binaries needed for making the Fremantle SDK build in the OBS.

 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>
    <enable/>
  </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

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"

Promoting the Bootstrap to Loaded


cd /srv/obs/build/Maemo:Fremantle:1.2:Loaded/standard
mkdir -p i586/:full armv7el/:full

find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/all/ -name *.deb | xargs -I@ ln @ i586/:full
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/all/ -name *.deb | xargs -I@ ln @ armv7el/:full
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/i386/ -name *.deb | xargs -I@ ln @ i586/:full
find /srv/obs/repos/Maemo:/Fremantle:/1.2:/Bootstrap/Debian_5.0_standard/armel/ -name *.deb | xargs -I@ ln @ armv7el/:full
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Loaded standard i586
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Loaded standard armv7el


== Extras ==