<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=194.237.7.146</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=194.237.7.146"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/194.237.7.146"/>
	<updated>2026-04-21T23:30:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Summer%2712_Device_Program/Qt_5_Mobile_Projects&amp;diff=38380</id>
		<title>Summer&#039;12 Device Program/Qt 5 Mobile Projects</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Summer%2712_Device_Program/Qt_5_Mobile_Projects&amp;diff=38380"/>
		<updated>2012-05-30T05:45:04Z</updated>

		<summary type="html">&lt;p&gt;194.237.7.146: /* Submissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are looking for brave &amp;amp; experienced developers willing to port or develop apps running on top of Qt 5 before its finally release. Currently [http://qt-project.org/wiki/Qt-5-Alpha Qt 5 alpha] is released, the beta version is expected during June and the final in August/September.&lt;br /&gt;
&lt;br /&gt;
The main motivations for this activity are mixture of:&lt;br /&gt;
* Helping testing Qt 5 itself and providing feedback while it&#039;s alpha/beta.&lt;br /&gt;
* Helping testing the [http://qt-project.org/wiki/Qt-5-on-Nokia-N9 Qt 5 libraries for the Nokia N9].&lt;br /&gt;
* Getting stories of real apps ported from Qt 4 to Qt 5. Trivial? Horrible? What are the pain points? And what about Qt Creator and the documentation available?&lt;br /&gt;
* Getting developers to play with the new toys: Qt Quick 2, textures, transitions, graphics / video effects, raw OpenGL ES stuff, post-Mobility APIs, the new Qt WebKit, JSON DB, ongoing R&amp;amp;D on PhoneGap own JQuery based experiments...&lt;br /&gt;
&lt;br /&gt;
This is the same motivation we have for the [http://qt-project.org/wiki/Category:QtonPi QtonPi] program, but for mobile development the N9 provides a touch display and many more sensors and hardware features that bare bones boards are missing.&lt;br /&gt;
&lt;br /&gt;
== How to apply ==&lt;br /&gt;
&lt;br /&gt;
Developers with a good Qt development track must apply to that thread pointing to any of these sources:&lt;br /&gt;
* Your Qt 4 applications, all the better if they are ready for mobile e.g. with QML UI.&lt;br /&gt;
* Your maemo.org profile, Qt DevNet profile, Ohloh profile or anything showing who are you and what have you done in terms of development and community involvement.&lt;br /&gt;
&lt;br /&gt;
Questions and feedback about the submissions are welcome in [http://talk.maemo.org/showthread.php?t=84591 this forum thread]. &lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
&lt;br /&gt;
Add yourself at the end of the queue and follow this template:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;[http://yourURL Project name]&#039;&#039;&#039;, by [http://yourURL Name Surname] (nick) - Short description + other related links.&lt;br /&gt;
# &#039;&#039;&#039;[http://www.cmake.org CMake (cross compiling with Qt 5)]&#039;&#039;&#039; by [http://steveire.wordpress.com Stephen Kelly] (steveire) - Qt maintainer, KDE developer and Qt based library developer.&lt;br /&gt;
# &#039;&#039;&#039;[http://seguridad.cenditel.gob.ve/firmaxml FirmaXML (QML desktop app for BDOC digital signatures using cryptographic hardware)]&#039;&#039;&#039; by [https://qt-project.org/member/15801 Antonio Araujo Brett] (antonioaraujob) - Qt and information security developer with free and open source tools. Qt Ambassador.&lt;br /&gt;
# &#039;&#039;&#039;[http://store.ovi.com.cn/content/262170 MagicTag (Anylize song wave and tag it with the right tag)]&#039;&#039;&#039;, by [https://qt-project.org/member/2885 Tong Zhang] (lovewilliam) - Experienced at qt development and embedded system. Had been contributed a lot of patches to the community. Qt Ambassador.&lt;br /&gt;
# &#039;&#039;&#039;[http://qt-apps.org/usermanager/search.php?username=embitel&amp;amp;action=contents  Some free apps on Qt-apps]&#039;&#039;&#039;, by [https://qt-project.org/member/4741 Manoj Agrawal] (manoj) - Nokia Certified Qt Specialist, Qt Ambassador and QtOnPi member. Created many complex GUI applications and Qt widgets on desktop and embedded systems. Also created a App Store kind of trial application for one client who proposed it to Nokia.&lt;br /&gt;
# &#039;&#039;&#039;[http://store.ovi.com/content/167633 fMobi (Qt/QML app for Facebook)]&#039;&#039;&#039;, by [http://talk.maemo.org/member.php?u=47953 Juuso Kosonen] - [https://qt-project.org/member/4632 Qt Profile] (jkosonen) - Experienced at qt/qml development to mobile. I have plenty of apps already available from [http://store.ovi.com/publisher/JiiKoo Nokia Store]. Qt Ambassador.&lt;br /&gt;
# &#039;&#039;&#039;[https://projects.developer.nokia.com/gNewsReader gNewsReader]&#039;&#039;&#039;, by [http://twitter.com/yogeshwarp Yogeshwar P] (yogeshwarp) - gNewsReader is fully featured Google reader client with easy and fast UI written in QML and utilizing QT-Components. also supports sharing links to Pocket/Instapaer/Facebook and Twitter. Related links [http://store.ovi.com/content/185552], [http://n9-apps.com/gnewsreader]. plan to port this to Qt 5&lt;br /&gt;
# &#039;&#039;&#039;[http://www.digitalfanatics.org/projects/qt_tutorial/ Tutorials and Docs]&#039;&#039;&#039;, by [http://thelins.se/johan/blog Johan Thelin] (e8johan) - Qt5 and QML needs to be documented for it to gain a larger audience. I&#039;m willing to do this.&lt;/div&gt;</summary>
		<author><name>194.237.7.146</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=OpenSuse_Build_Service/Installation&amp;diff=30374</id>
		<title>OpenSuse Build Service/Installation</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=OpenSuse_Build_Service/Installation&amp;diff=30374"/>
		<updated>2010-07-07T12:22:39Z</updated>

		<summary type="html">&lt;p&gt;194.237.7.146: /* Networking Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo OBS Cluster Installation Notes =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Maemo OBS Clusters are divided into 3 instances:&lt;br /&gt;
* &#039;&#039;&#039;Frontend&#039;&#039;&#039; – Containing Webclient, OBS API, Mysql server&lt;br /&gt;
* &#039;&#039;&#039;Backend/Repository Server&#039;&#039;&#039; – Where OBS-Server, dispatcher, scheduler and repository server are installed&lt;br /&gt;
* &#039;&#039;&#039;Workers&#039;&#039;&#039; – Installation of obs-worker package&lt;br /&gt;
&lt;br /&gt;
This Installation Notes covers OBS installation and setup for &#039;&#039;&#039;version 1.7&#039;&#039;&#039;.  You can always refer to latest documentation also available on-line: http://gitorious.org/opensuse/build-service/blobs/raw/master/dist/README.SETUP&lt;br /&gt;
&lt;br /&gt;
== Networking Overview ==&lt;br /&gt;
&lt;br /&gt;
The Front End (fe) machine provides two major services: &lt;br /&gt;
* the webui on build.obs and&lt;br /&gt;
* the API on apo.obs;&lt;br /&gt;
It is also a useful holding point for the download service on download.obs&lt;br /&gt;
&lt;br /&gt;
The Back End (be) machine provides the backend services including the schedulers, source server and repo server. The repo server (used by the workers to get required rpms) also doubles as the download server via a reverse-proxy on the fe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
10.1.1.1        host.obs.maemo.org&lt;br /&gt;
10.1.1.10       fe.obs.maemo.org build.obs.maemo.org api.obs.maemo.org download.obs.maemo.org&lt;br /&gt;
10.1.1.11       be.obs.maemo.org src.obs.maemo.org repo.obs.maemo.org&lt;br /&gt;
10.1.1.51       w1.obs.maemo.org&lt;br /&gt;
10.1.1.52       w2.obs.maemo.org&lt;br /&gt;
10.1.1.53       w3.obs.maemo.org&lt;br /&gt;
10.1.1.54       w4.obs.maemo.org&lt;br /&gt;
10.1.1.55       w5.obs.maemo.org&lt;br /&gt;
10.1.1.56       w6.obs.maemo.org&lt;br /&gt;
10.1.1.57       w7.obs.maemo.org&lt;br /&gt;
10.1.1.58       w8.obs.maemo.org&lt;br /&gt;
10.1.1.59       w9.obs.maemo.org&lt;br /&gt;
10.1.1.60       w10.obs.maemo.org&lt;br /&gt;
10.1.1.61       w11.obs.maemo.org&lt;br /&gt;
10.1.1.62       w12.obs.maemo.org&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating Xen VMs ==&lt;br /&gt;
&lt;br /&gt;
Based on http://en.opensuse.org/Build_Service/KIWI/Cookbook&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUSE_11.2/ Virtualization:Appliances&lt;br /&gt;
zypper refresh&lt;br /&gt;
zypper in kiwi kiwi-templates kiwi-desc-xenboot squashfs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create some xen volumes&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
lvcreate -L 10G VG_data -n fe_root&lt;br /&gt;
lvcreate -L 2G  VG_data -n fe_swap&lt;br /&gt;
mkswap /dev/VG_data/fe_swap&lt;br /&gt;
&lt;br /&gt;
lvcreate -L 10G VG_data -n be_root&lt;br /&gt;
lvcreate -L 2G  VG_data -n be_swap&lt;br /&gt;
mkswap /dev/VG_data/be_swap&lt;br /&gt;
&lt;br /&gt;
lvcreate -L 10G VG_data -n w1_root&lt;br /&gt;
lvcreate -L 2G  VG_data -n w1_swap&lt;br /&gt;
mkswap /dev/VG_data/w1_swap&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare an opensuse minimal image:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
ROOTFS=/data/11.2min/image-root&lt;br /&gt;
mkdir /data/11.2min&lt;br /&gt;
kiwi --prepare suse-11.2-JeOS --root $ROOTFS --add-profile xenFlavour --add-package less --add-package iputils&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the config &amp;amp; modules:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
ROOTFS=/data/11.2min/image-root&lt;br /&gt;
cp -a /lib/modules/2.6.31.12-0.2-xen $ROOTFS/lib/modules/&lt;br /&gt;
&lt;br /&gt;
echo default 10.1.1.1 &amp;gt; $ROOTFS/etc/sysconfig/network/routes&lt;br /&gt;
echo NETCONFIG_DNS_POLICY=\&amp;quot;\&amp;quot; &amp;gt;&amp;gt; $ROOTFS/etc/sysconfig/network/config&lt;br /&gt;
echo nameserver 8.8.8.8 &amp;gt; $ROOTFS/etc/resolv.conf&lt;br /&gt;
echo default 10.1.1.1 &amp;gt; $ROOTFS/etc/sysconfig/network/routes&lt;br /&gt;
cat &amp;lt;&amp;lt; EOF &amp;gt;$ROOTFS/etc/sysconfig/network/ifcfg-eth0&lt;br /&gt;
BOOTPROTO=&#039;static&#039;&lt;br /&gt;
BROADCAST=&#039;&#039;&lt;br /&gt;
STARTMODE=&#039;onboot&#039;&lt;br /&gt;
EOF&lt;br /&gt;
echo /dev/xvda1 swap swap defaults 0 0 &amp;gt;&amp;gt; $ROOTFS/etc/fstab&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy to each of the VM root disks&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
mkfs -text3 /dev/VG_data/fe_root&lt;br /&gt;
mount /dev/VG_data/fe_root /mnt/lvm&lt;br /&gt;
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/&lt;br /&gt;
echo fe.obs.maemo.org &amp;gt; /mnt/lvm/etc/HOSTNAME&lt;br /&gt;
echo &amp;quot;IPADDR=&#039;10.1.1.10/24&#039;&amp;quot; &amp;gt;&amp;gt; /mnt/lvm/etc/sysconfig/network/ifcfg-eth0&lt;br /&gt;
umount /mnt/lvm&lt;br /&gt;
&lt;br /&gt;
mkfs -text3 /dev/VG_data/be_root&lt;br /&gt;
mount /dev/VG_data/be_root /mnt/lvm&lt;br /&gt;
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/&lt;br /&gt;
echo be.obs.maemo.org &amp;gt; /mnt/lvm/etc/HOSTNAME&lt;br /&gt;
echo &amp;quot;IPADDR=&#039;10.1.1.11/24&#039;&amp;quot; &amp;gt;&amp;gt; /mnt/lvm/etc/sysconfig/network/ifcfg-eth0&lt;br /&gt;
umount /mnt/lvm&lt;br /&gt;
&lt;br /&gt;
mkfs -text3 /dev/VG_data/w1_root&lt;br /&gt;
mount /dev/VG_data/w1_root /mnt/lvm&lt;br /&gt;
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/&lt;br /&gt;
echo w1.obs.maemo.org &amp;gt; /mnt/lvm/etc/HOSTNAME&lt;br /&gt;
echo &amp;quot;IPADDR=&#039;10.1.1.51/24&#039;&amp;quot; &amp;gt;&amp;gt; /mnt/lvm/etc/sysconfig/network/ifcfg-eth0&lt;br /&gt;
umount /mnt/lvm&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure some Xen VM configs&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
name=&#039;fe&#039;&lt;br /&gt;
disk=[&#039;phy:/dev/VG_data/fe_root,xvda2,w&#039;, &#039;phy:/dev/VG_data/fe_swap,xvda1,w&#039;]&lt;br /&gt;
vif=[&#039;mac=0D:16:3E:40:B5:FE&#039;]&lt;br /&gt;
memory=&#039;1024&#039;&lt;br /&gt;
&lt;br /&gt;
root=&#039;/dev/xvda2 ro&#039;&lt;br /&gt;
kernel=&#039;/boot/vmlinuz-2.6.31.12-0.2-xen&#039;&lt;br /&gt;
ramdisk=&#039;/boot/initrd-2.6.31.12-0.2-xen&#039;&lt;br /&gt;
extra=&#039;clocksource=jiffies console=hvc0 xencons=tty&#039;&lt;br /&gt;
&lt;br /&gt;
on_poweroff=&#039;destroy&#039;&lt;br /&gt;
on_reboot=&#039;restart&#039;&lt;br /&gt;
on_crash=&#039;restart&#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And start them:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
xm create /etc/xen/fe.cfg&lt;br /&gt;
xm create /etc/xen/be.cfg&lt;br /&gt;
xm create /etc/xen/w1.cfg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interim config ==&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
zypper in wget less iputils terminfo emacs &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing the Backend ==&lt;br /&gt;
&lt;br /&gt;
On this host we need also to setup openSuse Tools repository:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
cd /etc/zypp/repos.d/;&lt;br /&gt;
wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo&lt;br /&gt;
zypper ref&lt;br /&gt;
# Accept the trust key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
zypper in obs-server obs-signer obs-utils createrepo dpkg nfs-client &lt;br /&gt;
# obs-server brings these other packages as dependency. This is just for you to notice which packages are needed for Backend installation&lt;br /&gt;
# createrepo &amp;amp; dpkg are only reccomends&lt;br /&gt;
# nfs client is needed as we use an nfs share for host/be interchange&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Configure Scheduler architectures&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/sysconfig/obs-server&lt;br /&gt;
OBS_SCHEDULER_ARCHITECTURES=&amp;quot;i586 armv5el armv7el“&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/lib/obs/server/BSConfig.pm needs to point to correct server names corresponding to source server, where workers are going to download the source, and the repository server, where RPM repos are going to be shered to users.&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /usr/lib/obs/server/BSConfig.pm&lt;br /&gt;
#add&lt;br /&gt;
$hostname=&amp;quot;be.obs.maemo.org&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
our $srcserver = &amp;quot;http://src.obs.maemo.org:5352&amp;quot;;&lt;br /&gt;
our $reposerver = &amp;quot;http://repo.obs.maemo.org:5252&amp;quot;;&lt;br /&gt;
our $repodownload = &amp;quot;http://$hostname/repositories&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure services as deamons&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
chkconfig --add obsrepserver obssrcserver obsscheduler obsdispatcher obspublisher obswarden obssigner&lt;br /&gt;
&lt;br /&gt;
#Check them&lt;br /&gt;
chkconfig -l obsrepserver obssrcserver obsscheduler obsdispatcher obspublisher&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Start Services&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
   rcobsrepserver start&lt;br /&gt;
   rcobssrcserver start&lt;br /&gt;
   rcobsscheduler start&lt;br /&gt;
   rcobsdispatcher start&lt;br /&gt;
   rcobspublisher  start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For version 1.7 there are a new services. You can start them as well:&lt;br /&gt;
* &#039;&#039;&#039;obswarden&#039;&#039;&#039;&lt;br /&gt;
   It checks if build hosts are dieing and cleans up hanging builds&lt;br /&gt;
* &#039;&#039;&#039;obssigner&#039;&#039;&#039;&lt;br /&gt;
   It is used to sign packages via the obs-sign daemon. You need to configure&lt;br /&gt;
   it in BSConfig.pm before you can use it.&lt;br /&gt;
* &#039;&#039;&#039;obsservice&#039;&#039;&#039;&lt;br /&gt;
   The is the source service daemon. OBS 1.7 just comes with a download&lt;br /&gt;
   service so far. This feature is considered to be experimental so far,&lt;br /&gt;
   but can be already extended with own services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install Lighttpd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lighttpd also needs to be available on backend server. This is required to provide directory listing on the repositories available on this server when an http/s request to maemo-repo is made through web ui.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt; &lt;br /&gt;
zypper in lighttpd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a new file under /etc/lighttpd/vhosts.d/. It can be obs.conf as well, and add:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/lighttpd/vhosts.d/obs.conf&lt;br /&gt;
&lt;br /&gt;
$HTTP[&amp;quot;host&amp;quot;] =~ &amp;quot;repo.obs.maemo.org&amp;quot; {&lt;br /&gt;
  server.name = &amp;quot;repo.obs.maemo.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  server.document-root = &amp;quot;/srv/obs/repos/&amp;quot;&lt;br /&gt;
  dir-listing.activate = &amp;quot;enable&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable vhosts, remember to &#039;&#039;&#039;uncomment&#039;&#039;&#039; the following in the &#039;custom includes&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/lighttpd/lighttpd.conf&lt;br /&gt;
##&lt;br /&gt;
  ## custom includes like vhosts.&lt;br /&gt;
  ##&lt;br /&gt;
  #include &amp;quot;conf.d/config.conf&amp;quot;&lt;br /&gt;
  # following line uncommented as per&lt;br /&gt;
  # /usr/share/doc/packages/obs-api/README.SETUP&lt;br /&gt;
  include_shell &amp;quot;cat vhosts.d/*.conf&amp;quot;  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start lighttpd&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
#first add it as deamon&lt;br /&gt;
chkconfig --add lighttpd&lt;br /&gt;
rclighttpd start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing the Frontend (WebUI and API) ==&lt;br /&gt;
&lt;br /&gt;
Start with a minimal Suse install and then add Tools repository where OBS 1.7 is available.&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
cd /etc/zypp/repos.d/;&lt;br /&gt;
wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo&lt;br /&gt;
zypper ref&lt;br /&gt;
# Accept the trust key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install obs-api (It&#039;s going to install lighttpd webserver by dependency for you).&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
zypper in obs-api memcached&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup Mysql&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mysql server needs to be installed and configured to start as deamon&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
chkconfig --add mysql&lt;br /&gt;
rcmysql start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Setup a secure installation, if it&#039;s the first time starting mysql&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
/usr/bin/mysql_secure_installation&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The frontend instance holds 2 applications, the api and the webui. Each one need a database created&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
mysql&amp;gt; create database api_production;&lt;br /&gt;
mysql&amp;gt; create database webui_production;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add obs user to handle these databases&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
GRANT all privileges&lt;br /&gt;
      ON api_production.* &lt;br /&gt;
      TO &#039;obs&#039;@&#039;%&#039;, &#039;obs&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;************&#039;;&lt;br /&gt;
GRANT all privileges&lt;br /&gt;
      ON webui_production.* &lt;br /&gt;
      TO &#039;obs&#039;@&#039;%&#039;, &#039;obs&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;************&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Configure your MySQL user and password in the &amp;quot;production:&amp;quot; section of the api config: &lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /srv/www/obs/api/config/database.yml&lt;br /&gt;
#change the production section&lt;br /&gt;
production:&lt;br /&gt;
  adapter: mysql&lt;br /&gt;
  database: api_production&lt;br /&gt;
  username: obs&lt;br /&gt;
  password: ************&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Do the same for the webui. It&#039;s configured, by default to use sqlite, but since we&#039;re configuring the cluster for production environment, let&#039;s bind it to mysql:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /srv/www/obs/webui/config/database.yml&lt;br /&gt;
#change the production section&lt;br /&gt;
production:&lt;br /&gt;
  adapter: mysql&lt;br /&gt;
  database: webui_production&lt;br /&gt;
  username: obs&lt;br /&gt;
  password: ************&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Populate the database&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
cd /srv/www/obs/api/&lt;br /&gt;
RAILS_ENV=&amp;quot;production&amp;quot; rake db:migrate&lt;br /&gt;
&lt;br /&gt;
cd /srv/www/obs/webui/&lt;br /&gt;
RAILS_ENV=&amp;quot;production&amp;quot; rake db:migrate&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can check the migration was successful verifying the “migrated” message at the end of each statement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup and configure lighttpd for the api and webui&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to setup the correct hostnames to where webui, api and repo server are going to point to&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/lighttpd/vhosts.d/obs.conf&lt;br /&gt;
$HTTP[&amp;quot;host&amp;quot;] =~ &amp;quot;build&amp;quot; {&lt;br /&gt;
  rails_app   = &amp;quot;webui&amp;quot;&lt;br /&gt;
  rails_root  = &amp;quot;/srv/www/obs/webui&amp;quot;&lt;br /&gt;
  rails_procs = 3&lt;br /&gt;
  # production/development are typical values here&lt;br /&gt;
  rails_mode  = &amp;quot;production&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log_root = &amp;quot;/srv/www/obs/webui/log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  include &amp;quot;vhosts.d/rails.inc&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
$HTTP[&amp;quot;host&amp;quot;] =~ &amp;quot;api&amp;quot; {&lt;br /&gt;
  rails_app   = &amp;quot;api&amp;quot;&lt;br /&gt;
  rails_root  = &amp;quot;/srv/www/obs/api&amp;quot;&lt;br /&gt;
  rails_procs = 3&lt;br /&gt;
  # production/development are typical values here&lt;br /&gt;
  rails_mode  = &amp;quot;production&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  log_root = &amp;quot;/srv/www/obs/api/log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  include &amp;quot;vhosts.d/rails.inc&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
$HTTP[&amp;quot;host&amp;quot;] =~ &amp;quot;download&amp;quot; {&lt;br /&gt;
# This should point to an rsync populated download repo&lt;br /&gt;
#  server.name = &amp;quot;download.obs.maemo.org&amp;quot;&lt;br /&gt;
#  server.document-root = &amp;quot;/srv/obs/repos/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  proxy.server = ( &amp;quot;&amp;quot; =&amp;gt; ( (&lt;br /&gt;
        &amp;quot;host&amp;quot; =&amp;gt; &amp;quot;10.1.1.11&amp;quot;,&lt;br /&gt;
        &amp;quot;port&amp;quot; =&amp;gt; 80&lt;br /&gt;
      ))&lt;br /&gt;
  )&lt;br /&gt;
}&lt;br /&gt;
/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable these vhosts, make sure to &#039;&#039;&#039;uncomment&#039;&#039;&#039; the following in the &#039;custom includes&#039; section at the bottom of /etc/lighttpd/lighttpd.conf:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/lighttpd/lighttpd.conf&lt;br /&gt;
##&lt;br /&gt;
  ## custom includes like vhosts.&lt;br /&gt;
  ##&lt;br /&gt;
  #include &amp;quot;conf.d/config.conf&amp;quot;&lt;br /&gt;
  # following line uncommented as per&lt;br /&gt;
  # /usr/share/doc/packages/obs-api/README.SETUP&lt;br /&gt;
  include_shell &amp;quot;cat vhosts.d/*.conf&amp;quot;  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Also, the modules &amp;quot;mod_magnet&amp;quot;, &amp;quot;mod_rewrite&amp;quot; and fastcgi need to be enabled by uncommenting the corresponding lines in /etc/lighttpd/modules.conf:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/lighttpd/modules.conf&lt;br /&gt;
    server.modules = (&lt;br /&gt;
      &amp;quot;mod_access&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_alias&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_auth&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_evasive&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_redirect&amp;quot;,&lt;br /&gt;
      &amp;quot;mod_rewrite&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_setenv&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_usertrack&amp;quot;,&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    ##&lt;br /&gt;
    ## mod_magnet&lt;br /&gt;
    ##&lt;br /&gt;
    include &amp;quot;conf.d/magnet.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ##&lt;br /&gt;
    ## FastCGI (mod_fastcgi)&lt;br /&gt;
    ##&lt;br /&gt;
    include &amp;quot;conf.d/fastcgi.conf&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You need also to configure /srv/www/obs/webui/config/environments/production.rb to point to correct server names:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /srv/www/obs/webui/config/environments/production.rb&lt;br /&gt;
FRONTEND_HOST = &amp;quot;api.obs.maemo.org&amp;quot;&lt;br /&gt;
FRONTEND_PORT = 80&lt;br /&gt;
EXTERNAL_FRONTEND_HOST = &amp;quot;api.obs.maemo.org&amp;quot;&lt;br /&gt;
BUGZILLA_HOST = &amp;quot;http://bugs.maemo.org/&amp;quot;&lt;br /&gt;
DOWNLOAD_URL = &amp;quot;http://downloads.obs.maemo.org&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Do the same for /srv/www/obs/api/config/environments/production.rb. As soon your backend is not on the same machine as the api (frontend), change the following:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /srv/www/obs/api/config/environments/production.rb&lt;br /&gt;
SOURCE_HOST = &amp;quot;src.obs.maemo.org&amp;quot;&lt;br /&gt;
SOURCE_PORT = 5352&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Make sure TCP port 5352 is open on the firewall.&lt;br /&gt;
Ensure lighttpd and obs ui helpers start:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
chkconfig --add memcached&lt;br /&gt;
chkconfig --add lighttpd&lt;br /&gt;
chkconfig --add obsapidelayed&lt;br /&gt;
chkconfig --add obswebuidelayed&lt;br /&gt;
&lt;br /&gt;
rcmemcached start&lt;br /&gt;
rclighttpd start&lt;br /&gt;
rcobsapidelayed start&lt;br /&gt;
rcobswebuidelayed start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ligthttpd user and group need to be the onwer of api and webui dirs (as well as log and tmp):&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
chown -R lighttpd.lighttpd /srv/www/obs/{api,webui}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing the Workers ==&lt;br /&gt;
&lt;br /&gt;
The other 14 hosts on the cluster are reserved to be used as workers, where package builds are going to place.&lt;br /&gt;
&lt;br /&gt;
The same openSuse Tools repository addition must be done for each worker.&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
cd /etc/zypp/repos.d/;&lt;br /&gt;
wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo&lt;br /&gt;
zypper ref&lt;br /&gt;
# Accept the trust key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install worker:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
zypper in obs-worker quemu-svn mount-static bash-static&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
(mount-static and bash-static are needed on the worker for rpm cross-compile to work)&lt;br /&gt;
&lt;br /&gt;
Edit the file /etc/sysconfig/obs-worker in order to point to correct repository server. &lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
vi /etc/sysconfig/obs-worker&lt;br /&gt;
OBS_SRC_SERVER=&amp;quot;src.obs.maemo.org:5352&amp;quot;&lt;br /&gt;
OBS_REPO_SERVERS=&amp;quot;repo.obs.maemo.org:5252&amp;quot;&lt;br /&gt;
OBS_VM_TYPE=&amp;quot;none&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each worker has 16 CPUs, so 16 workers need to be started.&lt;br /&gt;
&lt;br /&gt;
Start the worker service:&lt;br /&gt;
&amp;lt;source lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
chkconfig --add obsworker&lt;br /&gt;
&lt;br /&gt;
rcobsworker start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tuning ==&lt;br /&gt;
The lighttpd config was reduced to 3 api/webui child processes from 5.&lt;br /&gt;
&lt;br /&gt;
== Revise VG setup ==&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/VG_data/w[8-12]_root&lt;br /&gt;
 lvremove /dev/VG_data/w[8-12]_swap&lt;br /&gt;
&lt;br /&gt;
 pvmove /dev/dm-32&lt;br /&gt;
 vgreduce VG_data /dev/dm-32&lt;br /&gt;
 kpartx -av /dev/dm-32&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 add map 360060e8005478600000047860000398c_part1p1 (253:21): 0 97659072 linear /dev/dm-32 63&lt;br /&gt;
 add map 360060e8005478600000047860000398c_part1p2 (253:22): 0 97659135 linear /dev/dm-32 97659135&lt;br /&gt;
 add map 360060e8005478600000047860000398c_part1p3 (253:23): 0 97659135 linear /dev/dm-32 195318270&lt;br /&gt;
 add map 360060e8005478600000047860000398c_part1p4 (253:24): 0 126431550 linear /dev/dm-32 292977405&lt;br /&gt;
&lt;br /&gt;
(Worried these partitions may not come back at reboot time)&lt;br /&gt;
&lt;br /&gt;
Now creat the OBS VG for the host xen worker:&lt;br /&gt;
 pvcreate /dev/mapper/360060e8005478600000047860000398c_part1p1&lt;br /&gt;
 vgcreate OBS /dev/mapper/360060e8005478600000047860000398c_part1p1&lt;br /&gt;
&lt;br /&gt;
 pvcreate /dev/mapper/360060e8005478600000047860000398c_part1p1&lt;br /&gt;
 vgextend OBS /dev/mapper/360060e8005478600000047860000398c_part1p1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L 5G -n cache OBS&lt;br /&gt;
 mkfs -text4 /dev/OBS/cache&lt;br /&gt;
&lt;br /&gt;
 for i in 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
 do&lt;br /&gt;
   lvcreate -L 4G -n worker_root$i OBS&lt;br /&gt;
   mkfs -text4 /dev/OBS/worker_root$i&lt;br /&gt;
   lvcreate -L 1G -n worker_swap$i OBS&lt;br /&gt;
   mkswap /dev/OBS/worker_swap$i&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Note in 1.7.3 obsstoragesetup makes /OBS.worker/root1/root but obsworker looks for /OBS.worker/root_1/root (root1 vs root_1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also ensure the host has :&lt;br /&gt;
 obs-worker (1.7.3)&lt;br /&gt;
 qemu-svn&lt;br /&gt;
&lt;br /&gt;
In order to run arm binaries in the xen chroot we need to ensure the initrd inserts binfmt_misc&lt;br /&gt;
in /etc/sysconfig/kernel, set&lt;br /&gt;
  DOMU_INITRD_MODULES=&amp;quot;xennet xenblk binfmt_misc&lt;br /&gt;
then&lt;br /&gt;
 mkinitrd -k vmlinuz-2.6.31.12-0.2-xen -i initrd-2.6.31.12-0.2-xen-binfmt -B&lt;br /&gt;
&lt;br /&gt;
On the backend machine edit /usr/lib/build/xen.conf to use the correct initrd&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenSuse build service]]&lt;/div&gt;</summary>
		<author><name>194.237.7.146</name></author>
	</entry>
</feed>