pcfe's blog

merproject.org openSUSE Build Service for Users of Other Build Systems

If you intend to build native graphical applications for the Jolla phone, then by all means follow the official docs.

If, OTOH, you are used to writing spec files and feeding another build system (for me it’s mainly Koji), then read on.

The following is all on Fedora, but will work on must distribution with your package manager.

Set up osc

Install osc with yum install osc. set it up as per the Contribution in detail in the Mer Wiki.

Set the apiurl via commandline option on your first call of osc
1
[user@host ]$ osc -A https://api.merproject.org ls

After this, your ~/.oscrc is written and you no longer need this flag. You can now use the openSUSE:Build Service docs as linked at the bottom of every page of the Mer Project Open Build Service

Use osc

If you just want to know how your build system tool’s (fedpkg in my case) calls translate to osc, you can skip ahead to Building against Mer in Community OBS.

A short example;

First create project in the webUI, then

checkout to your build host
1
2
[user@host ]$ osc co home:project
[user@host ]$ cd home:project
create package locally on build host via CLI
1
2
3
4
[user@host ]$ osc mkpac package_name
[user@host ]$ osc meta pkg -e
[user@host ]$ osc add package.spec package-1.0.0.tar.bz2
[user@host ]$ osc ci

Every time you do osc ci, the Open Build Service will rebuild as per the instructions in the spec file for you.

which project to build against?

One of the biggest challenges I faced was finding out how to set up my Repositories.

If you build something Jolla specific, start with sailfishos:chum:1.0.2.5:testing and once your package works, migrate to sailfishos:chum:1.0.2.5 (obviously the version number 1.0.2.5 will increase over time).

If you build something which can benefit all of mer, use nemo:devel:mw

I find it useful to refer to the architecture overview when deciding where to push my packages.

Which architecture to choose?

When you build packages to run on your Jolla, select armv8el as target. You probably also want to build for i586 so that your binary can also be used in the SailfishOS Emulator

When you add a Repository, you will not find sailfishos in the distribution overview page, please follow the pick one via advanced interface link. Select the project (e.g. sailfishos:chum:1.0.2.5:testing), the project’s repository to use when building (probably only one in the drop down list) and give it a name.

For home:pcfe:public:buteo-sync-plugin-caldav I set up as follows (shout if I am doing this wrong).

"Repositories of home:pcfe:public:buteo-sync-plugin-caldav"