Download - How to be a distribution-friendly project
![Page 1: How to be a distribution-friendly project](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022051322/54445baeb1af9f700a8b489b/html5/thumbnails/13.jpg)
Want to talk more?
● Packaging● Encouraging new developers
● A copy of this presentation
Email: [email protected]: ABINIT: <your topic>