DH-MAKE-RAKU(1p)

πŸ“¦
version 0.8build1 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– DH-MAKE-RAKU(1p) πŸ’–

okay bestie, so this page lives in the User Contributed Perl Documentation section of your man pages, and it's literally the glow-up guide for turning a Raku module into a Debian source package. no cap. πŸ¦‹


✨ NAME ✨

dh-make-raku β€” create a debian source package from a Raku module πŸ’…


✨ SYNOPSIS ✨

# Create a new package
dh-make-raku --git=<git_url> --pkg=<pkg-name> --tag=<upstream_release_tag>

# refresh a package (to be run in package dir)
dh-make-raku

# get new release from upstream
dh-make-raku --upgrade <new_upstream_version>

🌸 REQUIREMENTS 🌸

before we even start, bestie, you need this whole lil checklist:


πŸ’œ DESCRIPTION πŸ’œ

so the vibe is: you hand dh-make-raku a git upstream URL, and it goes absolutely feral doing all of this for you:

  • Clones the upstream repository and sets up an upstream branch with an upstream-git remote 🫢
  • Creates all the files you need to build a debian source package on the debian/sid branch πŸ“¦
  • Commits those files βœ…
  • Creates a Raku module project on Debian's salsa πŸŽ€
  • Sets up the origin remote on Salsa 🌈

this is giving main character energy for most simple packages, and it's also lowkey perfect for getting started with packaging Raku modules in the first place. iconic behavior fr fr.


πŸ› οΈ Create package files πŸ› οΈ

⭐ With upstream release tag

to create a new package, you must have:

  • The URL of the git repository of the new module. only https style URLs are supported, periodt. πŸ”’
  • Debian package name. usually it's like raku-something πŸ’«
  • The upstream tag of the release to be packaged. (if upstream doesn't use tags, scroll down, there's a whole other section for you babe)

then run a command like:

dh-make-raku --git=<git_url> --pkg=<pkg-name> --tag=<upstream_release_tag>

for instance:

dh-make-raku --git=https://git.tyil.nl/raku/Log --pkg=raku-log --tag=v0.3.1

ate. no crumbs. πŸ”₯

⭐ Without upstream release tag

in this case you have to use a git reference instead of a tag. usually HEAD is good enough, ngl. and dh-make-raku will get the upstream version from META6.json πŸ“–

for instance:

dh-make-raku --tag HEAD --git https://github.com/tadzik/File-Find.git --pkg raku-file-find

πŸ—οΈ Build the package πŸ—οΈ

run:

gbp buildpackage

and that's it, that's the whole step. go off. ✨


πŸ”„ Update a package πŸ”„

run

dh-make-raku --upgrade <new_upstream_version>

this command updates the upstream branch, merges it into the debian/sid branch, and then updates the debian files. multi-tasking queen πŸ‘‘


πŸŽ€ Options πŸŽ€

  • --git β€” URL of the package repository. πŸ”—
  • --pkg β€” Debian package name. 🏷️
  • --tag β€” Upstream tag or a git reference. 🌟

πŸ” Change upstream remote URL πŸ”

to update the upstream remote URL and its homepage, run

dh-make-raku -git <new_remote>

then dh-make-raku updates the git remote, plus every single reference of the upstream home page in the debian files. thorough bestie πŸ’…


πŸ” Git credentials πŸ”

by default, dh-make-raku gets git credentials from the ~/.git-credentials file. πŸ—οΈ

if that file isn't available, Salsa credentials must be provided with the DRT_SALSA_USER and DRT_SALSA_PRIVATE_TOKEN environment variables. 🌿

for what it's worth, DRT means "Debian Raku Team". iykyk πŸ’–


πŸ’€ BUGS πŸ’€

  • i could not find a way to extract a description from markdown documentation. so you'll have to manually edit this field in debian/control, or with cme edit dpkg-control. annoying, i know 😭
  • the content of the generated debian/gbp.conf may have the wrong version tag. edit this file manually if gbp build-package complains about a missing tarball πŸ™ˆ
  • the generated debian/copyright file is somewhat too verbose. this file is generated by cme (https://manpages.debian.org/unstable/cme/cme.1p.en.html). i'm working on improving this. see the cme wiki on dpkg-copyright at https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme if you want to work around generation issues 🧚

πŸ‘‘ AUTHOR πŸ‘‘

Dominique Dumont <dod@debian.org> β€” the icon who made all of this happen 🫢


this whole page ships with perl v5.40.1 and was last touched on 2026-01-16. mwah, love that for us. stay slaying bestie πŸ’–βœ¨πŸŽ€
πŸ“¦ where this page comes from