From 462136fbd89f5dd09bfea3ae4d4590dc5a27174f Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Tue, 30 Apr 2024 02:19:35 +0200 Subject: [PATCH] Update the scripts from DeforaOS configure --- data/pkgconfig.sh | 184 +++++++++++++++++++++++++--------------------- doc/docbook.sh | 25 ++++--- tests/fixme.sh | 6 +- 3 files changed, 117 insertions(+), 98 deletions(-) diff --git a/data/pkgconfig.sh b/data/pkgconfig.sh index 61a50f6..bbb503e 100755 --- a/data/pkgconfig.sh +++ b/data/pkgconfig.sh @@ -1,6 +1,6 @@ #!/bin/sh #$Id$ -#Copyright (c) 2011-2020 Pierre Pronchery +#Copyright (c) 2011-2022 Pierre Pronchery # #Redistribution and use in source and binary forms, with or without #modification, are permitted provided that the following conditions are met: @@ -31,7 +31,7 @@ DEVNULL="/dev/null" PROGNAME="pkgconfig.sh" #executables DEBUG="_debug" -INSTALL="install -m 0644" +INSTALL="install" MKDIR="mkdir -m 0755 -p" RM="rm -f" SED="sed" @@ -40,6 +40,101 @@ SED="sed" #functions +#pkgconfig +_pkgconfig() +{ + #check the variables + if [ -z "$PACKAGE" ]; then + _error "The PACKAGE variable needs to be set" + return $? + fi + if [ -z "$VERSION" ]; then + _error "The VERSION variable needs to be set" + return $? + fi + [ -z "$BINDIR" ] && BINDIR="$PREFIX/bin" + [ -z "$DATADIR" ] && DATADIR="$PREFIX/share" + [ -z "$INCLUDEDIR" ] && INCLUDEDIR="$PREFIX/include" + [ -z "$LIBDIR" ] && LIBDIR="$PREFIX/lib" + [ -z "$LIBEXECDIR" ] && LIBEXECDIR="$PREFIX/libexec" + [ -z "$MANDIR" ] && MANDIR="$DATADIR/man" + [ -z "$SBINDIR" ] && SBINDIR="$PREFIX/sbin" + if [ -z "$SYSCONFDIR" ]; then + SYSCONFDIR="$PREFIX/etc" + [ "$PREFIX" = "/usr" ] && SYSCONFDIR="/etc" + fi + PKGCONFIG="$PREFIX/lib/pkgconfig" + + while [ $# -gt 0 ]; do + target="$1" + shift + + #clean + [ "$clean" -ne 0 ] && continue + + #uninstall + if [ "$uninstall" -eq 1 ]; then + $DEBUG $RM -- "$PKGCONFIG/$target" || return 2 + continue + fi + + #install + if [ "$install" -eq 1 ]; then + source="${target#$OBJDIR}" + $DEBUG $MKDIR -- "$PKGCONFIG" || return 2 + mode="-m 0644" + basename="$source" + if [ "${source##*/}" != "$source" ]; then + basename="${source##*/}" + fi + $DEBUG $INSTALL $mode "$target" "$PKGCONFIG/$basename" \ + || return 2 + continue + fi + + #portability + RPATH= + if [ "$PREFIX" != "/usr" ]; then + RPATH="-Wl,-rpath-link,\${libdir} -Wl,-rpath,\${libdir}" + case $(uname -s) in + "Darwin") + RPATH="-Wl,-rpath,\${libdir}" + ;; + "SunOS") + RPATH="-Wl,-R\${libdir}" + ;; + esac + fi + + #create + source="${target#$OBJDIR}" + source="${source}.in" + ([ -z "$OBJDIR" ] || $DEBUG $MKDIR -- "${target%/*}") \ + || return 2 + $DEBUG $SED -e "s;@VENDOR@;$VENDOR;g" \ + -e "s;@PACKAGE@;$PACKAGE;g" \ + -e "s;@VERSION@;$VERSION;g" \ + -e "s;@PREFIX@;$PREFIX;g" \ + -e "s;@BINDIR@;$BINDIR;g" \ + -e "s;@DATADIR@;$DATADIR;g" \ + -e "s;@INCLUDEDIR@;$INCLUDEDIR;g" \ + -e "s;@LIBDIR@;$LIBDIR;g" \ + -e "s;@LIBEXECDIR@;$LIBEXECDIR;g" \ + -e "s;@MANDIR@;$MANDIR;g" \ + -e "s;@PWD@;$PWD;g" \ + -e "s;@RPATH@;$RPATH;g" \ + -e "s;@SBINDIR@;$SBINDIR;g" \ + -e "s;@SYSCONFDIR@;$SYSCONFDIR;g" \ + -- "$source" > "$target" + if [ $? -ne 0 ]; then + $RM -- "$target" 2> "$DEVNULL" + return 2 + fi + done + return 0 +} + + #debug _debug() { @@ -94,91 +189,10 @@ while getopts "ciuO:P:" name; do esac done shift $(($OPTIND - 1)) -if [ $# -lt 0 ]; then +if [ $# -lt 1 ]; then _usage exit $? fi -#check the variables -if [ -z "$PACKAGE" ]; then - _error "The PACKAGE variable needs to be set" - exit $? -fi -if [ -z "$VERSION" ]; then - _error "The VERSION variable needs to be set" - exit $? -fi -[ -z "$BINDIR" ] && BINDIR="$PREFIX/bin" -[ -z "$DATADIR" ] && DATADIR="$PREFIX/share" -[ -z "$INCLUDEDIR" ] && INCLUDEDIR="$PREFIX/include" -[ -z "$LIBDIR" ] && LIBDIR="$PREFIX/lib" -[ -z "$LIBEXECDIR" ] && LIBEXECDIR="$PREFIX/libexec" -[ -z "$MANDIR" ] && MANDIR="$DATADIR/man" -if [ -z "$SYSCONFDIR" ]; then - SYSCONFDIR="$PREFIX/etc" - [ "$PREFIX" = "/usr" ] && SYSCONFDIR="/etc" -fi - -PKGCONFIG="$PREFIX/lib/pkgconfig" exec 3>&1 -while [ $# -gt 0 ]; do - target="$1" - shift - - #clean - [ "$clean" -ne 0 ] && continue - - #uninstall - if [ "$uninstall" -eq 1 ]; then - $DEBUG $RM -- "$PKGCONFIG/$target" || exit 2 - continue - fi - - #install - if [ "$install" -eq 1 ]; then - source="${target#$OBJDIR}" - $DEBUG $MKDIR -- "$PKGCONFIG" || exit 2 - basename="$source" - if [ "${source##*/}" != "$source" ]; then - basename="${source##*/}" - fi - $DEBUG $INSTALL "$target" "$PKGCONFIG/$basename"|| exit 2 - continue - fi - - #portability - RPATH= - if [ "$PREFIX" != "/usr" ]; then - RPATH="-Wl,-rpath-link,\${libdir} -Wl,-rpath,\${libdir}" - case $(uname -s) in - "Darwin") - RPATH="-Wl,-rpath,\${libdir}" - ;; - "SunOS") - RPATH="-Wl,-R\${libdir}" - ;; - esac - fi - - #create - source="${target#$OBJDIR}" - source="${source}.in" - ([ -z "$OBJDIR" ] || $DEBUG $MKDIR -- "${target%/*}") || exit 2 - $DEBUG $SED -e "s;@PACKAGE@;$PACKAGE;g" \ - -e "s;@VERSION@;$VERSION;g" \ - -e "s;@PREFIX@;$PREFIX;g" \ - -e "s;@BINDIR@;$BINDIR;g" \ - -e "s;@DATADIR@;$DATADIR;g" \ - -e "s;@INCLUDEDIR@;$INCLUDEDIR;g" \ - -e "s;@LIBDIR@;$LIBDIR;g" \ - -e "s;@LIBEXECDIR@;$LIBEXECDIR;g" \ - -e "s;@MANDIR@;$MANDIR;g" \ - -e "s;@PWD@;$PWD;g" \ - -e "s;@RPATH@;$RPATH;g" \ - -e "s;@SYSCONFDIR@;$SYSCONFDIR;g" \ - -- "$source" > "$target" - if [ $? -ne 0 ]; then - $DEBUG $RM -- "$target" - exit 2 - fi -done +_pkgconfig "$@" diff --git a/doc/docbook.sh b/doc/docbook.sh index d3ca1cd..7eab664 100755 --- a/doc/docbook.sh +++ b/doc/docbook.sh @@ -1,6 +1,6 @@ #!/bin/sh #$Id$ -#Copyright (c) 2012-2021 Pierre Pronchery +#Copyright (c) 2012-2024 Pierre Pronchery # #Redistribution and use in source and binary forms, with or without #modification, are permitted provided that the following conditions are met: @@ -28,14 +28,17 @@ CONFIGSH="${0%/docbook.sh}/../config.sh" PREFIX="/usr/local" PROGNAME="docbook.sh" +XSL_HTML="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" +XSL_MAN="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" +XSL_PDF="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" #executables DEBUG="_debug" FOP="fop" INSTALL="install -m 0644" MKDIR="mkdir -m 0755 -p" RM="rm -f" -XMLLINT="xmllint --nonet --xinclude" -XSLTPROC="xsltproc --nonet --xinclude" +XMLLINT="xmllint --noent --nonet --xinclude --path ${PWD}" +XSLTPROC="xsltproc --nonet --xinclude --path ${PWD}" [ -f "$CONFIGSH" ] && . "$CONFIGSH" @@ -60,18 +63,20 @@ _docbook() ext="${ext##.}" case "$ext" in html) - XSL="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" + XSL="$XSL_HTML" [ -f "${source%.*}.xsl" ] && XSL="${source%.*}.xsl" [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl" if [ -f "${target%.*}.css.xml" ]; then - XSLTPROC="$XSLTPROC --param custom.css.source \"${target%.*}.css.xml\" --param generate.css.header 1" + XSLTPROC_PARAMS="--param custom.css.source \"${target%.*}.css.xml\" --param generate.css.header 1" elif [ -f "${source%.*}.css.xml" ]; then - XSLTPROC="$XSLTPROC --param custom.css.source \"${source%.*}.css.xml\" --param generate.css.header 1" + XSLTPROC_PARAMS="--param custom.css.source \"${source%.*}.css.xml\" --param generate.css.header 1" + else + XSLTPROC_PARAMS= fi - $DEBUG $XSLTPROC -o "$target" "$XSL" "$source" + $DEBUG $XSLTPROC $XSLTPROC_PARAMS -o "$target" "$XSL" "$source" ;; pdf) - XSL="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" + XSL="$XSL_PDF" [ -f "${source%.*}.xsl" ] && XSL="${source%.*}.xsl" [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl" $DEBUG $XSLTPROC -o "${target%.*}.fo" "$XSL" "$source" && @@ -79,7 +84,7 @@ _docbook() $RM -- "${target%.*}.fo" ;; 1|2|3|4|5|6|7|8|9) - XSL="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" + XSL="$XSL_MAN" $DEBUG $XSLTPROC -o "$target" "$XSL" "$source" ;; *) @@ -170,7 +175,7 @@ while [ $# -gt 0 ]; do source="${target#$OBJDIR}" source="${source%.*}.xml" xpath="string(/refentry/refmeta/manvolnum)" - section=$($XMLLINT --xpath "$xpath" "$source") + section=$($DEBUG $XMLLINT --xpath "$xpath" "$source") if [ $? -eq 0 -a -n "$section" ]; then instdir="$MANDIR/html$section" fi diff --git a/tests/fixme.sh b/tests/fixme.sh index 0d15f7d..e5c85e3 100755 --- a/tests/fixme.sh +++ b/tests/fixme.sh @@ -1,6 +1,6 @@ #!/bin/sh #$Id$ -#Copyright (c) 2017-2021 Pierre Pronchery +#Copyright (c) 2017-2022 Pierre Pronchery # #Redistribution and use in source and binary forms, with or without #modification, are permitted provided that the following conditions are met: @@ -95,7 +95,7 @@ _fixme_callback() echo "_fixme_callback_asm" return 0 ;; - c|cc|cpp|cxx|h|js|v) + c|cc|cpp|cxx|go|h|js|v) echo "_fixme_callback_c" return 0 ;; @@ -122,7 +122,7 @@ _fixme_callback() echo "_fixme_callback_python" return 0 ;; - "