27
Why Would Anyone Develop on Debian/Ubuntu Wookey 19th September 2012 Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 1 / 25

Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Why Would Anyone Develop on Debian/Ubuntu

Wookey

19th September 2012

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 1 / 25

Page 2: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Outline

1 A little History

2 Debian Derivatives ecosystem

3 Developing the Debian way

4 Some new stuff

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 2 / 25

Page 3: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Outline

1 A little History

2 Debian Derivatives ecosystem

3 Developing the Debian way

4 Some new stuff

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 3 / 25

Page 4: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Prelude — the notion of “distribution”

distributions are meant to ease software management

key notion: the abstraction of package

offer coherent collections of software

killer application: package managers

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 4 / 25

Page 5: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Debian: once upon a time

Fellow Linuxers,This is just to announce the imminent completion of a

brand-new Linux release, which I’m calling the Debian LinuxRelease. [. . . ]

Ian A Murdock, 16/08/1993comp.os.linux.development

entirely independent - no one commercial sponsor

Free software, tools and open process

built collaboratively by experts

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 5 / 25

Page 6: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Debian: one of a kind?

1993 — not many distros back then19 years later — lots of other distros

openSUSE, Linux Mint, PCLinuxOS, Slackware, Gentoo Linux, CentOS, FreeBSD, Arch, Sabayon, Puppy, Lubuntu, MEPIS,Ultimate, NetBSD, Tiny Core, Zenwalk, CrunchBang, Dreamlinux, Vector, Kubuntu, Maemo, Red Hat, aptosid, Peppermint,PC-BSD, Chakra, Salix, ClearOS, KNOPPIX, Xubuntu, Super OS, BackTrack, gOS, TinyMe, Zentyal, EasyPeasy, Frugalware,Clonezilla, Pardus, Meego, OpenBSD, Quirky, PC/OS, Zorin, Debian, SystemRescue, Element, Unity, SliTaz, Macpup, wattOS,Scientific, Mythbuntu, Slax, DragonFLY, Elive, linux-gamers, 64 Studio, Ubuntu, mageia, Nexenta, Parisx, NuTyX, GhostBSD,Kongoni, moonOS, LFS, Lunar, Imagineos, Untangle, Fedora, Yellow Dog, aLinux, Yoper, IPFire, BlankOn, Mandriva, PureOS,FreeNAS, Moblin, Linpus, TurboLinux, blackPanther, . . .

with many differences:

technical choices

release management

release schedule

target users/purpose

community

support

packaging system

user base

look & feel

package set

How is Debian different?Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 6 / 25

Page 7: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

The distribution pipeline

yesterday . . .

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 7 / 25

Page 8: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

The new distribution pipeline

. . . today

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 7 / 25

Page 9: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

The new distribution pipeline

. . . today

This is a Good Thing

wider FLOSS adoption

more eyeballs swallow more bugs

more potential contributors

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 7 / 25

Page 10: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Outline

1 A little History

2 Debian Derivatives ecosystem

3 Developing the Debian way

4 Some new stuff

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 8 / 25

Page 11: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

A Debian derivative example: Ubuntu

started in 2004 by Canonicaltarget: desktop

Debian derivative

very popular (15–20x Debian?)

historical/past correlationsI heavily customized/forked in mainI very close to Debian elsewhere

sprouting its own derivatives (≈80)I . . . as Debian transitive derivatives

Debian

Ubuntu

Upstream

Patch

74%15%

11%

Data for Oneiric Ocelot, main + universe

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 9 / 25

Page 12: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Another derivative example: Emdebian (grip)

Only reprocessing tools - no upstream delta

Identical binaries

Reduced on-disc bloat

Smaller package set

Reduced metadata

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 10 / 25

Page 13: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Blends and remixes

Debian Pure Blends

Debian Edu

Debian Med

Debian Science

Debian GIS

DebiChem

Freedombox

Debian Automotive

blends.alioth.debian.org

[email protected]

Ubuntu remixes

Ubuntu Automotive remix

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 11 / 25

Page 14: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Outline

1 A little History

2 Debian Derivatives ecosystem

3 Developing the Debian way

4 Some new stuff

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 12 / 25

Page 15: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

The Universal OS

Wide architecture support (arm, i386, amd64, mips, powerpc . . . )

Same environment on dev box and target

I Easy debuggingI Everything available on target

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 13 / 25

Page 16: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Everything is a package

Reproducible build environment

Installable and removable components

Reliable OTA component updates

Automatic release tracking

Guaranteed corresponding source

Most things are already packagedI media playersI navigation toolsI virtualisationI bluez, conman, ofonoI GENIVI stackI . . .

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 14 / 25

Page 17: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Open and Legal

Open infrastructure - no secret sauce

Huge array of tools

rebuildd, reprepro, dpkg-dev, debrsign, dupload, sbuild, pbuilder, debdiff,debchange, debconf, svn-buildpackage, git-buildpackage, debcheckout,debcommit, debi, dose, dpkg-source, debsnap, apt-cache, grep-dctrl,devscripts, . . .

Legal checks already doneI All software meets the 4 freedomsI Linking checked for incompatibilityI Nothing you can’t distribute

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 15 / 25

Page 18: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Derivative Mechanisms

Choose your subset

dpkg-vendor - build-time variation

Package and patch tracking systems

Launchpad cross-distro references

Rebuildable components

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 16 / 25

Page 19: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Focus on the delta

Spend effort on the differentiation

Working upstream saves time

Mixed and prioritised repositories

Automotive needs really long-term security support

Fast boot choices/optimisations

Smaller delta→less work

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 17 / 25

Page 20: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Debian or Ubuntu

Fundamentally quite similar, but some differences

Debian

2 yr release cycle

3-3.5yr security support

Do-ocracy

More solid upgrades

Distributed support

sysvinit, systemd or upstart

Ubuntu

6 month release cycle

18-months security support -5yrs for LTS releases

Quicker to get things changed

Commercial support

Upstart only

Differences in binary drivers/firmware policy

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 18 / 25

Page 21: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Effective community working

Propose ideas early

Take and give feedback

Write down specs for shared understanding

Learn to work in the open

Upstreaming saves a lot of work in the long run

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 19 / 25

Page 22: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Managing derivatives - Everyone has the same issues

Tracking upstream

Managing patches

Running repositories, build daemons

VCS integration, making releases

Share that work with standard tools

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 20 / 25

Page 23: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Outline

1 A little History

2 Debian Derivatives ecosystem

3 Developing the Debian way

4 Some new stuff

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 21 / 25

Page 24: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Multiarch

Put libraries into architecture-specific pathsI /usr/lib/libfoo (amd64)→/usr/lib/x86 64-linux-gnu/libfooI /usr/lib/libfoo (armel)→/usr/lib/arm-linux-gnueabi/libfooI /usr/lib/libfoo (i386)→/usr/lib/i386-linux-gnu/libfoo

Install libraries side-by side i386/amd64, arm/arm64, amd64/arm64

Run foreign binaries in-place with qemu

32/64 special casing goes away (/lib64, /emul/ia32-linux)

Canonical locationsI Files don’t move when cross-bulding

Build/host version lockstep

Example:

dpkg --add-architecture i386

apt-get install skype

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 22 / 25

Page 25: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Crossbuilding - library paths

Runtime is the same as build-time.

Old system (classic/dpkg-cross)build-time library path: /usr/arm-linux-gnueabi/lib/libfooruntime library path: /usr/lib/libfoo

Multiarchbuild-time library path: /usr/lib/arm-linux-gnueabi/libfooruntime library path: /usr/lib/arm-linux-gnueabi/libfoo

Much harder for libtool to screw it up

Example:

apt-get -aarmel build-dep acl

dpkg-buildpackage -aarmel

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 23 / 25

Page 26: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Bootstrapping

dpkg build profiles

Remove circular build-dependencies

Cross-build from scratch

Dose3 dependency analysis

Ports possible without Yocto/OE

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 24 / 25

Page 27: Why Would Anyone Develop on Debian/Ubuntuwookware.org/talks/AutomotiveDebianDerivates.pdf · Outline 1 A little History 2 Debian Derivatives ecosystem 3 Developing the Debian way

Thanks

[email protected]

http://wookware.org

about the slides:available at http://wookware.org/talks/

copyright c© 2012 Wookeylicense CC BY-SA 3.0 — Creative Commons Attribution-ShareAlike 3.0

Wookey (Linaro) Why Would Anyone Develop on Debian/Ubuntu Automotive Linux Summit 2012 25 / 25