PYTHON-MKDEBIAN(1)

πŸ’– PYTHON-MKDEBIAN πŸ’–

okay bestie, so you know how the manual calls this PYTHON-MKDEBIAN(1) and files it under User Commands? Yeah. It's a little command-line cutie and she's about to change your whole packaging life. Sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

python-mkdebian β€” the girl who generates a suitable Debian source package for a standard distutils application. no cap. she does the boring Debian Policy homework so you don't have to. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

python-mkdebian [options]

that's it. that's the whole vibe. you pass her some options and she goes to work.


🌸 DESCRIPTION 🌸

So here's the tea. This script generates a reasonably Debian Policy compliant Debian source package for a Python application β€” but only if that application uses distutils properly. Like, correctly correctly. She's picky, but in a fair way.

She assumes there are no public Python modules, and she generates just a single application binary package. One package. One icon. Main character energy. πŸ‘‘

Where does she get her info? From the .egg-info file that setup.py generates. She pulls out:

  • author
  • project name
  • description
  • version
  • upstream source
  • license
  • required and provided Python modules β€” and these get translated to Debian python library package names and automatically added as package dependencies. yes bestie, auto-deps. obsessed. 😭✨

She also generates a simple cdbs/python-support rules file.

πŸ’‘ Real talk: python-mkdebian was designed to be used with the DistUtilsExtra.auto module, which calculates required Python dependencies automatically. That's her ideal collab.

But β€” and this is important β€” she makes no explicit assumptions about DistUtilsExtra. So if your setup.py has complete information, she will work with any distutils setup. She's flexible like that. 🧚


πŸ’… OPTIONS πŸ’…

okay this is the good part. the flags. let's go one by one, no skipping, we don't do that here.

  • --force-control=FORCE_CONTROL β€” Force control file behaviour. She accepts exactly one of these three values:
    • none β€” keep the control file unchanged
    • deps β€” only update dependencies
    • full β€” recreate the whole file

And the default? It's deps, so by default only dependencies get updated. lowkey the safest option, highkey the smartest one.

  • --force-copyright β€” Force the whole copyright file to be recreated. By default she will not touch an already existing copyright file, so that you can customize it. she respects your edits, periodt. 🫢
  • --force-rules β€” Force the whole rules file to be recreated. Same deal: by default she will not touch an already existing rules file, so you can customize it. your rules, your world. ✨
  • --changelog=CHANGELOG β€” Add a changelog entry to debian/changelog. And yes, you can specify this multiple times. stack 'em up. πŸ“š
  • --dependency=PACKAGENAME β€” Add an additional Debian package dependency. Also can be specified multiple times. more deps, more love. πŸ’œ
  • --prefix=PREFIX β€” Ask for installing all your modules in the dedicated PREFIX. The default is /usr. classic. iconic. πŸ’«
  • --version β€” Show the program's version number and exit. short, sweet, informative.
  • -h, --help β€” Show this help message and exit. when in doubt, ask for help, bestie. no shame in it. πŸ™ˆ

🌈 SEE ALSO 🌈

  • Python help for the distutils module β€” go read it, iykyk πŸ“–

πŸ‘‘ AUTHOR πŸ‘‘

python-mkdebian is developed by Martin Pitt <martin.pitt@ubuntu.com>. absolute legend, we stan. πŸŽ€


and that's the whole page, bestie!! 🌟 this was python-mkdebian from the May 2010 release, living in the python-mkdebian section of your friendly neighbourhood User Commands manual. go forth and package responsibly. mwah. πŸ’–πŸ¦‹πŸŒΈ