SlideShare a Scribd company logo
Getting Started on
Packaging Apps with
Open Build Service
Learn How To Build Package
Andi Sugandi – openSUSE Indonesia
andisugandi@opensuse.org
2
Andi Sugandi
SuSE 9.3 (2004)
@openSUSEID (since 2007)
openSUSE Member
https://connect.opensuse.org/pg/profile/andisugandi
/ : @andisugandi
3
Andi Sugandi
openSUSE Build Service
5
Web UI
Command
Line
Client
Installer
(YaST,etc.)
OBS API (api.opensuse.org)
User controller, Database, Search, ...
Storage
Build
Host
Your Client
Mirror
Interface
Build
Host
Build
Host
Build
Host
Build
Host
Build
Host
Backend
Hermes
Web UI
Notification
Server
Components Overview
6
Packagers OBS Tools
7
Packagers OBS Tools
Reference Server
build.opensuse.org
8
Packagers OBS Tools Web Client
9
Packagers OBS Tools
osc
Creating Packages
11
Creating Packages
✔ Create a package
✔ in your own home project
✔ on the reference server1
12
Creating openSUSE Account
13
Installing osc
$ sudo zypper ar -r http://r.opensu.se/devel
➥ :tools:scm/openSUSE_Leap_42.1/r
$ sudo zypper in osc
14
Log in to OBS via osc
$ osc co home:<username>
$ cd home:<username>
*Example:
home:andisugandi
15
Making Package Project
$ osc mkpac screenFetch
$ cd screenFetch
*Package example of this workshop is: screenFetch
16
Providing Package’s Source Code
$ wget https://codeload.github.com/KittyKatt/
➥ screenFetch/tar.gz/v3.7.0
17
Editing .spec File
$ vim screenFetch.spec
*Example:
https://build.opensuse.org/package/view_file/home:yaumulmajid/screenFetch/screenFetch.spec
18
Marking Files to be Committed
$ osc addremove
Building Packages
20
Building Packages
✔ Build a package
✔ locally on your laptop
✔ and on the reference server2
21
Creating (distribution) build target(s)
$ osc meta prj -e home:<username>
22
<project name="home:<username>">
<title/>
<description/>
<person userid="<username>" role="maintainer"/>
<repository name="openSUSE_42.1">
<path project="openSUSE:Leap:42.1" repository="standard"/>
<arch>i586</arch>
<arch>x86_64</arch>
</repository>
</project>
Creating (distribution) build target(s)
23
Setting Up Local Build Environment … [1]
$ sudo mount openSUSE-Leap-42.1-DVD-x86_64.iso
➥ /run/media/summit2016/openSUSE-Leap-42.1-DVD
-➥ x86_64026 -o loop
24
Setting Up Local Build Environment … [2]
$ sudo mkdir -p /var/tmp/osbuild-
➥ packagecache/openSUSE:Leap:42.1/standard
25
Setting Up Local Build Environment … [3]
$ sudo cp -r /run/media/summit2016/openSUSE-Leap
➥ -42.1-DVD-x86_64026/suse/* /var/tmp/osbuild
➥ -packagecache/openSUSE:Leap:42.1/standard
26
Setting Up Local Build Environment … [4]
$ sudo find /var/tmp/osbuild-packagecache
➥ /openSUSE:Leap:42.1/standard -type d -exec
➥ chmod 755 {} ;
27
Setting Up Local Build Environment … [5]
$ sudo find /var/tmp/osbuild-packagecache
➥ /openSUSE:Leap:42.1/standard -type f -exec
➥ chmod 644 {} ;
28
Building (screenFetch) Package Locally
$ sudo osc build openSUSE_42.1 x86_64
➥ screenFetch.spec
*Example build log (built successfully):
http://paste.opensuse.org/view/simple/4027883
29
The Resulting Package (Locally)
/var/tmp/build-root/openSUSE_42.1-x86_64/home/abuild/
➥ rpmbuild/SRPMS/screenFetch-3.7.0-0.src.rpm
/var/tmp/build-root/openSUSE_42.1-x86_64/home/abuild/
➥ rpmbuild/RPMS/noarch/screenFetch-3.7.0-0.noarch.rpm
*See corresponding log for details
30
Building Package on OBS Server
$ osc commit
*Fill in the data required (example, via: VIM text editor), Pres [i] to start writing.
31
Example Commit Message
Thu Oct 6 12:44:44 UTC 2016 – andisugandi@opensuse.org
- First check in of the screenFetch 3.7.0 package
*To stop writing and quit VIM: Press [Esc], then: [:] [w] [q] [Enter]
32
The Resulting Package on OBS Server
33
Collaborating on Packages
35
Collaborating on Packages
✔ Branch a package
✔ Submit a merge request
✔ Review a merge request3
Questions?
37
References
OBS-Packager-Workshop.odp
http://openbuildservice.org/files/workshops
➥ /OBS-Packager-Workshop.odp
Open Build Service Materials
http://openbuildservice.org/help/materials
Thank you.
Join the conversation,
contribute & have a lot of fun!
www.opensuse.org
39
Have a lot of fun and join us at:
www.opensuse.org
General Disclaimer
This document is not to be construed as a promise by any participating organisation
to develop, deliver, or market a product. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing
decisions. openSUSE makes no representations or warranties with respect to the
contents of this document, and specifically disclaims any express or implied
warranties of merchantability or fitness for any particular purpose. The development,
release, and timing of features or functionality described for openSUSE products
remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to
revise this document and to make changes to its content, at any time, without
obligation to notify any person or entity of such revisions or changes. All openSUSE
marks referenced in this presentation are trademarks or registered trademarks of
SUSE LLC, in the United States and other countries. All third-party trademarks are the
property of their respective owners.
License
This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0
International license. It can be shared and adapted for any purpose (even commercially) as
long as Attribution is given and any derivative work is distributed under the same license.
Details can be found at https://creativecommons.org/licenses/by-sa/4.0/
Credits
Template
Richard Brown
rbrown@opensuse.org
Design & Inspiration
openSUSE Design Team
http://opensuse.github.io/branding-
guidelines/

More Related Content

PDF
How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
PDF
SCAP for openSUSE
PDF
Booting directly opensuse iso file by grub2 @ openSUSE Asia Summit2015
PDF
Sweden11
ODP
Develop and Maintain a Distro with Open Build Service
PDF
Introduction to FreeNAS development by John Hixson
ODP
S4 sig-check-lpc-20130918
PDF
Python & FUSE
How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
SCAP for openSUSE
Booting directly opensuse iso file by grub2 @ openSUSE Asia Summit2015
Sweden11
Develop and Maintain a Distro with Open Build Service
Introduction to FreeNAS development by John Hixson
S4 sig-check-lpc-20130918
Python & FUSE

What's hot (20)

PDF
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
PDF
BSD for Linux Users
ODP
Use build service API in your program
PDF
Usage Note of Qt ODBC Database Access on Linux
ODP
Use bonding driver with ethernet
PDF
Writing flexible filesystems in FUSE-Python
PDF
MQTTS mosquitto - cheat sheet -
ODP
Coscup 2012-urfkill
PDF
Fosscon2013
ODP
Releasing and deploying python tools
PDF
Server hardening methedologies
ODP
AutoYast
PDF
install mosquitto-auth-plug - cheat sheet -
PDF
Scale13
PDF
Nycbsdcon14
PPT
Anthony McKeown Drupal Presentation
PDF
Dockerの準備
PDF
Self2013
PDF
Snort296x centos6x 2
PPTX
How to manage Microsoft Azure with open source
Upgrade GCC & Install Qt 5.4 on CentOS 6.5
BSD for Linux Users
Use build service API in your program
Usage Note of Qt ODBC Database Access on Linux
Use bonding driver with ethernet
Writing flexible filesystems in FUSE-Python
MQTTS mosquitto - cheat sheet -
Coscup 2012-urfkill
Fosscon2013
Releasing and deploying python tools
Server hardening methedologies
AutoYast
install mosquitto-auth-plug - cheat sheet -
Scale13
Nycbsdcon14
Anthony McKeown Drupal Presentation
Dockerの準備
Self2013
Snort296x centos6x 2
How to manage Microsoft Azure with open source
Ad

Viewers also liked (20)

PDF
Proposal of openSUSE.Asia Summit 2017
ODP
How to Contribute to FOSS
PDF
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
PDF
20161106 osc-tokyo-lt-asia-summit
PDF
20161106 osc-tokyo-command-line
PDF
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
PDF
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
PDF
openSUSEの紹介とサーバ構築
PDF
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
PDF
A Closer Look at Fonts and Font Rendering System on openSUSE
PDF
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
PDF
OSS に貢献しよう!―OSS の明るい未来のために!―
PDF
Linuxデスクトップのお手軽セミナー 〜クラウドとかも使いこなしちゃえ〜
PDF
秘伝:クラウドに開発環境をえいっ!と構築する方法
PDF
FlashAirの組み込み機器応用事例@OSC2014 Tokyo/Spring
PDF
異能vationにチャレンジのお勧め
PDF
SDカードで無線LチカFlashAirは超ミニマイコンアイデアコンテストも実施中
PDF
[Maker Faire Tokyo 2014] FlashAirは超ミニマイコン! ひろがる電子工作コミュニティ
PDF
オープンソースで始める「超」VPN 構築術
PPTX
TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?
Proposal of openSUSE.Asia Summit 2017
How to Contribute to FOSS
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
20161106 osc-tokyo-lt-asia-summit
20161106 osc-tokyo-command-line
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
openSUSEの紹介とサーバ構築
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
A Closer Look at Fonts and Font Rendering System on openSUSE
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
OSS に貢献しよう!―OSS の明るい未来のために!―
Linuxデスクトップのお手軽セミナー 〜クラウドとかも使いこなしちゃえ〜
秘伝:クラウドに開発環境をえいっ!と構築する方法
FlashAirの組み込み機器応用事例@OSC2014 Tokyo/Spring
異能vationにチャレンジのお勧め
SDカードで無線LチカFlashAirは超ミニマイコンアイデアコンテストも実施中
[Maker Faire Tokyo 2014] FlashAirは超ミニマイコン! ひろがる電子工作コミュニティ
オープンソースで始める「超」VPN 構築術
TOSHIBAxGUGEN FlashAirハッカソン-FlashAirでなに作る?
Ad

Similar to Getting Started on Packaging Apps with Open Build Service (20)

PDF
Keep up with openSUSE Packaging
ODP
Development of BlankOn packages whit OpenSUSE
ODP
ODP
PDF
Reproducible Builds on openSUSE
PDF
Continuous Integration and DevOps with Open Build Service(OBS)
PDF
2020-06-26 Uyuni Communit Hours: Agenda and Uyuni 2020.06 news
PDF
Build Image Using KIWI! Customize What You Want!
PDF
Creating customized openSUSE versions with SUSE Studio
PDF
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
PDF
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama (update)
ODP
Creating an openSUSE powered Robot
PDF
GUI Prototyping / Wireframing with Pencil
PDF
DevOps: Arquitectura, Estrategia y Modelo
ODP
Enlightenment? What is it
PDF
Introduction to OpenSolaris 2008.11
PDF
Tambah Keren dengan openSUSE
ODP
Egkatastasis
PPTX
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
PDF
Tambah Keren dengan openSUSE
Keep up with openSUSE Packaging
Development of BlankOn packages whit OpenSUSE
Reproducible Builds on openSUSE
Continuous Integration and DevOps with Open Build Service(OBS)
2020-06-26 Uyuni Communit Hours: Agenda and Uyuni 2020.06 news
Build Image Using KIWI! Customize What You Want!
Creating customized openSUSE versions with SUSE Studio
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama (update)
Creating an openSUSE powered Robot
GUI Prototyping / Wireframing with Pencil
DevOps: Arquitectura, Estrategia y Modelo
Enlightenment? What is it
Introduction to OpenSolaris 2008.11
Tambah Keren dengan openSUSE
Egkatastasis
Guide to open suse 13.2 by mustafa rasheed abass & abdullah t. tua'ama..super...
Tambah Keren dengan openSUSE

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
KodekX | Application Modernization Development
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Spectral efficient network and resource selection model in 5G networks
KodekX | Application Modernization Development
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
MYSQL Presentation for SQL database connectivity

Getting Started on Packaging Apps with Open Build Service

  • 1. Getting Started on Packaging Apps with Open Build Service Learn How To Build Package Andi Sugandi – openSUSE Indonesia andisugandi@opensuse.org
  • 2. 2 Andi Sugandi SuSE 9.3 (2004) @openSUSEID (since 2007) openSUSE Member https://connect.opensuse.org/pg/profile/andisugandi / : @andisugandi
  • 5. 5 Web UI Command Line Client Installer (YaST,etc.) OBS API (api.opensuse.org) User controller, Database, Search, ... Storage Build Host Your Client Mirror Interface Build Host Build Host Build Host Build Host Build Host Backend Hermes Web UI Notification Server Components Overview
  • 7. 7 Packagers OBS Tools Reference Server build.opensuse.org
  • 11. 11 Creating Packages ✔ Create a package ✔ in your own home project ✔ on the reference server1
  • 13. 13 Installing osc $ sudo zypper ar -r http://r.opensu.se/devel ➥ :tools:scm/openSUSE_Leap_42.1/r $ sudo zypper in osc
  • 14. 14 Log in to OBS via osc $ osc co home:<username> $ cd home:<username> *Example: home:andisugandi
  • 15. 15 Making Package Project $ osc mkpac screenFetch $ cd screenFetch *Package example of this workshop is: screenFetch
  • 16. 16 Providing Package’s Source Code $ wget https://codeload.github.com/KittyKatt/ ➥ screenFetch/tar.gz/v3.7.0
  • 17. 17 Editing .spec File $ vim screenFetch.spec *Example: https://build.opensuse.org/package/view_file/home:yaumulmajid/screenFetch/screenFetch.spec
  • 18. 18 Marking Files to be Committed $ osc addremove
  • 20. 20 Building Packages ✔ Build a package ✔ locally on your laptop ✔ and on the reference server2
  • 21. 21 Creating (distribution) build target(s) $ osc meta prj -e home:<username>
  • 22. 22 <project name="home:<username>"> <title/> <description/> <person userid="<username>" role="maintainer"/> <repository name="openSUSE_42.1"> <path project="openSUSE:Leap:42.1" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project> Creating (distribution) build target(s)
  • 23. 23 Setting Up Local Build Environment … [1] $ sudo mount openSUSE-Leap-42.1-DVD-x86_64.iso ➥ /run/media/summit2016/openSUSE-Leap-42.1-DVD -➥ x86_64026 -o loop
  • 24. 24 Setting Up Local Build Environment … [2] $ sudo mkdir -p /var/tmp/osbuild- ➥ packagecache/openSUSE:Leap:42.1/standard
  • 25. 25 Setting Up Local Build Environment … [3] $ sudo cp -r /run/media/summit2016/openSUSE-Leap ➥ -42.1-DVD-x86_64026/suse/* /var/tmp/osbuild ➥ -packagecache/openSUSE:Leap:42.1/standard
  • 26. 26 Setting Up Local Build Environment … [4] $ sudo find /var/tmp/osbuild-packagecache ➥ /openSUSE:Leap:42.1/standard -type d -exec ➥ chmod 755 {} ;
  • 27. 27 Setting Up Local Build Environment … [5] $ sudo find /var/tmp/osbuild-packagecache ➥ /openSUSE:Leap:42.1/standard -type f -exec ➥ chmod 644 {} ;
  • 28. 28 Building (screenFetch) Package Locally $ sudo osc build openSUSE_42.1 x86_64 ➥ screenFetch.spec *Example build log (built successfully): http://paste.opensuse.org/view/simple/4027883
  • 29. 29 The Resulting Package (Locally) /var/tmp/build-root/openSUSE_42.1-x86_64/home/abuild/ ➥ rpmbuild/SRPMS/screenFetch-3.7.0-0.src.rpm /var/tmp/build-root/openSUSE_42.1-x86_64/home/abuild/ ➥ rpmbuild/RPMS/noarch/screenFetch-3.7.0-0.noarch.rpm *See corresponding log for details
  • 30. 30 Building Package on OBS Server $ osc commit *Fill in the data required (example, via: VIM text editor), Pres [i] to start writing.
  • 31. 31 Example Commit Message Thu Oct 6 12:44:44 UTC 2016 – andisugandi@opensuse.org - First check in of the screenFetch 3.7.0 package *To stop writing and quit VIM: Press [Esc], then: [:] [w] [q] [Enter]
  • 32. 32 The Resulting Package on OBS Server
  • 33. 33
  • 35. 35 Collaborating on Packages ✔ Branch a package ✔ Submit a merge request ✔ Review a merge request3
  • 38. Thank you. Join the conversation, contribute & have a lot of fun! www.opensuse.org
  • 39. 39 Have a lot of fun and join us at: www.opensuse.org
  • 40. General Disclaimer This document is not to be construed as a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at https://creativecommons.org/licenses/by-sa/4.0/ Credits Template Richard Brown rbrown@opensuse.org Design & Inspiration openSUSE Design Team http://opensuse.github.io/branding- guidelines/