Sunday, November 3, 2013

Installing SDK version of Sailfish UI on N9

CAUTION: Might break your stuff, back up your nemo installation 
beforehand if you want to be cautious. You have been warned!

!! KNOWN ISSUE !!

Zypper does not always cache the packages, remove lipstick-jolla-home-qt5 with --clean-deps and try again.

Please note, an official guide is coming up from Jolla, which demonstrates this entire process into making an image. This guide will be updated with instructions regarding that.

First things first, you need a working copy of Nemo Mobile running on N9, you can grab one from this link, magnet link. I will not cover the installation of Nemo Mobile for your N9, you can follow this guide to do that.

You also need a working copy of Sailfish SDK running. I will also not cover the installation process here but its quite straightforward to setup. After having a Mer SDK virtual machine instance running, do this to gain ssh access to the virtual machine:

ssh -i ~/SailfishOS/vmshare/ssh/private_keys/engine/mersdk mersdk@localhost -p 2222

In this ssh shell, run:

sb2 -t SailfishOS-armv7hl -m sdk-install -R zypper mr -k -all

Then:

sb2 -t SailfishOS-armv7hl -m sdk-install -R zypper in lipstick-jolla-home-qt5

This generates rpm packages to /parentroot/srv/mer/targets/SailfishOS-armv7hl/var/cache/zypp/packages/jolla/ subdirectories, copy them all over to a separate directory on the host machine as one flat directory, like this:

mkdir ~/sailfishrpms
cd /parentroot/srv/mer/targets/SailfishOS-armv7hl/var/cache/zypp/packages/jolla/
cp ./*/*/*.rpm ~/sailfishrpms/

Copy these over to Nemo Mobile running in N9, using eg. scp. Usually one wants to copy over entire directory like the above sailfishrpms.

Then in the device, over ssh, execute:

cd sailfishrpms
zypper install --force *

This will install all of the generated rpms to the device, although with warnings, afterwards reboot to gain access of the Sailfish, SDK version, homescreen.

 CAUTION: Might break your stuff, back up your nemo installation beforehand if you want to be cautious. You have been warned!

Monday, September 9, 2013

Adding armv7hl target to Sailfish SDK

One day I was talking with David Greaves on IRC about the possibility to add an armv7hl target to Sailfish SDK, namely Qt Creator component, as the SDK is based on Mer Qt Creator but Mer's Qt Creator is a bit outdated as it doesn't support Qt5 as Sailfish SDK does. David said that the fix for adding cross-tools to Mer SDK virtual machine shipped with has not yet been released but I got the manual fix from him, so here goes:

First go to your Mer SDK VM:

ssh -i ~/SailfishOS/vmshare/ssh/private_keys/engine/mersdk -p 2222 mersdk@localhost
sudo -s
Edit your /usr/share/ssu/repos.ini, go to [release] section and add to end:

mer-cross=%(releaseProtocol)://%(releaseDomain)/%(releasePath)/%(release)/mer/%(arch)/cross/
Also one must add mer-cross to: [default-repos]
release=jolla,nemo,mer-core,mer-cross
Exit your editor and then refresh your mer-cross repository with command:

Now a word of warning, this will add an experimental repository to your system!

ssu er mer-cross
ssu ur
zypper ar http://repo.merproject.org/obs/mer-tools:/testing/latest_i486/mer-tools:testing.repo
zypper ref
zypper dup

After this, go to your Qt Creator, select tab SailfishOS.
In that pages tabs, select 'Toolchains' and press install on 'Mer-SB2-armv7hl'.
The toolchain should be installed without intervention from user.

The Sailfish SDK now has arm toolchain installed by default, so you only need to add a target:

The next step is to install a viable target to the SDK. Return to 'Targets' tab and make sure that Mer-SB2-armv7hl is the selected toolchain, then add whatever name you'd like for you target and as the target url add:
https://dl.dropboxusercontent.com/s/5w8uwazmdsaalgn/nemo-wayland-arm.tar.bz2

Target installation should now proceed to download the target image, unpacking it and then updating Qt Creator with the newly created target.

And that's pretty much it, you can now compile Qt5 applications with Sailfish SDK. The build will also work for Sailfish applications but running them won't work as Jolla is still to release the Silica library for armv7hl.

Stay tuned for the knowledge of getting Qt5 apps to run on your N9/50 Nemo Wayland, from within Qt Creator, in the near future!