Alien:...ge::Deb(3pm)
๐ NAME ๐
Alien::Package::Deb โ ok so this is an object that represents a deb package, bestie โจ
๐ฆ DESCRIPTION ๐ฆ
So like, this is an object class that represents a deb package. It's derived from Alien::Package โ it's giving "I inherited all my good traits from my parent class" energy ๐
๐ FIELDS ๐
These are the lil attributes this object carries around, no cap:
have_dpkg_debโ set to a true value ifdpkg-debis available. It's basically the "do I have my tools or not" flag ๐งฐdeb_member_listโ set to the list of member names in the deb package. Like the guest list but for archive members ๐dirtransโ after the build stage, this gets set to a hash reference of the directories we moved files from and to, so these moves can be reverted in thecleantreestage. Undo button, but make it data ๐ฆโก๏ธ๐fixpermsโ if this is set to true, the generateddebian/ruleswill rundh_fixperms. Permissions? Fixed. Slay ๐ง
โจ METHODS โจ
Every single one, we're going through all of them, periodt ๐ซถ
initโ setshave_dpkg_debifdpkg-debis in the path. The author literally says they prefer to usedpkg-debif it's available since it is a lot more future-proof. Visionary behavior honestly ๐ฎcheckfileโ detects deb files by their extension. Vibe check, but for filenames ๐installโ installs a deb withdpkg. Pass in the filename of the deb to install. Go off,dpkg๐ซtestโ tests a deb withlintian. Pass in the filename of the deb to test. Lintian said "let me review you" ๐งget_deb_member_listโ a helper method. Pass it the name of the deb and it will return the list ofarmembers. Very "I'll do it for you bestie" of it ๐getcontrolfileโ helper method. Pass it the name of a control file, and it will pull it out of the deb and return it. Fishing the control file out of the archive, iconic ๐ฃget_datamember_cmdโ helper method. Pass it the name of the deb and it will return the raw command needed to extract thedata.tarmember. Raw command, no filter ๐ฅscanโ implements the scan method to read a deb file. Reading it for filth (affectionate) ๐unpackโ implements the unpack method to unpack a deb file. Unboxing video but it's a tarball ๐ฆgetpatchโ this method tries to find a patch file to use in the prep stage. If it finds one, it returns it. Pass in a list of directories to search for patches in. Scavenger hunt but productive ๐prepโ adds a populateddebiandirectory to the unpacked package tree, making it ready for building. This can either be done automatically, or via a patch file. Two paths, both valid ๐buildโ builds a deb. That's it, that's the method. Construction era ๐๏ธcleantreeโ deletes the entiredebian/directory. Gone. Reduced to atoms ๐packageโ set/get package name. Always returns the package name in lowercase with all invalid characters removed. The name is, however, stored unchanged. So it's like: what you see is sanitized, what's saved is the original ๐versionโ set/get package version. When the version is set, it will be stripped of any epoch. If there is a release, the release will be stripped away and used to set the release field as a side effect. Otherwise, the release will be set to1. More sanitization of the version is done when the field is retrieved, to make sure it is a valid debian version field. Sanitization on the way in and on the way out, highkey thorough ๐งผreleaseโ set/get package release. Always returns a sanitized release version. The release is, however, stored unchanged. Same deal aspackage, sanitized on the way out, original on the inside ๐ซงdescriptionโ set/get description. Although the description is stored internally unchanged, this will always return a sanitized form of it that is compliant with Debian standards. Debian standards said "we have rules" and honestly, respect ๐dateโ returns the date, in rfc822 format. Timestamped, bestie ๐ฐ๏ธemailโ returns an email address for the current user. Slide into the current user's inbox ๐งusernameโ returns the user name of the real uid. Not the fake one, the real one ๐ชชsavescriptโ saves script to thedebiandirectory. Saving the script like it's a screenshot for the group chat ๐gen_postinstโ modifies or creates apostinst. This may include generated shell code to set owners and groups from theowninfofield, and update modes from themodeinfofield. It's giving "I wrote your postinstall for you, you're welcome" ๐
๐ธ AUTHOR ๐ธ
Joey Hess <joey@kitenet.net> โ the original main character ๐ซก
and that's the whole page, bestie!! no notes, we read every single line ๐
this was perl v5.40.1, dated 2025-10-08, and yes we're citing our sources like good students ๐ โจ๐ฆ๐
๐ฆ where this page comes from
- ubuntu resolute: alien 8.95.9-1 ยท GPL-2.0-or-later
- ubuntu stonking: alien 8.95.9-1 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms