From 76a6e410316b66926c28b57878fb359577cfaaca Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 6 Dec 2017 00:44:34 -0800 Subject: [PATCH] GUACAMOLE-423: Automatically populate package version within manpages. --- configure.ac | 3 + src/guacd/.gitignore | 4 + src/guacd/Makefile.am | 8 +- src/guacd/man/{guacd.8 => guacd.8.in} | 5 +- .../man/{guacd.conf.5 => guacd.conf.5.in} | 5 +- src/guacenc/.gitignore | 3 + src/guacenc/Makefile.am | 4 +- src/guacenc/man/{guacenc.1 => guacenc.1.in} | 5 +- src/guaclog/guaclog | 228 ++++++++++++++++++ 9 files changed, 247 insertions(+), 18 deletions(-) rename src/guacd/man/{guacd.8 => guacd.8.in} (96%) rename src/guacd/man/{guacd.conf.5 => guacd.conf.5.in} (97%) rename src/guacenc/man/{guacenc.1 => guacenc.1.in} (95%) create mode 100755 src/guaclog/guaclog diff --git a/configure.ac b/configure.ac index b2d678cb..5f6c119d 100644 --- a/configure.ac +++ b/configure.ac @@ -1203,7 +1203,10 @@ AC_CONFIG_FILES([Makefile src/terminal/Makefile src/libguac/Makefile src/guacd/Makefile + src/guacd/man/guacd.8 + src/guacd/man/guacd.conf.5 src/guacenc/Makefile + src/guacenc/man/guacenc.1 src/pulse/Makefile src/protocols/rdp/Makefile src/protocols/ssh/Makefile diff --git a/src/guacd/.gitignore b/src/guacd/.gitignore index c5e2fa21..6db8c7ee 100644 --- a/src/guacd/.gitignore +++ b/src/guacd/.gitignore @@ -6,6 +6,10 @@ init.d/guacd guacd guacd.exe +# Documentation (built from .in files) +man/guacd.8 +man/guacd.conf.5 + # Object code *.o *.so diff --git a/src/guacd/Makefile.am b/src/guacd/Makefile.am index 14ab5db6..8edcd252 100644 --- a/src/guacd/Makefile.am +++ b/src/guacd/Makefile.am @@ -59,10 +59,10 @@ guacd_LDFLAGS = \ @PTHREAD_LIBS@ \ @SSL_LIBS@ -EXTRA_DIST = \ - init.d/guacd.in \ - man/guacd.8 \ - man/guacd.conf.5 +EXTRA_DIST = \ + init.d/guacd.in \ + man/guacd.8.in \ + man/guacd.conf.5.in CLEANFILES = $(init_SCRIPTS) diff --git a/src/guacd/man/guacd.8 b/src/guacd/man/guacd.8.in similarity index 96% rename from src/guacd/man/guacd.8 rename to src/guacd/man/guacd.8.in index 8e497e35..c5ed918f 100644 --- a/src/guacd/man/guacd.8 +++ b/src/guacd/man/guacd.8.in @@ -16,7 +16,7 @@ .\" specific language governing permissions and limitations .\" under the License. .\" -.TH guacd 8 "1 Jun 2017" "version 0.9.13-incubating" "Guacamole" +.TH guacd 8 "1 Jun 2017" "version @PACKAGE_VERSION@" "Apache Guacamole" . .SH NAME guacd \- Guacamole proxy daemon @@ -113,6 +113,3 @@ this option is not given, communication with guacd must be unencrypted. . .SH SEE ALSO .BR guacd.conf (5) -. -.SH AUTHOR -Written by Michael Jumper diff --git a/src/guacd/man/guacd.conf.5 b/src/guacd/man/guacd.conf.5.in similarity index 97% rename from src/guacd/man/guacd.conf.5 rename to src/guacd/man/guacd.conf.5.in index 49dd7da7..524bd5c0 100644 --- a/src/guacd/man/guacd.conf.5 +++ b/src/guacd/man/guacd.conf.5.in @@ -16,7 +16,7 @@ .\" specific language governing permissions and limitations .\" under the License. .\" -.TH guacd.conf 5 "1 Jun 2017" "version 0.9.13-incubating" "Guacamole" +.TH guacd.conf 5 "1 Jun 2017" "version @PACKAGE_VERSION@" "Apache Guacamole" . .SH NAME /etc/guacamole/guacd.conf \- Configuration file for guacd @@ -176,6 +176,3 @@ server_certificate = /etc/ssl/certs/guacd.crt server_key = /etc/ssl/private/guacd.key .RE .fi -. -.SH AUTHOR -Written by Michael Jumper diff --git a/src/guacenc/.gitignore b/src/guacenc/.gitignore index d705721b..6bef5a8b 100644 --- a/src/guacenc/.gitignore +++ b/src/guacenc/.gitignore @@ -3,3 +3,6 @@ guacenc guacenc.exe +# Documentation (built from .in files) +man/guacenc.1 + diff --git a/src/guacenc/Makefile.am b/src/guacenc/Makefile.am index 4d22182a..b5039cbd 100644 --- a/src/guacenc/Makefile.am +++ b/src/guacenc/Makefile.am @@ -96,6 +96,6 @@ guacenc_LDFLAGS = \ @SWSCALE_LIBS@ \ @WEBP_LIBS@ -EXTRA_DIST = \ - man/guacenc.1 +EXTRA_DIST = \ + man/guacenc.1.in diff --git a/src/guacenc/man/guacenc.1 b/src/guacenc/man/guacenc.1.in similarity index 95% rename from src/guacenc/man/guacenc.1 rename to src/guacenc/man/guacenc.1.in index a36617a2..edb75f6c 100644 --- a/src/guacenc/man/guacenc.1 +++ b/src/guacenc/man/guacenc.1.in @@ -16,7 +16,7 @@ .\" specific language governing permissions and limitations .\" under the License. .\" -.TH guacenc 1 "1 Jun 2017" "version 0.9.13-incubating" "Guacamole" +.TH guacenc 1 "1 Jun 2017" "version @PACKAGE_VERSION@" "Apache Guacamole" . .SH NAME guacenc \- Guacamole video encoder @@ -75,6 +75,3 @@ Overrides the default behavior of .B guacenc such that input files will be encoded even if they appear to be recordings of in-progress Guacamole sessions. -. -.SH AUTHOR -Written by Michael Jumper diff --git a/src/guaclog/guaclog b/src/guaclog/guaclog new file mode 100755 index 00000000..8fffe5d4 --- /dev/null +++ b/src/guaclog/guaclog @@ -0,0 +1,228 @@ +#! /bin/sh + +# guaclog - temporary wrapper script for .libs/guaclog +# Generated by libtool (GNU libtool) 2.4.6 +# +# The guaclog program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command="(cd /home/mjumper/apache/guacamole/guacamole-server/src/guaclog; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/home/mjumper/google-cloud-sdk/bin:/home/mjumper/google-cloud-sdk/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mjumper/.local/bin:/home/mjumper/bin:/home/mjumper/node_modules/.bin; export PATH; gcc -Werror -Wall -I../../src/libguac -g -O2 -o \$progdir/\$file guaclog-guaclog.o guaclog-instructions.o guaclog-instruction-key.o guaclog-interpret.o guaclog-keydef.o guaclog-log.o guaclog-state.o ../../src/libguac/.libs/libguac.so -lcairo -ldl -ljpeg -lpng -lpthread -lssl -lcrypto -lossp-uuid -logg -lvorbis -lvorbisenc -lwebp -Wl,-rpath -Wl,/home/mjumper/apache/guacamole/guacamole-server/src/libguac/.libs)" + +# This environment variable determines our operation mode. +if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then + # install mode needs the following variables: + generated_by_libtool_version='2.4.6' + notinst_deplibs=' ../../src/libguac/libguac.la' +else + # When we are sourced in execute mode, $file and $ECHO are already set. + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + file="$0" + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + ECHO="printf %s\\n" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string --lt- +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's ../../libtool value, followed by no. +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=$0 + shift + for lt_opt + do + case "$lt_opt" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'` + test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=. + lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'` + cat "$lt_dump_D/$lt_dump_F" + exit 0 + ;; + --lt-*) + $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n "$lt_option_debug"; then + echo "guaclog:guaclog:$LINENO: libtool wrapper (GNU libtool) 2.4.6" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + $ECHO "guaclog:guaclog:$LINENO: newargv[$lt_dump_args_N]: $lt_arg" + lt_dump_args_N=`expr $lt_dump_args_N + 1` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ + + if test -n "$lt_option_debug"; then + $ECHO "guaclog:guaclog:$LINENO: newargv[0]: $progdir/$program" 1>&2 + func_lt_dump_args ${1+"$@"} 1>&2 + fi + exec "$progdir/$program" ${1+"$@"} + + $ECHO "$0: cannot exec $program $*" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from $@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case " $* " in + *\ --lt-*) + for lt_wr_arg + do + case $lt_wr_arg in + --lt-*) ;; + *) set x "$@" "$lt_wr_arg"; shift;; + esac + shift + done ;; + esac + func_exec_program_core ${1+"$@"} +} + + # Parse options + func_parse_lt_options "$0" ${1+"$@"} + + # Find the directory that this script lives in. + thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + test "x$thisdir" = "x$file" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'` + while test -n "$file"; do + destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + + # If there was a directory component, then change thisdir. + if test "x$destdir" != "x$file"; then + case "$destdir" in + [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;; + *) thisdir="$thisdir/$destdir" ;; + esac + fi + + file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'` + file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no + if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then + # special case for '.' + if test "$thisdir" = "."; then + thisdir=`pwd` + fi + # remove .libs from thisdir + case "$thisdir" in + *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;; + .libs ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=`cd "$thisdir" && pwd` + test -n "$absdir" && thisdir="$absdir" + + program=lt-'guaclog' + progdir="$thisdir/.libs" + + if test ! -f "$progdir/$program" || + { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \ + test "X$file" != "X$progdir/$program"; }; then + + file="$$-$program" + + if test ! -d "$progdir"; then + mkdir "$progdir" + else + rm -f "$progdir/$file" + fi + + # relink executable if necessary + if test -n "$relink_command"; then + if relink_command_output=`eval $relink_command 2>&1`; then : + else + $ECHO "$relink_command_output" >&2 + rm -f "$progdir/$file" + exit 1 + fi + fi + + mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || + { rm -f "$progdir/$program"; + mv -f "$progdir/$file" "$progdir/$program"; } + rm -f "$progdir/$file" + fi + + if test -f "$progdir/$program"; then + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + # Run the actual program with our arguments. + func_exec_program ${1+"$@"} + fi + else + # The program doesn't exist. + $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2 + $ECHO "This script is just a wrapper for $program." 1>&2 + $ECHO "See the libtool documentation for more information." 1>&2 + exit 1 + fi +fi