summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McLean <chutzpah@gentoo.org>2020-04-07 14:37:02 -0700
committerPatrick McLean <chutzpah@gentoo.org>2020-04-07 14:37:19 -0700
commit0d207f6f90bfed5e7128ee6502806476023a5c5e (patch)
treed489d8a4e5cb47cb1b0ea87d98c0ca7dc46d7af4 /net-firewall/nftables/files/man-pages/gen-manpages.bash
parentapp-admin/haskell-updater: drop on sparc, haskell is gone (diff)
downloadgentoo-0d207f6f90bfed5e7128ee6502806476023a5c5e.tar.gz
gentoo-0d207f6f90bfed5e7128ee6502806476023a5c5e.tar.bz2
gentoo-0d207f6f90bfed5e7128ee6502806476023a5c5e.zip
net-firewall/nftables-0.9.4-r2: revbump, cleanup deps, provide man pages
It turns out that flex and bison aren't actually needed to build, but there was a bug in the build system that made it abort if they weren't available. Add a patch to fix this bug, and remove the extra deps. Disable USE=doc by default and provide pre-built man pages in a separate tarball. Script to build them is at man-pages/gen-manpages.bash Package-Manager: Portage-2.3.96, Repoman-2.3.22 Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
Diffstat (limited to 'net-firewall/nftables/files/man-pages/gen-manpages.bash')
-rw-r--r--net-firewall/nftables/files/man-pages/gen-manpages.bash72
1 files changed, 72 insertions, 0 deletions
diff --git a/net-firewall/nftables/files/man-pages/gen-manpages.bash b/net-firewall/nftables/files/man-pages/gen-manpages.bash
new file mode 100644
index 000000000000..a2223d3dd5be
--- /dev/null
+++ b/net-firewall/nftables/files/man-pages/gen-manpages.bash
@@ -0,0 +1,72 @@
+#!/bin/bash
+#
+# create manpages for nftables
+
+declare -A MAN_PAGES
+
+MAN_PAGES=(
+ [nft.8]="nft.txt"
+ [libnftables-json.5]="libnftables-json.adoc"
+ [libnftables.3]="libnftables.adoc"
+)
+
+build_manpages() {
+ tar axf "${distfile}" -C "${srcdir}" || return
+
+ pushd "${srcdir}/${version}/doc" > /dev/null || return
+ local manpage
+ for manpage in "${!MAN_PAGES[@]}"; do
+ a2x -L --doctype manpage --format manpage -D . "${MAN_PAGES[${manpage}]}" || return
+ done
+ popd > /dev/null || return
+
+ local -a tarfiles
+ readarray -t tarfiles < <(printf -- "${version}/doc/%s\\n" "${!MAN_PAGES[@]}")
+
+ tar -Jc --owner='root:0' --group='root:0' \
+ --transform="s:^${version}/doc:${version}-manpages:" \
+ -f "${version}-manpages.tar.xz" \
+ -C "${srcdir}" \
+ "${tarfiles[@]}" || return
+
+ rm -rf "${srcdir:?}/${version}" || return
+}
+
+main() {
+ shopt -s failglob
+ local version="${1}" srcdir="${0%/*}"
+
+ if [[ -z ${version} ]]; then
+ # shellcheck disable=SC2016
+ version=$(
+ find . -maxdepth 1 -type d -a -name 'nftables-*' -printf '%P\0' 2>/dev/null \
+ | LC_COLLATE=C sort -z \
+ | sed -z -n '${p;Q}' \
+ | tr -d '\000'
+ )
+ if [[ -z ${version} ]]; then
+ # shellcheck disable=SC2016
+ version=$(
+ find . -maxdepth 3 -mindepth 3 -type f -a -name 'nftables-*.ebuild' -printf '%P\0' 2>/dev/null \
+ | LC_COLLATE=C sort -z \
+ | sed -r -z -n '${s:.*/::;s:-r[0-9]+::;s:[.]ebuild::;p;Q}' \
+ | tr -d '\000'
+ )
+ if [[ -z ${version} ]]; then
+ printf 'Usage %s <version>\n' "${0}" >&2
+ return 1
+ fi
+ fi
+ elif [[ ${version} =~ [0-9.]+ ]]; then
+ version="nftables-${version}"
+ fi
+
+ local distdir distfile
+ local -a distfiles
+ distdir="$(portageq distdir)" || return
+ distfiles=( "${distdir}/${version}.tar."* ) || return
+ distfile="${distfiles[-1]}"
+ build_manpages || return
+}
+
+main "${@}"