.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH-MAKE-RAKU 1p" .TH DH-MAKE-RAKU 1p "2023-11-01" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dh\-make\-raku \- Create debian source package from Raku module .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& # Create a new package \& dh\-make\-raku \-\-git= \-\-pkg= \-\-tag= \& \& # refresh a package (to be run in package dir) \& dh\-make\-raku \& \& # get new release from upstream \& dh\-make\-raku \-\-upgrade .Ve .SH "REQUIREMENTS" .IX Header "REQUIREMENTS" This script requires: .IP "\(bu" 4 An account on Salsa and be part of Raku package team. See How to get involved wiki page. .IP "\(bu" 4 Git credentials for Salsa. See \*(L"Git credentials\*(R" section. .IP "\(bu" 4 Quilt installed and configured. The installation should be done when installing \&\f(CW\*(C`dh\-make\-raku\*(C'\fR, but the configuration must be done in your home directory. Please see Using Quilt wiki page. .SH "DESCRIPTION" .IX Header "DESCRIPTION" When fed a \f(CW\*(C`git\*(C'\fR upstream \s-1URL,\s0 \fBdh-make-raku\fR does the following tasks: .IP "\(bu" 4 Clone upstream repository and setup an \f(CW\*(C`upstream\*(C'\fR branch with an \&\f(CW\*(C`upstream\-git\*(C'\fR remote. .IP "\(bu" 4 Create the files required to build a debian source package on \&\f(CW\*(C`debian/sid\*(C'\fR branch. .IP "\(bu" 4 Commit these files .IP "\(bu" 4 Create a Raku module project on Debian's salsa .IP "\(bu" 4 Setup \f(CW\*(C`origin\*(C'\fR remote on Salsa .PP This works for most simple packages and is also useful for getting started with packaging Raku modules. .SH "Create package files" .IX Header "Create package files" .SS "With upstream release tag" .IX Subsection "With upstream release tag" To create a new package, you must have: .IP "\(bu" 4 The \s-1URL\s0 of the git repository of the new module. Only \f(CW\*(C`https\*(C'\fR style \&\s-1URL\s0 are supported. .IP "\(bu" 4 Debian package name. Usually \f(CW\*(C`raku\-something\*(C'\fR .IP "\(bu" 4 The upstream tag of the release to be packaged. See below if upstream does not use tags. .PP Then run a command like: .PP .Vb 1 \& dh\-make\-raku \-\-git= \-\-pkg= \-\-tag= .Ve .PP For instance: .PP .Vb 1 \& dh\-make\-raku \-\-git=https://git.tyil.nl/raku/Log \-\-pkg=raku\-log \-\-tag=v0.3.1 .Ve .SS "Without upstream release tag" .IX Subsection "Without upstream release tag" In this case, you must use a git reference instead of a tag. Usually \&\f(CW\*(C`HEAD\*(C'\fR is good enough. \f(CW\*(C`dh\-make\-raku\*(C'\fR will get upstream version from \&\f(CW\*(C`META6.json\*(C'\fR .PP For instance: .PP .Vb 1 \& dh\-make\-raku \-\-tag HEAD \-\-git https://github.com/tadzik/File\-Find.git \-\-pkg raku\-file\-find .Ve .SH "Build the package" .IX Header "Build the package" Run: .PP .Vb 1 \& gbp buildpackage .Ve .SH "Update a package" .IX Header "Update a package" Run .PP .Vb 1 \& dh\-make\-raku \-\-upgrade .Ve .PP This command update the \f(CW\*(C`upstream\*(C'\fR branch and merge it in \&\f(CW\*(C`debian/sid\*(C'\fR branch and then update debian files. .SH "Options" .IX Header "Options" .IP "\-\-git" 4 .IX Item "--git" \&\s-1URL\s0 of the package repository. .IP "\-\-pkg" 4 .IX Item "--pkg" Debian package name. .IP "\-\-tag" 4 .IX Item "--tag" Upstream tag or a git reference. .SH "Change upstream remote URL" .IX Header "Change upstream remote URL" To update upstream remote \s-1URL\s0 and its homepage, run .PP .Vb 1 \& dh\-make\-raku \-git .Ve .PP Then \f(CW\*(C`dh\-make\-raku\*(C'\fR updates git remote, all reference of upstream home page in debian files. .SH "Git credentials" .IX Header "Git credentials" Be default, \f(CW\*(C`dh\-make\-raku\*(C'\fR gets git credentials from \&\f(CW\*(C`~/.git\-credentials\*(C'\fR file. .PP If this file is not available, Salsa credentials must be provided with \&\f(CW\*(C`DRT_SALSA_USER\*(C'\fR and \f(CW\*(C`DRT_SALSA_PRIVATE_TOKEN\*(C'\fR environment variables. .PP For what it's worth, \f(CW\*(C`DRT\*(C'\fR means \*(L"Debian Raku Team\*(R". .SH "BUGS" .IX Header "BUGS" .IP "\(bu" 4 I could not find a way to extract a description from markdown documentation. So you'll have to manually edit this field in \&\f(CW\*(C`debian/control\*(C'\fR or with \f(CW\*(C`cme edit dpkg\-control\*(C'\fR. .IP "\(bu" 4 The content of the generated \f(CW\*(C`debian/gbp.conf\*(C'\fR may have the wrong version tag. Edit this file manually if \f(CW\*(C`gbp build\-package\*(C'\fR complains about missing tarball. .IP "\(bu" 4 The generated \f(CW\*(C`debian/copyright\*(C'\fR file is somewhat too verbose. This file is generated by cme . I'm working on improving this. See cme wiki on dpkg-copyright if you want to work around generation issues. .SH "AUTHOR" .IX Header "AUTHOR" .IP "Dominique Dumont " 4 .IX Item "Dominique Dumont "