From Debian, with ♥
to the Perl community
♥ Debian and the Debian Perl Group
♥ How to make our lives even easier
♥ Maintaining Perl distributions as
♥ Free Operating System
♥ a.k.a. "Linux Distribution"
♥ since 1993
♥ as of Aug 21, 2016:
25_806 source packages
51_848 binary amd64 packages
Debian Perl Group
♥ since 2004
♥ Our goal:
Constantly improve the coverage
of available Perl modules in Debian.
♥ 3_215 of 3_476 lib.*-perl packages
♥ 127 members
♥ 73 committers last 2 years
♥ We don't maintain perl itself
I believe that the core, beautiful, exciting thing that we
do inside Debian, and that any other excellent Linux
distribution does, is exactly accepting what upstream does.
Not accepting in the sense of passive apathy, but in the
sense of wholehearted embrace of upstream's ideas,
expertise, passion, and hard work, and finding a way to
incorporate that into our distribution. Acceptance in the
sense of reaching out with both hands and taking hold of
the gift we are given with a firm grasp and a grateful
Linux distributions are *all about* upstreams. Those
upstreams are the reason why we're here.
―― Russ Allbery
Debian Perl Group and the CPAN
In our experience we are quite similar:
♥ Kinda relaxed, cooperative, helpful, friendly
♥ Focus on quality and Doing It Right™
♥ Solutions before ego boosting (teamwork)
Our humble message to
the CPAN community…
Thanks a lot!
What can you do to make
our lives even easier?
♥ Keep up the good work!
♥ Make good, state-of-the-art
♥ Use current tools,
follow best practices
Do you want more details?
♥ Include a Changes file
♥ Changes != $vcs log
♥ Please, don't say:
"Fix RT #123"
"Merge PR #456"
♥ Mention these in Changes:
CPAN ticket ID
GitHub issue ID
♥ Fill "resources" subkeys in META.*
♥ Nice! We use it too
♥ Please tag, sign if you can, and
don't forget to "git push --tags"
♥ Lancaster consensus %ENV:
♥ Internet is not guaranteed in build
♥ Don't assume anything about build:
source directory, blib, uid, .git, …
♥ Recommendation: Test::Spelling
♥ No prompts
♥ or use ExtUtils::MakeMaker::prompt()
♥ Also think of the CPAN smoke testers
♥ No debian/ directory
♥ or .gitignore
♥ or temporary files
♥ or backup files
♥ Including external C libraries
might be needed for other OSes,
♥ but please make it easy for us
to use the Debian system libs
(configure switch, env variable…)
inc/ directory is evil
♥ Code duplication,
♥ bug duplication!
♥ minified, browserified…
♥ Not accepted as source code
♥ Minimum required versions…
♥ not what is installed locally
♥ not what is in bleadperl
♥ "47.11 → 0" ?!
♥ 0 → '0' → 0 → '0' → … ?!
♥ Use a consistent versioning scheme
♥ CPAN: 0.10 < 0.1001 < 0.11
♥ Debian: 0.10 < 0.1001 > 0.11
✔ 0.1001 → 0.10.01 (or)
✔ 0.11 → 0.1100 (or else)
✔ 0.11 → 1:0.11
♥ We need copyright and licenses,
♥ free software licenses,
♥ consistent & complete
♥ Use modern tools, e.g. Dist::Zilla
Maintaining Perl distributions
as Debian packages
♥ 3 mailing lists
♥ IRC (#debian-perl @ OFTC)
♥ Meetings in meatspace:
Debian Perl Sprint (since 2015)
♥ Packages are maintained in Git
(svn before summer 2011)
♥ KGB sends notifications to IRC
♥ Lots of them
♥ Some generic Debian tools
♥ Some (pkg-)perl specific
♥ Package Entropy Tracker
♥ VCS-centered view on packages showing our work:
new upstream releases,
♥ create (or update) Debian package
from CPAN tarball
♥ cpan2deb =~ dh-make-perl … --build
(a package for local install only)
♥ Foo::Bar is libfoo-bar-perl by default
(but we change it for some apps)
♥ Result → a Debian source package:
an unpacked tarball + debian/ directory
containing meta information and build
instructions, on top of a Git repository
♥ Collection of helpers
♥ CLI called as "dpt …"
manipulating our Git repositories
forwarding bug reports and patches
combining upstream Git repos with ours
(hopefully soon, making pull requests)
Track your packages!
♥ Package Tracking System:
(subscription to event types available)
♥ Bug Tracking system:
♥ Git repository:
♥ Build logs (XS or source-only arch:all):
♥ Debian Perl team development server
Authors not interested
♥ What happens when upstream authors don't have
interest in anything from downstream distros?
♥ How to avoid users sending them complaints?
♥ Should a disclaimer be added to the package description?
♥ Patches and bugs should not be forwarded?
♥ Please, let us know!
Copyright and licenses
♥ This page
© 2019, Alex Muntada
CC BY-SA 4.0
♥ Based on the YAPC::Europe 2016 presentation:
© 2016, Alex Muntada
CC BY-SA 4.0
♥ Based on:
"From Debian with ♥"
© 2014, gregor herrmann
CC BY-SA 4.0
♥ "use Debian" logo:
© 2009, ghostbar
CC BY-NC-SA 2.0
♥ Parts from
"How to maintain 2500 Perl Modules as Debian Packages"
© 2013, Axel Beckert
CC SA 3.0 DE
Thanks a lot for
your amazing work!
♥ Setup a way for upstream authors to track all their packages
Add support for it in tracker.debian.org?
Maybe adding a field stating so in META?
♥ Create a "dzil release" plugin to test readiness for Debian
♥ Explain how to request a package (wnpp RFP)
♥ Add some pictures
♥ Elaborate why inc/ can become evil (Module::Install)
Show good uses cases for inc/