25
Tizen platform development Be part of Tizen:Common platform development or community contribs ! Philippe Coval <https://wiki.tizen.org/wiki/User:Pcoval>

Tizen platform-dev-tds14sh

Embed Size (px)

DESCRIPTION

Since Tizen adopted "open governance model", a free and libre open source GNU/Linux distribution known as "Tizen:Common" came to light. Now anyone is able to install it on widely available machines (PC, NUC, VM etc) and use the rolling release distro for any purpose, let's go one step foreward and build software for it and make a basic bug fix. This kick-start session aims to go directly to the pratical way to use it or/and contribute to Tizen. Tizen development tools (git, gbs, gerrit, jira...) will be presented live in real action, to give a short overview on how the project is progressing on a daily basis. Curious developers unfamiliar with platform development, can expect to get the entry's keys and learn by example on how to work on tizen platform and eventually share their wildest dreams.

Citation preview

Page 1: Tizen platform-dev-tds14sh

Tizen platform development

Be part of Tizen:Common platform development or community contribs !

Philippe Coval<https://wiki.tizen.org/wiki/User:Pcoval>

Page 2: Tizen platform-dev-tds14sh

Context

Page 3: Tizen platform-dev-tds14sh

3

Agenda

• Tizen:Common– Install and use It

• Tizen sources– Join tizen

– Get Sources

– Setup tools

– Build

– Test

• Contributing– Making and sharing changes

• More / Resources

• Q&A

Page 4: Tizen platform-dev-tds14sh

4

Who am I ?

• FLOSS enthusiast – Member of Software, DIY Community managed projects

• Tizen co-maintainer :

– Domains : Automotive, Graphics, System Config

• Works for Eurogiciel Open Source Dept– Intel contractor for 3 years

– Located in France (Brittany)

Page 5: Tizen platform-dev-tds14sh

Tizen:Common

Page 6: Tizen platform-dev-tds14sh

6

What is Tizen:Common ?

• Free and Libre Open Source Linux Distribution : – SPDX Licenses

– Open development model

• Features :– Security, Connectivity, Multimedia, AppFw, WebApps

– Inclusive for shared components : EFL, Qt ...

Page 7: Tizen platform-dev-tds14sh

7

What is Tizen:Common for ?

• Integration point for Tizen profiles– Ie: Tizen:IVI based on Tizen:Common (90%)

• Different Flavors :

– Supported Arch : Intel ( ia32, x64 ) or ARMv7l

– Supported Devices : pc (i7+) , MinnowMax etc

– Supported Features : Wayland vs x11 , MBR vs EFI ...

– More to come ...

Page 8: Tizen platform-dev-tds14sh

8

Install and use Tizen:Common

• Download image– http://download.tizen.org/releases/daily/tizen/common

• Install :– Dump released image to disk

– Or use installer image (NUC)

• Use :– Log in : root:tizen

– Update,

– install RPM packages using zypper tool

– Install webapps *.wgt using pkgcmd tool

Page 9: Tizen platform-dev-tds14sh

Tizen sources

Page 10: Tizen platform-dev-tds14sh

10

Join Tizen

• 1. Register your account at :– https://www.tizen.org/user/register

• 2. Generate a ssh key and upload public key – ssh-keygen && cat ~/.ssh/*.pub

– https://review.tizen.org/gerrit/#/settings/ssh-keys

Page 11: Tizen platform-dev-tds14sh

11

Fetch tizen's sources with git

● http://source.tizen.org ( Same as Gerrit : projects / List )

● Edit ~/.ssh/config :

● Clone one project (ie: platform/core/api/connection)

Host review.tizen.orgHostname review.tizen.orgIdentityFile ~/.ssh/id_rsaPort 29418User $USER # <=== EDIT WITH YOURS

Host review.tizen.orgHostname review.tizen.orgIdentityFile ~/.ssh/id_rsaPort 29418User $USER # <=== EDIT WITH YOURS

git clone review.tizen.org:/$projectcd $projectgit branch -agit checkout tizenls packaging/*.spec

git clone review.tizen.org:/$projectcd $projectgit branch -agit checkout tizenls packaging/*.spec

Page 12: Tizen platform-dev-tds14sh

12

Install tools

● On a GNU/Linux System

– Example for Ubuntu

– Others are supported Debian/Ubuntu, OpenSuse, Fedora, ...

● Reference: https://source.tizen.org/documentation/developer-guide/environment-setup/

cat /etc/apt/sources.list.d/tizen.listdeb http://download.tizen.org/tools/latest-release/Ubuntu_13.04 /

sudo apt-get install gbssudo apt-get install mic lthor bmap-tools meld # (optional)

cat /etc/apt/sources.list.d/tizen.listdeb http://download.tizen.org/tools/latest-release/Ubuntu_13.04 /

sudo apt-get install gbssudo apt-get install mic lthor bmap-tools meld # (optional)

Page 13: Tizen platform-dev-tds14sh

13

Building sources

• Configure repos : ~/gbs.conf– Use mine from :

https://gitorious.org/tizen/tizen-helper/raw/master:config/gbs.conf

– Add new profiles and associated repos if needed

– We prefer common snapshot x86_64 wayland repos

• Build from sources (git) to binaries (rpm)

gbs build \ -P "profile.tizen_common_x86_64" \ --arch x86_64

find ~/tmp-GBS-tizen_common_x86_64/local/repos/ -iname "*.rpm"

gbs build \ -P "profile.tizen_common_x86_64" \ --arch x86_64

find ~/tmp-GBS-tizen_common_x86_64/local/repos/ -iname "*.rpm"

Page 14: Tizen platform-dev-tds14sh

14

Deploy & Test

• Copy RPM files to target– scp *.rpm root@$targethost:/tmp

– sudo zypper in /tmp/*.rpm

• Tip : better setup your own repo from your host

– Setup local httpd server (apache's mod_user_dir)

url=http://$host/~$user/.../tmp-GBS-tizen_common_x86_64//tizen/x86_64/

zypper ar $host $user # Add your repositoryzypper ref -r $user # Refresh it

zypper up -r $user # Upgrade system from itzypper in -r $user $package # Or install single package (+deps)

url=http://$host/~$user/.../tmp-GBS-tizen_common_x86_64//tizen/x86_64/

zypper ar $host $user # Add your repositoryzypper ref -r $user # Refresh it

zypper up -r $user # Upgrade system from itzypper in -r $user $package # Or install single package (+deps)

Page 15: Tizen platform-dev-tds14sh

Contributing

Page 16: Tizen platform-dev-tds14sh

16

Bug reporting

• Entry point is : – http://bugs.tizen.org

– JIRA bug tracker

• Find or create new bugs– Tell version , see /etc/os-release

• Be proactive

• then ask on mailing lists to attract attention

Page 17: Tizen platform-dev-tds14sh

17

Fixing problems

• Make changes :– Rebuild : gbs build

– Test : zypper

– Check : gbs export, git diff

• Make a patch :– Mention context in commit message :

• Sharing patch– https://review.tizen.org/gerrit/#/

– Improve it until maintainer merge it

● Expect it to be released in repos and image

gbs build \ -P "profile.tizen_common_x86_64" \ --arch x86_64 \ --include-all

gbs build \ -P "profile.tizen_common_x86_64" \ --arch x86_64 \ --include-all

git commit -sam \"packaging: fix that

Bug-Tizen: TC-42"

git commit -sam \"packaging: fix that

Bug-Tizen: TC-42"

git push origin \ HEAD:refs/for/tizengit push origin \ HEAD:refs/for/tizen

Page 18: Tizen platform-dev-tds14sh

18

Summary

• Join project , create account : – http://tizen.org

• Install, use and test :– http://download.tizen.org

• Report bug on jira : – http://bugs.tizen.org

• Sources are managed with git (+ gerrit) :– http://review.tizen.org

• Build using GBS

• Share changes using git and gerrit

Page 19: Tizen platform-dev-tds14sh

More...

Page 20: Tizen platform-dev-tds14sh

20

Community Projects

Alone you'll go fast but together you'll go far.

• Tizen-Sunxi :– http://linux-sunxi.org/Tizen

● Qt for Tizen :

– http://qt-project.org/wiki/Tizen

● MonoTizen

– https://github.com/kitsilanosoftware/mono

● Xbmc For Tizen and others

Page 21: Tizen platform-dev-tds14sh

21

Resources

• Entry points– https://developer.tizen.org/

– https://wiki.tizen.org/wiki/OSDev

– https://wiki.tizen.org/wiki/Common

● Support

– http://lists.tizen.org Or irc://irc.freenode.net/#tizen

• Tools– https://source.tizen.org/documentation/developer-

guide/environment-setup/

– https://source.tizen.org/documentation/reference/git-build-system

Page 22: Tizen platform-dev-tds14sh

22

Thanks

• Tds14Sh Organizer team

• Linux Foundation

• Intel, Samsung, Tizen Association

• Tizen developers and related communities

• Eurogiciel Opensource departement

• TizenExperts

• You

Page 23: Tizen platform-dev-tds14sh

Q & AAsk me online too !<https://wiki.tizen.org/wiki/User:Pcoval>

Page 24: Tizen platform-dev-tds14sh

Open source development and integration :– Several Maintainers for tizen.org– Embedded systems for real-time multimedia:

- Widi/Miracast stack,- Wayland/Weston,- Webkit2 browser with HW acceleration- Linux base port

– Application: HTML5/CSS3, jquery, jqmobi, CordovaLocation : Brittany - France

Page 25: Tizen platform-dev-tds14sh