From eef9b4c6e965109b8e5dd4ae15bfbe5f9b797515 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 9 Feb 2022 01:16:25 -0500 Subject: [PATCH] system/mandoc: Fix 15.0 build. Signed-off-by: B. Watson Signed-off-by: Willy Sudiarto Raharjo --- system/mandoc/README | 28 +++++++++++--------- system/mandoc/mandoc.SlackBuild | 47 ++++++++++++++++++++++----------- system/mandoc/slack-desc | 4 +-- 3 files changed, 50 insertions(+), 29 deletions(-) diff --git a/system/mandoc/README b/system/mandoc/README index 4d7be3acbc..8b53f4b2db 100644 --- a/system/mandoc/README +++ b/system/mandoc/README @@ -1,17 +1,21 @@ -mandoc is a suite of tools compiling mandoc, the roff macro package of choice for -BSD manual pages, and man, the predominant historical package for UNIX manuals. -It is small, ISO C, ISC-licensed, and quite fast. +mandoc (UNIX manpage viewer) -The tool set features mandoc, based on the libmandoc validating compiler, to -format output for UNIX terminals (with support for wide-character locales), -XHTML, HTML, PostScript, and PDF. It also includes preconv, for recoding -multibyte manuals; demandoc, for emitting only text parts of manuals; mandocdb, -for indexing manuals; and apropos, whatis, and man.cgi (via catman) for -semantic search of manual content. +mandoc is a suite of tools containing mandoc, the roff macro package +of choice for BSD manual pages, and man, the predominant historical +package for UNIX manuals. It is small, ISO C, ISC-licensed, and quite +fast. -There is an environment variable called REPLACE_MAN, that if set to a non-empty -string, will instruct the slackbuild script to replace the stock man package -(you should remove(pkg) it first, though). +The tool set features mandoc, based on the libmandoc validating +compiler, to format output for UNIX terminals (with support for +wide-character locales), XHTML, HTML, PostScript, and PDF. It also +includes preconv, for recoding multibyte manuals; demandoc, for +emitting only text parts of manuals; mandocdb, for indexing manuals; +and apropos, whatis, and man.cgi (via catman) for semantic search of +manual content. + +There is an environment variable called REPLACE_MAN, that if set to a +non-empty string, will instruct the slackbuild script to replace the +stock man package (you should remove(pkg) it first, though). After installing, make sure to (re)create the mandoc specific "whatis" database(s) in your manpath(s), eg.: diff --git a/system/mandoc/mandoc.SlackBuild b/system/mandoc/mandoc.SlackBuild index 7286953fd3..2f1dc3bbe1 100644 --- a/system/mandoc/mandoc.SlackBuild +++ b/system/mandoc/mandoc.SlackBuild @@ -23,11 +23,16 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20220209 bkw: Modified by SlackBuilds.org, BUILD=2: +# - fix build for 15.0. +# - actually use SLKCFLAGS. +# - remove conflicting files when REPLACE_MAN isn't set. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=mandoc VERSION=${VERSION:-1.14.4} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -39,9 +44,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -80,22 +82,37 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -if [ -z "${REPLACE_MAN}" ];then - gzip -dc "${CWD}"/configure-noconflict.local.gz >./configure.local +if [ -z "${REPLACE_MAN}" ]; then + gzip -dc "${CWD}"/configure-noconflict.local.gz >./configure.local else - gzip -dc "${CWD}"/configure-replace.local.gz >./configure.local + gzip -dc "${CWD}"/configure-replace.local.gz >./configure.local fi + +# 20220209 bkw: the *extremely* stupid way it tries to extract +# the default value of CC from make, does not work... and is +# hardcoded (can't override with environment). +sed -i '/^CC/s,=.*,=gcc,' configure + ./configure -CFLAGS=$SLKCFLAGS \ - make -make install \ - DESTDIR=$PKG \ - PREFIX=/usr \ - LIBDIR=/usr/lib${LIBDIRSUFFIX} +make CFLAGS="-Wl,-s -fcommon $SLKCFLAGS" -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +make install \ + DESTDIR=$PKG \ + PREFIX=/usr \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} + +# 20220209 bkw: these would conflict with Slackware's man-db +# and groff packages. +if [ -z "${REPLACE_MAN}" ]; then + rm -f \ + $PKG/usr/bin/soelim \ + $PKG/usr/man/man1/soelim.1 \ + $PKG/usr/man/man7/tbl.7 \ + $PKG/usr/man/man7/eqn.7 \ + $PKG/usr/man/man7/man.7 \ + $PKG/usr/man/man7/roff.7 +fi find $PKG/usr/man -type f -exec gzip -9 {} \; for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done diff --git a/system/mandoc/slack-desc b/system/mandoc/slack-desc index 1f7b5d6c7b..5e8196df52 100644 --- a/system/mandoc/slack-desc +++ b/system/mandoc/slack-desc @@ -6,9 +6,9 @@ # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| -mandoc: mandoc (UNIX manpage compiler) +mandoc: mandoc (UNIX manpage viewer) mandoc: -mandoc: mandoc is a suite of tools compiling mdoc, the roff macro package of +mandoc: mandoc is a suite of tools containing mdoc, the roff macro package of mandoc: choice for BSD manual pages, and man, the predominant historical mandoc: package for UNIX manuals. mandoc: It is small, ISO C, ISC-licensed, and quite fast.