OpenSuse Build Service/MeeGo Setup

[edit] MeeGo

In general the community OBS should map to the release OBS.

The release OBS projects are:

  • MeeGo:1.0
  • MeeGo:1.0:Core
  • MeeGo:1.0:Core:Update
  • MeeGo:1.0:Core:Update:Testing
  • MeeGo:1.0:Extra
  • MeeGo:1.0:Extra:Update
  • MeeGo:1.0:Extra:Update:Testing
  • MeeGo:1.0:Handset
  • MeeGo:1.0:IVI
  • MeeGo:1.0:IVI:Update
  • MeeGo:1.0:IVI:Update:Testing
  • MeeGo:1.0:Netbook
  • MeeGo:1.0:Netbook:Update
  • MeeGo:1.0:Netbook:Update:Testing
  • MeeGo:1.0:Staging
  • MeeGo:1.0:non-oss
  • MeeGo:1.0:non-oss:Update
  • MeeGo:1.0:non-oss:Update:Testing

We will assume that there are no naming conflicts and consolidate these into the following build targets:

  • MeeGo_1.0
  • MeeGo_1.0_Update
  • MeeGo_1.0_Update_Testing (? do we need this)

and then provide a corresponding virtual target that always points to the current weekly snapshot:

  • MeeGo_Current

and 2 named snapshots for previous releases:1.0.80.1.20100514.1

  • MeeGo_1.0.80.1.20100514.1

See: http://wiki.meego.com/Release_Engineering/Release_Versioning


[edit] MeeGo:1.0:Core

# Specify the OBS we're working on
API=http://api.obs.maemo.org/

# Get the binaries
mkdir -p /backend_storage/MeeGo/1.0/ia32
cd  /backend_storage/MeeGo/1.0/ia32
wget -e robots=off --accept \*.rpm --mirror --no-parent --progress=dot \
 --no-host-directories --cut-dirs=7 -nv \
 http://repo.m2.org/MeeGo/releases/1.0/core/repos/ia32/packages/


# Prepare for the :full dir for the OBS
OBS=/backend_storage/obs/meego1.0
mkdir -p $OBS/i586_full
REPO=/backend_storage/MeeGo/1.0/ia32/
cd $OBS
find $REPO -name *.rpm | xargs -I@ ln @ i586_full

# Not done (11 Jun)
OBS=/backend_storage/obs/meego1.0
mkdir -p $OBS/armel_full
REPO=/backend_storage/MeeGo/1.0/armv7l
cd $OBS
find $REPO -name *rpm | xargs -I@ ln @ armel_full



# On an OBS client
osc -A $API meta prj MeeGo:1.0:Core -F - <<XML
<project name="MeeGo:1.0:Core">
  <title>MeeGo 1.0</title>
  <description>
MeeGo from http://repo.m2.org/MeeGo/releases/1.0/core/repos
  </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/MeeGo\:1.0\:Core/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 MeeGo:1.0:Core standard i586
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:1.0:Core standard armv7el

chown -R obsrun:obsrun /srv/obs/build/MeeGo:1.0:Core

Since this project is a target it needs a prjconf

[edit] MeeGo Current

On the be we must have done:

ln -s /backend_storage/obs/meego/current/armv7l_full/ /srv/obs/build/MeeGo:current/standard/armv7el/:full
ln -s /backend_storage/obs/meego/current/ia64_full/ /srv/obs/build/MeeGo:current/standard/ia64/:full


build=1.0.90.4.20100928.1
BASE=/backend_storage/obs/meego
DL=$BASE/${build}/
PRJ=$BASE/current

# download
FROM="mirrors.kernel.org"
FROMDIR="/meego/builds/1.0.90/${build}/"

mkdir -p $DL
cd $DL

LFTPCOMMAND="mirror --parallel=2 -c -i .rpm -x /images/ -x /debug/ $FROMDIR ."
lftp -c "open -e '$LFTPCOMMAND' $FROM"

mkdir -p $BASE/delete_me
mv $BASE/w-2 $BASE/delete_me
# rm -rf delete_me &
mv $BASE/w-1 $BASE/w-2
mv $BASE/current $BASE/w-1

mkdir -p $BASE/current/armv5l_full
mkdir -p $BASE/current/armv7l_full
mkdir -p $BASE/current/i586_full

find $BASE/${build}/core/repos/ia32/ -name *rpm | xargs -I@ ln @ $BASE/current/i586_full
find $BASE/${build}/core/repos/armv5tel/ -name *rpm | xargs -I@ ln @ $BASE/current/armv5l_full
find $BASE/${build}/core/repos/armv7l/ -name *rpm | xargs -I@ ln @ $BASE/current/armv7l_full

chown -R obsrun:obsrun $BASE/current/

Now on the be:

/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:current standard i586
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:current standard armv5el
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:current standard armv7el