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 the misc:Depends or misc:Breaks substition variables. or β€” and this is the fun part β€” they may be manually copied into a package's substvars if one wishes not to use dh_ppp. imagine doing it by hand. couldn't be me but respect the hustle πŸ’–

πŸ’… OPTIONS πŸ’…

  • --breaks β€” instead of populating misc:Depends to ensure an appropriate version of ppp is used, populate misc:Breaks such that a inappropriate version of ppp may 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 cause misc:Depends (or misc: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_ppp makes 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 that dh_ppp should be run before dh_gencontrol. the ppp sequence addon for dh does the right thing β€” this note is only relevant when you are calling dh_ppp manually. 🫢

πŸ’œ 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