From 84bc3460e252153418256eaef93d51ae3a9d8e14 Mon Sep 17 00:00:00 2001 From: matthieu Date: Mon, 21 May 2018 18:29:41 +0000 Subject: [PATCH] Update to xsetroot 1.1.2 --- app/xsetroot/ChangeLog | 108 +++++++++++ app/xsetroot/Makefile.in | 4 +- app/xsetroot/aclocal.m4 | 64 +++++-- app/xsetroot/compile | 347 ++++++++++++++++++++++++++++++++++ app/xsetroot/configure | 104 ++++++---- app/xsetroot/configure.ac | 4 +- app/xsetroot/man/xsetroot.man | 44 +++-- app/xsetroot/xsetroot.c | 89 +++++---- 8 files changed, 647 insertions(+), 117 deletions(-) create mode 100644 app/xsetroot/compile diff --git a/app/xsetroot/ChangeLog b/app/xsetroot/ChangeLog index abb9cecbb..470b07405 100644 --- a/app/xsetroot/ChangeLog +++ b/app/xsetroot/ChangeLog @@ -1,3 +1,111 @@ +commit 04dbb108170ada979cce80e92053236c4b702e94 +Author: Alan Coopersmith +Date: Fri Mar 9 20:20:44 2018 -0800 + + xsetroot 1.1.2 + + Signed-off-by: Alan Coopersmith + +commit 8c926a2a2d3f1ed06e24259657e27800f2e0ff8c +Author: Mihail Konev +Date: Thu Jan 26 14:00:21 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev + +commit c91cec09e0da17ccb7d1a7d2a120f9969e516622 +Author: Emil Velikov +Date: Mon Mar 9 12:00:52 2015 +0000 + + autogen.sh: use quoted string variables + + Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent + fall-outs, when they contain space. + + Signed-off-by: Emil Velikov + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit beb935ffaa34fcc7e72ee53d471473533647e9fb +Author: Peter Hutterer +Date: Tue Jan 24 10:32:07 2017 +1000 + + autogen.sh: use exec instead of waiting for configure to finish + + Syncs the invocation of configure with the one from the server. + + Signed-off-by: Peter Hutterer + Reviewed-by: Emil Velikov + +commit ff223d5595c292f0ccee9f4690f11b29157ef3ab +Author: Alan Coopersmith +Date: Wed Dec 31 11:35:47 2014 -0800 + + Only use results from GetWindowProperty if it returned success + + Since Xlib prior to 1.6 didn't always clear values on failure, don't + assume they're safe to use unless we succeeded. + + Reported by Oracle Parfait 1.5.1: + Error: Uninitialised memory (CWE 456) + Possible access to uninitialised memory '&after' + at line 328 of xsetroot.c in function 'FixupState'. + &after allocated at line 317. + Possible access to uninitialised memory '&data' + at line 330 of xsetroot.c in function 'FixupState'. + &data allocated at line 318. + Possible access to uninitialised memory '&format' + at line 328 of xsetroot.c in function 'FixupState'. + &format allocated at line 316. + Possible access to uninitialised memory '&length' + at line 328 of xsetroot.c in function 'FixupState'. + &length allocated at line 317. + Possible access to uninitialised memory '&type' + at line 328 of xsetroot.c in function 'FixupState'. + &type allocated at line 315. + at line 331 of xsetroot.c in function 'FixupState'. + &type allocated at line 315. + + Signed-off-by: Alan Coopersmith + Reviewed-by: Hans de Goede + +commit cd298a5f8e345791c1889bdd781fddc01c94fc1d +Author: Alan Coopersmith +Date: Tue Jun 3 23:22:14 2014 -0700 + + Print which option was in error along with usage message + + Signed-off-by: Alan Coopersmith + +commit e7d7181b7e7eafc3019f4eb806a0aeb8e38806fa +Author: Alan Coopersmith +Date: Tue Jun 3 23:04:08 2014 -0700 + + autogen.sh: Honor NOCONFIGURE=1 + + See http://people.gnome.org/~walters/docs/build-api.txt + + Signed-off-by: Alan Coopersmith + +commit ed899cfe8675cca8875156ce35b9d2b4553f9cca +Author: Alan Coopersmith +Date: Tue Jun 3 23:04:08 2014 -0700 + + configure: Drop AM_MAINTAINER_MODE + + Signed-off-by: Alan Coopersmith + +commit 6ce1479493af8ade3ce7e41276e0e64c878461e2 +Author: Stéphane Aulery +Date: Sun Jul 7 23:23:52 2013 +0200 + + Improve manpage and -help option. + + Signed-off-by: Stéphane Aulery + Reviewed-by: Alan Coopersmith + Signed-off-by: Alan Coopersmith + commit a33c612c5ff84ba2d6004d99e96ec6919bb8e859 Author: Alan Coopersmith Date: Tue Jan 22 23:02:52 2013 -0800 diff --git a/app/xsetroot/Makefile.in b/app/xsetroot/Makefile.in index bc596f1a6..1fdfcb6c3 100644 --- a/app/xsetroot/Makefile.in +++ b/app/xsetroot/Makefile.in @@ -75,8 +75,8 @@ bin_PROGRAMS = xsetroot$(EXEEXT) subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure COPYING ChangeLog INSTALL config.guess \ - config.sub depcomp install-sh missing + $(top_srcdir)/configure COPYING ChangeLog INSTALL compile \ + config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ diff --git a/app/xsetroot/aclocal.m4 b/app/xsetroot/aclocal.m4 index c0dbcfb1f..8bef9a948 100644 --- a/app/xsetroot/aclocal.m4 +++ b/app/xsetroot/aclocal.m4 @@ -1242,7 +1242,7 @@ AC_SUBST([am__untar]) dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl -dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), @@ -1279,7 +1279,7 @@ dnl DEALINGS IN THE SOFTWARE. # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.19.0]) +m4_define([vers_have], [1.19.2]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, @@ -1357,6 +1357,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_SED]) +case $host_os in + solaris*) + # Solaris 2.0 - 11.3 use SysV man page section numbers, so we + # check for a man page file found in later versions that use + # traditional section numbers instead + AC_CHECK_FILE([/usr/share/man/man7/attributes.7], + [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true]) + ;; + *) SYSV_MAN_SECTIONS=false ;; +esac + if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi @@ -1372,9 +1383,9 @@ if test x$LIB_MAN_DIR = x ; then fi if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; + case $SYSV_MAN_SECTIONS in + true) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then @@ -1382,9 +1393,9 @@ if test x$FILE_MAN_DIR = x ; then fi if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; + case $SYSV_MAN_SECTIONS in + true) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then @@ -1392,9 +1403,9 @@ if test x$MISC_MAN_DIR = x ; then fi if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; + case $SYSV_MAN_SECTIONS in + true) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then @@ -1402,9 +1413,9 @@ if test x$DRIVER_MAN_DIR = x ; then fi if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; + case $SYSV_MAN_SECTIONS in + true) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then @@ -1665,13 +1676,24 @@ m4_ifval([$1], fi]) # Test for the ability of xmlto to generate a text target +# +# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the +# following test for empty XML docbook files. +# For compatibility reasons use the following empty XML docbook file and if +# it fails try it again with a non-empty XML file. have_xmlto_text=no cat > conftest.xml << "EOF" EOF AS_IF([test "$have_xmlto" = yes], [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], [have_xmlto_text=yes], - [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) + [# Try it again with a non-empty XML file. + cat > conftest.xml << "EOF" + +EOF + AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], + [have_xmlto_text=yes], + [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])]) rm -f conftest.xml AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) @@ -3067,8 +3089,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ +touch \$(top_srcdir)/INSTALL; \ +echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" AC_SUBST([INSTALL_CMD]) ]) # XORG_INSTALL dnl Copyright 2005 Red Hat, Inc @@ -3129,10 +3152,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[ # # AC_DEFUN([XORG_CHANGELOG], [ -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" +|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ +touch \$(top_srcdir)/ChangeLog; \ +echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" AC_SUBST([CHANGELOG_CMD]) ]) # XORG_CHANGELOG diff --git a/app/xsetroot/compile b/app/xsetroot/compile new file mode 100644 index 000000000..a85b723c7 --- /dev/null +++ b/app/xsetroot/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/xsetroot/configure b/app/xsetroot/configure index 95757c777..a00dd04cb 100644 --- a/app/xsetroot/configure +++ b/app/xsetroot/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xsetroot 1.1.1. +# Generated by GNU Autoconf 2.69 for xsetroot 1.1.2. # # Report bugs to . # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='xsetroot' PACKAGE_TARNAME='xsetroot' -PACKAGE_VERSION='1.1.1' -PACKAGE_STRING='xsetroot 1.1.1' +PACKAGE_VERSION='1.1.2' +PACKAGE_STRING='xsetroot 1.1.2' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_URL='' @@ -1318,7 +1318,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xsetroot 1.1.1 to adapt to many kinds of systems. +\`configure' configures xsetroot 1.1.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1388,7 +1388,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xsetroot 1.1.1:";; + short | recursive ) echo "Configuration of xsetroot 1.1.2:";; esac cat <<\_ACEOF @@ -1505,7 +1505,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xsetroot configure 1.1.1 +xsetroot configure 1.1.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1762,7 +1762,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xsetroot $as_me 1.1.1, which was +It was created by xsetroot $as_me 1.1.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2591,7 +2591,7 @@ fi # Define the identity of the package. PACKAGE='xsetroot' - VERSION='1.1.1' + VERSION='1.1.2' cat >>confdefs.h <<_ACEOF @@ -10258,10 +10258,11 @@ _ACEOF -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" +|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ +touch \$(top_srcdir)/ChangeLog; \ +echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" @@ -10269,14 +10270,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)" macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ +touch \$(top_srcdir)/INSTALL; \ +echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" +case $host_os in + solaris*) + # Solaris 2.0 - 11.3 use SysV man page section numbers, so we + # check for a man page file found in later versions that use + # traditional section numbers instead + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5 +$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; } +if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then : + $as_echo_n "(cached) " >&6 +else + test "$cross_compiling" = yes && + as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 +if test -r "/usr/share/man/man7/attributes.7"; then + ac_cv_file__usr_share_man_man7_attributes_7=yes +else + ac_cv_file__usr_share_man_man7_attributes_7=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5 +$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; } +if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then : + SYSV_MAN_SECTIONS=false +else + SYSV_MAN_SECTIONS=true +fi + + ;; + *) SYSV_MAN_SECTIONS=false ;; +esac + if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi @@ -10292,9 +10324,9 @@ if test x$LIB_MAN_DIR = x ; then fi if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; + case $SYSV_MAN_SECTIONS in + true) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then @@ -10302,9 +10334,9 @@ if test x$FILE_MAN_DIR = x ; then fi if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; + case $SYSV_MAN_SECTIONS in + true) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then @@ -10312,9 +10344,9 @@ if test x$MISC_MAN_DIR = x ; then fi if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; + case $SYSV_MAN_SECTIONS in + true) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then @@ -10322,9 +10354,9 @@ if test x$DRIVER_MAN_DIR = x ; then fi if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; + case $SYSV_MAN_SECTIONS in + true) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then @@ -10414,12 +10446,12 @@ if test -n "$XSETROOT_CFLAGS"; then pkg_cv_XSETROOT_CFLAGS="$XSETROOT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xmuu x11 xbitmaps xcursor xproto >= 7.0.17\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xmuu x11 xbitmaps xcursor xproto >= 7.0.17") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xmuu x11 xbitmaps xcursor xproto >= 7.0.25\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xmuu x11 xbitmaps xcursor xproto >= 7.0.25") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_XSETROOT_CFLAGS=`$PKG_CONFIG --cflags "xmuu x11 xbitmaps xcursor xproto >= 7.0.17" 2>/dev/null` + pkg_cv_XSETROOT_CFLAGS=`$PKG_CONFIG --cflags "xmuu x11 xbitmaps xcursor xproto >= 7.0.25" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -10431,12 +10463,12 @@ if test -n "$XSETROOT_LIBS"; then pkg_cv_XSETROOT_LIBS="$XSETROOT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xmuu x11 xbitmaps xcursor xproto >= 7.0.17\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xmuu x11 xbitmaps xcursor xproto >= 7.0.17") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xmuu x11 xbitmaps xcursor xproto >= 7.0.25\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xmuu x11 xbitmaps xcursor xproto >= 7.0.25") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_XSETROOT_LIBS=`$PKG_CONFIG --libs "xmuu x11 xbitmaps xcursor xproto >= 7.0.17" 2>/dev/null` + pkg_cv_XSETROOT_LIBS=`$PKG_CONFIG --libs "xmuu x11 xbitmaps xcursor xproto >= 7.0.25" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -10457,14 +10489,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - XSETROOT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xmuu x11 xbitmaps xcursor xproto >= 7.0.17" 2>&1` + XSETROOT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xmuu x11 xbitmaps xcursor xproto >= 7.0.25" 2>&1` else - XSETROOT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xmuu x11 xbitmaps xcursor xproto >= 7.0.17" 2>&1` + XSETROOT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xmuu x11 xbitmaps xcursor xproto >= 7.0.25" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$XSETROOT_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (xmuu x11 xbitmaps xcursor xproto >= 7.0.17) were not met: + as_fn_error $? "Package requirements (xmuu x11 xbitmaps xcursor xproto >= 7.0.25) were not met: $XSETROOT_PKG_ERRORS @@ -11143,7 +11175,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xsetroot $as_me 1.1.1, which was +This file was extended by xsetroot $as_me 1.1.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11209,7 +11241,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xsetroot config.status 1.1.1 +xsetroot config.status 1.1.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/app/xsetroot/configure.ac b/app/xsetroot/configure.ac index d7bfd46dd..91657672c 100644 --- a/app/xsetroot/configure.ac +++ b/app/xsetroot/configure.ac @@ -23,7 +23,7 @@ dnl Process this file with autoconf to create configure. # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([xsetroot], [1.1.1], +AC_INIT([xsetroot], [1.1.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xsetroot]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) @@ -39,7 +39,7 @@ XORG_MACROS_VERSION(1.8) XORG_DEFAULT_OPTIONS # Checks for pkg-config packages -PKG_CHECK_MODULES(XSETROOT, [xmuu x11 xbitmaps xcursor xproto >= 7.0.17]) +PKG_CHECK_MODULES(XSETROOT, [xmuu x11 xbitmaps xcursor xproto >= 7.0.25]) XORG_WITH_LINT diff --git a/app/xsetroot/man/xsetroot.man b/app/xsetroot/man/xsetroot.man index b58b39dd6..dda6a9c98 100644 --- a/app/xsetroot/man/xsetroot.man +++ b/app/xsetroot/man/xsetroot.man @@ -27,13 +27,23 @@ xsetroot \- root window parameter setting utility for X .SH SYNOPSIS .B xsetroot -[-help] [-version] [-def] [-display \fIdisplay\fP] +[-help] +[-version] +[-def] +[-display \fIdisplay\fP] [-cursor \fIcursorfile maskfile\fP] -[-cursor_name \fIcursorname\fP] +[-cursor_name \fIcursorfontname\fP] [-xcf \fIcursorfile\fP \fIcursorsize\fP] -[-bitmap \fIfilename\fP] -[-mod \fIx y\fP] [-gray] [-grey] [-fg \fIcolor\fP] [-bg \fIcolor\fP] [-rv] -[-solid \fIcolor\fP] [-name \fIstring\fP] +[-bitmap \fIfilename\fP +| -mod \fIx y\fP +| -gray +| -grey +| -solid \fIcolor\fP] +[-bg \fIcolor\fP] +[-fg \fIcolor\fP] +[-rv] +[-name \fIstring\fP] +[-d \fIdisplay\fP] .SH DESCRIPTION The .I xsetroot @@ -56,11 +66,11 @@ Only one of the background color/tiling changing options .SH OPTIONS .PP The various options are as follows: -.IP \fB-help\fP +.IP "\fB-help\fP" Print a usage message and exit. -.IP \fB-verson\fP +.IP "\fB-version\fP" Print a version message and exit. -.IP \fB-def\fP +.IP "\fB-def, -default\fP" Reset unspecified attributes to the default values. (Restores the background to the familiar gray mesh and the cursor to the hollow x shape.) .IP "\fB-cursor\fP \fIcursorfile\fP \fImaskfile\fP" @@ -70,7 +80,7 @@ Cursor and mask files are bitmaps (little pictures), and can be made with the .I bitmap(__appmansuffix__) program. You probably want the mask file to be all black until you get used to the way masks work. -.IP "\fB-cursor_name\fP \fIcursorname\fP +.IP "\fB-cursor_name\fP \fIcursorfontname\fP" This lets you change the pointer cursor to one of the standard cursors from the cursor font. Refer to appendix B of the X protocol for the names (except that the XC_ prefix is elided for this option). @@ -87,16 +97,14 @@ the bitmap. This is used if you want a plaid-like grid pattern on your screen. x and y are integers ranging from 1 to 16. Try the different combinations. Zero and negative numbers are taken as 1. -.IP \fB-gray\fP -Make the entire background gray. (Easier on the eyes.) -.IP \fB-grey\fP -Make the entire background grey. -.IP "\fB-fg\fP \fIcolor\fP" +.IP "\fB-gray, -grey\fP" +Make the entire background gray (Easier on the eyes). +.IP "\fB-bg, -background\fP \fIcolor\fP" +Use ``color'' as the background color. +.IP "\fB-fg, -foreground\fP \fIcolor\fP" Use ``color'' as the foreground color. Foreground and background colors are meaningful only in combination with -cursor, -bitmap, or -mod. -.IP "\fB-bg\fP \fIcolor\fP" -Use ``color'' as the background color. -.IP \fB-rv\fP +.IP "\fB-rv, -reverse\fP" This exchanges the foreground and background colors. Normally the foreground color is black and the background color is white. .IP "\fB-solid\fP \fIcolor\fP" @@ -107,7 +115,7 @@ Set the name of the root window to ``string''. There is no default value. Usually a name is assigned to a window so that the window manager can use a text representation when the window is iconified. This option is unused since you can't iconify the background. -.IP "\fB-display\fP \fIdisplay\fP" +.IP "\fB-d, -display\fP \fIdisplay\fP" Specifies the server to connect to; see \fIX(__miscmansuffix__)\fP. .SH "SEE ALSO" X(__miscmansuffix__), xset(__appmansuffix__), xrdb(__appmansuffix__), Xcursor(__libmansuffix__) diff --git a/app/xsetroot/xsetroot.c b/app/xsetroot/xsetroot.c index 3bf27d809..5f142e172 100644 --- a/app/xsetroot/xsetroot.c +++ b/app/xsetroot/xsetroot.c @@ -59,7 +59,6 @@ static int save_colors = 0; static int unsave_past = 0; static Pixmap save_pixmap = (Pixmap)None; -static void usage(void) _X_NORETURN; static void FixupState(void); static void SetBackgroundToBitmap(Pixmap bitmap, unsigned int width, unsigned int height); @@ -70,26 +69,29 @@ static XColor NameToXColor(char *name, unsigned long pixel); static unsigned long NameToPixel(char *name, unsigned long pixel); static Pixmap ReadBitmapFile(char *filename, unsigned int *width, unsigned int *height, int *x_hot, int *y_hot); -static void -usage(void) +static void _X_NORETURN _X_COLD +usage(const char *errmsg) { - fprintf(stderr, "usage: %s [options]\n%s\n", program_name, + if (errmsg != NULL) + fprintf (stderr, "%s: %s\n\n", program_name, errmsg); + + fprintf(stderr, "Usage: %s [options]\n%s\n", program_name, " where options are:\n" - " -display or -d \n" - " -fg or -foreground \n" - " -bg or -background \n" - " -rv or -reverse\n" - " -def or -default\n" - " -name \n" - " -cursor \n" - " -cursor_name \n" - " -xcf \n" - " -solid \n" - " -gray or -grey\n" - " -bitmap \n" - " -mod \n" - " -help\n" - " -version\n" + " -help Print this help\n" + " -version Print a version message\n" + " -def, -default Reset unspecified attributes\n" + " -cursor Pointer cursor used when outside of any windows\n" + " -cursor_name Use a pointer cursor from the cursor font\n" + " -xcf Load a pointer cursor from an Xcursor file\n" + " -bitmap Use the bitmap specified in the file\n" + " -mod Use a plaid-like grid pattern on screen\n" + " -gray, -grey Make the entire background grey\n" + " -bg, -background Set background color\n" + " -fg, -foreground Set foreground color\n" + " -rv, -reverse Swap foreground and background colors\n" + " -solid Set the background of the root window\n" + " -name Set the name of the root window\n" + " -d, -display Specifies the server to connect to\n" ); exit(1); /*NOTREACHED*/ @@ -123,12 +125,12 @@ main(int argc, char *argv[]) for (i = 1; i < argc; i++) { if (!strcmp ("-display", argv[i]) || !strcmp ("-d", argv[i])) { - if (++i>=argc) usage (); + if (++i>=argc) usage ("-display requires an argument"); display_name = argv[i]; continue; } if (!strcmp("-help", argv[i])) { - usage(); + usage(NULL); } if (!strcmp("-version", argv[i])) { printf("%s\n", PACKAGE_STRING); @@ -139,29 +141,33 @@ main(int argc, char *argv[]) continue; } if (!strcmp("-name", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("-name requires an argument"); name = argv[i]; nonexcl++; continue; } if (!strcmp("-cursor", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) + usage("missing cursorfile & maskfile arguments for -cursor"); cursor_file = argv[i]; - if (++i>=argc) usage(); + if (++i>=argc) + usage("missing maskfile argument for -cursor"); cursor_mask = argv[i]; nonexcl++; continue; } if (!strcmp("-cursor_name", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("-cursor_name requires an argument"); cursor_name = argv[i]; nonexcl++; continue; } if (!strcmp("-xcf", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) + usage("missing cursorfile & cursorsize arguments for -xcf"); xcf = argv[i]; - if (++i>=argc) usage(); + if (++i>=argc) + usage("missing cursorsize argument for -xcf"); xcf_size = atoi(argv[i]); if (xcf_size <= 0) xcf_size = 32; @@ -169,17 +175,17 @@ main(int argc, char *argv[]) continue; } if (!strcmp("-fg",argv[i]) || !strcmp("-foreground",argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("-foreground requires an argument"); fore_color = argv[i]; continue; } if (!strcmp("-bg",argv[i]) || !strcmp("-background",argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("-background requires an argument"); back_color = argv[i]; continue; } if (!strcmp("-solid", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("-solid requires an argument"); solid_color = argv[i]; excl++; continue; @@ -190,16 +196,16 @@ main(int argc, char *argv[]) continue; } if (!strcmp("-bitmap", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("-bitmap requires an argument"); bitmap_file = argv[i]; excl++; continue; } if (!strcmp("-mod", argv[i])) { - if (++i>=argc) usage(); + if (++i>=argc) usage("missing x & y arguments for -mod"); mod_x = atoi(argv[i]); if (mod_x <= 0) mod_x = 1; - if (++i>=argc) usage(); + if (++i>=argc) usage("missing y argument for -mod"); mod_y = atoi(argv[i]); if (mod_y <= 0) mod_y = 1; excl++; @@ -209,14 +215,16 @@ main(int argc, char *argv[]) reverse = 1; continue; } - usage(); + fprintf(stderr, "%s: unrecognized argument '%s'\n", + program_name, argv[i]); + usage(NULL); } /* Check for multiple use of exclusive options */ if (excl > 1) { fprintf(stderr, "%s: choose only one of {solid, gray, bitmap, mod}\n", program_name); - usage(); + usage(NULL); } dpy = XOpenDisplay(display_name); @@ -323,10 +331,13 @@ FixupState(void) return; prop = XInternAtom(dpy, "_XSETROOT_ID", False); if (unsave_past) { - (void)XGetWindowProperty(dpy, root, prop, 0L, 1L, True, AnyPropertyType, - &type, &format, &length, &after, &data); - if ((type == XA_PIXMAP) && (format == 32) && - (length == 1) && (after == 0)) + if (XGetWindowProperty(dpy, root, prop, 0L, 1L, True, AnyPropertyType, + &type, &format, &length, &after, &data) != Success) + fprintf(stderr, + "%s: warning: cannot get _XSETROOT_ID property from root window\n", + program_name); + else if ((type == XA_PIXMAP) && (format == 32) && + (length == 1) && (after == 0)) XKillClient(dpy, *((Pixmap *)data)); else if (type != None) fprintf(stderr, "%s: warning: _XSETROOT_ID property is garbage\n",