dpkg-build-api(7)

πŸ’– dpkg-build-api(7) β€” dpkg suite bestie edition πŸ’–

okay so this is the manual page for dpkg-build-api(7), and it's part of the dpkg suite. It's literally all about the source package dpkg build API level, and yes, it's as iconic as it sounds. ✨

🌸 NAME 🌸

dpkg-build-api β€” source package dpkg build API level

✨ SYNOPSIS ✨

Build-Depends:
 dpkg-build-api (= 1),

🫢 DESCRIPTION 🫢

The source package dpkg build API level is a versioned interface for source packages, where each API level gives you its own specific behaviors and guarantees. πŸ’…

These interfaces can be adopted by packages in a gradual way, and they can be phased out more easily than with global behavior changes. It's giving "glow-up without breaking everyone's fave package" energy, fr fr.

You declare this API level through build-dependencies, in one of Build-Depends, Build-Depends-Indep or Build-Depends-Arch, or via the environment variable DPKG_BUILD_API. That environment variable will override those build-dependency fields if both are present, and it might emit a warning if they are different. πŸ‘€

πŸ‘‘ API LEVELS πŸ‘‘

v2

This level is still under development, and cannot be declared via build-dependencies. Not ready for the group chat yet, bestie. πŸ™ˆ

v1

This is the recommended level. Since dpkg 1.22.0. πŸŽ€

Changes from v0 are:

  • dpkg-shlibdeps no longer uses the LD_LIBRARY_PATH environment variable. The -l option should be used instead.
  • dpkg-buildpackage defaults to Rules-Requires-Root value no. To restore the v0 behavior (from before dpkg 1.22.13) Rules-Requires-Root should be set to binary-targets.
  • dpkg-buildpackage expects all required debian/rules targets to be supported and no longer has backwards compatibility fallback code. The required targets are clean, build, build-indep, build-arch, binary-indep and binary-arch.
  • vendor.mk defaults to using dpkg_vendor_derives_from_v1 for the dpkg_vendor_derives_from macro. To restore the v0 behavior set dpkg_vendor_derives_from to dpkg_vendor_derives_from_v0.
  • default.mk defaults to including buildtools.mk.

v0

This is the current global level, equivalent to not specifying one. The interfaces and behaviors provided are subject to the normal global interface updates, which tend to require longer deprecation cycles and/or coordinated transitions. It's the "classic" vibe, with all the usual global-update caveats. πŸ¦‹

🌈 SEE ALSO 🌈

deb-src-control(5).


mwah πŸ’‹ sign-off time: this page comes from the dpkg suite, version 1.23.11-dirty, dated 2026-09-09, and the page name is dpkg-build-api(7). byeee, go ship something slay 🫢✨

πŸ“¦ where this page comes from