wiki:Developing for FSO with shr-chroot

This is a straightforward how to, not a full explained one.

In this HOWTO we will consider playing with fsodeviced which is in cornucopia. So you need to have done a git clone somewhere. No not somewhere. It needs it to be accessible within shr-chroot. So, regarding the path we will use below it need to be relative to your OE root like this :

 :~/shr-chroot$ mkdir -p home/universe/dev/FSO/ 
 :~/shr-chroot$ cd home/universe/dev/FSO/
 git clone git://git.freesmartphone.org/cornucopia.git 

(Personally I use this kind of path structure because it remind me my normal structure out of shr-chroot. but feel free to adapt it to your tastes. but beware to adapt all needed path then.)

Make a experimental branch, or whatever you want to call it :

 cd cornucopia/
 git branch experimental

and checkout to it to do your change in this branch

git checkout experimental

Commit changes localy

Do some changes and then you commit them into your local git branch of cornucopia so that you can then build corresponding packages for later deployments :

git commit -a

Build the corresponding recipe with shr-chroot

We will add our relevant bits in shr-chroot/OE/shr-unstable/conf/local-builds.inc

for that we need to uncomment the following line in shr-chroot/OE/shr-unstable/conf/local.conf:

#require local-builds.inc

Then set this in your shr-chroot/OE/shr-unstable/conf/local-builds.inc :

FSODEVICED_GIT = "git:///home/universe/dev/FSO/cornucopia/;protocol=file;branch=experimental"

SRCREV_pn-fsodeviced = "${AUTOREV}"
SRC_URI_pn-fsodeviced = "${FSODEVICED_GIT}"

# This is nececesary for fsodeviced but it
# might not be needed for other cornucopia packages
# like fsogsmd 
SRC_URI_pn-fsodeviced += "file://fsodeviced"

And now we are ready to build packages of our modified version of fsodeviced

bb fsodeviced

devshell

Now that you have set up your shr-chroot using this page Building SHR you can use the devshell. For that you need first to build it :

bb devshell

Then you will have a script to enter in this devshell, depending of your target, for example tmp/deploy/addons/arm-oe-linux-gnueabi-aurora-palmpre-devshell. So you just need to call it :

./tmp/deploy/addons/arm-oe-linux-gnueabi-aurora-palmpre-devshell

Then you should see that your prompt is different and so You can edit your source and compile it as usual.

In this example go to source directory, for example :

cd /home/universe/dev/FSO/cornucopia/fsodeviced # <= this is where you did a git clone + /fsodeviced

then we generate the config file

./autogen.sh

then we configure

oe_runconf

and finally

make

After that you just need to copy the relevant part to your device and test your changes.