diff options
author | Patrick McLean <chutzpah@gentoo.org> | 2020-04-07 14:37:02 -0700 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2020-04-07 14:37:19 -0700 |
commit | 0d207f6f90bfed5e7128ee6502806476023a5c5e (patch) | |
tree | d489d8a4e5cb47cb1b0ea87d98c0ca7dc46d7af4 /net-firewall/nftables/files/man-pages/gen-manpages.bash | |
parent | app-admin/haskell-updater: drop on sparc, haskell is gone (diff) | |
download | gentoo-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.bash | 72 |
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 "${@}" |