Top Banner
How to be a distribution-friendly project (and why you should care!) Donnie Berkholz Gentoo Linux This presentation is licensed Creative Commons Attribution-ShareAlike
13

How to be a distribution-friendly project

Oct 19, 2014

Download

Technology

Getting your program integrated into Linux distributions will help to increase its adoption and to ensure that users have it well-integrated into their systems and kept up-to-date easily. Gentoo Linux has more than 13,000 packages, and Donnie will share his extensive experience creating and maintaining Gentoo packages and offer suggestions for improvement.

Technical and philosophical questions that determine how easy or difficult it is for distribution packagers to work with upstream developers will be discussed. Technical issues include the basic metaphor that a package\'s build and installation process is an API to distribution packages -- it should be changed carefully and purposefully, and changes should be well-documented. In addition, Donnie will describe the level of control and system integration desired by packagers. Philosophical issues, including user expectations and licensing requirements, differ between distributions and can cause major conflicts with upstream developers. Finally, Donnie will discuss developments toward the future of distribution packaging so that upstream developers can consider how this fits into the future of their software.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: How to be a distribution-friendly project

How to be a distribution-friendly project (and why you should care!)

Donnie BerkholzGentoo Linux

This presentation is licensed Creative Commons Attribution-ShareAlike

Page 2: How to be a distribution-friendly project

What does that mean?

● Distributions: Fedora, Debian, Gentoo, etc● Packages are managed by the

distribution, so you don't have to install by hand.

Page 3: How to be a distribution-friendly project

Why should you care?

“How to become a bigger player?”

- X. Gonze, 24 March 2009

Flickr: 3eyedmonsta

●Bigger user community == bigger developer community. Same conversion percentage means more developers.●If you're in a distro, people will choose your package over others that aren't. Assumption of quality, low barrier to entry●Distro will become the primary consumer channel

Page 4: How to be a distribution-friendly project

A unique opportunityUsing the GPL means you can get into distributions that only allow open source.

“We promise that the Debian system and all its components will be free according to these guidelines.”

“... Fedora will always be free for anybody, anywhere, to use, modify and distribute.”

A distribution gives users a unified interface so they don't need to know the details of installing your package.Flickr: Kliefi

Page 5: How to be a distribution-friendly project

What does a package do?

●It's a build script.●Basic info (homepage, where to download, license, optional features)●Functions to build it similar to a manual build (fetch, unpack, compile, install, etc)

Page 6: How to be a distribution-friendly project

How do you get software packaged?

Flickr: ToniVC

●I maintain 400-500 packages●Time is the limiting factor. Distribute work to upstream projects whenever possible.●Make it as easy as possible. Act like other open-source packages.

Page 7: How to be a distribution-friendly project

Philosophies

Stability

Control Knowledge*

●Stability: Don't change if avoidable. Figuring it out takes a while.●Control: give us the flexibility we need: options, flags, etc.●Knowledge about the first two

Page 8: How to be a distribution-friendly project

Stability

Flickr: tony.evans

●Build process == API●We access it like you access libraries, programmatically in a build script●If you change it, have a reason and tell us why!●Principle of Least Surprise

● Versioning: “Stability” relative to other packages

● Same for build system.Stable relative to your past releases, and stable (few changes) relative to other open-source projects

Page 9: How to be a distribution-friendly project

Control

Flickr: undergroundbastard

● Bundling

● Don't bundle patches!● Autodetect w/ manual override● pkg-config

● Optional features

● Respect: environment, parallel build

● Installation: Put specific filetypes anywhere

● “Standard” build systems are easier for packagers because we already know them

● WWGD: What Would GNU Do?

Page 10: How to be a distribution-friendly project

Knowledge

Flickr: tsmyther

● Document stability & control● Steady state & changes

● PACKAGING file● How to build● Dependencies● New releases● Bugs/patches (open!)● Accessing current source

Page 11: How to be a distribution-friendly project

The future of packaging

Flickr: Chris Seufert

Generating packages directly from bzr tags: No tarballs involved

Page 12: How to be a distribution-friendly project

Philosophies

Stability

Control Knowledge*

●Stability: Don't change if avoidable. Figuring it out takes a while.●Control: give us the flexibility we need: options, flags, etc.●Knowledge about the first two

Page 13: How to be a distribution-friendly project

Want to talk more?

● Packaging● Encouraging new developers

● A copy of this presentation

Email: [email protected]: ABINIT: <your topic>