SlideShare a Scribd company logo
Project Builder:
A GPL continuous packaging solution
1

Bruno Cornec

V2.1 6th of January 2014
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0

HP EMEA Open Source Profession Lead
Introducing Myself
Software engineering and Unices since 1988

●

–

Mostly Configuration Management Systems, Build systems, quality tools, on multiple commercial Unix
systems

–

Discover Open Source & Linux (OSL) & first contributions in 1993

–

Full time on OSL since 1995, first as HP reseller then @HP

Currently:

●

–

Master Technology Architect on OSL for the HP/Intel Solution Center, Grenoble

–

HP OSL Advocate and Converged Infrastructure Ambassador

–

HP EMEA OSL Profession Lead

–

Solutions Linux Conference and AFUL board member. Conferences at WW level in LinuxCon, Linux.conf.au

–

MondoRescue, Project-Builder.org, UUWL and PUSK Project Lead

–

LinuxCOE, mrepo, tellico, rinse, fossology, collectl contributor

–

FOSSBazaar and OSL Governance enthusiast

–

Mandriva, Mageia, Fedora packager

2

●

And also:
–

Amateur singer (Alto / Tenor) and recorder player since 1976 and Choir director since 1987

–

CD collector since 1981 (5000+ and counting) – Concert attendance since 1976

–

Amateur photograph since 1976

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
What is project-builder.org’s goal ?

Make upstream projects
life easier with regards to
packaging their software
3

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
What is project-builder.org’s itch ?

Make *my*
life easier with regards to
packaging *my* software
4

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Users / Sysadmins want packaged software
●
Ease of use: GUI, CLI
>= 90%
●Distribution compliance
●Smooth Integration with
deployment tools

U
5

< 10%
< 1%

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Users / Sysadmins want packaged software
●
Ease of use: GUI, CLI
>= 90%
●Distribution compliance
●Smooth Integration with
deployment tools

U

< 10%
< 1%

6

D
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0

Lag between SW and Pkg
availability
●Test of alpha/beta/VCS SW
●Too many:
● distributions,
● versions,
● package formats,
● tools to generate packages
● tools to manage repositories
●
Upstream benefits from Continuous packaging
Packaging should be a project concern as well as coding, testing, installing, ....
especially for smaller projects
Use packaging as your only way of delivery (not a dream)
Minial overhead, slightly longer than providing a tgz, maximum benefit:
Consistancy and reproduceability for devs and users
Distribution & deployment server integration,
Improved deployment without risk of screwing up the system
7

Packaging is also a marketing activity for the upstream project based on a
technical content. It's an easy way to extend your user base, and improve your
community relationship and is a “competitive advantage”.
New mantra: “Package early, package always”
THE SOLUTION IS INDEED CONTINUOUS PACKAGING (whatever the tool)

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Continuous Packaging Architecture
Local Build Server (may host VMs and/or VEs)
Packagers

VM or VE Build

Repository
Server

Build +
metadata

Local build

8

Project
RM Build
Farm
Developers

(may host VMs)

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0

Remote build
Provisioning the Continuous Packaging Cloud
Local Build Server (may host VMs and/or VEs)
VM or VE Build

Build +
9

metadata

Local build

Project
RM Build Farm (may
host VMs)

Remote build
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0

Repository
Server
Goals
Project-builder main goal is to help you package continuously being
agnostic:
VCS agnostic: no VCS but guys it's 21st century now, SVN, CVS,
Mercurial, GIT and GIT/SVN, SVK....
OS agnostic: Linux: RPM, deb, ebuild, slack based, ... 150+ distro
tuples made and counting – repositories for yum, urpmi, apt. Solaris
pkg. HP-UX sd in roadmap
10

Build environment agnostic: local, VM (QEMU, KVM...), VE
(rpmbootstrap, rinse, mock, debootstrap...), RM (external build farm)
No project impact: preserves the md5sum of the delivered upstream
sources. Can be completely external to the upstream project.
Avoids duplication of code and metadata
THE SOLUTION IS INDEED CONTINUOUS PACKAGING (with projectbuilder.org !)
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Goodies
Project-builder provides additional goodies:
Easy VMs/VEs/RMs installation/setup. More on that later
Macro system with perl variables to avoid duplication
Skeleton generation to help starting
Manages package delivery up to your repository (ssh based) with
repository management (yum, apt, urpmi)
Manages announces on mailing lists
11

Integration of tests in the process
Manages patches/additional sources when not upstream
Checks validity of packages built (lintian, rpmlint)
Easy creation of new versions for upstream management
Manages website delivery
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
VM, VE & RM Management
VE Creation:
debootstrap for .deb based ones.
rpmbootstrap (modeled after debootstrap): create chroot for multiple
RPM based distributions (Mageia, Fedora, Mandriva, CentOS,
OpenSuSE)
VM|RM Creation:
KVM or QEMU iso install possibilities.
12

LinuxCOE/OpenStack as provisioning tool for your VM|RM
VM|VE|RM setup: adds pb tools and build account
VM|VE Snapshot feature – Update of VM|VE|M optional
Building in VM|VE|RM == building locally (build2vm|ve|rm vs build2pkg).
ssh communication for VM/RM
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Metadata Management
Packaging process independent of the project and external
Metadata isolated - No duplication

13

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Configuration file usage
Macro example:
./rpmbootstrap/pbfilter/all.pbf:filter PBSUMMARY = rpmbootstrap is a tool similar
to debootstrap for RPM based distributions
./rpmbootstrap/rpm/rpmbootstrap.spec:Summary: PBSUMMARY
./rpmbootstrap/deb/control:Description: PBSUMMARY
./rpmbootstrap/pkg/pkginfo:NAME="PBSUMMARY"
14

Instantiation possible from distro-ver-arch, distro-ver, distro,
distro-family, distro-type, os
Similar approach for all other parameters (Cf: man pb.conf)

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Commands
[cms|sbx]2build: Create tar files for the project under your CMS. Parameters are
packages to build if not using default list
build2pkg: Create packages for your running distribution
build2ssh: Send the tar files to a SSH host
pkg2ssh: Send the packages built to a SSH host
build2vm|ve|rm: Create packages in VMs/VEs/RMs, launching them if needed and
send those packages to a SSH host once built
launchvm: Launch one virtual machine
script2vm|ve|rm: Launch a VM/VE/RM if needed and executes a script on it
test2vm|ve|rm: Test inside a VM/VE/RM
newvm|ve: Create a new VM/VE/RM
setupvm|ve|rm: Setup a VM/VE/RM for pb usage
newver: Create a new version of the project derived from the current one
newproj: Create a new project and a template set of configuration files under
pbconf

15

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
The Big picture

Packagers
newver / newproj

Packaging

newvm|ve / setupvm|ve|rm

build2vm|ve|rm
cms|sbx2build

Project

16

Developers
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0

Building
build2pkg

build2ssh

Packages
pkg2ssh
Multi platform packaging cycle

VMs/VEs/RMs

Developers

UUWL

Packages

17

VM/VE/RM

Packagers
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Q & A up to now ?
18

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
DEMONSTRATION
19

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Special announce for LCA 2014 !

20

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
More Special announce for LCA 2014 !
I hate time release delivery
Of course, 0.12.3 has bugs ;-)
Lack of time to test thoroughly
So I hate time release delivery
So expect a 0.12.4 later this week, when more tests have been done !
So back to feature set release in fact
21

Did I say I hate time release delivery ?

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
To be done
LSB chroot support. (or not)
LXC support (which one ?)
Support for libvirt, virsh, openstack API
Other CMS (Bazaar, …) only when/if needed
Other VMs (VMWare, Xen, ...) only when/if needed
Multiple delivery means
22

Look at interactions with Buildbot
Add non-interactive signature support for .deb
Config-Model for configuration file management
REST API and Web Interface would be nice. Any contributor ?
© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Learn Project-Builder.org
Start with the Lab (63 pages)
Use man (pb, pb.conf + 8
ProjectBuilder::* man pages)
Use the mailing-list pb-announce
and pb-devel at
http://www.mondorescue.org/sympa

Use examples from
23

http://trac.project-builder.org/browser/projects/

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Web Resources
Project-Builder Web site / Trac / Wiki:
●

http://www.project-builder.org

●

http://trac.project-builder.org

Projects using project-builder.org:
●

http://www.project-builder.org ( of course :-)

●

http://www.mondorescue.org

24

●

Http://www.linuxcoe.org

●

http://www.fossology.org

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Related tools
Project-Builder is mostly suited for upstream projects wanting to package their
applications
Distributions provide each their build tools
● SuSE: Open Build Service (Multi distro, Web based, BaaS)
● Fedora (Koji)
● Mandriva/Mageia (Youri, mdvsys, mgarepo...)
Other complementary tools:
● Buildbot
● KVM/QEMU
● rpmbootstrap, rinse, mock
● Parallel::ForkManager, DBI, DB::SQLite, File::MimeInfo, Mail::Sendmail
25

Project-Builder.org is one of the tool of the vcs-pkg.org initiative.

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
Contact - Thanks
Bruno.Cornec@hp.com
(Open Source and Linux Technology
Architect at the HP/Intel Solution Center)
http://www.hp.com/linux
http://opensource.hp.com

Thanks goes to:

26

Linus Torvalds, Richard Stallman, Eric
Raymond, Nat Makarevitch, René
Cougnenc, Eric Dumas, Rémy Card,
Bdale Garbee, Bryan Gartner, Craig
Lamparter, Lee Mayes, Gallig Renaud,
Andree Leidenfrost, Phil Robb, Bob
Gobeille, Martin Michlmayr among
others, for their work and devotion to
the Open Source Software cause... and
my family for their patience :-)

© Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0

”Changes are never easy to make.
There is comfort and safety in
tradition, but change must come, no
matter how painful or expensive it
may be.”
Bill Hewlett

More Related Content

PDF
DNF FUDCon Pune 2015
PPTX
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
PPTX
IBM Rational Rhapsody 8.4 install guide (including Cygwin and obtaining an ev...
PDF
Ada in Fedora linux
ODP
Os Grossupdated
PPTX
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
PPTX
Yet Another K8s Installer
PDF
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...
DNF FUDCon Pune 2015
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
IBM Rational Rhapsody 8.4 install guide (including Cygwin and obtaining an ev...
Ada in Fedora linux
Os Grossupdated
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Yet Another K8s Installer
WPEWebKit, the WebKit port for embedded platforms (Linaro Connect San Diego 2...

What's hot (17)

PDF
Reaching the multimedia web from embedded platforms with WPEWebkit
PPTX
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
PDF
Os Koziarsky
PDF
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
PDF
Collabograte
PDF
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
PPTX
[Vietnam Mobile Day 2013] - Giới thiệu android media framework dựa trên công ...
PDF
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
PDF
Uyuni Community Hours 29.05.2020
PDF
FFmpeg - the universal multimedia toolkit
PDF
Os Lattner
PDF
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
PPTX
The next generation of protocols and APIs that could change streaming video
PPTX
Advanced Kurento Real Time Media Stream Processing
PDF
Uyuni, the solution to manage your IT infrastructure
PDF
Automotive Grade Linux on Raspberry Pi: How Does It Work?
PPTX
2016 Streaming Media West: Transitioning from Flash to HTML5
Reaching the multimedia web from embedded platforms with WPEWebkit
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
Os Koziarsky
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Collabograte
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
[Vietnam Mobile Day 2013] - Giới thiệu android media framework dựa trên công ...
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Uyuni Community Hours 29.05.2020
FFmpeg - the universal multimedia toolkit
Os Lattner
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
The next generation of protocols and APIs that could change streaming video
Advanced Kurento Real Time Media Stream Processing
Uyuni, the solution to manage your IT infrastructure
Automotive Grade Linux on Raspberry Pi: How Does It Work?
2016 Streaming Media West: Transitioning from Flash to HTML5
Ad

Viewers also liked (8)

PPT
Selbukonferansen
PDF
Creativity
PPTX
John Williams
PPTX
Johann Sebastian Bach
PPTX
Johann Sebastian Bach
PDF
Lab docker
PPT
Leyla Presentation At Sogeti![1]
PPT
Sdsd Matrix Demo Positioning Presentation
Selbukonferansen
Creativity
John Williams
Johann Sebastian Bach
Johann Sebastian Bach
Lab docker
Leyla Presentation At Sogeti![1]
Sdsd Matrix Demo Positioning Presentation
Ad

Similar to LCA 2014 project-builder.org presentation (20)

PDF
Multi-OS Continuous Packaging with docker and Project-Builder.org
PDF
Project-Builder.org presentation
ODP
Using containers and Continuous Packaging to Build native FOSSology packages
PDF
Project-Builder.org Presentation
PDF
Scaleable PHP Applications in Kubernetes
PDF
Isn’t it Ironic that a Redfish is software defining you
PDF
Chicago Docker Meetup Presentation - Mediafly
PDF
The DevOps Paradigm
PDF
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
PDF
Choisir le bon business model et la bonne licence pour la survie de son proje...
PPTX
Simplifying and accelerating converged media with Open Visual Cloud
PDF
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
PDF
Continuous Packaging is also Mandatory for DevOps
PDF
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
PDF
Devsummit 2010
PDF
Oss the freedom dpm 2018
PPTX
libdash 2.0
PPTX
Docker - A high level introduction to dockers and containers
PDF
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PPTX
Release webinar architecture
Multi-OS Continuous Packaging with docker and Project-Builder.org
Project-Builder.org presentation
Using containers and Continuous Packaging to Build native FOSSology packages
Project-Builder.org Presentation
Scaleable PHP Applications in Kubernetes
Isn’t it Ironic that a Redfish is software defining you
Chicago Docker Meetup Presentation - Mediafly
The DevOps Paradigm
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
Choisir le bon business model et la bonne licence pour la survie de son proje...
Simplifying and accelerating converged media with Open Visual Cloud
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Continuous Packaging is also Mandatory for DevOps
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Devsummit 2010
Oss the freedom dpm 2018
libdash 2.0
Docker - A high level introduction to dockers and containers
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
Release webinar architecture

More from Bruno Cornec (20)

PDF
Diaporama de l'Académie de Musique Ancienne d'Étampes 2025
PDF
Diaporama Ensemble Vocal Variations 2025
PDF
Concert des ensembles Variations et Byrd Chorus sur le "Jumelage Musical Rena...
PDF
Concert de l'ensemble Variations le "Crunch Renaissance" ou Guerre et Amour a...
PDF
Concerts de l'Ensemble Amicus Meus en 2024
PDF
Diaporama de l'Académie de Musique Ancienne d'Étampes 2024
PDF
Diaporama-TMG.pdf
PDF
Diaporama de l'Académie de Musique Ancienne d'Étampes 2023
PDF
Concert Amicus Meus 2023
PDF
Docker-v3.pdf
PDF
intro-linux-v4.pdf
PDF
Diaporama Exultate 2022
PDF
Diaporama-2021.pdf
PDF
Introduction à Linux et aux logiciels libres
PDF
Diaporama Variations 2019
PDF
IPMI is dead, Long live Redfish
PDF
Diaporama Exultate 2019
PDF
Diaporama Exultate 2018
PDF
Diaporama Exultate 2017
PDF
Diaporama 2018 Guerre de 100 ans
Diaporama de l'Académie de Musique Ancienne d'Étampes 2025
Diaporama Ensemble Vocal Variations 2025
Concert des ensembles Variations et Byrd Chorus sur le "Jumelage Musical Rena...
Concert de l'ensemble Variations le "Crunch Renaissance" ou Guerre et Amour a...
Concerts de l'Ensemble Amicus Meus en 2024
Diaporama de l'Académie de Musique Ancienne d'Étampes 2024
Diaporama-TMG.pdf
Diaporama de l'Académie de Musique Ancienne d'Étampes 2023
Concert Amicus Meus 2023
Docker-v3.pdf
intro-linux-v4.pdf
Diaporama Exultate 2022
Diaporama-2021.pdf
Introduction à Linux et aux logiciels libres
Diaporama Variations 2019
IPMI is dead, Long live Redfish
Diaporama Exultate 2019
Diaporama Exultate 2018
Diaporama Exultate 2017
Diaporama 2018 Guerre de 100 ans

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Approach and Philosophy of On baking technology
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
1. Introduction to Computer Programming.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Tartificialntelligence_presentation.pptx
A Presentation on Artificial Intelligence
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
A comparative study of natural language inference in Swahili using monolingua...
Getting Started with Data Integration: FME Form 101
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MIND Revenue Release Quarter 2 2025 Press Release
Per capita expenditure prediction using model stacking based on satellite ima...
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
A comparative analysis of optical character recognition models for extracting...
Assigned Numbers - 2025 - Bluetooth® Document
1. Introduction to Computer Programming.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Tartificialntelligence_presentation.pptx

LCA 2014 project-builder.org presentation

  • 1. Project Builder: A GPL continuous packaging solution 1 Bruno Cornec V2.1 6th of January 2014 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0 HP EMEA Open Source Profession Lead
  • 2. Introducing Myself Software engineering and Unices since 1988 ● – Mostly Configuration Management Systems, Build systems, quality tools, on multiple commercial Unix systems – Discover Open Source & Linux (OSL) & first contributions in 1993 – Full time on OSL since 1995, first as HP reseller then @HP Currently: ● – Master Technology Architect on OSL for the HP/Intel Solution Center, Grenoble – HP OSL Advocate and Converged Infrastructure Ambassador – HP EMEA OSL Profession Lead – Solutions Linux Conference and AFUL board member. Conferences at WW level in LinuxCon, Linux.conf.au – MondoRescue, Project-Builder.org, UUWL and PUSK Project Lead – LinuxCOE, mrepo, tellico, rinse, fossology, collectl contributor – FOSSBazaar and OSL Governance enthusiast – Mandriva, Mageia, Fedora packager 2 ● And also: – Amateur singer (Alto / Tenor) and recorder player since 1976 and Choir director since 1987 – CD collector since 1981 (5000+ and counting) – Concert attendance since 1976 – Amateur photograph since 1976 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 3. What is project-builder.org’s goal ? Make upstream projects life easier with regards to packaging their software 3 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 4. What is project-builder.org’s itch ? Make *my* life easier with regards to packaging *my* software 4 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 5. Users / Sysadmins want packaged software ● Ease of use: GUI, CLI >= 90% ●Distribution compliance ●Smooth Integration with deployment tools U 5 < 10% < 1% © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 6. Users / Sysadmins want packaged software ● Ease of use: GUI, CLI >= 90% ●Distribution compliance ●Smooth Integration with deployment tools U < 10% < 1% 6 D © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0 Lag between SW and Pkg availability ●Test of alpha/beta/VCS SW ●Too many: ● distributions, ● versions, ● package formats, ● tools to generate packages ● tools to manage repositories ●
  • 7. Upstream benefits from Continuous packaging Packaging should be a project concern as well as coding, testing, installing, .... especially for smaller projects Use packaging as your only way of delivery (not a dream) Minial overhead, slightly longer than providing a tgz, maximum benefit: Consistancy and reproduceability for devs and users Distribution & deployment server integration, Improved deployment without risk of screwing up the system 7 Packaging is also a marketing activity for the upstream project based on a technical content. It's an easy way to extend your user base, and improve your community relationship and is a “competitive advantage”. New mantra: “Package early, package always” THE SOLUTION IS INDEED CONTINUOUS PACKAGING (whatever the tool) © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 8. Continuous Packaging Architecture Local Build Server (may host VMs and/or VEs) Packagers VM or VE Build Repository Server Build + metadata Local build 8 Project RM Build Farm Developers (may host VMs) © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0 Remote build
  • 9. Provisioning the Continuous Packaging Cloud Local Build Server (may host VMs and/or VEs) VM or VE Build Build + 9 metadata Local build Project RM Build Farm (may host VMs) Remote build © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0 Repository Server
  • 10. Goals Project-builder main goal is to help you package continuously being agnostic: VCS agnostic: no VCS but guys it's 21st century now, SVN, CVS, Mercurial, GIT and GIT/SVN, SVK.... OS agnostic: Linux: RPM, deb, ebuild, slack based, ... 150+ distro tuples made and counting – repositories for yum, urpmi, apt. Solaris pkg. HP-UX sd in roadmap 10 Build environment agnostic: local, VM (QEMU, KVM...), VE (rpmbootstrap, rinse, mock, debootstrap...), RM (external build farm) No project impact: preserves the md5sum of the delivered upstream sources. Can be completely external to the upstream project. Avoids duplication of code and metadata THE SOLUTION IS INDEED CONTINUOUS PACKAGING (with projectbuilder.org !) © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 11. Goodies Project-builder provides additional goodies: Easy VMs/VEs/RMs installation/setup. More on that later Macro system with perl variables to avoid duplication Skeleton generation to help starting Manages package delivery up to your repository (ssh based) with repository management (yum, apt, urpmi) Manages announces on mailing lists 11 Integration of tests in the process Manages patches/additional sources when not upstream Checks validity of packages built (lintian, rpmlint) Easy creation of new versions for upstream management Manages website delivery © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 12. VM, VE & RM Management VE Creation: debootstrap for .deb based ones. rpmbootstrap (modeled after debootstrap): create chroot for multiple RPM based distributions (Mageia, Fedora, Mandriva, CentOS, OpenSuSE) VM|RM Creation: KVM or QEMU iso install possibilities. 12 LinuxCOE/OpenStack as provisioning tool for your VM|RM VM|VE|RM setup: adds pb tools and build account VM|VE Snapshot feature – Update of VM|VE|M optional Building in VM|VE|RM == building locally (build2vm|ve|rm vs build2pkg). ssh communication for VM/RM © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 13. Metadata Management Packaging process independent of the project and external Metadata isolated - No duplication 13 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 14. Configuration file usage Macro example: ./rpmbootstrap/pbfilter/all.pbf:filter PBSUMMARY = rpmbootstrap is a tool similar to debootstrap for RPM based distributions ./rpmbootstrap/rpm/rpmbootstrap.spec:Summary: PBSUMMARY ./rpmbootstrap/deb/control:Description: PBSUMMARY ./rpmbootstrap/pkg/pkginfo:NAME="PBSUMMARY" 14 Instantiation possible from distro-ver-arch, distro-ver, distro, distro-family, distro-type, os Similar approach for all other parameters (Cf: man pb.conf) © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 15. Commands [cms|sbx]2build: Create tar files for the project under your CMS. Parameters are packages to build if not using default list build2pkg: Create packages for your running distribution build2ssh: Send the tar files to a SSH host pkg2ssh: Send the packages built to a SSH host build2vm|ve|rm: Create packages in VMs/VEs/RMs, launching them if needed and send those packages to a SSH host once built launchvm: Launch one virtual machine script2vm|ve|rm: Launch a VM/VE/RM if needed and executes a script on it test2vm|ve|rm: Test inside a VM/VE/RM newvm|ve: Create a new VM/VE/RM setupvm|ve|rm: Setup a VM/VE/RM for pb usage newver: Create a new version of the project derived from the current one newproj: Create a new project and a template set of configuration files under pbconf 15 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 16. The Big picture Packagers newver / newproj Packaging newvm|ve / setupvm|ve|rm build2vm|ve|rm cms|sbx2build Project 16 Developers © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0 Building build2pkg build2ssh Packages pkg2ssh
  • 17. Multi platform packaging cycle VMs/VEs/RMs Developers UUWL Packages 17 VM/VE/RM Packagers © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 18. Q & A up to now ? 18 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 19. DEMONSTRATION 19 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 20. Special announce for LCA 2014 ! 20 © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 21. More Special announce for LCA 2014 ! I hate time release delivery Of course, 0.12.3 has bugs ;-) Lack of time to test thoroughly So I hate time release delivery So expect a 0.12.4 later this week, when more tests have been done ! So back to feature set release in fact 21 Did I say I hate time release delivery ? © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 22. To be done LSB chroot support. (or not) LXC support (which one ?) Support for libvirt, virsh, openstack API Other CMS (Bazaar, …) only when/if needed Other VMs (VMWare, Xen, ...) only when/if needed Multiple delivery means 22 Look at interactions with Buildbot Add non-interactive signature support for .deb Config-Model for configuration file management REST API and Web Interface would be nice. Any contributor ? © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 23. Learn Project-Builder.org Start with the Lab (63 pages) Use man (pb, pb.conf + 8 ProjectBuilder::* man pages) Use the mailing-list pb-announce and pb-devel at http://www.mondorescue.org/sympa Use examples from 23 http://trac.project-builder.org/browser/projects/ © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 24. Web Resources Project-Builder Web site / Trac / Wiki: ● http://www.project-builder.org ● http://trac.project-builder.org Projects using project-builder.org: ● http://www.project-builder.org ( of course :-) ● http://www.mondorescue.org 24 ● Http://www.linuxcoe.org ● http://www.fossology.org © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 25. Related tools Project-Builder is mostly suited for upstream projects wanting to package their applications Distributions provide each their build tools ● SuSE: Open Build Service (Multi distro, Web based, BaaS) ● Fedora (Koji) ● Mandriva/Mageia (Youri, mdvsys, mgarepo...) Other complementary tools: ● Buildbot ● KVM/QEMU ● rpmbootstrap, rinse, mock ● Parallel::ForkManager, DBI, DB::SQLite, File::MimeInfo, Mail::Sendmail 25 Project-Builder.org is one of the tool of the vcs-pkg.org initiative. © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0
  • 26. Contact - Thanks Bruno.Cornec@hp.com (Open Source and Linux Technology Architect at the HP/Intel Solution Center) http://www.hp.com/linux http://opensource.hp.com Thanks goes to: 26 Linus Torvalds, Richard Stallman, Eric Raymond, Nat Makarevitch, René Cougnenc, Eric Dumas, Rémy Card, Bdale Garbee, Bryan Gartner, Craig Lamparter, Lee Mayes, Gallig Renaud, Andree Leidenfrost, Phil Robb, Bob Gobeille, Martin Michlmayr among others, for their work and devotion to the Open Source Software cause... and my family for their patience :-) © Copyright 2012 Hewlett-Packard Development Company, L.P. - Licensed under CC-by-SA 3.0 ”Changes are never easy to make. There is comfort and safety in tradition, but change must come, no matter how painful or expensive it may be.” Bill Hewlett