summaryrefslogtreecommitdiffstats
path: root/upstream/fedora-rawhide/man1/makepkg-template.1
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/fedora-rawhide/man1/makepkg-template.1')
-rw-r--r--upstream/fedora-rawhide/man1/makepkg-template.1328
1 files changed, 328 insertions, 0 deletions
diff --git a/upstream/fedora-rawhide/man1/makepkg-template.1 b/upstream/fedora-rawhide/man1/makepkg-template.1
new file mode 100644
index 00000000..42051d83
--- /dev/null
+++ b/upstream/fedora-rawhide/man1/makepkg-template.1
@@ -0,0 +1,328 @@
+'\" t
+.\" Title: makepkg-template
+.\" Author: [see the "Authors" section]
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 2024-01-25
+.\" Manual: Pacman Manual
+.\" Source: Pacman 6.0.2
+.\" Language: English
+.\"
+.TH "MAKEPKG\-TEMPLATE" "1" "2024\-01\-25" "Pacman 6\&.0\&.2" "Pacman Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+makepkg-template \- package build templating utility
+.SH "SYNOPSIS"
+.sp
+\fImakepkg\-template\fR [options]
+.SH "DESCRIPTION"
+.sp
+\fImakepkg\-template\fR is a script to ease the work of maintaining multiple similar PKGBUILDs\&. It allows you to move most of the code from the PKGBUILD into a template file and uses markers to allow in\-place updating of existing PKGBUILDs if the template has been changed\&.
+.sp
+Template files can contain any code allowed in a PKGBUILD\&. You can think of them like external files included with "\&." or "source", but they will be inlined into the PKGBUILD by \fImakepkg\-template\fR so you do not depend on the template file when building the package\&.
+.sp
+Markers are bash comments in the form of:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# template start; key=value; key2=value2; \&.\&.\&.
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+and
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# template end;
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Currently used keys are: name (mandatory) and version\&. Template names are limited to alphanumerics, "@", "+", "\&.", "\-", and "_"\&. Versions are limited to numbers and "\&."\&.
+.sp
+For initial creation there is a one line short cut which does not need an end marker:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# template input; key=value;
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Using this short\-cut will result in \fImakepkg\-template\fR replacing it with start and end markers and the template code on the first run\&.
+.sp
+Template files should be stored in one directory and filenames should be "$template_name\-$version\&.template" with a symlink "$template_name\&.template" pointing to the most recent template\&. If the version is not set in the marker, \fImakepkg\-template\fR will automatically use the target of "$template_name\&.template", otherwise the specified version will be used\&. This allows for easier verification of untrusted PKGBUILDs if the template is trusted\&. You verify the non\-template code and then use a command similar to this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+diff \-u <(makepkg\-template \-o \-) PKGBUILD
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Template files may also contain markers leading to nested templates in the resulting PKGBUILD\&. If you use markers in a template, please set the version you used/tested with in the start/input marker so other people can properly recreate from templates\&.
+.SH "OPTIONS"
+.PP
+\fB\-p, \-\-input\fR <build script>
+.RS 4
+Read the package script
+build script
+instead of the default\&.
+.RE
+.PP
+\fB\-o, \-\-output\fR <build script>
+.RS 4
+Write the updated file to
+build script
+instead of overwriting the input file\&.
+.RE
+.PP
+\fB\-n, \-\-newest\fR
+.RS 4
+Always use the newest available template file\&.
+.RE
+.PP
+\fB\-\-template\-dir\fR <dir>
+.RS 4
+Change the dir where we are looking for template files\&. This option may be given multiple times in which case files found in directory given last will take precedence\&.
+.RE
+.SH "EXAMPLE PKGBUILD"
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+pkgname=perl\-config\-simple
+pkgver=4\&.58
+pkgrel=1
+pkgdesc="simple configuration file class"
+arch=(\*(Aqany\*(Aq)
+license=(\*(AqPerlArtistic\*(Aq \*(AqGPL\*(Aq)
+depends=(\*(Aqperl\*(Aq)
+source=("http://search\&.cpan\&.org/CPAN/authors/id/S/SH/SHERZODR/Config\-Simple\-${pkgver}\&.tar\&.gz")
+md5sums=(\*(Aqf014aec54f0a1e2e880d317180fce502\*(Aq)
+_distname="Config\-Simple"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# template start; name=perl\-module; version=1\&.0;
+_distdir="${_distname}\-${pkgver}"
+url="https://metacpan\&.org/release/${_distname}"
+options+=(\*(Aq!emptydirs\*(Aq)
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+build() {
+ cd "$srcdir/$_distdir"
+ perl Makefile\&.PL INSTALLDIRS=vendor
+ make
+}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+check() {
+ cd "$srcdir/$_distdir"
+ make test
+}
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+package() {
+ cd "$srcdir/$_distdir"
+ make DESTDIR="$pkgdir" install
+}
+# template end;
+.fi
+.if n \{\
+.RE
+.\}
+.SH "SEE ALSO"
+.sp
+\fBmakepkg\fR(8), \fBPKGBUILD\fR(5)
+.sp
+See the pacman website at https://archlinux\&.org/pacman/ for current information on pacman and its related tools\&.
+.SH "BUGS"
+.sp
+Bugs? You must be kidding; there are no bugs in this software\&. But if we happen to be wrong, submit a bug report with as much detail as possible at the Arch Linux Bug Tracker in the Pacman section\&.
+.SH "AUTHORS"
+.sp
+Current maintainers:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Allan McRae <allan@archlinux\&.org>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Andrew Gregory <andrew\&.gregory\&.8@gmail\&.com>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Eli Schwartz <eschwartz@archlinux\&.org>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Morgan Adamiec <morganamilo@archlinux\&.org>
+.RE
+.sp
+Past major contributors:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Judd Vinet <jvinet@zeroflux\&.org>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Aurelien Foret <aurelien@archlinux\&.org>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Aaron Griffin <aaron@archlinux\&.org>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Dan McGee <dan@archlinux\&.org>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Xavier Chantry <shiningxc@gmail\&.com>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Nagy Gabor <ngaba@bibl\&.u\-szeged\&.hu>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Dave Reisner <dreisner@archlinux\&.org>
+.RE
+.sp
+For additional contributors, use git shortlog \-s on the pacman\&.git repository\&.