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 if dpkg-deb is 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 the cleantree stage. Undo button, but make it data ๐Ÿ“ฆโžก๏ธ๐Ÿ“
  • fixperms โ€” if this is set to true, the generated debian/rules will run dh_fixperms. Permissions? Fixed. Slay ๐Ÿ”ง

โœจ METHODS โœจ

Every single one, we're going through all of them, periodt ๐Ÿซถ

  • init โ€” sets have_dpkg_deb if dpkg-deb is in the path. The author literally says they prefer to use dpkg-deb if 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 with dpkg. Pass in the filename of the deb to install. Go off, dpkg ๐Ÿ’ซ
  • test โ€” tests a deb with lintian. 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 of ar members. 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 the data.tar member. 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 populated debian directory 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 entire debian/ 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 to 1. 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 as package, 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 the debian directory. Saving the script like it's a screenshot for the group chat ๐Ÿ“
  • gen_postinst โ€” modifies or creates a postinst. This may include generated shell code to set owners and groups from the owninfo field, and update modes from the modeinfo field. 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