Upload
phil-wwwrzronlinefr
View
1.120
Download
2
Tags:
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
Tizen platform development
Be part of Tizen:Common platform development or community contribs !
Philippe Coval<https://wiki.tizen.org/wiki/User:Pcoval>
Context
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
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)
Tizen:Common
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 ...
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 ...
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
Tizen sources
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
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
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)
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"
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)
Contributing
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
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
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
More...
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
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
22
Thanks
• Tds14Sh Organizer team
• Linux Foundation
• Intel, Samsung, Tizen Association
• Tizen developers and related communities
• Eurogiciel Opensource departement
• TizenExperts
• You
Q & AAsk me online too !<https://wiki.tizen.org/wiki/User:Pcoval>
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