GNOME development on Tizen Mobile

Embed Size (px)

Citation preview

GNOME Development on Tizen

Hur, Joone

May 24, 2013

Intel Open Source Technology Center

Are you a GNOME hacker?WebKitGtk+ Hackfest 2012

Are you a GNOME user?

We are GNOME

http://www.flickr.com/photos/kitty-kat/6049220331By KittyKat3756

Desktop Summit 2010

We love GNOME

We are building a true open source desktop environment!

GNOME 3.8http://www.gnome.org/news/2013/03/gnome-3-8-released/

Fedora

Ubuntu GNOME

OpenSUSE

Platform independent

Linux, Windows, and OSX

Language independent
C, C++, Python, C#, JS

GIMPhttp://www.gimp.org/screenshots/

GNOME Mobile?

It was announced at the Embedded Linux Conference in Santa Clara, California on April 19, 2007

Yes, we had GNOME Mobile

First release of GNOME MobileGNOME 2.24 is the first release of the GNOME Mobile development platform.

Linux-based mobile device platforms

Maemo, ACCESS Linux Platform,

LiMo reference platform, Ubuntu Mobile,

Moblin, Poky.

https://help.gnome.org/misc/release-notes/2.24/

https://help.gnome.org/misc/release-notes/2.24/

GNOME Mobile

MaemoGtk+, X-Window, DebianGStreamer

https://en.wikipedia.org/wiki/File:Maemo5-screenshot.png

https://help.gnome.org/misc/release-notes/2.24/

N770N800, N810, N900, N9

http://en.wikipedia.org/wiki/File:N900_xterm.JPG

MoblinClutter, Gtk+, RPMDesigned for Netbook

http://en.wikipedia.org/wiki/File:Moblin_Linux_2.1.png

LiMoGtk+, DebianX-Window

2009zl

MeeGo (Maemo + Moblin)QtRPMhttp://www.noknok.tv/2010/07/01/nokia-n9-meego-os-smartphone-to-look-like-this/

At the Mobile World Congress in February 2010, it was announced that the Moblin project would be merging with Maemo to create the MeeGo mobile software platform.

Nokia left behind us

No one talked about Mobile in GNOMEhttps://mail.gnome.org/archives/mobile-devel-list/

Unfortunately, there is no Success story with GNOME in Mobile.What's wrong with GNOME? Is GNOME is slow in mobile device?Were there any missing features for mobile?

Android vs. iOShttp://techland.time.com/2013/04/16/ios-vs-android/

Anyway, the mobile market is divided into Android and iOS. WebOS, Windows Mobile was disappeared. Windows phone & Blackberry are struggling to survive.

3rd Mobile PlatformTizen

Firefox OS

Ubuntu Touch

http://asia.cnet.com/the-emerging-smartphone-os-battle-firefox-vs-tizen-vs-ubuntu-62220705.htm

Why GNOME folks need to take a look at Tizen?

They say HTML5!!

But, we have a lot of GNOME applications

Running my favorite GNOME applications on Mobile?

On Android?

Only Linux KernelNo X-Window, No Cairo & Pango, ...

Looking into Tizen

Tizen Architecture

http://www.slideshare.net/badaindonesia/tizen-overview-and-architecture-seokjae-jeong-samsung-korea-linux-forum-2012

When we take a look at Tizen Architecture, you can find many GNOME & FreeDesktop components such as D-Bus,m glibc, Cairo, X11, Fontconfig, Freetype2, GStreamer, Geoclue, libSoup, Bluez, and SQLite

Tizen vs. Maemo

Glib, Cairo, Pango, Gstreamer, BlueZ, D-Bus, X-Window

OSP,EFL, RPM

HildonGtk+, Atk, Gdk-pixbuf, Debian

There a lot of common components between Tizen and Maemo.

X-Window, GStreamer, Glib, GObject, libSoup, BlueZ,

Tizen is a GNOME?

What is GNOME development?

GNOME developmentDevelop an application based on glib/gobject

The glib main loop is running inside Tizen apps.

Tizen?Tizen = MeeGo + LiMo

Standard based, Cross, Open Source platform

Resides in the Linux Foundation

Tizen 2.1

HTML5 and OSP(native) applications

Tizen Members

https://www.tizenassociation.org/members/

Intel and Samsung are leading the project.

Intel is no 1 Linux kernel contributor. Samsung is no 7 Linux kernel contributor. Two companies are very active to open source development

Therefore, Its okay to believe both companies. We continue to open Tizen more under Linxu foundation

Tizen Profiles

https://source.tizen.org/compliance

A New Hope for GNOME Mobile

Running GNOME on Tizen

Tizen DevelopmentWeb Application development

Native Application development

Platform development

Create a Web application project

Create a Tizen native project

Tizen Platform Developmentgit, obs, gbs, gerrit, chroot, rpm, Tizen SDK

Installing Tizen SDK https://developer.tizen.org/downloads/tizen-sdk

Create an account in Tizen Go to http://tizen.org

http://seoz.egloos.com/3895488

Using Gerrit to access source code

Gerrit is a Web-based code review system

https://review.tizen.org/gerrit/

Create an SSH key with the Linux shell by specifying your full name and email address

Add the SSH Key to Gerrit

http://seoz.egloos.com/3895489Create an SSH key with the Linux shell by specifying your full name and email address

The SSH key is created in the ~/.ssh/id_rsa.pub file.

http://seoz.egloos.com/3895489

Paste the SSH public key into "Add SSH Public Key" text box.

Configure GITGit is a revision control and source code management tool

$ apt-get install git

Configure GIT

$ git config --global user.name "your name"

$ git config --global user.email "your email"

Git is a revision control and source code management tool that enables you to download and manage Tizen platform development source codes. You can also submit your modified source codes to Git.To enable the Tizen platform development, you must install Git:$ apt-get install git

Download Gtk+ and dependent libraries source codeTizen 2.0 includes

glib 2.32.3

pango 1.26.0

cairo 1.12

Need atk, gdk-pixbuf, hicolor-icon-theme to compile Gtk+ 3.1.8

atk 1.30

gdk-pixbuf-2.0 2.22.0

hicolor-icon-theme-0.12

http://ftp.gnome.org/pub/gnome/sources/

Building with gbsGit Build System (GBS) is a custom command line tool used to support Tizen package development

$ mkdir atk && cd atk && git init$ gbs import ../atk-1.30.0.tar.gz$ git checkout upstreamhttps://source.tizen.org/documentation/reference/git-build-system/upstream-package

Write a RPM spec file$ pwd~/git/atk/ $ mkdir packaging$ cd packaging$ vi atk.spec http://en.opensuse.org/openSUSE:Specfile_guidelines

Name: atk Summary: Accessibility ToolkitVersion: 1.30.0License: LGPL...URL: http://www.gtk.orgPatch0: replace_G_CONST_RETURN_with_const.patch Requires: glib2 >= 2.0.0BuildRequires: pkgconfig(glib-2.0)

%package devel..%build..%install...%files...

Building using gbs$ gbs build -A i586

$ cd ~/GBS-ROOT/local/scratch.i586.0/home/abuild/rpmbuild/RPMS/i586/

atk-1.30.0-1.i586.rpm

atk-1.30.0-5.1.armv7l.rpm

atk-debuginfo-1.30.0-1.i586.rpm

atk-debugsource-1.30.0-1.i586.rpm

atk-devel-1.30.0-1.i586.rpm

atk-devel-1.30.0-5.1.armv7l.rpm

gdk-pixbuf2-2.22.0-1.i586.rpm

gdk-pixbuf2-2.22.0-4.1.armv7l.rpm

gdk-pixbuf2-debuginfo-2.22.0-1.i586.rpm

gdk-pixbuf2-debugsource-2.22.0-1.i586.rpm

gdk-pixbuf2-devel-2.22.0-1.i586.rpm

gdk-pixbuf2-devel-2.22.0-4.1.armv7l.rpm

gtk3-3.1.8-16.2.armv7l.rpm

gtk3-3.1.8-1.i586.rpm

gtk3-debuginfo-3.1.8-1.i586.rpm

gtk3-debugsource-3.1.8-1.i586.rpm

gtk3-devel-3.1.8-16.2.armv7l.rpm

gtk3-devel-3.1.8-1.i586.rpm

gtk3-devel-docs-3.1.8-1.i586.rpm

gtk3-immodules-3.1.8-1.i586.rpm

gtk3-immodule-xim-3.1.8-1.i586.rpm

hicolor-icon-theme-0.12-11.1.noarch.rpm

Installing rpm packages$ sdb push ~/tizen/package/*.rpm /home

Open a shell$ cd /home $ rpm -ivh --force *.rpm

Run gtk-demo!

Your first Gtk+ application for Tizen

Image Viewer

https://developer.gnome.org/gnome-devel-demos/stable/image-viewer.c.html

Create a project with Anjuta

joone@joone-webkit:~/image-viewer$ ls -ltotal 64-rw-rw-r-- 1 joone joone 0 May 19 00:41 AUTHORS-rwxrwxr-x 1 joone joone 4435 May 19 00:41 autogen.sh-rw-rw-r-- 1 joone joone 2 May 19 00:41 ChangeLog-rw-rw-r-- 1 joone joone 334 May 19 00:41 configure.ac-rw-rw-r-- 1 joone joone 35148 May 19 00:41 COPYING-rw-rw-r-- 1 joone joone 1689 May 19 00:41 image_viewer.anjuta-rw-rw-r-- 1 joone joone 350 May 19 00:41 Makefile.am-rw-rw-r-- 1 joone joone 0 May 19 00:41 NEWS-rw-rw-r-- 1 joone joone 0 May 19 00:41 READMEdrwxr-xr-x 2 joone joone 4096 May 19 00:41 src

Making a spec file

Building with gbs$gbs build -A i586 keep-packs --include-all

Running Image Viewer on the emulator

Download today!

http://download.tizen.org/live/home:/joone:/Tizen:/2.0:/GNOME/standard/i586/

Future PlanSupport for GObject introspection

More language bindings!

Support for Mobile Theme

Add GNOME development to Tizen SDK

Q & A

Click to edit the title text formatClick to edit Master title style

5/28/13

Click to edit the title text formatClick to edit Master title style

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level

Seventh Outline LevelClick to edit Master text styles

Second level

Third level

Fourth level

Fifth level

Sixth level

Seventh level

Eighth level

Ninth level