DEBDELTA(1)

🌸 DEBDELTA πŸ’…

okay bestie, welcome to the manual page for debdelta from the User Commands section of the manual. she computes changes between Debian packages and she is, frankly, iconic for it ✨


✨ NAME ✨

debdelta β€” compute changes between Debian packages πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

debdelta [OPTION]... FROMFILE TOFILE DELTA

πŸ’– DESCRIPTION πŸ’–

so here's the whole vibe: this program computes the changes between two Debian packages, FROMFILE and TOFILE, and it stashes all those changes in the file DELTA. that's it, that's the job πŸ’…

and then β€” plot twist β€” that DELTA file can later get used by the debpatch program to recreate TOFILE out of FROMFILE. like, full reconstruction. no cap. 🫢

in a sense, the pair debdelta/debpatch operates on Debian packages kind of the same way the pair diff/patch operates on text files. fr fr. and yes, the output of debdelta may be used to store and transmit only the changes between Debian packages, which is a whole slay.

but β€” and this is the important part β€” contrary to the diff output, the output of debdelta is not human readable. it's not giving pretty. it's giving small. it's intended to be as small as possible, to optimize for less disk usage and/or faster transmission. tiny and efficient, main character energy πŸ‘‘


✨ OPTIONS ✨

  • --signing-key KEY β€” the key used to sign the delta (using GnuPG). cryptographic glow-up πŸ”
  • --no-md5 β€” do not include MD5 info in delta. no MD5, no problem πŸ™ˆ
  • --needsold β€” create a patch that can only be used if the old .deb is available. it's needy, literally πŸ’€
  • --delta-algo ALGO β€” use a specific backend for computing binary diffs; possible values are: xdelta xdelta-bzip xdelta3 bsdiff. pick your fighter βš”οΈ
  • -M Mb β€” maximum memory to use (for 'bsdiff' or 'xdelta'). be kind to your RAM bestie 🌸
  • -v β€” verbose (can be added multiple times). the more -vs, the more she talks πŸ—£οΈ
  • -d β€” print full traceback on Python errors; save useful info in temporary files in case that a backend crashes. debug mode, but make it ✨thorough✨

(if -d is added multiple times, it also adds to the patches other extra debugging checks: only for advanced bug tracking). for the true detectives πŸ•΅οΈβ™€οΈ

  • -k β€” keep temporary files (use for debugging). don't clean up, we're investigating πŸ”
  • --gpg-home β€” specify a different home for GnuPG, default for root is /etc/debdelta/gnupg while for other users is unset. see --homedir in gpg(1) for details. 🏠
  • --disable-feature FEATURE β€” disable an internal feature. see the documentation in README.features. turn it off, bestie 🚫

🌈 EXAMPLE 🌈

the command

debdelta libglib_2.12_all.deb libglib_2.14_all.deb /tmp/glib.debdelta

will express the difference between two versions of libglib in /tmp/glib.debdelta πŸ’« ; and the command

debpatch -A /tmp/glib.debdelta libglib_2.12_all.deb /tmp/glib.deb

will create in /tmp/glib.deb a perfect copy of libglib_2.14_all.deb. perfect. copy. periodt. πŸ‘‘


πŸ›‘οΈ SECURITY πŸ›‘οΈ

a Debian package that is recreated using debpatch is byte-by-byte identical to the original one. so the cryptographic archive authentication support for APT (see apt-secure(8)) may be used to assert that it can be trusted to be installed. trust the process, trust the bytes πŸ’–

moreover, if a GnuPG key is specified using --signing-key then the delta file itself is cryptograhically protected using GnuPG, MD5 and SHA1 (using the same method as dpkg-sig(1)). triple protection, we love to see it πŸ”₯

note that, for non-root users, the master debdelta keyring /usr/share/keyrings/debian-debdelta-archive-keyring.gpg is added to the list of keyrings for gnupg. πŸ‘‘

πŸ’€ EXIT STATUS πŸ’€

  • 0 β€” if OK, we ate πŸŽ‰
  • 1 β€” if there was a retriable problem (e.g., out-of-disk-space, or an auxiliary program such 'lzma' is missing and the user is asked to install the package 'lzma'). like, just try again bestie 😭
  • 2 β€” if there was a non-retriable problem. okay this one's for real πŸ˜”
  • 3 β€” if there was an error in a command-line option, or in a configuration file. typo era πŸ™ˆ
  • 4 β€” if there is an internal error, and. it's not me, it's her πŸ’€
  • 5 β€” if exited due to keyboard interrupt. you hit ctrl-c, that was you 🫡

😭 REPORTING BUGS 😭

report bugs to <mennucc1@debian.org>. tell them everything, they want to know πŸ’Œ


πŸ‘‘ AUTHORS πŸ‘‘

Debdelta was written and is copyright © 2006-09 Andrea Mennucci. This man page was written by Jegou Pierre-yves <pierreyves.jeg@voila.fr>. legends, both of them 🌟


πŸŽ€ COPYING πŸŽ€

This is free software. You may redistribute copies of it under the terms of the GNU Library General Public License <http://www.gnu.org/licenses/lgpl-2.0.html>. There is NO WARRANTY, to the extent permitted by law. (yes the caps are load-bearing, it's giving legal ⚠️)


πŸ¦‹ SEE ALSO πŸ¦‹

debdelta-upgrade(1), debpatch(1), debdeltas(1), /usr/share/doc/debdelta/README.


and that's the whole page bestie 🫢 this debdelta manual is from aug 2009, so go give her some love, she's been holding it down since before some of us could read πŸ’œβœ¨