DH_PPP(1p)
π DH_PPP β the manual page, but make it slay
okay bestie so you know how this is dh_ppp from the User Contributed Perl Documentation? yeah. she's a debhelper program and she's about to calculate your ppp dependencies and honestly? iconic behaviour. let's get into it π«Ά
β¨ NAME β¨
dh_ppp β calculate ppp dependencies. that's it. that's the whole job. she calculates ppp dependencies and she does it well. no cap π
πΈ SYNOPSIS πΈ
dh_ppp [debhelper options] [--breaks] [--force] [--plugin-dir]
look at her. minimal. elegant. three little flags and whatever debhelper options you feel like throwing at her. main character energy fr fr β¨
π¦ DESCRIPTION π¦
so dh_ppp is a debhelper program and what she does is add the appropriate ppp dependencies onto packages that build pppd plugins. that's the whole vibe. plug-in builders get their deps handled, periodt.
by default, some entries get added to misc:Depends β and the point of those entries is to make sure that any package containing plugins that get loaded into pppd depends on an appropriate version of the ppp package. like, bestie, if your plugin is getting loaded into pppd, you need the right ppp. it's giving responsible packaging π
but maybe you'd rather use a Breaks relationship instead! for example, if your package supplies a pppd plugin but doesn't actually require it for normal operation. in that case you should pass the --breaks option and misc:Breaks will get populated instead of misc:Depends. swap one for the other, no drama π
here's the important bit: Substvars entries are only added if a pppd plugin is detected in the build products β unless you specify --force, in which case we just assume. and how do we detect a plugin, you ask? great question, obsessed that you asked. plugins are detected by searching a package's build products for libraries with a symbol named plugin_init. that's the fingerprint. that's the tell. π
and if a plugin is found that does not also contain a pppd_version symbol? a warning gets emitted. β οΈ not me having opinions about your plugin's symbol table but ok.
also pls note: there's a dh addon named ppp which can be used to automatically invoke dh_ppp for you. so you don't even have to type it yourself. lazy girl summer but make it Debian π
π FILES π
/usr/share/ppp-dev/substvarsβ template substitution variables, bestie. the values in this file get used when populating themisc:Dependsormisc:Breakssubstition variables. or β and this is the fun part β they may be manually copied into a package's substvars if one wishes not to usedh_ppp. imagine doing it by hand. couldn't be me but respect the hustle π
π OPTIONS π
--breaksβ instead of populatingmisc:Dependsto ensure an appropriate version ofpppis used, populatemisc:Breakssuch that a inappropriate version ofpppmay not be used. yes she said "a inappropriate". we love her. anyway: Breaks instead of Depends, got it? π₯--forceβ do not try to detect pppd plugins in the package, and always assume that a plugin is present. this will causemisc:Depends(ormisc:Breaks) to always be populated. no detection, no searching, just vibes and assumptions. β¨--plugin-dirβ simply outputs the path to the pppd plugins directory for the current ABI version. that's it, that's all she does here. when this flag is specified,dh_pppmakes no attempt to detect any plugins nor does it update any substitution variables. she's just here to tell you where the directory is and then she leaves. queen behaviour π
β οΈ NOTES β οΈ
please note that this command is not idempotent. dh_prep(1) should be called between invocations of this command (with the same arguments). otherwise, it may cause multiple instances of the same text to be added to the substition variables. π
like. running it twice with the same args and not calling dh_prep(1) in between? that's how you get duplicate text in your substvars. do not do this. i'm begging you. π
also note thatdh_pppshould be run beforedh_gencontrol. thepppsequence addon fordhdoes the right thing β this note is only relevant when you are callingdh_pppmanually. π«Ά
π SEE ALSO π
go read it. it's good for you. like vegetables but for packaging π₯¬
π AUTHORS π
- Chris Boot
<bootc@debian.org>
thank you Chris, king, we love you for this one π
and that's the whole page bestie!! this manual is perl v5.40.1 and it was dated 2026-07-24, so if you're reading this from the future, hi, hope your plugins all have their pppd_version symbol. take care of her, she's a good little debhelper program πΈβ¨π¦π
π
π¦ where this page comes from
- ubuntu stonking: ppp-dev 2.5.2-1+2build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms