OpenSuse Build Service/Fremantle Setup
(→Maemo:Fremantle:1.2:Bootstrap) |
|||
(18 intermediate revisions not shown) | |||
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 Fremantle:1. | + | * Copy all Nokia Fremantle Binaries to Maemo:Fremantle:1.2:Std |
- | * Create Fremantle:1. | + | * Create Maemo:Fremantle:1.2:Loaded to hold additional binaries needed by OBS |
- | * | + | * Bootstrap needed packages using scratchbox. Put in Maemo:Fremantle:1.2:Loaded |
- | * Create Fremantle:1. | + | * Create Maemo:Fremantle:1.2 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) | ||
- | |||
- | === Fremantle: | + | == 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 === | ||
<pre> | <pre> | ||
# Specify the OBS we're working on | # Specify the OBS we're working on | ||
Line 19: | Line 30: | ||
# Get the Fremantle binaries | # Get the Fremantle binaries | ||
- | mkdir -p /Downloads/fremantle1. | + | mkdir -p /Downloads/fremantle1.2/ |
- | cd /Downloads/fremantle1. | + | cd /Downloads/fremantle1.2/ |
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 | OBS=/backend_storage/obs/fremantle1.2 | ||
- | mkdir $OBS | + | mkdir -p $OBS |
+ | |||
+ | REPO=/backend_storage/maemo-sdk-5/pool/maemo5.0 | ||
+ | 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# | ||
+ | |||
+ | REPO=/backend_storage/maemo-sdk-nokia-binaries-5/ | ||
cd $OBS | cd $OBS | ||
mkdir -p armel_full i586_full | mkdir -p armel_full i586_full | ||
Line 39: | Line 59: | ||
osc -A $API meta prj Maemo:Fremantle:1.2:Std -F - <<XML | osc -A $API meta prj Maemo:Fremantle:1.2:Std -F - <<XML | ||
<project name="Maemo:Fremantle:1.2:Std"> | <project name="Maemo:Fremantle:1.2:Std"> | ||
- | <title>Fremantle 1. | + | <title>Fremantle 1.2</title> |
<description> | <description> | ||
The standard binaries from Nokia | The standard binaries from Nokia | ||
Line 74: | Line 94: | ||
</pre> | </pre> | ||
- | === Fremantle:1. | + | === Maemo:Fremantle:1.2:Bootstrap === |
<pre> | <pre> | ||
# On an OBS client | # On an OBS client | ||
Line 89: | Line 109: | ||
</build> | </build> | ||
<publish> | <publish> | ||
- | < | + | <enable/> |
</publish> | </publish> | ||
<debuginfo> | <debuginfo> | ||
Line 100: | Line 120: | ||
<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>i586</arch> | <arch>i586</arch> | ||
</repository> | </repository> | ||
- | <repository name=" | + | <repository name="Ubuntu_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>i586</arch> | <arch>i586</arch> | ||
</repository> | </repository> | ||
Line 118: | Line 136: | ||
</pre> | </pre> | ||
- | === Fremantle:1. | + | === Maemo:Fremantle:1.2:Loaded === |
- | This project | + | |
+ | This project has the extra binaries needed for making the Fremantle | ||
+ | SDK build in the OBS. | ||
+ | |||
<pre> | <pre> | ||
- | osc -A $API meta prj Fremantle:1. | + | osc -A $API meta prj Maemo:Fremantle:1.2:Loaded -F - <<XML |
- | <project name="Fremantle:1. | + | <project name="Maemo:Fremantle:1.2:Loaded"> |
- | <title>Fremantle 1. | + | <title>Fremantle 1.2 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 Fremantle:1. | + | standard Nokia ones. They are built in Maemo:Fremantle:1.2:Bootstrap and |
then copied into here. | then copied into here. | ||
</description> | </description> | ||
Line 135: | Line 156: | ||
</build> | </build> | ||
<publish> | <publish> | ||
- | < | + | <enable/> |
</publish> | </publish> | ||
<debuginfo> | <debuginfo> | ||
Line 148: | Line 169: | ||
</pre> | </pre> | ||
- | === Fremantle:1. | + | === 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 | + | |
+ | 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 Fremantle:1. | + | osc -A $API meta prj Maemo:Fremantle:1.2 -F - <<XML |
- | <project name="Fremantle:1. | + | <project name="Maemo:Fremantle:1.2"> |
- | <title>Fremantle 1. | + | <title>Fremantle 1.2</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 171: | Line 194: | ||
</debuginfo> | </debuginfo> | ||
<repository name="standard"> | <repository name="standard"> | ||
- | <path project="Fremantle:1. | + | <path project="Maemo:Fremantle:1.2:Loaded" repository="standard"/> |
- | <path project="Fremantle:1. | + | <path project="Maemo:Fremantle:1.2:Std" repository="standard"/> |
<arch>armv7el</arch> | <arch>armv7el</arch> | ||
<arch>i586</arch> | <arch>i586</arch> | ||
Line 181: | Line 204: | ||
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 | |
+ | == Essential Binaries for :Loaded == | ||
- | == | + | === scratchbox-fake === |
- | + | ||
- | + | ||
- | + | ||
<pre> | <pre> | ||
- | + | cd /maemo/devel/obs-community/ | |
- | + | git clone git://gitorious.org/m-obs/scratchbox-fake.git | |
- | + | ||
- | cd | + | |
- | git clone git | + | |
cd scratchbox-fake | cd scratchbox-fake | ||
- | dpkg-buildpackage - | + | dpkg-buildpackage -b -uc -us -rfakeroot |
cd .. | cd .. | ||
- | |||
- | |||
</pre> | </pre> | ||
=== busybox === | === busybox === | ||
- | This | + | This provides 'su' and 'getopt' through busybox-fremantle |
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/ | |
- | + | git clone git://gitorious.org/m-obs/busybox.git | |
- | cd | + | |
- | git clone git | + | |
cd busybox | cd busybox | ||
- | dpkg-buildpackage - | + | dpkg-buildpackage -b -uc -us -rfakeroot |
cd .. | cd .. | ||
- | |||
- | |||
</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/ | |
- | + | git clone git://gitorious.org/m-obs/fakeroot.git | |
- | cd | + | |
- | git clone git | + | |
cd fakeroot | cd fakeroot | ||
- | dpkg-buildpackage - | + | dpkg-buildpackage -b -uc -us -rfakeroot |
cd .. | cd .. | ||
- | |||
- | |||
</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]] |
Latest revision as of 13:30, 18 June 2010
Contents |
[edit] 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:Loaded to hold additional binaries needed by OBS
- Bootstrap needed packages using scratchbox. Put in Maemo:Fremantle:1.2:Loaded
- Create Maemo:Fremantle:1.2 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)
[edit] Gitorious Project
The config and modified source needed to make the OBS work with Fremantle is kept:
http://gitorious.org/m-obs
[edit] Setup the projects
[edit] 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 OBS=/backend_storage/obs/fremantle1.2 mkdir -p $OBS REPO=/backend_storage/maemo-sdk-5/pool/maemo5.0 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# REPO=/backend_storage/maemo-sdk-nokia-binaries-5/ 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
[edit] 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 -
[edit] 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
[edit] 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
[edit] Essential Binaries for :Loaded
[edit] scratchbox-fake
cd /maemo/devel/obs-community/ git clone git://gitorious.org/m-obs/scratchbox-fake.git cd scratchbox-fake dpkg-buildpackage -b -uc -us -rfakeroot cd ..
[edit] busybox
This provides 'su' and 'getopt' through busybox-fremantle
Stskeeps reports that there's a login pkg inside Nokia that would be better. It may also be worth repackaging the linux-utils.
cd /maemo/devel/obs-community/ git clone git://gitorious.org/m-obs/busybox.git cd busybox dpkg-buildpackage -b -uc -us -rfakeroot cd ..
[edit] fakeroot
Fakeroot has had to be updated to 1.11 from Debian and various changes made. See the git log.
cd /maemo/devel/obs-community/ git clone git://gitorious.org/m-obs/fakeroot.git cd fakeroot dpkg-buildpackage -b -uc -us -rfakeroot cd ..
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/
[edit] Promoting the Bootstrap to Loaded
cd /maemo/devel/obs-community/ tar cvfz obs-bootstrap.tgz fakeroot_*.deb busybox-fremantle_*.deb scratchbox-fake_*.deb
Now get this to the server and unpack it in /tmp
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/
Then:
find /mnt/backend_storage/extras/ -name *dsc -exec /root/obs_package.pl --project Extras:Testing \{} \;
(This needs work - it uploads multiple versions and they go to 'excluded' state)
- This page was last modified on 18 June 2010, at 13:30.
- This page has been accessed 13,406 times.