Editing OpenSuse Build Service/Fremantle Setup

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 2: Line 2:
This currently refers to some inaccessible repos. I'll open them up as I get time.
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:
Approach:
-
* Copy all Nokia Fremantle Binaries to Maemo:Fremantle:1.2:Std
+
* Copy all Nokia Fremantle Binaries to Fremantle:1.1:Std
-
* Create Maemo:Fremantle:1.2:Loaded to hold additional binaries needed by OBS
+
* Create Fremantle:1.1:Bootstrap/<pkg> to create packages (use useforbuild = no?)
-
* Bootstrap needed packages using scratchbox. Put in Maemo:Fremantle:1.2:Loaded
+
* Create Fremantle:1.1:Loaded to include additional binaries needed by OBS
-
* Create Maemo:Fremantle:1.2 as the nominal target for :Extras and the main prjconf
+
* Create Fremantle:1.1 as the nominal target for :Extras and the main prjconf
-
 
+
-
* Do we need to rebuild Maemo:Fremantle:1.2:Bootstrap/<pkg> to re-create packages
+
(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 ==
+
=== Fremantle:1.1:Std ===
-
 
+
-
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 ===
+
<pre>
<pre>
-
# Specify the OBS we're working on
+
# Specify the OBS we're working on
-
API=http://build.obs.maemo.org/
+
API=http://api17/
-
# Get the Fremantle binaries
+
# Get the Fremantle binaries
-
mkdir -p /Downloads/fremantle1.2/
+
mkdir -p /Downloads/fremantle1.1/
-
cd /Downloads/fremantle1.2/
+
cd /Downloads/fremantle1.1/
-
wget -e robots=off --accept \*.deb --mirror --no-parent --progress=dot \
+
wget -e robots=off --accept \*.deb --mirror --no-parent --progress=dot \
-
--no-host-directories --cut-dirs=2 -nv \
+
  --no-host-directories --cut-dirs=2 -nv \
-
http://repository.maemo.org/pool/fremantle-update2/
+
  http://repository.maemo.org /pool/fremantle-update2/
-
# Prepare for the :full dir for the OBS
+
# Prepare for the :full dir for the OBS
-
OBS=/backend_storage/obs/fremantle1.2
+
mkdir all all/all all/armel all/i386
-
mkdir -p $OBS
+
find free non-free -name *armel.deb | xargs -I@ ln @ all/armel
 +
find free non-free -name *i386.deb | xargs -I@ ln @ all/i386
 +
find free non-free -name *all.deb | xargs -I@ ln @ all/all
-
REPO=/backend_storage/maemo-sdk-5/pool/maemo5.0
+
# On an OBS client
-
cd $OBS
+
osc -A $API meta prj Fremantle:1.1:Std -F - <<XML
-
mkdir -p armel_full i586_full
+
<project name="Fremantle:1.1:Std">
-
find $REPO -name *armel.deb | xargs -I@ ln @ armel_full
+
  <title>Fremantle 1.1</title>
-
find $REPO -name *i386.deb | xargs -I@ ln @ i586_full
+
  <description>
-
find $REPO -name *all.deb | xargs -I@ ln @ armel_full
+
The standard binaries from Nokia
-
find $REPO -name *all.deb | xargs -I@ ln @ i586_full#
+
  </description>
-
 
+
  <person role="maintainer" userid="Admin"/>
-
REPO=/backend_storage/maemo-sdk-nokia-binaries-5/
+
  <person role="bugowner" userid="Admin"/>
-
cd $OBS
+
  <build>
-
mkdir -p armel_full i586_full
+
    <enable/>
-
find $REPO -name *armel.deb | xargs -I@ ln @ armel_full
+
  </build>
-
find $REPO -name *i386.deb | xargs -I@ ln @ i586_full
+
  <publish>
-
find $REPO -name *all.deb | xargs -I@ ln @ armel_full
+
    <disable/>
-
find $REPO -name *all.deb | xargs -I@ ln @ i586_full
+
  </publish>
-
 
+
  <debuginfo>
-
# On an OBS client
+
    <disable/>
-
osc -A $API meta prj Maemo:Fremantle:1.2:Std -F - <<XML
+
  </debuginfo>
-
<project name="Maemo:Fremantle:1.2:Std">
+
  <repository name="standard">
-
  <title>Fremantle 1.2</title>
+
    <arch>armv7el</arch>
-
  <description>
+
    <arch>i586</arch>
-
The standard binaries from Nokia
+
  </repository>
-
  </description>
+
</project>
-
  <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
XML
# Back on OBS server
# Back on OBS server
# Copy the binaries into the new project
# Copy the binaries into the new project
-
cd /srv/obs/build/Maemo:Fremantle\:1.2\:Std/standard/
+
cd /srv/obs/build/Fremantle\:1.1\:Std/standard/
-
mkdir -p i586 armv7el
+
mkdir -p i586/:full armv7el/:full
-
ln -s $OBS/i586_full i586/:full
+
 
-
ln -s $OBS/armel_full armv7el/:full
+
ln /Downloads/fremantle1.1/all/armel/* armv7el/:full/
 +
ln /Downloads/fremantle1.1/all/all/* armv7el/:full/
-
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std standard i586
+
ln /Downloads/fremantle1.1/all/i386/* i586/:full/
-
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std standard armv7el
+
ln /Downloads/fremantle1.1/all/all/* i586/:full/
-
chown -R obsrun:obsrun /srv/obs/build/Maemo:Fremantle:1.2:Std
+
/usr/lib/obs/server/bs_admin --rescan-repository Fremantle:1.1:Std standard i586
 +
/usr/lib/obs/server/bs_admin --rescan-repository Fremantle:1.1:Std standard armv7el
 +
/usr/lib/obs/server/bs_admin --rescan-repository Fremantle:1.1:Std standard armv5el
 +
 
 +
chown -R obsrun:obsrun /srv/obs/build/Fremantle*
</pre>
</pre>
-
=== Maemo:Fremantle:1.2:Bootstrap ===
+
=== Fremantle:1.1:Bootstrap ===
<pre>
<pre>
# On an OBS client
# On an OBS client
-
osc -A $API meta prj Maemo:Fremantle:1.2:Bootstrap -F - <<XML
+
osc -A $API meta prj Fremantle:1.1:Bootstrap -F - <<XML
-
<project name="Maemo:Fremantle:1.2:Bootstrap">
+
<project name="Fremantle:1.1:Std">
-
   <title>Fremantle 1.2</title>
+
   <title>Fremantle 1.1</title>
   <description>
   <description>
The standard binaries from Nokia
The standard binaries from Nokia
Line 109: Line 89:
   </build>
   </build>
   <publish>
   <publish>
-
     <enable/>
+
     <disable/>
   </publish>
   </publish>
   <debuginfo>
   <debuginfo>
Line 120: Line 100:
     <path project="openSUSE.org:Debian:5.0" repository="standard"/>
     <path project="openSUSE.org:Debian:5.0" repository="standard"/>
     <arch>armv5el</arch>
     <arch>armv5el</arch>
 +
    <arch>armv7el</arch>
     <arch>i586</arch>
     <arch>i586</arch>
   </repository>
   </repository>
-
   <repository name="Ubuntu_9.04_standard">
+
   <repository name="Ubunty_9.04_standard">
     <path project="openSUSE.org:Ubuntu:9.04" repository="standard"/>
     <path project="openSUSE.org:Ubuntu:9.04" repository="standard"/>
     <arch>armv5el</arch>
     <arch>armv5el</arch>
 +
    <arch>armv7el</arch>
     <arch>i586</arch>
     <arch>i586</arch>
   </repository>
   </repository>
Line 133: Line 115:
Now ensure the Ubuntu/Debian bootstrapped armv5el binaries are copied to the armv7el repo
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 -
+
  echo ExportFilter: armel\.deb$ armv5el | osc -A $API meta prjconf Fremantle:1.1:Bootstrap -F -
</pre>
</pre>
-
=== Maemo:Fremantle:1.2:Loaded ===
 
-
 
-
This project has the extra binaries needed for making the Fremantle
 
-
SDK build in the OBS.
 
 +
=== Fremantle:1.1:Loaded ===
 +
This project
<pre>
<pre>
-
  osc -A $API meta prj Maemo:Fremantle:1.2:Loaded -F - <<XML
+
  osc -A $API meta prj Fremantle:1.1:Loaded -F - <<XML
-
<project name="Maemo:Fremantle:1.2:Loaded">
+
<project name="Fremantle:1.1:Loaded">
-
   <title>Fremantle 1.2 Loaded</title>
+
   <title>Fremantle 1.1 Loaded</title>
   <description>
   <description>
This project contains all the binaries used in addition to the
This project contains all the binaries used in addition to the
-
standard Nokia ones. They are built in Maemo:Fremantle:1.2:Bootstrap and
+
standard Nokia ones. They are built in Fremantle:1.1:Bootstrap and
then copied into here.
then copied into here.
   </description>
   </description>
Line 156: Line 136:
   </build>
   </build>
   <publish>
   <publish>
-
     <enable/>
+
     <disable/>
   </publish>
   </publish>
   <debuginfo>
   <debuginfo>
Line 169: Line 149:
</pre>
</pre>
-
=== Maemo:Fremantle:1.2 ===
+
=== Fremantle:1.1 ===
-
 
+
This project is used as a target by applications. It is a multi-path project looking first in :Loaded and then in :Std
-
This project is used as a target by applications. It is a multi-path
+
-
project looking first in :Loaded and then in :Std
+
<pre>
<pre>
-
osc -A $API meta prj Maemo:Fremantle:1.2 -F - <<XML
+
osc -A $API meta prj Fremantle:1.1 -F - <<XML
-
<project name="Maemo:Fremantle:1.2">
+
<project name="Fremantle:1.1">
-
   <title>Fremantle 1.2</title>
+
   <title>Fremantle 1.1</title>
   <description>
   <description>
This project is the OBS Fremantle target.  It is based on the standard
This project is the OBS Fremantle target.  It is based on the standard
Line 194: Line 172:
   </debuginfo>
   </debuginfo>
   <repository name="standard">
   <repository name="standard">
-
     <path project="Maemo:Fremantle:1.2:Loaded" repository="standard"/>
+
     <path project="Fremantle:1.1:Loaded" repository="standard"/>
-
     <path project="Maemo:Fremantle:1.2:Std" repository="standard"/>
+
     <path project="Fremantle:1.1:Std" repository="standard"/>
     <arch>armv7el</arch>
     <arch>armv7el</arch>
     <arch>i586</arch>
     <arch>i586</arch>
Line 204: Line 182:
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
+
https://dvcs.projects.maemo.org/git/?p=OBS/maemoConf;a=blob_plain;f=Maemo_Fremantle.conf;h=818bd5a0c9136d13e1bb698cfcf861f64522b1d1;hb=573b391ccecd8fef6e4f5328a272a3ab1c4cdee5
-
== Essential Binaries for :Loaded ==
 
-
=== scratchbox-fake ===
+
== Extras ==
 +
 
 +
Binaries for :Loaded
 +
 
<pre>
<pre>
-
cd /maemo/devel/obs-community/
+
scratchbox-fake
-
git clone git://gitorious.org/m-obs/scratchbox-fake.git
+
osc -A $API meta pkg Fremantle:1.1:Bootstrap scratchbox-fake -e
 +
osc -A $API co Fremantle:1.1:Bootstrap scratchbox-fake
 +
cd Fremantle:1.1:Bootstrap/scratchbox-fake
 +
git clone git@dvcs.projects.maemo.org:OBS/fremantle-deltas/scratchbox-fake
cd scratchbox-fake
cd scratchbox-fake
-
dpkg-buildpackage -b -uc -us -rfakeroot
+
dpkg-buildpackage -S -uc -us
cd ..
cd ..
 +
osc addremove
 +
osc commit -m"From git"
</pre>
</pre>
=== busybox ===
=== busybox ===
-
This provides 'su' and 'getopt' through busybox-fremantle
+
This just provides 'su' through busybox-login.
Stskeeps reports that there's a login pkg inside Nokia that would be better.
Stskeeps reports that there's a login pkg inside Nokia that would be better.
-
It may also be worth repackaging the linux-utils.
 
<pre>
<pre>
-
cd /maemo/devel/obs-community/
+
osc -A $API meta pkg Fremantle:1.1:Bootstrap busybox -e
-
git clone git://gitorious.org/m-obs/busybox.git
+
osc -A $API co Fremantle:1.1:Bootstrap busybox
 +
cd Fremantle:1.1:Bootstrap/busybox
 +
git clone git@dvcs.projects.maemo.org:OBS/fremantle-deltas/busybox
cd busybox
cd busybox
-
dpkg-buildpackage -b -uc -us -rfakeroot
+
dpkg-buildpackage -S -uc -us
cd ..
cd ..
 +
osc addremove
 +
osc commit -m"From git"
</pre>
</pre>
=== fakeroot ===
=== fakeroot ===
-
Fakeroot has had to be updated to 1.11 from Debian and various changes made. See the git log.
 
<pre>
<pre>
-
cd /maemo/devel/obs-community/
+
osc -A $API meta pkg Fremantle:1.1:Bootstrap fakeroot -e
-
git clone git://gitorious.org/m-obs/fakeroot.git
+
osc -A $API co Fremantle:1.1:Bootstrap fakeroot
 +
cd Fremantle:1.1:Bootstrap/fakeroot
 +
git clone git@dvcs.projects.maemo.org:OBS/fremantle-deltas/fakeroot
cd fakeroot
cd fakeroot
-
dpkg-buildpackage -b -uc -us -rfakeroot
+
dpkg-buildpackage -S -uc -us
cd ..
cd ..
 +
osc addremove
 +
osc commit -m"From git"
</pre>
</pre>
-
 
-
Other packages:
 
-
* http://packages.debian.org/lenny/diff
 
-
* maemo-optify http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/maemo-optify/0.2.1/
 
-
*
 
-
 
-
=== Promoting the Bootstrap to Loaded ===
 
-
 
-
<pre>
 
-
cd /maemo/devel/obs-community/
 
-
tar cvfz obs-bootstrap.tgz fakeroot_*.deb busybox-fremantle_*.deb scratchbox-fake_*.deb
 
-
</pre>
 
-
Now get this to the server and unpack it in /tmp
 
-
 
-
<pre>
 
-
 
-
cd /tmp
 
-
tar xf /backend_storage/obs-bootstrap.tgz
 
-
 
-
cd /srv/obs/build/Maemo:Fremantle:1.2:Loaded/standard
 
-
mkdir -p i586/:full armv7el/:full
 
-
ln /tmp/*armel*deb armv7el/:full/
 
-
ln /tmp/*all*deb armv7el/:full/
 
-
ln /tmp/*all*deb i586/:full/
 
-
ln /tmp/*i386*deb i586/: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 ==
 
-
 
-
<pre>
 
-
wget -e robots=off --mirror --no-parent --progress=dot  --no-host-directories --cut-dirs=5 -nv http://repository.maemo.org/extras/pool/fremantle/free/source/
 
-
</pre>
 
-
 
-
Then:
 
-
<pre>
 
-
find /mnt/backend_storage/extras/ -name *dsc -exec /root/obs_package.pl --project Extras:Testing \{} \;
 
-
</pre>
 
-
(This needs work - it uploads multiple versions and they go to 'excluded' state)
 
-
 
-
[[Category:OpenSuse build service]]
 

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)