diff -Nru xscreensaver-5.42+dfsg1/aclocal.m4 xscreensaver-5.45+dfsg1/aclocal.m4 --- xscreensaver-5.42+dfsg1/aclocal.m4 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/aclocal.m4 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.2 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -701,7 +701,7 @@ AC_SUBST([USE_NLS]) ]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru xscreensaver-5.42+dfsg1/config.h.in xscreensaver-5.45+dfsg1/config.h.in --- xscreensaver-5.42+dfsg1/config.h.in 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/config.h.in 2020-12-20 10:54:56.000000000 +0000 @@ -1,7 +1,7 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ -/* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski. +/* config.h.in --- xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski. * * The best way to set these parameters is by running the included `configure' * script. That examines your system, and generates `config.h' from @@ -67,9 +67,7 @@ /* Define this if you have the X Double Buffer Extension. */ #undef HAVE_DOUBLE_BUFFER_EXTENSION -/* Define this if you have the XDPMS extension. This is standard on - sufficiently-recent XFree86 systems, and possibly elsewhere. (It's - available if the file /usr/include/X11/extensions/dpms.h exists.) */ +/* Define this if you have the XDPMS extension. */ #undef HAVE_DPMS_EXTENSION /* Define this if your system is Digital or SCO Unix with so-called ``Enhanced @@ -126,15 +124,18 @@ /* Define this if you have the -lgle from GLE version 3 */ #undef HAVE_GLE3 +/* Define this if your OpenGL implementation supports the OpenGL Shading + Language (GLSL). This requires at least OpenGL 2.0. HAVE_GL should be + defined, too. */ +#undef HAVE_GLSL + /* Define this if you have Gtk (any version.) */ #undef HAVE_GTK /* Define this if you have Gtk 2.x. */ #undef HAVE_GTK2 -/* Define this if you are running HPUX with so-called ``Secure Passwords'' (if - you have /usr/include/hpsecurity.h, you probably have this.) I haven't - tested this one, let me know if it works. */ +/* Define this if you have HPUX with so-called "Secure Passwords". */ #undef HAVE_HPUX_PASSWD /* Define this if you do pings with a `struct icmp' and an `icmp_id' slot. */ @@ -171,11 +172,17 @@ /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES +/* Define this if your system has libcap. */ +#undef HAVE_LIBCAP + /* Define this if the Portable Network Graphics library is installed. It is basically required, but many things will more-or-less limp along without it. */ #undef HAVE_LIBPNG +/* Define this if you have libsystemd. */ +#undef HAVE_LIBSYSTEMD + /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H @@ -186,6 +193,11 @@ have different names.) (HAVE_GL should be defined too.) */ #undef HAVE_MESA_GL +/* Using the MIT-SCREEN-SAVER extension means that the X server will crash at + random times, and fading and hysteresis won't work. Don't use this. You'll + be sorry. See comment in xscreensaver.c. */ +#undef HAVE_MIT_SAVER_EXTENSION + /* Define this if you have Motif. */ #undef HAVE_MOTIF @@ -227,17 +239,13 @@ /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV -/* Define this if you have the Resize and Rotate extension. This is standard - on sufficiently-recent XFree86 systems, and possibly elsewhere. (It's - available if the file /usr/include/X11/extensions/Xrandr.h exists.) */ +/* Define this if you have the Resize and Rotate extension. */ #undef HAVE_RANDR /* Define this if the RANDR library is version 1.2 or newer. */ #undef HAVE_RANDR_12 -/* Define this if you have the XReadDisplay extension (I think this is an - SGI-only thing; it's in .) A few of the - screenhacks will take advantage of this if it's available. */ +/* Define this if you have the SGI XReadDisplay extension. */ #undef HAVE_READ_DISPLAY_EXTENSION /* Define to 1 if you have the `realpath' function. */ @@ -261,6 +269,12 @@ /* Define to 1 if you have the `setrlimit' function. */ #undef HAVE_SETRLIMIT +/* Define this if you have the SGI SCREEN_SAVER extension. */ +#undef HAVE_SGI_SAVER_EXTENSION + +/* Define this if you have the SGI-VIDEO-CONTROL extension. */ +#undef HAVE_SGI_VC_EXTENSION + /* Define this if your system uses 'shadow' passwords, that is, the passwords live in /etc/shadow instead of /etc/passwd, and one reads them with getspnam() instead of getpwnam(). (Note that SCO systems do some random @@ -334,22 +348,17 @@ /* Define this if you have the functions XF86VidModeGetModeLine() and XF86VidModeGetViewPort(), in support of virtual desktops where the X - server's root window is bigger than the actual screen. This is an XFree86 - thing, and probably doesn't exist elsewhere. (It's available if the file - /usr/include/X11/extensions/xf86vmode.h exists.) */ + server's root window is bigger than the actual screen. */ #undef HAVE_XF86VMODE /* Define this if you have the functions XF86VidModeGetGamma() and XF86VidModeSetGamma(), which allow clients to change the gamma response of - the monitor. This is an XFree86 4.0.x thing, and probably doesn't exist - elsewhere. (It's available if the file - /usr/include/X11/extensions/xf86vmode.h exists and has stuff about gamma in - it.) */ + the monitor. */ #undef HAVE_XF86VMODE_GAMMA /* Define this if you have the functions XF86VidModeGetGammaRamp() and XF86VidModeSetGammaRamp(), which provide finer-grained control than - XF86VidMode[GS]etGamma(). These appeared in XFree86 4.1.0. */ + XF86VidMode[GS]etGamma(). */ #undef HAVE_XF86VMODE_GAMMA_RAMP /* Define this if you have libXft2. */ @@ -359,14 +368,13 @@ which allows the Ctrl-Sh-Reset key sequence to be temporarily disabled.) */ #undef HAVE_XHPDISABLERESET -/* Define this if you have the Xinerama extension. This is standard on - sufficiently-recent XFree86 systems, and possibly elsewhere. (It's - available if the file /usr/include/X11/extensions/Xinerama.h exists.) */ +/* Define this if you have the X11R5 XIDLE extension. */ +#undef HAVE_XIDLE_EXTENSION + +/* Define this if you have the Xinerama extension. */ #undef HAVE_XINERAMA -/* Define this if you have the Xinput extension. This is standard since X11R5, - and is thus almost everywhere. (It's available if the file - /usr/include/X11/extensions/XInput.h exists.) */ +/* Define this if you have the Xinput extension. */ #undef HAVE_XINPUT /* Define this if you have the XmComboBox Motif widget (Motif 2.0.) */ @@ -388,9 +396,6 @@ /* Define this to remove the option of locking the screen at all. */ #undef NO_LOCKING -/* This is the same as GETTEXT_PACKAGE, but for the glade generated code. */ -#undef PACKAGE - /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT diff -Nru xscreensaver-5.42+dfsg1/configure xscreensaver-5.45+dfsg1/configure --- xscreensaver-5.42+dfsg1/configure 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/configure 2020-12-20 10:54:56.000000000 +0000 @@ -30,7 +30,6 @@ esac fi - as_nl=' ' export as_nl @@ -78,7 +77,6 @@ } fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. @@ -234,7 +232,6 @@ fi; } IFS=$as_save_IFS - if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a @@ -354,7 +351,6 @@ test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - } # as_fn_mkdir_p # as_fn_executable_p FILE @@ -399,7 +395,6 @@ } fi # as_fn_arith - # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are @@ -461,7 +456,6 @@ as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits - as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && @@ -553,7 +547,6 @@ # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - test -n "$DJDIR" || exec 7<&0 &1 @@ -661,10 +654,9 @@ PASSWD_SRCS MEN_OSX SCRIPTS_OSX +EXES_SYSTEMD EXES_OSX OBJCC -COMMENT_DEMO_GLADE2_GTK_2_22_TAIL -COMMENT_DEMO_GLADE2_GTK_2_22_HEAD WITH_BROWSER DEFAULT_TEXT_FILE DEFAULT_IMAGE_DIRECTORY @@ -676,8 +668,12 @@ INSTALL_PAM NEED_SETUID INSTALL_DIRS +SETCAP_HACKS SETUID_HACKS INSTALL_SETUID +PROG_SETCAP +LIBCAP_LIBS +LIBCAP_CFLAGS PASSWD_LIBS XINERAMA_LIBS XDPMS_LIBS @@ -694,10 +690,14 @@ ALL_DEMO_PROGRAMS PREFERRED_DEMO_PROGRAM INCLUDES +setcap_program +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CC +ax_pthread_config +login_manager_tmp gnome_url_show_program gnome_open_program -pkg_config -login_manager_tmp MKINSTALLDIRS POSUB POFILES @@ -747,6 +747,7 @@ INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS +pkg_config X_EXTRA_LIBS X_LIBS X_PRE_LIBS @@ -760,10 +761,6 @@ INSTALL_SCRIPT INSTALL_PROGRAM CPP -PTHREAD_CFLAGS -PTHREAD_LIBS -PTHREAD_CC -ax_pthread_config OBJEXT EXEEXT ac_ct_CC @@ -820,22 +817,28 @@ ac_subst_files='' ac_user_opts=' enable_option_checking -with_x_app_defaults -with_pthread enable_largefile with_x enable_nls +with_app_defaults with_hackdir enable_subdir with_configdir with_dpms_ext +with_xf86vmode_ext with_xinerama_ext +with_randr_ext with_xinput_ext -with_xf86vmode_ext with_xf86gamma_ext -with_randr_ext +with_xidle_ext +with_sgi_ext +with_sgivc_ext +with_readdisplay +with_xshm_ext +with_xdbe_ext with_proc_interrupts with_proc_oom +with_systemd enable_locking enable_root_passwd with_pam @@ -844,22 +847,21 @@ with_kerberos with_shadow with_passwd_helper -with_login_manager with_gtk with_motif +with_login_manager +with_image_directory +with_text_file +with_browser with_gl with_gle with_gles +with_jpeg with_png with_pixbuf -with_jpeg with_xft -with_xshm_ext -with_xdbe_ext -with_readdisplay -with_image_directory -with_text_file -with_browser +with_pthread +with_setcap_hacks with_setuid_hacks with_record_animation ' @@ -874,7 +876,6 @@ CPP XMKMF' - # Initialize some variables set by options. ac_init_help= ac_init_version=false @@ -1338,7 +1339,6 @@ test "$silent" = yes && exec 6>/dev/null - ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || @@ -1346,7 +1346,6 @@ test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" - # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes @@ -1422,9 +1421,7 @@ Defaults for the options are specified in brackets. - Configuration: - -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages @@ -1435,12 +1432,6 @@ -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', @@ -1453,17 +1444,11 @@ --libexecdir=DIR program executables [EPREFIX/libexec] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1482,89 +1467,75 @@ cat <<\_ACEOF -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-largefile omit support for large files - --disable-nls do not use Native Language Support - -Screen locking options: - --enable-locking Compile in support for locking the display. - --disable-locking Do not allow locking at all. - - --enable-root-passwd Allow root passwd to unlock screen. - --disable-root-passwd Do not allow that. - --enable-pam-check-account-type - Whether PAM should check the result of account - modules when authenticating. Only do this if you - have account configured properly on your system. - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - - --with-pthread Enables POSIX threads, for SMP support. +Installation Options: -Installation options: + --prefix=PREFIX Install root of architecture-independent files. + --exec-prefix=EPREFIX Install root of architecture-dependent files. + --with-app-defaults=DIR Where to install the default settings file. --with-hackdir=DIR Where to install the hundreds of demo executables. - Default: `PREFIX/libexec/xscreensaver/' - --with-configdir=DIR Where to install the data files that describe each - of the display modes to the GUI. - Default: `PREFIX/share/xscreensaver/config/' - --with-x-app-defaults=DIR - Where to install xscreensaver configuration file. + --with-configdir=DIR Where to install the GUI configuration files. + +Server Extension Options: - --with-dpms-ext Include support for the DPMS extension. - --with-xinerama-ext Include support for the XINERAMA extension. + --with-dpms-ext Include support for power management. + --with-xf86vmode-ext Include support for virtual screens. + --with-xinerama-ext Include support for multiple monitors. + --with-randr-ext Include different support for multiple monitors. --with-xinput-ext Include support for the XInput extension. - --with-xf86vmode-ext Include support for XFree86 virtual screens. --with-xf86gamma-ext Include support for XFree86 gamma fading. - --with-randr-ext Include support for the X Resize+Rotate extension. + --with-xidle-ext Include support for the X11R5 XIDLE extension. + --with-sgi-ext Include support for the SGI SCREEN_SAVER extension. + --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension. + --with-readdisplay Include support for the SGI XReadDisplay extension. + --with-xshm-ext Include support for the Shared Memory extension. + --with-xdbe-ext Include support for the DOUBLE-BUFFER extension. --with-proc-interrupts Include support for consulting the /proc/interrupts file to notice keyboard activity. - --with-proc-oom Include support for disabling the OOM-killer. + --with-proc-oom Include support for disabling the OOM-killer. + --with-systemd Support systemd requests to lock on suspend, and to + allow video players to inhibit the screen saver. + +Screen Locking Options: + + --disable-locking Do not allow locking of the display at all. --with-pam Include support for PAM (Pluggable Auth Modules.) - --with-pam-service-name NAME arg is the name of the PAM service that - xscreensaver will authenticate as. + --with-pam-service-name Set the name of the xscreensaver PAM service. + --enable-pam-account Whether PAM should check the result of account + modules when authenticating. Only do this if you + have "account" modules configured on your system. + --enable-root-passwd Allow the root passwd to unlock, if not using PAM. --with-kerberos Include support for Kerberos authentication. --with-shadow Include support for shadow password authentication. --with-passwd-helper Include support for an external password verification helper program. - --with-login-manager Put a "New Login" button on the unlock dialog that - runs a login manager like gdmflexiserver or kdmctl. -User interface options: +User Interface Options: --with-gtk Use the Gtk toolkit for the user interface. - --with-motif Use the Motif toolkit for the user interface - (no longer supported.) + --with-motif Use the Motif toolkit for the user interface. + --with-login-manager Put a "New Login" button on the unlock dialog that + runs a login manager like gdmflexiserver or kdmctl. + --with-image-directory Some demos will display random images from here. + --with-text-file=FILE Some demos will use this as a source of text. + --with-browser=BROWSER The web browser used to open the "Help" URL. -Graphics options: +Graphics Options: --with-gl Build those demos which depend on OpenGL. - --with-gle Build those demos which depend on GLE - (the OpenGL "extrusion" library.) + --with-gle Build those demos which depend on GLE (extrusion). --with-gles Target OpenGL ES 1.x API instead of OpenGL 1.3. - --with-png Include support for the PNG library. - --with-pixbuf Include support for the GDK-Pixbuf library in some - demos, which will make it possible for them to read - GIF, JPEG, and PNG files as well. --with-jpeg Include support for the JPEG library. + --with-png Include support for the PNG library. + --with-pixbuf Include support for the GDK-Pixbuf library, which + allows the display of JPEG, PNG, GIF and SVG images. --with-xft Include support for the X Freetype library. - --with-xshm-ext Include support for the Shared Memory extension. - --with-xdbe-ext Include support for the DOUBLE-BUFFER extension. - --with-readdisplay Include support for the XReadDisplay extension. - --with-image-directory Arg is the default directory from which some demos - will choose random images to display. - --with-text-file=FILE By default, some demos may display this file. - --with-browser=BROWSER Specify the web browser used to show the help URL. - --with-setuid-hacks Allow some demos to be installed `setuid root' - (which is needed in order to ping other hosts.) - + --with-pthread Enables POSIX threads, for SMP support. + --with-setcap-hacks Build the "sonar" demo with libcap, which allows + it to ping other hosts without being setuid. + --with-setuid-hacks Install the "sonar" demo as setuid root, which is + needed in order to ping other hosts without setcap. --with-record-animation Include code for generating MP4 videos. - Some influential environment variables: CC C compiler command CFLAGS C compiler flags @@ -1694,21 +1665,20 @@ } # ac_fn_c_try_compile -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -rf conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" + if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 @@ -1716,29 +1686,21 @@ mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval -} # ac_fn_c_try_link +} # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- @@ -1782,43 +1744,6 @@ } # ac_fn_c_try_run -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using @@ -1991,6 +1916,52 @@ } # ac_fn_c_check_type +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -rf conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -2163,14 +2134,12 @@ cat >&5 <<_ACEOF - ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF - # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. @@ -2347,7 +2316,6 @@ #define PACKAGE_URL "$PACKAGE_URL" _ACEOF - # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE @@ -2465,10 +2433,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_config_headers="$ac_config_headers config.h" - echo "current directory: `pwd`" echo "command line was: $0 $@" @@ -2478,438 +2444,208 @@ # ############################################################################### - - - - - - # This only ever existed in X11R4 and X11R5. -#AH_TEMPLATE([HAVE_XIDLE_EXTENSION], -# [Define this if you have the XIDLE extension installed. If you -# have the XIDLE extension, this is recommended. (You have this -# extension if the file /usr/include/X11/extensions/xidle.h -# exists.) Turning on this flag lets XScreenSaver work better with -# servers which support this extension; but it will still work -# with servers which do not suport it, so it's a good idea to -# compile in support for it if you can.]) - -# Using this extension will crash your X server and make fading not work. -#AH_TEMPLATE([HAVE_MIT_SAVER_EXTENSION], -# [Define this if you have the MIT-SCREEN-SAVER extension -# installed. See the caveats about this extension, above. -# (It's available if /usr/include/X11/extensions/scrnsaver.h -# exists.)]) # This only ever existed on SGI hardware. -#AH_TEMPLATE([HAVE_SGI_SAVER_EXTENSION], -# [Define this if you have the SGI SCREEN_SAVER extension. This is -# standard on Irix systems, and not available elsewhere.]) # This only ever existed on SGI hardware. -#AH_TEMPLATE([HAVE_SGI_VC_EXTENSION], -# [Define this if you have the SGI-VIDEO-CONTROL extension. This -# is standard on Irix systems, and not available elsewhere.]) - +# After checking to see that --srcdir is correct (which AC_INIT does) +# check for some random other files that come later in the tar file, +# to make sure everything is here. +# +for d in utils jwxyz hacks hacks/glx driver ; do + f=$srcdir/$d/Makefile.in + if test \! -r $f ; then + echo "" + echo "ERROR: The package is incomplete: $f does not exist." + echo " This probably means that your download was truncated." + echo "" + exit 1 + fi +done +############################################################################### +# +# Function to figure out how to run the compiler. +# +############################################################################### +############################################################################### +# +# Check for availability of various gcc command-line options. +# +############################################################################### +# Need to disable Objective C extensions in ANSI C on MacOS X to work +# around an Apple-specific gcc bug. +# +############################################################################### +# +# Function to figure out how to disable // comments in ANSI C code. +# +# (With recent gcc, this is done with "-std=c89". With older gcc, this +# is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to +# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang. +# so much for compatibility!) +# +# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that +# declarations preceed statements, without resorting to "-pedantic". +# This means that there is no way to get gcc3 to issue warnings that +# ensure that your code complies with the ANSI/ISO C89 standard, without +# also drowning in totally useless warnings. Thank you master may I +# have another. +# +# So, I give up, let's just use -pedantic. +# +############################################################################### +############################################################################### +# +# Function to figure out how to create directory trees. +# +############################################################################### +############################################################################### +# +# Function to check whether gettimeofday() exists, and how to call it. +# This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS. +# +############################################################################### +############################################################################### +# +# Function to find perl5 (defines PERL and PERL_VERSION.) +# +############################################################################### +# M4 sucks!! perl sucks too!! +perl_version_cmd='print $]' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# After checking to see that --srcdir is correct (which AC_INIT does) -# check for some random other files that come later in the tar file, -# to make sure everything is here. -# -for d in utils jwxyz hacks hacks/glx driver ; do - f=$srcdir/$d/Makefile.in - if test \! -r $f ; then - echo "" - echo "ERROR: The package is incomplete: $f does not exist." - echo " This probably means that your download was truncated." - echo "" - exit 1 - fi -done +############################################################################### +# +# Function to demand "bc". Losers. +# +############################################################################### ############################################################################### # -# Query AX_PTHREAD, and figure out which compiler gets used. +# Functions to check how to do ICMP PING requests. # ############################################################################### - - - ############################################################################### # -# Function to figure out how to run the compiler. +# Functions to check for various X11 crap. # ############################################################################### +# Try and find the app-defaults directory. +# It sucks that autoconf doesn't do this already... +# - +# Random special-cases for X on certain pathological OSes. +# You know who you are. +# ############################################################################### # -# Check for availability of various gcc command-line options. +# Some utility functions to make checking for X things easier. # ############################################################################### +# Like AC_CHECK_HEADER, but it uses the already-computed -I directories. +# +# Like AC_EGREP_HEADER, but it uses the already-computed -I directories. +# - - - - -# Need to disable Objective C extensions in ANSI C on MacOS X to work -# around an Apple-specific gcc bug. +# Like AC_TRY_COMPILE, but it uses the already-computed -I directories. # +# Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories. +# Use this sparingly; it probably doesn't work very well on X programs. +# -############################################################################### +# Like AC_TRY_RUN, but it uses the already-computed -I directories. +# (But not the -L directories!) # -# Function to figure out how to disable // comments in ANSI C code. + +# Usage: HANDLE_X_PATH_ARG([variable_name], +# [--command-line-option], +# [descriptive string]) # -# (With recent gcc, this is done with "-std=c89". With older gcc, this -# is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to -# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang. -# so much for compatibility!) +# All of the --with options take three forms: # -# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that -# declarations preceed statements, without resorting to "-pedantic". -# This means that there is no way to get gcc3 to issue warnings that -# ensure that your code complies with the ANSI/ISO C89 standard, without -# also drowning in totally useless warnings. Thank you master may I -# have another. +# --with-foo (or --with-foo=yes) +# --without-foo (or --with-foo=no) +# --with-foo=/DIR # -# So, I give up, let's just use -pedantic. +# This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees +# a directory (string beginning with a slash) it checks to see whether +# /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS +# as appropriate. # -############################################################################### - - - - - -############################################################################### -# -# Function to figure out how to create directory trees. -# ############################################################################### - - - - ############################################################################### # -# Function to check whether gettimeofday() exists, and how to call it. -# This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS. +# End of function definitions. Now start actually executing stuff. # ############################################################################### - - - - -############################################################################### -# -# Function to find perl5 (defines PERL and PERL_VERSION.) -# ############################################################################### -# M4 sucks!! perl sucks too!! - -perl_version_cmd='print $]' +# WTF! autoconf emits this *way* too late. Do it earlier. +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' +# random compiler setup +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -############################################################################### -# -# Function to demand "bc". Losers. -# -############################################################################### - - - -############################################################################### -# -# Functions to check how to do ICMP PING requests. -# -############################################################################### - - - - - - -############################################################################### -# -# Functions to check for various X11 crap. -# -############################################################################### - -# Try and find the app-defaults directory. -# It sucks that autoconf doesn't do this already... -# - - -############################################################################### -# -# Handle the --with-x-app-defaults option HERE -# -############################################################################### - - -# Check whether --with-x-app-defaults was given. -if test "${with_x_app_defaults+set}" = set; then : - withval=$with_x_app_defaults; ac_cv_x_app_defaults="$withval" -else - eval ac_x_app_defaults="$withval" -fi - - - - - - - - - - - -# Random special-cases for X on certain pathological OSes. -# You know who you are. -# - - - - - - -############################################################################### -# -# Some utility functions to make checking for X things easier. -# -############################################################################### - -# Like AC_CHECK_HEADER, but it uses the already-computed -I directories. -# - - -# Like AC_EGREP_HEADER, but it uses the already-computed -I directories. -# - - -# Like AC_TRY_COMPILE, but it uses the already-computed -I directories. -# - - - -# Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories. -# Use this sparingly; it probably doesn't work very well on X programs. -# - - -# Like AC_TRY_RUN, but it uses the already-computed -I directories. -# (But not the -L directories!) -# - - - - -# Usage: HANDLE_X_PATH_ARG([variable_name], -# [--command-line-option], -# [descriptive string]) -# -# All of the --with options take three forms: -# -# --with-foo (or --with-foo=yes) -# --without-foo (or --with-foo=no) -# --with-foo=/DIR -# -# This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees -# a directory (string beginning with a slash) it checks to see whether -# /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS -# as appropriate. -# - - - - -############################################################################### -############################################################################### -# -# End of function definitions. Now start actually executing stuff. -# -############################################################################### -############################################################################### - -# WTF! autoconf emits this *way* too late. Do it earlier. -test "x$prefix" = xNONE && prefix=$ac_default_prefix -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - - -# random compiler setup -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 @@ -2931,7 +2667,6 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : @@ -2964,8 +2699,6 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - ac_original_cc=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3009,7 +2742,6 @@ $as_echo "no" >&6; } fi - fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC @@ -3102,7 +2834,6 @@ $as_echo "no" >&6; } fi - fi fi if test -z "$CC"; then @@ -3159,7 +2890,6 @@ $as_echo "no" >&6; } fi - fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then @@ -3201,7 +2931,6 @@ $as_echo "no" >&6; } fi - test -n "$CC" && break done fi @@ -3245,7 +2974,6 @@ $as_echo "no" >&6; } fi - test -n "$ac_ct_CC" && break done @@ -3264,7 +2992,6 @@ fi - test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH @@ -3756,1402 +3483,1437 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -z "$GCC"; then + # not using GCC + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to request ANSI compilation" >&5 +$as_echo_n "checking how to request ANSI compilation... " >&6; } + case "$host" in + *-hpux* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: HPUX: adding -Ae" >&5 +$as_echo "HPUX: adding -Ae" >&6; } + CC="$CC -Ae" + ;; + *-aix* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX: adding -qlanglvl=ansi -qhalt=e" >&5 +$as_echo "AIX: adding -qlanglvl=ansi -qhalt=e" >&6; } + CC="$CC -qlanglvl=ansi -qhalt=e" + ;; + *-dec-* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: DEC: adding -std1 -ieee" >&5 +$as_echo "DEC: adding -std1 -ieee" >&6; } + CC="$CC -std1" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no idea" >&5 +$as_echo "no idea" >&6; } + ;; + esac + else + # using GCC + case "$host" in + *-solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris: adding -D__EXTENSIONS__" >&5 +$as_echo "Solaris: adding -D__EXTENSIONS__" >&6; } + CC="$CC -D__EXTENSIONS__" + ;; + esac + fi -have_pthread=no - with_pthread_req=unspecified - - # AX_PTHREAD is from the GNU Autoconf Archive. - # https://savannah.gnu.org/projects/autoconf-archive/ - # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_pthread.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) -# -# DESCRIPTION -# -# This macro figures out how to build C programs using POSIX threads. It -# sets the PTHREAD_LIBS output variable to the threads library and linker -# flags, and the PTHREAD_CFLAGS output variable to any special C compiler -# flags that are needed. (The user can also force certain compiler -# flags/libs to be tested by setting these environment variables.) -# -# Also sets PTHREAD_CC to any special C compiler that is needed for -# multi-threaded programs (defaults to the value of CC otherwise). (This -# is necessary on AIX to use the special cc_r compiler alias.) -# -# NOTE: You are assumed to not only compile your program with these flags, -# but also link it with them as well. e.g. you should link with -# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS -# -# If you are only building threads programs, you may wish to use these -# variables in your default LIBS, CFLAGS, and CC: -# -# LIBS="$PTHREAD_LIBS $LIBS" -# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -# CC="$PTHREAD_CC" -# -# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant -# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name -# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). -# -# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the -# PTHREAD_PRIO_INHERIT symbol is defined when compiling with -# PTHREAD_CFLAGS. -# -# ACTION-IF-FOUND is a list of shell commands to run if a threads library -# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it -# is not found. If ACTION-IF-FOUND is not specified, the default action -# will define HAVE_PTHREAD. -# -# Please let the authors know if this macro fails on any platform, or if -# you have any other suggestions or comments. This macro was based on work -# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help -# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by -# Alejandro Forero Cuervo to the autoconf macro repository. We are also -# grateful for the helpful feedback of numerous users. -# -# Updated for Autoconf 2.68 by Daniel Richard G. -# -# LICENSE -# -# Copyright (c) 2008 Steven G. Johnson -# Copyright (c) 2011 Daniel Richard G. -# -# 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 3 of the License, 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, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. - -#serial 21 - -# This is what autoupdate's m4 run will expand. It fires -# the warning (with _au_warn_XXX), outputs it into the -# updated configure.ac (with AC_DIAGNOSE), and then outputs -# the replacement expansion. - - -# This is an auxiliary macro that is also run when -# autoupdate runs m4. It simply calls m4_warning, but -# we need a wrapper so that each warning is emitted only -# once. We break the quoting in m4_warning's argument in -# order to expand this macro's arguments, not AU_DEFUN's. + OBJCC="$CC" + # This test makes cross-compiling fail, so let's just assume that nobody + # is using a K&R compiler any more... + # +# AC_MSG_CHECKING([whether the compiler works on ANSI C]) +# AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], +# AC_MSG_RESULT(yes), +# AC_MSG_RESULT(no) +# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), +# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) -# Finally, this is the expansion that is picked up by -# autoconf. It tells the user to run autoupdate, and -# then outputs the replacement expansion. We do not care -# about autoupdate's warning because that contains -# information on what to do *after* running autoupdate. + if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Turning on gcc compiler warnings." >&5 +$as_echo "Turning on gcc compiler warnings." >&6; } + CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes" + OBJCC="$OBJCC -Wall" + # As of gcc 3.4, we have "-Wdeclaration-after-statement" + # and so perhaps now we can do without -pedantic? + else + case "$host" in + *-irix5* |*-irix6.0-3* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Turning on SGI compiler warnings." >&5 +$as_echo "Turning on SGI compiler warnings." >&6; } + CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3" + ;; +# *-dec-osf* ) +# if test -z "$GCC"; then +# AC_MSG_RESULT(Turning on DEC C compiler warnings.) +# CC="$CC -migrate -w0 -verbose -warnprotos" +# fi +# ;; + esac + fi +if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -Wno-overlength-strings" >&5 +$as_echo_n "checking whether gcc accepts -Wno-overlength-strings... " >&6; } +if ${ac_cv_gcc_accepts_no_overlength+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.$ac_ext + touch conftest.$ac_ext + if ( ( gcc -c -Wno-overlength-strings conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ + grep unrecognized >/dev/null ); then + ac_cv_gcc_accepts_no_overlength=no + else + ac_cv_gcc_accepts_no_overlength=yes + CC="$CC -Wno-overlength-strings" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_no_overlength" >&5 +$as_echo "$ac_cv_gcc_accepts_no_overlength" >&6; } + ac_gcc_accepts_no_overlength="$ac_cv_gcc_accepts_no_overlength" + fi +if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -Wdeclaration-after-statement" >&5 +$as_echo_n "checking whether gcc accepts -Wdeclaration-after-statement... " >&6; } +if ${ac_cv_gcc_accepts_no_decl_after+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.$ac_ext + touch conftest.$ac_ext + if ( ( gcc -c -Wdeclaration-after-statement conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ + grep unrecognized >/dev/null ); then + ac_cv_gcc_accepts_no_decl_after=no + else + ac_cv_gcc_accepts_no_decl_after=yes + CC="$CC -Wdeclaration-after-statement" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_no_decl_after" >&5 +$as_echo "$ac_cv_gcc_accepts_no_decl_after" >&6; } + ac_gcc_accepts_no_decl_after="$ac_cv_gcc_accepts_no_decl_after" + fi - # This affects CC, LIBS, and CFLAGS, instead of defining new variables. +if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -no-cpp-precomp" >&5 +$as_echo_n "checking whether gcc accepts -no-cpp-precomp... " >&6; } +if ${ac_cv_gcc_accepts_no_cpp_precomp+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.$ac_ext + touch conftest.$ac_ext + if ( ( gcc -c -no-cpp-precomp conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ + grep unrecognized >/dev/null ); then + ac_cv_gcc_accepts_no_cpp_precomp=no + else + ac_cv_gcc_accepts_no_cpp_precomp=yes + CC="$CC -no-cpp-precomp" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_no_cpp_precomp" >&5 +$as_echo "$ac_cv_gcc_accepts_no_cpp_precomp" >&6; } + ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp" + fi +if test -n "$GCC"; then -# Check whether --with-pthread was given. -if test "${with_pthread+set}" = set; then : - withval=$with_pthread; with_pthread="$withval"; with_pthread_req="$withval" + case "$host" in + *-darwin* ) + # Fucking Apple let // comments sneak into OpenGL headers, so + # we *must* allow // comments when compiling on Mac OS 10.6! FUCK! + ;; + *) + if test -n "$GCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -std=c89" >&5 +$as_echo_n "checking whether gcc accepts -std=c89... " >&6; } +if ${ac_cv_gcc_accepts_std+:} false; then : + $as_echo_n "(cached) " >&6 else - with_pthread=yes + rm -rf conftest.$ac_ext + touch conftest.$ac_ext + if ( ( gcc -c -std=c89 conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ + grep unrecognized >/dev/null ); then + ac_cv_gcc_accepts_std=no + else + ac_cv_gcc_accepts_std=yes + CC="$CC -std=c89" + fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_std" >&5 +$as_echo "$ac_cv_gcc_accepts_std" >&6; } + ac_gcc_accepts_std="$ac_cv_gcc_accepts_std" + fi + ;; + esac - if test "$with_pthread" = yes; then - # AX_PTHREAD might want a different compiler. - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling C++ comments in ANSI C code." >&5 +$as_echo "Disabling C++ comments in ANSI C code." >&6; } + # + # The reason that // comments are banned from xscreensaver is that gcc is + # basically the only compiler in the world that supports them in C code. + # All other vendors support them only in their C++ compilers, not in their + # ANSI C compilers. This means that it's a portability problem: every time + # these comments have snuck into the xscreensaver source code, I've gotten + # complaints about it the next day. So we turn off support for them in gcc + # as well to prevent them from accidentially slipping in. + # + if test "$ac_gcc_accepts_std" = yes ; then + # + # -std=c89 defines __STRICT_ANSI__, which we don't want. + # (That appears to be the only additional preprocessor symbol + # it defines, in addition to the syntax changes it makes.) + # + # -std=gnu89 is no good, because // comments were a GNU extension + # before they were in the ANSI C 99 spec... (gcc 2.96 permits // + # with -std=gnu89 but not with -std=c89.) + # + # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD + CC="$CC -U__STRICT_ANSI__" +# else +# # The old way: +# CC="$CC -Wp,-lang-c89" + fi + fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : -ax_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). -# It gets checked for in the link test anyway. +else + # Broken: fails on valid input. +continue +fi +rm -rf conftest.err conftest.i conftest.$ac_ext -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 -$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pthread_join (); -int -main () -{ -return pthread_join (); - ; - return 0; -} +#include _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -$as_echo "$ax_pthread_ok" >&6; } - if test x"$ax_pthread_ok" = xno; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break fi +rm -rf conftest.err conftest.i conftest.$ac_ext -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. - -ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -rf conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: + done + ac_cv_prog_CPP=$CPP -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : -case ${host_os} in - solaris*) +else + # Broken: fails on valid input. +continue +fi +rm -rf conftest.err conftest.i conftest.$ac_ext - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -rf conftest.err conftest.i conftest.$ac_ext - ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" - ;; +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -rf conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : - darwin*) - ax_pthread_flags="-pthread $ax_pthread_flags" - ;; -esac +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi -# Clang doesn't consider unrecognized options an error unless we specify -# -Werror. We throw in some extra Clang-specific options to ensure that -# this doesn't happen for GCC, which also accepts -Werror. +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5 -$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; } -save_CFLAGS="$CFLAGS" -ax_pthread_extra_flags="-Werror" -CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int foo(void); + int main () { -foo() + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + ac_cv_c_const=yes else - ax_pthread_extra_flags= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -CFLAGS="$save_CFLAGS" - -if test x"$ax_pthread_ok" = xno; then -for flag in $ax_pthread_flags; do +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then - case $flag in - none) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -$as_echo_n "checking whether pthreads work without any flags... " >&6; } - ;; +$as_echo "#define const /**/" >>confdefs.h - -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 -$as_echo_n "checking whether pthreads work with $flag... " >&6; } - PTHREAD_CFLAGS="$flag" - ;; +fi - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ax_pthread_config+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ax_pthread_config"; then - ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +ac_bc_result=`echo 6+9 | bc 2>/dev/null` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bc" >&5 +$as_echo_n "checking for bc... " >&6; } + if test "$ac_bc_result" = "15" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + echo '' + as_fn_error $? "Your system doesn't have \"bc\", which has been a standard + part of Unix since the 1970s. Come back when your vendor + has grown a clue." "$LINENO" 5 + fi + +# stuff for Makefiles +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ax_pthread_config="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + done IFS=$as_save_IFS - test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" -fi +rm -rf conftest.one conftest.two conftest.dir + fi -ax_pthread_config=$ac_cv_prog_ax_pthread_config -if test -n "$ax_pthread_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 -$as_echo "$ax_pthread_config" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - if test x"$ax_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 -$as_echo_n "checking for the pthreads library -l$flag... " >&6; } - PTHREAD_LIBS="-l$flag" - ;; - esac +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5 +$as_echo_n "checking whether \"\${INSTALL} -d\" creates intermediate directories... " >&6; } +if ${ac_cv_install_d_creates_dirs+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_install_d_creates_dirs=no + rm -rf conftestdir + if mkdir conftestdir; then + cd conftestdir 2>/dev/null + ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1 + if test -d dir1/dir2/. ; then + ac_cv_install_d_creates_dirs=yes + fi + cd .. 2>/dev/null + rm -rf conftestdir + fi - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - static void routine(void *a) { a = 0; } - static void *start_routine(void *a) { return a; } -int -main () -{ -pthread_t th; pthread_attr_t attr; - pthread_create(&th, 0, start_routine, 0); - pthread_join(th, 0); - pthread_attr_init(&attr); - pthread_cleanup_push(routine, 0); - pthread_cleanup_pop(0) /* ; */ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_pthread_ok=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_install_d_creates_dirs" >&5 +$as_echo "$ac_cv_install_d_creates_dirs" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -$as_echo "$ax_pthread_ok" >&6; } - if test "x$ax_pthread_ok" = xyes; then - break; - fi + if test "$ac_cv_install_d_creates_dirs" = no ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \"mkdir -p\" creates intermediate directories" >&5 +$as_echo_n "checking whether \"mkdir -p\" creates intermediate directories... " >&6; } +if ${ac_cv_mkdir_p_creates_dirs+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_mkdir_p_creates_dirs=no + rm -rf conftestdir + if mkdir conftestdir; then + cd conftestdir 2>/dev/null + mkdir -p dir1/dir2 >/dev/null 2>&1 + if test -d dir1/dir2/. ; then + ac_cv_mkdir_p_creates_dirs=yes + fi + cd .. 2>/dev/null + rm -rf conftestdir + fi - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mkdir_p_creates_dirs" >&5 +$as_echo "$ac_cv_mkdir_p_creates_dirs" >&6; } + fi -# Various other checks: -if test "x$ax_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -$as_echo_n "checking for joinable pthread attribute... " >&6; } - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int attr = $attr; return attr /* ; */ - ; - return 0; -} + if test "$ac_cv_install_d_creates_dirs" = yes ; then + INSTALL_DIRS='${INSTALL} -d' + elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then + INSTALL_DIRS='mkdir -p' + else + # any other ideas? + INSTALL_DIRS='${INSTALL} -d' + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - attr_name=$attr; break +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -rf conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 -$as_echo "$attr_name" >&6; } - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then -cat >>confdefs.h <<_ACEOF -#define PTHREAD_CREATE_JOINABLE $attr_name -_ACEOF +# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'. +# That's wrong: it should be set to '${INSTALL}', so that one can +# implement the "install-strip" target properly (strip executables, +# but do not try to strip scripts.) +# +INSTALL_SCRIPT='${INSTALL}' - fi +# random libc stuff - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 -$as_echo_n "checking if more special flags are required for pthreads... " >&6; } - flag=no - case ${host_os} in - aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; - osf* | hpux*) flag="-D_REENTRANT";; - solaris*) - if test "$GCC" = "yes"; then - flag="-D_REENTRANT" - else - # TODO: What about Clang on Solaris? - flag="-mt -D_REENTRANT" - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5 -$as_echo "$flag" >&6; } - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -rf conftest.in conftest.tmp conftest.nl conftest.out;; +esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 -$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } -if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -rf conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include +#include +#include +#include + int main () { -int i = PTHREAD_PRIO_INHERIT; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ax_cv_PTHREAD_PRIO_INHERIT=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes else - ax_cv_PTHREAD_PRIO_INHERIT=no + ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 -$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } - if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then : +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include -$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no fi +rm -rf conftest* - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : - # More AIX lossage: compile with *_r variant - if test "x$GCC" != xyes; then - case $host_os in - aix*) - case "x/$CC" in #( - x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : - #handle absolute path differently from PATH based program lookup - case "x$CC" in #( - x/*) : - if as_fn_executable_p ${CC}_r; then : - PTHREAD_CC="${CC}_r" -fi ;; #( - *) : - for ac_prog in ${CC}_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PTHREAD_CC+:} false; then : - $as_echo_n "(cached) " >&6 else - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. + ac_cv_header_stdc=no +fi +rm -rf conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : +else + ac_cv_header_stdc=no fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -$as_echo "$PTHREAD_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then +$as_echo "#define STDC_HEADERS 1" >>confdefs.h - test -n "$PTHREAD_CC" && break -done -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - ;; -esac ;; #( - *) : - ;; -esac - ;; - esac - fi fi -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi +done +for ac_header in unistd.h inttypes.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF +fi +done -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_pthread_ok" = xyes; then - if test "$CC" = "$PTHREAD_CC" -o -z "$ac_original_cc"; then - have_pthread=yes - else - ac_prog_cc_no_pthread=yes - fi +ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" +if test "x$ac_cv_type_mode_t" = xyes; then : - : else - ax_pthread_ok=no + +cat >>confdefs.h <<_ACEOF +#define mode_t int +_ACEOF fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" +if test "x$ac_cv_type_pid_t" = xyes; then : +else - if test "$have_pthread" = yes; then - $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF - CC=$PTHREAD_CC - fi - fi - # Needs ac_original_cc. +fi +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : +else - if test -z "$GCC"; then - # not using GCC - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to request ANSI compilation" >&5 -$as_echo_n "checking how to request ANSI compilation... " >&6; } - case "$host" in - *-hpux* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: HPUX: adding -Ae" >&5 -$as_echo "HPUX: adding -Ae" >&6; } - CC="$CC -Ae" - ;; - *-aix* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX: adding -qlanglvl=ansi -qhalt=e" >&5 -$as_echo "AIX: adding -qlanglvl=ansi -qhalt=e" >&6; } - CC="$CC -qlanglvl=ansi -qhalt=e" - ;; - *-dec-* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: DEC: adding -std1 -ieee" >&5 -$as_echo "DEC: adding -std1 -ieee" >&6; } - CC="$CC -std1" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no idea" >&5 -$as_echo "no idea" >&6; } - ;; - esac - else - # using GCC - case "$host" in - *-solaris*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris: adding -D__EXTENSIONS__" >&5 -$as_echo "Solaris: adding -D__EXTENSIONS__" >&6; } - CC="$CC -D__EXTENSIONS__" - ;; - esac - fi +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF - OBJCC="$CC" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler works on ANSI C" >&5 -$as_echo_n "checking whether the compiler works on ANSI C... " >&6; } - if test "$cross_compiling" = yes; then : - as_fn_error $? "Couldn't build even a trivial ANSI C program: check CC." "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if ${ac_cv_type_signal+:} false; then : + $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - main(int ac, char **av) { return 0; } +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "Couldn't build even a trivial ANSI C program: check CC." "$LINENO" 5 + ac_cv_type_signal=void fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF - if test -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Turning on gcc compiler warnings." >&5 -$as_echo "Turning on gcc compiler warnings." >&6; } - CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes" - OBJCC="$OBJCC -Wall" - # As of gcc 3.4, we have "-Wdeclaration-after-statement" - # and so perhaps now we can do without -pedantic? - else - case "$host" in - *-irix5* |*-irix6.0-3* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Turning on SGI compiler warnings." >&5 -$as_echo "Turning on SGI compiler warnings." >&6; } - CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3" - ;; -# *-dec-osf* ) -# if test -z "$GCC"; then -# AC_MSG_RESULT(Turning on DEC C compiler warnings.) -# CC="$CC -migrate -w0 -verbose -warnprotos" -# fi -# ;; - esac - fi - -if test -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -Wno-overlength-strings" >&5 -$as_echo_n "checking whether gcc accepts -Wno-overlength-strings... " >&6; } -if ${ac_cv_gcc_accepts_no_overlength+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else - rm -rf conftest.$ac_ext - touch conftest.$ac_ext - if ( ( gcc -c -Wno-overlength-strings conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ - grep unrecognized >/dev/null ); then - ac_cv_gcc_accepts_no_overlength=no - else - ac_cv_gcc_accepts_no_overlength=yes - CC="$CC -Wno-overlength-strings" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_no_overlength" >&5 -$as_echo "$ac_cv_gcc_accepts_no_overlength" >&6; } - ac_gcc_accepts_no_overlength="$ac_cv_gcc_accepts_no_overlength" - fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include -if test -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -Wdeclaration-after-statement" >&5 -$as_echo_n "checking whether gcc accepts -Wdeclaration-after-statement... " >&6; } -if ${ac_cv_gcc_accepts_no_decl_after+:} false; then : - $as_echo_n "(cached) " >&6 +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_time=yes else - rm -rf conftest.$ac_ext - touch conftest.$ac_ext - if ( ( gcc -c -Wdeclaration-after-statement conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ - grep unrecognized >/dev/null ); then - ac_cv_gcc_accepts_no_decl_after=no - else - ac_cv_gcc_accepts_no_decl_after=yes - CC="$CC -Wdeclaration-after-statement" - fi + ac_cv_header_time=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_no_decl_after" >&5 -$as_echo "$ac_cv_gcc_accepts_no_decl_after" >&6; } - ac_gcc_accepts_no_decl_after="$ac_cv_gcc_accepts_no_decl_after" - fi - -if test -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -no-cpp-precomp" >&5 -$as_echo_n "checking whether gcc accepts -no-cpp-precomp... " >&6; } -if ${ac_cv_gcc_accepts_no_cpp_precomp+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -rf conftest.$ac_ext - touch conftest.$ac_ext - if ( ( gcc -c -no-cpp-precomp conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ - grep unrecognized >/dev/null ); then - ac_cv_gcc_accepts_no_cpp_precomp=no - else - ac_cv_gcc_accepts_no_cpp_precomp=yes - CC="$CC -no-cpp-precomp" - fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_no_cpp_precomp" >&5 -$as_echo "$ac_cv_gcc_accepts_no_cpp_precomp" >&6; } - ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp" - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then -if test -n "$GCC"; then +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - case "$host" in - *-darwin* ) - # Fucking Apple let // comments sneak into OpenGL headers, so - # we *must* allow // comments when compiling on Mac OS 10.6! FUCK! - ;; - *) - if test -n "$GCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc accepts -std=c89" >&5 -$as_echo_n "checking whether gcc accepts -std=c89... " >&6; } -if ${ac_cv_gcc_accepts_std+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -rf conftest.$ac_ext - touch conftest.$ac_ext - if ( ( gcc -c -std=c89 conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ - grep unrecognized >/dev/null ); then - ac_cv_gcc_accepts_std=no - else - ac_cv_gcc_accepts_std=yes - CC="$CC -std=c89" - fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gcc_accepts_std" >&5 -$as_echo "$ac_cv_gcc_accepts_std" >&6; } - ac_gcc_accepts_std="$ac_cv_gcc_accepts_std" - fi - - ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling C++ comments in ANSI C code." >&5 -$as_echo "Disabling C++ comments in ANSI C code." >&6; } - # - # The reason that // comments are banned from xscreensaver is that gcc is - # basically the only compiler in the world that supports them in C code. - # All other vendors support them only in their C++ compilers, not in their - # ANSI C compilers. This means that it's a portability problem: every time - # these comments have snuck into the xscreensaver source code, I've gotten - # complaints about it the next day. So we turn off support for them in gcc - # as well to prevent them from accidentially slipping in. - # - if test "$ac_gcc_accepts_std" = yes ; then - # - # -std=c89 defines __STRICT_ANSI__, which we don't want. - # (That appears to be the only additional preprocessor symbol - # it defines, in addition to the syntax changes it makes.) - # - # -std=gnu89 is no good, because // comments were a GNU extension - # before they were in the ANSI C 99 spec... (gcc 2.96 permits // - # with -std=gnu89 but not with -std=c89.) - # - # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD - CC="$CC -U__STRICT_ANSI__" -# else -# # The old way: -# CC="$CC -Wp,-lang-c89" - fi - fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 +$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } +if ${ac_cv_header_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include +#include +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -rf conftest.err conftest.i conftest.$ac_ext - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +int +main () +{ + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; + return 0; +} _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_sys_wait_h=yes else - # Passes both tests. -ac_preproc_ok=: -break + ac_cv_header_sys_wait_h=no fi -rm -rf conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -rf conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 +$as_echo "$ac_cv_header_sys_wait_h" >&6; } +if test $ac_cv_header_sys_wait_h = yes; then - done - ac_cv_prog_CPP=$CPP +$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi - CPP=$ac_cv_prog_CPP + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if eval \${$as_ac_Header+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +#include +#include <$ac_hdr> +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_ac_Header=yes" else - # Broken: fails on valid input. -continue + eval "$as_ac_Header=no" fi -rm -rf conftest.err conftest.i conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break fi -rm -rf conftest.err conftest.i conftest.$ac_ext - done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -rf conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : +if ${ac_cv_search_opendir+:} false; then : else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); int main () { - -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - +return opendir (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + else - ac_cv_c_const=no + ac_cv_search_opendir=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -$as_echo "#define const /**/" >>confdefs.h +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to call gettimeofday" >&5 +$as_echo_n "checking how to call gettimeofday... " >&6; } + if ${ac_cv_gettimeofday_args+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - +#include + #include +int +main () +{ +struct timeval tv; struct timezone tzp; + gettimeofday(&tv, &tzp); + ; + return 0; +} _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw + ac_gettimeofday_args=2 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ +struct timeval tv; gettimeofday(&tv); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_gettimeofday_args=1 +else + ac_gettimeofday_args=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - -ac_bc_result=`echo 6+9 | bc 2>/dev/null` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bc" >&5 -$as_echo_n "checking for bc... " >&6; } - if test "$ac_bc_result" = "15" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - echo '' - as_fn_error $? "Your system doesn't have \"bc\", which has been a standard - part of Unix since the 1970s. Come back when your vendor - has grown a clue." "$LINENO" 5 - fi - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_gettimeofday_args=$ac_gettimeofday_args +fi -# stuff for Makefiles -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac + ac_gettimeofday_args=$ac_cv_gettimeofday_args + if test "$ac_gettimeofday_args" = 1 ; then + $as_echo "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h - done -IFS=$as_save_IFS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: one argument" >&5 +$as_echo "one argument" >&6; } + elif test "$ac_gettimeofday_args" = 2 ; then + $as_echo "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h -rm -rf conftest.one conftest.two conftest.dir + $as_echo "#define GETTIMEOFDAY_TWO_ARGS 1" >>confdefs.h -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install + { $as_echo "$as_me:${as_lineno-$LINENO}: result: two arguments" >&5 +$as_echo "two arguments" >&6; } else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 +$as_echo "unknown" >&6; } fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +if test "$enable_largefile" != no; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5 -$as_echo_n "checking whether \"\${INSTALL} -d\" creates intermediate directories... " >&6; } -if ${ac_cv_install_d_creates_dirs+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_install_d_creates_dirs=no - rm -rf conftestdir - if mkdir conftestdir; then - cd conftestdir 2>/dev/null - ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1 - if test -d dir1/dir2/. ; then - ac_cv_install_d_creates_dirs=yes - fi - cd .. 2>/dev/null - rm -rf conftestdir - fi + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_install_d_creates_dirs" >&5 -$as_echo "$ac_cv_install_d_creates_dirs" >&6; } - - if test "$ac_cv_install_d_creates_dirs" = no ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \"mkdir -p\" creates intermediate directories" >&5 -$as_echo_n "checking whether \"mkdir -p\" creates intermediate directories... " >&6; } -if ${ac_cv_mkdir_p_creates_dirs+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_mkdir_p_creates_dirs=no - rm -rf conftestdir - if mkdir conftestdir; then - cd conftestdir 2>/dev/null - mkdir -p dir1/dir2 >/dev/null 2>&1 - if test -d dir1/dir2/. ; then - ac_cv_mkdir_p_creates_dirs=yes - fi - cd .. 2>/dev/null - rm -rf conftestdir - fi - +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mkdir_p_creates_dirs" >&5 -$as_echo "$ac_cv_mkdir_p_creates_dirs" >&6; } - fi - - if test "$ac_cv_install_d_creates_dirs" = yes ; then - INSTALL_DIRS='${INSTALL} -d' - elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then - INSTALL_DIRS='mkdir -p' - else - # any other ideas? - INSTALL_DIRS='${INSTALL} -d' +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -rf conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -rf conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - -# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'. -# That's wrong: it should be set to '${INSTALL}', so that one can -# implement the "install-strip" target properly (strip executables, -# but do not try to strip scripts.) -# -INSTALL_SCRIPT='${INSTALL}' - -# random libc stuff - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -rf conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -rf conftest.in conftest.tmp conftest.nl conftest.out;; -esac +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break fi - - fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else + while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include -#include - +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; int main () { @@ -5161,518 +4923,607 @@ } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no + ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + ; + return 0; +} _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break fi -rm -rf conftest* - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi +;; +esac rm -rf conftest* + fi fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h +for ac_func in select fcntl uname nice setpriority getcwd getwd putenv sbrk do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi - done - -for ac_header in unistd.h inttypes.h +for ac_func in sigaction syslog realpath setrlimit do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi - done -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define mode_t int +for ac_func in setlocale sqrtf +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi +done -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int +for ac_func in getaddrinfo +do : + ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" +if test "x$ac_cv_func_getaddrinfo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETADDRINFO 1 _ACEOF fi +done -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else +ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include +" +if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then : cat >>confdefs.h <<_ACEOF -#define size_t unsigned int +#define HAVE_STRUCT_SOCKADDR_SA_LEN 1 _ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct icmp" >&5 +$as_echo_n "checking for struct icmp... " >&6; } +if ${ac_cv_have_icmp+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include - +#include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include int main () { -return *(signal (0, 0)) (0) == 1; +struct icmp i; + struct sockaddr s; + struct sockaddr_in si; + struct ip ip; + i.icmp_type = ICMP_ECHO; + i.icmp_code = 0; + i.icmp_cksum = 0; + i.icmp_id = 0; + i.icmp_seq = 0; + si.sin_family = AF_INET; + #if defined(__DECC) || defined(_IP_VHL) + ip.ip_vhl = 0; + #else + ip.ip_hl = 0; + #endif + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int + ac_cv_have_icmp=yes else - ac_cv_type_signal=void + ac_cv_have_icmp=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_icmp" >&5 +$as_echo "$ac_cv_have_icmp" >&6; } + if test "$ac_cv_have_icmp" = yes ; then + $as_echo "#define HAVE_ICMP 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct icmphdr" >&5 +$as_echo_n "checking for struct icmphdr... " >&6; } +if ${ac_cv_have_icmphdr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include - +#include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include int main () { -if ((struct tm *) 0) -return 0; +struct icmphdr i; + struct sockaddr s; + struct sockaddr_in si; + struct ip ip; + i.type = ICMP_ECHO; + i.code = 0; + i.checksum = 0; + i.un.echo.id = 0; + i.un.echo.sequence = 0; + si.sin_family = AF_INET; + ip.ip_hl = 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes + ac_cv_have_icmphdr=yes else - ac_cv_header_time=no + ac_cv_have_icmphdr=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_icmphdr" >&5 +$as_echo "$ac_cv_have_icmphdr" >&6; } + if test "$ac_cv_have_icmphdr" = yes ; then + $as_echo "#define HAVE_ICMPHDR 1" >>confdefs.h -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 -$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } -if ${ac_cv_header_sys_wait_h+:} false; then : + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getifaddrs" >&5 +$as_echo_n "checking for getifaddrs... " >&6; } +if ${ac_cv_have_getifaddrs+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif - +#include + #include + #include + #include int main () { - int s; - wait (&s); - s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; +struct ifaddrs *ifa; + getifaddrs (&ifa); + ifa->ifa_next = 0; + ifa->ifa_addr->sa_family = 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_sys_wait_h=yes + ac_cv_have_getifaddrs=yes else - ac_cv_header_sys_wait_h=no + ac_cv_have_getifaddrs=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 -$as_echo "$ac_cv_header_sys_wait_h" >&6; } -if test $ac_cv_header_sys_wait_h = yes; then - -$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h - -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getifaddrs" >&5 +$as_echo "$ac_cv_have_getifaddrs" >&6; } + if test "$ac_cv_have_getifaddrs" = yes ; then + $as_echo "#define HAVE_GETIFADDRS 1" >>confdefs.h -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 +$as_echo_n "checking for socklen_t... " >&6; } +if ${ac_cv_type_socklen_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include <$ac_hdr> + #include + #include int main () { -if ((DIR *) 0) -return 0; + + socklen_t socklen; + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" + ac_cv_type_socklen_t=yes else - eval "$as_ac_Header=no" + ac_cv_type_socklen_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_socklen_t" >&5 +$as_echo "$ac_cv_type_socklen_t" >&6; } + if test "$ac_cv_type_socklen_t" != yes; then + +$as_echo "#define socklen_t int" >>confdefs.h + + fi +for ac_header in crypt.h sys/select.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -ac_header_dirent=$ac_hdr; break fi done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : + +for ac_prog in perl5 perl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + case $PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_PERL="$PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi done -if ${ac_cv_search_opendir+:} false; then : + done +IFS=$as_save_IFS -else - ac_cv_search_opendir=no + ;; +esac fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +PERL=$ac_cv_path_PERL +if test -n "$PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 +$as_echo "$PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -fi + test -n "$PERL" && break +done -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : + if test -z "$PERL" ; then + PERL_VERSION=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking perl version" >&5 +$as_echo_n "checking perl version... " >&6; } +if ${ac_cv_perl_version+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break + ac_cv_perl_version=`$PERL -e "$perl_version_cmd"` fi -done -if ${ac_cv_search_opendir+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_perl_version" >&5 +$as_echo "$ac_cv_perl_version" >&6; } + PERL_VERSION=$ac_cv_perl_version + fi -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +if test -z "$PERL" ; then + # don't let it be blank... + PERL=/usr/bin/perl fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to call gettimeofday" >&5 -$as_echo_n "checking how to call gettimeofday... " >&6; } - if ${ac_cv_gettimeofday_args+:} false; then : +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int -main () -{ -struct timeval tv; struct timezone tzp; - gettimeofday(&tv, &tzp); - ; - return 0; -} + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_gettimeofday_args=2 + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -rf conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - #include +#include int main () { -struct timeval tv; gettimeofday(&tv); +XrmInitialize () ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_gettimeofday_args=1 +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= else - ac_gettimeofday_args=0 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_gettimeofday_args=$ac_gettimeofday_args +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no - ac_gettimeofday_args=$ac_cv_gettimeofday_args - if test "$ac_gettimeofday_args" = 1 ; then - $as_echo "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: one argument" >&5 -$as_echo "one argument" >&6; } - elif test "$ac_gettimeofday_args" = 2 ; then - $as_echo "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. - $as_echo "#define GETTIMEOFDAY_TWO_ARGS 1" >>confdefs.h +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: two arguments" >&5 -$as_echo "two arguments" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 -$as_echo "unknown" >&6; } + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" fi -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -if test "$enable_largefile" != no; then +int +main () +{ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&6 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + int main () { @@ -5681,1532 +5532,1052 @@ return 0; } _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -rf conftest.$ac_ext - fi +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); int main () { - +return XOpenDisplay (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); int main () { - +return dnet_ntoa (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); int main () { - +return dnet_ntoa (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); int main () { - +return gethostbyname (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -fi - -for ac_func in select fcntl uname nice setpriority getcwd getwd putenv sbrk -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in sigaction syslog realpath setrlimit -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} _ACEOF - +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no fi -done - -for ac_func in setlocale sqrtf -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -done - -for ac_func in getaddrinfo -do : - ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETADDRINFO 1 -_ACEOF - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi -done - -ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include -" -if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_SA_LEN 1 -_ACEOF + fi + fi + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = xyes; then : fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct icmp" >&5 -$as_echo_n "checking for struct icmp... " >&6; } -if ${ac_cv_have_icmp+:} false; then : + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); int main () { -struct icmp i; - struct sockaddr s; - struct sockaddr_in si; - struct ip ip; - i.icmp_type = ICMP_ECHO; - i.icmp_code = 0; - i.icmp_cksum = 0; - i.icmp_id = 0; - i.icmp_seq = 0; - si.sin_family = AF_INET; - #if defined(__DECC) || defined(_IP_VHL) - ip.ip_vhl = 0; - #else - ip.ip_hl = 0; - #endif - +return connect (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_have_icmp=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes else - ac_cv_have_icmp=no + ac_cv_lib_socket_connect=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_icmp" >&5 -$as_echo "$ac_cv_have_icmp" >&6; } - if test "$ac_cv_have_icmp" = yes ; then - $as_echo "#define HAVE_ICMP 1" >>confdefs.h - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct icmphdr" >&5 -$as_echo_n "checking for struct icmphdr... " >&6; } -if ${ac_cv_have_icmphdr+:} false; then : + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = xyes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if ${ac_cv_lib_posix_remove+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); int main () { -struct icmphdr i; - struct sockaddr s; - struct sockaddr_in si; - struct ip ip; - i.type = ICMP_ECHO; - i.code = 0; - i.checksum = 0; - i.un.echo.id = 0; - i.un.echo.sequence = 0; - si.sin_family = AF_INET; - ip.ip_hl = 0; +return remove (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_have_icmphdr=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes else - ac_cv_have_icmphdr=no + ac_cv_lib_posix_remove=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_icmphdr" >&5 -$as_echo "$ac_cv_have_icmphdr" >&6; } - if test "$ac_cv_have_icmphdr" = yes ; then - $as_echo "#define HAVE_ICMPHDR 1" >>confdefs.h - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getifaddrs" >&5 -$as_echo_n "checking for getifaddrs... " >&6; } -if ${ac_cv_have_getifaddrs+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if ${ac_cv_lib_ipc_shmat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - #include - #include - #include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); int main () { -struct ifaddrs *ifa; - getifaddrs (&ifa); - ifa->ifa_next = 0; - ifa->ifa_addr->sa_family = 0; +return shmat (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_have_getifaddrs=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes else - ac_cv_have_getifaddrs=no + ac_cv_lib_ipc_shmat=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getifaddrs" >&5 -$as_echo "$ac_cv_have_getifaddrs" >&6; } - if test "$ac_cv_have_getifaddrs" = yes ; then - $as_echo "#define HAVE_GETIFADDRS 1" >>confdefs.h - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 -$as_echo_n "checking for socklen_t... " >&6; } -if ${ac_cv_type_socklen_t+:} false; then : + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); int main () { - - socklen_t socklen; - +return IceConnectionNumber (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_socklen_t=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes else - ac_cv_type_socklen_t=no + ac_cv_lib_ICE_IceConnectionNumber=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_socklen_t" >&5 -$as_echo "$ac_cv_type_socklen_t" >&6; } - if test "$ac_cv_type_socklen_t" != yes; then -$as_echo "#define socklen_t int" >>confdefs.h + LDFLAGS=$ac_save_LDFLAGS - fi -for ac_header in crypt.h sys/select.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +fi +if test "$have_x" != yes; then + as_fn_error $? "Couldn't find X11 headers/libs. Try \`$0 --help'." "$LINENO" 5 fi -done +case "$host" in + *-hpux*) -for ac_prog in perl5 perl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + # The following arcana was gleaned from conversations with + # Eric Schwartz : + # + # On HPUX 10.x, the parts of X that HP considers "standard" live in + # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider + # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/. + # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems. + # Also, there are symlinks from /usr/include/ and /usr/lib/ into + # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all) + # you don't need any -I or -L arguments. + # + # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/ + # are the same division as 10.x. However, there are no symlinks to + # the X stuff from /usr/include/ and /usr/lib/, so -I and -L + # arguments are always necessary. + # + # However, X11R6 was available on HPUX 9.x as a patch: if that + # patch was installed, then all of X11R6 went in to + # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.) + # + # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know + # whether R5 was available as a patch; R6 undoubtedly was not.) + # + # So. We try and use the highest numbered pair of + # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/ + # that are available. We do not mix and match different versions + # of X. + # + # Question I still don't know the answer to: (do you?) + # + # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and + # /usr/contrib/X11R6/ could be installed as a patch, what was in + # that contrib directory? Did it contain so-called "standard" + # X11R6, or did it include Xaw and Xmu as well? If the former, + # where did one find Xaw and Xmu on 9.x R6 systems? Would this + # be a situation where one had to reach into the R5 headers and + # libs to find Xmu? That is, must both R6 and R5 directories + # be on the -I and -L lists in that case? + # + for version in X11R6 X11R5 X11R4 ; do + # if either pair of directories exists... + if test -d /usr/include/$version || test -d /usr/contrib/$version/include + then + # if contrib exists, use it... + if test -d /usr/contrib/$version/include ; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include" + X_LIBS="$X_LIBS -L/usr/contrib/$version/lib" + fi + # if the "standard" one exists, use it. + if test -d /usr/include/$version ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/$version" + X_LIBS="$X_LIBS -L/usr/lib/$version" + fi + # since at least one of the pair exists, go no farther. + break + fi + done - ;; -esac -fi -PERL=$ac_cv_path_PERL -if test -n "$PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -$as_echo "$PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + # Now find Motif. Thanks for not making xmkmf find this by + # default, you losers. + # + if test -d /usr/include/Motif2.1 ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1" + X_LIBS="$X_LIBS -L/usr/lib/Motif2.1" + elif test -d /usr/include/Motif1.2 ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2" + X_LIBS="$X_LIBS -L/usr/lib/Motif1.2" + elif test -d /usr/include/Motif1.1 ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1" + X_LIBS="$X_LIBS -L/usr/lib/Motif1.1" + fi + # Now let's check for the pseudo-standard locations for OpenGL. + # + if test -d /opt/graphics/OpenGL/include ; then + # HP-UX 10.20 puts it here + X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS" + X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS" + elif test -d /opt/Mesa/lib ; then + X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS" + X_LIBS="-L/opt/Mesa/lib $X_LIBS" + fi - test -n "$PERL" && break -done - - if test -z "$PERL" ; then - PERL_VERSION=0 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking perl version" >&5 -$as_echo_n "checking perl version... " >&6; } -if ${ac_cv_perl_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_perl_version=`$PERL -e "$perl_version_cmd"` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_perl_version" >&5 -$as_echo "$ac_cv_perl_version" >&6; } - PERL_VERSION=$ac_cv_perl_version - fi - - -if test -z "$PERL" ; then - # don't let it be blank... - PERL=/usr/bin/perl -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 -$as_echo_n "checking for X... " >&6; } + # On HPUX, default to installing in /opt/xscreensaver/ instead of + # in /usr/local/, unless there is already an xscreensaver in + # /usr/local/bin/. This can be overridden with the --prefix arg + # to configure. I'm not sure this is the right thing to do, but + # Richard Lloyd says so... + # + if test \! -x /usr/local/bin/xscreensaver ; then + ac_default_prefix=/opt/xscreensaver + fi + ;; + *-solaris*) -# Check whether --with-x was given. -if test "${with_x+set}" = set; then : - withval=$with_x; -fi + # Thanks for not making xmkmf find this by default, pinheads. + # And thanks for moving things around again, too. Is this + # really the standard location now? What happened to the + # joke that this kind of thing went in /opt? + # cthomp says "answer: CDE (Common Disorganized Environment)" + # + if test -f /usr/dt/include/Xm/Xm.h ; then + X_CFLAGS="$X_CFLAGS -I/usr/dt/include" + MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib" -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - case $x_includes,$x_libraries in #( - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( - *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : + # Some versions of Slowlaris Motif require -lgen. But not all. Why? + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for regcmp in -lgen" >&5 +$as_echo_n "checking for regcmp in -lgen... " >&6; } +if ${ac_cv_lib_gen_regcmp+:} false; then : $as_echo_n "(cached) " >&6 else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -f -r conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - cat >Imakefile <<'_ACEOF' -incroot: - @echo incroot='${INCROOT}' -usrlibdir: - @echo usrlibdir='${USRLIBDIR}' -libdir: - @echo libdir='${LIBDIR}' -_ACEOF - if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. - for ac_var in incroot usrlibdir libdir; do - eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" - done - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl dylib la dll; do - if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && - test -f "$ac_im_libdir/libX11.$ac_extension"; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ac_x_includes= ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /usr/lib64 | /lib | /lib64) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -f -r conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R7/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/usr/include/X11 -/usr/include/X11R7 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R7/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R7 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. - # First, try using that file with no special directory specified. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgen $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # We can compile using X headers with no special include directory. -ac_x_includes= -else - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi -rm -rf conftest.err conftest.i conftest.$ac_ext -fi # $ac_x_includes = no -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char regcmp (); int main () { -XrmInitialize () +return regcmp (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= + ac_cv_lib_gen_regcmp=yes else - LIBS=$ac_save_LIBS -for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl dylib la dll; do - if test -r "$ac_dir/libX11.$ac_extension"; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done + ac_cv_lib_gen_regcmp=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -fi # $ac_x_libraries = no - -case $ac_x_includes,$ac_x_libraries in #( - no,* | *,no | *\'*) - # Didn't find X, or a directory has "'" in its name. - ac_cv_have_x="have_x=no";; #( - *) - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$ac_x_includes'\ - ac_x_libraries='$ac_x_libraries'" -esac +LIBS=$ac_check_lib_save_LIBS fi -;; #( - *) have_x=yes;; - esac - eval "$ac_cv_have_x" -fi # $with_x != no - -if test "$have_x" != yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 -$as_echo "$have_x" >&6; } - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$x_includes'\ - ac_x_libraries='$x_libraries'" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 -$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gen_regcmp" >&5 +$as_echo "$ac_cv_lib_gen_regcmp" >&6; } +if test "x$ac_cv_lib_gen_regcmp" = xyes; then : + MOTIF_LIBS="$MOTIF_LIBS -lgen" fi -if test "$no_x" = yes; then - # Not all programs may use this symbol, but it does not hurt to define it. + fi -$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + ;; + *-darwin*) - X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= + # On MacOS X (10.x with "fink"), many things are under /sw/. + # + if test -d /sw/include ; then + X_CFLAGS="-I/sw/include $X_CFLAGS" + X_LIBS="-L/sw/lib $X_LIBS" + fi + ;; + esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XPointer" >&5 +$as_echo_n "checking for XPointer... " >&6; } +if ${ac_cv_xpointer+:} false; then : + $as_echo_n "(cached) " >&6 else - if test -n "$x_includes"; then - X_CFLAGS="$X_CFLAGS -I$x_includes" - fi - # It would also be nice to do this for all -L options, not just this one. - if test -n "$x_libraries"; then - X_LIBS="$X_LIBS -L$x_libraries" - # For Solaris; some versions of Sun CC require a space after -R and - # others require no space. Words are not sufficient . . . . - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 -$as_echo_n "checking whether -R must be followed by a space... " >&6; } - ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" - ac_xsave_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - X_LIBS="$X_LIBS -R$x_libraries" -else - LIBS="$ac_xsave_LIBS -R $x_libraries" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +#include int main () { - +XPointer foo = (XPointer) 0; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - X_LIBS="$X_LIBS -R $x_libraries" +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_xpointer=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 -$as_echo "neither works" >&6; } + ac_cv_xpointer=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$ac_save_CPPFLAGS" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_c_werror_flag=$ac_xsave_c_werror_flag - LIBS=$ac_xsave_LIBS - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_xpointer" >&5 +$as_echo "$ac_cv_xpointer" >&6; } + if test "$ac_cv_xpointer" != yes; then + $as_echo "#define XPointer char*" >>confdefs.h - # Check for system-dependent libraries X programs must link with. - # Do this before checking for the system-independent R6 libraries - # (-lICE), since we may need -lsocket or whatever for X linking. + fi - if test "$ISC" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" - else - # Martyn Johnson says this is needed for Ultrix, if the X - # libraries were built with DECnet support. And Karl Berry says - # the Alpha needs dnet_stub (dnet does not exist). - ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this is MacOS X" >&5 +$as_echo_n "checking whether this is MacOS X... " >&6; } + ac_macosx=no + ac_irix=no + case "$host" in + *-apple-darwin* ) + ac_macosx=yes + ;; + *-irix* ) + ac_irix=yes + ;; + esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_macosx" >&5 +$as_echo "$ac_macosx" >&6; } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XOpenDisplay (); -int -main () -{ -return XOpenDisplay (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : +############################################################################### +# +# pkg-config +# +############################################################################### -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } -if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_pkg_config+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case $pkg_config in + [\\/]* | ?:[\\/]*) + ac_cv_path_pkg_config="$pkg_config" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_pkg_config="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dnet_dnet_ntoa=yes -else - ac_cv_lib_dnet_dnet_ntoa=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +pkg_config=$ac_cv_path_pkg_config +if test -n "$pkg_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkg_config" >&5 +$as_echo "$pkg_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test $ac_cv_lib_dnet_dnet_ntoa = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } -if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : +fi +if test -z "$ac_cv_path_pkg_config"; then + ac_pt_pkg_config=$pkg_config + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_pkg_config+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet_stub $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case $ac_pt_pkg_config in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_pkg_config="$ac_pt_pkg_config" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_pkg_config="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dnet_stub_dnet_ntoa=yes -else - ac_cv_lib_dnet_stub_dnet_ntoa=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +ac_pt_pkg_config=$ac_cv_path_ac_pt_pkg_config +if test -n "$ac_pt_pkg_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_pkg_config" >&5 +$as_echo "$ac_pt_pkg_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - fi + if test "x$ac_pt_pkg_config" = x; then + pkg_config="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + pkg_config=$ac_pt_pkg_config + fi +else + pkg_config="$ac_cv_path_pkg_config" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$ac_xsave_LIBS" - - # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, - # to get the SysV transport functions. - # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) - # needs -lnsl. - # The nsl library prevents programs from opening the X display - # on Irix 5.2, according to T.E. Dickey. - # The functions gethostbyname, getservbyname, and inet_addr are - # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. - ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = xyes; then : +if test -z "$pkg_config" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config not found!" >&5 +$as_echo "$as_me: WARNING: pkg-config not found!" >&2;} + pkg_config="false" fi - if test $ac_cv_func_gethostbyname = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; +# Utility function for running pkg-config-based tests... +# +pkgs='' +pkg_check_version() { + if test "$ok" = yes ; then + req="$1" + min="$2" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $req" >&5 +$as_echo_n "checking for $req... " >&6; } + if $pkg_config --exists "$req" ; then + vers=`$pkg_config --modversion "$req"` + if $pkg_config --exists "$req >= $min" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vers" >&5 +$as_echo "$vers" >&6; } + pkgs="$pkgs $req" + return 1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vers (wanted >= $min)" >&5 +$as_echo "$vers (wanted >= $min)" >&6; } + ok=no + return 0 + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ok=no + return 0 + fi + fi } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_gethostbyname=yes -else - ac_cv_lib_nsl_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" -fi - if test $ac_cv_lib_nsl_gethostbyname = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 -$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +############################################################################### +# +# Gettext support +# +############################################################################### -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bsd_gethostbyname=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval else - ac_cv_lib_bsd_gethostbyname=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 -$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } -if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" + USE_NLS=yes fi - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } - # lieder@skyler.mavd.honeywell.com says without -lsocket, - # socket/setsockopt and other routines are undefined under SCO ODT - # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary - # on later versions), says Simon Leinen: it contains gethostby* - # variants that don't use the name server (or something). -lsocket - # must be given before -lnsl if both are needed. We assume that - # if connect needs -lnsl, so does gethostbyname. - ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" -if test "x$ac_cv_func_connect" = xyes; then : +case "$am__api_version" in + 1.01234) + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 + ;; + *) + ;; +esac +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n ""; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 +$as_echo_n "checking for intltool >= ... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 fi - if test $ac_cv_func_connect = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 -$as_echo_n "checking for connect in -lsocket... " >&6; } -if ${ac_cv_lib_socket_connect+:} false; then : +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $X_EXTRA_LIBS $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char connect (); -int -main () -{ -return connect (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_socket_connect=yes -else - ac_cv_lib_socket_connect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 -$as_echo "$ac_cv_lib_socket_connect" >&6; } -if test "x$ac_cv_lib_socket_connect" = xyes; then : - X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" + ;; +esac fi - - fi - - # Guillermo Gomez says -lposix is necessary on A/UX. - ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" -if test "x$ac_cv_func_remove" = xyes; then : - +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test $ac_cv_func_remove = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 -$as_echo_n "checking for remove in -lposix... " >&6; } -if ${ac_cv_lib_posix_remove+:} false; then : +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char remove (); -int -main () -{ -return remove (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_posix_remove=yes -else - ac_cv_lib_posix_remove=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 -$as_echo "$ac_cv_lib_posix_remove" >&6; } -if test "x$ac_cv_lib_posix_remove" = xyes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" + ;; +esac fi - - fi - - # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. - ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" -if test "x$ac_cv_func_shmat" = xyes; then : - +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test $ac_cv_func_shmat = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 -$as_echo_n "checking for shmat in -lipc... " >&6; } -if ${ac_cv_lib_ipc_shmat+:} false; then : +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lipc $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shmat (); -int -main () -{ -return shmat (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ipc_shmat=yes + ;; +esac +fi +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } else - ac_cv_lib_ipc_shmat=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 -$as_echo "$ac_cv_lib_ipc_shmat" >&6; } -if test "x$ac_cv_lib_ipc_shmat" = xyes; then : - X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 fi - fi - fi +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' - # Check for libraries that X11R6 Xt/Xaw programs need. - ac_save_LDFLAGS=$LDFLAGS - test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" - # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to - # check for ICE first), but we must link in the order -lSM -lICE or - # we get undefined symbols. So assume we have SM if we have ICE. - # These have to be linked with before -lX11, unlike the other - # libraries we check for below, so use a different variable. - # John Interrante, Karl Berry - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 -$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } -if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lICE $X_EXTRA_LIBS $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char IceConnectionNumber (); -int -main () -{ -return IceConnectionNumber (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ICE_IceConnectionNumber=yes + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else - ac_cv_lib_ICE_IceConnectionNumber=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 -$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } -if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : - X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - LDFLAGS=$ac_save_LDFLAGS +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac fi - - -if test "$have_x" != yes; then - as_fn_error $? "Couldn't find X11 headers/libs. Try \`$0 --help'." "$LINENO" 5 +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X app-defaults directory" >&5 -$as_echo_n "checking for X app-defaults directory... " >&6; } -if ${ac_cv_x_app_defaults+:} false; then : +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else - # skip this, it's always wrong these days. - # AC_PATH_X_APP_DEFAULTS_XMKMF - if test x"$ac_x_app_defaults" = x; then - true - # Look for the directory under a standard set of common directories. - # Check X11 before X11Rn because it's often a symlink to the current release. - for ac_dir in \ - \ - /usr/share/X11/app-defaults \ - \ - /usr/X11/lib/app-defaults \ - /usr/X11R6/lib/app-defaults \ - /usr/X11R6/lib/X11/app-defaults \ - /usr/X11R5/lib/app-defaults \ - /usr/X11R5/lib/X11/app-defaults \ - /usr/X11R4/lib/app-defaults \ - /usr/X11R4/lib/X11/app-defaults \ - \ - /usr/lib/X11/app-defaults \ - /usr/lib/X11R6/app-defaults \ - /usr/lib/X11R5/app-defaults \ - /usr/lib/X11R4/app-defaults \ - \ - /etc/X11/app-defaults \ - \ - /usr/local/X11/lib/app-defaults \ - /usr/local/X11R6/lib/app-defaults \ - /usr/local/X11R5/lib/app-defaults \ - /usr/local/X11R4/lib/app-defaults \ - \ - /usr/local/lib/X11/app-defaults \ - /usr/local/lib/X11R6/app-defaults \ - /usr/local/lib/X11R6/X11/app-defaults \ - /usr/local/lib/X11R5/app-defaults \ - /usr/local/lib/X11R5/X11/app-defaults \ - /usr/local/lib/X11R4/app-defaults \ - /usr/local/lib/X11R4/X11/app-defaults \ - \ - /usr/X386/lib/X11/app-defaults \ - /usr/x386/lib/X11/app-defaults \ - /usr/XFree86/lib/X11/app-defaults \ - \ - /usr/lib/X11/app-defaults \ - /usr/local/lib/X11/app-defaults \ - /usr/unsupported/lib/X11/app-defaults \ - /usr/athena/lib/X11/app-defaults \ - /usr/local/x11r5/lib/X11/app-defaults \ - /usr/lpp/Xamples/lib/X11/app-defaults \ - /lib/usr/lib/X11/app-defaults \ - \ - /usr/openwin/lib/app-defaults \ - /usr/openwin/lib/X11/app-defaults \ - /usr/openwin/share/lib/app-defaults \ - /usr/openwin/share/lib/X11/app-defaults \ - \ - /X11R6/lib/app-defaults \ - /X11R5/lib/app-defaults \ - /X11R4/lib/app-defaults \ - ; \ - do - if test -d "$ac_dir"; then - ac_x_app_defaults=$ac_dir - break - fi - done - - fi - if test x"$ac_x_app_defaults" = x; then - /bin/echo -n 'fallback: ' - ac_cv_x_app_defaults="/usr/lib/X11/app-defaults" - else - # Record where we found app-defaults for the cache. - ac_cv_x_app_defaults="$ac_x_app_defaults" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x_app_defaults" >&5 -$as_echo "$ac_cv_x_app_defaults" >&6; } - eval ac_x_app_defaults="$ac_cv_x_app_defaults" -case "$host" in - *-hpux*) - - # The following arcana was gleaned from conversations with - # Eric Schwartz : - # - # On HPUX 10.x, the parts of X that HP considers "standard" live in - # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider - # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/. - # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems. - # Also, there are symlinks from /usr/include/ and /usr/lib/ into - # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all) - # you don't need any -I or -L arguments. - # - # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/ - # are the same division as 10.x. However, there are no symlinks to - # the X stuff from /usr/include/ and /usr/lib/, so -I and -L - # arguments are always necessary. - # - # However, X11R6 was available on HPUX 9.x as a patch: if that - # patch was installed, then all of X11R6 went in to - # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.) - # - # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know - # whether R5 was available as a patch; R6 undoubtedly was not.) - # - # So. We try and use the highest numbered pair of - # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/ - # that are available. We do not mix and match different versions - # of X. - # - # Question I still don't know the answer to: (do you?) - # - # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and - # /usr/contrib/X11R6/ could be installed as a patch, what was in - # that contrib directory? Did it contain so-called "standard" - # X11R6, or did it include Xaw and Xmu as well? If the former, - # where did one find Xaw and Xmu on 9.x R6 systems? Would this - # be a situation where one had to reach into the R5 headers and - # libs to find Xmu? That is, must both R6 and R5 directories - # be on the -I and -L lists in that case? - # - for version in X11R6 X11R5 X11R4 ; do - # if either pair of directories exists... - if test -d /usr/include/$version || test -d /usr/contrib/$version/include - then - # if contrib exists, use it... - if test -d /usr/contrib/$version/include ; then - X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include" - X_LIBS="$X_LIBS -L/usr/contrib/$version/lib" - fi - # if the "standard" one exists, use it. - if test -d /usr/include/$version ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/$version" - X_LIBS="$X_LIBS -L/usr/lib/$version" - fi - # since at least one of the pair exists, go no farther. - break - fi - done - - # Now find Motif. Thanks for not making xmkmf find this by - # default, you losers. - # - if test -d /usr/include/Motif2.1 ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1" - X_LIBS="$X_LIBS -L/usr/lib/Motif2.1" - elif test -d /usr/include/Motif1.2 ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2" - X_LIBS="$X_LIBS -L/usr/lib/Motif1.2" - elif test -d /usr/include/Motif1.1 ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1" - X_LIBS="$X_LIBS -L/usr/lib/Motif1.1" - fi - - # Now let's check for the pseudo-standard locations for OpenGL. - # - if test -d /opt/graphics/OpenGL/include ; then - # HP-UX 10.20 puts it here - X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS" - X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS" - elif test -d /opt/Mesa/lib ; then - X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS" - X_LIBS="-L/opt/Mesa/lib $X_LIBS" - fi - - - # On HPUX, default to installing in /opt/xscreensaver/ instead of - # in /usr/local/, unless there is already an xscreensaver in - # /usr/local/bin/. This can be overridden with the --prefix arg - # to configure. I'm not sure this is the right thing to do, but - # Richard Lloyd says so... - # - if test \! -x /usr/local/bin/xscreensaver ; then - ac_default_prefix=/opt/xscreensaver - fi - - ;; - *-solaris*) - - # Thanks for not making xmkmf find this by default, pinheads. - # And thanks for moving things around again, too. Is this - # really the standard location now? What happened to the - # joke that this kind of thing went in /opt? - # cthomp says "answer: CDE (Common Disorganized Environment)" - # - if test -f /usr/dt/include/Xm/Xm.h ; then - X_CFLAGS="$X_CFLAGS -I/usr/dt/include" - MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib" - - # Some versions of Slowlaris Motif require -lgen. But not all. Why? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for regcmp in -lgen" >&5 -$as_echo_n "checking for regcmp in -lgen... " >&6; } -if ${ac_cv_lib_gen_regcmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgen $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char regcmp (); -int -main () -{ -return regcmp (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gen_regcmp=yes -else - ac_cv_lib_gen_regcmp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gen_regcmp" >&5 -$as_echo "$ac_cv_lib_gen_regcmp" >&6; } -if test "x$ac_cv_lib_gen_regcmp" = xyes; then : - MOTIF_LIBS="$MOTIF_LIBS -lgen" -fi - - fi - - ;; - *-darwin*) - - # On MacOS X (10.x with "fink"), many things are under /sw/. - # - if test -d /sw/include ; then - X_CFLAGS="-I/sw/include $X_CFLAGS" - X_LIBS="-L/sw/lib $X_LIBS" - fi - ;; - esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XPointer" >&5 -$as_echo_n "checking for XPointer... " >&6; } -if ${ac_cv_xpointer+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -XPointer foo = (XPointer) 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_xpointer=yes -else - ac_cv_xpointer=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CPPFLAGS="$ac_save_CPPFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_xpointer" >&5 -$as_echo "$ac_cv_xpointer" >&6; } - if test "$ac_cv_xpointer" != yes; then - $as_echo "#define XPointer char*" >>confdefs.h - - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this is MacOS X" >&5 -$as_echo_n "checking whether this is MacOS X... " >&6; } - ac_macosx=no - case "$host" in - *-apple-darwin* ) - ac_macosx=yes - ;; - esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_macosx" >&5 -$as_echo "$ac_macosx" >&6; } - - -############################################################################### -# -# Gettext support -# -############################################################################### - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - -case "$am__api_version" in - 1.01234) - as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 - ;; - *) - ;; -esac - -INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` -INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` -INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` -if test -n ""; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 -$as_echo_n "checking for intltool >= ... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 -$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 -fi - -# Extract the first word of "intltool-update", so it can be a program name with args. -set dummy intltool-update; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_UPDATE in + case $MSGMERGE in [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7216,7 +6587,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" + ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7227,26 +6598,25 @@ ;; esac fi -INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE -if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 -$as_echo "$INTLTOOL_UPDATE" >&6; } +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -# Extract the first word of "intltool-merge", so it can be a program name with args. -set dummy intltool-merge; ac_word=$2 +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else - case $INTLTOOL_MERGE in + case $MSGFMT in [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7256,7 +6626,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7267,321 +6637,626 @@ ;; esac fi -INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE -if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 -$as_echo "$INTLTOOL_MERGE" >&6; } +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - -# Extract the first word of "intltool-extract", so it can be a program name with args. -set dummy intltool-extract; ac_word=$2 +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $INTLTOOL_EXTRACT in - [\\/]* | ?:[\\/]*) - ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT -if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 -$as_echo "$INTLTOOL_EXTRACT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 -fi - -if test -z "$AM_DEFAULT_VERBOSITY"; then - AM_DEFAULT_VERBOSITY=1 -fi - - -INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' -INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' -INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' - - - - -INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' -intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' -intltool__v_merge_options_0='-q' - - - - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' -else - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' -fi - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +# Substitute ALL_LINGUAS so we can use it in po/Makefile +GETTEXT_PACKAGE=xscreensaver +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF +ALL_LINGUAS="da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" + for ac_header in locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LOCALE_H 1 +_ACEOF +fi +done + if test $ac_cv_header_locale_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if ${am_cv_val_LC_MESSAGES+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_val_LC_MESSAGES=yes +else + am_cv_val_LC_MESSAGES=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } + if test $am_cv_val_LC_MESSAGES = yes; then +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h + fi + fi + USE_NLS=yes + gt_cv_have_gettext=no + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then +$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyCurrent=yes +else + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then +$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + # + # First check in libc + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if ${gt_cv_func_ngettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return !ngettext ("","", 1) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_ngettext_libc=yes +else + gt_cv_func_ngettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if ${gt_cv_func_dgettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return !dgettext ("","") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_dgettext_libc=yes +else + gt_cv_func_dgettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF +fi +done + fi + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if ${ac_cv_lib_intl_bindtextdomain+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bindtextdomain (); +int +main () +{ +return bindtextdomain (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_bindtextdomain=yes +else + ac_cv_lib_intl_bindtextdomain=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 +$as_echo_n "checking for dgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dgettext (); +int +main () +{ +return dgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dgettext=yes +else + ac_cv_lib_intl_dgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_dgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes +fi +fi +fi -# Check the gettext tools to make sure they are GNU -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_lib_intl_ngettext=no fi - - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ;; -esac +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dcgettext (); +int +main () +{ +return dcgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dcgettext=yes +else + ac_cv_lib_intl_dcgettext=no fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + : +fi + +else + : +fi + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + fi +done + LIBS="$glib_save_LIBS" -# Extract the first word of "msgfmt", so it can be a program name with args. + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else - case $MSGFMT in - [\\/]* | ?:[\\/]*) + case "$MSGFMT" in + /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi done -IFS=$as_save_IFS - + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF +fi +done -# Extract the first word of "gmsgfmt", so it can be a program name with args. + MSGFMT_OPTS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } + cat >conftest.foo <<_ACEOF + +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" + +_ACEOF +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 + ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +echo "$as_me: failed input was:" >&5 +sed 's/^/| /' conftest.foo >&5 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -7621,266 +7296,588 @@ $as_echo "no" >&6; } fi + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + CATOBJEXT=.mo + DATADIRNAME=lib fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 + + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + fi -# Substitute ALL_LINGUAS so we can use it in po/Makefile + if test "$gt_cv_have_gettext" = "yes" ; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + ac_config_commands="$ac_config_commands default-1" + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES +MKINSTALLDIRS="$INSTALL_DIRS" +############################################################################### +# +# Check for -lXmu (some fucked up vendors don't ship it...) +# +############################################################################### -GETTEXT_PACKAGE=xscreensaver +have_xmu=no -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/Xmu/Error.h" "ac_cv_header_X11_Xmu_Error_h" "#include + #include + #include +" +if test "x$ac_cv_header_X11_Xmu_Error_h" = xyes; then : + have_xmu=yes +fi + CPPFLAGS="$ac_save_CPPFLAGS" +if test "$have_xmu" = no ; then + XMU_SRCS='$(UTILS_SRC)/xmu.c' + XMU_OBJS='$(UTILS_BIN)/xmu.o' + XMU_LIBS='' +else + XMU_SRCS='' + XMU_OBJS='' + XMU_LIBS='-lXmu' + $as_echo "#define HAVE_XMU 1" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$GETTEXT_PACKAGE" -_ACEOF +fi +############################################################################### +# +# Check for the SunOS 4.1.x _get_wmShellWidgetClass bug. +# See comp.windows.x FAQ question 124. The right fix is to +# get OpenWindows 3.0 patches 100512-02 and 100573-03. +# +############################################################################### +if test "$have_xmu" = yes ; then + case "$host" in + *-sunos4*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5 +$as_echo_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug... " >&6; } +if ${ac_cv_sunos_xmu_bug+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_LDFLAGS="$LDFLAGS" + if test \! -z "$x_libraries" ; then + LDFLAGS="$LDFLAGS -L$x_libraries" + fi + # Note: this trick never works! (Generally.) + # We're only getting away with using AC_TRY_LINK + # with X libraries because we know it's SunOS. + LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -ALL_LINGUAS="da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" +int +main () +{ - for ac_header in locale.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LOCALE_H 1 + ; + return 0; +} _ACEOF - +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_sunos_xmu_bug=no +else + ac_cv_sunos_xmu_bug=yes fi - -done - - if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 -$as_echo_n "checking for LC_MESSAGES... " >&6; } -if ${am_cv_val_LC_MESSAGES+:} false; then : +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$ac_save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sunos_xmu_bug" >&5 +$as_echo "$ac_cv_sunos_xmu_bug" >&6; } + if test "$ac_cv_sunos_xmu_bug" = yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler understands -static" >&5 +$as_echo_n "checking whether the compiler understands -static... " >&6; } +if ${ac_cv_ld_static+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -static" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + int main () { -return LC_MESSAGES + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - am_cv_val_LC_MESSAGES=yes + ac_cv_ld_static=yes +else + ac_cv_ld_static=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$ac_save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ld_static" >&5 +$as_echo "$ac_cv_ld_static" >&6; } + if test "$ac_cv_ld_static" = yes ; then + LDFLAGS="$LDFLAGS -static" + else + LDFLAGS="$LDFLAGS -Bstatic" + fi + fi + ;; + esac +fi + +############################################################################### +# +# The --with-x-app-defaults option +# +############################################################################### + +#### H1 + +# Check whether --with-app-defaults was given. +if test "${with_app_defaults+set}" = set; then : + withval=$with_app_defaults; ac_cv_x_app_defaults="$withval" +else + eval ac_x_app_defaults="$withval" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X app-defaults directory" >&5 +$as_echo_n "checking for X app-defaults directory... " >&6; } +if ${ac_cv_x_app_defaults+:} false; then : + $as_echo_n "(cached) " >&6 +else + # skip this, it's always wrong these days. + # AC_PATH_X_APP_DEFAULTS_XMKMF + if test x"$ac_x_app_defaults" = x; then + true + # Look for the directory under a standard set of common directories. + # Check X11 before X11Rn because it's often a symlink to the current release. + for ac_dir in \ + \ + /usr/share/X11/app-defaults \ + \ + /usr/X11/lib/app-defaults \ + /usr/X11R6/lib/app-defaults \ + /usr/X11R6/lib/X11/app-defaults \ + /usr/X11R5/lib/app-defaults \ + /usr/X11R5/lib/X11/app-defaults \ + /usr/X11R4/lib/app-defaults \ + /usr/X11R4/lib/X11/app-defaults \ + \ + /usr/lib/X11/app-defaults \ + /usr/lib/X11R6/app-defaults \ + /usr/lib/X11R5/app-defaults \ + /usr/lib/X11R4/app-defaults \ + \ + /etc/X11/app-defaults \ + \ + /usr/local/X11/lib/app-defaults \ + /usr/local/X11R6/lib/app-defaults \ + /usr/local/X11R5/lib/app-defaults \ + /usr/local/X11R4/lib/app-defaults \ + \ + /usr/local/lib/X11/app-defaults \ + /usr/local/lib/X11R6/app-defaults \ + /usr/local/lib/X11R6/X11/app-defaults \ + /usr/local/lib/X11R5/app-defaults \ + /usr/local/lib/X11R5/X11/app-defaults \ + /usr/local/lib/X11R4/app-defaults \ + /usr/local/lib/X11R4/X11/app-defaults \ + \ + /usr/X386/lib/X11/app-defaults \ + /usr/x386/lib/X11/app-defaults \ + /usr/XFree86/lib/X11/app-defaults \ + \ + /usr/lib/X11/app-defaults \ + /usr/local/lib/X11/app-defaults \ + /usr/unsupported/lib/X11/app-defaults \ + /usr/athena/lib/X11/app-defaults \ + /usr/local/x11r5/lib/X11/app-defaults \ + /usr/lpp/Xamples/lib/X11/app-defaults \ + /lib/usr/lib/X11/app-defaults \ + \ + /usr/openwin/lib/app-defaults \ + /usr/openwin/lib/X11/app-defaults \ + /usr/openwin/share/lib/app-defaults \ + /usr/openwin/share/lib/X11/app-defaults \ + \ + /X11R6/lib/app-defaults \ + /X11R5/lib/app-defaults \ + /X11R4/lib/app-defaults \ + ; \ + do + if test -d "$ac_dir"; then + ac_x_app_defaults=$ac_dir + break + fi + done + + fi + if test x"$ac_x_app_defaults" = x; then + /bin/echo -n 'fallback: ' + ac_cv_x_app_defaults="/usr/lib/X11/app-defaults" + else + # Record where we found app-defaults for the cache. + ac_cv_x_app_defaults="$ac_x_app_defaults" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x_app_defaults" >&5 +$as_echo "$ac_cv_x_app_defaults" >&6; } + eval ac_x_app_defaults="$ac_cv_x_app_defaults" + +############################################################################### +# +# Handle the --with-hackdir option +# +############################################################################### + +have_hackdir=yes +with_hackdir_req=unspecified + +# Check whether --with-hackdir was given. +if test "${with_hackdir+set}" = set; then : + withval=$with_hackdir; with_hackdir="$withval"; with_hackdir_req="$withval" else - am_cv_val_LC_MESSAGES=no + with_hackdir=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + +if test x"$with_hackdir" = xyes; then + HACKDIR='${libexecdir}/xscreensaver' +elif test x"$with_hackdir" = xno; then + HACKDIR='${bindir}' +else + HACKDIR=$with_hackdir fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 -$as_echo "$am_cv_val_LC_MESSAGES" >&6; } - if test $am_cv_val_LC_MESSAGES = yes; then -$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h +# canonicalize slashes. +HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` - fi - fi - USE_NLS=yes +# Expand HACKDIR as HACKDIR_FULL +HACKDIR_FULL=`eval eval eval eval eval eval eval eval eval echo $HACKDIR` +# This option used to be called --enable-subdir; make sure that is no longer +# used, since configure brain-damagedly ignores unknown --enable options. - gt_cv_have_gettext=no +obsolete_enable= +# Check whether --enable-subdir was given. +if test "${enable_subdir+set}" = set; then : + enableval=$enable_subdir; obsolete_enable=yes +fi - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= +if test -n "$obsolete_enable"; then + echo "error: the --enable-subdir option has been replaced with" + echo " the new --with-hackdir option; see \`configure --help'" + echo " for more information." + exit 1 +fi +############################################################################### +# +# Handle the --with-configdir option +# +############################################################################### - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 -$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } -if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -CFPreferencesCopyAppValue(NULL, NULL) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFPreferencesCopyAppValue=yes +have_configdir=yes +with_configdir_req=unspecified + +# Check whether --with-configdir was given. +if test "${with_configdir+set}" = set; then : + withval=$with_configdir; with_configdir="$withval"; with_configdir_req="$withval" else - gt_cv_func_CFPreferencesCopyAppValue=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" + with_configdir=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 -$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then -$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 -$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } -if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -CFLocaleCopyCurrent(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFLocaleCopyCurrent=yes +if test x"$with_configdir" = xyes; then + HACK_CONF_DIR='${datadir}/xscreensaver/config' +elif test x"$with_configdir" = xno; then + echo "error: must be yes, or a pathname: --with-configdir=$with_configdir" + exit 1 else - gt_cv_func_CFLocaleCopyCurrent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" + # there must be a better way than this... + if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then + # absolute path + HACK_CONF_DIR=$with_configdir + else + # relative path + HACK_CONF_DIR="\${exec_prefix}$with_configdir" + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 -$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then -$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h +############################################################################### +# +# Check for the DPMS server extension. +# +############################################################################### - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" - fi +#### H1 +have_dpms=no +with_dpms_req=unspecified +# Check whether --with-dpms-ext was given. +if test "${with_dpms_ext+set}" = set; then : + withval=$with_dpms_ext; with_dpms="$withval"; with_dpms_req="$withval" +else + with_dpms=yes +fi - ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" -if test "x$ac_cv_header_libintl_h" = xyes; then : - gt_cv_func_dgettext_libintl="no" - libintl_extra_libs="" + case "$with_dpms" in + yes) ;; + no) ;; - # - # First check in libc - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 -$as_echo_n "checking for ngettext in libc... " >&6; } -if ${gt_cv_func_ngettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMS headers" >&5 +$as_echo_n "checking for DPMS headers... " >&6; } + d=$with_dpms/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi -#include + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMS libs" >&5 +$as_echo_n "checking for DPMS libs... " >&6; } + d=$with_dpms/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi -int -main () -{ -return !ngettext ("","", 1) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_ngettext_libc=yes -else - gt_cv_func_ngettext_libc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + # replace the directory string with "yes". + with_dpms_req="yes" + with_dpms=$with_dpms_req + ;; -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 -$as_echo "$gt_cv_func_ngettext_libc" >&6; } + *) + echo "" + echo "error: argument to --with-dpms-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 -$as_echo_n "checking for dgettext in libc... " >&6; } -if ${gt_cv_func_dgettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +if test "$with_dpms" = yes; then -#include + # first check for dpms.h -int -main () -{ -return !dgettext ("","") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_dgettext_libc=yes -else - gt_cv_func_dgettext_libc=no + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/dpms.h" "ac_cv_header_X11_extensions_dpms_h" "#include + #include +" +if test "x$ac_cv_header_X11_extensions_dpms_h" = xyes; then : + have_dpms=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 -$as_echo "$gt_cv_func_dgettext_libc" >&6; } - fi + CPPFLAGS="$ac_save_CPPFLAGS" + + # if that succeeded, then check for the DPMS code in the libraries + if test "$have_dpms" = yes; then - if test "$gt_cv_func_ngettext_libc" = "yes" ; then - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF + # first look in -lXext (this is where it is with XFree86 4.0) + have_dpms=no -fi -done + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" - fi + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" - # - # If we don't have everything we want, check in libintl - # - if test "$gt_cv_func_dgettext_libc" != "yes" \ - || test "$gt_cv_func_ngettext_libc" != "yes" \ - || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_bindtextdomain+:} false; then : + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMSInfo in -lXext" >&5 +$as_echo_n "checking for DPMSInfo in -lXext... " >&6; } +if ${ac_cv_lib_Xext_DPMSInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" +LIBS="-lXext -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7890,158 +7887,64 @@ #ifdef __cplusplus extern "C" #endif -char bindtextdomain (); +char DPMSInfo (); int main () { -return bindtextdomain (); +return DPMSInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_bindtextdomain=yes + ac_cv_lib_Xext_DPMSInfo=yes else - ac_cv_lib_intl_bindtextdomain=no + ac_cv_lib_Xext_DPMSInfo=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_DPMSInfo" >&5 +$as_echo "$ac_cv_lib_Xext_DPMSInfo" >&6; } +if test "x$ac_cv_lib_Xext_DPMSInfo" = xyes; then : + have_dpms=yes else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + true fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 -$as_echo_n "checking for dgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dgettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dgettext (); -int -main () -{ -return dgettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dgettext=yes -else - ac_cv_lib_intl_dgettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 -$as_echo "$ac_cv_lib_intl_dgettext" >&6; } -if test "x$ac_cv_lib_intl_dgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes -fi + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" -fi + # if that failed, look in -lXdpms (this is where it was in XFree86 3.x) + if test "$have_dpms" = no; then -fi + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" - if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 -$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 -$as_echo_n "checking for ngettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_ngettext+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ngettext (); -int -main () -{ -return ngettext (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_ngettext=yes -else - ac_cv_lib_intl_ngettext=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 -$as_echo "$ac_cv_lib_intl_ngettext" >&6; } -if test "x$ac_cv_lib_intl_ngettext" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 -$as_echo_n "checking for dcgettext in -lintl... " >&6; } -if ${ac_cv_lib_intl_dcgettext+:} false; then : + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMSInfo in -lXdpms" >&5 +$as_echo_n "checking for DPMSInfo in -lXdpms... " >&6; } +if ${ac_cv_lib_Xdpms_DPMSInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" +LIBS="-lXdpms -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8051,401 +7954,274 @@ #ifdef __cplusplus extern "C" #endif -char dcgettext (); +char DPMSInfo (); int main () { -return dcgettext (); +return DPMSInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_intl_dcgettext=yes + ac_cv_lib_Xdpms_DPMSInfo=yes else - ac_cv_lib_intl_dcgettext=no + ac_cv_lib_Xdpms_DPMSInfo=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 -$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } -if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : - gt_cv_func_dgettext_libintl=yes - libintl_extra_libs=-liconv +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xdpms_DPMSInfo" >&5 +$as_echo "$ac_cv_lib_Xdpms_DPMSInfo" >&6; } +if test "x$ac_cv_lib_Xdpms_DPMSInfo" = xyes; then : + have_dpms=yes; XDPMS_LIBS="-lXdpms" else - : + true fi -else - : -fi + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" - fi + fi + fi - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - for ac_func in bind_textdomain_codeset -do : - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 -_ACEOF + # if that succeeded, then we've really got it. + if test "$have_dpms" = yes; then + $as_echo "#define HAVE_DPMS_EXTENSION 1" >>confdefs.h + + fi + +elif test "$with_dpms" != no; then + echo "error: must be yes or no: --with-dpms-ext=$with_dpms" + exit 1 +fi + +############################################################################### +# +# Check for the XF86VMODE server extension (for virtual screens.) +# +############################################################################### +have_xf86vmode=no +with_xf86vmode_req=unspecified + +# Check whether --with-xf86vmode-ext was given. +if test "${with_xf86vmode_ext+set}" = set; then : + withval=$with_xf86vmode_ext; with_xf86vmode="$withval"; with_xf86vmode_req="$withval" +else + with_xf86vmode=yes fi -done - LIBS="$glib_save_LIBS" + case "$with_xf86vmode" in + yes) ;; + no) ;; - if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then - gt_cv_func_dgettext_libc=no - else - if test "$gt_cv_func_dgettext_libc" = "yes" \ - && test "$gt_cv_func_ngettext_libc" = "yes"; then - gt_cv_func_dgettext_libintl=no - fi - fi - fi - fi + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xf86vmode headers" >&5 +$as_echo_n "checking for xf86vmode headers... " >&6; } + d=$with_xf86vmode/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi - if test "$gt_cv_func_dgettext_libc" = "yes" \ - || test "$gt_cv_func_dgettext_libintl" = "yes"; then - gt_cv_have_gettext=yes - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xf86vmode libs" >&5 +$as_echo_n "checking for xf86vmode libs... " >&6; } + d=$with_xf86vmode/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi - if test "$gt_cv_func_dgettext_libintl" = "yes"; then - INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" - fi + # replace the directory string with "yes". + with_xf86vmode_req="yes" + with_xf86vmode=$with_xf86vmode_req + ;; - if test "$gt_cv_have_gettext" = "yes"; then + *) + echo "" + echo "error: argument to --with-xf86vmode-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h +VIDMODE_LIBS="" - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$MSGFMT" != "no"; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - for ac_func in dcgettext -do : - ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" -if test "x$ac_cv_func_dcgettext" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DCGETTEXT 1 -_ACEOF +if test "$with_xf86vmode" = yes; then + + # first check for xf86vmode.h + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/xf86vmode.h" "ac_cv_header_X11_extensions_xf86vmode_h" "#include +" +if test "x$ac_cv_header_X11_extensions_xf86vmode_h" = xyes; then : + have_xf86vmode=yes fi -done - MSGFMT_OPTS= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 -$as_echo_n "checking if msgfmt accepts -c... " >&6; } - cat >conftest.foo <<_ACEOF + CPPFLAGS="$ac_save_CPPFLAGS" -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: test 1.0\n" -"PO-Revision-Date: 2007-02-15 12:01+0100\n" -"Last-Translator: test \n" -"Language-Team: C \n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" + # if that succeeded, then check for the -lXxf86vm + if test "$have_xf86vmode" = yes; then + have_xf86vmode=no -_ACEOF -if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 - ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -echo "$as_me: failed input was:" >&5 -sed 's/^/| /' conftest.foo >&5 -fi + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5 +$as_echo_n "checking for XF86VidModeGetViewPort in -lXxf86vm... " >&6; } +if ${ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort+:} false; then : $as_echo_n "(cached) " >&6 else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXxf86vm -lXext -lX11 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XF86VidModeGetViewPort (); int main () { -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr +return XF86VidModeGetViewPort (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - CATOBJEXT=.gmo - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - CATOBJEXT=.gmo - DATADIRNAME=share + ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=yes else - CATOBJEXT=.mo - DATADIRNAME=lib -fi - - ;; - *-*-openbsd*) - CATOBJEXT=.mo - DATADIRNAME=share - ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib - ;; - esac + ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LIBS="$glib_save_LIBS" - INSTOBJEXT=.mo - else - gt_cv_have_gettext=no - fi - fi - +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&5 +$as_echo "$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&6; } +if test "x$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" = xyes; then : + have_xf86vmode=yes; + VIDMODE_LIBS="-lXxf86vm"; + SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS" +else + true fi + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + fi - if test "$gt_cv_have_gettext" = "yes" ; then - -$as_echo "#define ENABLE_NLS 1" >>confdefs.h - - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - fi - - # We need to process the po/ directory. - POSUB=po - - ac_config_commands="$ac_config_commands default-1" - - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - - - - - - + # if that succeeded, then we've really got it. + if test "$have_xf86vmode" = yes; then + $as_echo "#define HAVE_XF86VMODE 1" >>confdefs.h + fi +elif test "$with_xf86vmode" != no; then + echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode" + exit 1 +fi +############################################################################### +# +# Check for the XINERAMA server extension. +# +############################################################################### +have_xinerama=no +with_xinerama_req=unspecified +# Check whether --with-xinerama-ext was given. +if test "${with_xinerama_ext+set}" = set; then : + withval=$with_xinerama_ext; with_xinerama="$withval"; with_xinerama_req="$withval" +else + with_xinerama=yes +fi + case "$with_xinerama" in + yes) ;; + no) ;; - if test "$gt_cv_have_gettext" = "yes"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XINERAMA headers" >&5 +$as_echo_n "checking for XINERAMA headers... " >&6; } + d=$with_xinerama/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 -$as_echo_n "checking for catalogs to be installed... " >&6; } - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 -$as_echo "$LINGUAS" >&6; } - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } fi - fi - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - test -d po || mkdir po - if test "x$srcdir" != "x."; then - if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then - posrcprefix="$srcdir/" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XINERAMA libs" >&5 +$as_echo_n "checking for XINERAMA libs... " >&6; } + d=$with_xinerama/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } else - posrcprefix="../$srcdir/" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } fi - else - posrcprefix="../" - fi - rm -f po/POTFILES - sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ - < $srcdir/po/POTFILES.in > po/POTFILES -MKINSTALLDIRS="$INSTALL_DIRS" + # replace the directory string with "yes". + with_xinerama_req="yes" + with_xinerama=$with_xinerama_req + ;; + *) + echo "" + echo "error: argument to --with-xinerama-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac -############################################################################### -# -# Check for -lXmu (some fucked up vendors don't ship it...) -# -############################################################################### +if test "$with_xinerama" = yes; then -have_xmu=no + # first check for Xinerama.h ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then @@ -8453,330 +8229,193 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/Xmu/Error.h" "ac_cv_header_X11_Xmu_Error_h" "#include - #include - #include + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xinerama.h" "ac_cv_header_X11_extensions_Xinerama_h" "#include " -if test "x$ac_cv_header_X11_Xmu_Error_h" = xyes; then : - have_xmu=yes +if test "x$ac_cv_header_X11_extensions_Xinerama_h" = xyes; then : + have_xinerama=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" -if test "$have_xmu" = no ; then - XMU_SRCS='$(UTILS_SRC)/xmu.c' - XMU_OBJS='$(UTILS_BIN)/xmu.o' - XMU_LIBS='' -else - XMU_SRCS='' - XMU_OBJS='' - XMU_LIBS='-lXmu' - $as_echo "#define HAVE_XMU 1" >>confdefs.h -fi + # if that succeeded, then check for the XINERAMA code in the libraries + if test "$have_xinerama" = yes; then + # first look in -lXext + have_xinerama=no -############################################################################### -# -# Check for the SunOS 4.1.x _get_wmShellWidgetClass bug. -# See comp.windows.x FAQ question 124. The right fix is to -# get OpenWindows 3.0 patches 100512-02 and 100573-03. -# -############################################################################### + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" -if test "$have_xmu" = yes ; then - case "$host" in - *-sunos4*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5 -$as_echo_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug... " >&6; } -if ${ac_cv_sunos_xmu_bug+:} false; then : + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryScreens in -lXext" >&5 +$as_echo_n "checking for XineramaQueryScreens in -lXext... " >&6; } +if ${ac_cv_lib_Xext_XineramaQueryScreens+:} false; then : $as_echo_n "(cached) " >&6 else - ac_save_LDFLAGS="$LDFLAGS" - if test \! -z "$x_libraries" ; then - LDFLAGS="$LDFLAGS -L$x_libraries" - fi - # Note: this trick never works! (Generally.) - # We're only getting away with using AC_TRY_LINK - # with X libraries because we know it's SunOS. - LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXext -lXext -lX11 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XineramaQueryScreens (); int main () { - +return XineramaQueryScreens (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_sunos_xmu_bug=no + ac_cv_lib_Xext_XineramaQueryScreens=yes else - ac_cv_sunos_xmu_bug=yes + ac_cv_lib_Xext_XineramaQueryScreens=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$ac_save_LDFLAGS" +LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sunos_xmu_bug" >&5 -$as_echo "$ac_cv_sunos_xmu_bug" >&6; } - if test "$ac_cv_sunos_xmu_bug" = yes ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler understands -static" >&5 -$as_echo_n "checking whether the compiler understands -static... " >&6; } -if ${ac_cv_ld_static+:} false; then : - $as_echo_n "(cached) " >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XineramaQueryScreens" >&5 +$as_echo "$ac_cv_lib_Xext_XineramaQueryScreens" >&6; } +if test "x$ac_cv_lib_Xext_XineramaQueryScreens" = xyes; then : + have_xinerama=yes else + true +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.) + if test "$have_xinerama" = no; then + + ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -static" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryScreens in -lXinerama" >&5 +$as_echo_n "checking for XineramaQueryScreens in -lXinerama... " >&6; } +if ${ac_cv_lib_Xinerama_XineramaQueryScreens+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXinerama -lXext -lX11 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XineramaQueryScreens (); int main () { - +return XineramaQueryScreens (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_ld_static=yes + ac_cv_lib_Xinerama_XineramaQueryScreens=yes else - ac_cv_ld_static=no + ac_cv_lib_Xinerama_XineramaQueryScreens=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$ac_save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ld_static" >&5 -$as_echo "$ac_cv_ld_static" >&6; } - if test "$ac_cv_ld_static" = yes ; then - LDFLAGS="$LDFLAGS -static" - else - LDFLAGS="$LDFLAGS -Bstatic" - fi - fi - ;; - esac -fi - - -############################################################################### -# -# Handle the --with-hackdir option -# -############################################################################### - -have_hackdir=yes -with_hackdir_req=unspecified - -# Check whether --with-hackdir was given. -if test "${with_hackdir+set}" = set; then : - withval=$with_hackdir; with_hackdir="$withval"; with_hackdir_req="$withval" -else - with_hackdir=yes +LIBS=$ac_check_lib_save_LIBS fi - - -if test x"$with_hackdir" = xyes; then - HACKDIR='${libexecdir}/xscreensaver' -elif test x"$with_hackdir" = xno; then - HACKDIR='${bindir}' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5 +$as_echo "$ac_cv_lib_Xinerama_XineramaQueryScreens" >&6; } +if test "x$ac_cv_lib_Xinerama_XineramaQueryScreens" = xyes; then : + have_xinerama=yes; XINERAMA_LIBS="-lXinerama" else - HACKDIR=$with_hackdir -fi - -# canonicalize slashes. -HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` - -# Expand HACKDIR as HACKDIR_FULL -HACKDIR_FULL=`eval eval eval eval eval eval eval eval eval echo $HACKDIR` - -# This option used to be called --enable-subdir; make sure that is no longer -# used, since configure brain-damagedly ignores unknown --enable options. - -obsolete_enable= -# Check whether --enable-subdir was given. -if test "${enable_subdir+set}" = set; then : - enableval=$enable_subdir; obsolete_enable=yes -fi - -if test -n "$obsolete_enable"; then - echo "error: the --enable-subdir option has been replaced with" - echo " the new --with-hackdir option; see \`configure --help'" - echo " for more information." - exit 1 + true fi + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" -############################################################################### -# -# Handle the --with-configdir option -# Help for --with-x-app-defaults option added. -# -############################################################################### - -have_configdir=yes -with_configdir_req=unspecified + fi + fi -# Check whether --with-configdir was given. -if test "${with_configdir+set}" = set; then : - withval=$with_configdir; with_configdir="$withval"; with_configdir_req="$withval" -else - with_configdir=yes -fi + # if that succeeded, then we've really got it. + if test "$have_xinerama" = yes; then + $as_echo "#define HAVE_XINERAMA 1" >>confdefs.h + fi -if test x"$with_configdir" = xyes; then - HACK_CONF_DIR='${datadir}/xscreensaver/config' -elif test x"$with_configdir" = xno; then - echo "error: must be yes, or a pathname: --with-configdir=$with_configdir" +elif test "$with_xinerama" != no; then + echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama" exit 1 -else - # there must be a better way than this... - if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then - # absolute path - HACK_CONF_DIR=$with_configdir - else - # relative path - HACK_CONF_DIR="\${exec_prefix}$with_configdir" - fi fi - - - -############################################################################### -# -# Check for the SGI SCREEN_SAVER server extension. -# -############################################################################### - -#have_sgi=no -#with_sgi_req=unspecified -#AC_ARG_WITH(sgi-ext, -#[Except where noted, all of the --with options below can also take a -#directory argument: for example, `--with-motif=/opt/Motif'. That would -#cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/ -#to be added to the -L list, assuming those directories exist. -# -#By default, support for each of these options will be built in, if the -#relevant library routines exist. At run time, they will then be used -#only if the X server being used supports them. Each --with option has -#a corresponding --without option, to override building support for them -#at all. -# -#Screen blanking and idle-detection options: -# -# --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.], -# [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes]) -# -#HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER) -# -#if test "$with_sgi" = yes; then -# AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, -# [have_sgi=yes -# AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],, -# [#include ]) -# -#elif test "$with_sgi" != no; then -# echo "error: must be yes or no: --with-sgi-ext=$with_sgi" -# exit 1 -#fi - - -############################################################################### -# -# Check for the XIDLE server extension. -# -############################################################################### - -#have_xidle=no -#with_xidle_req=unspecified -#AC_ARG_WITH(xidle-ext, -#[ --with-xidle-ext Include support for the XIDLE extension.], -# [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes]) -# -#HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE) -# -#if test "$with_xidle" = yes; then -# AC_CHECK_X_HEADER(X11/extensions/xidle.h, -# [have_xidle=yes -# AC_DEFINE(HAVE_XIDLE_EXTENSION)],, -# [#include ]) -#elif test "$with_xidle" != no; then -# echo "error: must be yes or no: --with-xidle-ext=$with_xidle" -# exit 1 -#fi - - ############################################################################### # -# Check for the SGI-VIDEO-CONTROL server extension. -# -############################################################################### - -#have_sgivc=no -#with_sgivc_req=unspecified -#AC_ARG_WITH(sgivc-ext, -#[ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.], -# [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes]) -# -#HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL) -# -#if test "$with_sgivc" = yes; then -# -# # first check for XSGIvc.h -# AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],, -# [#include ]) -# -# # if that succeeded, then check for the -lXsgivc -# if test "$have_sgivc" = yes; then -# have_sgivc=no -# AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap, -# [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true], -# -lXext -lX11) -# fi -# -# # if that succeeded, then we've really got it. -# if test "$have_sgivc" = yes; then -# AC_DEFINE(HAVE_SGI_VC_EXTENSION) -# fi -# -#elif test "$with_sgivc" != no; then -# echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc" -# exit 1 -#fi - - -############################################################################### +# Check for the RANDR (Resize and Rotate) server extension. # -# Check for the DPMS server extension. +# We need this to detect when the resolution of the desktop +# has changed out from under us (this is a newer, different +# mechanism than the XF86VMODE virtual viewports.) # ############################################################################### -have_dpms=no -with_dpms_req=unspecified +have_randr=no +with_randr_req=unspecified -# Check whether --with-dpms-ext was given. -if test "${with_dpms_ext+set}" = set; then : - withval=$with_dpms_ext; with_dpms="$withval"; with_dpms_req="$withval" +# Check whether --with-randr-ext was given. +if test "${with_randr_ext+set}" = set; then : + withval=$with_randr_ext; with_randr="$withval"; with_randr_req="$withval" else - with_dpms=yes + with_randr=yes fi - - - case "$with_dpms" in + case "$with_randr" in yes) ;; no) ;; /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMS headers" >&5 -$as_echo_n "checking for DPMS headers... " >&6; } - d=$with_dpms/include + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RANDR headers" >&5 +$as_echo_n "checking for RANDR headers... " >&6; } + d=$with_randr/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -8786,9 +8425,9 @@ $as_echo "not found ($d: no such directory)" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMS libs" >&5 -$as_echo_n "checking for DPMS libs... " >&6; } - d=$with_dpms/lib + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RANDR libs" >&5 +$as_echo_n "checking for RANDR libs... " >&6; } + d=$with_randr/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -8799,23 +8438,22 @@ fi # replace the directory string with "yes". - with_dpms_req="yes" - with_dpms=$with_dpms_req + with_randr_req="yes" + with_randr=$with_randr_req ;; *) echo "" - echo "error: argument to --with-dpms-ext must be \"yes\", \"no\", or a directory." + echo "error: argument to --with-randr-ext must be \"yes\", \"no\", or a directory." echo " If it is a directory, then \`DIR/include' will be added to" echo " the -I list, and \`DIR/lib' will be added to the -L list." exit 1 ;; esac +if test "$with_randr" = yes; then -if test "$with_dpms" = yes; then - - # first check for dpms.h + # first check for Xrandr.h ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then @@ -8823,21 +8461,19 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/dpms.h" "ac_cv_header_X11_extensions_dpms_h" "#include - #include + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xrandr.h" "ac_cv_header_X11_extensions_Xrandr_h" "#include " -if test "x$ac_cv_header_X11_extensions_dpms_h" = xyes; then : - have_dpms=yes +if test "x$ac_cv_header_X11_extensions_Xrandr_h" = xyes; then : + have_randr=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" - # if that succeeded, then check for the DPMS code in the libraries - if test "$have_dpms" = yes; then + # if that succeeded, then check for the XRR code in the libraries + if test "$have_randr" = yes; then - # first look in -lXext (this is where it is with XFree86 4.0) - have_dpms=no + # RANDR probably needs -lXrender + xrender_libs= ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -8857,13 +8493,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMSInfo in -lXext" >&5 -$as_echo_n "checking for DPMSInfo in -lXext... " >&6; } -if ${ac_cv_lib_Xext_DPMSInfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRenderSetSubpixelOrder in -lXrender" >&5 +$as_echo_n "checking for XRenderSetSubpixelOrder in -lXrender... " >&6; } +if ${ac_cv_lib_Xrender_XRenderSetSubpixelOrder+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXext -lXext -lX11 $LIBS" +LIBS="-lXrender -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8873,28 +8509,28 @@ #ifdef __cplusplus extern "C" #endif -char DPMSInfo (); +char XRenderSetSubpixelOrder (); int main () { -return DPMSInfo (); +return XRenderSetSubpixelOrder (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xext_DPMSInfo=yes + ac_cv_lib_Xrender_XRenderSetSubpixelOrder=yes else - ac_cv_lib_Xext_DPMSInfo=no + ac_cv_lib_Xrender_XRenderSetSubpixelOrder=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_DPMSInfo" >&5 -$as_echo "$ac_cv_lib_Xext_DPMSInfo" >&6; } -if test "x$ac_cv_lib_Xext_DPMSInfo" = xyes; then : - have_dpms=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&5 +$as_echo "$ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&6; } +if test "x$ac_cv_lib_Xrender_XRenderSetSubpixelOrder" = xyes; then : + xrender_libs="-lXrender" else true fi @@ -8903,9 +8539,8 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - - # if that failed, look in -lXdpms (this is where it was in XFree86 3.x) - if test "$have_dpms" = no; then + # first look for RANDR in -lXext + have_randr=no ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -8925,13 +8560,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DPMSInfo in -lXdpms" >&5 -$as_echo_n "checking for DPMSInfo in -lXdpms... " >&6; } -if ${ac_cv_lib_Xdpms_DPMSInfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRGetScreenInfo in -lXext" >&5 +$as_echo_n "checking for XRRGetScreenInfo in -lXext... " >&6; } +if ${ac_cv_lib_Xext_XRRGetScreenInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXdpms -lXext -lX11 $LIBS" +LIBS="-lXext $xrender_libs -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8941,28 +8576,28 @@ #ifdef __cplusplus extern "C" #endif -char DPMSInfo (); +char XRRGetScreenInfo (); int main () { -return DPMSInfo (); +return XRRGetScreenInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xdpms_DPMSInfo=yes + ac_cv_lib_Xext_XRRGetScreenInfo=yes else - ac_cv_lib_Xdpms_DPMSInfo=no + ac_cv_lib_Xext_XRRGetScreenInfo=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xdpms_DPMSInfo" >&5 -$as_echo "$ac_cv_lib_Xdpms_DPMSInfo" >&6; } -if test "x$ac_cv_lib_Xdpms_DPMSInfo" = xyes; then : - have_dpms=yes; XDPMS_LIBS="-lXdpms" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XRRGetScreenInfo" >&5 +$as_echo "$ac_cv_lib_Xext_XRRGetScreenInfo" >&6; } +if test "x$ac_cv_lib_Xext_XRRGetScreenInfo" = xyes; then : + have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs" else true fi @@ -8971,108 +8606,8 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - fi - fi - - - # if that succeeded, then we've really got it. - if test "$have_dpms" = yes; then - $as_echo "#define HAVE_DPMS_EXTENSION 1" >>confdefs.h - - fi - -elif test "$with_dpms" != no; then - echo "error: must be yes or no: --with-dpms-ext=$with_dpms" - exit 1 -fi - - -############################################################################### -# -# Check for the XINERAMA server extension. -# -############################################################################### - -have_xinerama=no -with_xinerama_req=unspecified - -# Check whether --with-xinerama-ext was given. -if test "${with_xinerama_ext+set}" = set; then : - withval=$with_xinerama_ext; with_xinerama="$withval"; with_xinerama_req="$withval" -else - with_xinerama=yes -fi - - - - case "$with_xinerama" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XINERAMA headers" >&5 -$as_echo_n "checking for XINERAMA headers... " >&6; } - d=$with_xinerama/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XINERAMA libs" >&5 -$as_echo_n "checking for XINERAMA libs... " >&6; } - d=$with_xinerama/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_xinerama_req="yes" - with_xinerama=$with_xinerama_req - ;; - - *) - echo "" - echo "error: argument to --with-xinerama-ext must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - - -if test "$with_xinerama" = yes; then - - # first check for Xinerama.h - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xinerama.h" "ac_cv_header_X11_extensions_Xinerama_h" "#include -" -if test "x$ac_cv_header_X11_extensions_Xinerama_h" = xyes; then : - have_xinerama=yes -fi - - - CPPFLAGS="$ac_save_CPPFLAGS" - - # if that succeeded, then check for the XINERAMA code in the libraries - if test "$have_xinerama" = yes; then - - # first look in -lXext - have_xinerama=no + # if that failed, look in -lXrandr + if test "$have_randr" = no; then ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -9092,13 +8627,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryScreens in -lXext" >&5 -$as_echo_n "checking for XineramaQueryScreens in -lXext... " >&6; } -if ${ac_cv_lib_Xext_XineramaQueryScreens+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRGetScreenInfo in -lXrandr" >&5 +$as_echo_n "checking for XRRGetScreenInfo in -lXrandr... " >&6; } +if ${ac_cv_lib_Xrandr_XRRGetScreenInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXext -lXext -lX11 $LIBS" +LIBS="-lXrandr $xrender_libs -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9108,39 +8643,104 @@ #ifdef __cplusplus extern "C" #endif -char XineramaQueryScreens (); +char XRRGetScreenInfo (); int main () { -return XineramaQueryScreens (); +return XRRGetScreenInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xext_XineramaQueryScreens=yes + ac_cv_lib_Xrandr_XRRGetScreenInfo=yes +else + ac_cv_lib_Xrandr_XRRGetScreenInfo=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrandr_XRRGetScreenInfo" >&5 +$as_echo "$ac_cv_lib_Xrandr_XRRGetScreenInfo" >&6; } +if test "x$ac_cv_lib_Xrandr_XRRGetScreenInfo" = xyes; then : + have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs" +else + true +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi + fi + + # if that succeeded, then we've really got it. + if test "$have_randr" = yes; then + $as_echo "#define HAVE_RANDR 1" >>confdefs.h + + # Now check for version 1.2 in the same libs. + # Try to compile, since on MacOS 10.5.7, headers are older than libs! + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRGetScreenResources" >&5 +$as_echo_n "checking for XRRGetScreenResources... " >&6; } +if ${ac_cv_randr_12+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_randr_12=no + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include +int +main () +{ +XRRScreenResources *res = + XRRGetScreenResources (0, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_randr_12=yes else - ac_cv_lib_Xext_XineramaQueryScreens=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + ac_cv_randr_12=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XineramaQueryScreens" >&5 -$as_echo "$ac_cv_lib_Xext_XineramaQueryScreens" >&6; } -if test "x$ac_cv_lib_Xext_XineramaQueryScreens" = xyes; then : - have_xinerama=yes -else - true +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$ac_save_CPPFLAGS" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_randr_12" >&5 +$as_echo "$ac_cv_randr_12" >&6; } + if test "$ac_cv_randr_12" = yes ; then + $as_echo "#define HAVE_RANDR_12 1" >>confdefs.h - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" + fi +# AC_CHECK_X_LIB(c, XRRGetOutputInfo, [AC_DEFINE(HAVE_RANDR_12)], +# [true], $SAVER_LIBS) + fi +elif test "$with_randr" != no; then + echo "error: must be yes or no: --with-randr-ext=$with_randr" + exit 1 +fi - # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.) - if test "$have_xinerama" = no; then +############################################################################### +# +# Check for XF86MiscSetGrabKeysState (but only bother if we are already +# using other XF86 stuff.) +# +############################################################################### + +have_xf86miscsetgrabkeysstate=no +if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -9160,13 +8760,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryScreens in -lXinerama" >&5 -$as_echo_n "checking for XineramaQueryScreens in -lXinerama... " >&6; } -if ${ac_cv_lib_Xinerama_XineramaQueryScreens+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XF86MiscSetGrabKeysState in -lXxf86misc" >&5 +$as_echo_n "checking for XF86MiscSetGrabKeysState in -lXxf86misc... " >&6; } +if ${ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXinerama -lXext -lX11 $LIBS" +LIBS="-lXxf86misc -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9176,28 +8776,28 @@ #ifdef __cplusplus extern "C" #endif -char XineramaQueryScreens (); +char XF86MiscSetGrabKeysState (); int main () { -return XineramaQueryScreens (); +return XF86MiscSetGrabKeysState (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xinerama_XineramaQueryScreens=yes + ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=yes else - ac_cv_lib_Xinerama_XineramaQueryScreens=no + ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5 -$as_echo "$ac_cv_lib_Xinerama_XineramaQueryScreens" >&6; } -if test "x$ac_cv_lib_Xinerama_XineramaQueryScreens" = xyes; then : - have_xinerama=yes; XINERAMA_LIBS="-lXinerama" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&5 +$as_echo "$ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&6; } +if test "x$ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" = xyes; then : + have_xf86miscsetgrabkeysstate=yes else true fi @@ -9206,21 +8806,13 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - fi - fi - - # if that succeeded, then we've really got it. - if test "$have_xinerama" = yes; then - $as_echo "#define HAVE_XINERAMA 1" >>confdefs.h + if test "$have_xf86miscsetgrabkeysstate" = yes ; then + SAVER_LIBS="$SAVER_LIBS -lXxf86misc" + $as_echo "#define HAVE_XF86MISCSETGRABKEYSSTATE 1" >>confdefs.h fi - -elif test "$with_xinerama" != no; then - echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama" - exit 1 fi - ############################################################################### # # Check for the XINPUT server extension. @@ -9237,8 +8829,6 @@ with_xinput=yes fi - - case "$with_xinput" in yes) ;; no) ;; @@ -9282,7 +8872,6 @@ ;; esac - if test "$with_xinput" = yes; then # first check for Xinput.h @@ -9299,7 +8888,6 @@ have_xinput=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" # if that succeeded, then check for libXi @@ -9356,179 +8944,12 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xi_XListInputDevices" >&5 -$as_echo "$ac_cv_lib_Xi_XListInputDevices" >&6; } -if test "x$ac_cv_lib_Xi_XListInputDevices" = xyes; then : - have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi" -else - true -fi - - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" - - fi - - # if that succeeded, then we've really got it. - if test "$have_xinput" = yes; then - $as_echo "#define HAVE_XINPUT 1" >>confdefs.h - - fi - -elif test "$with_xinput" != no; then - echo "error: must be yes or no: --with-xinput-ext=$with_xinput" - exit 1 -fi - - -############################################################################### -# -# Check for the XF86VMODE server extension (for virtual screens.) -# -############################################################################### - -have_xf86vmode=no -with_xf86vmode_req=unspecified - -# Check whether --with-xf86vmode-ext was given. -if test "${with_xf86vmode_ext+set}" = set; then : - withval=$with_xf86vmode_ext; with_xf86vmode="$withval"; with_xf86vmode_req="$withval" -else - with_xf86vmode=yes -fi - - - - case "$with_xf86vmode" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xf86vmode headers" >&5 -$as_echo_n "checking for xf86vmode headers... " >&6; } - d=$with_xf86vmode/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xf86vmode libs" >&5 -$as_echo_n "checking for xf86vmode libs... " >&6; } - d=$with_xf86vmode/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_xf86vmode_req="yes" - with_xf86vmode=$with_xf86vmode_req - ;; - - *) - echo "" - echo "error: argument to --with-xf86vmode-ext must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - - -VIDMODE_LIBS="" - -if test "$with_xf86vmode" = yes; then - - # first check for xf86vmode.h - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/xf86vmode.h" "ac_cv_header_X11_extensions_xf86vmode_h" "#include -" -if test "x$ac_cv_header_X11_extensions_xf86vmode_h" = xyes; then : - have_xf86vmode=yes -fi - - - CPPFLAGS="$ac_save_CPPFLAGS" - - # if that succeeded, then check for the -lXxf86vm - if test "$have_xf86vmode" = yes; then - have_xf86vmode=no - - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" - - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5 -$as_echo_n "checking for XF86VidModeGetViewPort in -lXxf86vm... " >&6; } -if ${ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXxf86vm -lXext -lX11 $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XF86VidModeGetViewPort (); -int -main () -{ -return XF86VidModeGetViewPort (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=yes -else - ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&5 -$as_echo "$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&6; } -if test "x$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" = xyes; then : - have_xf86vmode=yes; - VIDMODE_LIBS="-lXxf86vm"; - SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS" +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xi_XListInputDevices" >&5 +$as_echo "$ac_cv_lib_Xi_XListInputDevices" >&6; } +if test "x$ac_cv_lib_Xi_XListInputDevices" = xyes; then : + have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi" else true fi @@ -9540,17 +8961,16 @@ fi # if that succeeded, then we've really got it. - if test "$have_xf86vmode" = yes; then - $as_echo "#define HAVE_XF86VMODE 1" >>confdefs.h + if test "$have_xinput" = yes; then + $as_echo "#define HAVE_XINPUT 1" >>confdefs.h fi -elif test "$with_xf86vmode" != no; then - echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode" +elif test "$with_xinput" != no; then + echo "error: must be yes or no: --with-xinput-ext=$with_xinput" exit 1 fi - ############################################################################### # # Check for the XF86VMODE server extension (for gamma fading.) @@ -9568,8 +8988,6 @@ with_xf86gamma=yes fi - - case "$with_xf86gamma" in yes) ;; no) ;; @@ -9613,7 +9031,6 @@ ;; esac - if test "$with_xf86gamma" = yes; then # first check for xf86vmode.h, if we haven't already @@ -9633,7 +9050,6 @@ have_xf86gamma=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" fi @@ -9798,37 +9214,30 @@ exit 1 fi - ############################################################################### # -# Check for the RANDR (Resize and Rotate) server extension. -# -# We need this to detect when the resolution of the desktop -# has changed out from under us (this is a newer, different -# mechanism than the XF86VMODE virtual viewports.) +# Check for the XIDLE server extension. # ############################################################################### -have_randr=no -with_randr_req=unspecified +have_xidle=no +with_xidle_req=unspecified -# Check whether --with-randr-ext was given. -if test "${with_randr_ext+set}" = set; then : - withval=$with_randr_ext; with_randr="$withval"; with_randr_req="$withval" +# Check whether --with-xidle-ext was given. +if test "${with_xidle_ext+set}" = set; then : + withval=$with_xidle_ext; with_xidle="$withval"; with_xidle_req="$withval" else - with_randr=yes + with_xidle=yes fi - - - case "$with_randr" in + case "$with_xidle" in yes) ;; no) ;; /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RANDR headers" >&5 -$as_echo_n "checking for RANDR headers... " >&6; } - d=$with_randr/include + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XIDLE headers" >&5 +$as_echo_n "checking for XIDLE headers... " >&6; } + d=$with_xidle/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -9838,9 +9247,9 @@ $as_echo "not found ($d: no such directory)" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RANDR libs" >&5 -$as_echo_n "checking for RANDR libs... " >&6; } - d=$with_randr/lib + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XIDLE libs" >&5 +$as_echo_n "checking for XIDLE libs... " >&6; } + d=$with_xidle/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -9851,23 +9260,56 @@ fi # replace the directory string with "yes". - with_randr_req="yes" - with_randr=$with_randr_req + with_xidle_req="yes" + with_xidle=$with_xidle_req ;; *) echo "" - echo "error: argument to --with-randr-ext must be \"yes\", \"no\", or a directory." + echo "error: argument to --with-xidle-ext must be \"yes\", \"no\", or a directory." echo " If it is a directory, then \`DIR/include' will be added to" echo " the -I list, and \`DIR/lib' will be added to the -L list." exit 1 ;; esac +if test "$with_xidle" = yes; then -if test "$with_randr" = yes; then + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/xidle.h" "ac_cv_header_X11_extensions_xidle_h" "#include +" +if test "x$ac_cv_header_X11_extensions_xidle_h" = xyes; then : + have_xidle=yes + $as_echo "#define HAVE_XIDLE_EXTENSION 1" >>confdefs.h - # first check for Xrandr.h +fi + + CPPFLAGS="$ac_save_CPPFLAGS" +elif test "$with_xidle" != no; then + echo "error: must be yes or no: --with-xidle-ext=$with_xidle" + exit 1 +fi + +############################################################################### +# +# Check for the MIT-SCREEN-SAVER server extension. +# +############################################################################### + +have_mit=no +with_mit=no +with_mit_req=unspecified +#AC_ARG_WITH(mit-ext, +#[ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.], +# [with_mit="$withval"; with_mit_req="$withval"],[with_mit=no]) +#HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER) + +if test "$with_mit" = yes; then ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then @@ -9875,20 +9317,86 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xrandr.h" "ac_cv_header_X11_extensions_Xrandr_h" "#include + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/scrnsaver.h" "ac_cv_header_X11_extensions_scrnsaver_h" "#include " -if test "x$ac_cv_header_X11_extensions_Xrandr_h" = xyes; then : - have_randr=yes +if test "x$ac_cv_header_X11_extensions_scrnsaver_h" = xyes; then : + have_mit=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" - # if that succeeded, then check for the XRR code in the libraries - if test "$have_randr" = yes; then + # Now check to see if it's really in the library; XF86Free-3.3 ships + # scrnsaver.h, but doesn't include the code in libXext.a, the idiots! + # + if test "$have_mit" = yes; then - # RANDR probably needs -lXrender - xrender_libs= + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XScreenSaverRegister in -lXext" >&5 +$as_echo_n "checking for XScreenSaverRegister in -lXext... " >&6; } +if ${ac_cv_lib_Xext_XScreenSaverRegister+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XScreenSaverRegister (); +int +main () +{ +return XScreenSaverRegister (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xext_XScreenSaverRegister=yes +else + ac_cv_lib_Xext_XScreenSaverRegister=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XScreenSaverRegister" >&5 +$as_echo "$ac_cv_lib_Xext_XScreenSaverRegister" >&6; } +if test "x$ac_cv_lib_Xext_XScreenSaverRegister" = xyes; then : + true +else + have_mit=no +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + if test "$have_mit" = no; then + # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead + # of in Xext. Thank you master, may I have another. ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -9908,13 +9416,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRenderSetSubpixelOrder in -lXrender" >&5 -$as_echo_n "checking for XRenderSetSubpixelOrder in -lXrender... " >&6; } -if ${ac_cv_lib_Xrender_XRenderSetSubpixelOrder+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XScreenSaverRegister in -lXExExt" >&5 +$as_echo_n "checking for XScreenSaverRegister in -lXExExt... " >&6; } +if ${ac_cv_lib_XExExt_XScreenSaverRegister+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXrender -lXext -lX11 $LIBS" +LIBS="-lXExExt -lX11 -lXext -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9924,28 +9432,28 @@ #ifdef __cplusplus extern "C" #endif -char XRenderSetSubpixelOrder (); +char XScreenSaverRegister (); int main () { -return XRenderSetSubpixelOrder (); +return XScreenSaverRegister (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xrender_XRenderSetSubpixelOrder=yes + ac_cv_lib_XExExt_XScreenSaverRegister=yes else - ac_cv_lib_Xrender_XRenderSetSubpixelOrder=no + ac_cv_lib_XExExt_XScreenSaverRegister=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&5 -$as_echo "$ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&6; } -if test "x$ac_cv_lib_Xrender_XRenderSetSubpixelOrder" = xyes; then : - xrender_libs="-lXrender" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XExExt_XScreenSaverRegister" >&5 +$as_echo "$ac_cv_lib_XExExt_XScreenSaverRegister" >&6; } +if test "x$ac_cv_lib_XExExt_XScreenSaverRegister" = xyes; then : + have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt" else true fi @@ -9954,9 +9462,13 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" + fi - # first look for RANDR in -lXext - have_randr=no + if test "$have_mit" = no; then + # Double fuck! Looks like some versions of XFree86 (whichever version + # it is that comes with RedHat Linux 2.0 -- I can't find a version + # number) put this garbage in Xss instead of Xext. Thank you master, + # may I have another. ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -9976,13 +9488,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRGetScreenInfo in -lXext" >&5 -$as_echo_n "checking for XRRGetScreenInfo in -lXext... " >&6; } -if ${ac_cv_lib_Xext_XRRGetScreenInfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XScreenSaverRegister in -lXss" >&5 +$as_echo_n "checking for XScreenSaverRegister in -lXss... " >&6; } +if ${ac_cv_lib_Xss_XScreenSaverRegister+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXext $xrender_libs -lXext -lX11 $LIBS" +LIBS="-lXss -lX11 -lXext -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9992,39 +9504,213 @@ #ifdef __cplusplus extern "C" #endif -char XRRGetScreenInfo (); +char XScreenSaverRegister (); int main () { -return XRRGetScreenInfo (); +return XScreenSaverRegister (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xext_XRRGetScreenInfo=yes + ac_cv_lib_Xss_XScreenSaverRegister=yes else - ac_cv_lib_Xext_XRRGetScreenInfo=no + ac_cv_lib_Xss_XScreenSaverRegister=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XRRGetScreenInfo" >&5 -$as_echo "$ac_cv_lib_Xext_XRRGetScreenInfo" >&6; } -if test "x$ac_cv_lib_Xext_XRRGetScreenInfo" = xyes; then : - have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xss_XScreenSaverRegister" >&5 +$as_echo "$ac_cv_lib_Xss_XScreenSaverRegister" >&6; } +if test "x$ac_cv_lib_Xss_XScreenSaverRegister" = xyes; then : + have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss" else true fi CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" - + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi + + if test "$have_mit" = yes; then +# AC_DEFINE(HAVE_MIT_SAVER_EXTENSION) + echo "Using the MIT-SCREEN-SAVER extension will crash your server. Don't." + exit 1 + fi + + fi + +elif test "$with_mit" != no; then + echo "error: must be yes or no: --with-mit-ext=$with_mit" + exit 1 +fi + +############################################################################### +# +# Check for the SGI SCREEN_SAVER server extension. +# +############################################################################### + +have_sgi=no +with_sgi_req=unspecified + +# Check whether --with-sgi-ext was given. +if test "${with_sgi_ext+set}" = set; then : + withval=$with_sgi_ext; with_sgi="$withval"; with_sgi_req="$withval" +else + with_sgi=$ac_irix +fi + + case "$with_sgi" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SGI SCREEN_SAVER headers" >&5 +$as_echo_n "checking for SGI SCREEN_SAVER headers... " >&6; } + d=$with_sgi/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SGI SCREEN_SAVER libs" >&5 +$as_echo_n "checking for SGI SCREEN_SAVER libs... " >&6; } + d=$with_sgi/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_sgi_req="yes" + with_sgi=$with_sgi_req + ;; + + *) + echo "" + echo "error: argument to --with-sgi-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_sgi" = yes; then + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/XScreenSaver.h" "ac_cv_header_X11_extensions_XScreenSaver_h" "#include +" +if test "x$ac_cv_header_X11_extensions_XScreenSaver_h" = xyes; then : + have_sgi=yes + $as_echo "#define HAVE_SGI_SAVER_EXTENSION 1" >>confdefs.h + +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + +elif test "$with_sgi" != no; then + echo "error: must be yes or no: --with-sgi-ext=$with_sgi" + exit 1 +fi + +############################################################################### +# +# Check for the SGI-VIDEO-CONTROL server extension. +# +############################################################################### + +have_sgivc=no +with_sgivc_req=unspecified + +# Check whether --with-sgivc-ext was given. +if test "${with_sgivc_ext+set}" = set; then : + withval=$with_sgivc_ext; with_sgivc="$withval"; with_sgivc_req="$withval" +else + with_sgivc=$ac_irix +fi + + case "$with_sgivc" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SGI-VIDEO-CONTROL headers" >&5 +$as_echo_n "checking for SGI-VIDEO-CONTROL headers... " >&6; } + d=$with_sgivc/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SGI-VIDEO-CONTROL libs" >&5 +$as_echo_n "checking for SGI-VIDEO-CONTROL libs... " >&6; } + d=$with_sgivc/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_sgivc_req="yes" + with_sgivc=$with_sgivc_req + ;; + + *) + echo "" + echo "error: argument to --with-sgivc-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_sgivc" = yes; then + + # first check for XSGIvc.h + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/XSGIvc.h" "ac_cv_header_X11_extensions_XSGIvc_h" "#include +" +if test "x$ac_cv_header_X11_extensions_XSGIvc_h" = xyes; then : + have_sgivc=yes +fi + + CPPFLAGS="$ac_save_CPPFLAGS" - # if that failed, look in -lXrandr - if test "$have_randr" = no; then + # if that succeeded, then check for the -lXsgivc + if test "$have_sgivc" = yes; then + have_sgivc=no ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -10044,13 +9730,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRGetScreenInfo in -lXrandr" >&5 -$as_echo_n "checking for XRRGetScreenInfo in -lXrandr... " >&6; } -if ${ac_cv_lib_Xrandr_XRRGetScreenInfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5 +$as_echo_n "checking for XSGIvcQueryGammaMap in -lXsgivc... " >&6; } +if ${ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXrandr $xrender_libs -lXext -lX11 $LIBS" +LIBS="-lXsgivc -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10060,28 +9746,28 @@ #ifdef __cplusplus extern "C" #endif -char XRRGetScreenInfo (); +char XSGIvcQueryGammaMap (); int main () { -return XRRGetScreenInfo (); +return XSGIvcQueryGammaMap (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xrandr_XRRGetScreenInfo=yes + ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap=yes else - ac_cv_lib_Xrandr_XRRGetScreenInfo=no + ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrandr_XRRGetScreenInfo" >&5 -$as_echo "$ac_cv_lib_Xrandr_XRRGetScreenInfo" >&6; } -if test "x$ac_cv_lib_Xrandr_XRRGetScreenInfo" = xyes; then : - have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&5 +$as_echo "$ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&6; } +if test "x$ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" = xyes; then : + have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc" else true fi @@ -10090,22 +9776,79 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - fi fi # if that succeeded, then we've really got it. - if test "$have_randr" = yes; then - $as_echo "#define HAVE_RANDR 1" >>confdefs.h + if test "$have_sgivc" = yes; then + $as_echo "#define HAVE_SGI_VC_EXTENSION 1" >>confdefs.h + fi - # Now check for version 1.2 in the same libs. - # Try to compile, since on MacOS 10.5.7, headers are older than libs! - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRRGetScreenResources" >&5 -$as_echo_n "checking for XRRGetScreenResources... " >&6; } -if ${ac_cv_randr_12+:} false; then : - $as_echo_n "(cached) " >&6 +elif test "$with_sgivc" != no; then + echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc" + exit 1 +fi + +############################################################################### +# +# Check for the SGI XReadDisplay server extension. +# +############################################################################### + +have_readdisplay=no +with_readdisplay_req=unspecified + +# Check whether --with-readdisplay was given. +if test "${with_readdisplay+set}" = set; then : + withval=$with_readdisplay; with_readdisplay="$withval"; with_readdisplay_req="$withval" else - ac_cv_randr_12=no + with_readdisplay=$ac_irix +fi + + case "$with_readdisplay" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XReadDisplay headers" >&5 +$as_echo_n "checking for XReadDisplay headers... " >&6; } + d=$with_readdisplay/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XReadDisplay libs" >&5 +$as_echo_n "checking for XReadDisplay libs... " >&6; } + d=$with_readdisplay/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_readdisplay_req="yes" + with_readdisplay=$with_readdisplay_req + ;; + + *) + echo "" + echo "error: argument to --with-readdisplay must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_readdisplay" = yes; then ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then @@ -10113,54 +9856,142 @@ fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - #include -int -main () -{ -XRRScreenResources *res = - XRRGetScreenResources (0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_randr_12=yes -else - ac_cv_randr_12=no + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/readdisplay.h" "ac_cv_header_X11_extensions_readdisplay_h" "#include +" +if test "x$ac_cv_header_X11_extensions_readdisplay_h" = xyes; then : + $as_echo "#define HAVE_READ_DISPLAY_EXTENSION 1" >>confdefs.h + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$ac_save_CPPFLAGS" +elif test "$with_readdisplay" != no; then + echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" + exit 1 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_randr_12" >&5 -$as_echo "$ac_cv_randr_12" >&6; } - if test "$ac_cv_randr_12" = yes ; then - $as_echo "#define HAVE_RANDR_12 1" >>confdefs.h - fi -# AC_CHECK_X_LIB(c, XRRGetOutputInfo, [AC_DEFINE(HAVE_RANDR_12)], -# [true], $SAVER_LIBS) +############################################################################### +# +# Check for the XSHM server extension. +# +############################################################################### + +have_xshm=no +with_xshm_req=unspecified + +# Check whether --with-xshm-ext was given. +if test "${with_xshm_ext+set}" = set; then : + withval=$with_xshm_ext; with_xshm="$withval"; with_xshm_req="$withval" +else + with_xshm=yes +fi + + case "$with_xshm" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSHM headers" >&5 +$as_echo_n "checking for XSHM headers... " >&6; } + d=$with_xshm/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSHM libs" >&5 +$as_echo_n "checking for XSHM libs... " >&6; } + d=$with_xshm/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_xshm_req="yes" + with_xshm=$with_xshm_req + ;; + + *) + echo "" + echo "error: argument to --with-xshm-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_xshm" = yes; then + + # first check for Xshm.h. + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/XShm.h" "ac_cv_header_X11_extensions_XShm_h" "#include +" +if test "x$ac_cv_header_X11_extensions_XShm_h" = xyes; then : + have_xshm=yes +fi + CPPFLAGS="$ac_save_CPPFLAGS" -elif test "$with_randr" != no; then - echo "error: must be yes or no: --with-randr-ext=$with_randr" - exit 1 + # if that succeeded, then check for sys/ipc.h. + if test "$have_xshm" = yes; then + have_xshm=no + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "sys/ipc.h" "ac_cv_header_sys_ipc_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_ipc_h" = xyes; then : + have_xshm=yes fi + CPPFLAGS="$ac_save_CPPFLAGS" + fi -############################################################################### -# -# Check for XF86MiscSetGrabKeysState (but only bother if we are already -# using other XF86 stuff.) -# -############################################################################### + # if that succeeded, then check for sys/shm.h. + if test "$have_xshm" = yes; then + have_xshm=no + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_shm_h" = xyes; then : + have_xshm=yes +fi -have_xf86miscsetgrabkeysstate=no -if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then + CPPFLAGS="$ac_save_CPPFLAGS" + fi + + # AIX is pathological, as usual: apparently it's normal for the Xshm headers + # to exist, but the library code to not exist. And even better, the library + # code is in its own library: libXextSam.a. So, if we're on AIX, and that + # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and + # that's not quite right, but close enough.) + # + case "$host" in + *-aix*) + if `uname -v` -eq 3 ; then + have_xshm=no ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -10180,13 +10011,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XF86MiscSetGrabKeysState in -lXxf86misc" >&5 -$as_echo_n "checking for XF86MiscSetGrabKeysState in -lXxf86misc... " >&6; } -if ${ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmQueryExtension in -lXextSam" >&5 +$as_echo_n "checking for XShmQueryExtension in -lXextSam... " >&6; } +if ${ac_cv_lib_XextSam_XShmQueryExtension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lXxf86misc -lXext -lX11 $LIBS" +LIBS="-lXextSam -lX11 -lXext -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10196,28 +10027,28 @@ #ifdef __cplusplus extern "C" #endif -char XF86MiscSetGrabKeysState (); +char XShmQueryExtension (); int main () { -return XF86MiscSetGrabKeysState (); +return XShmQueryExtension (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=yes + ac_cv_lib_XextSam_XShmQueryExtension=yes else - ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=no + ac_cv_lib_XextSam_XShmQueryExtension=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&5 -$as_echo "$ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&6; } -if test "x$ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" = xyes; then : - have_xf86miscsetgrabkeysstate=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XextSam_XShmQueryExtension" >&5 +$as_echo "$ac_cv_lib_XextSam_XShmQueryExtension" >&6; } +if test "x$ac_cv_lib_XextSam_XShmQueryExtension" = xyes; then : + have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam" else true fi @@ -10226,13 +10057,104 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - if test "$have_xf86miscsetgrabkeysstate" = yes ; then - SAVER_LIBS="$SAVER_LIBS -lXxf86misc" - $as_echo "#define HAVE_XF86MISCSETGRABKEYSSTATE 1" >>confdefs.h + fi + ;; + esac + + # if that succeeded, then we've really got it. + if test "$have_xshm" = yes; then + $as_echo "#define HAVE_XSHM_EXTENSION 1" >>confdefs.h + + fi + +elif test "$with_xshm" != no; then + echo "error: must be yes or no: --with-xshm-ext=$with_xshm" + exit 1 +fi + +############################################################################### +# +# Check for the DOUBLE-BUFFER server extension. +# +############################################################################### + +have_xdbe=no +with_xdbe_req=unspecified + +# Check whether --with-xdbe-ext was given. +if test "${with_xdbe_ext+set}" = set; then : + withval=$with_xdbe_ext; with_xdbe="$withval"; with_xdbe_req="$withval" +else + with_xdbe=yes +fi + + case "$with_xdbe" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DOUBLE-BUFFER headers" >&5 +$as_echo_n "checking for DOUBLE-BUFFER headers... " >&6; } + d=$with_xdbe/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DOUBLE-BUFFER libs" >&5 +$as_echo_n "checking for DOUBLE-BUFFER libs... " >&6; } + d=$with_xdbe/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_xdbe_req="yes" + with_xdbe=$with_xdbe_req + ;; + + *) + echo "" + echo "error: argument to --with-xdbe-ext must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_xdbe" = yes; then + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xdbe.h" "ac_cv_header_X11_extensions_Xdbe_h" "#include +" +if test "x$ac_cv_header_X11_extensions_Xdbe_h" = xyes; then : + have_xdbe=yes fi + CPPFLAGS="$ac_save_CPPFLAGS" + if test "$have_xdbe" = yes; then + $as_echo "#define HAVE_DOUBLE_BUFFER_EXTENSION 1" >>confdefs.h + + fi + +elif test "$with_xdbe" != no; then + echo "error: must be yes or no: --with-xdbe-ext=$with_xshm" + exit 1 +fi ############################################################################### # @@ -10269,7 +10191,6 @@ CPPFLAGS="$ac_save_CPPFLAGS" - ############################################################################### # # Check for /proc/interrupts. @@ -10286,7 +10207,6 @@ with_proc_interrupts=yes fi - if test "$with_proc_interrupts" = yes; then # Note that we may be building in an environment (e.g. Debian buildd chroot) @@ -10322,7 +10242,6 @@ exit 1 fi - ############################################################################### # # Check for /proc/*/oom_score_adj. @@ -10339,7 +10258,6 @@ with_proc_oom=yes fi - if test "$with_proc_oom_req" = yes; then # Note that we may be building in an environment (e.g. Debian buildd chroot) @@ -10348,45 +10266,264 @@ have_proc_oom=yes $as_echo "#define HAVE_PROC_OOM 1" >>confdefs.h +elif test "$with_proc_oom_req" = unspecified; then + + have_proc_oom=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /proc/$$/oom_score_adj exists" >&5 +$as_echo_n "checking whether /proc/$$/oom_score_adj exists... " >&6; } +if ${ac_cv_have_proc_oom+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_have_proc_oom=no + if test -f /proc/$$/oom_score_adj; then + ac_cv_have_proc_oom=yes + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_proc_oom" >&5 +$as_echo "$ac_cv_have_proc_oom" >&6; } + have_proc_oom=$ac_cv_have_proc_oom + + if test "$have_proc_oom" = yes; then + $as_echo "#define HAVE_PROC_OOM 1" >>confdefs.h + + fi + +elif test "$with_proc_oom" != no; then + echo "error: must be yes or no: --with-proc-oom=$with_proc_oom" + exit 1 +fi + +############################################################################### +# +# Check for -lsystemd +# +############################################################################### + +have_systemd=no +with_systemd_req=unspecified +systemd_halfassed=no +systemd_too_old=no + +# Check whether --with-systemd was given. +if test "${with_systemd+set}" = set; then : + withval=$with_systemd; with_systemd="$withval"; with_systemd_req="$withval" +else + with_systemd=yes +fi + + case "$with_systemd" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd headers" >&5 +$as_echo_n "checking for systemd headers... " >&6; } + d=$with_systemd/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd libs" >&5 +$as_echo_n "checking for systemd libs... " >&6; } + d=$with_systemd/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_systemd_req="yes" + with_systemd=$with_systemd_req + ;; + + *) + echo "" + echo "error: argument to --with-systemd must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_systemd" != yes -a "$with_systemd" != no ; then + echo "error: must be yes or no: --with-systemd=$with_systemd" + exit 1 +fi + +if test "$with_systemd" = yes; then + + pkgs='' + ok="yes" + pkg_check_version libsystemd 221 + have_systemd="$ok" + + if test "$have_systemd" = no; then + if $pkg_config --exists libsystemd ; then + systemd_too_old=yes + fi + fi + + if test "$have_systemd" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd includes" >&5 +$as_echo_n "checking for libsystemd includes... " >&6; } +if ${ac_cv_systemd_config_cflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_systemd_config_cflags=`$pkg_config --cflags $pkgs` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_systemd_config_cflags" >&5 +$as_echo "$ac_cv_systemd_config_cflags" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd libs" >&5 +$as_echo_n "checking for libsystemd libs... " >&6; } +if ${ac_cv_systemd_config_libs+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_systemd_config_libs=`$pkg_config --libs $pkgs` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_systemd_config_libs" >&5 +$as_echo "$ac_cv_systemd_config_libs" >&6; } + fi + + ac_systemd_config_cflags=$ac_cv_systemd_config_cflags + ac_systemd_config_libs=$ac_cv_systemd_config_libs + + if test "$have_systemd" = yes; then + # + # we appear to have libsystemd; check for headers/libs to be sure. + # + ac_save_systemd_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_systemd_config_cflags" + + have_systemd=no + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "systemd/sd-bus.h" "ac_cv_header_systemd_sd_bus_h" "$ac_includes_default" +if test "x$ac_cv_header_systemd_sd_bus_h" = xyes; then : + have_systemd=yes +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + + CPPFLAGS="$ac_save_systemd_CPPFLAGS" + fi + + if test "$have_systemd" = yes; then + # we have the headers, now check for the libraries + have_systemd=no + systemd_halfassed=yes + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for libsystemd usability..." >&5 +$as_echo "checking for libsystemd usability..." >&6; } + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" -elif test "$with_proc_oom_req" = unspecified; then + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - have_proc_oom=no - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether /proc/$$/oom_score_adj exists" >&5 -$as_echo_n "checking whether /proc/$$/oom_score_adj exists... " >&6; } -if ${ac_cv_have_proc_oom+:} false; then : + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sd_bus_open_system in -lc" >&5 +$as_echo_n "checking for sd_bus_open_system in -lc... " >&6; } +if ${ac_cv_lib_c_sd_bus_open_system+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_have_proc_oom=no - if test -f /proc/$$/oom_score_adj; then - ac_cv_have_proc_oom=yes - fi + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $ac_systemd_config_libs -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sd_bus_open_system (); +int +main () +{ +return sd_bus_open_system (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_sd_bus_open_system=yes +else + ac_cv_lib_c_sd_bus_open_system=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sd_bus_open_system" >&5 +$as_echo "$ac_cv_lib_c_sd_bus_open_system" >&6; } +if test "x$ac_cv_lib_c_sd_bus_open_system" = xyes; then : + have_systemd=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_proc_oom" >&5 -$as_echo "$ac_cv_have_proc_oom" >&6; } - have_proc_oom=$ac_cv_have_proc_oom - if test "$have_proc_oom" = yes; then - $as_echo "#define HAVE_PROC_OOM 1" >>confdefs.h + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" fi -elif test "$with_proc_oom" != no; then - echo "error: must be yes or no: --with-proc-oom=$with_proc_oom" - exit 1 + if test "$have_systemd" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for libsystemd usability... no" >&5 +$as_echo "checking for libsystemd usability... no" >&6; } + fi fi +if test "$have_systemd" = yes; then + INCLUDES="$INCLUDES $ac_systemd_config_cflags" + EXES_SYSTEMD='$(EXES_SYSTEMD)' + $as_echo "#define HAVE_LIBSYSTEMD 1" >>confdefs.h + +else + EXES_SYSTEMD='' +fi ############################################################################### # # The --enable-locking option # +# Note: "configure --help" list all "--enable" options before any +# "--with" options, so we document the --enable options inline with +# the --with options where it looks better, instead of in AC_ARG_ENABLE +# where it would make sense, sigh... +# ############################################################################### # Check whether --enable-locking was given. if test "${enable_locking+set}" = set; then : - enableval=$enable_locking; enable_locking="$enableval" + enableval=$enable_locking; # This is documented elsewhere because of --enable/--with option sorting. + enable_locking="$enableval" else if test "$ac_macosx" = yes; then # We can't lock on MacOS X, so default to not compiling in support for it. @@ -10408,15 +10545,16 @@ exit 1 fi - -############################################################################### +############################################################################## # # Whether to allow root password to unblank. # ############################################################################### + # Check whether --enable-root-passwd was given. if test "${enable_root_passwd+set}" = set; then : - enableval=$enable_root_passwd; enable_root_passwd="$enableval" + enableval=$enable_root_passwd; # This is documented elsewhere because of --enable/--with option sorting. + enable_root_passwd="$enableval" else enable_root_passwd=yes fi @@ -10448,10 +10586,11 @@ ;; esac +#### H1 + have_pam=no with_pam_req=unspecified - # Check whether --with-pam was given. if test "${with_pam+set}" = set; then : withval=$with_pam; with_pam="$withval"; with_pam_req="$withval" @@ -10459,8 +10598,6 @@ with_pam=$with_pam_default fi - - # Check whether --with-pam_service_name was given. if test "${with_pam_service_name+set}" = set; then : withval=$with_pam_service_name; pam_service_name="$withval" @@ -10468,10 +10605,10 @@ pam_service_name="xscreensaver" fi - # Check whether --enable-pam-check-account-type was given. if test "${enable_pam_check_account_type+set}" = set; then : - enableval=$enable_pam_check_account_type; enable_pam_check_account_type="$enableval" + enableval=$enable_pam_check_account_type; # This is documented elsewhere because of --enable/--with option sorting. + enable_pam_check_account_type="$enableval" else enable_pam_check_account_type=no fi @@ -10485,7 +10622,6 @@ exit 1 fi - case "$with_pam" in yes) ;; no) ;; @@ -10529,7 +10665,6 @@ ;; esac - if test "$enable_locking" = yes -a "$with_pam" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PAM" >&5 $as_echo_n "checking for PAM... " >&6; } @@ -10572,7 +10707,6 @@ #define PAM_SERVICE_NAME "$pam_service_name" _ACEOF - PASSWD_LIBS="${PASSWD_LIBS} -lpam" # libpam typically requires dlopen and dlsym. On FreeBSD, @@ -10617,7 +10751,6 @@ PASSWD_LIBS="${PASSWD_LIBS} -ldl" fi - # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt. have_timedwait=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigtimedwait in -lc" >&5 @@ -10817,7 +10950,6 @@ LDFLAGS=$ac_save_LDFLAGS fi - if test "$ac_pam_fail_delay" = yes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -10831,7 +10963,6 @@ fi fi - ############################################################################### # # Check for Kerberos. @@ -10842,7 +10973,6 @@ have_kerberos5=no with_kerberos_req=unspecified - # Check whether --with-kerberos was given. if test "${with_kerberos+set}" = set; then : withval=$with_kerberos; with_kerberos="$withval"; with_kerberos_req="$withval" @@ -10850,8 +10980,6 @@ with_kerberos=yes fi - - case "$with_kerberos" in yes) ;; no) ;; @@ -10895,7 +11023,6 @@ ;; esac - if test "$enable_locking" = yes -a "$with_kerberos" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Kerberos 4" >&5 $as_echo_n "checking for Kerberos 4... " >&6; } @@ -11131,7 +11258,6 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - elif test "$have_kerberos" = yes ; then # from Tim Showalter for FreeBSD 4.2 PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err" @@ -11191,7 +11317,6 @@ fi fi - ############################################################################### # # Check for the nine billion variants of shadow passwords... @@ -11203,7 +11328,6 @@ have_shadow=no with_shadow_req=unspecified - # Check whether --with-shadow was given. if test "${with_shadow+set}" = set; then : withval=$with_shadow; with_shadow="$withval"; with_shadow_req="$withval" @@ -11211,8 +11335,6 @@ with_shadow=yes fi - - case "$with_shadow" in yes) ;; no) ;; @@ -11256,13 +11378,11 @@ ;; esac - if test "$enable_locking" = no ; then with_shadow_req=no with_shadow=no fi - ############################################################################### # # Check for Sun "adjunct" passwords. @@ -11316,7 +11436,6 @@ fi fi - ############################################################################### # # Check for DEC and SCO so-called "enhanced" security. @@ -11555,7 +11674,6 @@ fi fi - ############################################################################### # # Check for FreeBSD-style shadow passwords. @@ -11587,7 +11705,6 @@ fi fi - ############################################################################### # # Check for traditional (ha!) shadow passwords. @@ -11724,7 +11841,6 @@ fi fi - ############################################################################### # # Check for other libraries needed for non-shadow passwords. @@ -11819,7 +11935,6 @@ fi fi - # Most of the above shadow mechanisms will have set need_setuid to yes, # if they were found. But, on some systems, we need setuid even when # using plain old vanilla passwords. @@ -11832,7 +11947,6 @@ esac fi - if test "$have_shadow_adjunct" = yes ; then $as_echo "#define HAVE_ADJUNCT_PASSWD 1" >>confdefs.h @@ -11847,7 +11961,6 @@ fi - ############################################################################### # # Check for external password helper @@ -11864,7 +11977,6 @@ have_passwd_helper=no with_passwd_helper_req=unspecified - # Check whether --with-passwd-helper was given. if test "${with_passwd_helper+set}" = set; then : withval=$with_passwd_helper; with_passwd_helper="$withval"; with_passwd_helper_req="$withval" @@ -11892,212 +12004,189 @@ exit 1 esac - ############################################################################### # -# Check for a login manager for a "New Login" button on the lock dialog. -# Usually this will be "/usr/bin/gdmflexiserver". +# Check for -lgtk (and Gnome stuff) # ############################################################################### -with_login_manager_req=unspecified -default_login_manager_1='gdmflexiserver -ls' -default_login_manager_2='kdmctl reserve' -default_login_manager_3='lxdm -c USER_SWITCH' -default_login_manager_4='dm-tool switch-to-greeter' +#### H1 +have_gtk=no +with_gtk_req=unspecified -# Check whether --with-login-manager was given. -if test "${with_login_manager+set}" = set; then : - withval=$with_login_manager; with_login_manager="$withval"; with_login_manager_req="$withval" +# Check whether --with-gtk was given. +if test "${with_gtk+set}" = set; then : + withval=$with_gtk; with_gtk="$withval"; with_gtk_req="$withval" else - with_login_manager=yes + with_gtk=yes fi -# no HANDLE_X_PATH_ARG for this one +# if --with-gtk=/directory/ was specified, remember that directory so that +# we can also look for the `gtk-config' program in that directory. +case "$with_gtk" in + /*) + gtk_dir="$with_gtk" + ;; + *) + gtk_dir="" + ;; +esac -if test "$enable_locking" = no ; then - with_login_manager_req=no - with_login_manager=no -fi + case "$with_gtk" in + yes) ;; + no) ;; -case "$with_login_manager_req" in - no) - with_login_manager="" - ;; + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk headers" >&5 +$as_echo_n "checking for Gtk headers... " >&6; } + d=$with_gtk/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi - yes|unspecified) - # Try various defaults, use the first one that exists. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk libs" >&5 +$as_echo_n "checking for Gtk libs... " >&6; } + d=$with_gtk/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi - with_login_manager="" + # replace the directory string with "yes". + with_gtk_req="yes" + with_gtk=$with_gtk_req + ;; - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_1 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - # Extract the first word of "$login_manager_tmp", so it can be a program name with args. -set dummy $login_manager_tmp; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_login_manager_tmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $login_manager_tmp in - [\\/]* | ?:[\\/]*) - ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + *) + echo "" + echo "error: argument to --with-gtk must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac - ;; -esac -fi -login_manager_tmp=$ac_cv_path_login_manager_tmp -if test -n "$login_manager_tmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 -$as_echo "$login_manager_tmp" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if test "$with_gtk" != yes -a "$with_gtk" != no ; then + echo "error: must be yes or no: --with-gtk=$with_gtk" + exit 1 fi +parse_gtk_version_string() { + # M4 sucks!! - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_1" - fi - fi + maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'` + min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'` - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_2 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - # Extract the first word of "$login_manager_tmp", so it can be a program name with args. -set dummy $login_manager_tmp; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_login_manager_tmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $login_manager_tmp in - [\\/]* | ?:[\\/]*) - ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + ac_gtk_version=`echo "$maj * 1000 + $min" | bc` + if test -z "$ac_gtk_version"; then + ac_gtk_version=unknown + ac_gtk_version_string=unknown fi -done - done -IFS=$as_save_IFS +} + +jurassic_gtk=no +gtk_halfassed=no - ;; -esac -fi -login_manager_tmp=$ac_cv_path_login_manager_tmp -if test -n "$login_manager_tmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 -$as_echo "$login_manager_tmp" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +if test "$with_gtk" = yes; then + have_gtk=no + ok="yes" + pkg_check_version gtk+-2.0 2.22.0 ; ac_gtk_version_string="$vers" + pkg_check_version gmodule-2.0 2.0.0 + pkg_check_version libxml-2.0 2.4.6 + pkg_check_version gdk-pixbuf-2.0 2.0.0 + pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 + have_gtk="$ok" - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_2" - fi + if test "$have_gtk" = no; then + if test -n "$ac_gtk_version_string" ; then + gtk_halfassed="$ac_gtk_version_string" + gtk_halfassed_lib="$req" fi + fi - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_3 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - # Extract the first word of "$login_manager_tmp", so it can be a program name with args. -set dummy $login_manager_tmp; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_login_manager_tmp+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $login_manager_tmp in - [\\/]* | ?:[\\/]*) - ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + if test "$have_gtk" = yes; then + parse_gtk_version_string + jurassic_gtk=no fi -done - done -IFS=$as_save_IFS - ;; -esac + if test "$have_gtk" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk includes" >&5 +$as_echo_n "checking for Gtk includes... " >&6; } +if ${ac_cv_gtk_config_cflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs` fi -login_manager_tmp=$ac_cv_path_login_manager_tmp -if test -n "$login_manager_tmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 -$as_echo "$login_manager_tmp" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gtk_config_cflags" >&5 +$as_echo "$ac_cv_gtk_config_cflags" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk libs" >&5 +$as_echo_n "checking for Gtk libs... " >&6; } +if ${ac_cv_gtk_config_libs+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs` fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gtk_config_libs" >&5 +$as_echo "$ac_cv_gtk_config_libs" >&6; } + fi + ac_gtk_config_cflags=$ac_cv_gtk_config_cflags + ac_gtk_config_libs=$ac_cv_gtk_config_libs - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_3" - fi - fi + GTK_EXTRA_OBJS="" + GTK_DATADIR="" + if test "$have_gtk" = yes; then + GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + GTK_DATADIR="$GTK_DATADIR/share" + fi - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_4 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - # Extract the first word of "$login_manager_tmp", so it can be a program name with args. -set dummy $login_manager_tmp; ac_word=$2 + if test "$have_gtk" = yes; then + INCLUDES="$INCLUDES $ac_gtk_config_cflags" + GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs" + $as_echo "#define HAVE_GTK 1" >>confdefs.h + + $as_echo "#define HAVE_GTK2 1" >>confdefs.h + + $as_echo "#define HAVE_XML 1" >>confdefs.h + + fi +fi + +# Check for the various Gnome help and URL loading programs. +# +WITH_BROWSER=gnome-open +if test "$have_gtk" = yes; then + for ac_prog in gnome-open +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_login_manager_tmp+:} false; then : +if ${ac_cv_prog_gnome_open_program+:} false; then : $as_echo_n "(cached) " >&6 else - case $login_manager_tmp in - [\\/]* | ?:[\\/]*) - ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + if test -n "$gnome_open_program"; then + ac_cv_prog_gnome_open_program="$gnome_open_program" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_gnome_open_program="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -12105,65 +12194,40 @@ done IFS=$as_save_IFS - ;; -esac fi -login_manager_tmp=$ac_cv_path_login_manager_tmp -if test -n "$login_manager_tmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 -$as_echo "$login_manager_tmp" >&6; } +fi +gnome_open_program=$ac_cv_prog_gnome_open_program +if test -n "$gnome_open_program"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome_open_program" >&5 +$as_echo "$gnome_open_program" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + test -n "$gnome_open_program" && break +done - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_4" - fi - fi - - ;; - - /*) - # absolute path specified on cmd line - set dummy $with_login_manager_req ; login_manager_tmp=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $login_manager_tmp" >&5 -$as_echo_n "checking for $login_manager_tmp... " >&6; } - if test -x "$login_manager_tmp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - with_login_manager="" - fi - ;; - - *) - # relative path specified on cmd line - set dummy $with_login_manager_req ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - # Extract the first word of "$login_manager_tmp", so it can be a program name with args. -set dummy $login_manager_tmp; ac_word=$2 + for ac_prog in gnome-url-show +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_login_manager_tmp+:} false; then : +if ${ac_cv_prog_gnome_url_show_program+:} false; then : $as_echo_n "(cached) " >&6 else - case $login_manager_tmp in - [\\/]* | ?:[\\/]*) - ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + if test -n "$gnome_url_show_program"; then + ac_cv_prog_gnome_url_show_program="$gnome_url_show_program" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + ac_cv_prog_gnome_url_show_program="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -12171,81 +12235,46 @@ done IFS=$as_save_IFS - ;; -esac fi -login_manager_tmp=$ac_cv_path_login_manager_tmp -if test -n "$login_manager_tmp"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 -$as_echo "$login_manager_tmp" >&6; } +fi +gnome_url_show_program=$ac_cv_prog_gnome_url_show_program +if test -n "$gnome_url_show_program"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome_url_show_program" >&5 +$as_echo "$gnome_url_show_program" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + test -n "$gnome_url_show_program" && break +done - if test -z "$login_manager_tmp" ; then - with_login_manager="" - else - with_login_manager="$login_manager_tmp" - fi - ;; -esac -ac_cv_login_manager_program="$with_login_manager" - -NEW_LOGIN_COMMAND_P='' -NEW_LOGIN_COMMAND="$ac_cv_login_manager_program" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for login manager" >&5 -$as_echo_n "checking for login manager... " >&6; } -if test -z "$NEW_LOGIN_COMMAND" ; then - NEW_LOGIN_COMMAND="$default_login_manager_1" - NEW_LOGIN_COMMAND_P='! ' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NEW_LOGIN_COMMAND (disabled)" >&5 -$as_echo "$NEW_LOGIN_COMMAND (disabled)" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NEW_LOGIN_COMMAND" >&5 -$as_echo "$NEW_LOGIN_COMMAND" >&6; } fi - -############################################################################### -# -# Check for -lgtk (and Gnome stuff) -# +############################################################################### +# +# Check for -lXm. +# ############################################################################### -have_gtk=no -with_gtk_req=unspecified - -# Check whether --with-gtk was given. -if test "${with_gtk+set}" = set; then : - withval=$with_gtk; with_gtk="$withval"; with_gtk_req="$withval" -else - with_gtk=yes -fi - - -# if --with-gtk=/directory/ was specified, remember that directory so that -# we can also look for the `gtk-config' program in that directory. -case "$with_gtk" in - /*) - gtk_dir="$with_gtk" - ;; - *) - gtk_dir="" - ;; -esac - +have_motif=no +with_motif_req=unspecified - case "$with_gtk" in +# Check whether --with-motif was given. +if test "${with_motif+set}" = set; then : + withval=$with_motif; with_motif="$withval"; with_motif_req="$withval" +else + with_motif=no +fi + + case "$with_motif" in yes) ;; no) ;; /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk headers" >&5 -$as_echo_n "checking for Gtk headers... " >&6; } - d=$with_gtk/include + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Motif headers" >&5 +$as_echo_n "checking for Motif headers... " >&6; } + d=$with_motif/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -12255,9 +12284,9 @@ $as_echo "not found ($d: no such directory)" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk libs" >&5 -$as_echo_n "checking for Gtk libs... " >&6; } - d=$with_gtk/lib + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Motif libs" >&5 +$as_echo_n "checking for Motif libs... " >&6; } + d=$with_motif/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -12268,242 +12297,440 @@ fi # replace the directory string with "yes". - with_gtk_req="yes" - with_gtk=$with_gtk_req + with_motif_req="yes" + with_motif=$with_motif_req ;; *) echo "" - echo "error: argument to --with-gtk must be \"yes\", \"no\", or a directory." + echo "error: argument to --with-motif must be \"yes\", \"no\", or a directory." echo " If it is a directory, then \`DIR/include' will be added to" echo " the -I list, and \`DIR/lib' will be added to the -L list." exit 1 ;; esac - -if test "$with_gtk" != yes -a "$with_gtk" != no ; then - echo "error: must be yes or no: --with-gtk=$with_gtk" +if test "$with_motif" != yes -a "$with_motif" != no ; then + echo "error: must be yes or no: --with-motif=$with_motif" exit 1 fi +if test "$with_motif" = yes; then + have_motif=no -parse_gtk_version_string() { - # M4 sucks!! + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "Xm/Xm.h" "ac_cv_header_Xm_Xm_h" "#include + #include + #include +" +if test "x$ac_cv_header_Xm_Xm_h" = xyes; then : + have_motif=yes + $as_echo "#define HAVE_MOTIF 1" >>confdefs.h - maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'` - min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'` + MOTIF_LIBS="$MOTIF_LIBS -lXm" +fi - ac_gtk_version=`echo "$maj * 1000 + $min" | bc` - if test -z "$ac_gtk_version"; then - ac_gtk_version=unknown - ac_gtk_version_string=unknown + CPPFLAGS="$ac_save_CPPFLAGS" +fi + +if test "$have_motif" = yes; then + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "Xm/ComboBox.h" "ac_cv_header_Xm_ComboBox_h" "#include + #include + #include +" +if test "x$ac_cv_header_Xm_ComboBox_h" = xyes; then : + $as_echo "#define HAVE_XMCOMBOBOX 1" >>confdefs.h + +fi + + CPPFLAGS="$ac_save_CPPFLAGS" +fi + +############################################################################### +# +# Checking whether Motif is really Lesstif. +# +############################################################################### + +have_lesstif=no +if test "$have_motif" = yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Motif is really LessTif" >&5 +$as_echo_n "checking whether Motif is really LessTif... " >&6; } +if ${ac_cv_have_lesstif+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +long vers = LesstifVersion; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_have_lesstif=yes +else + ac_cv_have_lesstif=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$ac_save_CPPFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lesstif" >&5 +$as_echo "$ac_cv_have_lesstif" >&6; } + have_lesstif=$ac_cv_have_lesstif +fi + +lesstif_version=unknown +lesstif_version_string=unknown + +if test "$have_lesstif" = yes ; then + ltv=unknown + echo unknown > conftest-lt + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LessTif version number" >&5 +$as_echo_n "checking LessTif version number... " >&6; } +if ${ac_cv_lesstif_version_string+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + if test "$cross_compiling" = yes; then : + ac_cv_lesstif_version=unknown + ac_cv_lesstif_version_string=unknown +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + int main() { + FILE *f = fopen("conftest-lt", "w"); + if (!f) exit(1); + fprintf(f, "%d %d.%d\n", LesstifVersion, + LESSTIF_VERSION, LESSTIF_REVISION); + fclose(f); + exit(0); + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ltv=`cat conftest-lt` + ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'` + ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'` +else + ac_cv_lesstif_version=unknown + ac_cv_lesstif_version_string=unknown +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CPPFLAGS="$ac_save_CPPFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lesstif_version_string" >&5 +$as_echo "$ac_cv_lesstif_version_string" >&6; } + rm -rf conftest-lt + lesstif_version=$ac_cv_lesstif_version + lesstif_version_string=$ac_cv_lesstif_version_string + +fi + +if test "$have_motif" = yes ; then + mtv=unknown + echo unknown > conftest-mt + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Motif version number" >&5 +$as_echo_n "checking Motif version number... " >&6; } +if ${ac_cv_motif_version_string+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + if test "$cross_compiling" = yes; then : + ac_cv_motif_version=unknown + ac_cv_motif_version_string=unknown +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + int main() { + FILE *f = fopen("conftest-mt", "w"); + if (!f) exit(1); + fprintf(f, "%d %d.%d\n", XmVersion, + XmVERSION, XmREVISION); + fclose(f); + exit(0); + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + mtv=`cat conftest-mt` + ac_cv_motif_version=`echo $mtv | sed 's/ .*//'` + ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'` +else + ac_cv_motif_version=unknown + ac_cv_motif_version_string=unknown +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CPPFLAGS="$ac_save_CPPFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_motif_version_string" >&5 +$as_echo "$ac_cv_motif_version_string" >&6; } + rm -rf conftest-mt + motif_version=$ac_cv_motif_version + motif_version_string=$ac_cv_motif_version_string + +fi + +############################################################################### +# +# Checking whether Motif requires -lXp. +# +# Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing +# Extension". Why this extension isn't in -lXext with all the others, +# I have no idea. +# +############################################################################### + +have_xp_ext=no +if test "$have_motif" = yes ; then + have_xp_ext=no + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" fi -} + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" -# Find pkg-config... (need this for both gtk and gdk_pixbuf.) -# if the user specified --with-gtk=/foo/ then look there. -# -gtk_path="$PATH" -if test ! -z "$gtk_dir"; then - # canonicalize slashes. - foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` - gtk_path="$foo:$gtk_path" -fi + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" -for ac_prog in pkg-config -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_pkg_config+:} false; then : + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpQueryExtension in -lXp" >&5 +$as_echo_n "checking for XpQueryExtension in -lXp... " >&6; } +if ${ac_cv_lib_Xp_XpQueryExtension+:} false; then : $as_echo_n "(cached) " >&6 else - case $pkg_config in - [\\/]* | ?:[\\/]*) - ac_cv_path_pkg_config="$pkg_config" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $gtk_path -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_pkg_config="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXp -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ;; -esac +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XpQueryExtension (); +int +main () +{ +return XpQueryExtension (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xp_XpQueryExtension=yes +else + ac_cv_lib_Xp_XpQueryExtension=no fi -pkg_config=$ac_cv_path_pkg_config -if test -n "$pkg_config"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkg_config" >&5 -$as_echo "$pkg_config" >&6; } +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xp_XpQueryExtension" >&5 +$as_echo "$ac_cv_lib_Xp_XpQueryExtension" >&6; } +if test "x$ac_cv_lib_Xp_XpQueryExtension" = xyes; then : + have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + true fi + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" - test -n "$pkg_config" && break -done - - -if test -z "$pkg_config" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config not found!" >&5 -$as_echo "$as_me: WARNING: pkg-config not found!" >&2;} - pkg_config="false" fi - -# Utility function for running pkg-config-based tests... +############################################################################### # -pkgs='' -pkg_check_version() { - if test "$ok" = yes ; then - req="$1" - min="$2" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $req" >&5 -$as_echo_n "checking for $req... " >&6; } - if $pkg_config --exists "$req" ; then - vers=`$pkg_config --modversion "$req"` - if $pkg_config --exists "$req >= $min" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vers" >&5 -$as_echo "$vers" >&6; } - pkgs="$pkgs $req" - return 1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vers (wanted >= $min)" >&5 -$as_echo "$vers (wanted >= $min)" >&6; } - ok=no - return 0 - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ok=no - return 0 - fi - fi -} - - -jurassic_gtk=no -gtk_halfassed=no -have_gtk_2_22_or_higher=no -COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="" -COMMENT_DEMO_GLADE2_GTK_2_22_TAIL="" +# Checking whether Motif requires -lXintl (for _Xsetlocale.) +# +############################################################################### -if test "$with_gtk" = yes; then - have_gtk=no +have_xintl=no +if test "$have_motif" = yes ; then - ok="yes" - pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers" - pkg_check_version gmodule-2.0 2.0.0 - pkg_check_version libxml-2.0 2.4.6 - pkg_check_version libglade-2.0 1.99.0 - pkg_check_version gdk-pixbuf-2.0 2.0.0 - pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 - have_gtk="$ok" + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" - if test "$have_gtk" = no; then - if test -n "$ac_gtk_version_string" ; then - gtk_halfassed="$ac_gtk_version_string" - gtk_halfassed_lib="$req" - fi + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" - if test "$have_gtk" = yes; then - parse_gtk_version_string - jurassic_gtk=no + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - if test "$have_gtk" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk includes" >&5 -$as_echo_n "checking for Gtk includes... " >&6; } -if ${ac_cv_gtk_config_cflags+:} false; then : + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _Xsetlocale in -lXintl" >&5 +$as_echo_n "checking for _Xsetlocale in -lXintl... " >&6; } +if ${ac_cv_lib_Xintl__Xsetlocale+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs` + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXintl -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _Xsetlocale (); +int +main () +{ +return _Xsetlocale (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xintl__Xsetlocale=yes +else + ac_cv_lib_Xintl__Xsetlocale=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gtk_config_cflags" >&5 -$as_echo "$ac_cv_gtk_config_cflags" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gtk libs" >&5 -$as_echo_n "checking for Gtk libs... " >&6; } -if ${ac_cv_gtk_config_libs+:} false; then : - $as_echo_n "(cached) " >&6 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xintl__Xsetlocale" >&5 +$as_echo "$ac_cv_lib_Xintl__Xsetlocale" >&6; } +if test "x$ac_cv_lib_Xintl__Xsetlocale" = xyes; then : + have_xintl=yes else - ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs` + have_xintl=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gtk_config_libs" >&5 -$as_echo "$ac_cv_gtk_config_libs" >&6; } - fi - ac_gtk_config_cflags=$ac_cv_gtk_config_cflags - ac_gtk_config_libs=$ac_cv_gtk_config_libs + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" - GTK_EXTRA_OBJS="" - GTK_DATADIR="" - if test "$have_gtk" = yes; then - GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` - GTK_DATADIR="$GTK_DATADIR/share" + if test "$have_xintl" = yes; then + MOTIF_LIBS="$MOTIF_LIBS -lXintl" fi +fi - if test "$have_gtk" = yes; then - INCLUDES="$INCLUDES $ac_gtk_config_cflags" - GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs" - $as_echo "#define HAVE_GTK 1" >>confdefs.h +############################################################################### +# +# Check for a login manager for a "New Login" button on the lock dialog. +# Usually this will be "/usr/bin/gdmflexiserver". +# +############################################################################### - $as_echo "#define HAVE_GTK2 1" >>confdefs.h +with_login_manager_req=unspecified +default_login_manager_1='gdmflexiserver -ls' +default_login_manager_2='kdmctl reserve' +default_login_manager_3='lxdm -c USER_SWITCH' +default_login_manager_4='dm-tool switch-to-greeter' - $as_echo "#define HAVE_XML 1" >>confdefs.h +# Check whether --with-login-manager was given. +if test "${with_login_manager+set}" = set; then : + withval=$with_login_manager; with_login_manager="$withval"; with_login_manager_req="$withval" +else + with_login_manager=yes +fi + +# no HANDLE_X_PATH_ARG for this one + +if test "$enable_locking" = no ; then + with_login_manager_req=no + with_login_manager=no +fi - fi +case "$with_login_manager_req" in + no) + with_login_manager="" + ;; - if test "$have_gtk" = yes; then - ok="yes" - pkg_check_version gtk+-2.0 2.22 - have_gtk_2_22_or_higher="$ok" - if test "$have_gtk_2_22_or_higher" = yes; then - COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="" - fi - fi -fi + yes|unspecified) + # Try various defaults, use the first one that exists. + with_login_manager="" -# Check for the various Gnome help and URL loading programs. -# -WITH_BROWSER=gnome-open -if test "$have_gtk" = yes; then - for ac_prog in gnome-open -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_1 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_gnome_open_program+:} false; then : +if ${ac_cv_path_login_manager_tmp+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$gnome_open_program"; then - ac_cv_prog_gnome_open_program="$gnome_open_program" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_gnome_open_program="$ac_prog" + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -12511,41 +12738,46 @@ done IFS=$as_save_IFS + ;; +esac fi -fi -gnome_open_program=$ac_cv_prog_gnome_open_program -if test -n "$gnome_open_program"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome_open_program" >&5 -$as_echo "$gnome_open_program" >&6; } +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_1" + fi + fi - test -n "$gnome_open_program" && break -done - - for ac_prog in gnome-url-show -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_2 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_gnome_url_show_program+:} false; then : +if ${ac_cv_path_login_manager_tmp+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$gnome_url_show_program"; then - ac_cv_prog_gnome_url_show_program="$gnome_url_show_program" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_gnome_url_show_program="$ac_prog" + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -12553,455 +12785,397 @@ done IFS=$as_save_IFS + ;; +esac fi -fi -gnome_url_show_program=$ac_cv_prog_gnome_url_show_program -if test -n "$gnome_url_show_program"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome_url_show_program" >&5 -$as_echo "$gnome_url_show_program" >&6; } +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_2" + fi + fi - test -n "$gnome_url_show_program" && break -done - -fi - - -############################################################################### -# -# Check for -lXm. -# -############################################################################### - -have_motif=no -with_motif_req=unspecified - -# Check whether --with-motif was given. -if test "${with_motif+set}" = set; then : - withval=$with_motif; with_motif="$withval"; with_motif_req="$withval" + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_3 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_login_manager_tmp+:} false; then : + $as_echo_n "(cached) " >&6 else - with_motif=no -fi - - - - case "$with_motif" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Motif headers" >&5 -$as_echo_n "checking for Motif headers... " >&6; } - d=$with_motif/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Motif libs" >&5 -$as_echo_n "checking for Motif libs... " >&6; } - d=$with_motif/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_motif_req="yes" - with_motif=$with_motif_req - ;; - - *) - echo "" - echo "error: argument to --with-motif must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - - -if test "$with_motif" != yes -a "$with_motif" != no ; then - echo "error: must be yes or no: --with-motif=$with_motif" - exit 1 -fi - -if test "$with_motif" = yes; then - have_motif=no - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "Xm/Xm.h" "ac_cv_header_Xm_Xm_h" "#include - #include - #include -" -if test "x$ac_cv_header_Xm_Xm_h" = xyes; then : - have_motif=yes - $as_echo "#define HAVE_MOTIF 1" >>confdefs.h +done + done +IFS=$as_save_IFS - MOTIF_LIBS="$MOTIF_LIBS -lXm" + ;; +esac fi - - - CPPFLAGS="$ac_save_CPPFLAGS" +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_3" + fi + fi -if test "$have_motif" = yes; then - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_4 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_login_manager_tmp+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "Xm/ComboBox.h" "ac_cv_header_Xm_ComboBox_h" "#include - #include - #include -" -if test "x$ac_cv_header_Xm_ComboBox_h" = xyes; then : - $as_echo "#define HAVE_XMCOMBOBOX 1" >>confdefs.h +done + done +IFS=$as_save_IFS + ;; +esac fi - - - CPPFLAGS="$ac_save_CPPFLAGS" +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_4" + fi + fi -############################################################################### -# -# Checking whether Motif is really Lesstif. -# -############################################################################### + ;; -have_lesstif=no -if test "$have_motif" = yes ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Motif is really LessTif" >&5 -$as_echo_n "checking whether Motif is really LessTif... " >&6; } -if ${ac_cv_have_lesstif+:} false; then : + /*) + # absolute path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $login_manager_tmp" >&5 +$as_echo_n "checking for $login_manager_tmp... " >&6; } + if test -x "$login_manager_tmp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + with_login_manager="" + fi + ;; + + *) + # relative path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + # Extract the first word of "$login_manager_tmp", so it can be a program name with args. +set dummy $login_manager_tmp; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_login_manager_tmp+:} false; then : $as_echo_n "(cached) " >&6 else - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" + case $login_manager_tmp in + [\\/]* | ?:[\\/]*) + ac_cv_path_login_manager_tmp="$login_manager_tmp" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -long vers = LesstifVersion; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_have_lesstif=yes -else - ac_cv_have_lesstif=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CPPFLAGS="$ac_save_CPPFLAGS" +done + done +IFS=$as_save_IFS + + ;; +esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lesstif" >&5 -$as_echo "$ac_cv_have_lesstif" >&6; } - have_lesstif=$ac_cv_have_lesstif +login_manager_tmp=$ac_cv_path_login_manager_tmp +if test -n "$login_manager_tmp"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $login_manager_tmp" >&5 +$as_echo "$login_manager_tmp" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test -z "$login_manager_tmp" ; then + with_login_manager="" + else + with_login_manager="$login_manager_tmp" + fi + ;; +esac +ac_cv_login_manager_program="$with_login_manager" -lesstif_version=unknown -lesstif_version_string=unknown - -if test "$have_lesstif" = yes ; then - ltv=unknown - echo unknown > conftest-lt - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LessTif version number" >&5 -$as_echo_n "checking LessTif version number... " >&6; } -if ${ac_cv_lesstif_version_string+:} false; then : - $as_echo_n "(cached) " >&6 -else +NEW_LOGIN_COMMAND_P='' +NEW_LOGIN_COMMAND="$ac_cv_login_manager_program" - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - if test "$cross_compiling" = yes; then : - ac_cv_lesstif_version=unknown - ac_cv_lesstif_version_string=unknown -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - int main() { - FILE *f = fopen("conftest-lt", "w"); - if (!f) exit(1); - fprintf(f, "%d %d.%d\n", LesstifVersion, - LESSTIF_VERSION, LESSTIF_REVISION); - fclose(f); - exit(0); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ltv=`cat conftest-lt` - ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'` - ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for login manager" >&5 +$as_echo_n "checking for login manager... " >&6; } +if test -z "$NEW_LOGIN_COMMAND" ; then + NEW_LOGIN_COMMAND="$default_login_manager_1" + NEW_LOGIN_COMMAND_P='! ' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NEW_LOGIN_COMMAND (disabled)" >&5 +$as_echo "$NEW_LOGIN_COMMAND (disabled)" >&6; } else - ac_cv_lesstif_version=unknown - ac_cv_lesstif_version_string=unknown -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - CPPFLAGS="$ac_save_CPPFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lesstif_version_string" >&5 -$as_echo "$ac_cv_lesstif_version_string" >&6; } - rm -rf conftest-lt - lesstif_version=$ac_cv_lesstif_version - lesstif_version_string=$ac_cv_lesstif_version_string - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NEW_LOGIN_COMMAND" >&5 +$as_echo "$NEW_LOGIN_COMMAND" >&6; } fi +############################################################################### +# +# Check for a directory full of images to use as the default value +# of the "imageDirectory" preference. +# +############################################################################### -if test "$have_motif" = yes ; then - mtv=unknown - echo unknown > conftest-mt - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Motif version number" >&5 -$as_echo_n "checking Motif version number... " >&6; } -if ${ac_cv_motif_version_string+:} false; then : - $as_echo_n "(cached) " >&6 -else +have_imagedir=no +with_imagedir_req=unspecified - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - if test "$cross_compiling" = yes; then : - ac_cv_motif_version=unknown - ac_cv_motif_version_string=unknown -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - int main() { - FILE *f = fopen("conftest-mt", "w"); - if (!f) exit(1); - fprintf(f, "%d %d.%d\n", XmVersion, - XmVERSION, XmREVISION); - fclose(f); - exit(0); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - mtv=`cat conftest-mt` - ac_cv_motif_version=`echo $mtv | sed 's/ .*//'` - ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'` +# Check whether --with-image-directory was given. +if test "${with_image_directory+set}" = set; then : + withval=$with_image_directory; with_imagedir="$withval"; with_imagedir_req="$withval" else - ac_cv_motif_version=unknown - ac_cv_motif_version_string=unknown -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + with_imagedir=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_motif_version_string" >&5 -$as_echo "$ac_cv_motif_version_string" >&6; } - rm -rf conftest-mt - motif_version=$ac_cv_motif_version - motif_version_string=$ac_cv_motif_version_string +# no HANDLE_X_PATH_ARG for this one + +case "$with_imagedir" in + /*) + # absolute path + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for image directory $with_imagedir" >&5 +$as_echo_n "checking for image directory $with_imagedir... " >&6; } + if test -d "$with_imagedir" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + with_imagedir="" + fi + ;; + yes) + with_imagedir="" + + #### Could use some more defaults here... + for dd in \ + "/usr/share/rpd-wallpaper" \ + "/usr/share/backgrounds/images/" \ + "/usr/share/wallpapers/" \ + "/Library/Desktop Pictures/" \ + ; do + if test -z "$with_imagedir"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for image directory $dd" >&5 +$as_echo_n "checking for image directory $dd... " >&6; } + if test -d "$dd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_imagedir="$dd" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + fi + done -fi + ;; + no) + with_imagedir="" + ;; + + *) + echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req" + exit 1 + ;; +esac +ac_cv_imagedir="$with_imagedir" + +DEFAULT_IMAGES_P='True' +DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir" +if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then + DEFAULT_IMAGES_P='False' +fi ############################################################################### # -# Checking whether Motif requires -lXp. -# -# Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing -# Extension". Why this extension isn't in -lXext with all the others, -# I have no idea. +# Pick a text file to use as the default of the "textFile" preference. +# Any old file will do, but preferably one that will make interesting +# shapes when displayed by "starwars" and "fontglide". # ############################################################################### -have_xp_ext=no -if test "$have_motif" = yes ; then - have_xp_ext=no - - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" +have_textfile=no +with_textfile_req=unspecified - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" +# Check whether --with-text-file was given. +if test "${with_text_file+set}" = set; then : + withval=$with_text_file; with_textfile="$withval"; with_textfile_req="$withval" +else + with_textfile=yes +fi - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" +# no HANDLE_X_PATH_ARG for this one - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpQueryExtension in -lXp" >&5 -$as_echo_n "checking for XpQueryExtension in -lXp... " >&6; } -if ${ac_cv_lib_Xp_XpQueryExtension+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXp -lX11 -lXext -lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +case "$with_textfile" in + /*) + # absolute path + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for text file $with_textfile" >&5 +$as_echo_n "checking for text file $with_textfile... " >&6; } + if test -f "$with_textfile" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + with_textfile="" + fi + ;; + yes) + with_textfile="" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XpQueryExtension (); -int -main () -{ -return XpQueryExtension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xp_XpQueryExtension=yes -else - ac_cv_lib_Xp_XpQueryExtension=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xp_XpQueryExtension" >&5 -$as_echo "$ac_cv_lib_Xp_XpQueryExtension" >&6; } -if test "x$ac_cv_lib_Xp_XpQueryExtension" = xyes; then : - have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp" -else - true -fi + #### Could use some more defaults here... + for f in \ + "/usr/X11R6/lib/X11/doc/README" \ + "/usr/share/doc/xserver-common/copyright" \ + "/usr/share/doc/xserver-xorg-core/copyright" \ + "/usr/X11R6/README" \ + "/usr/share/doc/libX11*/COPYING" \ + "/usr/X11/share/X11/doc/README*" \ + "/usr/share/doc/debian/debian-manifesto" \ + ; do + if test -z "$with_textfile"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for text file $f" >&5 +$as_echo_n "checking for text file $f... " >&6; } + f=`/bin/ls $f 2>&- | head -1` + if test -f "$f" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_textfile="$f" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + fi + done - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" + ;; + no) + with_textfile="" + ;; -fi + *) + echo "error: must be an absolute path: --with-text-file=$with_textfile_req" + exit 1 + ;; +esac +ac_cv_textfile="$with_textfile" +DEFAULT_TEXT_FILE="$ac_cv_textfile" ############################################################################### # -# Checking whether Motif requires -lXintl (for _Xsetlocale.) +# Check the browser to see help URL # ############################################################################### -have_xintl=no -if test "$have_motif" = yes ; then - - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" - - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _Xsetlocale in -lXintl" >&5 -$as_echo_n "checking for _Xsetlocale in -lXintl... " >&6; } -if ${ac_cv_lib_Xintl__Xsetlocale+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXintl -lX11 -lXext -lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +have_browser=no +with_browser_req=unspecified -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char _Xsetlocale (); -int -main () -{ -return _Xsetlocale (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xintl__Xsetlocale=yes -else - ac_cv_lib_Xintl__Xsetlocale=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xintl__Xsetlocale" >&5 -$as_echo "$ac_cv_lib_Xintl__Xsetlocale" >&6; } -if test "x$ac_cv_lib_Xintl__Xsetlocale" = xyes; then : - have_xintl=yes +# Check whether --with-browser was given. +if test "${with_browser+set}" = set; then : + withval=$with_browser; with_browser="$withval"; with_browser_req="$withval" else - have_xintl=no -fi - - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" - - if test "$have_xintl" = yes; then - MOTIF_LIBS="$MOTIF_LIBS -lXintl" - fi + with_browser=no fi +# no HANDLE_X_PATH_ARG for this one + +case "$with_browser" in + no ) + ;; + * ) + WITH_BROWSER=$with_browser + gnome_open_program=$with_browser + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for browser $with_browser" >&5 +$as_echo_n "checking for browser $with_browser... " >&6; } + with_browser_fullpath=`which $with_browser 2>/dev/null` + case $with_browser_fullpath in + /* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_browser=yes + ;; + * ) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +# Only warning: we don't want to install all packages for the +# dependency of the browser in building stage... + echo "WARNING: browser not found: --with-browser=$with_browser" + ;; + esac + ;; +esac +ac_cv_browser="$with_browser" ############################################################################### # @@ -13009,10 +13183,13 @@ # ############################################################################### +#### H1 + have_gl=no ac_have_mesa_gl=no with_gl_req=unspecified gl_halfassed=no +have_glext=no # Check whether --with-gl was given. if test "${with_gl+set}" = set; then : @@ -13021,8 +13198,6 @@ with_gl=yes fi - - case "$with_gl" in yes) ;; no) ;; @@ -13066,7 +13241,6 @@ ;; esac - ac_mesagl_version=unknown ac_mesagl_version_string=unknown @@ -13085,7 +13259,6 @@ have_gl=no fi - CPPFLAGS="$ac_save_CPPFLAGS" if test "$have_gl" = yes ; then @@ -13103,7 +13276,6 @@ have_gl=no fi - CPPFLAGS="$ac_save_CPPFLAGS" fi @@ -13187,7 +13359,6 @@ fi - # Some versions of MesaGL are compiled to require -lpthread. # So if the Mesa headers exist, and -lpthread exists, then always # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.) @@ -13238,7 +13409,6 @@ fi - # If we have Mesa headers, check to see if we can link against -lMesaGL. # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL. # Else, warn that GL is busted. (We have the headers, but no libs.) @@ -13394,7 +13564,6 @@ fi fi - # Now that we know we have GL headers and libs, do some more GL testing. # @@ -13410,7 +13579,7 @@ $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext < #ifndef MESA_MAJOR_VERSION @@ -13455,7 +13624,6 @@ mglv=`echo "$mglv" | sed -n \ 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'` - rm -rf conftest.$ac_ext CPPFLAGS="$ac_save_CPPFLAGS" @@ -13486,7 +13654,6 @@ ac_mesagl_version_string=$ac_cv_mesagl_version_string fi - # Check for OpenGL 1.1 features. # @@ -13557,6 +13724,94 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" + # Check for OpenGL GLSL features. + # + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_compile "$LINENO" "GL/glext.h" "ac_cv_header_GL_glext_h" "#include +" +if test "x$ac_cv_header_GL_glext_h" = xyes; then : + have_glext=yes +else + have_glext=no +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + if test "$have_glext" = yes ; then + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + as_ac_Lib=`$as_echo "ac_cv_lib_$gl_lib_1''_glUseProgram" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glUseProgram in -l$gl_lib_1" >&5 +$as_echo_n "checking for glUseProgram in -l$gl_lib_1... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char glUseProgram (); +int +main () +{ +return glUseProgram (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + $as_echo "#define HAVE_GLSL 1" >>confdefs.h + +else + true +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi fi elif test "$with_gl" != no; then @@ -13564,7 +13819,6 @@ exit 1 fi - ############################################################################### # # Check for -lgle. @@ -13582,8 +13836,6 @@ with_gle=yes fi - - case "$with_gle" in yes) ;; no) ;; @@ -13627,14 +13879,12 @@ ;; esac - GLE_LIBS="" if test "$have_gl" = no ; then true elif test "$with_gle" = yes; then - ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" @@ -13649,7 +13899,6 @@ have_gle3=no fi - CPPFLAGS="$ac_save_CPPFLAGS" if test "$have_gle3" = yes ; then have_gle=yes; @@ -13669,7 +13918,6 @@ have_gle=no fi - CPPFLAGS="$ac_save_CPPFLAGS" if test "$have_gle" = yes ; then @@ -13687,7 +13935,6 @@ have_gle=no fi - CPPFLAGS="$ac_save_CPPFLAGS" fi fi @@ -13924,7 +14171,6 @@ fi - ############################################################################### # # Handle --with-gles @@ -13940,8 +14186,6 @@ with_gles=no fi - - case "$with_gles" in yes) ;; no) ;; @@ -13985,17 +14229,172 @@ ;; esac +if test "$with_gles" = yes; then + have_gles=yes + $as_echo "#define HAVE_JWZGLES 1" >>confdefs.h + + JWZGLES_OBJS='$(JWXYZ_BIN)/jwzgles.o' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: using OpenGL ES compatiblity shim" >&5 +$as_echo "using OpenGL ES compatiblity shim" >&6; } +elif test "$with_gles" != no; then + echo "error: must be yes or no: --with-gles=$with_gles" + exit 1 +fi + +############################################################################### +# +# Check for -ljpeg +# +############################################################################### + +have_jpeg=no +with_jpeg_req=unspecified +jpeg_halfassed=no + +# Check whether --with-jpeg was given. +if test "${with_jpeg+set}" = set; then : + withval=$with_jpeg; with_jpeg="$withval"; with_jpeg_req="$withval" +else + with_jpeg=yes +fi + + case "$with_jpeg" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JPEG headers" >&5 +$as_echo_n "checking for JPEG headers... " >&6; } + d=$with_jpeg/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JPEG libs" >&5 +$as_echo_n "checking for JPEG libs... " >&6; } + d=$with_jpeg/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_jpeg_req="yes" + with_jpeg=$with_jpeg_req + ;; + + *) + echo "" + echo "error: argument to --with-jpeg must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then + echo "error: must be yes or no: --with-jpeg=$with_jpeg" + exit 1 +fi + +if test "$with_jpeg" = yes; then + + have_jpeg=no + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" +if test "x$ac_cv_header_jpeglib_h" = xyes; then : + have_jpeg=yes +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + + if test "$have_jpeg" = yes; then + # we have the header, now check for the library + have_jpeg=no + jpeg_halfassed=yes + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_start_compress in -ljpeg" >&5 +$as_echo_n "checking for jpeg_start_compress in -ljpeg... " >&6; } +if ${ac_cv_lib_jpeg_jpeg_start_compress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljpeg $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char jpeg_start_compress (); +int +main () +{ +return jpeg_start_compress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_jpeg_jpeg_start_compress=yes +else + ac_cv_lib_jpeg_jpeg_start_compress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5 +$as_echo "$ac_cv_lib_jpeg_jpeg_start_compress" >&6; } +if test "x$ac_cv_lib_jpeg_jpeg_start_compress" = xyes; then : + have_jpeg=yes + jpeg_halfassed=no + JPEG_LIBS="-ljpeg" + $as_echo "#define HAVE_JPEGLIB 1" >>confdefs.h + +fi -if test "$with_gles" = yes; then - have_gles=yes - $as_echo "#define HAVE_JWZGLES 1" >>confdefs.h + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" - JWZGLES_OBJS='$(JWXYZ_BIN)/jwzgles.o' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: using OpenGL ES compatiblity shim" >&5 -$as_echo "using OpenGL ES compatiblity shim" >&6; } -elif test "$with_gles" != no; then - echo "error: must be yes or no: --with-gles=$with_gles" - exit 1 + fi fi ############################################################################### @@ -14015,8 +14414,6 @@ with_png=yes fi - - case "$with_png" in yes) ;; no) ;; @@ -14060,7 +14457,6 @@ ;; esac - if test "$with_png" != yes -a "$with_png" != no ; then echo "error: must be yes or no: --with-png=$with_png" exit 1 @@ -14081,7 +14477,6 @@ have_png=yes fi - CPPFLAGS="$ac_save_CPPFLAGS" if test "$have_png" = yes; then @@ -14158,7 +14553,6 @@ fi fi - ############################################################################### # # Check for -lgdk_pixbuf. @@ -14179,7 +14573,6 @@ with_gdk_pixbuf=yes fi - # if --with-pixbuf=/directory/ was specified, remember that directory so that # we can also look for the `gdk-pixbuf-config' program in that directory. case "$with_gdk_pixbuf" in @@ -14191,7 +14584,6 @@ ;; esac - case "$with_gdk_pixbuf" in yes) ;; no) ;; @@ -14235,7 +14627,6 @@ ;; esac - if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf" exit 1 @@ -14269,92 +14660,306 @@ else ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs` fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gdk_pixbuf_config_libs" >&5 -$as_echo "$ac_cv_gdk_pixbuf_config_libs" >&6; } - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gdk_pixbuf_config_libs" >&5 +$as_echo "$ac_cv_gdk_pixbuf_config_libs" >&6; } + fi + + ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags + ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs + + if test "$have_gdk_pixbuf" = yes; then + # + # we appear to have pixbuf; check for headers/libs to be sure. + # + ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags" + + have_gdk_pixbuf=no + + # check for header A... + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "gdk-pixbuf/gdk-pixbuf.h" "ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" "$ac_includes_default" +if test "x$ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" = xyes; then : + have_gdk_pixbuf=yes +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + + # if that worked, check for header B... + if test "$have_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "gdk-pixbuf/gdk-pixbuf-xlib.h" "ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" "$ac_includes_default" +if test "x$ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" = xyes; then : + have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + + # yay, it has a new name in Gtk 2.x... + if test "$have_gdk_pixbuf" = no; then + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "gdk-pixbuf-xlib/gdk-pixbuf-xlib.h" "ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" "$ac_includes_default" +if test "x$ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" = xyes; then : + have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + fi + fi + CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS" + fi + + if test "$have_gdk_pixbuf" = yes; then + # we have the headers, now check for the libraries + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for gdk_pixbuf usability..." >&5 +$as_echo "checking for gdk_pixbuf usability..." >&6; } + + # library A... + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_pixbuf_new_from_file in -lc" >&5 +$as_echo_n "checking for gdk_pixbuf_new_from_file in -lc... " >&6; } +if ${ac_cv_lib_c_gdk_pixbuf_new_from_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gdk_pixbuf_new_from_file (); +int +main () +{ +return gdk_pixbuf_new_from_file (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_gdk_pixbuf_new_from_file=yes +else + ac_cv_lib_c_gdk_pixbuf_new_from_file=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_gdk_pixbuf_new_from_file" >&5 +$as_echo "$ac_cv_lib_c_gdk_pixbuf_new_from_file" >&6; } +if test "x$ac_cv_lib_c_gdk_pixbuf_new_from_file" = xyes; then : + have_gdk_pixbuf=yes +fi + + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + # library B... + if test "$have_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_pixbuf_xlib_init in -lc" >&5 +$as_echo_n "checking for gdk_pixbuf_xlib_init in -lc... " >&6; } +if ${ac_cv_lib_c_gdk_pixbuf_xlib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gdk_pixbuf_xlib_init (); +int +main () +{ +return gdk_pixbuf_xlib_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_gdk_pixbuf_xlib_init=yes +else + ac_cv_lib_c_gdk_pixbuf_xlib_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_gdk_pixbuf_xlib_init" >&5 +$as_echo "$ac_cv_lib_c_gdk_pixbuf_xlib_init" >&6; } +if test "x$ac_cv_lib_c_gdk_pixbuf_xlib_init" = xyes; then : + have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no +fi - ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags - ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + fi + fi if test "$have_gdk_pixbuf" = yes; then - # - # we appear to have pixbuf; check for headers/libs to be sure. - # - ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags" + INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags" + PNG_LIBS="$ac_gdk_pixbuf_config_libs" + $as_echo "#define HAVE_GDK_PIXBUF 1" >>confdefs.h - have_gdk_pixbuf=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for gdk_pixbuf usability... no" >&5 +$as_echo "checking for gdk_pixbuf usability... no" >&6; } + fi - # check for header A... + if test "$have_gdk_pixbuf" = yes; then ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi + # note: $X_CFLAGS includes $x_includes CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "gdk-pixbuf/gdk-pixbuf.h" "ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" "$ac_includes_default" -if test "x$ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" = xyes; then : - have_gdk_pixbuf=yes -fi - - - CPPFLAGS="$ac_save_CPPFLAGS" - - # if that worked, check for header B... - if test "$have_gdk_pixbuf" = yes; then - have_gdk_pixbuf=no - gdk_pixbuf_halfassed=yes - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "gdk-pixbuf/gdk-pixbuf-xlib.h" "ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" "$ac_includes_default" -if test "x$ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" = xyes; then : - have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_pixbuf_apply_embedded_orientation in -lc" >&5 +$as_echo_n "checking for gdk_pixbuf_apply_embedded_orientation in -lc... " >&6; } +if ${ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gdk_pixbuf_apply_embedded_orientation (); +int +main () +{ +return gdk_pixbuf_apply_embedded_orientation (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation=yes +else + ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation" >&5 +$as_echo "$ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation" >&6; } +if test "x$ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation" = xyes; then : + $as_echo "#define HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION 1" >>confdefs.h +fi CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" - # yay, it has a new name in Gtk 2.x... - if test "$have_gdk_pixbuf" = no; then - have_gdk_pixbuf=no - gdk_pixbuf_halfassed=yes - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "gdk-pixbuf-xlib/gdk-pixbuf-xlib.h" "ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" "$ac_includes_default" -if test "x$ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" = xyes; then : - have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no fi +############################################################################### +# +# Check for -lXft +# +############################################################################### - CPPFLAGS="$ac_save_CPPFLAGS" - fi - fi - CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS" - fi - - if test "$have_gdk_pixbuf" = yes; then - # we have the headers, now check for the libraries - have_gdk_pixbuf=no - gdk_pixbuf_halfassed=yes - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for gdk_pixbuf usability..." >&5 -$as_echo "checking for gdk_pixbuf usability..." >&6; } - - # library A... +have_xutf8drawstring=no ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -14374,13 +14979,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_pixbuf_new_from_file in -lc" >&5 -$as_echo_n "checking for gdk_pixbuf_new_from_file in -lc... " >&6; } -if ${ac_cv_lib_c_gdk_pixbuf_new_from_file+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xutf8DrawString in -lX11" >&5 +$as_echo_n "checking for Xutf8DrawString in -lX11... " >&6; } +if ${ac_cv_lib_X11_Xutf8DrawString+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS" +LIBS="-lX11 -lX11 -lXext -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14390,115 +14995,163 @@ #ifdef __cplusplus extern "C" #endif -char gdk_pixbuf_new_from_file (); +char Xutf8DrawString (); int main () { -return gdk_pixbuf_new_from_file (); +return Xutf8DrawString (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_gdk_pixbuf_new_from_file=yes + ac_cv_lib_X11_Xutf8DrawString=yes else - ac_cv_lib_c_gdk_pixbuf_new_from_file=no + ac_cv_lib_X11_Xutf8DrawString=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_gdk_pixbuf_new_from_file" >&5 -$as_echo "$ac_cv_lib_c_gdk_pixbuf_new_from_file" >&6; } -if test "x$ac_cv_lib_c_gdk_pixbuf_new_from_file" = xyes; then : - have_gdk_pixbuf=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_Xutf8DrawString" >&5 +$as_echo "$ac_cv_lib_X11_Xutf8DrawString" >&6; } +if test "x$ac_cv_lib_X11_Xutf8DrawString" = xyes; then : + have_xutf8drawstring=yes +else + true fi CPPFLAGS="$ac_save_CPPFLAGS" LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - # library B... - if test "$have_gdk_pixbuf" = yes; then - have_gdk_pixbuf=no +if test "$have_xutf8drawstring" = yes ; then + $as_echo "#define HAVE_XUTF8DRAWSTRING 1" >>confdefs.h + +fi + +have_xft=no +with_xft_req=unspecified +xft_halfassed=no + +# Check whether --with-xft was given. +if test "${with_xft+set}" = set; then : + withval=$with_xft; with_xft="$withval"; with_xft_req="$withval" +else + with_xft=yes +fi + + case "$with_xft" in + yes) ;; + no) ;; + + /*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft headers" >&5 +$as_echo_n "checking for Xft headers... " >&6; } + d=$with_xft/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft libs" >&5 +$as_echo_n "checking for Xft libs... " >&6; } + d=$with_xft/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 +$as_echo "$d" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 +$as_echo "not found ($d: no such directory)" >&6; } + fi + + # replace the directory string with "yes". + with_xft_req="yes" + with_xft=$with_xft_req + ;; + + *) + echo "" + echo "error: argument to --with-xft must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + +if test "$with_xft" != yes -a "$with_xft" != no ; then + echo "error: must be yes or no: --with-xft=$with_xft" + exit 1 +fi + +if test "$with_xft" = yes; then + + pkgs='' + ok="yes" + pkg_check_version xft 2.1.0 + have_xft="$ok" + + if test "$have_xft" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft includes" >&5 +$as_echo_n "checking for Xft includes... " >&6; } +if ${ac_cv_xft_config_cflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_xft_config_cflags=`$pkg_config --cflags $pkgs` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_xft_config_cflags" >&5 +$as_echo "$ac_cv_xft_config_cflags" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft libs" >&5 +$as_echo_n "checking for Xft libs... " >&6; } +if ${ac_cv_xft_config_libs+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_xft_config_libs=`$pkg_config --libs $pkgs` +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_xft_config_libs" >&5 +$as_echo "$ac_cv_xft_config_libs" >&6; } + fi + + ac_xft_config_cflags=$ac_cv_xft_config_cflags + ac_xft_config_libs=$ac_cv_xft_config_libs + + if test "$have_xft" = yes; then + # + # we appear to have Xft; check for headers/libs to be sure. + # + ac_save_xft_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_xft_config_cflags" + + have_xft=no ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" - if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi - # note: $X_CFLAGS includes $x_includes CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_pixbuf_xlib_init in -lc" >&5 -$as_echo_n "checking for gdk_pixbuf_xlib_init in -lc... " >&6; } -if ${ac_cv_lib_c_gdk_pixbuf_xlib_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdk_pixbuf_xlib_init (); -int -main () -{ -return gdk_pixbuf_xlib_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_gdk_pixbuf_xlib_init=yes -else - ac_cv_lib_c_gdk_pixbuf_xlib_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_gdk_pixbuf_xlib_init" >&5 -$as_echo "$ac_cv_lib_c_gdk_pixbuf_xlib_init" >&6; } -if test "x$ac_cv_lib_c_gdk_pixbuf_xlib_init" = xyes; then : - have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no + ac_fn_c_check_header_mongrel "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_Xft_Xft_h" = xyes; then : + have_xft=yes fi CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" - fi + CPPFLAGS="$ac_save_xft_CPPFLAGS" fi - if test "$have_gdk_pixbuf" = yes; then - INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags" - PNG_LIBS="$ac_gdk_pixbuf_config_libs" - $as_echo "#define HAVE_GDK_PIXBUF 1" >>confdefs.h - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for gdk_pixbuf usability... no" >&5 -$as_echo "checking for gdk_pixbuf usability... no" >&6; } - fi + if test "$have_xft" = yes; then + # we have the headers, now check for the libraries + have_xft=no + xft_halfassed=yes - if test "$have_gdk_pixbuf" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Xft usability..." >&5 +$as_echo "checking for Xft usability..." >&6; } ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -14518,13 +15171,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk_pixbuf_apply_embedded_orientation in -lc" >&5 -$as_echo_n "checking for gdk_pixbuf_apply_embedded_orientation in -lc... " >&6; } -if ${ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XftDrawStringUtf8 in -lc" >&5 +$as_echo_n "checking for XftDrawStringUtf8 in -lc... " >&6; } +if ${ac_cv_lib_c_XftDrawStringUtf8+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm $LIBS" +LIBS="-lc $ac_xft_config_libs -lX11 -lXext -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14534,29 +15187,28 @@ #ifdef __cplusplus extern "C" #endif -char gdk_pixbuf_apply_embedded_orientation (); +char XftDrawStringUtf8 (); int main () { -return gdk_pixbuf_apply_embedded_orientation (); +return XftDrawStringUtf8 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation=yes + ac_cv_lib_c_XftDrawStringUtf8=yes else - ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation=no + ac_cv_lib_c_XftDrawStringUtf8=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation" >&5 -$as_echo "$ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation" >&6; } -if test "x$ac_cv_lib_c_gdk_pixbuf_apply_embedded_orientation" = xyes; then : - $as_echo "#define HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION 1" >>confdefs.h - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_XftDrawStringUtf8" >&5 +$as_echo "$ac_cv_lib_c_XftDrawStringUtf8" >&6; } +if test "x$ac_cv_lib_c_XftDrawStringUtf8" = xyes; then : + have_xft=yes fi CPPFLAGS="$ac_save_CPPFLAGS" @@ -14564,99 +15216,89 @@ # LIBS="$ac_save_LIBS" fi -fi - -############################################################################### -# -# Check for -ljpeg -# -############################################################################### + if test "$have_xft" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Xft usability... no" >&5 +$as_echo "checking for Xft usability... no" >&6; } + fi +fi -have_jpeg=no -with_jpeg_req=unspecified -jpeg_halfassed=no +if test "$have_xft" = yes; then + INCLUDES="$INCLUDES $ac_xft_config_cflags" + XFT_LIBS="$ac_xft_config_libs" + XFT_SRCS='' + XFT_OBJS='' + $as_echo "#define HAVE_XFT 1" >>confdefs.h -# Check whether --with-jpeg was given. -if test "${with_jpeg+set}" = set; then : - withval=$with_jpeg; with_jpeg="$withval"; with_jpeg_req="$withval" else - with_jpeg=yes + XFT_LIBS='' + XFT_SRCS='$(UTILS_SRC)/xft.c' + XFT_OBJS='$(UTILS_BIN)/xft.o' fi +# Also check for the standard X11 bitmap fonts, since Debian likes to not +# install any of those by default. The unlock dialog requires them. +# +have_bitmap_fonts=no +ff='helvB14.pcf.gz helvB14-ISO8859-1.pcf.gz' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bitmap font files" >&5 +$as_echo_n "checking for bitmap font files... " >&6; } +for d in /usr/share/fonts/X11 \ + /usr/share/X11/fonts \ + /opt/X11/share/fonts \ +; do + for r in 100dpi 75dpi ; do + for f in $ff ; do + if test -f "$d/$r/$f" ; then + have_bitmap_fonts=yes + fi + done + done +done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_bitmap_fonts" >&5 +$as_echo "$have_bitmap_fonts" >&6; } - - case "$with_jpeg" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JPEG headers" >&5 -$as_echo_n "checking for JPEG headers... " >&6; } - d=$with_jpeg/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JPEG libs" >&5 -$as_echo_n "checking for JPEG libs... " >&6; } - d=$with_jpeg/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_jpeg_req="yes" - with_jpeg=$with_jpeg_req - ;; - - *) - echo "" - echo "error: argument to --with-jpeg must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - - -if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then - echo "error: must be yes or no: --with-jpeg=$with_jpeg" - exit 1 +# In case we didn't guess the font directory properly, check RPMs and DEBs too. +if test $have_bitmap_fonts != yes ; then + for r in 100dpi 75dpi ; do + for f in xfonts-$r \ + xorg-x11-fonts-$r \ + xorg-x11-fonts-ISO8859-1-$r \ + ; do + if test $have_bitmap_fonts != yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $f" >&5 +$as_echo_n "checking for $f... " >&6; } + if ( rpm -q "$f" 2>&- >&- ) || + ( dpkg -s "$f" 2>&- | grep -q '^Status:.*installed' ) ; then + have_bitmap_fonts=yes + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_bitmap_fonts" >&5 +$as_echo "$have_bitmap_fonts" >&6; } + fi + done + done fi -if test "$with_jpeg" = yes; then +############################################################################### +# +# Check for pty support: this allows 'phosphor' and 'apple2' +# to run curses-based programs, or be used as terminal windows. +# +############################################################################### - have_jpeg=no +PTY_LIBS= +for ac_header in pty.h util.h sys/termios.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" -if test "x$ac_cv_header_jpeglib_h" = xyes; then : - have_jpeg=yes fi - - CPPFLAGS="$ac_save_CPPFLAGS" - - if test "$have_jpeg" = yes; then - # we have the header, now check for the library - have_jpeg=no - jpeg_halfassed=yes +done ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -14676,13 +15318,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_start_compress in -ljpeg" >&5 -$as_echo_n "checking for jpeg_start_compress in -ljpeg... " >&6; } -if ${ac_cv_lib_jpeg_jpeg_start_compress+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 +$as_echo_n "checking for forkpty in -lutil... " >&6; } +if ${ac_cv_lib_util_forkpty+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-ljpeg $LIBS" +LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14692,31 +15334,30 @@ #ifdef __cplusplus extern "C" #endif -char jpeg_start_compress (); +char forkpty (); int main () { -return jpeg_start_compress (); +return forkpty (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_jpeg_jpeg_start_compress=yes + ac_cv_lib_util_forkpty=yes else - ac_cv_lib_jpeg_jpeg_start_compress=no + ac_cv_lib_util_forkpty=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5 -$as_echo "$ac_cv_lib_jpeg_jpeg_start_compress" >&6; } -if test "x$ac_cv_lib_jpeg_jpeg_start_compress" = xyes; then : - have_jpeg=yes - jpeg_halfassed=no - JPEG_LIBS="-ljpeg" - $as_echo "#define HAVE_JPEGLIB 1" >>confdefs.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 +$as_echo "$ac_cv_lib_util_forkpty" >&6; } +if test "x$ac_cv_lib_util_forkpty" = xyes; then : + PTY_LIBS="-lutil" + ac_have_forkpty=yes + $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h fi @@ -14724,17 +15365,8 @@ LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" - fi -fi - - -############################################################################### -# -# Check for -lXft -# -############################################################################### - -have_xutf8drawstring=no +if test "$ac_have_forkpty" != yes ; then + # we don't need (or have) -lutil on MacOS 10.4.2... ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" @@ -14754,13 +15386,13 @@ CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xutf8DrawString in -lX11" >&5 -$as_echo_n "checking for Xutf8DrawString in -lX11... " >&6; } -if ${ac_cv_lib_X11_Xutf8DrawString+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lc" >&5 +$as_echo_n "checking for forkpty in -lc... " >&6; } +if ${ac_cv_lib_c_forkpty+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lX11 -lX11 -lXext -lm $LIBS" +LIBS="-lc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14770,301 +15402,187 @@ #ifdef __cplusplus extern "C" #endif -char Xutf8DrawString (); +char forkpty (); int main () { -return Xutf8DrawString (); +return forkpty (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_X11_Xutf8DrawString=yes + ac_cv_lib_c_forkpty=yes else - ac_cv_lib_X11_Xutf8DrawString=no + ac_cv_lib_c_forkpty=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_Xutf8DrawString" >&5 -$as_echo "$ac_cv_lib_X11_Xutf8DrawString" >&6; } -if test "x$ac_cv_lib_X11_Xutf8DrawString" = xyes; then : - have_xutf8drawstring=yes -else - true +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_forkpty" >&5 +$as_echo "$ac_cv_lib_c_forkpty" >&6; } +if test "x$ac_cv_lib_c_forkpty" = xyes; then : + PTY_LIBS="" + $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h + fi CPPFLAGS="$ac_save_CPPFLAGS" LDFLAGS="$ac_save_LDFLAGS" # LIBS="$ac_save_LIBS" -if test "$have_xutf8drawstring" = yes ; then - $as_echo "#define HAVE_XUTF8DRAWSTRING 1" >>confdefs.h - -fi - - -have_xft=no -with_xft_req=unspecified -xft_halfassed=no - -# Check whether --with-xft was given. -if test "${with_xft+set}" = set; then : - withval=$with_xft; with_xft="$withval"; with_xft_req="$withval" -else - with_xft=yes -fi - - - - case "$with_xft" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft headers" >&5 -$as_echo_n "checking for Xft headers... " >&6; } - d=$with_xft/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft libs" >&5 -$as_echo_n "checking for Xft libs... " >&6; } - d=$with_xft/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_xft_req="yes" - with_xft=$with_xft_req - ;; - - *) - echo "" - echo "error: argument to --with-xft must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - - -if test "$with_xft" != yes -a "$with_xft" != no ; then - echo "error: must be yes or no: --with-xft=$with_xft" - exit 1 -fi - -if test "$with_xft" = yes; then - - pkgs='' - ok="yes" - pkg_check_version xft 2.1.0 - have_xft="$ok" - - if test "$have_xft" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft includes" >&5 -$as_echo_n "checking for Xft includes... " >&6; } -if ${ac_cv_xft_config_cflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_xft_config_cflags=`$pkg_config --cflags $pkgs` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_xft_config_cflags" >&5 -$as_echo "$ac_cv_xft_config_cflags" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xft libs" >&5 -$as_echo_n "checking for Xft libs... " >&6; } -if ${ac_cv_xft_config_libs+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_xft_config_libs=`$pkg_config --libs $pkgs` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_xft_config_libs" >&5 -$as_echo "$ac_cv_xft_config_libs" >&6; } - fi - - ac_xft_config_cflags=$ac_cv_xft_config_cflags - ac_xft_config_libs=$ac_cv_xft_config_libs - - if test "$have_xft" = yes; then - # - # we appear to have Xft; check for headers/libs to be sure. - # - ac_save_xft_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $ac_xft_config_cflags" - - have_xft=no - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "$ac_includes_default" -if test "x$ac_cv_header_X11_Xft_Xft_h" = xyes; then : - have_xft=yes fi +############################################################################### +# +# Query AX_PTHREAD, and figure out which compiler gets used. +# +############################################################################### - CPPFLAGS="$ac_save_CPPFLAGS" - - CPPFLAGS="$ac_save_xft_CPPFLAGS" - fi - - if test "$have_xft" = yes; then - # we have the headers, now check for the libraries - have_xft=no - xft_halfassed=yes - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Xft usability..." >&5 -$as_echo "checking for Xft usability..." >&6; } - - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" - - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" +have_pthread=no +with_pthread_req=unspecified - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XftDrawStringUtf8 in -lc" >&5 -$as_echo_n "checking for XftDrawStringUtf8 in -lc... " >&6; } -if ${ac_cv_lib_c_XftDrawStringUtf8+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $ac_xft_config_libs -lX11 -lXext -lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +# AX_PTHREAD is from the GNU Autoconf Archive. +# https://savannah.gnu.org/projects/autoconf-archive/ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also link it with them as well. e.g. you should link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threads programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# +# 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 3 of the License, 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, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XftDrawStringUtf8 (); -int -main () -{ -return XftDrawStringUtf8 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_XftDrawStringUtf8=yes -else - ac_cv_lib_c_XftDrawStringUtf8=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_XftDrawStringUtf8" >&5 -$as_echo "$ac_cv_lib_c_XftDrawStringUtf8" >&6; } -if test "x$ac_cv_lib_c_XftDrawStringUtf8" = xyes; then : - have_xft=yes -fi +#serial 21 - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" +# This is what autoupdate's m4 run will expand. It fires +# the warning (with _au_warn_XXX), outputs it into the +# updated configure.ac (with AC_DIAGNOSE), and then outputs +# the replacement expansion. - fi +# This is an auxiliary macro that is also run when +# autoupdate runs m4. It simply calls m4_warning, but +# we need a wrapper so that each warning is emitted only +# once. We break the quoting in m4_warning's argument in +# order to expand this macro's arguments, not AU_DEFUN's. - if test "$have_xft" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for Xft usability... no" >&5 -$as_echo "checking for Xft usability... no" >&6; } - fi -fi +# Finally, this is the expansion that is picked up by +# autoconf. It tells the user to run autoupdate, and +# then outputs the replacement expansion. We do not care +# about autoupdate's warning because that contains +# information on what to do *after* running autoupdate. -if test "$have_xft" = yes; then - INCLUDES="$INCLUDES $ac_xft_config_cflags" - XFT_LIBS="$ac_xft_config_libs" - XFT_SRCS='' - XFT_OBJS='' - $as_echo "#define HAVE_XFT 1" >>confdefs.h +# This affects CC, LIBS, and CFLAGS, instead of defining new variables. +# Check whether --with-pthread was given. +if test "${with_pthread+set}" = set; then : + withval=$with_pthread; with_pthread="$withval"; with_pthread_req="$withval" else - XFT_LIBS='' - XFT_SRCS='$(UTILS_SRC)/xft.c' - XFT_OBJS='$(UTILS_BIN)/xft.o' -fi - - -############################################################################### -# -# Check for pty support: this allows 'phosphor' and 'apple2' -# to run curses-based programs, or be used as terminal windows. -# -############################################################################### - -PTY_LIBS= -for ac_header in pty.h util.h sys/termios.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - + with_pthread=yes fi -done - +if test "$with_pthread" = yes; then + # AX_PTHREAD might want a different compiler. - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" +ax_pthread_ok=no - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 -$as_echo_n "checking for forkpty in -lutil... " >&6; } -if ${ac_cv_lib_util_forkpty+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lutil $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -15073,437 +15591,444 @@ #ifdef __cplusplus extern "C" #endif -char forkpty (); +char pthread_join (); int main () { -return forkpty (); +return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_util_forkpty=yes -else - ac_cv_lib_util_forkpty=no + ax_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 -$as_echo "$ac_cv_lib_util_forkpty" >&6; } -if test "x$ac_cv_lib_util_forkpty" = xyes; then : - PTY_LIBS="-lutil" - ac_have_forkpty=yes - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h -fi +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" -if test "$ac_have_forkpty" != yes ; then - # we don't need (or have) -lutil on MacOS 10.4.2... +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" +case ${host_os} in + solaris*) - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lc" >&5 -$as_echo_n "checking for forkpty in -lc... " >&6; } -if ${ac_cv_lib_c_forkpty+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lc $LIBS" + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5 +$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; } +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char forkpty (); +int foo(void); int main () { -return forkpty (); +foo() ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_c_forkpty=yes +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - ac_cv_lib_c_forkpty=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_forkpty" >&5 -$as_echo "$ac_cv_lib_c_forkpty" >&6; } -if test "x$ac_cv_lib_c_forkpty" = xyes; then : - PTY_LIBS="" - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h - + ax_pthread_extra_flags= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do -fi + case $flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; -############################################################################### -# -# Check for the XSHM server extension. -# -############################################################################### + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 +$as_echo_n "checking whether pthreads work with $flag... " >&6; } + PTHREAD_CFLAGS="$flag" + ;; -have_xshm=no -with_xshm_req=unspecified + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ax_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -# Check whether --with-xshm-ext was given. -if test "${with_xshm_ext+set}" = set; then : - withval=$with_xshm_ext; with_xshm="$withval"; with_xshm_req="$withval" + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +$as_echo "$ax_pthread_config" >&6; } else - with_xshm=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 +$as_echo_n "checking for the pthreads library -l$flag... " >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac - case "$with_xshm" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSHM headers" >&5 -$as_echo_n "checking for XSHM headers... " >&6; } - d=$with_xshm/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSHM libs" >&5 -$as_echo_n "checking for XSHM libs... " >&6; } - d=$with_xshm/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_xshm_req="yes" - with_xshm=$with_xshm_req - ;; - - *) - echo "" - echo "error: argument to --with-xshm-ext must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - - -if test "$with_xshm" = yes; then - - # first check for Xshm.h. + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/XShm.h" "ac_cv_header_X11_extensions_XShm_h" "#include -" -if test "x$ac_cv_header_X11_extensions_XShm_h" = xyes; then : - have_xshm=yes + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" - CPPFLAGS="$ac_save_CPPFLAGS" - - # if that succeeded, then check for sys/ipc.h. - if test "$have_xshm" = yes; then - have_xshm=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = xyes; then + break; + fi - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "sys/ipc.h" "ac_cv_header_sys_ipc_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_ipc_h" = xyes; then : - have_xshm=yes + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done fi +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - CPPFLAGS="$ac_save_CPPFLAGS" - fi - - # if that succeeded, then check for sys/shm.h. - if test "$have_xshm" = yes; then - have_xshm=no - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_mongrel "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_shm_h" = xyes; then : - have_xshm=yes + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + attr_name=$attr; break fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 +$as_echo "$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF - CPPFLAGS="$ac_save_CPPFLAGS" - fi - - # AIX is pathological, as usual: apparently it's normal for the Xshm headers - # to exist, but the library code to not exist. And even better, the library - # code is in its own library: libXextSam.a. So, if we're on AIX, and that - # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and - # that's not quite right, but close enough.) - # - case "$host" in - *-aix*) - if `uname -v` -eq 3 ; then - have_xshm=no - - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" - - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" + fi - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 +$as_echo_n "checking if more special flags are required for pthreads... " >&6; } + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5 +$as_echo "$flag" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmQueryExtension in -lXextSam" >&5 -$as_echo_n "checking for XShmQueryExtension in -lXextSam... " >&6; } -if ${ac_cv_lib_XextSam_XShmQueryExtension+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXextSam -lX11 -lXext -lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XShmQueryExtension (); + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include int main () { -return XShmQueryExtension (); +int i = PTHREAD_PRIO_INHERIT; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_XextSam_XShmQueryExtension=yes + ax_cv_PTHREAD_PRIO_INHERIT=yes else - ac_cv_lib_XextSam_XShmQueryExtension=no + ax_cv_PTHREAD_PRIO_INHERIT=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XextSam_XShmQueryExtension" >&5 -$as_echo "$ac_cv_lib_XextSam_XShmQueryExtension" >&6; } -if test "x$ac_cv_lib_XextSam_XShmQueryExtension" = xyes; then : - have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam" -else - true + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then : - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" +$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h - fi - ;; - esac +fi - # if that succeeded, then we've really got it. - if test "$have_xshm" = yes; then - $as_echo "#define HAVE_XSHM_EXTENSION 1" >>confdefs.h + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + if as_fn_executable_p ${CC}_r; then : + PTHREAD_CC="${CC}_r" +fi ;; #( + *) : + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done + done +IFS=$as_save_IFS -elif test "$with_xshm" != no; then - echo "error: must be yes or no: --with-xshm-ext=$with_xshm" - exit 1 fi - - -############################################################################### -# -# Check for the DOUBLE-BUFFER server extension. -# -############################################################################### - -have_xdbe=no -with_xdbe_req=unspecified - -# Check whether --with-xdbe-ext was given. -if test "${with_xdbe_ext+set}" = set; then : - withval=$with_xdbe_ext; with_xdbe="$withval"; with_xdbe_req="$withval" +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } else - with_xdbe=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - - - case "$with_xdbe" in - yes) ;; - no) ;; - - /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DOUBLE-BUFFER headers" >&5 -$as_echo_n "checking for DOUBLE-BUFFER headers... " >&6; } - d=$with_xdbe/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DOUBLE-BUFFER libs" >&5 -$as_echo_n "checking for DOUBLE-BUFFER libs... " >&6; } - d=$with_xdbe/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 -$as_echo "$d" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5 -$as_echo "not found ($d: no such directory)" >&6; } - fi - - # replace the directory string with "yes". - with_xdbe_req="yes" - with_xdbe=$with_xdbe_req - ;; - - *) - echo "" - echo "error: argument to --with-xdbe-ext must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + ;; +esac ;; #( + *) : ;; - esac - - -if test "$with_xdbe" = yes; then - - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xdbe.h" "ac_cv_header_X11_extensions_Xdbe_h" "#include -" -if test "x$ac_cv_header_X11_extensions_Xdbe_h" = xyes; then : - have_xdbe=yes +esac + ;; + esac + fi fi +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - CPPFLAGS="$ac_save_CPPFLAGS" - if test "$have_xdbe" = yes; then - $as_echo "#define HAVE_DOUBLE_BUFFER_EXTENSION 1" >>confdefs.h +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + if test "$CC" = "$PTHREAD_CC" -o -z "$ac_original_cc"; then + have_pthread=yes + else + ac_prog_cc_no_pthread=yes + fi - fi + : +else + ax_pthread_ok=no -elif test "$with_xdbe" != no; then - echo "error: must be yes or no: --with-xdbe-ext=$with_xshm" - exit 1 fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test "$have_pthread" = yes; then + $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h + + CC=$PTHREAD_CC + fi +fi ############################################################################### # -# Check for the SGI XReadDisplay server extension. -# -# Note: this has to be down here, rather than up with the other server -# extension tests, so that the output of `configure --help' is in the -# right order. Arrgh! +# Check for libcap, which allows "sonar" to work without setuid. # ############################################################################### -have_readdisplay=no -with_readdisplay_req=unspecified +have_libcap=no +setcap_hacks_default=yes +setcap_hacks="$setcap_hacks_default" +setcap_hacks_req=unspecified -# Check whether --with-readdisplay was given. -if test "${with_readdisplay+set}" = set; then : - withval=$with_readdisplay; with_readdisplay="$withval"; with_readdisplay_req="$withval" +# Check whether --with-setcap-hacks was given. +if test "${with_setcap_hacks+set}" = set; then : + withval=$with_setcap_hacks; setcap_hacks="$withval"; setcap_hacks_req="$withval" else - with_readdisplay=yes + setcap_hacks=yes fi - - - case "$with_readdisplay" in + case "$setcap_hacks" in yes) ;; no) ;; /*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XReadDisplay headers" >&5 -$as_echo_n "checking for XReadDisplay headers... " >&6; } - d=$with_readdisplay/include + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setcap hacks headers" >&5 +$as_echo_n "checking for setcap hacks headers... " >&6; } + d=$setcap_hacks/include if test -d $d; then X_CFLAGS="-I$d $X_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -15513,9 +16038,9 @@ $as_echo "not found ($d: no such directory)" >&6; } fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XReadDisplay libs" >&5 -$as_echo_n "checking for XReadDisplay libs... " >&6; } - d=$with_readdisplay/lib + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setcap hacks libs" >&5 +$as_echo_n "checking for setcap hacks libs... " >&6; } + d=$setcap_hacks/lib if test -d $d; then X_LIBS="-L$d $X_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5 @@ -15526,252 +16051,166 @@ fi # replace the directory string with "yes". - with_readdisplay_req="yes" - with_readdisplay=$with_readdisplay_req + setcap_hacks_req="yes" + setcap_hacks=$setcap_hacks_req ;; *) echo "" - echo "error: argument to --with-readdisplay must be \"yes\", \"no\", or a directory." + echo "error: argument to --with-setcap-hacks must be \"yes\", \"no\", or a directory." echo " If it is a directory, then \`DIR/include' will be added to" echo " the -I list, and \`DIR/lib' will be added to the -L list." exit 1 ;; esac +if test "$setcap_hacks" != yes -a "$setcap_hacks" != no ; then + echo "error: must be yes or no: --with-setcap-hacks=$setcap_hacks" + exit 1 +fi -if test "$with_readdisplay" = yes; then +if test "$setcap_hacks" = yes; then - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" + for ac_prog in setcap +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_setcap_program+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$setcap_program"; then + ac_cv_prog_setcap_program="$setcap_program" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_setcap_program="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - ac_fn_c_check_header_compile "$LINENO" "X11/extensions/readdisplay.h" "ac_cv_header_X11_extensions_readdisplay_h" "#include -" -if test "x$ac_cv_header_X11_extensions_readdisplay_h" = xyes; then : - $as_echo "#define HAVE_READ_DISPLAY_EXTENSION 1" >>confdefs.h +done + done +IFS=$as_save_IFS fi - - - CPPFLAGS="$ac_save_CPPFLAGS" -elif test "$with_readdisplay" != no; then - echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" - exit 1 fi - - -############################################################################### -# -# Check for a directory full of images to use as the default value -# of the "imageDirectory" preference. -# -############################################################################### - -have_imagedir=no -with_imagedir_req=unspecified - - -# Check whether --with-image-directory was given. -if test "${with_image_directory+set}" = set; then : - withval=$with_image_directory; with_imagedir="$withval"; with_imagedir_req="$withval" +setcap_program=$ac_cv_prog_setcap_program +if test -n "$setcap_program"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $setcap_program" >&5 +$as_echo "$setcap_program" >&6; } else - with_imagedir=yes -fi - -# no HANDLE_X_PATH_ARG for this one - -case "$with_imagedir" in - /*) - # absolute path - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for image directory $with_imagedir" >&5 -$as_echo_n "checking for image directory $with_imagedir... " >&6; } - if test -d "$with_imagedir" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - with_imagedir="" - fi - ;; - yes) - with_imagedir="" - - #### Could use some more defaults here... - for dd in \ - "/usr/share/backgrounds/images/" \ - "/usr/share/wallpapers/" \ - "/Library/Desktop Pictures/" \ - ; do - if test -z "$with_imagedir"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for image directory $dd" >&5 -$as_echo_n "checking for image directory $dd... " >&6; } - if test -d "$dd" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - with_imagedir="$dd" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - fi - fi - done - - ;; - no) - with_imagedir="" - ;; - - *) - echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req" - exit 1 - ;; -esac -ac_cv_imagedir="$with_imagedir" - -DEFAULT_IMAGES_P='True' -DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir" - -if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then - DEFAULT_IMAGES_P='False' fi + test -n "$setcap_program" && break +done -############################################################################### -# -# Pick a text file to use as the default of the "textFile" preference. -# Any old file will do, but preferably one that will make interesting -# shapes when displayed by "starwars" and "fontglide". -# -############################################################################### - -have_textfile=no -with_textfile_req=unspecified - + if test "$setcap_program" != ''; then -# Check whether --with-text-file was given. -if test "${with_text_file+set}" = set; then : - withval=$with_text_file; with_textfile="$withval"; with_textfile_req="$withval" -else - with_textfile=yes + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_capability_h" = xyes; then : + have_setcap=yes fi -# no HANDLE_X_PATH_ARG for this one - -case "$with_textfile" in - /*) - # absolute path - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for text file $with_textfile" >&5 -$as_echo_n "checking for text file $with_textfile... " >&6; } - if test -f "$with_textfile" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - with_textfile="" - fi - ;; - yes) - with_textfile="" - - #### Could use some more defaults here... - for f in \ - "/usr/X11R6/lib/X11/doc/README" \ - "/usr/share/doc/xserver-common/copyright" \ - "/usr/share/doc/xserver-xorg-core/copyright" \ - "/usr/X11R6/README" \ - "/usr/share/doc/libX11*/COPYING" \ - "/usr/X11/share/X11/doc/README*" \ - "/usr/share/doc/debian/debian-manifesto" \ - ; do - if test -z "$with_textfile"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for text file $f" >&5 -$as_echo_n "checking for text file $f... " >&6; } - f=`/bin/ls $f 2>&- | head -1` - if test -f "$f" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - with_textfile="$f" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - fi - done - - ;; - no) - with_textfile="" - ;; - - *) - echo "error: must be an absolute path: --with-text-file=$with_textfile_req" - exit 1 - ;; -esac -ac_cv_textfile="$with_textfile" - -DEFAULT_TEXT_FILE="$ac_cv_textfile" + CPPFLAGS="$ac_save_CPPFLAGS" + fi + if test "$have_setcap" = yes; then + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" -############################################################################### -# -# Check the browser to see help URL -# -############################################################################### + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" -have_browser=no -with_browser_req=unspecified + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_flag in -lcap" >&5 +$as_echo_n "checking for cap_set_flag in -lcap... " >&6; } +if ${ac_cv_lib_cap_cap_set_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcap $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -# Check whether --with-browser was given. -if test "${with_browser+set}" = set; then : - withval=$with_browser; with_browser="$withval"; with_browser_req="$withval" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cap_set_flag (); +int +main () +{ +return cap_set_flag (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_cap_cap_set_flag=yes else - with_browser=no + ac_cv_lib_cap_cap_set_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cap_cap_set_flag" >&5 +$as_echo "$ac_cv_lib_cap_cap_set_flag" >&6; } +if test "x$ac_cv_lib_cap_cap_set_flag" = xyes; then : + have_libcap=yes + PROG_SETCAP="$setcap_program" + LIBCAP_LIBS="-lcap" + $as_echo "#define HAVE_LIBCAP 1" >>confdefs.h -# no HANDLE_X_PATH_ARG for this one +fi -case "$with_browser" in - no ) - ;; - * ) - WITH_BROWSER=$with_browser - gnome_open_program=$with_browser - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for browser $with_browser" >&5 -$as_echo_n "checking for browser $with_browser... " >&6; } - with_browser_fullpath=`which $with_browser 2>/dev/null` - case $with_browser_fullpath in - /* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_browser=yes - ;; - * ) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -# Only warning: we don't want to install all packages for the -# dependency of the browser in building stage... - echo "WARNING: browser not found: --with-browser=$with_browser" - ;; - esac - ;; -esac -ac_cv_browser="$with_browser" + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + + fi +fi ############################################################################### # -# Check whether it's ok to install some hacks as setuid (e.g., "sonar") -# This should be safe, but let's give people the option. +# Option to prevent "sonar" from working properly. +# It must be setuid on systems without libcap. # ############################################################################### -setuid_hacks_default=no +if test "$have_libcap" = yes; then + setuid_hacks_default=no +else + setuid_hacks_default=yes +fi + setuid_hacks="$setuid_hacks_default" # Check whether --with-setuid-hacks was given. @@ -15781,8 +16220,6 @@ setuid_hacks="$setuid_hacks_default" fi - - case "$setuid_hacks" in yes) ;; no) ;; @@ -15826,7 +16263,6 @@ ;; esac - if test "$setuid_hacks" = yes; then true elif test "$setuid_hacks" != no; then @@ -15834,7 +16270,6 @@ exit 1 fi - ############################################################################### # # Check for --with-record-animation @@ -15851,8 +16286,6 @@ record_anim="$record_anim_default" fi - - case "$record_anim" in yes) ;; no) ;; @@ -15896,7 +16329,6 @@ ;; esac - if test "$record_anim" = yes; then true elif test "$record_anim" != no; then @@ -15928,7 +16360,6 @@ DEPEND_FLAGS= DEPEND_DEFINES= - if test \! -z "$includedir" ; then INCLUDES="$INCLUDES -I$includedir" fi @@ -15937,7 +16368,6 @@ LDFLAGS="$LDFLAGS -L$libdir" fi - PREFERRED_DEMO_PROGRAM='' ALL_DEMO_PROGRAMS= if test "$have_motif" = yes; then @@ -15949,7 +16379,6 @@ ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS" fi - if test "$have_kerberos" = yes; then PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)" PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)" @@ -15971,7 +16400,6 @@ PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)" PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)" - if test "$enable_locking" = yes; then LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' @@ -15990,7 +16418,6 @@ MEN_OSX= fi - INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)' if test "$need_setuid" = yes; then @@ -16005,6 +16432,12 @@ SETUID_HACKS=no fi +if test "$have_libcap" = yes; then + SETCAP_HACKS=yes +else + SETCAP_HACKS=no +fi + tab=' ' if test "$have_gl" = yes; then GL_EXES='$(GL_EXES)' @@ -16028,7 +16461,6 @@ JPEG_EXES='$(JPEG_EXES)' fi - # Another substitution in the XScreenSaver.ad.in file: # if test "$gnome_open_program" != ''; then @@ -16045,7 +16477,6 @@ NOGNOME='' fi - # Set PO_DATADIR to something sensible. # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for locale directory" >&5 @@ -16070,7 +16501,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PO_DATADIR/locale" >&5 $as_echo "$PO_DATADIR/locale" >&6; } - # canonicalize slashes. HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` @@ -16084,96 +16514,15 @@ # INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'` - ############################################################################### # # Perform substitutions and write Makefiles. # ############################################################################### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - APPDEFAULTS=$ac_x_app_defaults - - - - - - -ac_config_files="$ac_config_files Makefile utils/Makefile jwxyz/Makefile hacks/Makefile hacks/images/Makefile hacks/glx/Makefile po/Makefile.in driver/Makefile driver/xscreensaver.pam driver/xscreensaver-demo.glade2 driver/XScreenSaver.ad" +ac_config_files="$ac_config_files Makefile utils/Makefile jwxyz/Makefile hacks/Makefile hacks/images/Makefile hacks/glx/Makefile po/Makefile.in driver/Makefile driver/xscreensaver.pam driver/XScreenSaver.ad" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -16283,12 +16632,8 @@ LTLIBOBJS=$ac_ltlibobjs - - ac_config_commands="$ac_config_commands po/stamp-it" - - : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files @@ -16333,7 +16678,6 @@ esac fi - as_nl=' ' export as_nl @@ -16381,7 +16725,6 @@ } fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. @@ -16435,7 +16778,6 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH - # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are @@ -16452,7 +16794,6 @@ as_fn_exit $as_status } # as_fn_error - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -16514,7 +16855,6 @@ } fi # as_fn_arith - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -16600,7 +16940,6 @@ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null - # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. @@ -16646,7 +16985,6 @@ test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' @@ -16655,7 +16993,6 @@ as_mkdir_p=false fi - # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. @@ -16672,7 +17009,6 @@ # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## @@ -16707,7 +17043,6 @@ "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac - cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" @@ -16869,7 +17204,6 @@ # INIT-COMMANDS # - _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 @@ -16889,7 +17223,6 @@ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "driver/Makefile") CONFIG_FILES="$CONFIG_FILES driver/Makefile" ;; "driver/xscreensaver.pam") CONFIG_FILES="$CONFIG_FILES driver/xscreensaver.pam" ;; - "driver/xscreensaver-demo.glade2") CONFIG_FILES="$CONFIG_FILES driver/xscreensaver-demo.glade2" ;; "driver/XScreenSaver.ad") CONFIG_FILES="$CONFIG_FILES driver/XScreenSaver.ad" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; @@ -16897,7 +17230,6 @@ esac done - # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely @@ -16940,7 +17272,6 @@ # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then - ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this @@ -16958,7 +17289,6 @@ echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF - { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && @@ -17201,7 +17531,6 @@ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" - eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag @@ -17329,7 +17658,6 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - case $ac_mode in :F) # @@ -17445,7 +17773,6 @@ ;; esac - case $ac_file$ac_mode in "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile @@ -17474,7 +17801,6 @@ esac done # for ac_tag - as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save @@ -17482,7 +17808,6 @@ test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open @@ -17508,7 +17833,6 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi - ############################################################################### # # Print some warnings at the end. @@ -17564,7 +17888,6 @@ warn_prefix="$warn_prefix_1" } - # ac_prog_cc_no_pthread normally only happens on AIX, because according # to AX_PTHREAD, AIX needs CC=xlc_r or CC=cc_r to do threads. # If CC is specified, it takes precedence over --with-pthread. @@ -17585,6 +17908,10 @@ warn 'The XIdle extension was requested, but was not found.' fi +if test "$with_mit_req" = yes -a "$have_mit" = no ; then + warn 'The MIT-SCREEN-SAVER extension was requested, but was not found.' +fi + if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then warn 'The XSHM extension was requested, but was not found.' fi @@ -17691,7 +18018,6 @@ warnL "Use of Gtk was requested, but it wasn't found." fi - if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then warn "GTK is being used, but the GDK-Pixbuf library and/or" warn2 "headers were not found. That can't be good. Please" @@ -17716,14 +18042,12 @@ fi fi - if test "$have_motif" = yes -a "$have_gtk" = no ; then warn 'Motif is being used, and GTK is not.' echo '' motif_warn2 fi - if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then warnL 'Use of GDK-Pixbuf was requested, but it was not found.' fi @@ -17758,7 +18082,6 @@ warn2 'configure.' fi - if test "$have_jpeg" = no ; then if test "$with_jpeg_req" = yes ; then warnL 'Use of libjpeg was requested, but it was not found.' @@ -17786,7 +18109,6 @@ fi fi - if test "$have_png" = no ; then if test "$with_png_req" = yes ; then warnL 'Use of libpng was requested, but it was not found.' @@ -17808,7 +18130,6 @@ warn2 "Many things aren't going to work right." fi - if test "$have_xft" = no ; then if test "$with_xft_req" = yes ; then warnL "Use of libXft was requested, but it was not found." @@ -17830,6 +18151,48 @@ warn2 "This means that fonts won't be anti-aliased." fi +if test "$have_bitmap_fonts" = no ; then + warnL 'The standard bitmap fonts do not seem to be installed.' + warn2 'That is not going to work out well for you.' + warn2 'Install "xfonts-100dpi" or "xorg-x11-fonts-100dpi".' +fi + +if test "$have_systemd" = no ; then + systemd_warned=no + if test "$systemd_too_old" = yes ; then + warnL "The systemd library is too old." + systemd_warned=yes + elif test "$with_systemd_req" = yes ; then + warnL "Use of systemd was requested, but it was not found." + systemd_warned=yes + elif test "$ac_macosx" = yes; then + true + elif test "$with_systemd_req" = no ; then + noteL 'The systemd library is not being used.' + systemd_warned=yes + else + warnL "The systemd library was not found." + systemd_warned=yes + fi + + if test "$systemd_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either systemd is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + echo '' + systemd_warned=yes + fi + + if test "$systemd_warned" = yes; then + echo '' + warn2 "This means that xscreensaver-systemd won't be built." + warn2 "Without that, xscreensaver will not be able to auto-lock" + warn2 "before the system is suspended (e.g., closing laptop lid)" + warn2 "and might activate while video playback is in progress." + fi +fi if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then preferred_mesagl=3.4 @@ -17877,7 +18240,6 @@ fi - if test "$have_gl" = yes -a "$have_gle" = no ; then # nobody cares about this; don't print the warning unless it was @@ -17913,7 +18275,6 @@ fi fi - if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then warn 'Use of XReadDisplay was requested, but it was not found.' fi @@ -17930,6 +18291,10 @@ warn 'Use of shadow passwords was requested, but they were not found.' fi +if test "$setcap_hacks_req" = yes -a "$have_libcap" = no ; then + warn 'Use of libcap was requested, but it was not found.' +fi + if test "$ac_macosx" = yes ; then if test "$enable_locking" = yes ; then warn "You have specified --enable-locking on MacOS X." @@ -17937,7 +18302,6 @@ fi fi - # You are in a twisty maze of namespaces and syntaxes, all alike. # Fuck the skull of Unix. # @@ -17950,7 +18314,6 @@ HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` - # Sanity check the hackdir for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then @@ -17962,9 +18325,6 @@ fi done - -do_dir_warning=no - # Now let's warn if there's a previous RPM version already installed. # But don't bother with this test if we are currently *building* an RPM. @@ -17978,29 +18338,38 @@ sed -n 's/^[-a-z]*-\([0-9][0-9]*[.][0-9][0-9a-z]*\)-.*$/\1/p' | \ head -1` - if test \! -z "$rpmv" ; then - rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'` - rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'` + + # M4 sucks!! + + rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)xscreensaver-demo$@\1@p'` + rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares$@\1@p'` + rpmcdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'` + rpmadir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)XScreenSaver$@\1@p'` + + err=" (DIFFERS)" + if test -z "$rpmbdir" ; then rpmbdir='???' + elif test "$rpmbdir" != "${bindir}/" ; then rpmbdir="$rpmbdir$err";fi + + if test -z "$rpmhdir" ; then rpmhdir='???' + elif test "$rpmhdir" != "${HACKDIR}/" ; then rpmhdir="$rpmhdir$err";fi + + if test -z "$rpmcdir" ; then rpmcdir='???' + elif test "$rpmcdir" != "${HACK_CONF_DIR}/"; then rpmcdir="$rpmcdir$err";fi + + if test -z "$rpmadir" ; then rpmadir='???' + elif test "$rpmadir" != "${APPDEFAULTS}/" ; then rpmadir="$rpmadir$err";fi warning=no - warnL "There is already an installed RPM of xscreensaver $rpmv" - warn2 'on this system. You might want to remove it ("rpm -ve")' - warn2 'before running "make install" in this directory.' + warnL "There is already an installed RPM of xscreensaver" + warn2 "version \"$rpmv\" on this system." echo "" - warn2 "Alternately, you could build this version of xscreensaver" - warn2 'as an RPM, and then install that. An "xscreensaver.spec"' - warn2 'file is included. Try "rpmbuild -v -ba xscreensaver.spec".' - warn2 "See the RPM documentation for more info." + warn2 "It is currently installed in these directories:" echo "" - - if test "$rpmbdir" = "$rpmhdir" ; then - warn2 "The RPM version was installed in $rpmbdir/." - do_dir_warning=yes - else - warn2 "The RPM version was installed in $rpmbdir/," - warn2 "with demos in $rpmhdir/." - fi + warn2 "User programs: $rpmbdir$berr" + warn2 "Screen savers: $rpmhdir$herr" + warn2 "Configuration: $rpmcdir$cerr" + warn2 "App Defaults: $rpmadir$aerr" fi fi @@ -18015,54 +18384,46 @@ done if test \! -z "$debv" ; then - debbdir=`dpkg -L $debnames 2>/dev/null | \ - sed -n 's@^\(.*/bin/\)xscreensaver$@\1@p'` - debhdir=`dpkg -L $debnames 2>/dev/null | \ - sed -n 's@^\(.*/\)popsquares$@\1@p'` - if test -z "$debbdir" ; then debbdir='???'; fi - if test -z "$debhdir" ; then debhdir='???'; fi - warning=no - warnL "There is already an installed dpkg of xscreensaver" - warn2 "version \"$debv\" on this system." - echo "" - warn2 "The dpkg was installed in $debbdir," - warn2 "with demos in $debhdir." -fi + # M4 sucks!! + debbdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/bin/\)xscreensaver$@\1@p'` + debhdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares$@\1@p'` + debcdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'` + debadir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)XScreenSaver[^/]*$@\1@p'` + + err=" (DIFFERS)" + if test -z "$debbdir" ; then debbdir='???' + elif test "$debbdir" != "${bindir}/" ; then debbdir="$debbdir$err"; fi -if test "${bindir}" = "${HACKDIR}" ; then - do_dir_warning=yes -fi + if test -z "$debhdir" ; then debhdir='???' + elif test "$debhdir" != "${HACKDIR}/" ; then debhdir="$debhdir$err"; fi -if test "$do_dir_warning" = yes; then - echo "" - echo "$warnsep" - echo "" - echo ' When you run "make install", the "xscreensaver",' - echo ' "xscreensaver-demo", and "xscreensaver-command" executables' - echo " will be installed in ${bindir}/." - echo "" - echo " The various graphics demos (200+ different executables) will" - echo " be installed in ${HACKDIR}/." - echo "" - echo " If you would prefer the demos to be installed elsewhere," - echo " you should re-run configure with the --with-hackdir=DIR" - echo " option. For more information, run \`./configure --help'." - warning=yes -fi + if test -z "$debcdir" ; then debcdir='???' + elif test "$debcdir" != "${HACK_CONF_DIR}/" ; then debcdir="$debcdir$err"; fi -if test "$warning" != no; then - echo '' ; echo "$warnsep" ; echo '' -fi + if test -z "$debadir" ; then debadir='???' + elif test "$debadir" != "${APPDEFAULTS}/" ; then debadir="$debadir$err"; fi -if test "$do_dir_warning" = no; then - if test "$warning" = no; then - echo '' - fi - echo "User programs will be installed in ${bindir}/" - echo "Screen savers will be installed in ${HACKDIR}/" - echo "Configuration dialogs will be installed in ${HACK_CONF_DIR}/" - echo "System-wide default settings will be installed in ${APPDEFAULTS}/" - echo '' -fi + warning=no + warnL "There is already an installed dpkg of xscreensaver" + warn2 "version \"$debv\" on this system." + echo "" + warn2 "It is currently installed in these directories:" + echo "" + warn2 "User programs: $debbdir$berr" + warn2 "Screen savers: $debhdir$herr" + warn2 "Configuration: $debcdir$cerr" + warn2 "App Defaults: $debadir$aerr" +fi + +echo "" +echo "$warnsep" +echo "" +echo " XScreenSaver will be installed in these directories:" +echo "" +echo " User programs: ${bindir}/" +echo " Screen savers: ${HACKDIR}/" +echo " Configuration: ${HACK_CONF_DIR}/" +echo " App Defaults: ${APPDEFAULTS}/" +echo "" diff -Nru xscreensaver-5.42+dfsg1/configure.ac xscreensaver-5.45+dfsg1/configure.ac --- xscreensaver-5.42+dfsg1/configure.ac 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/configure.ac 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,5010 @@ +# configure.in --- xscreensaver, Copyright (c) 1997-2020 Jamie Zawinski. +# + +AC_PREREQ(2.52) +AC_INIT(driver/subprocs.c) +AC_CONFIG_HEADERS([config.h]) + +echo "current directory: `pwd`" +echo "command line was: $0 $@" + +############################################################################### +# +# Autoheader stuff +# +############################################################################### + +AH_TOP([ +/* config.h.in --- xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski. + * + * The best way to set these parameters is by running the included `configure' + * script. That examines your system, and generates `config.h' from + * `config.h.in'. + * + * If something goes very wrong, you can edit `config.h' directly, but beware + * that your changes will be lost if you ever run `configure' again. + */ +]) + +AH_TEMPLATE([HAVE_READ_DISPLAY_EXTENSION], + [Define this if you have the SGI XReadDisplay extension.]) + +AH_TEMPLATE([HAVE_XHPDISABLERESET], + [Define this if you have the XHPDisableReset function (an HP only + thing which allows the Ctrl-Sh-Reset key sequence to be + temporarily disabled.)]) + +# This only ever existed in X11R4 and X11R5. +AH_TEMPLATE([HAVE_XIDLE_EXTENSION], + [Define this if you have the X11R5 XIDLE extension.]) + +AH_TEMPLATE([HAVE_MIT_SAVER_EXTENSION], + [Using the MIT-SCREEN-SAVER extension means that the X server + will crash at random times, and fading and hysteresis won't work. + Don't use this. You'll be sorry. See comment in xscreensaver.c.]) + +# This only ever existed on SGI hardware. +AH_TEMPLATE([HAVE_SGI_SAVER_EXTENSION], + [Define this if you have the SGI SCREEN_SAVER extension.]) + +# This only ever existed on SGI hardware. +AH_TEMPLATE([HAVE_SGI_VC_EXTENSION], + [Define this if you have the SGI-VIDEO-CONTROL extension.]) + +AH_TEMPLATE([HAVE_DPMS_EXTENSION], + [Define this if you have the XDPMS extension.]) + +AH_TEMPLATE([HAVE_XF86VMODE], + [Define this if you have the functions XF86VidModeGetModeLine() + and XF86VidModeGetViewPort(), in support of virtual desktops + where the X server's root window is bigger than the actual + screen.]) + +AH_TEMPLATE([HAVE_XF86VMODE_GAMMA], + [Define this if you have the functions XF86VidModeGetGamma() and + XF86VidModeSetGamma(), which allow clients to change the gamma + response of the monitor.]) + +AH_TEMPLATE([HAVE_XF86VMODE_GAMMA_RAMP], + [Define this if you have the functions XF86VidModeGetGammaRamp() + and XF86VidModeSetGammaRamp(), which provide finer-grained + control than XF86VidMode[GS]etGamma().]) + +AH_TEMPLATE([HAVE_XINERAMA], + [Define this if you have the Xinerama extension.]) + +AH_TEMPLATE([HAVE_XINPUT], + [Define this if you have the Xinput extension.]) + +AH_TEMPLATE([HAVE_XF86MISCSETGRABKEYSSTATE], + [Define this if you have the XF86MiscSetGrabKeysState function + (which allows the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key + sequences to be temporarily disabled. Sadly, it doesn't affect + Ctrl-Alt-BS or Ctrl-Alt-F1.)]) + +AH_TEMPLATE([HAVE_RANDR], + [Define this if you have the Resize and Rotate extension.]) + +AH_TEMPLATE([HAVE_RANDR_12], + [Define this if the RANDR library is version 1.2 or newer.]) + +AH_TEMPLATE([HAVE_PROC_INTERRUPTS], + [Define this if you have a Linux-like /proc/interrupts file which + can be examined to determine when keyboard activity has + occurred.]) + +AH_TEMPLATE([HAVE_PROC_OOM], + [Define this if you have a Linux-like /proc/.../oom_score_adj file + which can be adjusted by root to exempt us from the out-of-memory + .]) + +AH_TEMPLATE([HAVE_MOTIF],[Define this if you have Motif.]) + +AH_TEMPLATE([HAVE_XMCOMBOBOX], + [Define this if you have the XmComboBox Motif widget (Motif 2.0.)]) + +AH_TEMPLATE([HAVE_GTK],[Define this if you have Gtk (any version.)]) +AH_TEMPLATE([HAVE_GTK2],[Define this if you have Gtk 2.x.]) + +AH_TEMPLATE([HAVE_CRAPPLET], + [Define this if you have Gnome and want to build support for the + xscreensaver control panel in the Gnome Control Center + (gnomecc). (This is needed only with Gtk 1.x.)]) + +AH_TEMPLATE([HAVE_CRAPPLET_IMMEDIATE], + [Define this if HAVE_CRAPPLET is defined, and the function + capplet_widget_changes_are_immediate() is available.]) + +AH_TEMPLATE([HAVE_XML],[Define this if you have the XML library.]) + +AH_TEMPLATE([HAVE_OLD_XML_HEADERS], + [Define this if you have the XML library headers in their old, + non-namespaced location (you lack the gnome-xml/libxml symlink)]) + +AH_TEMPLATE([HAVE_GDK_PIXBUF], + [Define this if you have the GDK_Pixbuf library installed. Some + of the demos can make use of this if it is available.]) + +AH_TEMPLATE([HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION], + [Define this if you have the gdk_pixbuf_apply_embedded_orientation + function (gdk-pixbuf 2.12).]) + +AH_TEMPLATE([HAVE_JPEGLIB], + [Define this if you have the Independent JPEG Group's JPEG + library installed. Some of the demos can make use of this if it + is available.]) + +AH_TEMPLATE([HAVE_LIBPNG], + [Define this if the Portable Network Graphics library is installed. + It is basically required, but many things will more-or-less limp + along without it.]) + +AH_TEMPLATE([HAVE_XMU], + [Define this if you have the Xmu library. This is standard part + of X, and if your vendor doesn't ship it, you should report that + as a bug.]) + +AH_TEMPLATE([HAVE_XUTF8DRAWSTRING], + [Define this if you have the function Xutf8DrawString().]) + +AH_TEMPLATE([HAVE_XFT], + [Define this if you have libXft2.]) + +AH_TEMPLATE([HAVE_LIBSYSTEMD], + [Define this if you have libsystemd.]) + +AH_TEMPLATE([HAVE_GL], + [Define this if you have OpenGL. Some of the demos require it, + so if you don't have it, then those particular demos won't be + built. (This won't affect the screen saver as a whole.)]) + +AH_TEMPLATE([HAVE_MESA_GL], + [Define this if you have OpenGL, but it's the MesaGL variant. + (The libraries have different names.) (HAVE_GL should be defined + too.)]) + +AH_TEMPLATE([HAVE_GLBINDTEXTURE], + [Define this if your version of OpenGL has the glBindTexture() + routine. This is the case for OpenGL 1.1, but not for OpenGL + 1.0.]) + +AH_TEMPLATE([HAVE_GLSL], + [Define this if your OpenGL implementation supports the OpenGL + Shading Language (GLSL). This requires at least OpenGL 2.0. + HAVE_GL should be defined, too.]) + +AH_TEMPLATE([HAVE_GLE], + [Define this if you have the -lgle and -lmatrix libraries (GL + extrusion.)]) + +AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3]) + +AH_TEMPLATE([HAVE_JWZGLES],[Define this to target the OpenGL ES 1.x API + instead of OpenGL 1.3.]) + +AH_TEMPLATE([HAVE_XSHM_EXTENSION], + [Define this if you have the X Shared Memory Extension.]) + +AH_TEMPLATE([HAVE_DOUBLE_BUFFER_EXTENSION], + [Define this if you have the X Double Buffer Extension.]) + +AH_TEMPLATE([FORTUNE_PROGRAM], + [Some screenhacks like to run an external program to generate + random pieces of text; set this to the one you like. Note that + this is just the default; X resources can be used to override + it.]) + +AH_TEMPLATE([PASSWD_HELPER_PROGRAM], + [Set the name of the password helper program, if any]) + +AH_TEMPLATE([NO_LOCKING], + [Define this to remove the option of locking the screen at all.]) + +AH_TEMPLATE([ALLOW_ROOT_PASSWD], + [Define this to allow the root password to unlock the screen.]) + +AH_TEMPLATE([HAVE_KERBEROS], + [Define this if you want to use Kerberos authentication to + lock/unlock the screen instead of your local password. This + currently uses Kerberos V4, but a V5 server with V4 + compatibility will work. WARNING: DO NOT USE AFS string-to-key + passwords with this option. This option currently *only* works + with standard Kerberos des_string_to_key. If your password is + an AFS password and not a kerberos password, it will not + authenticate properly. See the comments in driver/kpasswd.c for + more information if you need it.]) + +AH_TEMPLATE([HAVE_KERBEROS5], + [Define this if you have Kerberos 5, meaning we need to use the + Kerberos 4 compatibility layer.]) + +AH_TEMPLATE([HAVE_PAM], + [Define this if you want to use PAM (Pluggable Authentication + Modules) to lock/unlock the screen, instead of standard + /etc/passwd authentication.]) + +AH_TEMPLATE([PAM_SERVICE_NAME], + [If PAM is being used, this is the name of the PAM service that + xscreensaver will authenticate as. The default is + "xscreensaver", which means that the PAM library will look for + an "xscreensaver" line in /etc/pam.conf, or (on recent Linux + systems) will look for a file called /etc/pam.d/xscreensaver. + Some systems might already have a PAM installation that is + configured for xlock, so setting this to "xlock" would also work + in that case.]) + +AH_TEMPLATE([HAVE_PAM_FAIL_DELAY], + [Define this if you have pam_fail_delay function. + see driver/passwd-pam.c.]) + +AH_TEMPLATE([PAM_CHECK_ACCOUNT_TYPE], + [Whether PAM should check the result of account modules + when authenticating. Only do this if you have account + configured properly on your system.]) + +AH_TEMPLATE([PAM_STRERROR_TWO_ARGS], + [Define if you have PAM and pam_strerror() requires two + arguments.]) + +AH_TEMPLATE([HAVE_SIGTIMEDWAIT], + [Define to 1 if you have the `sigtimedwait' function.]) + +AH_TEMPLATE([HAVE_SHADOW_PASSWD], + [Define this if your system uses 'shadow' passwords, that is, the + passwords live in /etc/shadow instead of /etc/passwd, and one + reads them with getspnam() instead of getpwnam(). (Note that + SCO systems do some random other thing; others might as well. + See the ifdefs in driver/passwd-pwent.c if you're having trouble + related to reading passwords.)]) + +AH_TEMPLATE([HAVE_ENHANCED_PASSWD], + [Define this if your system is Digital or SCO Unix with so-called + ``Enhanced Security'', that is, the passwords live in + /tcb/files/auth// instead of in /etc/passwd, and one + reads them with getprpwnam() instead of getpwnam().]) + +AH_TEMPLATE([HAVE_ADJUNCT_PASSWD], + [Define this if your system is Solaris with ``adjunct'' passwords + (this is the version where one gets at the passwords with + getpwanam() instead of getpwnam().) I haven't tested this one, + let me know if it works.]) + +AH_TEMPLATE([HAVE_HPUX_PASSWD], + [Define this if you have HPUX with so-called "Secure Passwords".]) + +AH_TEMPLATE([HAVE_SYSLOG], + [Define this if you the openlog(), syslog(), and closelog() + functions. This is used for logging failed login attempts.]) + +AH_TEMPLATE([HAVE_ICMP], + [Define this if you do pings with a `struct icmp' and an + `icmp_id' slot.]) + +AH_TEMPLATE([HAVE_ICMPHDR], + [Define this if you do pings with a `struct icmphdr' and an + `un.echo.id' slot.]) + +AH_TEMPLATE([HAVE_GETIFADDRS], + [Define this if you have the getifaddrs() function.]) + +AH_TEMPLATE([HAVE_FORKPTY], + [Define this if you have the 'forkpty' function: + This allows 'phosphor' and 'apple2' to run curses-based + programs, or be used as terminal windows.]) + +AH_TEMPLATE([HAVE_GETTIMEOFDAY], + [Define this if you have the gettimeofday function.]) + +AH_TEMPLATE([GETTIMEOFDAY_TWO_ARGS], + [Define this if gettimeofday() takes two arguments.]) + +AH_TEMPLATE([XPointer], + [Define this to void* if you're using X11R4 or earlier.]) + +AH_TEMPLATE([HAVE_PTHREAD], + [Define this if your system supports POSIX threads.]) + +AH_TEMPLATE([HAVE_LIBCAP], + [Define this if your system has libcap.]) + +AH_TEMPLATE([HAVE_RECORD_ANIM], + [Define this to enable recording of videos.]) + +# After checking to see that --srcdir is correct (which AC_INIT does) +# check for some random other files that come later in the tar file, +# to make sure everything is here. +# +for d in utils jwxyz hacks hacks/glx driver ; do + f=$srcdir/$d/Makefile.in + if test \! -r $f ; then + echo "" + echo "ERROR: The package is incomplete: $f does not exist." + echo " This probably means that your download was truncated." + echo "" + exit 1 + fi +done + +############################################################################### +# +# Function to figure out how to run the compiler. +# +############################################################################### + +AC_DEFUN([AC_PROG_CC_ANSI], + [AC_REQUIRE([AC_PROG_CC]) + + if test -z "$GCC"; then + # not using GCC + AC_MSG_CHECKING(how to request ANSI compilation) + case "$host" in + *-hpux* ) + AC_MSG_RESULT(HPUX: adding -Ae) + CC="$CC -Ae" + ;; + *-aix* ) + AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e) + CC="$CC -qlanglvl=ansi -qhalt=e" + ;; + *-dec-* ) + AC_MSG_RESULT(DEC: adding -std1 -ieee) + CC="$CC -std1" + ;; + *) + AC_MSG_RESULT(no idea) + ;; + esac + else + # using GCC + case "$host" in + *-solaris*) + AC_MSG_RESULT(Solaris: adding -D__EXTENSIONS__) + CC="$CC -D__EXTENSIONS__" + ;; + esac + fi + + OBJCC="$CC" + + # This test makes cross-compiling fail, so let's just assume that nobody + # is using a K&R compiler any more... + # +# AC_MSG_CHECKING([whether the compiler works on ANSI C]) +# AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], +# AC_MSG_RESULT(yes), +# AC_MSG_RESULT(no) +# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), +# AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) + + if test -n "$GCC"; then + AC_MSG_RESULT(Turning on gcc compiler warnings.) + CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes" + OBJCC="$OBJCC -Wall" + # As of gcc 3.4, we have "-Wdeclaration-after-statement" + # and so perhaps now we can do without -pedantic? + else + case "$host" in + *-irix5* |*-irix6.[0-3]* ) + AC_MSG_RESULT(Turning on SGI compiler warnings.) + CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3" + ;; +# *-dec-osf* ) +# if test -z "$GCC"; then +# AC_MSG_RESULT(Turning on DEC C compiler warnings.) +# CC="$CC -migrate -w0 -verbose -warnprotos" +# fi +# ;; + esac + fi +]) + + +############################################################################### +# +# Check for availability of various gcc command-line options. +# +############################################################################### + +AC_DEFUN([AC_CHECK_GCC_ARG], + [if test -n "$GCC"; then + AC_CACHE_CHECK([whether gcc accepts [$2]], + ac_cv_gcc_accepts_[$1], + [rm -rf conftest.$ac_ext + touch conftest.$ac_ext + if ( ( gcc -c [$2] conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ + grep unrecognized >/dev/null ); then + ac_cv_gcc_accepts_[$1]=no + else + ac_cv_gcc_accepts_[$1]=yes + CC="$CC [$2]" + fi]) + ac_gcc_accepts_[$1]="$ac_cv_gcc_accepts_[$1]" + fi +]) + +AC_DEFUN([AC_NO_LONG_STRING_WARNINGS], + [AC_CHECK_GCC_ARG(no_overlength, -Wno-overlength-strings)]) + +AC_DEFUN([AC_NO_MISPLACED_DECLARATIONS], + [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)]) + +# Need to disable Objective C extensions in ANSI C on MacOS X to work +# around an Apple-specific gcc bug. +# +AC_DEFUN([AC_NO_OBJECTIVE_C], + [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)]) + +############################################################################### +# +# Function to figure out how to disable // comments in ANSI C code. +# +# (With recent gcc, this is done with "-std=c89". With older gcc, this +# is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to +# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang. +# so much for compatibility!) +# +# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that +# declarations preceed statements, without resorting to "-pedantic". +# This means that there is no way to get gcc3 to issue warnings that +# ensure that your code complies with the ANSI/ISO C89 standard, without +# also drowning in totally useless warnings. Thank you master may I +# have another. +# +# So, I give up, let's just use -pedantic. +# +############################################################################### + +AC_DEFUN([AC_GCC_ACCEPTS_STD], [ + case "$host" in + *-darwin* ) + # Fucking Apple let // comments sneak into OpenGL headers, so + # we *must* allow // comments when compiling on Mac OS 10.6! FUCK! + ;; + *) + AC_CHECK_GCC_ARG(std, -std=c89) + ;; + esac +]) + +AC_DEFUN([AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE], + [if test -n "$GCC"; then + AC_GCC_ACCEPTS_STD + AC_MSG_RESULT(Disabling C++ comments in ANSI C code.) + # + # The reason that // comments are banned from xscreensaver is that gcc is + # basically the only compiler in the world that supports them in C code. + # All other vendors support them only in their C++ compilers, not in their + # ANSI C compilers. This means that it's a portability problem: every time + # these comments have snuck into the xscreensaver source code, I've gotten + # complaints about it the next day. So we turn off support for them in gcc + # as well to prevent them from accidentially slipping in. + # + if test "$ac_gcc_accepts_std" = yes ; then + # + # -std=c89 defines __STRICT_ANSI__, which we don't want. + # (That appears to be the only additional preprocessor symbol + # it defines, in addition to the syntax changes it makes.) + # + # -std=gnu89 is no good, because // comments were a GNU extension + # before they were in the ANSI C 99 spec... (gcc 2.96 permits // + # with -std=gnu89 but not with -std=c89.) + # + # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD + CC="$CC -U__STRICT_ANSI__" +# else +# # The old way: +# CC="$CC -Wp,-lang-c89" + fi + fi +]) + + +############################################################################### +# +# Function to figure out how to create directory trees. +# +############################################################################### + +AC_DEFUN([AC_PROG_INSTALL_DIRS], + [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories], + ac_cv_install_d_creates_dirs, + [ac_cv_install_d_creates_dirs=no + rm -rf conftestdir + if mkdir conftestdir; then + cd conftestdir 2>/dev/null + ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1 + if test -d dir1/dir2/. ; then + ac_cv_install_d_creates_dirs=yes + fi + cd .. 2>/dev/null + rm -rf conftestdir + fi + ]) + + if test "$ac_cv_install_d_creates_dirs" = no ; then + AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories], + ac_cv_mkdir_p_creates_dirs, + [ac_cv_mkdir_p_creates_dirs=no + rm -rf conftestdir + if mkdir conftestdir; then + cd conftestdir 2>/dev/null + mkdir -p dir1/dir2 >/dev/null 2>&1 + if test -d dir1/dir2/. ; then + ac_cv_mkdir_p_creates_dirs=yes + fi + cd .. 2>/dev/null + rm -rf conftestdir + fi + ]) + fi + + if test "$ac_cv_install_d_creates_dirs" = yes ; then + INSTALL_DIRS='${INSTALL} -d' + elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then + INSTALL_DIRS='mkdir -p' + else + # any other ideas? + INSTALL_DIRS='${INSTALL} -d' + fi +]) + + +############################################################################### +# +# Function to check whether gettimeofday() exists, and how to call it. +# This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS. +# +############################################################################### + +AC_DEFUN([AC_GETTIMEOFDAY_ARGS], + [AC_MSG_CHECKING(how to call gettimeofday) + AC_CACHE_VAL(ac_cv_gettimeofday_args, + [AC_TRY_COMPILE([#include + #include ], + [struct timeval tv; struct timezone tzp; + gettimeofday(&tv, &tzp);], + [ac_gettimeofday_args=2], + [AC_TRY_COMPILE([#include + #include ], + [struct timeval tv; gettimeofday(&tv);], + [ac_gettimeofday_args=1], + [ac_gettimeofday_args=0])]) + ac_cv_gettimeofday_args=$ac_gettimeofday_args]) + ac_gettimeofday_args=$ac_cv_gettimeofday_args + if test "$ac_gettimeofday_args" = 1 ; then + AC_DEFINE(HAVE_GETTIMEOFDAY) + AC_MSG_RESULT(one argument) + elif test "$ac_gettimeofday_args" = 2 ; then + AC_DEFINE(HAVE_GETTIMEOFDAY) + AC_DEFINE(GETTIMEOFDAY_TWO_ARGS) + AC_MSG_RESULT(two arguments) + else + AC_MSG_RESULT(unknown) + fi +]) + + +############################################################################### +# +# Function to find perl5 (defines PERL and PERL_VERSION.) +# +############################################################################### + +# M4 sucks!! perl sucks too!! +changequote(X,Y) +perl_version_cmd='print $]' +changequote([,]) + +AC_DEFUN([AC_PROG_PERL], + [AC_PATH_PROGS(PERL, [perl5 perl],,) + if test -z "$PERL" ; then + PERL_VERSION=0 + else + AC_CACHE_CHECK([perl version], ac_cv_perl_version, + [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`]) + PERL_VERSION=$ac_cv_perl_version + fi + ]) + + +############################################################################### +# +# Function to demand "bc". Losers. +# +############################################################################### + +AC_DEFUN([AC_DEMAND_BC], + [ac_bc_result=`echo 6+9 | bc 2>/dev/null` + AC_MSG_CHECKING([for bc]) + if test "$ac_bc_result" = "15" ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + echo '' + AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard + part of Unix since the 1970s. Come back when your vendor + has grown a clue.]) + fi + ]) + +############################################################################### +# +# Functions to check how to do ICMP PING requests. +# +############################################################################### + +AC_DEFUN([AC_CHECK_ICMP], + [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp, + [AC_TRY_COMPILE([#include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include ], + [struct icmp i; + struct sockaddr s; + struct sockaddr_in si; + struct ip ip; + i.icmp_type = ICMP_ECHO; + i.icmp_code = 0; + i.icmp_cksum = 0; + i.icmp_id = 0; + i.icmp_seq = 0; + si.sin_family = AF_INET; + #if defined(__DECC) || defined(_IP_VHL) + ip.ip_vhl = 0; + #else + ip.ip_hl = 0; + #endif + ], + [ac_cv_have_icmp=yes], + [ac_cv_have_icmp=no])]) + if test "$ac_cv_have_icmp" = yes ; then + AC_DEFINE(HAVE_ICMP) + fi]) + +AC_DEFUN([AC_CHECK_ICMPHDR], + [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr, + [AC_TRY_COMPILE([#include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include ], + [struct icmphdr i; + struct sockaddr s; + struct sockaddr_in si; + struct ip ip; + i.type = ICMP_ECHO; + i.code = 0; + i.checksum = 0; + i.un.echo.id = 0; + i.un.echo.sequence = 0; + si.sin_family = AF_INET; + ip.ip_hl = 0;], + [ac_cv_have_icmphdr=yes], + [ac_cv_have_icmphdr=no])]) + if test "$ac_cv_have_icmphdr" = yes ; then + AC_DEFINE(HAVE_ICMPHDR) + fi]) + + +############################################################################### +# +# Functions to check for various X11 crap. +# +############################################################################### + +# Try and find the app-defaults directory. +# It sucks that autoconf doesn't do this already... +# +AC_DEFUN([AC_PATH_X_APP_DEFAULTS_XMKMF],[ + rm -fr conftestdir + if mkdir conftestdir; then + cd conftestdir 2>/dev/null + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_x_app_defaults="${XAPPLOADDIR}"' +EOF + if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which'd confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + fi + cd .. 2>/dev/null + rm -fr conftestdir + fi]) + +AC_DEFUN([AC_PATH_X_APP_DEFAULTS_DIRECT],[ + # Look for the directory under a standard set of common directories. + # Check X11 before X11Rn because it's often a symlink to the current release. + for ac_dir in \ + \ + /usr/share/X11/app-defaults \ + \ + /usr/X11/lib/app-defaults \ + /usr/X11R6/lib/app-defaults \ + /usr/X11R6/lib/X11/app-defaults \ + /usr/X11R5/lib/app-defaults \ + /usr/X11R5/lib/X11/app-defaults \ + /usr/X11R4/lib/app-defaults \ + /usr/X11R4/lib/X11/app-defaults \ + \ + /usr/lib/X11/app-defaults \ + /usr/lib/X11R6/app-defaults \ + /usr/lib/X11R5/app-defaults \ + /usr/lib/X11R4/app-defaults \ + \ + /etc/X11/app-defaults \ + \ + /usr/local/X11/lib/app-defaults \ + /usr/local/X11R6/lib/app-defaults \ + /usr/local/X11R5/lib/app-defaults \ + /usr/local/X11R4/lib/app-defaults \ + \ + /usr/local/lib/X11/app-defaults \ + /usr/local/lib/X11R6/app-defaults \ + /usr/local/lib/X11R6/X11/app-defaults \ + /usr/local/lib/X11R5/app-defaults \ + /usr/local/lib/X11R5/X11/app-defaults \ + /usr/local/lib/X11R4/app-defaults \ + /usr/local/lib/X11R4/X11/app-defaults \ + \ + /usr/X386/lib/X11/app-defaults \ + /usr/x386/lib/X11/app-defaults \ + /usr/XFree86/lib/X11/app-defaults \ + \ + /usr/lib/X11/app-defaults \ + /usr/local/lib/X11/app-defaults \ + /usr/unsupported/lib/X11/app-defaults \ + /usr/athena/lib/X11/app-defaults \ + /usr/local/x11r5/lib/X11/app-defaults \ + /usr/lpp/Xamples/lib/X11/app-defaults \ + /lib/usr/lib/X11/app-defaults \ + \ + /usr/openwin/lib/app-defaults \ + /usr/openwin/lib/X11/app-defaults \ + /usr/openwin/share/lib/app-defaults \ + /usr/openwin/share/lib/X11/app-defaults \ + \ + /X11R6/lib/app-defaults \ + /X11R5/lib/app-defaults \ + /X11R4/lib/app-defaults \ + ; \ + do + if test -d "$ac_dir"; then + ac_x_app_defaults=$ac_dir + break + fi + done +]) + +AC_DEFUN([AC_PATH_X_APP_DEFAULTS], + [AC_REQUIRE_CPP() + AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults, + [# skip this, it's always wrong these days. + # AC_PATH_X_APP_DEFAULTS_XMKMF + if test x"$ac_x_app_defaults" = x; then + true AC_PATH_X_APP_DEFAULTS_DIRECT + fi + if test x"$ac_x_app_defaults" = x; then + /bin/echo -n 'fallback: ' + ac_cv_x_app_defaults="/usr/lib/X11/app-defaults" + else + # Record where we found app-defaults for the cache. + ac_cv_x_app_defaults="$ac_x_app_defaults" + fi]) + eval ac_x_app_defaults="$ac_cv_x_app_defaults"]) + + +AC_DEFUN([AC_XPOINTER], + [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer, + [AC_TRY_X_COMPILE([#include ], + [XPointer foo = (XPointer) 0;], + [ac_cv_xpointer=yes], + [ac_cv_xpointer=no])]) + if test "$ac_cv_xpointer" != yes; then + AC_DEFINE(XPointer,[char*]) + fi]) + + +# Random special-cases for X on certain pathological OSes. +# You know who you are. +# +AC_DEFUN([AC_X_RANDOM_PATHS], + [case "$host" in + *-hpux*) + + # The following arcana was gleaned from conversations with + # Eric Schwartz : + # + # On HPUX 10.x, the parts of X that HP considers "standard" live in + # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider + # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/. + # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems. + # Also, there are symlinks from /usr/include/ and /usr/lib/ into + # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all) + # you don't need any -I or -L arguments. + # + # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/ + # are the same division as 10.x. However, there are no symlinks to + # the X stuff from /usr/include/ and /usr/lib/, so -I and -L + # arguments are always necessary. + # + # However, X11R6 was available on HPUX 9.x as a patch: if that + # patch was installed, then all of X11R6 went in to + # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.) + # + # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know + # whether R5 was available as a patch; R6 undoubtedly was not.) + # + # So. We try and use the highest numbered pair of + # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/ + # that are available. We do not mix and match different versions + # of X. + # + # Question I still don't know the answer to: (do you?) + # + # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and + # /usr/contrib/X11R6/ could be installed as a patch, what was in + # that contrib directory? Did it contain so-called "standard" + # X11R6, or did it include Xaw and Xmu as well? If the former, + # where did one find Xaw and Xmu on 9.x R6 systems? Would this + # be a situation where one had to reach into the R5 headers and + # libs to find Xmu? That is, must both R6 and R5 directories + # be on the -I and -L lists in that case? + # + for version in X11R6 X11R5 X11R4 ; do + # if either pair of directories exists... + if test -d /usr/include/$version || test -d /usr/contrib/$version/include + then + # if contrib exists, use it... + if test -d /usr/contrib/$version/include ; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include" + X_LIBS="$X_LIBS -L/usr/contrib/$version/lib" + fi + # if the "standard" one exists, use it. + if test -d /usr/include/$version ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/$version" + X_LIBS="$X_LIBS -L/usr/lib/$version" + fi + # since at least one of the pair exists, go no farther. + break + fi + done + + # Now find Motif. Thanks for not making xmkmf find this by + # default, you losers. + # + if test -d /usr/include/Motif2.1 ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1" + X_LIBS="$X_LIBS -L/usr/lib/Motif2.1" + elif test -d /usr/include/Motif1.2 ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2" + X_LIBS="$X_LIBS -L/usr/lib/Motif1.2" + elif test -d /usr/include/Motif1.1 ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1" + X_LIBS="$X_LIBS -L/usr/lib/Motif1.1" + fi + + # Now let's check for the pseudo-standard locations for OpenGL. + # + if test -d /opt/graphics/OpenGL/include ; then + # HP-UX 10.20 puts it here + X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS" + X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS" + elif test -d /opt/Mesa/lib ; then + X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS" + X_LIBS="-L/opt/Mesa/lib $X_LIBS" + fi + + + # On HPUX, default to installing in /opt/xscreensaver/ instead of + # in /usr/local/, unless there is already an xscreensaver in + # /usr/local/bin/. This can be overridden with the --prefix arg + # to configure. I'm not sure this is the right thing to do, but + # Richard Lloyd says so... + # + if test \! -x /usr/local/bin/xscreensaver ; then + ac_default_prefix=/opt/xscreensaver + fi + + ;; + *-solaris*) + + # Thanks for not making xmkmf find this by default, pinheads. + # And thanks for moving things around again, too. Is this + # really the standard location now? What happened to the + # joke that this kind of thing went in /opt? + # cthomp says "answer: CDE (Common Disorganized Environment)" + # + if test -f /usr/dt/include/Xm/Xm.h ; then + X_CFLAGS="$X_CFLAGS -I/usr/dt/include" + MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib" + + # Some versions of Slowlaris Motif require -lgen. But not all. Why? + AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"]) + fi + + ;; + *-darwin*) + + # On MacOS X (10.x with "fink"), many things are under /sw/. + # + if test -d /sw/include ; then + X_CFLAGS="-I/sw/include $X_CFLAGS" + X_LIBS="-L/sw/lib $X_LIBS" + fi + ;; + esac]) + +AC_DEFUN([AC_CHECK_GETIFADDRS], + [AC_CACHE_CHECK([for getifaddrs], ac_cv_have_getifaddrs, + [AC_TRY_COMPILE([#include + #include + #include + #include ], + [struct ifaddrs *ifa; + getifaddrs (&ifa); + ifa->ifa_next = 0; + ifa->ifa_addr->sa_family = 0;], + [ac_cv_have_getifaddrs=yes], + [ac_cv_have_getifaddrs=no])]) + if test "$ac_cv_have_getifaddrs" = yes ; then + AC_DEFINE(HAVE_GETIFADDRS) + fi]) + +AC_DEFUN([AC_TYPE_SOCKLEN_T], + [AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #include ]], [[ + socklen_t socklen; + ]])],[ac_cv_type_socklen_t=yes],[ac_cv_type_socklen_t=no])]) + if test "$ac_cv_type_socklen_t" != yes; then + AC_DEFINE(socklen_t, int, + [Define to `int' if or does not define.]) + fi]) + +############################################################################### +# +# Some utility functions to make checking for X things easier. +# +############################################################################### + +# Like AC_CHECK_HEADER, but it uses the already-computed -I directories. +# +AC_DEFUN([AC_CHECK_X_HEADER], [ + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + AC_CHECK_HEADER([$1],[$2],[$3],[$4]) + CPPFLAGS="$ac_save_CPPFLAGS"]) + +# Like AC_EGREP_HEADER, but it uses the already-computed -I directories. +# +AC_DEFUN([AC_EGREP_X_HEADER], [ + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + AC_EGREP_HEADER([$1], [$2], [$3], [$4]) + CPPFLAGS="$ac_save_CPPFLAGS"]) + +# Like AC_TRY_COMPILE, but it uses the already-computed -I directories. +# +AC_DEFUN([AC_TRY_X_COMPILE], [ + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + AC_TRY_COMPILE([$1], [$2], [$3], [$4]) + CPPFLAGS="$ac_save_CPPFLAGS"]) + + +# Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories. +# Use this sparingly; it probably doesn't work very well on X programs. +# +AC_DEFUN([AC_CHECK_X_LIB], [ + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LDFLAGS="$LDFLAGS" +# ac_save_LIBS="$LIBS" + + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" + + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` + AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5]) + CPPFLAGS="$ac_save_CPPFLAGS" + LDFLAGS="$ac_save_LDFLAGS" +# LIBS="$ac_save_LIBS" + ]) + +# Like AC_TRY_RUN, but it uses the already-computed -I directories. +# (But not the -L directories!) +# +AC_DEFUN([AC_TRY_X_RUN], [ + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` + AC_TRY_RUN([$1], [$2], [$3], [$4]) + CPPFLAGS="$ac_save_CPPFLAGS"]) + + + +# Usage: HANDLE_X_PATH_ARG([variable_name], +# [--command-line-option], +# [descriptive string]) +# +# All of the --with options take three forms: +# +# --with-foo (or --with-foo=yes) +# --without-foo (or --with-foo=no) +# --with-foo=/DIR +# +# This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees +# a directory (string beginning with a slash) it checks to see whether +# /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS +# as appropriate. +# +AC_DEFUN([HANDLE_X_PATH_ARG], [ + case "$[$1]" in + yes) ;; + no) ;; + + /*) + AC_MSG_CHECKING([for [$3] headers]) + d=$[$1]/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + AC_MSG_RESULT($d) + else + AC_MSG_RESULT(not found ($d: no such directory)) + fi + + AC_MSG_CHECKING([for [$3] libs]) + d=$[$1]/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + AC_MSG_RESULT($d) + else + AC_MSG_RESULT(not found ($d: no such directory)) + fi + + # replace the directory string with "yes". + [$1]_req="yes" + [$1]=$[$1]_req + ;; + + *) + echo "" + echo "error: argument to [$2] must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + ]) + + +############################################################################### +############################################################################### +# +# End of function definitions. Now start actually executing stuff. +# +############################################################################### +############################################################################### + +# WTF! autoconf emits this *way* too late. Do it earlier. +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# random compiler setup +AC_CANONICAL_HOST + +ac_original_cc=$CC +AC_PROG_CC +AC_PROG_CC_ANSI +AC_NO_LONG_STRING_WARNINGS +AC_NO_MISPLACED_DECLARATIONS +AC_NO_OBJECTIVE_C +AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE +AC_PROG_CPP +AC_C_CONST +AC_C_INLINE +AC_EXEEXT +AC_DEMAND_BC + +# stuff for Makefiles +AC_PROG_INSTALL +AC_PROG_INSTALL_DIRS +AC_PROG_MAKE_SET + +# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'. +# That's wrong: it should be set to '${INSTALL}', so that one can +# implement the "install-strip" target properly (strip executables, +# but do not try to strip scripts.) +# +INSTALL_SCRIPT='${INSTALL}' + +# random libc stuff +AC_HEADER_STDC +AC_CHECK_HEADERS(unistd.h inttypes.h) +AC_TYPE_MODE_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SIGNAL +AC_HEADER_TIME +AC_HEADER_SYS_WAIT +AC_HEADER_DIRENT +AC_GETTIMEOFDAY_ARGS +AC_SYS_LARGEFILE +AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk) +AC_CHECK_FUNCS(sigaction syslog realpath setrlimit) +AC_CHECK_FUNCS(setlocale sqrtf) +AC_CHECK_FUNCS(getaddrinfo) +AC_CHECK_MEMBERS([struct sockaddr.sa_len],,, [[#include ]]) +AC_CHECK_ICMP +AC_CHECK_ICMPHDR +AC_CHECK_GETIFADDRS +AC_TYPE_SOCKLEN_T +AC_CHECK_HEADERS(crypt.h sys/select.h) +AC_PROG_PERL + +if test -z "$PERL" ; then + # don't let it be blank... + PERL=/usr/bin/perl +fi + +AC_PATH_XTRA + +if test "$have_x" != yes; then + AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.) +fi + +AC_X_RANDOM_PATHS +AC_XPOINTER + +AC_MSG_CHECKING(whether this is MacOS X) + ac_macosx=no + ac_irix=no + case "$host" in + *-apple-darwin* ) + ac_macosx=yes + ;; + *-irix* ) + ac_irix=yes + ;; + esac +AC_MSG_RESULT($ac_macosx) + + +############################################################################### +# +# pkg-config +# +############################################################################### + +AC_PATH_TOOL(pkg_config, pkg-config) + +if test -z "$pkg_config" ; then + AC_MSG_WARN([pkg-config not found!]) + pkg_config="false" +fi + + +# Utility function for running pkg-config-based tests... +# +pkgs='' +pkg_check_version() { + if test "$ok" = yes ; then + req="$1" + min="$2" + AC_MSG_CHECKING(for $req) + if $pkg_config --exists "$req" ; then + vers=`$pkg_config --modversion "$req"` + if $pkg_config --exists "$req >= $min" ; then + AC_MSG_RESULT($vers) + pkgs="$pkgs $req" + return 1 + else + AC_MSG_RESULT($vers (wanted >= $min)) + ok=no + return 0 + fi + else + AC_MSG_RESULT(no) + ok=no + return 0 + fi + fi +} + + +############################################################################### +# +# Gettext support +# +############################################################################### + +IT_PROG_INTLTOOL +GETTEXT_PACKAGE=xscreensaver +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", + [This is the name of the gettext package to use.]) +AC_SUBST(GETTEXT_PACKAGE) + +ALL_LINGUAS="da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" +AM_GLIB_GNU_GETTEXT +MKINSTALLDIRS="$INSTALL_DIRS" + + +############################################################################### +# +# Check for -lXmu (some fucked up vendors don't ship it...) +# +############################################################################### + +have_xmu=no +AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],, + [#include + #include + #include ]) +if test "$have_xmu" = no ; then + XMU_SRCS='$(UTILS_SRC)/xmu.c' + XMU_OBJS='$(UTILS_BIN)/xmu.o' + XMU_LIBS='' +else + XMU_SRCS='' + XMU_OBJS='' + XMU_LIBS='-lXmu' + AC_DEFINE(HAVE_XMU) +fi + + +############################################################################### +# +# Check for the SunOS 4.1.x _get_wmShellWidgetClass bug. +# See comp.windows.x FAQ question 124. The right fix is to +# get OpenWindows 3.0 patches 100512-02 and 100573-03. +# +############################################################################### + +if test "$have_xmu" = yes ; then + case "$host" in + *-sunos4*) + AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug], + ac_cv_sunos_xmu_bug, + [ac_save_LDFLAGS="$LDFLAGS" + if test \! -z "$x_libraries" ; then + LDFLAGS="$LDFLAGS -L$x_libraries" + fi + # Note: this trick never works! (Generally.) + # We're only getting away with using AC_TRY_LINK + # with X libraries because we know it's SunOS. + LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm" + AC_TRY_LINK(,, + [ac_cv_sunos_xmu_bug=no], + [ac_cv_sunos_xmu_bug=yes]) + LDFLAGS="$ac_save_LDFLAGS"]) + if test "$ac_cv_sunos_xmu_bug" = yes ; then + AC_CACHE_CHECK([whether the compiler understands -static], + ac_cv_ld_static, + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -static" + AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no]) + LDFLAGS="$ac_save_LDFLAGS"]) + if test "$ac_cv_ld_static" = yes ; then + LDFLAGS="$LDFLAGS -static" + else + LDFLAGS="$LDFLAGS -Bstatic" + fi + fi + ;; + esac +fi + +############################################################################### +# +# The --with-x-app-defaults option +# +############################################################################### + +#### H1 + +AC_ARG_WITH(app-defaults,[ +Installation Options: + + --prefix=PREFIX Install root of architecture-independent files. + --exec-prefix=EPREFIX Install root of architecture-dependent files. + --with-app-defaults=DIR Where to install the default settings file.], + [ac_cv_x_app_defaults="$withval"], + [eval ac_x_app_defaults="$withval"]) +AC_PATH_X_APP_DEFAULTS + + +############################################################################### +# +# Handle the --with-hackdir option +# +############################################################################### + +have_hackdir=yes +with_hackdir_req=unspecified +AC_ARG_WITH(hackdir, +[ --with-hackdir=DIR Where to install the hundreds of demo executables.], + [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes]) + +if test x"$with_hackdir" = xyes; then + HACKDIR='${libexecdir}/xscreensaver' +elif test x"$with_hackdir" = xno; then + HACKDIR='${bindir}' +else + HACKDIR=$with_hackdir +fi + +# canonicalize slashes. +HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` + +# Expand HACKDIR as HACKDIR_FULL +HACKDIR_FULL=`eval eval eval eval eval eval eval eval eval echo $HACKDIR` + +# This option used to be called --enable-subdir; make sure that is no longer +# used, since configure brain-damagedly ignores unknown --enable options. + +obsolete_enable= +AC_ARG_ENABLE(subdir,,[obsolete_enable=yes]) +if test -n "$obsolete_enable"; then + echo "error: the --enable-subdir option has been replaced with" + echo " the new --with-hackdir option; see \`configure --help'" + echo " for more information." + exit 1 +fi + + +############################################################################### +# +# Handle the --with-configdir option +# +############################################################################### + +have_configdir=yes +with_configdir_req=unspecified +AC_ARG_WITH(configdir, +[ --with-configdir=DIR Where to install the GUI configuration files.], + [with_configdir="$withval"; with_configdir_req="$withval"], + [with_configdir=yes]) + +if test x"$with_configdir" = xyes; then + HACK_CONF_DIR='${datadir}/xscreensaver/config' +elif test x"$with_configdir" = xno; then + echo "error: must be yes, or a pathname: --with-configdir=$with_configdir" + exit 1 +else + # there must be a better way than this... + if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then + # absolute path + HACK_CONF_DIR=$with_configdir + else + # relative path + HACK_CONF_DIR="\${exec_prefix}$with_configdir" + fi +fi + + + +############################################################################### +# +# Check for the DPMS server extension. +# +############################################################################### + +#### H1 + +have_dpms=no +with_dpms_req=unspecified +AC_ARG_WITH(dpms-ext, +[ +Server Extension Options: + + --with-dpms-ext Include support for power management.], + [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes]) + +HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS) + +if test "$with_dpms" = yes; then + + # first check for dpms.h + AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],, + [#include + #include ]) + + # if that succeeded, then check for the DPMS code in the libraries + if test "$have_dpms" = yes; then + + # first look in -lXext (this is where it is with XFree86 4.0) + have_dpms=no + AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11) + + # if that failed, look in -lXdpms (this is where it was in XFree86 3.x) + if test "$have_dpms" = no; then + AC_CHECK_X_LIB(Xdpms, DPMSInfo, + [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true], + -lXext -lX11) + fi + fi + + + # if that succeeded, then we've really got it. + if test "$have_dpms" = yes; then + AC_DEFINE(HAVE_DPMS_EXTENSION) + fi + +elif test "$with_dpms" != no; then + echo "error: must be yes or no: --with-dpms-ext=$with_dpms" + exit 1 +fi + + +############################################################################### +# +# Check for the XF86VMODE server extension (for virtual screens.) +# +############################################################################### + +have_xf86vmode=no +with_xf86vmode_req=unspecified +AC_ARG_WITH(xf86vmode-ext, +[ --with-xf86vmode-ext Include support for virtual screens.], + [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"], + [with_xf86vmode=yes]) + +HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode) + +VIDMODE_LIBS="" + +if test "$with_xf86vmode" = yes; then + + # first check for xf86vmode.h + AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],, + [#include ]) + + # if that succeeded, then check for the -lXxf86vm + if test "$have_xf86vmode" = yes; then + have_xf86vmode=no + AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort, + [have_xf86vmode=yes; + VIDMODE_LIBS="-lXxf86vm"; + SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"], + [true], -lXext -lX11) + fi + + # if that succeeded, then we've really got it. + if test "$have_xf86vmode" = yes; then + AC_DEFINE(HAVE_XF86VMODE) + fi + +elif test "$with_xf86vmode" != no; then + echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode" + exit 1 +fi + + +############################################################################### +# +# Check for the XINERAMA server extension. +# +############################################################################### + +have_xinerama=no +with_xinerama_req=unspecified +AC_ARG_WITH(xinerama-ext, +[ --with-xinerama-ext Include support for multiple monitors.], + [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes]) + +HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA) + +if test "$with_xinerama" = yes; then + + # first check for Xinerama.h + AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],, + [#include ]) + + # if that succeeded, then check for the XINERAMA code in the libraries + if test "$have_xinerama" = yes; then + + # first look in -lXext + have_xinerama=no + AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true], + -lXext -lX11) + + # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.) + if test "$have_xinerama" = no; then + AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens, + [have_xinerama=yes; XINERAMA_LIBS="-lXinerama"], + [true], -lXext -lX11) + fi + fi + + # if that succeeded, then we've really got it. + if test "$have_xinerama" = yes; then + AC_DEFINE(HAVE_XINERAMA) + fi + +elif test "$with_xinerama" != no; then + echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama" + exit 1 +fi + + +############################################################################### +# +# Check for the RANDR (Resize and Rotate) server extension. +# +# We need this to detect when the resolution of the desktop +# has changed out from under us (this is a newer, different +# mechanism than the XF86VMODE virtual viewports.) +# +############################################################################### + +have_randr=no +with_randr_req=unspecified +AC_ARG_WITH(randr-ext, +[ --with-randr-ext Include different support for multiple monitors.], + [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes]) + +HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR) + +if test "$with_randr" = yes; then + + # first check for Xrandr.h + AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],, + [#include ]) + + # if that succeeded, then check for the XRR code in the libraries + if test "$have_randr" = yes; then + + # RANDR probably needs -lXrender + xrender_libs= + AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder, + [xrender_libs="-lXrender"], [true], -lXext -lX11) + + # first look for RANDR in -lXext + have_randr=no + AC_CHECK_X_LIB(Xext, XRRGetScreenInfo, + [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"], + [true], $xrender_libs -lXext -lX11) + + # if that failed, look in -lXrandr + if test "$have_randr" = no; then + AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo, + [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"], + [true], $xrender_libs -lXext -lX11) + fi + fi + + # if that succeeded, then we've really got it. + if test "$have_randr" = yes; then + AC_DEFINE(HAVE_RANDR) + + # Now check for version 1.2 in the same libs. + # Try to compile, since on MacOS 10.5.7, headers are older than libs! + AC_CACHE_CHECK([for XRRGetScreenResources], ac_cv_randr_12, + [ac_cv_randr_12=no + AC_TRY_X_COMPILE([#include + #include + #include ], + [XRRScreenResources *res = + XRRGetScreenResources (0, 0);], + [ac_cv_randr_12=yes], + [ac_cv_randr_12=no])]) + if test "$ac_cv_randr_12" = yes ; then + AC_DEFINE(HAVE_RANDR_12) + fi +# AC_CHECK_X_LIB(c, XRRGetOutputInfo, [AC_DEFINE(HAVE_RANDR_12)], +# [true], $SAVER_LIBS) + fi + + +elif test "$with_randr" != no; then + echo "error: must be yes or no: --with-randr-ext=$with_randr" + exit 1 +fi + + +############################################################################### +# +# Check for XF86MiscSetGrabKeysState (but only bother if we are already +# using other XF86 stuff.) +# +############################################################################### + +have_xf86miscsetgrabkeysstate=no +if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then + AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState, + [have_xf86miscsetgrabkeysstate=yes], + [true], -lXext -lX11) + if test "$have_xf86miscsetgrabkeysstate" = yes ; then + SAVER_LIBS="$SAVER_LIBS -lXxf86misc" + AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE) + fi +fi + + +############################################################################### +# +# Check for the XINPUT server extension. +# +############################################################################### + +have_xinput=no +with_xinput_req=unspecified +AC_ARG_WITH(xinput-ext, +[ --with-xinput-ext Include support for the XInput extension.], + [with_xinput="$withval"; with_xinput_req="$withval"], [with_xinput=yes]) + +HANDLE_X_PATH_ARG(with_xinput, --with-xinput-ext, XINPUT) + +if test "$with_xinput" = yes; then + + # first check for Xinput.h + AC_CHECK_X_HEADER(X11/extensions/XInput.h, [have_xinput=yes],, + [#include ]) + + # if that succeeded, then check for libXi + if test "$have_xinput" = yes; then + have_xinput=no + AC_CHECK_X_LIB(Xi, XListInputDevices, + [have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi"], + [true], -lXext -lX11) + fi + + # if that succeeded, then we've really got it. + if test "$have_xinput" = yes; then + AC_DEFINE(HAVE_XINPUT) + fi + +elif test "$with_xinput" != no; then + echo "error: must be yes or no: --with-xinput-ext=$with_xinput" + exit 1 +fi + + +############################################################################### +# +# Check for the XF86VMODE server extension (for gamma fading.) +# +############################################################################### + +have_xf86gamma=no +have_xf86gamma_ramp=no +with_xf86gamma_req=unspecified +AC_ARG_WITH(xf86gamma-ext, +[ --with-xf86gamma-ext Include support for XFree86 gamma fading.], + [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"], + [with_xf86gamma=yes]) + +HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma) + +if test "$with_xf86gamma" = yes; then + + # first check for xf86vmode.h, if we haven't already + if test "$have_xf86vmode" = yes; then + have_xf86gamma=yes + else + AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],, + [#include ]) + fi + + # if that succeeded, then check for the -lXxf86vm + if test "$have_xf86gamma" = yes; then + have_xf86gamma=no + AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma, + [have_xf86gamma=yes], + [true], -lXext -lX11) + fi + + # check for the Ramp versions of the functions too. + if test "$have_xf86gamma" = yes; then + have_xf86gamma_ramp=no + AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp, + [have_xf86gamma_ramp=yes], + [true], -lXext -lX11) + fi + + # if those tests succeeded, then we've really got the functions. + if test "$have_xf86gamma" = yes; then + AC_DEFINE(HAVE_XF86VMODE_GAMMA) + fi + + if test "$have_xf86gamma_ramp" = yes; then + AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP) + fi + + # pull in the lib, if we haven't already + if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then + SAVER_LIBS="$SAVER_LIBS -lXxf86vm" + fi + +elif test "$with_xf86gamma" != no; then + echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode" + exit 1 +fi + + +############################################################################### +# +# Check for the XIDLE server extension. +# +############################################################################### + +have_xidle=no +with_xidle_req=unspecified +AC_ARG_WITH(xidle-ext, +[ --with-xidle-ext Include support for the X11R5 XIDLE extension.], + [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes]) + +HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE) + +if test "$with_xidle" = yes; then + AC_CHECK_X_HEADER(X11/extensions/xidle.h, + [have_xidle=yes + AC_DEFINE(HAVE_XIDLE_EXTENSION)],, + [#include ]) +elif test "$with_xidle" != no; then + echo "error: must be yes or no: --with-xidle-ext=$with_xidle" + exit 1 +fi + + +############################################################################### +# +# Check for the MIT-SCREEN-SAVER server extension. +# +############################################################################### + +have_mit=no +with_mit=no +with_mit_req=unspecified +#AC_ARG_WITH(mit-ext, +#[ --with-mit-ext Include support for the MIT-SCREEN-SAVER extension.], +# [with_mit="$withval"; with_mit_req="$withval"],[with_mit=no]) +#HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER) + +if test "$with_mit" = yes; then + AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],, + [#include ]) + + # Now check to see if it's really in the library; XF86Free-3.3 ships + # scrnsaver.h, but doesn't include the code in libXext.a, the idiots! + # + if test "$have_mit" = yes; then + AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [true], [have_mit=no], -lm) + + if test "$have_mit" = no; then + # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead + # of in Xext. Thank you master, may I have another. + AC_CHECK_X_LIB(XExExt, XScreenSaverRegister, + [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"], + [true], -lX11 -lXext -lm) + fi + + if test "$have_mit" = no; then + # Double fuck! Looks like some versions of XFree86 (whichever version + # it is that comes with RedHat Linux 2.0 -- I can't find a version + # number) put this garbage in Xss instead of Xext. Thank you master, + # may I have another. + AC_CHECK_X_LIB(Xss, XScreenSaverRegister, + [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"], + [true], -lX11 -lXext -lm) + fi + + if test "$have_mit" = yes; then +# AC_DEFINE(HAVE_MIT_SAVER_EXTENSION) + echo "Using the MIT-SCREEN-SAVER extension will crash your server. Don't." + exit 1 + fi + + fi + +elif test "$with_mit" != no; then + echo "error: must be yes or no: --with-mit-ext=$with_mit" + exit 1 +fi + + +############################################################################### +# +# Check for the SGI SCREEN_SAVER server extension. +# +############################################################################### + +have_sgi=no +with_sgi_req=unspecified +AC_ARG_WITH(sgi-ext, +[ --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.], + [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=$ac_irix]) + +HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER) + +if test "$with_sgi" = yes; then + AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, + [have_sgi=yes + AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],, + [#include ]) + +elif test "$with_sgi" != no; then + echo "error: must be yes or no: --with-sgi-ext=$with_sgi" + exit 1 +fi + + +############################################################################### +# +# Check for the SGI-VIDEO-CONTROL server extension. +# +############################################################################### + +have_sgivc=no +with_sgivc_req=unspecified +AC_ARG_WITH(sgivc-ext, +[ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.], + [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=$ac_irix]) + +HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL) + +if test "$with_sgivc" = yes; then + + # first check for XSGIvc.h + AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],, + [#include ]) + + # if that succeeded, then check for the -lXsgivc + if test "$have_sgivc" = yes; then + have_sgivc=no + AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap, + [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true], + -lXext -lX11) + fi + + # if that succeeded, then we've really got it. + if test "$have_sgivc" = yes; then + AC_DEFINE(HAVE_SGI_VC_EXTENSION) + fi + +elif test "$with_sgivc" != no; then + echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc" + exit 1 +fi + + +############################################################################### +# +# Check for the SGI XReadDisplay server extension. +# +############################################################################### + +have_readdisplay=no +with_readdisplay_req=unspecified +AC_ARG_WITH(readdisplay, +[ --with-readdisplay Include support for the SGI XReadDisplay extension.], + [with_readdisplay="$withval"; with_readdisplay_req="$withval"], + [with_readdisplay=$ac_irix]) + +HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay) + +if test "$with_readdisplay" = yes; then + AC_CHECK_X_HEADER(X11/extensions/readdisplay.h, + AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),, + [#include ]) +elif test "$with_readdisplay" != no; then + echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" + exit 1 +fi + + +############################################################################### +# +# Check for the XSHM server extension. +# +############################################################################### + +have_xshm=no +with_xshm_req=unspecified +AC_ARG_WITH(xshm-ext, +[ --with-xshm-ext Include support for the Shared Memory extension.], + [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes]) + +HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM) + +if test "$with_xshm" = yes; then + + # first check for Xshm.h. + AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],, + [#include ]) + + # if that succeeded, then check for sys/ipc.h. + if test "$have_xshm" = yes; then + have_xshm=no + AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes]) + fi + + # if that succeeded, then check for sys/shm.h. + if test "$have_xshm" = yes; then + have_xshm=no + AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes]) + fi + + # AIX is pathological, as usual: apparently it's normal for the Xshm headers + # to exist, but the library code to not exist. And even better, the library + # code is in its own library: libXextSam.a. So, if we're on AIX, and that + # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and + # that's not quite right, but close enough.) + # + case "$host" in + *-aix*) + if [ `uname -v` -eq 3 ]; then + have_xshm=no + AC_CHECK_X_LIB(XextSam, XShmQueryExtension, + [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"], + [true], -lX11 -lXext -lm) + fi + ;; + esac + + # if that succeeded, then we've really got it. + if test "$have_xshm" = yes; then + AC_DEFINE(HAVE_XSHM_EXTENSION) + fi + +elif test "$with_xshm" != no; then + echo "error: must be yes or no: --with-xshm-ext=$with_xshm" + exit 1 +fi + + +############################################################################### +# +# Check for the DOUBLE-BUFFER server extension. +# +############################################################################### + +have_xdbe=no +with_xdbe_req=unspecified +AC_ARG_WITH(xdbe-ext, +[ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.], + [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes]) + +HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER) + +if test "$with_xdbe" = yes; then + + AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],, + [#include ]) + if test "$have_xdbe" = yes; then + AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION) + fi + +elif test "$with_xdbe" != no; then + echo "error: must be yes or no: --with-xdbe-ext=$with_xshm" + exit 1 +fi + + +############################################################################### +# +# Check for HP XHPDisableReset and XHPEnableReset. +# +############################################################################### + +AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h]) +AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h, + [AC_DEFINE(HAVE_XHPDISABLERESET) + SAVER_LIBS="-lXhp11 $SAVER_LIBS" + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) + + +############################################################################### +# +# Check for /proc/interrupts. +# +############################################################################### + +have_proc_interrupts=no +with_proc_interrupts_req=unspecified +AC_ARG_WITH(proc-interrupts, +[ --with-proc-interrupts Include support for consulting the /proc/interrupts + file to notice keyboard activity.], + [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"], + [with_proc_interrupts=yes]) + +if test "$with_proc_interrupts" = yes; then + + # Note that we may be building in an environment (e.g. Debian buildd chroot) + # without a proper /proc filesystem. If /proc/interrupts exists, then we'll + # check that it has the bits we need, but otherwise we'll just go on faith. + # + have_proc_interrupts=yes + + if test -f /proc/interrupts; then + AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data], + ac_cv_have_proc_interrupts, + [ac_cv_have_proc_interrupts=no + if grep 'keyboard\|i8042' /proc/interrupts >/dev/null 2>&1 ; then + ac_cv_have_proc_interrupts=yes + fi + ]) + have_proc_interrupts=$ac_cv_have_proc_interrupts + fi + + if test "$have_proc_interrupts" = yes; then + AC_DEFINE(HAVE_PROC_INTERRUPTS) + fi + +elif test "$with_proc_interrupts" != no; then + echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts" + exit 1 +fi + + +############################################################################### +# +# Check for /proc/*/oom_score_adj. +# +############################################################################### + +have_proc_oom=no +with_proc_oom_req=unspecified +AC_ARG_WITH(proc-oom, +[ --with-proc-oom Include support for disabling the OOM-killer.], + [with_proc_oom="$withval"; with_proc_oom_req="$withval"], + [with_proc_oom=yes]) + +if test "$with_proc_oom_req" = yes; then + + # Note that we may be building in an environment (e.g. Debian buildd chroot) + # without a proper /proc filesystem. + # + have_proc_oom=yes + AC_DEFINE(HAVE_PROC_OOM) + +elif test "$with_proc_oom_req" = unspecified; then + + have_proc_oom=no + AC_CACHE_CHECK([whether /proc/$$/oom_score_adj exists], + ac_cv_have_proc_oom, + [ac_cv_have_proc_oom=no + if test -f /proc/$$/oom_score_adj; then + ac_cv_have_proc_oom=yes + fi + ]) + have_proc_oom=$ac_cv_have_proc_oom + + if test "$have_proc_oom" = yes; then + AC_DEFINE(HAVE_PROC_OOM) + fi + +elif test "$with_proc_oom" != no; then + echo "error: must be yes or no: --with-proc-oom=$with_proc_oom" + exit 1 +fi + + +############################################################################### +# +# Check for -lsystemd +# +############################################################################### + +have_systemd=no +with_systemd_req=unspecified +systemd_halfassed=no +systemd_too_old=no +AC_ARG_WITH(systemd, +[ --with-systemd Support systemd requests to lock on suspend, and to + allow video players to inhibit the screen saver.], + [with_systemd="$withval"; with_systemd_req="$withval"], + [with_systemd=yes]) + +HANDLE_X_PATH_ARG(with_systemd, --with-systemd, systemd) + +if test "$with_systemd" != yes -a "$with_systemd" != no ; then + echo "error: must be yes or no: --with-systemd=$with_systemd" + exit 1 +fi + +if test "$with_systemd" = yes; then + + pkgs='' + ok="yes" + pkg_check_version libsystemd 221 + have_systemd="$ok" + + if test "$have_systemd" = no; then + if $pkg_config --exists libsystemd ; then + systemd_too_old=yes + fi + fi + + if test "$have_systemd" = yes; then + AC_CACHE_CHECK([for libsystemd includes], ac_cv_systemd_config_cflags, + [ac_cv_systemd_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for libsystemd libs], ac_cv_systemd_config_libs, + [ac_cv_systemd_config_libs=`$pkg_config --libs $pkgs`]) + fi + + ac_systemd_config_cflags=$ac_cv_systemd_config_cflags + ac_systemd_config_libs=$ac_cv_systemd_config_libs + + if test "$have_systemd" = yes; then + # + # we appear to have libsystemd; check for headers/libs to be sure. + # + ac_save_systemd_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_systemd_config_cflags" + + have_systemd=no + AC_CHECK_X_HEADER(systemd/sd-bus.h, [have_systemd=yes]) + + CPPFLAGS="$ac_save_systemd_CPPFLAGS" + fi + + if test "$have_systemd" = yes; then + # we have the headers, now check for the libraries + have_systemd=no + systemd_halfassed=yes + + AC_MSG_RESULT(checking for libsystemd usability...) + AC_CHECK_X_LIB(c, sd_bus_open_system, [have_systemd=yes],, + $ac_systemd_config_libs -lX11 -lXext -lm) + fi + + if test "$have_systemd" = no; then + AC_MSG_RESULT(checking for libsystemd usability... no) + fi +fi + +if test "$have_systemd" = yes; then + INCLUDES="$INCLUDES $ac_systemd_config_cflags" + EXES_SYSTEMD='$(EXES_SYSTEMD)' + AC_DEFINE(HAVE_LIBSYSTEMD) +else + EXES_SYSTEMD='' +fi + + +############################################################################### +# +# The --enable-locking option +# +# Note: "configure --help" list all "--enable" options before any +# "--with" options, so we document the --enable options inline with +# the --with options where it looks better, instead of in AC_ARG_ENABLE +# where it would make sense, sigh... +# +############################################################################### + +AC_ARG_ENABLE(locking, +[], # This is documented elsewhere because of --enable/--with option sorting. + [enable_locking="$enableval"], + [if test "$ac_macosx" = yes; then + # We can't lock on MacOS X, so default to not compiling in support for it. + # But allow --enable-locking to override that, so I can debug Linux locking + # under MacOS X11. + enable_locking=no + else + enable_locking=yes + fi]) +if test "$enable_locking" = yes; then + true +elif test "$enable_locking" = no; then + AC_DEFINE(NO_LOCKING) +else + echo "error: must be yes or no: --enable-locking=$enable_locking" + exit 1 +fi + + +############################################################################## +# +# Whether to allow root password to unblank. +# +############################################################################### + +AC_ARG_ENABLE(root-passwd, +[], # This is documented elsewhere because of --enable/--with option sorting. + [enable_root_passwd="$enableval"],[enable_root_passwd=yes]) +if test "$enable_root_passwd" = yes; then + AC_DEFINE(ALLOW_ROOT_PASSWD) + true +elif test "$enable_root_passwd" != no; then + echo "error: must be yes or no: --enable-root-passwd=$enable_root_passwd" + exit 1 +fi + + +############################################################################### +# +# Check for PAM. +# +############################################################################### + +case "$host" in + *-solaris*) + # Solaris systems tend to come with PAM misconfigured. + # Don't build it by default, even if the headers exist. + with_pam_default=no + ;; + *) + # Default to building PAM support on all other systems, if it exists. + with_pam_default=yes + ;; +esac + +#### H1 + +have_pam=no +with_pam_req=unspecified + +AC_ARG_WITH(pam,[ +Screen Locking Options: + + --disable-locking Do not allow locking of the display at all. + --with-pam Include support for PAM (Pluggable Auth Modules.)], + [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default]) + +AC_ARG_WITH([pam_service_name], +[ --with-pam-service-name Set the name of the xscreensaver PAM service. + --enable-pam-account Whether PAM should check the result of account + modules when authenticating. Only do this if you + have "account" modules configured on your system. + --enable-root-passwd Allow the root passwd to unlock, if not using PAM.], + [pam_service_name="$withval"],[pam_service_name="xscreensaver"]) + +AC_ARG_ENABLE(pam-check-account-type, +[], # This is documented elsewhere because of --enable/--with option sorting. + [enable_pam_check_account_type="$enableval"],[enable_pam_check_account_type=no]) +if test "$enable_pam_check_account_type" = yes ; then + AC_DEFINE(PAM_CHECK_ACCOUNT_TYPE) + true +elif test "$enable_pam_check_account_type" != no ; then + echo "error: must be yes or no: --enable-pam-check-account-type=$enable_pam_check_account_type" + exit 1 +fi + +HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM) + +if test "$enable_locking" = yes -a "$with_pam" = yes; then + AC_CACHE_CHECK([for PAM], ac_cv_pam, + [AC_TRY_X_COMPILE([#include ],, + [ac_cv_pam=yes], + [ac_cv_pam=no])]) + if test "$ac_cv_pam" = yes ; then + have_pam=yes + AC_DEFINE(HAVE_PAM) + AC_DEFINE_UNQUOTED(PAM_SERVICE_NAME,"$pam_service_name") + + PASSWD_LIBS="${PASSWD_LIBS} -lpam" + + # libpam typically requires dlopen and dlsym. On FreeBSD, + # those are in libc. On Linux and Solaris, they're in libdl. + AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"]) + + # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt. + have_timedwait=no + AC_CHECK_LIB(c, sigtimedwait, + [have_timedwait=yes + AC_DEFINE(HAVE_SIGTIMEDWAIT)]) + if test "$have_timedwait" = no ; then + AC_CHECK_LIB(rt, sigtimedwait, [have_timedwait=yes + AC_DEFINE(HAVE_SIGTIMEDWAIT) + PASSWD_LIBS="${PASSWD_LIBS} -lrt"]) + fi + + AC_MSG_CHECKING(how to call pam_strerror) + AC_CACHE_VAL(ac_cv_pam_strerror_args, + [AC_TRY_X_COMPILE([#include + #include + #include ], + [pam_handle_t *pamh = 0; + char *s = pam_strerror(pamh, PAM_SUCCESS);], + [ac_pam_strerror_args=2], + [AC_TRY_X_COMPILE([#include + #include + #include ], + [char *s = + pam_strerror(PAM_SUCCESS);], + [ac_pam_strerror_args=1], + [ac_pam_strerror_args=0])]) + ac_cv_pam_strerror_args=$ac_pam_strerror_args]) + ac_pam_strerror_args=$ac_cv_pam_strerror_args + if test "$ac_pam_strerror_args" = 1 ; then + AC_MSG_RESULT(one argument) + elif test "$ac_pam_strerror_args" = 2 ; then + AC_DEFINE(PAM_STRERROR_TWO_ARGS) + AC_MSG_RESULT(two arguments) + else + AC_MSG_RESULT(unknown) + fi + +# Check pam_fail_delay + AC_MSG_CHECKING(pam_fail_delay in -lpam) + AC_CACHE_VAL(ac_cv_pam_fail_delay, + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="-lpam" + AC_TRY_LINK([#include ], + [pam_handle_t *pamh = 0; + unsigned int usec = 1; + int status = pam_fail_delay (pamh, usec);], + [ac_pam_fail_delay=yes], + [ac_pam_fail_delay=no]) + ac_cv_pam_fail_delay=$ac_pam_fail_delay, + LDFLAGS=$ac_save_LDFLAGS]) + + if test "$ac_pam_fail_delay" = yes ; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PAM_FAIL_DELAY) + else + AC_MSG_RESULT(no) + fi + + fi +fi + + +############################################################################### +# +# Check for Kerberos. +# +############################################################################### + +have_kerberos=no +have_kerberos5=no +with_kerberos_req=unspecified + +AC_ARG_WITH(kerberos, +[ --with-kerberos Include support for Kerberos authentication.], + [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes]) + +HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos) + +if test "$enable_locking" = yes -a "$with_kerberos" = yes; then + AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos, + [AC_TRY_X_COMPILE([#include ],, + [ac_cv_kerberos=yes], + [ac_cv_kerberos=no])]) + AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5, + [AC_TRY_X_COMPILE([#include ],, + [ac_cv_kerberos5=yes], + [ac_cv_kerberos5=no])]) + + if test "$ac_cv_kerberos" = yes ; then + have_kerberos=yes + AC_DEFINE(HAVE_KERBEROS) + fi + + if test "$ac_cv_kerberos5" = yes ; then + + # Andrew Snare wrote: + # + # You were assuming that if kerberosV (krb5) was found, then kerberosIV + # (krb4) was also available. This turns out not to be the case with + # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV + # is optional. + # + # So, disable kerberosV support if libkrb4 can't be found. + # This is not the best solution, but it makes the compile not fail. + # + AC_CHECK_X_LIB(krb4, krb_get_tf_realm, + [have_kerberos=yes], + [have_kerberos=no]) + if test "$have_kerberos" = yes ; then + have_kerberos5=yes + AC_DEFINE(HAVE_KERBEROS) + AC_DEFINE(HAVE_KERBEROS5) + else + have_kerberos5=no + AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5]) + fi + + fi + + if test "$have_kerberos5" = yes ; then + # from Matt Knopp + # (who got it from amu@mit.edu) + + PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err" + + # jwz: MacOS X uses -lkrb5, but not -lcrypt + AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) + + elif test "$have_kerberos" = yes ; then + # from Tim Showalter for FreeBSD 4.2 + PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err" + fi + + if test "$have_kerberos" = yes ; then + AC_CHECK_FUNC(res_search,, + AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv", + AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos]) + )) + fi +fi + + +############################################################################### +# +# Check for the nine billion variants of shadow passwords... +# +############################################################################### + +need_setuid=no + +have_shadow=no +with_shadow_req=unspecified + +AC_ARG_WITH(shadow, +[ --with-shadow Include support for shadow password authentication.], + [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes]) + +HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password) + +if test "$enable_locking" = no ; then + with_shadow_req=no + with_shadow=no +fi + + +############################################################################### +# +# Check for Sun "adjunct" passwords. +# +############################################################################### + +if test "$with_shadow" = yes ; then + AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct, + [AC_TRY_X_COMPILE([#include + #include + #include + #include + #include + #include ], + [struct passwd_adjunct *p = getpwanam("nobody"); + const char *pw = p->pwa_passwd;], + [ac_cv_sun_adjunct=yes], + [ac_cv_sun_adjunct=no])]) + if test "$ac_cv_sun_adjunct" = yes; then + have_shadow_adjunct=yes + have_shadow=yes + need_setuid=yes + fi +fi + + +############################################################################### +# +# Check for DEC and SCO so-called "enhanced" security. +# +############################################################################### + +if test "$with_shadow" = yes ; then + AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd, + [AC_TRY_X_COMPILE([#include + #include + #include + #include + #include + #include ], + [struct pr_passwd *p; + const char *pw; + set_auth_parameters(0, 0); + check_auth_parameters(); + p = getprpwnam("nobody"); + pw = p->ufld.fd_encrypt;], + [ac_cv_enhanced_passwd=yes], + [ac_cv_enhanced_passwd=no])]) + if test $ac_cv_enhanced_passwd = yes; then + have_shadow_enhanced=yes + have_shadow=yes + need_setuid=yes + + # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx) + # (I'm told it needs -lcurses too, but I don't understand why.) + # But on DEC, it's in -lsecurity. + # + AC_CHECK_LIB(prot, getprpwnam, + [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"], + [AC_CHECK_LIB(security, getprpwnam, + [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])], + [-lx]) + fi +fi + +############################################################################### +# +# Check for HP's entry in the "Not Invented Here" Sweepstakes. +# +############################################################################### + +if test "$with_shadow" = yes ; then + AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd, + [AC_TRY_X_COMPILE([#include + #include + #include + #include + #include + #include ], + [struct s_passwd *p = getspwnam("nobody"); + const char *pw = p->pw_passwd;], + [ac_cv_hpux_passwd=yes], + [ac_cv_hpux_passwd=no])]) + if test "$ac_cv_hpux_passwd" = yes; then + have_shadow_hpux=yes + have_shadow=yes + need_setuid=yes + + # on HPUX, bigcrypt is in -lsec + AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"]) + fi +fi + + +############################################################################### +# +# Check for FreeBSD-style shadow passwords. +# +# On FreeBSD, getpwnam() and friends work just like on non-shadow- +# password systems -- except you only get stuff in the pw_passwd field +# if the running program is setuid. So, guess that we've got this +# lossage to contend with if /etc/master.passwd exists, and default to +# a setuid installation. +# +############################################################################### + +if test "$with_shadow" = yes ; then + AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd, + [if test -f /etc/master.passwd ; then + ac_cv_master_passwd=yes + else + ac_cv_master_passwd=no + fi]) + if test "$ac_cv_master_passwd" = yes; then + need_setuid=yes + fi +fi + + +############################################################################### +# +# Check for traditional (ha!) shadow passwords. +# +############################################################################### + +if test "$with_shadow" = yes ; then + AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow, + [AC_TRY_X_COMPILE([#include + #include + #include + #include + #include ], + [struct spwd *p = getspnam("nobody"); + const char *pw = p->sp_pwdp;], + [ac_cv_shadow=yes], + [ac_cv_shadow=no])]) + if test "$ac_cv_shadow" = yes; then + have_shadow=yes + need_setuid=yes + + # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc. + have_getspnam=no + AC_CHECK_LIB(c, getspnam, [have_getspnam=yes]) + if test "$have_getspnam" = no ; then + AC_CHECK_LIB(gen, getspnam, + [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"]) + fi + fi +fi + + +############################################################################### +# +# Check for other libraries needed for non-shadow passwords. +# +############################################################################### + +if test "$enable_locking" = yes ; then + + # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc. + have_crypt=no + AC_CHECK_LIB(c, crypt, [have_crypt=yes]) + if test "$have_crypt" = no ; then + AC_CHECK_LIB(crypt, crypt, + [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) + fi +fi + + +# Most of the above shadow mechanisms will have set need_setuid to yes, +# if they were found. But, on some systems, we need setuid even when +# using plain old vanilla passwords. +# +if test "$enable_locking" = yes ; then + case "$host" in + *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* ) + need_setuid=yes + ;; + esac +fi + + +if test "$have_shadow_adjunct" = yes ; then + AC_DEFINE(HAVE_ADJUNCT_PASSWD) +elif test "$have_shadow_enhanced" = yes ; then + AC_DEFINE(HAVE_ENHANCED_PASSWD) +elif test "$have_shadow_hpux" = yes ; then + AC_DEFINE(HAVE_HPUX_PASSWD) +elif test "$have_shadow" = yes ; then + AC_DEFINE(HAVE_SHADOW_PASSWD) +fi + + +############################################################################### +# +# Check for external password helper +# On SuSE, instead of having xscreensaver be a setuid program, they +# fork an external program that takes the password on stdin, and +# returns true if that password is a valid one. Then only that +# smaller program needs to be setuid. +# +# (Note that this external program is not a GUI: the GUI is still +# all in xscreensaver itself; the external program just does auth.) +# +############################################################################### + +have_passwd_helper=no +with_passwd_helper_req=unspecified + +AC_ARG_WITH(passwd-helper, +[ --with-passwd-helper Include support for an external password + verification helper program.], + [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no]) +# no HANDLE_X_PATH_ARG for this one + +if test "$enable_locking" = no ; then + with_passwd_helper_req=no + with_passwd_helper=no +fi + +case "$with_passwd_helper" in + ""|no) : ;; + /*) + AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper") + have_passwd_helper=yes;; + *) + echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2 + exit 1 +esac + + + +############################################################################### +# +# Check for -lgtk (and Gnome stuff) +# +############################################################################### + +#### H1 + +have_gtk=no +with_gtk_req=unspecified +AC_ARG_WITH(gtk, +[ +User Interface Options: + + --with-gtk Use the Gtk toolkit for the user interface.], + [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes]) + +# if --with-gtk=/directory/ was specified, remember that directory so that +# we can also look for the `gtk-config' program in that directory. +case "$with_gtk" in + /*) + gtk_dir="$with_gtk" + ;; + *) + gtk_dir="" + ;; +esac + +HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk) + +if test "$with_gtk" != yes -a "$with_gtk" != no ; then + echo "error: must be yes or no: --with-gtk=$with_gtk" + exit 1 +fi + + +parse_gtk_version_string() { + # M4 sucks!! + changequote(X,Y) + maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'` + min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'` + changequote([,]) + ac_gtk_version=`echo "$maj * 1000 + $min" | bc` + if test -z "$ac_gtk_version"; then + ac_gtk_version=unknown + ac_gtk_version_string=unknown + fi +} + +jurassic_gtk=no +gtk_halfassed=no + +if test "$with_gtk" = yes; then + have_gtk=no + + ok="yes" + pkg_check_version gtk+-2.0 2.22.0 ; ac_gtk_version_string="$vers" + pkg_check_version gmodule-2.0 2.0.0 + pkg_check_version libxml-2.0 2.4.6 + pkg_check_version gdk-pixbuf-2.0 2.0.0 + pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 + have_gtk="$ok" + + if test "$have_gtk" = no; then + if test -n "$ac_gtk_version_string" ; then + gtk_halfassed="$ac_gtk_version_string" + gtk_halfassed_lib="$req" + fi + fi + + if test "$have_gtk" = yes; then + parse_gtk_version_string + jurassic_gtk=no + fi + + if test "$have_gtk" = yes; then + AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags, + [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs, + [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`]) + fi + + ac_gtk_config_cflags=$ac_cv_gtk_config_cflags + ac_gtk_config_libs=$ac_cv_gtk_config_libs + + GTK_EXTRA_OBJS="" + GTK_DATADIR="" + if test "$have_gtk" = yes; then + GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + GTK_DATADIR="$GTK_DATADIR/share" + fi + + if test "$have_gtk" = yes; then + INCLUDES="$INCLUDES $ac_gtk_config_cflags" + GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs" + AC_DEFINE(HAVE_GTK) + AC_DEFINE(HAVE_GTK2) + AC_DEFINE(HAVE_XML) + fi +fi + + +# Check for the various Gnome help and URL loading programs. +# +WITH_BROWSER=gnome-open +if test "$have_gtk" = yes; then + AC_CHECK_PROGS(gnome_open_program, gnome-open) + AC_CHECK_PROGS(gnome_url_show_program, gnome-url-show) +fi + + +############################################################################### +# +# Check for -lXm. +# +############################################################################### + +have_motif=no +with_motif_req=unspecified +AC_ARG_WITH(motif, +[ --with-motif Use the Motif toolkit for the user interface.], + [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no]) + +HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif) + +if test "$with_motif" != yes -a "$with_motif" != no ; then + echo "error: must be yes or no: --with-motif=$with_motif" + exit 1 +fi + +if test "$with_motif" = yes; then + have_motif=no + AC_CHECK_X_HEADER(Xm/Xm.h, + [have_motif=yes + AC_DEFINE(HAVE_MOTIF) + MOTIF_LIBS="$MOTIF_LIBS -lXm"],, + [#include + #include + #include ]) +fi + + +if test "$have_motif" = yes; then + AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],, + [#include + #include + #include ]) +fi + + +############################################################################### +# +# Checking whether Motif is really Lesstif. +# +############################################################################### + +have_lesstif=no +if test "$have_motif" = yes ; then + AC_CACHE_CHECK([whether Motif is really LessTif], + ac_cv_have_lesstif, + [AC_TRY_X_COMPILE([#include ], + [long vers = LesstifVersion;], + [ac_cv_have_lesstif=yes], + [ac_cv_have_lesstif=no])]) + have_lesstif=$ac_cv_have_lesstif +fi + + +lesstif_version=unknown +lesstif_version_string=unknown + +if test "$have_lesstif" = yes ; then + ltv=unknown + echo unknown > conftest-lt + AC_CACHE_CHECK([LessTif version number], + ac_cv_lesstif_version_string, + [AC_TRY_X_RUN([#include + #include + int main() { + FILE *f = fopen("conftest-lt", "w"); + if (!f) exit(1); + fprintf(f, "%d %d.%d\n", LesstifVersion, + LESSTIF_VERSION, LESSTIF_REVISION); + fclose(f); + exit(0); + }], + [ltv=`cat conftest-lt` + ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'` + ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`], + [ac_cv_lesstif_version=unknown + ac_cv_lesstif_version_string=unknown], + [ac_cv_lesstif_version=unknown + ac_cv_lesstif_version_string=unknown])]) + rm -f conftest-lt + lesstif_version=$ac_cv_lesstif_version + lesstif_version_string=$ac_cv_lesstif_version_string + +fi + + +if test "$have_motif" = yes ; then + mtv=unknown + echo unknown > conftest-mt + AC_CACHE_CHECK([Motif version number], + ac_cv_motif_version_string, + [AC_TRY_X_RUN([#include + #include + int main() { + FILE *f = fopen("conftest-mt", "w"); + if (!f) exit(1); + fprintf(f, "%d %d.%d\n", XmVersion, + XmVERSION, XmREVISION); + fclose(f); + exit(0); + }], + [mtv=`cat conftest-mt` + ac_cv_motif_version=`echo $mtv | sed 's/ .*//'` + ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`], + [ac_cv_motif_version=unknown + ac_cv_motif_version_string=unknown], + [ac_cv_motif_version=unknown + ac_cv_motif_version_string=unknown])]) + rm -f conftest-mt + motif_version=$ac_cv_motif_version + motif_version_string=$ac_cv_motif_version_string + +fi + + +############################################################################### +# +# Checking whether Motif requires -lXp. +# +# Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing +# Extension". Why this extension isn't in -lXext with all the others, +# I have no idea. +# +############################################################################### + +have_xp_ext=no +if test "$have_motif" = yes ; then + have_xp_ext=no + AC_CHECK_X_LIB(Xp, XpQueryExtension, + [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"], + [true], -lX11 -lXext -lm) +fi + + +############################################################################### +# +# Checking whether Motif requires -lXintl (for _Xsetlocale.) +# +############################################################################### + +have_xintl=no +if test "$have_motif" = yes ; then + AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no], + -lX11 -lXext -lm) + if test "$have_xintl" = yes; then + MOTIF_LIBS="$MOTIF_LIBS -lXintl" + fi +fi + + +############################################################################### +# +# Check for a login manager for a "New Login" button on the lock dialog. +# Usually this will be "/usr/bin/gdmflexiserver". +# +############################################################################### + +with_login_manager_req=unspecified +default_login_manager_1='gdmflexiserver -ls' +default_login_manager_2='kdmctl reserve' +default_login_manager_3='lxdm -c USER_SWITCH' +default_login_manager_4='dm-tool switch-to-greeter' + +AC_ARG_WITH(login-manager, +[ --with-login-manager Put a "New Login" button on the unlock dialog that + runs a login manager like gdmflexiserver or kdmctl.], + [with_login_manager="$withval"; with_login_manager_req="$withval"], + [with_login_manager=yes]) +# no HANDLE_X_PATH_ARG for this one + +if test "$enable_locking" = no ; then + with_login_manager_req=no + with_login_manager=no +fi + +case "$with_login_manager_req" in + no) + with_login_manager="" + ;; + + yes|unspecified) + # Try various defaults, use the first one that exists. + + with_login_manager="" + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_1 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_1" + fi + fi + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_2 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_2" + fi + fi + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_3 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_3" + fi + fi + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_4 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_4" + fi + fi + + ;; + + /*) + # absolute path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + AC_MSG_CHECKING([for $login_manager_tmp]) + if test -x "$login_manager_tmp" ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + with_login_manager="" + fi + ;; + + *) + # relative path specified on cmd line + set dummy $with_login_manager_req ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test -z "$login_manager_tmp" ; then + with_login_manager="" + else + with_login_manager="$login_manager_tmp" + fi + ;; +esac +ac_cv_login_manager_program="$with_login_manager" + +NEW_LOGIN_COMMAND_P='' +NEW_LOGIN_COMMAND="$ac_cv_login_manager_program" + +AC_MSG_CHECKING(for login manager) +if test -z "$NEW_LOGIN_COMMAND" ; then + NEW_LOGIN_COMMAND="$default_login_manager_1" + NEW_LOGIN_COMMAND_P='! ' + AC_MSG_RESULT($NEW_LOGIN_COMMAND (disabled)) +else + AC_MSG_RESULT($NEW_LOGIN_COMMAND) +fi + + + +############################################################################### +# +# Check for a directory full of images to use as the default value +# of the "imageDirectory" preference. +# +############################################################################### + +have_imagedir=no +with_imagedir_req=unspecified + +AC_ARG_WITH(image-directory, +[ --with-image-directory Some demos will display random images from here.], + [with_imagedir="$withval"; with_imagedir_req="$withval"], + [with_imagedir=yes]) +# no HANDLE_X_PATH_ARG for this one + +case "$with_imagedir" in + /*) + # absolute path + AC_MSG_CHECKING([for image directory $with_imagedir]) + if test -d "$with_imagedir" ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + with_imagedir="" + fi + ;; + yes) + with_imagedir="" + + #### Could use some more defaults here... + for dd in \ + "/usr/share/rpd-wallpaper" \ + "/usr/share/backgrounds/images/" \ + "/usr/share/wallpapers/" \ + "/Library/Desktop Pictures/" \ + ; do + if test -z "$with_imagedir"; then + AC_MSG_CHECKING([for image directory $dd]) + if test -d "$dd" ; then + AC_MSG_RESULT(yes) + with_imagedir="$dd" + else + AC_MSG_RESULT(no) + fi + fi + done + + ;; + no) + with_imagedir="" + ;; + + *) + echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req" + exit 1 + ;; +esac +ac_cv_imagedir="$with_imagedir" + +DEFAULT_IMAGES_P='True' +DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir" + +if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then + DEFAULT_IMAGES_P='False' +fi + + +############################################################################### +# +# Pick a text file to use as the default of the "textFile" preference. +# Any old file will do, but preferably one that will make interesting +# shapes when displayed by "starwars" and "fontglide". +# +############################################################################### + +have_textfile=no +with_textfile_req=unspecified + +AC_ARG_WITH(text-file, +[ --with-text-file=FILE Some demos will use this as a source of text.], + [with_textfile="$withval"; with_textfile_req="$withval"], + [with_textfile=yes]) +# no HANDLE_X_PATH_ARG for this one + +case "$with_textfile" in + /*) + # absolute path + AC_MSG_CHECKING([for text file $with_textfile]) + if test -f "$with_textfile" ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + with_textfile="" + fi + ;; + yes) + with_textfile="" + + #### Could use some more defaults here... + for f in \ + "/usr/X11R6/lib/X11/doc/README" \ + "/usr/share/doc/xserver-common/copyright" \ + "/usr/share/doc/xserver-xorg-core/copyright" \ + "/usr/X11R6/README" \ + "/usr/share/doc/libX11*/COPYING" \ + "/usr/X11/share/X11/doc/README*" \ + "/usr/share/doc/debian/debian-manifesto" \ + ; do + if test -z "$with_textfile"; then + AC_MSG_CHECKING([for text file $f]) + f=`/bin/ls $f 2>&- | head -1` + if test -f "$f" ; then + AC_MSG_RESULT(yes) + with_textfile="$f" + else + AC_MSG_RESULT(no) + fi + fi + done + + ;; + no) + with_textfile="" + ;; + + *) + echo "error: must be an absolute path: --with-text-file=$with_textfile_req" + exit 1 + ;; +esac +ac_cv_textfile="$with_textfile" + +DEFAULT_TEXT_FILE="$ac_cv_textfile" + + +############################################################################### +# +# Check the browser to see help URL +# +############################################################################### + +have_browser=no +with_browser_req=unspecified + +AC_ARG_WITH(browser, +[ --with-browser=BROWSER The web browser used to open the "Help" URL.], + [with_browser="$withval"; with_browser_req="$withval"], + [with_browser=no ]) +# no HANDLE_X_PATH_ARG for this one + +case "$with_browser" in + no ) + ;; + * ) + WITH_BROWSER=$with_browser + gnome_open_program=$with_browser + AC_MSG_CHECKING([for browser $with_browser]) + with_browser_fullpath=`which $with_browser 2>/dev/null` + case $with_browser_fullpath in + /* ) + AC_MSG_RESULT(yes) + have_browser=yes + ;; + * ) + AC_MSG_RESULT(no) +# Only warning: we don't want to install all packages for the +# dependency of the browser in building stage... + echo "WARNING: browser not found: --with-browser=$with_browser" + ;; + esac + ;; +esac +ac_cv_browser="$with_browser" + + +############################################################################### +# +# Check for -lGL or -lMesaGL. +# +############################################################################### + +#### H1 + +have_gl=no +ac_have_mesa_gl=no +with_gl_req=unspecified +gl_halfassed=no +have_glext=no +AC_ARG_WITH(gl, +[ +Graphics Options: + + --with-gl Build those demos which depend on OpenGL.], + [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes]) + +HANDLE_X_PATH_ARG(with_gl, --with-gl, GL) + +ac_mesagl_version=unknown +ac_mesagl_version_string=unknown + +if test "$with_gl" = yes; then + AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no) + if test "$have_gl" = yes ; then + AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no, + [#include ]) + fi + + # If we have the headers, try and figure out which vendor it's from. + # + if test "$have_gl" = yes ; then + + # We need to know whether it's MesaGL so that we know which libraries + # to link against. + # + AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl, + [ac_cv_have_mesa_gl=no + if test "$ac_macosx" = no; then + # WTF! MacOS 10.5.0 ships the Mesa GL headers! + # It's not really Mesa, is it? + AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes]) + fi]) + ac_have_mesa_gl=$ac_cv_have_mesa_gl + + gl_lib_1="" + GL_LIBS="" + + if test "$ac_macosx" = yes; then + + # Without these, every link against libGL gets a bunch of useless + # warnings. + # + osx_crud="-bind_at_load -multiply_defined suppress" + AC_MSG_RESULT(adding "$osx_crud" to GL_LIBS) + GL_LIBS="$GL_LIBS $osx_crud" + unset osx_crud + + # New lossage in 10.5.0: without this, we get: + # ld: cycle in dylib re-exports with /usr/X11/lib/libGL.dylib + # + osx_crud="/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" + osx_crud="-Wl,-dylib_file,${osx_crud}:${osx_crud}" + + AC_MSG_RESULT(adding "$osx_crud" to GL_LIBS) + GL_LIBS="$GL_LIBS $osx_crud" + unset osx_crud + + # New lossage in 10.6.8: we can't allow -L/opt/local/lib to be in the + # link line, or at runtime XQueryExtension gets a segv due to some kind + # of library version skew. Libs must come from /usr/X11/lib even if + # $prefix and/or $exec_prefix are set to /opt/local/. + # + AC_MSG_RESULT(omitting "$libdir" from LDFLAGS) + libdir='' + + # Looks like as of OSX 10.12, gcc can't do ObjC. + OBJCC="clang -Wall" + + fi + + + # Some versions of MesaGL are compiled to require -lpthread. + # So if the Mesa headers exist, and -lpthread exists, then always + # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.) + # + # Oftentimes, AX_PTHREAD will bring in -lpthread as well; but that ends + # up before -l(Mesa)GL, instead of after where it would belong. + # + if test "$ac_have_mesa_gl" = yes; then + AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],) + fi + + + # If we have Mesa headers, check to see if we can link against -lMesaGL. + # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL. + # Else, warn that GL is busted. (We have the headers, but no libs.) + # + + if test "$ac_have_mesa_gl" = yes ; then + AC_CHECK_X_LIB(MesaGL, glXCreateContext, + [gl_lib_1="MesaGL" + GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"], + [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm) + fi + + if test "$gl_lib_1" = "" ; then + AC_CHECK_X_LIB(GL, glXCreateContext, + [gl_lib_1="GL" + GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"], + [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm) + fi + + if test "$gl_lib_1" = "" ; then + # we have headers, but no libs -- bail. + have_gl=no + ac_have_mesa_gl=no + gl_halfassed=yes + else + # linking works -- we can build the GL hacks. + AC_DEFINE(HAVE_GL) + if test "$ac_have_mesa_gl" = yes ; then + AC_DEFINE(HAVE_MESA_GL) + fi + fi + fi + + + # Now that we know we have GL headers and libs, do some more GL testing. + # + + if test "$have_gl" = yes ; then + # If it's MesaGL, we'd like to issue a warning if the version number + # is less than or equal to 2.6, because that version had a security bug. + # + if test "$ac_have_mesa_gl" = yes; then + + AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string, + [cat > conftest.$ac_ext < +#ifndef MESA_MAJOR_VERSION +# include +# ifdef XMESA_MAJOR_VERSION + /* Around Mesa 3.2, they took out the Mesa version number, so instead, + we have to check the XMesa version number (the number of the X protocol + support, which seems to be the same as the Mesa version number.) + */ +# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION +# define MESA_MINOR_VERSION XMESA_MINOR_VERSION +# else + /* Oh great. Some time after 3.4, they took out the xmesa.h header file, + so we have no way of telling what version of Mesa this is at all. + So, we'll guess that the osmesa version (the "offscreen protocol") + is less than or equal to the real mesa version number. Except that + if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in + Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit! + */ +# include +# define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION +# define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably? +# if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3 +# undef MESA_MINOR_VERSION +# define MESA_MINOR_VERSION 4 or newer, probably? +# endif +# endif +#endif +configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION +EOF + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:` + + # M4 sucks!! + changequote(X,Y) + mglv=`echo "$mglv" | sed -n \ + 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'` + changequote([,]) + + rm -f conftest.$ac_ext + + CPPFLAGS="$ac_save_CPPFLAGS" + + if test "$mglv" = ""; then + ac_mesagl_version=unknown + ac_mesagl_version_string=unknown + else + ac_mesagl_version_string="$mglv" + # M4 sucks!! + changequote(X,Y) + maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'` + min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'` + changequote([,]) + ac_mesagl_version=`echo "$maj * 1000 + $min" | bc` + if test -z "$ac_mesagl_version"; then + ac_mesagl_version=unknown + ac_mesagl_version_string=unknown + fi + fi + ac_cv_mesagl_version=$ac_mesagl_version + ac_cv_mesagl_version_string=$ac_mesagl_version_string + ]) + ac_mesagl_version=$ac_cv_mesagl_version + ac_mesagl_version_string=$ac_cv_mesagl_version_string + fi + + + # Check for OpenGL 1.1 features. + # + AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)], + [true], $GL_LIBS -lX11 -lXext -lm) + + # Check for OpenGL GLSL features. + # + AC_CHECK_X_HEADER(GL/glext.h, have_glext=yes, have_glext=no, + [#include ]) + if test "$have_glext" = yes ; then + AC_CHECK_X_LIB($gl_lib_1, glUseProgram, [AC_DEFINE(HAVE_GLSL)], + [true], $GL_LIBS -lX11 -lXext -lm) + fi + fi + +elif test "$with_gl" != no; then + echo "error: must be yes or no: --with-gl=$with_gl" + exit 1 +fi + + +############################################################################### +# +# Check for -lgle. +# +############################################################################### + +have_gle=no +with_gle_req=unspecified +gle_halfassed=no +AC_ARG_WITH(gle, +[ --with-gle Build those demos which depend on GLE (extrusion).], + [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes]) + +HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE) + +GLE_LIBS="" + +if test "$have_gl" = no ; then + true +elif test "$with_gle" = yes; then + + AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no, + [#include ]) + if test "$have_gle3" = yes ; then + have_gle=yes; + else + AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no, + [#include ]) + if test "$have_gle" = yes ; then + AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no, + [#include ]) + fi + fi + + if test "$have_gle" = yes ; then + have_gle=no + gle_halfassed=yes + AC_CHECK_X_LIB(gle, gleCreateGC, + [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"], + [], $GL_LIBS -lX11 -lXext -lm) + fi + if test "$have_gle" = yes ; then + have_gle=no + gle_halfassed=yes + + # sometimes the libmatrix stuff is included in libgle. look there first. +# +# I don't get it. For some reason, this test passes on SGI, as if +# uview_direction_d() was in libgle -- but it's not, it's in libmatrix. +# Yet the link is succeeding. Why??? +# +# AC_CHECK_X_LIB(gle, uview_direction_d, +# [have_gle=yes; gle_halfassed=no], +# [], $GL_LIBS -lX11 -lXext -lm) + + # As of GLE 3 this is in libgle, and has changed name to uview_direction! + # *sigh* + if test "$have_gle3" = yes ; then + AC_CHECK_X_LIB(gle, uview_direction, + [have_gle=yes; gle_halfassed=no], + [], $GL_LIBS -lX11 -lXext -lm) + fi + # if it wasn't in libgle, then look in libmatrix. + if test "$have_gle" = no ; then + AC_CHECK_X_LIB(matrix, uview_direction_d, + [have_gle=yes; gle_halfassed=no; + GLE_LIBS="$GLE_LIBS -lmatrix"], + [], $GL_LIBS -lX11 -lXext -lm) + fi + fi + + if test "$have_gle" = yes ; then + AC_DEFINE(HAVE_GLE) + if test "$have_gle3" = yes ; then + AC_DEFINE(HAVE_GLE3) + fi + fi + +elif test "$with_gle" != no; then + echo "error: must be yes or no: --with-gle=$with_gle" + exit 1 + +fi + + +############################################################################### +# +# Handle --with-gles +# +############################################################################### + +with_gles_req=unspecified +AC_ARG_WITH(gles, +[ --with-gles Target OpenGL ES 1.x API instead of OpenGL 1.3.], + [with_gles="$withval"; with_gles_req="$withval"],[with_gles=no]) + +HANDLE_X_PATH_ARG(with_gles, --with-gles, JWZGLES) + +if test "$with_gles" = yes; then + have_gles=yes + AC_DEFINE(HAVE_JWZGLES) + JWZGLES_OBJS='$(JWXYZ_BIN)/jwzgles.o' + AC_MSG_RESULT(using OpenGL ES compatiblity shim) +elif test "$with_gles" != no; then + echo "error: must be yes or no: --with-gles=$with_gles" + exit 1 +fi + +############################################################################### +# +# Check for -ljpeg +# +############################################################################### + +have_jpeg=no +with_jpeg_req=unspecified +jpeg_halfassed=no +AC_ARG_WITH(jpeg, +[ --with-jpeg Include support for the JPEG library.], + [with_jpeg="$withval"; with_jpeg_req="$withval"], + [with_jpeg=yes]) + +HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG) + +if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then + echo "error: must be yes or no: --with-jpeg=$with_jpeg" + exit 1 +fi + +if test "$with_jpeg" = yes; then + + have_jpeg=no + AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes]) + + if test "$have_jpeg" = yes; then + # we have the header, now check for the library + have_jpeg=no + jpeg_halfassed=yes + AC_CHECK_X_LIB(jpeg, jpeg_start_compress, + [have_jpeg=yes + jpeg_halfassed=no + JPEG_LIBS="-ljpeg" + AC_DEFINE(HAVE_JPEGLIB)]) + fi +fi + + +############################################################################### +# +# Check for -lpng +# +############################################################################### + +have_png=no +with_png_req=unspecified +png_halfassed=no +AC_ARG_WITH(png, +[ --with-png Include support for the PNG library.], + [with_png="$withval"; with_png_req="$withval"], + [with_png=yes]) + +HANDLE_X_PATH_ARG(with_png, --with-png, PNG) + +if test "$with_png" != yes -a "$with_png" != no ; then + echo "error: must be yes or no: --with-png=$with_png" + exit 1 +fi + +if test "$with_png" = yes; then + + have_png=no + AC_CHECK_X_HEADER(png.h, [have_png=yes]) + + if test "$have_png" = yes; then + # we have the header, now check for the library + have_png=no + png_halfassed=yes + AC_CHECK_X_LIB(png, png_create_read_struct, + [have_png=yes + png_halfassed=no + PNG_LIBS="-lpng" + AC_DEFINE(HAVE_LIBPNG)]) + fi +fi + + +############################################################################### +# +# Check for -lgdk_pixbuf. +# These tests are for gdk_pixbuf usage of the hacks, +# not xscreensaver-demo (thus we have to test again to get +# the libraries right: don't want to pull in all of GTK +# for the hacks.) +# +############################################################################### + +have_gdk_pixbuf=no +with_gdk_pixbuf_req=unspecified +AC_ARG_WITH(pixbuf, +[ --with-pixbuf Include support for the GDK-Pixbuf library, which + allows the display of JPEG, PNG, GIF and SVG images.], + [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"], + [with_gdk_pixbuf=yes]) + +# if --with-pixbuf=/directory/ was specified, remember that directory so that +# we can also look for the `gdk-pixbuf-config' program in that directory. +case "$with_gdk_pixbuf" in + /*) + gdk_pixbuf_dir="$with_gdk_pixbuf" + ;; + *) + gdk_pixbuf_dir="" + ;; +esac + +HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF) + +if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then + echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf" + exit 1 +fi + +if test "$with_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + + pkgs='' + ok="yes" + + pkg_check_version gdk-pixbuf-2.0 2.0.0 + pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 + pkg_check_version gio-2.0 2.0.0 + have_gdk_pixbuf="$ok" + + if test "$have_gdk_pixbuf" = yes; then + AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags, + [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs, + [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`]) + fi + + ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags + ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs + + + if test "$have_gdk_pixbuf" = yes; then + # + # we appear to have pixbuf; check for headers/libs to be sure. + # + ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags" + + have_gdk_pixbuf=no + + # check for header A... + AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes]) + + # if that worked, check for header B... + if test "$have_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, + [have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no]) + + # yay, it has a new name in Gtk 2.x... + if test "$have_gdk_pixbuf" = no; then + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h, + [have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no]) + fi + fi + CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS" + fi + + if test "$have_gdk_pixbuf" = yes; then + # we have the headers, now check for the libraries + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + + AC_MSG_RESULT(checking for gdk_pixbuf usability...) + + # library A... + AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],, + $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) + # library B... + if test "$have_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init, + [have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no],, + $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) + fi + fi + + if test "$have_gdk_pixbuf" = yes; then + INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags" + PNG_LIBS="$ac_gdk_pixbuf_config_libs" + AC_DEFINE(HAVE_GDK_PIXBUF) + else + AC_MSG_RESULT(checking for gdk_pixbuf usability... no) + fi + + if test "$have_gdk_pixbuf" = yes; then + AC_CHECK_X_LIB(c, gdk_pixbuf_apply_embedded_orientation, + [AC_DEFINE(HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION)],, + $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) + fi +fi + + +############################################################################### +# +# Check for -lXft +# +############################################################################### + +have_xutf8drawstring=no +AC_CHECK_X_LIB(X11, Xutf8DrawString, + [have_xutf8drawstring=yes], + [true], -lX11 -lXext -lm) +if test "$have_xutf8drawstring" = yes ; then + AC_DEFINE(HAVE_XUTF8DRAWSTRING) +fi + + +have_xft=no +with_xft_req=unspecified +xft_halfassed=no +AC_ARG_WITH(xft, +[ --with-xft Include support for the X Freetype library.], + [with_xft="$withval"; with_xft_req="$withval"], + [with_xft=yes]) + +HANDLE_X_PATH_ARG(with_xft, --with-xft, Xft) + +if test "$with_xft" != yes -a "$with_xft" != no ; then + echo "error: must be yes or no: --with-xft=$with_xft" + exit 1 +fi + +if test "$with_xft" = yes; then + + pkgs='' + ok="yes" + pkg_check_version xft 2.1.0 + have_xft="$ok" + + if test "$have_xft" = yes; then + AC_CACHE_CHECK([for Xft includes], ac_cv_xft_config_cflags, + [ac_cv_xft_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for Xft libs], ac_cv_xft_config_libs, + [ac_cv_xft_config_libs=`$pkg_config --libs $pkgs`]) + fi + + ac_xft_config_cflags=$ac_cv_xft_config_cflags + ac_xft_config_libs=$ac_cv_xft_config_libs + + if test "$have_xft" = yes; then + # + # we appear to have Xft; check for headers/libs to be sure. + # + ac_save_xft_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_xft_config_cflags" + + have_xft=no + AC_CHECK_X_HEADER(X11/Xft/Xft.h, [have_xft=yes]) + + CPPFLAGS="$ac_save_xft_CPPFLAGS" + fi + + if test "$have_xft" = yes; then + # we have the headers, now check for the libraries + have_xft=no + xft_halfassed=yes + + AC_MSG_RESULT(checking for Xft usability...) + AC_CHECK_X_LIB(c, XftDrawStringUtf8, [have_xft=yes],, + $ac_xft_config_libs -lX11 -lXext -lm) + fi + + if test "$have_xft" = no; then + AC_MSG_RESULT(checking for Xft usability... no) + fi +fi + +if test "$have_xft" = yes; then + INCLUDES="$INCLUDES $ac_xft_config_cflags" + XFT_LIBS="$ac_xft_config_libs" + XFT_SRCS='' + XFT_OBJS='' + AC_DEFINE(HAVE_XFT) +else + XFT_LIBS='' + XFT_SRCS='$(UTILS_SRC)/xft.c' + XFT_OBJS='$(UTILS_BIN)/xft.o' +fi + + +# Also check for the standard X11 bitmap fonts, since Debian likes to not +# install any of those by default. The unlock dialog requires them. +# +have_bitmap_fonts=no +ff='helvB14.pcf.gz helvB14-ISO8859-1.pcf.gz' +AC_MSG_CHECKING(for bitmap font files) +for d in /usr/share/fonts/X11 \ + /usr/share/X11/fonts \ + /opt/X11/share/fonts \ +; do + for r in 100dpi 75dpi ; do + for f in $ff ; do + if test -f "$d/$r/$f" ; then + have_bitmap_fonts=yes + fi + done + done +done +AC_MSG_RESULT($have_bitmap_fonts) + +# In case we didn't guess the font directory properly, check RPMs and DEBs too. +if test $have_bitmap_fonts != yes ; then + for r in 100dpi 75dpi ; do + for f in xfonts-$r \ + xorg-x11-fonts-$r \ + xorg-x11-fonts-ISO8859-1-$r \ + ; do + if test $have_bitmap_fonts != yes ; then + AC_MSG_CHECKING(for $f) + if ( rpm -q "$f" 2>&- >&- ) || + ( dpkg -s "$f" 2>&- | grep -q '^Status:.*installed' ) ; then + have_bitmap_fonts=yes + fi + AC_MSG_RESULT($have_bitmap_fonts) + fi + done + done +fi + + +############################################################################### +# +# Check for pty support: this allows 'phosphor' and 'apple2' +# to run curses-based programs, or be used as terminal windows. +# +############################################################################### + +PTY_LIBS= +AC_CHECK_HEADERS(pty.h util.h sys/termios.h) +AC_CHECK_X_LIB(util, forkpty, + [PTY_LIBS="-lutil" + ac_have_forkpty=yes + AC_DEFINE(HAVE_FORKPTY)]) + +if test "$ac_have_forkpty" != yes ; then + # we don't need (or have) -lutil on MacOS 10.4.2... + AC_CHECK_X_LIB(c, forkpty, + [PTY_LIBS="" + AC_DEFINE(HAVE_FORKPTY)]) +fi + + +############################################################################### +# +# Query AX_PTHREAD, and figure out which compiler gets used. +# +############################################################################### + +have_pthread=no +with_pthread_req=unspecified + +# AX_PTHREAD is from the GNU Autoconf Archive. +# https://savannah.gnu.org/projects/autoconf-archive/ +m4_include(ax_pthread.m4) + +# This affects CC, LIBS, and CFLAGS, instead of defining new variables. + +AC_ARG_WITH([pthread], +[ --with-pthread Enables POSIX threads, for SMP support.], + [with_pthread="$withval"; with_pthread_req="$withval"], + [with_pthread=yes]) + +if test "$with_pthread" = yes; then + # AX_PTHREAD might want a different compiler. + AX_PTHREAD( + [if test "$CC" = "$PTHREAD_CC" -o -z "$ac_original_cc"; then + have_pthread=yes + else + ac_prog_cc_no_pthread=yes + fi + ]) + + if test "$have_pthread" = yes; then + AC_DEFINE([HAVE_PTHREAD]) + CC=$PTHREAD_CC + fi +fi + + +############################################################################### +# +# Check for libcap, which allows "sonar" to work without setuid. +# +############################################################################### + +have_libcap=no +setcap_hacks_default=yes +setcap_hacks="$setcap_hacks_default" +setcap_hacks_req=unspecified +AC_ARG_WITH(setcap-hacks, +[ --with-setcap-hacks Build the "sonar" demo with libcap, which allows + it to ping other hosts without being setuid.], + [setcap_hacks="$withval"; setcap_hacks_req="$withval"], + [setcap_hacks=yes]) + +HANDLE_X_PATH_ARG(setcap_hacks, --with-setcap-hacks, setcap hacks) + +if test "$setcap_hacks" != yes -a "$setcap_hacks" != no ; then + echo "error: must be yes or no: --with-setcap-hacks=$setcap_hacks" + exit 1 +fi + +if test "$setcap_hacks" = yes; then + + AC_CHECK_PROGS(setcap_program, setcap) + if test "$setcap_program" != ''; then + AC_CHECK_X_HEADER(sys/capability.h, [have_setcap=yes]) + fi + if test "$have_setcap" = yes; then + AC_CHECK_X_LIB(cap, cap_set_flag, + [have_libcap=yes + PROG_SETCAP="$setcap_program" + LIBCAP_LIBS="-lcap" + AC_DEFINE(HAVE_LIBCAP)]) + fi +fi + + +############################################################################### +# +# Option to prevent "sonar" from working properly. +# It must be setuid on systems without libcap. +# +############################################################################### + +if test "$have_libcap" = yes; then + setuid_hacks_default=no +else + setuid_hacks_default=yes +fi + +setuid_hacks="$setuid_hacks_default" +AC_ARG_WITH(setuid-hacks, +[ --with-setuid-hacks Install the "sonar" demo as setuid root, which is + needed in order to ping other hosts without setcap.], + [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"]) + +HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks) + +if test "$setuid_hacks" = yes; then + true +elif test "$setuid_hacks" != no; then + echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks" + exit 1 +fi + + +############################################################################### +# +# Check for --with-record-animation +# +############################################################################### + +record_anim_default=no +record_anim="$record_anim_default" +AC_ARG_WITH(record-animation, +[ --with-record-animation Include code for generating MP4 videos.], + [record_anim="$withval"], [record_anim="$record_anim_default"]) + +HANDLE_X_PATH_ARG(record_anim, --with-record-animation, record animation) + +if test "$record_anim" = yes; then + true +elif test "$record_anim" != no; then + echo "error: must be yes or no: --with-record-animation=$record_anim" + exit 1 +fi + +if test "$record_anim" = yes; then + if test "$have_gdk_pixbuf" != yes; then + AC_MSG_ERROR(--with-record-animation requires GDK-Pixbuf) + else + AC_MSG_RESULT(enabling --with-record-animation) + AC_DEFINE(HAVE_RECORD_ANIM) + ANIM_OBJS='$(ANIM_OBJS)' + ANIM_LIBS='$(ANIM_LIBS)' + fi +fi + + +############################################################################### +# +# Done testing. Now, set up the various -I and -L variables, +# and decide which GUI program to build by default. +# +############################################################################### + +DEPEND=makedepend +DEPEND_FLAGS= +DEPEND_DEFINES= + + +if test \! -z "$includedir" ; then + INCLUDES="$INCLUDES -I$includedir" +fi + +if test \! -z "$libdir" ; then + LDFLAGS="$LDFLAGS -L$libdir" +fi + + +PREFERRED_DEMO_PROGRAM='' +ALL_DEMO_PROGRAMS= +if test "$have_motif" = yes; then + PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm + ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS" +fi +if test "$have_gtk" = yes; then + PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk + ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS" +fi + + +if test "$have_kerberos" = yes; then + PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)" +fi +if test "$have_pam" = yes; then + PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)" + INSTALL_PAM="install-pam" +fi +if test "$enable_pam_check_account_type" = yes; then + COMMENT_PAM_CHECK_ACCOUNT="" +else + COMMENT_PAM_CHECK_ACCOUNT="#" +fi +if test "$have_passwd_helper" = yes; then + PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)" +fi + PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)" + + +if test "$enable_locking" = yes; then + LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' + LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' +else + LOCK_SRCS='$(NOLOCK_SRCS_1)' + LOCK_OBJS='$(NOLOCK_OBJS_1)' +fi + +if test "$ac_macosx" = yes; then + EXES_OSX='$(EXES_OSX)' + SCRIPTS_OSX='$(SCRIPTS_OSX)' + MEN_OSX='$(MEN_OSX)' +else + EXES_OSX= + SCRIPTS_OSX= + MEN_OSX= +fi + + +INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)' + +if test "$need_setuid" = yes; then + NEED_SETUID=yes +else + NEED_SETUID=no +fi + +if test "$setuid_hacks" = yes; then + SETUID_HACKS=yes +else + SETUID_HACKS=no +fi + +if test "$have_libcap" = yes; then + SETCAP_HACKS=yes +else + SETCAP_HACKS=no +fi + +tab=' ' +if test "$have_gl" = yes; then + GL_EXES='$(GL_EXES)' + SUID_EXES='$(SUID_EXES)' + RETIRED_GL_EXES='$(RETIRED_GL_EXES)' + GL_UTIL_EXES='$(GL_UTIL_EXES)' + GL_MEN='$(GL_MEN)' + GL_KLUDGE=" " +else + GL_KLUDGE="-" +fi + +if test "$have_gle" = yes; then + GLE_EXES='$(GLE_EXES)' + GLE_KLUDGE=" " +else + GLE_KLUDGE="-" +fi + +if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then + JPEG_EXES='$(JPEG_EXES)' +fi + + +# Another substitution in the XScreenSaver.ad.in file: +# +if test "$gnome_open_program" != ''; then + GNOME24='' + GNOME22='! ' + NOGNOME='! ' +elif test "$gnome_url_show_program" != ''; then + GNOME24='! ' + GNOME22='' + NOGNOME='! ' +else + GNOME24='! ' + GNOME22='! ' + NOGNOME='' +fi + + +# Set PO_DATADIR to something sensible. +# +AC_MSG_CHECKING([for locale directory]) +if test -n "$GTK_DATADIR" ; then + PO_DATADIR="$GTK_DATADIR" +elif test "$have_gtk" = yes; then + PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` + PO_DATADIR="$PO_DATADIR/share" +fi + +if test -z "$PO_DATADIR" ; then + # + # #### Total fucking kludge -- + # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/ + # but of course we need to expand all the nested variables to do that... + # + dd=`eval eval eval eval eval eval eval eval eval eval eval echo $datadir` + PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'` +fi + +AC_MSG_RESULT($PO_DATADIR/locale) + + +# canonicalize slashes. +HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` + +# gcc 3.0 likes to issue this warning for every file: +# +# cc1: warning: changing search order for system directory "/usr/local/include" +# cc1: warning: as it has already been specified as a non-system directory +# +# Yay. We can only avoid that by deleting "-I${prefix}/include" from the list. +# Which *should* be totally redundant, and thus an ok thing to delete? +# +INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'` + + +############################################################################### +# +# Perform substitutions and write Makefiles. +# +############################################################################### + +AC_SUBST(INCLUDES) + +AC_SUBST(PREFERRED_DEMO_PROGRAM) +AC_SUBST(ALL_DEMO_PROGRAMS) +AC_SUBST(SAVER_LIBS) +AC_SUBST(MOTIF_LIBS) +AC_SUBST(GTK_LIBS) +AC_SUBST(XML_LIBS) +AC_SUBST(PNG_LIBS) +AC_SUBST(JPEG_LIBS) +AC_SUBST(HACK_LIBS) +AC_SUBST(PTY_LIBS) +AC_SUBST(GL_LIBS) +AC_SUBST(GLE_LIBS) +AC_SUBST(XDPMS_LIBS) +AC_SUBST(XINERAMA_LIBS) +AC_SUBST(PASSWD_LIBS) +AC_SUBST(LIBCAP_CFLAGS) +AC_SUBST(LIBCAP_LIBS) +AC_SUBST(PROG_SETCAP) +AC_SUBST(INSTALL_SETUID) +AC_SUBST(SETUID_HACKS) +AC_SUBST(SETCAP_HACKS) +AC_SUBST(INSTALL_DIRS) +AC_SUBST(NEED_SETUID) +AC_SUBST(INSTALL_PAM) +AC_SUBST(HAVE_PAM_FAIL_DELAY) +AC_SUBST(COMMENT_PAM_CHECK_ACCOUNT) +AC_SUBST(NEW_LOGIN_COMMAND) +AC_SUBST(NEW_LOGIN_COMMAND_P) +AC_SUBST(DEFAULT_IMAGES_P) +AC_SUBST(DEFAULT_IMAGE_DIRECTORY) +AC_SUBST(DEFAULT_TEXT_FILE) +AC_SUBST(WITH_BROWSER) + +AC_SUBST(OBJCC) +AC_SUBST(EXES_OSX) +AC_SUBST(EXES_SYSTEMD) +AC_SUBST(SCRIPTS_OSX) +AC_SUBST(MEN_OSX) + +AC_SUBST(PASSWD_SRCS) +AC_SUBST(PASSWD_OBJS) +AC_SUBST(XMU_SRCS) +AC_SUBST(XMU_OBJS) +AC_SUBST(XMU_LIBS) +AC_SUBST(XFT_SRCS) +AC_SUBST(XFT_OBJS) +AC_SUBST(XFT_LIBS) +AC_SUBST(SAVER_GL_SRCS) +AC_SUBST(SAVER_GL_OBJS) +AC_SUBST(SAVER_GL_LIBS) +AC_SUBST(LOCK_SRCS) +AC_SUBST(LOCK_OBJS) +AC_SUBST(JPEG_EXES) +AC_SUBST(GL_EXES) +AC_SUBST(RETIRED_GL_EXES) +AC_SUBST(SUID_EXES) +AC_SUBST(GL_UTIL_EXES) +AC_SUBST(GL_MEN) +AC_SUBST(GL_KLUDGE) +AC_SUBST(GLE_EXES) +AC_SUBST(GLE_KLUDGE) +AC_SUBST(JWZGLES_OBJS) +AC_SUBST(GNOME24) +AC_SUBST(GNOME22) +AC_SUBST(NOGNOME) +AC_SUBST(HACKDIR) +AC_SUBST(HACKDIR_FULL) +AC_SUBST(GTK_DATADIR) +AC_SUBST(PO_DATADIR) +AC_SUBST(HACK_CONF_DIR) +AC_SUBST(GTK_EXTRA_OBJS) +AC_SUBST(ANIM_OBJS) +AC_SUBST(ANIM_LIBS) + +APPDEFAULTS=$ac_x_app_defaults +AC_SUBST(APPDEFAULTS) + +AC_SUBST(DEPEND) +AC_SUBST(DEPEND_FLAGS) +AC_SUBST(DEPEND_DEFINES) +AC_SUBST(PERL) + +AC_OUTPUT(Makefile + utils/Makefile + jwxyz/Makefile + hacks/Makefile + hacks/images/Makefile + hacks/glx/Makefile + po/Makefile.in + driver/Makefile + driver/xscreensaver.pam + driver/XScreenSaver.ad) + +############################################################################### +# +# Print some warnings at the end. +# +############################################################################### + +warn_prefix_1=" Warning:" +warn_prefix_2=" Note:" +warn_prefix="$warn_prefix_1" + +warning=no +warnsep=' #################################################################' + +warnpre() { + if test "$warning" = no ; then + echo '' ; echo "$warnsep" ; echo '' + warning=yes + fi +} + +warn() { + warnpre + if test "$warning" = long ; then echo '' ; fi + warning=yes + rest="$@" + echo "$warn_prefix $rest" +} + +warnL() { + was=$warning + warnpre + warning=yes + if test "$was" != no ; then echo '' ; fi + rest="$@" + echo "$warn_prefix $rest" +} + +warn2() { + rest="$@" + echo " $rest" + warning=long +} + +note() { + warn_prefix="$warn_prefix_2" + warn $@ + warn_prefix="$warn_prefix_1" +} + +noteL() { + warn_prefix="$warn_prefix_2" + warnL $@ + warn_prefix="$warn_prefix_1" +} + + +# ac_prog_cc_no_pthread normally only happens on AIX, because according +# to AX_PTHREAD, AIX needs CC=xlc_r or CC=cc_r to do threads. +# If CC is specified, it takes precedence over --with-pthread. +if test "$ac_prog_cc_no_pthread" ; then + warnL "You requested $ac_original_cc for the C compiler, but it doesn't" + warn2 "support POSIX threads." + echo "" + warn2 "If you have multiple CPU cores, try CC=$PTHREAD_CC." +elif test "$with_pthread_req" = yes -a "$have_pthread" = no ; then + warn 'POSIX threads were requested, but were not found.' +fi + +if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then + warn 'The SGI saver extension was requested, but was not found.' +fi + +if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then + warn 'The XIdle extension was requested, but was not found.' +fi + +if test "$with_mit_req" = yes -a "$have_mit" = no ; then + warn 'The MIT-SCREEN-SAVER extension was requested, but was not found.' +fi + +if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then + warn 'The XSHM extension was requested, but was not found.' +fi + +if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then + warn 'The DOUBLE-BUFFER extension was requested, but was not found.' +fi + +if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then + warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.' +fi + +if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then + warn 'The DPMS extension was requested, but was not found.' +fi + +if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then + warn 'The Xinerama extension was requested, but was not found.' +fi + +if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then + warn 'The XF86VMODE extension was requested, but was not found.' +fi + +if test "$with_randr_req" = yes -a "$have_randr" = no ; then + warn 'The RANDR extension was requested, but was not found.' +fi + +if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then + warn "Checking of /proc/interrupts was requested, but it's bogus." +fi + +if test "$pkg_config" = false ; then + warnL 'The "pkg-config" program was not found. Without that,' + warn2 "detection of the various GTK libraries won't work." +else + pkgerr=`$pkg_config --list-all 2>&1 >/dev/null` + if test "x$pkgerr" != "x" ; then + warnL 'The "pkg-config" program produces errors. This often causes' + warn2 "detection of the various GTK libraries to malfunction." + warn2 "The errors are:" + echo '' + echo "$pkgerr" | sed 's/^/ > /g' + fi +fi + +if test "$gtk_halfassed" != no ; then + warnL "GTK version $gtk_halfassed was found, but at least one supporting" + warn2 "library ($gtk_halfassed_lib) was not, so GTK can't be used." + warn2 "Perhaps some of the development packages are not installed?" + if test "$have_gtk" = yes ; then + v="$ac_gtk_version_string" + warn2 "GTK $v is also installed, so it will be used instead." + warn2 "Please read the above output and the \`config.log' file" + warn2 "for more details." + fi +fi + +motif_warn2() { + warn2 'Though the Motif front-end to xscreensaver is still' + warn2 'maintained, it is no longer being updated with new' + warn2 'features: all new development on the xscreensaver-demo' + warn2 'program is happening in the GTK version, and not in the' + warn2 'Motif version. It is recommended that you build against' + warn2 'GTK instead of Motif. See .' +} + +if test "$have_motif" = no -a "$have_gtk" = no; then + + if test "$with_motif" = yes; then + warnL "Neither the GTK nor Motif libraries were found; the" + warn2 "\`xscreensaver-demo' program requires one of these." + echo '' + motif_warn2 + else + warnL "The GTK libraries do not seem to be available; the" + warn2 "\`xscreensaver-demo' program requires them." +# echo '' +# warn2 'You can use Motif or Lesstif instead of GTK (use the' +# warn2 "\`--with-motif' option) but that is NOT recommended." +# motif_warn2 + fi + +elif test "$with_motif_req" = yes -a "$have_motif" = no ; then + warnL "Use of Motif was requested, but it wasn't found;" + warn2 "Gtk will be used instead." + +elif test "$jurassic_gtk" = yes ; then + + pref_gtk=2.0 + + v="$ac_gtk_version_string" + if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then + warnL "Use of Gtk was requested, but its version number is unknown;" + elif test "$with_gtk_req" = yes ; then + warnL "Use of Gtk was requested, but it is version $v;" + else + warnL "Gtk was found on this system, but it is version $v;" + fi + + warn2 "Gtk $pref_gtk or newer is required." + +elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then + warnL "Use of Gtk was requested, but it wasn't found." +fi + + +if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then + warn "GTK is being used, but the GDK-Pixbuf library and/or" + warn2 "headers were not found. That can't be good. Please" + warn2 "install the GDK-Pixbuf development kit and re-configure." +fi + +if test "$have_motif" = yes -a "$have_lesstif" = yes ; then + + preferred_lesstif=0.92 + + if test "$lesstif_version" = unknown; then + warnL "Unable to determine the LessTif version number!" + warn2 "Make sure you are using version $preferred_lesstif or newer." + warn2 "See ." + + elif test \! $lesstif_version -gt 82; then + warnL "LessTif version $lesstif_version_string is being used." + warn2 "LessTif versions 0.82 and earlier are too buggy to" + warn2 "use with XScreenSaver; it is strongly recommended" + warn2 "that you upgrade to at least version $preferred_lesstif!" + warn2 "See ." + fi +fi + + +if test "$have_motif" = yes -a "$have_gtk" = no ; then + warn 'Motif is being used, and GTK is not.' + echo '' + motif_warn2 +fi + + +if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then + warnL 'Use of GDK-Pixbuf was requested, but it was not found.' +fi + +if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \ + test "$have_gdk_pixbuf" = no ; then + + if test "$with_gdk_pixbuf_req" = yes ; then + true + elif test "$with_gdk_pixbuf_req" = no ; then + warnL 'The GDK-Pixbuf library is not being used.' + else + warnL 'The GDK-Pixbuf library was not found.' + fi + + if test "$gdk_pixbuf_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either GDK-Pixbuf is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + fi + + if test "$have_png" = yes ; then + echo '' + warn2 'The PNG library is being used instead.' + fi + + echo '' + warn2 'Some of the demos will not use images as much as they could.' + warn2 'You should consider installing GDK-Pixbuf and re-running' + warn2 'configure.' +fi + + +if test "$have_jpeg" = no ; then + if test "$with_jpeg_req" = yes ; then + warnL 'Use of libjpeg was requested, but it was not found.' + elif test "$with_jpeg_req" = no ; then + noteL 'The JPEG library is not being used.' + else + noteL 'The JPEG library was not found.' + fi + + if test "$jpeg_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'library; so either JPEG is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + echo '' + fi + + if test "$have_gdk_pixbuf" = no ; then + warn2 "This means that it won't be possible for the image-manipulating" + warn2 "display modes to load files from disk; and it also means that" + warn2 "the \`webcollage' program will be much slower." + else + warn2 "This means the \`webcollage' program will be much slower." + fi +fi + + +if test "$have_png" = no ; then + if test "$with_png_req" = yes ; then + warnL 'Use of libpng was requested, but it was not found.' + elif test "$with_png_req" = no ; then + noteL 'The PNG library is not being used.' + else + noteL 'The PNG library was not found.' + fi + + if test "$png_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'library; so either PNG is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + echo '' + fi + + warn2 "Many things aren't going to work right." +fi + + +if test "$have_xft" = no ; then + if test "$with_xft_req" = yes ; then + warnL "Use of libXft was requested, but it was not found." + elif test "$with_xft_req" = no ; then + noteL 'The Xft library is not being used.' + else + noteL "The Xft library was not found." + fi + + if test "$xft_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either Xft is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + echo '' + fi + + warn2 "This means that fonts won't be anti-aliased." +fi + + +if test "$have_bitmap_fonts" = no ; then + warnL 'The standard bitmap fonts do not seem to be installed.' + warn2 'That is not going to work out well for you.' + warn2 'Install "xfonts-100dpi" or "xorg-x11-fonts-100dpi".' +fi + + +if test "$have_systemd" = no ; then + systemd_warned=no + if test "$systemd_too_old" = yes ; then + warnL "The systemd library is too old." + systemd_warned=yes + elif test "$with_systemd_req" = yes ; then + warnL "Use of systemd was requested, but it was not found." + systemd_warned=yes + elif test "$ac_macosx" = yes; then + true + elif test "$with_systemd_req" = no ; then + noteL 'The systemd library is not being used.' + systemd_warned=yes + else + warnL "The systemd library was not found." + systemd_warned=yes + fi + + if test "$systemd_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either systemd is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + echo '' + systemd_warned=yes + fi + + if test "$systemd_warned" = yes; then + echo '' + warn2 "This means that xscreensaver-systemd won't be built." + warn2 "Without that, xscreensaver will not be able to auto-lock" + warn2 "before the system is suspended (e.g., closing laptop lid)" + warn2 "and might activate while video playback is in progress." + fi +fi + + +if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then + preferred_mesagl=3.4 + mgv="$ac_mesagl_version_string" + pgl="$preferred_mesagl" + + if test "$ac_mesagl_version" = unknown; then + true + # warnL "Unable to determine the MesaGL version number!" + # warn2 "Make sure you are using version $preferred_mesagl or newer." + + elif test \! "$ac_mesagl_version" -gt 2006; then + warnL "MesaGL version number is $mgv --" + warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly" + warn2 "recommended that you upgrade to at least version $preferred_mesagl." + + elif test \! "$ac_mesagl_version" -gt 3003; then + warnL "MesaGL version number is $mgv --" + warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended" + warn2 "that you upgrade to $pgl or newer." + fi +fi + +if test "$have_gl" = no ; then + if test "$with_gl_req" = yes ; then + warnL 'Use of GL was requested, but it was not found.' + elif test "$with_gl_req" = no ; then + noteL 'The OpenGL 3D library is not being used.' + else + noteL 'The OpenGL 3D library was not found.' + fi + + if test "$gl_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either GL is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + fi + + echo '' + warn2 'Those demos which use 3D will not be built or installed.' + warn2 'You might want to consider installing OpenGL and' + warn2 're-running configure.' + +fi + + +if test "$have_gl" = yes -a "$have_gle" = no ; then + + # nobody cares about this; don't print the warning unless it was + # requested and not found, or halfway-found. + if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then + + if test "$with_gle_req" = yes ; then + noteL 'Use of the GLE (GL Extrusion) library was requested, but' + warn2 'it was not found (though the OpenGL library was found, and' + warn2 'is being used.)' + elif test "$with_gle_req" = no ; then + noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)' + warn2 'library is not.' + else + noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)' + warn2 'library was not.' + fi + + if test "$gle_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either GLE is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + fi + + echo '' + warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)' + warn2 'will not be built or installed. You might want to consider' + warn2 'installing GLE and re-running configure. You can find the' + warn2 'GLE library at ' + + fi +fi + + +if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then + warn 'Use of XReadDisplay was requested, but it was not found.' +fi + +if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then + warn 'Use of Kerberos was requested, but it was not found.' +fi + +if test "$with_pam_req" = yes -a "$have_pam" = no ; then + warn 'Use of PAM was requested, but it was not found.' +fi + +if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then + warn 'Use of shadow passwords was requested, but they were not found.' +fi + +if test "$setcap_hacks_req" = yes -a "$have_libcap" = no ; then + warn 'Use of libcap was requested, but it was not found.' +fi + +if test "$ac_macosx" = yes ; then + if test "$enable_locking" = yes ; then + warn "You have specified --enable-locking on MacOS X." + warn2 "THIS DOES NOT WORK! Don't do this!" + fi +fi + + +# You are in a twisty maze of namespaces and syntaxes, all alike. +# Fuck the skull of Unix. +# +bindir=`eval eval eval eval eval eval eval echo $bindir` +HACKDIR=`eval eval eval eval eval eval eval echo $HACKDIR` +HACK_CONF_DIR=`eval eval eval eval eval eval eval echo $HACK_CONF_DIR` + +# canonicalize slashes. +bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'` +HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` +HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` + + +# Sanity check the hackdir +for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do + if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then + echo "" + AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work. + There will be an executable installed with that name, so + that can't be the name of a directory as well. Please + re-configure with a different directory name.]) + fi +done + + +# Now let's warn if there's a previous RPM version already installed. +# But don't bother with this test if we are currently *building* an RPM. + +if test -z "$RPM_PACKAGE_VERSION" ; then + + rpmnames="xscreensaver xscreensaver-base xscreensaver-extras" + + # M4 sucks!! + changequote(X,Y) + rpmv=`(rpm -qv $rpmnames) 2>/dev/null | \ + sed -n 's/^[-a-z]*-\([0-9][0-9]*[.][0-9][0-9a-z]*\)-.*$/\1/p' | \ + head -1` + changequote([,]) + + if test \! -z "$rpmv" ; then + + # M4 sucks!! + changequote(A,B) + rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)xscreensaver-demo$@\1@p'` + rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares$@\1@p'` + rpmcdir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'` + rpmadir=`rpm -ql $rpmnames | sed -n 's@^\(.*/\)XScreenSaver$@\1@p'` + changequote([,]) + + err=" (DIFFERS)" + if test -z "$rpmbdir" ; then rpmbdir='???' + elif test "$rpmbdir" != "${bindir}/" ; then rpmbdir="$rpmbdir$err";fi + + if test -z "$rpmhdir" ; then rpmhdir='???' + elif test "$rpmhdir" != "${HACKDIR}/" ; then rpmhdir="$rpmhdir$err";fi + + if test -z "$rpmcdir" ; then rpmcdir='???' + elif test "$rpmcdir" != "${HACK_CONF_DIR}/"; then rpmcdir="$rpmcdir$err";fi + + if test -z "$rpmadir" ; then rpmadir='???' + elif test "$rpmadir" != "${APPDEFAULTS}/" ; then rpmadir="$rpmadir$err";fi + + warning=no + warnL "There is already an installed RPM of xscreensaver" + warn2 "version \"$rpmv\" on this system." + echo "" + warn2 "It is currently installed in these directories:" + echo "" + warn2 "User programs: $rpmbdir$berr" + warn2 "Screen savers: $rpmhdir$herr" + warn2 "Configuration: $rpmcdir$cerr" + warn2 "App Defaults: $rpmadir$aerr" + fi +fi + +# Also warn if there's a Debian package installed. +# +debnames="xscreensaver xscreensaver-data xscreensaver-data-extra" +debv='' +for dpkg in $debnames ; do + if test -z "$debv"; then + debv=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'` + fi +done + +if test \! -z "$debv" ; then + + # M4 sucks!! + changequote(A,B) + debbdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/bin/\)xscreensaver$@\1@p'` + debhdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares$@\1@p'` + debcdir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)popsquares\.xml$@\1@p'` + debadir=`dpkg -L $debnames 2>&- | sed -n 's@^\(.*/\)XScreenSaver[^/]*$@\1@p'` + changequote([,]) + + err=" (DIFFERS)" + if test -z "$debbdir" ; then debbdir='???' + elif test "$debbdir" != "${bindir}/" ; then debbdir="$debbdir$err"; fi + + if test -z "$debhdir" ; then debhdir='???' + elif test "$debhdir" != "${HACKDIR}/" ; then debhdir="$debhdir$err"; fi + + if test -z "$debcdir" ; then debcdir='???' + elif test "$debcdir" != "${HACK_CONF_DIR}/" ; then debcdir="$debcdir$err"; fi + + if test -z "$debadir" ; then debadir='???' + elif test "$debadir" != "${APPDEFAULTS}/" ; then debadir="$debadir$err"; fi + + warning=no + warnL "There is already an installed dpkg of xscreensaver" + warn2 "version \"$debv\" on this system." + echo "" + warn2 "It is currently installed in these directories:" + echo "" + warn2 "User programs: $debbdir$berr" + warn2 "Screen savers: $debhdir$herr" + warn2 "Configuration: $debcdir$cerr" + warn2 "App Defaults: $debadir$aerr" +fi + +echo "" +echo "$warnsep" +echo "" +echo " XScreenSaver will be installed in these directories:" +echo "" +echo " User programs: ${bindir}/" +echo " Screen savers: ${HACKDIR}/" +echo " Configuration: ${HACK_CONF_DIR}/" +echo " App Defaults: ${APPDEFAULTS}/" +echo "" diff -Nru xscreensaver-5.42+dfsg1/configure.in xscreensaver-5.45+dfsg1/configure.in --- xscreensaver-5.42+dfsg1/configure.in 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/configure.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,4757 +0,0 @@ -# configure.in --- xscreensaver, Copyright (c) 1997-2014 Jamie Zawinski. -# - -AC_PREREQ(2.52) -AC_INIT(driver/subprocs.c) -AC_CONFIG_HEADERS([config.h]) - -echo "current directory: `pwd`" -echo "command line was: $0 $@" - -############################################################################### -# -# Autoheader stuff -# -############################################################################### - -AH_TOP([ -/* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski. - * - * The best way to set these parameters is by running the included `configure' - * script. That examines your system, and generates `config.h' from - * `config.h.in'. - * - * If something goes very wrong, you can edit `config.h' directly, but beware - * that your changes will be lost if you ever run `configure' again. - */ -]) - -AH_TEMPLATE([HAVE_READ_DISPLAY_EXTENSION], - [Define this if you have the XReadDisplay extension (I think - this is an SGI-only thing; it's in - .) A few of the screenhacks will - take advantage of this if it's available.]) - -AH_TEMPLATE([HAVE_XHPDISABLERESET], - [Define this if you have the XHPDisableReset function (an HP only - thing which allows the Ctrl-Sh-Reset key sequence to be - temporarily disabled.)]) - -# This only ever existed in X11R4 and X11R5. -#AH_TEMPLATE([HAVE_XIDLE_EXTENSION], -# [Define this if you have the XIDLE extension installed. If you -# have the XIDLE extension, this is recommended. (You have this -# extension if the file /usr/include/X11/extensions/xidle.h -# exists.) Turning on this flag lets XScreenSaver work better with -# servers which support this extension; but it will still work -# with servers which do not suport it, so it's a good idea to -# compile in support for it if you can.]) - -# Using this extension will crash your X server and make fading not work. -#AH_TEMPLATE([HAVE_MIT_SAVER_EXTENSION], -# [Define this if you have the MIT-SCREEN-SAVER extension -# installed. See the caveats about this extension, above. -# (It's available if /usr/include/X11/extensions/scrnsaver.h -# exists.)]) - -# This only ever existed on SGI hardware. -#AH_TEMPLATE([HAVE_SGI_SAVER_EXTENSION], -# [Define this if you have the SGI SCREEN_SAVER extension. This is -# standard on Irix systems, and not available elsewhere.]) - -# This only ever existed on SGI hardware. -#AH_TEMPLATE([HAVE_SGI_VC_EXTENSION], -# [Define this if you have the SGI-VIDEO-CONTROL extension. This -# is standard on Irix systems, and not available elsewhere.]) - -AH_TEMPLATE([HAVE_DPMS_EXTENSION], - [Define this if you have the XDPMS extension. This is standard - on sufficiently-recent XFree86 systems, and possibly elsewhere. - (It's available if the file /usr/include/X11/extensions/dpms.h - exists.)]) - -AH_TEMPLATE([HAVE_XF86VMODE], - [Define this if you have the functions XF86VidModeGetModeLine() - and XF86VidModeGetViewPort(), in support of virtual desktops - where the X server's root window is bigger than the actual - screen. This is an XFree86 thing, and probably doesn't exist - elsewhere. (It's available if the file - /usr/include/X11/extensions/xf86vmode.h exists.)]) - -AH_TEMPLATE([HAVE_XF86VMODE_GAMMA], - [Define this if you have the functions XF86VidModeGetGamma() and - XF86VidModeSetGamma(), which allow clients to change the gamma - response of the monitor. This is an XFree86 4.0.x thing, and - probably doesn't exist elsewhere. (It's available if the file - /usr/include/X11/extensions/xf86vmode.h exists and has stuff about - gamma in it.)]) - -AH_TEMPLATE([HAVE_XF86VMODE_GAMMA_RAMP], - [Define this if you have the functions XF86VidModeGetGammaRamp() - and XF86VidModeSetGammaRamp(), which provide finer-grained - control than XF86VidMode[GS]etGamma(). These appeared in - XFree86 4.1.0.]) - -AH_TEMPLATE([HAVE_XINERAMA], - [Define this if you have the Xinerama extension. This is - standard on sufficiently-recent XFree86 systems, and possibly - elsewhere. (It's available if the file - /usr/include/X11/extensions/Xinerama.h exists.)]) - -AH_TEMPLATE([HAVE_XINPUT], - [Define this if you have the Xinput extension. This is - standard since X11R5, and is thus almost everywhere. - (It's available if the file /usr/include/X11/extensions/XInput.h - exists.)]) - -AH_TEMPLATE([HAVE_XF86MISCSETGRABKEYSSTATE], - [Define this if you have the XF86MiscSetGrabKeysState function - (which allows the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key - sequences to be temporarily disabled. Sadly, it doesn't affect - Ctrl-Alt-BS or Ctrl-Alt-F1.)]) - -AH_TEMPLATE([HAVE_RANDR], - [Define this if you have the Resize and Rotate extension. - This is standard on sufficiently-recent XFree86 systems, and - possibly elsewhere. (It's available if the file - /usr/include/X11/extensions/Xrandr.h exists.)]) - -AH_TEMPLATE([HAVE_RANDR_12], - [Define this if the RANDR library is version 1.2 or newer.]) - -AH_TEMPLATE([HAVE_PROC_INTERRUPTS], - [Define this if you have a Linux-like /proc/interrupts file which - can be examined to determine when keyboard activity has - occurred.]) - -AH_TEMPLATE([HAVE_PROC_OOM], - [Define this if you have a Linux-like /proc/.../oom_score_adj file - which can be adjusted by root to exempt us from the out-of-memory - .]) - -AH_TEMPLATE([HAVE_MOTIF],[Define this if you have Motif.]) - -AH_TEMPLATE([HAVE_XMCOMBOBOX], - [Define this if you have the XmComboBox Motif widget (Motif 2.0.)]) - -AH_TEMPLATE([HAVE_GTK],[Define this if you have Gtk (any version.)]) -AH_TEMPLATE([HAVE_GTK2],[Define this if you have Gtk 2.x.]) - -AH_TEMPLATE([HAVE_CRAPPLET], - [Define this if you have Gnome and want to build support for the - xscreensaver control panel in the Gnome Control Center - (gnomecc). (This is needed only with Gtk 1.x.)]) - -AH_TEMPLATE([HAVE_CRAPPLET_IMMEDIATE], - [Define this if HAVE_CRAPPLET is defined, and the function - capplet_widget_changes_are_immediate() is available.]) - -AH_TEMPLATE([HAVE_XML],[Define this if you have the XML library.]) - -AH_TEMPLATE([HAVE_OLD_XML_HEADERS], - [Define this if you have the XML library headers in their old, - non-namespaced location (you lack the gnome-xml/libxml symlink)]) - -AH_TEMPLATE([HAVE_GDK_PIXBUF], - [Define this if you have the GDK_Pixbuf library installed. Some - of the demos can make use of this if it is available.]) - -AH_TEMPLATE([HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION], - [Define this if you have the gdk_pixbuf_apply_embedded_orientation - function (gdk-pixbuf 2.12).]) - -AH_TEMPLATE([HAVE_JPEGLIB], - [Define this if you have the Independent JPEG Group's JPEG - library installed. Some of the demos can make use of this if it - is available.]) - -AH_TEMPLATE([HAVE_LIBPNG], - [Define this if the Portable Network Graphics library is installed. - It is basically required, but many things will more-or-less limp - along without it.]) - -AH_TEMPLATE([HAVE_XMU], - [Define this if you have the Xmu library. This is standard part - of X, and if your vendor doesn't ship it, you should report that - as a bug.]) - -AH_TEMPLATE([HAVE_XUTF8DRAWSTRING], - [Define this if you have the function Xutf8DrawString().]) - -AH_TEMPLATE([HAVE_XFT], - [Define this if you have libXft2.]) - -AH_TEMPLATE([HAVE_GL], - [Define this if you have OpenGL. Some of the demos require it, - so if you don't have it, then those particular demos won't be - built. (This won't affect the screen saver as a whole.)]) - -AH_TEMPLATE([HAVE_MESA_GL], - [Define this if you have OpenGL, but it's the MesaGL variant. - (The libraries have different names.) (HAVE_GL should be defined - too.)]) - -AH_TEMPLATE([HAVE_GLBINDTEXTURE], - [Define this if your version of OpenGL has the glBindTexture() - routine. This is the case for OpenGL 1.1, but not for OpenGL - 1.0.]) - -AH_TEMPLATE([HAVE_GLE], - [Define this if you have the -lgle and -lmatrix libraries (GL - extrusion.)]) - -AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3]) - -AH_TEMPLATE([HAVE_JWZGLES],[Define this to target the OpenGL ES 1.x API - instead of OpenGL 1.3.]) - -AH_TEMPLATE([HAVE_XSHM_EXTENSION], - [Define this if you have the X Shared Memory Extension.]) - -AH_TEMPLATE([HAVE_DOUBLE_BUFFER_EXTENSION], - [Define this if you have the X Double Buffer Extension.]) - -AH_TEMPLATE([FORTUNE_PROGRAM], - [Some screenhacks like to run an external program to generate - random pieces of text; set this to the one you like. Note that - this is just the default; X resources can be used to override - it.]) - -AH_TEMPLATE([PASSWD_HELPER_PROGRAM], - [Set the name of the password helper program, if any]) - -AH_TEMPLATE([NO_LOCKING], - [Define this to remove the option of locking the screen at all.]) - -AH_TEMPLATE([ALLOW_ROOT_PASSWD], - [Define this to allow the root password to unlock the screen.]) - -AH_TEMPLATE([HAVE_KERBEROS], - [Define this if you want to use Kerberos authentication to - lock/unlock the screen instead of your local password. This - currently uses Kerberos V4, but a V5 server with V4 - compatibility will work. WARNING: DO NOT USE AFS string-to-key - passwords with this option. This option currently *only* works - with standard Kerberos des_string_to_key. If your password is - an AFS password and not a kerberos password, it will not - authenticate properly. See the comments in driver/kpasswd.c for - more information if you need it.]) - -AH_TEMPLATE([HAVE_KERBEROS5], - [Define this if you have Kerberos 5, meaning we need to use the - Kerberos 4 compatibility layer.]) - -AH_TEMPLATE([HAVE_PAM], - [Define this if you want to use PAM (Pluggable Authentication - Modules) to lock/unlock the screen, instead of standard - /etc/passwd authentication.]) - -AH_TEMPLATE([PAM_SERVICE_NAME], - [If PAM is being used, this is the name of the PAM service that - xscreensaver will authenticate as. The default is - "xscreensaver", which means that the PAM library will look for - an "xscreensaver" line in /etc/pam.conf, or (on recent Linux - systems) will look for a file called /etc/pam.d/xscreensaver. - Some systems might already have a PAM installation that is - configured for xlock, so setting this to "xlock" would also work - in that case.]) - -AH_TEMPLATE([HAVE_PAM_FAIL_DELAY], - [Define this if you have pam_fail_delay function. - see driver/passwd-pam.c.]) - -AH_TEMPLATE([PAM_CHECK_ACCOUNT_TYPE], - [Whether PAM should check the result of account modules - when authenticating. Only do this if you have account - configured properly on your system.]) - -AH_TEMPLATE([PAM_STRERROR_TWO_ARGS], - [Define if you have PAM and pam_strerror() requires two - arguments.]) - -AH_TEMPLATE([HAVE_SIGTIMEDWAIT], - [Define to 1 if you have the `sigtimedwait' function.]) - -AH_TEMPLATE([HAVE_SHADOW_PASSWD], - [Define this if your system uses 'shadow' passwords, that is, the - passwords live in /etc/shadow instead of /etc/passwd, and one - reads them with getspnam() instead of getpwnam(). (Note that - SCO systems do some random other thing; others might as well. - See the ifdefs in driver/passwd-pwent.c if you're having trouble - related to reading passwords.)]) - -AH_TEMPLATE([HAVE_ENHANCED_PASSWD], - [Define this if your system is Digital or SCO Unix with so-called - ``Enhanced Security'', that is, the passwords live in - /tcb/files/auth// instead of in /etc/passwd, and one - reads them with getprpwnam() instead of getpwnam().]) - -AH_TEMPLATE([HAVE_ADJUNCT_PASSWD], - [Define this if your system is Solaris with ``adjunct'' passwords - (this is the version where one gets at the passwords with - getpwanam() instead of getpwnam().) I haven't tested this one, - let me know if it works.]) - -AH_TEMPLATE([HAVE_HPUX_PASSWD], - [Define this if you are running HPUX with so-called ``Secure - Passwords'' (if you have /usr/include/hpsecurity.h, you probably - have this.) I haven't tested this one, let me know if it works.]) - -AH_TEMPLATE([HAVE_SYSLOG], - [Define this if you the openlog(), syslog(), and closelog() - functions. This is used for logging failed login attempts.]) - -AH_TEMPLATE([HAVE_ICMP], - [Define this if you do pings with a `struct icmp' and an - `icmp_id' slot.]) - -AH_TEMPLATE([HAVE_ICMPHDR], - [Define this if you do pings with a `struct icmphdr' and an - `un.echo.id' slot.]) - -AH_TEMPLATE([HAVE_GETIFADDRS], - [Define this if you have the getifaddrs() function.]) - -AH_TEMPLATE([HAVE_FORKPTY], - [Define this if you have the 'forkpty' function: - This allows 'phosphor' and 'apple2' to run curses-based - programs, or be used as terminal windows.]) - -AH_TEMPLATE([HAVE_GETTIMEOFDAY], - [Define this if you have the gettimeofday function.]) - -AH_TEMPLATE([GETTIMEOFDAY_TWO_ARGS], - [Define this if gettimeofday() takes two arguments.]) - -AH_TEMPLATE([XPointer], - [Define this to void* if you're using X11R4 or earlier.]) - -AH_TEMPLATE([HAVE_PTHREAD], - [Define this if your system supports POSIX threads.]) - -AH_TEMPLATE([HAVE_RECORD_ANIM], - [Define this to enable recording of videos.]) - -# After checking to see that --srcdir is correct (which AC_INIT does) -# check for some random other files that come later in the tar file, -# to make sure everything is here. -# -for d in utils jwxyz hacks hacks/glx driver ; do - f=$srcdir/$d/Makefile.in - if test \! -r $f ; then - echo "" - echo "ERROR: The package is incomplete: $f does not exist." - echo " This probably means that your download was truncated." - echo "" - exit 1 - fi -done - -############################################################################### -# -# Query AX_PTHREAD, and figure out which compiler gets used. -# -############################################################################### - -AC_DEFUN([AC_PROG_CC_PTHREAD], - [have_pthread=no - with_pthread_req=unspecified - - # AX_PTHREAD is from the GNU Autoconf Archive. - # https://savannah.gnu.org/projects/autoconf-archive/ - m4_include(ax_pthread.m4) - - # This affects CC, LIBS, and CFLAGS, instead of defining new variables. - - AC_ARG_WITH([pthread], - [ --with-pthread Enables POSIX threads, for SMP support.], - [with_pthread="$withval"; with_pthread_req="$withval"], - [with_pthread=yes]) - - if test "$with_pthread" = yes; then - # AX_PTHREAD might want a different compiler. - AX_PTHREAD( - [if test "$CC" = "$PTHREAD_CC" -o -z "$ac_original_cc"; then - have_pthread=yes - else - ac_prog_cc_no_pthread=yes - fi - ]) - - if test "$have_pthread" = yes; then - AC_DEFINE([HAVE_PTHREAD]) - CC=$PTHREAD_CC - fi - fi -]) - - -############################################################################### -# -# Function to figure out how to run the compiler. -# -############################################################################### - -AC_DEFUN([AC_PROG_CC_ANSI], - [AC_REQUIRE([AC_PROG_CC]) - - if test -z "$GCC"; then - # not using GCC - AC_MSG_CHECKING(how to request ANSI compilation) - case "$host" in - *-hpux* ) - AC_MSG_RESULT(HPUX: adding -Ae) - CC="$CC -Ae" - ;; - *-aix* ) - AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e) - CC="$CC -qlanglvl=ansi -qhalt=e" - ;; - *-dec-* ) - AC_MSG_RESULT(DEC: adding -std1 -ieee) - CC="$CC -std1" - ;; - *) - AC_MSG_RESULT(no idea) - ;; - esac - else - # using GCC - case "$host" in - *-solaris*) - AC_MSG_RESULT(Solaris: adding -D__EXTENSIONS__) - CC="$CC -D__EXTENSIONS__" - ;; - esac - fi - - OBJCC="$CC" - - AC_MSG_CHECKING([whether the compiler works on ANSI C]) - AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) - AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), - AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) - - if test -n "$GCC"; then - AC_MSG_RESULT(Turning on gcc compiler warnings.) - CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes" - OBJCC="$OBJCC -Wall" - # As of gcc 3.4, we have "-Wdeclaration-after-statement" - # and so perhaps now we can do without -pedantic? - else - case "$host" in - *-irix5* |*-irix6.[0-3]* ) - AC_MSG_RESULT(Turning on SGI compiler warnings.) - CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3" - ;; -# *-dec-osf* ) -# if test -z "$GCC"; then -# AC_MSG_RESULT(Turning on DEC C compiler warnings.) -# CC="$CC -migrate -w0 -verbose -warnprotos" -# fi -# ;; - esac - fi -]) - - -############################################################################### -# -# Check for availability of various gcc command-line options. -# -############################################################################### - -AC_DEFUN([AC_CHECK_GCC_ARG], - [if test -n "$GCC"; then - AC_CACHE_CHECK([whether gcc accepts [$2]], - ac_cv_gcc_accepts_[$1], - [rm -rf conftest.$ac_ext - touch conftest.$ac_ext - if ( ( gcc -c [$2] conftest.$ac_ext -o/dev/null >/dev/null ) 2>&1 | \ - grep unrecognized >/dev/null ); then - ac_cv_gcc_accepts_[$1]=no - else - ac_cv_gcc_accepts_[$1]=yes - CC="$CC [$2]" - fi]) - ac_gcc_accepts_[$1]="$ac_cv_gcc_accepts_[$1]" - fi -]) - -AC_DEFUN([AC_NO_LONG_STRING_WARNINGS], - [AC_CHECK_GCC_ARG(no_overlength, -Wno-overlength-strings)]) - -AC_DEFUN([AC_NO_MISPLACED_DECLARATIONS], - [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)]) - -# Need to disable Objective C extensions in ANSI C on MacOS X to work -# around an Apple-specific gcc bug. -# -AC_DEFUN([AC_NO_OBJECTIVE_C], - [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)]) - -############################################################################### -# -# Function to figure out how to disable // comments in ANSI C code. -# -# (With recent gcc, this is done with "-std=c89". With older gcc, this -# is done by passing "-lang-c89" to cpp, by passing "-Wp,-lang-c89" to -# gcc. Old gcc doesn't support -std, and new gcc doesn't support -lang. -# so much for compatibility!) -# -# UPDATE: apparently there is NO WAY to tell gcc 3.2.2 to require that -# declarations preceed statements, without resorting to "-pedantic". -# This means that there is no way to get gcc3 to issue warnings that -# ensure that your code complies with the ANSI/ISO C89 standard, without -# also drowning in totally useless warnings. Thank you master may I -# have another. -# -# So, I give up, let's just use -pedantic. -# -############################################################################### - -AC_DEFUN([AC_GCC_ACCEPTS_STD], [ - case "$host" in - *-darwin* ) - # Fucking Apple let // comments sneak into OpenGL headers, so - # we *must* allow // comments when compiling on Mac OS 10.6! FUCK! - ;; - *) - AC_CHECK_GCC_ARG(std, -std=c89) - ;; - esac -]) - -AC_DEFUN([AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE], - [if test -n "$GCC"; then - AC_GCC_ACCEPTS_STD - AC_MSG_RESULT(Disabling C++ comments in ANSI C code.) - # - # The reason that // comments are banned from xscreensaver is that gcc is - # basically the only compiler in the world that supports them in C code. - # All other vendors support them only in their C++ compilers, not in their - # ANSI C compilers. This means that it's a portability problem: every time - # these comments have snuck into the xscreensaver source code, I've gotten - # complaints about it the next day. So we turn off support for them in gcc - # as well to prevent them from accidentially slipping in. - # - if test "$ac_gcc_accepts_std" = yes ; then - # - # -std=c89 defines __STRICT_ANSI__, which we don't want. - # (That appears to be the only additional preprocessor symbol - # it defines, in addition to the syntax changes it makes.) - # - # -std=gnu89 is no good, because // comments were a GNU extension - # before they were in the ANSI C 99 spec... (gcc 2.96 permits // - # with -std=gnu89 but not with -std=c89.) - # - # $CC already contains "-std=c89" via AC_GCC_ACCEPTS_STD - CC="$CC -U__STRICT_ANSI__" -# else -# # The old way: -# CC="$CC -Wp,-lang-c89" - fi - fi -]) - - -############################################################################### -# -# Function to figure out how to create directory trees. -# -############################################################################### - -AC_DEFUN([AC_PROG_INSTALL_DIRS], - [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories], - ac_cv_install_d_creates_dirs, - [ac_cv_install_d_creates_dirs=no - rm -rf conftestdir - if mkdir conftestdir; then - cd conftestdir 2>/dev/null - ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1 - if test -d dir1/dir2/. ; then - ac_cv_install_d_creates_dirs=yes - fi - cd .. 2>/dev/null - rm -rf conftestdir - fi - ]) - - if test "$ac_cv_install_d_creates_dirs" = no ; then - AC_CACHE_CHECK([whether "mkdir -p" creates intermediate directories], - ac_cv_mkdir_p_creates_dirs, - [ac_cv_mkdir_p_creates_dirs=no - rm -rf conftestdir - if mkdir conftestdir; then - cd conftestdir 2>/dev/null - mkdir -p dir1/dir2 >/dev/null 2>&1 - if test -d dir1/dir2/. ; then - ac_cv_mkdir_p_creates_dirs=yes - fi - cd .. 2>/dev/null - rm -rf conftestdir - fi - ]) - fi - - if test "$ac_cv_install_d_creates_dirs" = yes ; then - INSTALL_DIRS='${INSTALL} -d' - elif test "$ac_cv_mkdir_p_creates_dirs" = yes ; then - INSTALL_DIRS='mkdir -p' - else - # any other ideas? - INSTALL_DIRS='${INSTALL} -d' - fi -]) - - -############################################################################### -# -# Function to check whether gettimeofday() exists, and how to call it. -# This may define HAVE_GETTIMEOFDAY and GETTIMEOFDAY_TWO_ARGS. -# -############################################################################### - -AC_DEFUN([AC_GETTIMEOFDAY_ARGS], - [AC_MSG_CHECKING(how to call gettimeofday) - AC_CACHE_VAL(ac_cv_gettimeofday_args, - [AC_TRY_COMPILE([#include - #include ], - [struct timeval tv; struct timezone tzp; - gettimeofday(&tv, &tzp);], - [ac_gettimeofday_args=2], - [AC_TRY_COMPILE([#include - #include ], - [struct timeval tv; gettimeofday(&tv);], - [ac_gettimeofday_args=1], - [ac_gettimeofday_args=0])]) - ac_cv_gettimeofday_args=$ac_gettimeofday_args]) - ac_gettimeofday_args=$ac_cv_gettimeofday_args - if test "$ac_gettimeofday_args" = 1 ; then - AC_DEFINE(HAVE_GETTIMEOFDAY) - AC_MSG_RESULT(one argument) - elif test "$ac_gettimeofday_args" = 2 ; then - AC_DEFINE(HAVE_GETTIMEOFDAY) - AC_DEFINE(GETTIMEOFDAY_TWO_ARGS) - AC_MSG_RESULT(two arguments) - else - AC_MSG_RESULT(unknown) - fi -]) - - -############################################################################### -# -# Function to find perl5 (defines PERL and PERL_VERSION.) -# -############################################################################### - -# M4 sucks!! perl sucks too!! -changequote(X,Y) -perl_version_cmd='print $]' -changequote([,]) - -AC_DEFUN([AC_PROG_PERL], - [AC_PATH_PROGS(PERL, [perl5 perl],,) - if test -z "$PERL" ; then - PERL_VERSION=0 - else - AC_CACHE_CHECK([perl version], ac_cv_perl_version, - [ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`]) - PERL_VERSION=$ac_cv_perl_version - fi - ]) - - -############################################################################### -# -# Function to demand "bc". Losers. -# -############################################################################### - -AC_DEFUN([AC_DEMAND_BC], - [ac_bc_result=`echo 6+9 | bc 2>/dev/null` - AC_MSG_CHECKING([for bc]) - if test "$ac_bc_result" = "15" ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - echo '' - AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard - part of Unix since the 1970s. Come back when your vendor - has grown a clue.]) - fi - ]) - -############################################################################### -# -# Functions to check how to do ICMP PING requests. -# -############################################################################### - -AC_DEFUN([AC_CHECK_ICMP], - [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp, - [AC_TRY_COMPILE([#include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include ], - [struct icmp i; - struct sockaddr s; - struct sockaddr_in si; - struct ip ip; - i.icmp_type = ICMP_ECHO; - i.icmp_code = 0; - i.icmp_cksum = 0; - i.icmp_id = 0; - i.icmp_seq = 0; - si.sin_family = AF_INET; - #if defined(__DECC) || defined(_IP_VHL) - ip.ip_vhl = 0; - #else - ip.ip_hl = 0; - #endif - ], - [ac_cv_have_icmp=yes], - [ac_cv_have_icmp=no])]) - if test "$ac_cv_have_icmp" = yes ; then - AC_DEFINE(HAVE_ICMP) - fi]) - -AC_DEFUN([AC_CHECK_ICMPHDR], - [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr, - [AC_TRY_COMPILE([#include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include ], - [struct icmphdr i; - struct sockaddr s; - struct sockaddr_in si; - struct ip ip; - i.type = ICMP_ECHO; - i.code = 0; - i.checksum = 0; - i.un.echo.id = 0; - i.un.echo.sequence = 0; - si.sin_family = AF_INET; - ip.ip_hl = 0;], - [ac_cv_have_icmphdr=yes], - [ac_cv_have_icmphdr=no])]) - if test "$ac_cv_have_icmphdr" = yes ; then - AC_DEFINE(HAVE_ICMPHDR) - fi]) - - -############################################################################### -# -# Functions to check for various X11 crap. -# -############################################################################### - -# Try and find the app-defaults directory. -# It sucks that autoconf doesn't do this already... -# -AC_DEFUN([AC_PATH_X_APP_DEFAULTS_XMKMF],[ - rm -fr conftestdir - if mkdir conftestdir; then - cd conftestdir 2>/dev/null - # Make sure to not put "make" in the Imakefile rules, since we grep it out. - cat > Imakefile <<'EOF' -acfindx: - @echo 'ac_x_app_defaults="${XAPPLOADDIR}"' -EOF - if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which'd confuse us. - eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` - fi - cd .. 2>/dev/null - rm -fr conftestdir - fi]) - -############################################################################### -# -# Handle the --with-x-app-defaults option HERE -# -############################################################################### - -AC_ARG_WITH(x-app-defaults,[], - [ac_cv_x_app_defaults="$withval"], - [eval ac_x_app_defaults="$withval"]) - - -AC_DEFUN([AC_PATH_X_APP_DEFAULTS_DIRECT],[ - # Look for the directory under a standard set of common directories. - # Check X11 before X11Rn because it's often a symlink to the current release. - for ac_dir in \ - \ - /usr/share/X11/app-defaults \ - \ - /usr/X11/lib/app-defaults \ - /usr/X11R6/lib/app-defaults \ - /usr/X11R6/lib/X11/app-defaults \ - /usr/X11R5/lib/app-defaults \ - /usr/X11R5/lib/X11/app-defaults \ - /usr/X11R4/lib/app-defaults \ - /usr/X11R4/lib/X11/app-defaults \ - \ - /usr/lib/X11/app-defaults \ - /usr/lib/X11R6/app-defaults \ - /usr/lib/X11R5/app-defaults \ - /usr/lib/X11R4/app-defaults \ - \ - /etc/X11/app-defaults \ - \ - /usr/local/X11/lib/app-defaults \ - /usr/local/X11R6/lib/app-defaults \ - /usr/local/X11R5/lib/app-defaults \ - /usr/local/X11R4/lib/app-defaults \ - \ - /usr/local/lib/X11/app-defaults \ - /usr/local/lib/X11R6/app-defaults \ - /usr/local/lib/X11R6/X11/app-defaults \ - /usr/local/lib/X11R5/app-defaults \ - /usr/local/lib/X11R5/X11/app-defaults \ - /usr/local/lib/X11R4/app-defaults \ - /usr/local/lib/X11R4/X11/app-defaults \ - \ - /usr/X386/lib/X11/app-defaults \ - /usr/x386/lib/X11/app-defaults \ - /usr/XFree86/lib/X11/app-defaults \ - \ - /usr/lib/X11/app-defaults \ - /usr/local/lib/X11/app-defaults \ - /usr/unsupported/lib/X11/app-defaults \ - /usr/athena/lib/X11/app-defaults \ - /usr/local/x11r5/lib/X11/app-defaults \ - /usr/lpp/Xamples/lib/X11/app-defaults \ - /lib/usr/lib/X11/app-defaults \ - \ - /usr/openwin/lib/app-defaults \ - /usr/openwin/lib/X11/app-defaults \ - /usr/openwin/share/lib/app-defaults \ - /usr/openwin/share/lib/X11/app-defaults \ - \ - /X11R6/lib/app-defaults \ - /X11R5/lib/app-defaults \ - /X11R4/lib/app-defaults \ - ; \ - do - if test -d "$ac_dir"; then - ac_x_app_defaults=$ac_dir - break - fi - done -]) - -AC_DEFUN([AC_PATH_X_APP_DEFAULTS], - [AC_REQUIRE_CPP() - AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults, - [# skip this, it's always wrong these days. - # AC_PATH_X_APP_DEFAULTS_XMKMF - if test x"$ac_x_app_defaults" = x; then - true AC_PATH_X_APP_DEFAULTS_DIRECT - fi - if test x"$ac_x_app_defaults" = x; then - /bin/echo -n 'fallback: ' - ac_cv_x_app_defaults="/usr/lib/X11/app-defaults" - else - # Record where we found app-defaults for the cache. - ac_cv_x_app_defaults="$ac_x_app_defaults" - fi]) - eval ac_x_app_defaults="$ac_cv_x_app_defaults"]) - - -AC_DEFUN([AC_XPOINTER], - [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer, - [AC_TRY_X_COMPILE([#include ], - [XPointer foo = (XPointer) 0;], - [ac_cv_xpointer=yes], - [ac_cv_xpointer=no])]) - if test "$ac_cv_xpointer" != yes; then - AC_DEFINE(XPointer,[char*]) - fi]) - - -# Random special-cases for X on certain pathological OSes. -# You know who you are. -# -AC_DEFUN([AC_X_RANDOM_PATHS], - [case "$host" in - *-hpux*) - - # The following arcana was gleaned from conversations with - # Eric Schwartz : - # - # On HPUX 10.x, the parts of X that HP considers "standard" live in - # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider - # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/. - # Yet /usr/contrib/X11R6/ comes preinstalled on all HPUX systems. - # Also, there are symlinks from /usr/include/ and /usr/lib/ into - # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all) - # you don't need any -I or -L arguments. - # - # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/ - # are the same division as 10.x. However, there are no symlinks to - # the X stuff from /usr/include/ and /usr/lib/, so -I and -L - # arguments are always necessary. - # - # However, X11R6 was available on HPUX 9.x as a patch: if that - # patch was installed, then all of X11R6 went in to - # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.) - # - # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know - # whether R5 was available as a patch; R6 undoubtedly was not.) - # - # So. We try and use the highest numbered pair of - # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/ - # that are available. We do not mix and match different versions - # of X. - # - # Question I still don't know the answer to: (do you?) - # - # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and - # /usr/contrib/X11R6/ could be installed as a patch, what was in - # that contrib directory? Did it contain so-called "standard" - # X11R6, or did it include Xaw and Xmu as well? If the former, - # where did one find Xaw and Xmu on 9.x R6 systems? Would this - # be a situation where one had to reach into the R5 headers and - # libs to find Xmu? That is, must both R6 and R5 directories - # be on the -I and -L lists in that case? - # - for version in X11R6 X11R5 X11R4 ; do - # if either pair of directories exists... - if test -d /usr/include/$version || test -d /usr/contrib/$version/include - then - # if contrib exists, use it... - if test -d /usr/contrib/$version/include ; then - X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include" - X_LIBS="$X_LIBS -L/usr/contrib/$version/lib" - fi - # if the "standard" one exists, use it. - if test -d /usr/include/$version ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/$version" - X_LIBS="$X_LIBS -L/usr/lib/$version" - fi - # since at least one of the pair exists, go no farther. - break - fi - done - - # Now find Motif. Thanks for not making xmkmf find this by - # default, you losers. - # - if test -d /usr/include/Motif2.1 ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/Motif2.1" - X_LIBS="$X_LIBS -L/usr/lib/Motif2.1" - elif test -d /usr/include/Motif1.2 ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2" - X_LIBS="$X_LIBS -L/usr/lib/Motif1.2" - elif test -d /usr/include/Motif1.1 ; then - X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1" - X_LIBS="$X_LIBS -L/usr/lib/Motif1.1" - fi - - # Now let's check for the pseudo-standard locations for OpenGL. - # - if test -d /opt/graphics/OpenGL/include ; then - # HP-UX 10.20 puts it here - X_CFLAGS="-I/opt/graphics/OpenGL/include $X_CFLAGS" - X_LIBS="-L/opt/graphics/OpenGL/lib $X_LIBS" - elif test -d /opt/Mesa/lib ; then - X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS" - X_LIBS="-L/opt/Mesa/lib $X_LIBS" - fi - - - # On HPUX, default to installing in /opt/xscreensaver/ instead of - # in /usr/local/, unless there is already an xscreensaver in - # /usr/local/bin/. This can be overridden with the --prefix arg - # to configure. I'm not sure this is the right thing to do, but - # Richard Lloyd says so... - # - if test \! -x /usr/local/bin/xscreensaver ; then - ac_default_prefix=/opt/xscreensaver - fi - - ;; - *-solaris*) - - # Thanks for not making xmkmf find this by default, pinheads. - # And thanks for moving things around again, too. Is this - # really the standard location now? What happened to the - # joke that this kind of thing went in /opt? - # cthomp says "answer: CDE (Common Disorganized Environment)" - # - if test -f /usr/dt/include/Xm/Xm.h ; then - X_CFLAGS="$X_CFLAGS -I/usr/dt/include" - MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib" - - # Some versions of Slowlaris Motif require -lgen. But not all. Why? - AC_CHECK_LIB(gen, regcmp, [MOTIF_LIBS="$MOTIF_LIBS -lgen"]) - fi - - ;; - *-darwin*) - - # On MacOS X (10.x with "fink"), many things are under /sw/. - # - if test -d /sw/include ; then - X_CFLAGS="-I/sw/include $X_CFLAGS" - X_LIBS="-L/sw/lib $X_LIBS" - fi - ;; - esac]) - -AC_DEFUN([AC_CHECK_GETIFADDRS], - [AC_CACHE_CHECK([for getifaddrs], ac_cv_have_getifaddrs, - [AC_TRY_COMPILE([#include - #include - #include - #include ], - [struct ifaddrs *ifa; - getifaddrs (&ifa); - ifa->ifa_next = 0; - ifa->ifa_addr->sa_family = 0;], - [ac_cv_have_getifaddrs=yes], - [ac_cv_have_getifaddrs=no])]) - if test "$ac_cv_have_getifaddrs" = yes ; then - AC_DEFINE(HAVE_GETIFADDRS) - fi]) - -AC_DEFUN([AC_TYPE_SOCKLEN_T], - [AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include - #include ]], [[ - socklen_t socklen; - ]])],[ac_cv_type_socklen_t=yes],[ac_cv_type_socklen_t=no])]) - if test "$ac_cv_type_socklen_t" != yes; then - AC_DEFINE(socklen_t, int, - [Define to `int' if or does not define.]) - fi]) - -############################################################################### -# -# Some utility functions to make checking for X things easier. -# -############################################################################### - -# Like AC_CHECK_HEADER, but it uses the already-computed -I directories. -# -AC_DEFUN([AC_CHECK_X_HEADER], [ - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - AC_CHECK_HEADER([$1],[$2],[$3],[$4]) - CPPFLAGS="$ac_save_CPPFLAGS"]) - -# Like AC_EGREP_HEADER, but it uses the already-computed -I directories. -# -AC_DEFUN([AC_EGREP_X_HEADER], [ - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - AC_EGREP_HEADER([$1], [$2], [$3], [$4]) - CPPFLAGS="$ac_save_CPPFLAGS"]) - -# Like AC_TRY_COMPILE, but it uses the already-computed -I directories. -# -AC_DEFUN([AC_TRY_X_COMPILE], [ - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - AC_TRY_COMPILE([$1], [$2], [$3], [$4]) - CPPFLAGS="$ac_save_CPPFLAGS"]) - - -# Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories. -# Use this sparingly; it probably doesn't work very well on X programs. -# -AC_DEFUN([AC_CHECK_X_LIB], [ - ac_save_CPPFLAGS="$CPPFLAGS" - ac_save_LDFLAGS="$LDFLAGS" -# ac_save_LIBS="$LIBS" - - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - # note: $X_CFLAGS includes $x_includes - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" - fi - # note: $X_LIBS includes $x_libraries - LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS" - - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS` - AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5]) - CPPFLAGS="$ac_save_CPPFLAGS" - LDFLAGS="$ac_save_LDFLAGS" -# LIBS="$ac_save_LIBS" - ]) - -# Like AC_TRY_RUN, but it uses the already-computed -I directories. -# (But not the -L directories!) -# -AC_DEFUN([AC_TRY_X_RUN], [ - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS` - AC_TRY_RUN([$1], [$2], [$3], [$4]) - CPPFLAGS="$ac_save_CPPFLAGS"]) - - - -# Usage: HANDLE_X_PATH_ARG([variable_name], -# [--command-line-option], -# [descriptive string]) -# -# All of the --with options take three forms: -# -# --with-foo (or --with-foo=yes) -# --without-foo (or --with-foo=no) -# --with-foo=/DIR -# -# This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees -# a directory (string beginning with a slash) it checks to see whether -# /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS -# as appropriate. -# -AC_DEFUN([HANDLE_X_PATH_ARG], [ - case "$[$1]" in - yes) ;; - no) ;; - - /*) - AC_MSG_CHECKING([for [$3] headers]) - d=$[$1]/include - if test -d $d; then - X_CFLAGS="-I$d $X_CFLAGS" - AC_MSG_RESULT($d) - else - AC_MSG_RESULT(not found ($d: no such directory)) - fi - - AC_MSG_CHECKING([for [$3] libs]) - d=$[$1]/lib - if test -d $d; then - X_LIBS="-L$d $X_LIBS" - AC_MSG_RESULT($d) - else - AC_MSG_RESULT(not found ($d: no such directory)) - fi - - # replace the directory string with "yes". - [$1]_req="yes" - [$1]=$[$1]_req - ;; - - *) - echo "" - echo "error: argument to [$2] must be \"yes\", \"no\", or a directory." - echo " If it is a directory, then \`DIR/include' will be added to" - echo " the -I list, and \`DIR/lib' will be added to the -L list." - exit 1 - ;; - esac - ]) - - - -############################################################################### -############################################################################### -# -# End of function definitions. Now start actually executing stuff. -# -############################################################################### -############################################################################### - -# WTF! autoconf emits this *way* too late. Do it earlier. -test "x$prefix" = xNONE && prefix=$ac_default_prefix -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - - -# random compiler setup -AC_CANONICAL_HOST - -ac_original_cc=$CC -AC_PROG_CC -AC_PROG_CC_PTHREAD # Needs ac_original_cc. - -AC_PROG_CC_ANSI -AC_NO_LONG_STRING_WARNINGS -AC_NO_MISPLACED_DECLARATIONS -AC_NO_OBJECTIVE_C -AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE -AC_PROG_CPP -AC_C_CONST -AC_C_INLINE -AC_EXEEXT -AC_DEMAND_BC - -# stuff for Makefiles -AC_PROG_INSTALL -AC_PROG_INSTALL_DIRS -AC_PROG_MAKE_SET - -# By default, autoconf sets INSTALL_SCRIPT to '${INSTALL_PROGRAM}'. -# That's wrong: it should be set to '${INSTALL}', so that one can -# implement the "install-strip" target properly (strip executables, -# but do not try to strip scripts.) -# -INSTALL_SCRIPT='${INSTALL}' - -# random libc stuff -AC_HEADER_STDC -AC_CHECK_HEADERS(unistd.h inttypes.h) -AC_TYPE_MODE_T -AC_TYPE_PID_T -AC_TYPE_SIZE_T -AC_TYPE_SIGNAL -AC_HEADER_TIME -AC_HEADER_SYS_WAIT -AC_HEADER_DIRENT -AC_GETTIMEOFDAY_ARGS -AC_SYS_LARGEFILE -AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk) -AC_CHECK_FUNCS(sigaction syslog realpath setrlimit) -AC_CHECK_FUNCS(setlocale sqrtf) -AC_CHECK_FUNCS(getaddrinfo) -AC_CHECK_MEMBERS([struct sockaddr.sa_len],,, [[#include ]]) -AC_CHECK_ICMP -AC_CHECK_ICMPHDR -AC_CHECK_GETIFADDRS -AC_TYPE_SOCKLEN_T -AC_CHECK_HEADERS(crypt.h sys/select.h) -AC_PROG_PERL - -if test -z "$PERL" ; then - # don't let it be blank... - PERL=/usr/bin/perl -fi - -AC_PATH_XTRA - -if test "$have_x" != yes; then - AC_MSG_ERROR(Couldn't find X11 headers/libs. Try `$0 --help'.) -fi - -AC_PATH_X_APP_DEFAULTS -AC_X_RANDOM_PATHS -AC_XPOINTER - -AC_MSG_CHECKING(whether this is MacOS X) - ac_macosx=no - case "$host" in - *-apple-darwin* ) - ac_macosx=yes - ;; - esac -AC_MSG_RESULT($ac_macosx) - - -############################################################################### -# -# Gettext support -# -############################################################################### - -IT_PROG_INTLTOOL -GETTEXT_PACKAGE=xscreensaver -AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", - [This is the name of the gettext package to use.]) -AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE", - [This is the same as GETTEXT_PACKAGE, but for the glade - generated code.]) -AC_SUBST(GETTEXT_PACKAGE) - -ALL_LINGUAS="da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" -AM_GLIB_GNU_GETTEXT -MKINSTALLDIRS="$INSTALL_DIRS" - - -############################################################################### -# -# Check for -lXmu (some fucked up vendors don't ship it...) -# -############################################################################### - -have_xmu=no -AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],, - [#include - #include - #include ]) -if test "$have_xmu" = no ; then - XMU_SRCS='$(UTILS_SRC)/xmu.c' - XMU_OBJS='$(UTILS_BIN)/xmu.o' - XMU_LIBS='' -else - XMU_SRCS='' - XMU_OBJS='' - XMU_LIBS='-lXmu' - AC_DEFINE(HAVE_XMU) -fi - - -############################################################################### -# -# Check for the SunOS 4.1.x _get_wmShellWidgetClass bug. -# See comp.windows.x FAQ question 124. The right fix is to -# get OpenWindows 3.0 patches 100512-02 and 100573-03. -# -############################################################################### - -if test "$have_xmu" = yes ; then - case "$host" in - *-sunos4*) - AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug], - ac_cv_sunos_xmu_bug, - [ac_save_LDFLAGS="$LDFLAGS" - if test \! -z "$x_libraries" ; then - LDFLAGS="$LDFLAGS -L$x_libraries" - fi - # Note: this trick never works! (Generally.) - # We're only getting away with using AC_TRY_LINK - # with X libraries because we know it's SunOS. - LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm" - AC_TRY_LINK(,, - [ac_cv_sunos_xmu_bug=no], - [ac_cv_sunos_xmu_bug=yes]) - LDFLAGS="$ac_save_LDFLAGS"]) - if test "$ac_cv_sunos_xmu_bug" = yes ; then - AC_CACHE_CHECK([whether the compiler understands -static], - ac_cv_ld_static, - [ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -static" - AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no]) - LDFLAGS="$ac_save_LDFLAGS"]) - if test "$ac_cv_ld_static" = yes ; then - LDFLAGS="$LDFLAGS -static" - else - LDFLAGS="$LDFLAGS -Bstatic" - fi - fi - ;; - esac -fi - - -############################################################################### -# -# Handle the --with-hackdir option -# -############################################################################### - -have_hackdir=yes -with_hackdir_req=unspecified -AC_ARG_WITH(hackdir,[ - -Installation options: - --with-hackdir=DIR Where to install the hundreds of demo executables. - Default: `PREFIX/libexec/xscreensaver/'], - [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes]) - -if test x"$with_hackdir" = xyes; then - HACKDIR='${libexecdir}/xscreensaver' -elif test x"$with_hackdir" = xno; then - HACKDIR='${bindir}' -else - HACKDIR=$with_hackdir -fi - -# canonicalize slashes. -HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` - -# Expand HACKDIR as HACKDIR_FULL -HACKDIR_FULL=`eval eval eval eval eval eval eval eval eval echo $HACKDIR` - -# This option used to be called --enable-subdir; make sure that is no longer -# used, since configure brain-damagedly ignores unknown --enable options. - -obsolete_enable= -AC_ARG_ENABLE(subdir,,[obsolete_enable=yes]) -if test -n "$obsolete_enable"; then - echo "error: the --enable-subdir option has been replaced with" - echo " the new --with-hackdir option; see \`configure --help'" - echo " for more information." - exit 1 -fi - - -############################################################################### -# -# Handle the --with-configdir option -# Help for --with-x-app-defaults option added. -# -############################################################################### - -have_configdir=yes -with_configdir_req=unspecified -AC_ARG_WITH(configdir, -[ --with-configdir=DIR Where to install the data files that describe each - of the display modes to the GUI. - Default: `PREFIX/share/xscreensaver/config/' - --with-x-app-defaults=DIR - Where to install xscreensaver configuration file. -], - [with_configdir="$withval"; with_configdir_req="$withval"], - [with_configdir=yes]) - -if test x"$with_configdir" = xyes; then - HACK_CONF_DIR='${datadir}/xscreensaver/config' -elif test x"$with_configdir" = xno; then - echo "error: must be yes, or a pathname: --with-configdir=$with_configdir" - exit 1 -else - # there must be a better way than this... - if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then - # absolute path - HACK_CONF_DIR=$with_configdir - else - # relative path - HACK_CONF_DIR="\${exec_prefix}$with_configdir" - fi -fi - - - - -############################################################################### -# -# Check for the SGI SCREEN_SAVER server extension. -# -############################################################################### - -#have_sgi=no -#with_sgi_req=unspecified -#AC_ARG_WITH(sgi-ext, -#[Except where noted, all of the --with options below can also take a -#directory argument: for example, `--with-motif=/opt/Motif'. That would -#cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/ -#to be added to the -L list, assuming those directories exist. -# -#By default, support for each of these options will be built in, if the -#relevant library routines exist. At run time, they will then be used -#only if the X server being used supports them. Each --with option has -#a corresponding --without option, to override building support for them -#at all. -# -#Screen blanking and idle-detection options: -# -# --with-sgi-ext Include support for the SGI SCREEN_SAVER extension.], -# [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes]) -# -#HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER) -# -#if test "$with_sgi" = yes; then -# AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, -# [have_sgi=yes -# AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],, -# [#include ]) -# -#elif test "$with_sgi" != no; then -# echo "error: must be yes or no: --with-sgi-ext=$with_sgi" -# exit 1 -#fi - - -############################################################################### -# -# Check for the XIDLE server extension. -# -############################################################################### - -#have_xidle=no -#with_xidle_req=unspecified -#AC_ARG_WITH(xidle-ext, -#[ --with-xidle-ext Include support for the XIDLE extension.], -# [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes]) -# -#HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE) -# -#if test "$with_xidle" = yes; then -# AC_CHECK_X_HEADER(X11/extensions/xidle.h, -# [have_xidle=yes -# AC_DEFINE(HAVE_XIDLE_EXTENSION)],, -# [#include ]) -#elif test "$with_xidle" != no; then -# echo "error: must be yes or no: --with-xidle-ext=$with_xidle" -# exit 1 -#fi - - -############################################################################### -# -# Check for the SGI-VIDEO-CONTROL server extension. -# -############################################################################### - -#have_sgivc=no -#with_sgivc_req=unspecified -#AC_ARG_WITH(sgivc-ext, -#[ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL extension.], -# [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes]) -# -#HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL) -# -#if test "$with_sgivc" = yes; then -# -# # first check for XSGIvc.h -# AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],, -# [#include ]) -# -# # if that succeeded, then check for the -lXsgivc -# if test "$have_sgivc" = yes; then -# have_sgivc=no -# AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap, -# [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [true], -# -lXext -lX11) -# fi -# -# # if that succeeded, then we've really got it. -# if test "$have_sgivc" = yes; then -# AC_DEFINE(HAVE_SGI_VC_EXTENSION) -# fi -# -#elif test "$with_sgivc" != no; then -# echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc" -# exit 1 -#fi - - -############################################################################### -# -# Check for the DPMS server extension. -# -############################################################################### - -have_dpms=no -with_dpms_req=unspecified -AC_ARG_WITH(dpms-ext, -[ --with-dpms-ext Include support for the DPMS extension.], - [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes]) - -HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS) - -if test "$with_dpms" = yes; then - - # first check for dpms.h - AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],, - [#include - #include ]) - - # if that succeeded, then check for the DPMS code in the libraries - if test "$have_dpms" = yes; then - - # first look in -lXext (this is where it is with XFree86 4.0) - have_dpms=no - AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11) - - # if that failed, look in -lXdpms (this is where it was in XFree86 3.x) - if test "$have_dpms" = no; then - AC_CHECK_X_LIB(Xdpms, DPMSInfo, - [have_dpms=yes; XDPMS_LIBS="-lXdpms"], [true], - -lXext -lX11) - fi - fi - - - # if that succeeded, then we've really got it. - if test "$have_dpms" = yes; then - AC_DEFINE(HAVE_DPMS_EXTENSION) - fi - -elif test "$with_dpms" != no; then - echo "error: must be yes or no: --with-dpms-ext=$with_dpms" - exit 1 -fi - - -############################################################################### -# -# Check for the XINERAMA server extension. -# -############################################################################### - -have_xinerama=no -with_xinerama_req=unspecified -AC_ARG_WITH(xinerama-ext, -[ --with-xinerama-ext Include support for the XINERAMA extension.], - [with_xinerama="$withval"; with_xinerama_req="$withval"],[with_xinerama=yes]) - -HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA) - -if test "$with_xinerama" = yes; then - - # first check for Xinerama.h - AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],, - [#include ]) - - # if that succeeded, then check for the XINERAMA code in the libraries - if test "$have_xinerama" = yes; then - - # first look in -lXext - have_xinerama=no - AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true], - -lXext -lX11) - - # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.) - if test "$have_xinerama" = no; then - AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens, - [have_xinerama=yes; XINERAMA_LIBS="-lXinerama"], - [true], -lXext -lX11) - fi - fi - - # if that succeeded, then we've really got it. - if test "$have_xinerama" = yes; then - AC_DEFINE(HAVE_XINERAMA) - fi - -elif test "$with_xinerama" != no; then - echo "error: must be yes or no: --with-xinerama-ext=$with_xinerama" - exit 1 -fi - - -############################################################################### -# -# Check for the XINPUT server extension. -# -############################################################################### - -have_xinput=no -with_xinput_req=unspecified -AC_ARG_WITH(xinput-ext, -[ --with-xinput-ext Include support for the XInput extension.], - [with_xinput="$withval"; with_xinput_req="$withval"], [with_xinput=yes]) - -HANDLE_X_PATH_ARG(with_xinput, --with-xinput-ext, XINPUT) - -if test "$with_xinput" = yes; then - - # first check for Xinput.h - AC_CHECK_X_HEADER(X11/extensions/XInput.h, [have_xinput=yes],, - [#include ]) - - # if that succeeded, then check for libXi - if test "$have_xinput" = yes; then - have_xinput=no - AC_CHECK_X_LIB(Xi, XListInputDevices, - [have_xinput=yes; SAVER_LIBS="$SAVER_LIBS -lXi"], - [true], -lXext -lX11) - fi - - # if that succeeded, then we've really got it. - if test "$have_xinput" = yes; then - AC_DEFINE(HAVE_XINPUT) - fi - -elif test "$with_xinput" != no; then - echo "error: must be yes or no: --with-xinput-ext=$with_xinput" - exit 1 -fi - - -############################################################################### -# -# Check for the XF86VMODE server extension (for virtual screens.) -# -############################################################################### - -have_xf86vmode=no -with_xf86vmode_req=unspecified -AC_ARG_WITH(xf86vmode-ext, -[ --with-xf86vmode-ext Include support for XFree86 virtual screens.], - [with_xf86vmode="$withval"; with_xf86vmode_req="$withval"], - [with_xf86vmode=yes]) - -HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode) - -VIDMODE_LIBS="" - -if test "$with_xf86vmode" = yes; then - - # first check for xf86vmode.h - AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],, - [#include ]) - - # if that succeeded, then check for the -lXxf86vm - if test "$have_xf86vmode" = yes; then - have_xf86vmode=no - AC_CHECK_X_LIB(Xxf86vm, XF86VidModeGetViewPort, - [have_xf86vmode=yes; - VIDMODE_LIBS="-lXxf86vm"; - SAVER_LIBS="$SAVER_LIBS $VIDMODE_LIBS"], - [true], -lXext -lX11) - fi - - # if that succeeded, then we've really got it. - if test "$have_xf86vmode" = yes; then - AC_DEFINE(HAVE_XF86VMODE) - fi - -elif test "$with_xf86vmode" != no; then - echo "error: must be yes or no: --with-xf86vmode-ext=$with_xf86vmode" - exit 1 -fi - - -############################################################################### -# -# Check for the XF86VMODE server extension (for gamma fading.) -# -############################################################################### - -have_xf86gamma=no -have_xf86gamma_ramp=no -with_xf86gamma_req=unspecified -AC_ARG_WITH(xf86gamma-ext, -[ --with-xf86gamma-ext Include support for XFree86 gamma fading.], - [with_xf86gamma="$withval"; with_xf86gamma_req="$withval"], - [with_xf86gamma=yes]) - -HANDLE_X_PATH_ARG(with_xf86gamma, --with-xf86gamma-ext, xf86gamma) - -if test "$with_xf86gamma" = yes; then - - # first check for xf86vmode.h, if we haven't already - if test "$have_xf86vmode" = yes; then - have_xf86gamma=yes - else - AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],, - [#include ]) - fi - - # if that succeeded, then check for the -lXxf86vm - if test "$have_xf86gamma" = yes; then - have_xf86gamma=no - AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGamma, - [have_xf86gamma=yes], - [true], -lXext -lX11) - fi - - # check for the Ramp versions of the functions too. - if test "$have_xf86gamma" = yes; then - have_xf86gamma_ramp=no - AC_CHECK_X_LIB(Xxf86vm, XF86VidModeSetGammaRamp, - [have_xf86gamma_ramp=yes], - [true], -lXext -lX11) - fi - - # if those tests succeeded, then we've really got the functions. - if test "$have_xf86gamma" = yes; then - AC_DEFINE(HAVE_XF86VMODE_GAMMA) - fi - - if test "$have_xf86gamma_ramp" = yes; then - AC_DEFINE(HAVE_XF86VMODE_GAMMA_RAMP) - fi - - # pull in the lib, if we haven't already - if test "$have_xf86gamma" = yes -a "$have_xf86vmode" = no; then - SAVER_LIBS="$SAVER_LIBS -lXxf86vm" - fi - -elif test "$with_xf86gamma" != no; then - echo "error: must be yes or no: --with-xf86gamma-ext=$with_xf86vmode" - exit 1 -fi - - -############################################################################### -# -# Check for the RANDR (Resize and Rotate) server extension. -# -# We need this to detect when the resolution of the desktop -# has changed out from under us (this is a newer, different -# mechanism than the XF86VMODE virtual viewports.) -# -############################################################################### - -have_randr=no -with_randr_req=unspecified -AC_ARG_WITH(randr-ext, -[ --with-randr-ext Include support for the X Resize+Rotate extension.], - [with_randr="$withval"; with_randr_req="$withval"],[with_randr=yes]) - -HANDLE_X_PATH_ARG(with_randr, --with-randr-ext, RANDR) - -if test "$with_randr" = yes; then - - # first check for Xrandr.h - AC_CHECK_X_HEADER(X11/extensions/Xrandr.h, [have_randr=yes],, - [#include ]) - - # if that succeeded, then check for the XRR code in the libraries - if test "$have_randr" = yes; then - - # RANDR probably needs -lXrender - xrender_libs= - AC_CHECK_X_LIB(Xrender, XRenderSetSubpixelOrder, - [xrender_libs="-lXrender"], [true], -lXext -lX11) - - # first look for RANDR in -lXext - have_randr=no - AC_CHECK_X_LIB(Xext, XRRGetScreenInfo, - [have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"], - [true], $xrender_libs -lXext -lX11) - - # if that failed, look in -lXrandr - if test "$have_randr" = no; then - AC_CHECK_X_LIB(Xrandr, XRRGetScreenInfo, - [have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"], - [true], $xrender_libs -lXext -lX11) - fi - fi - - # if that succeeded, then we've really got it. - if test "$have_randr" = yes; then - AC_DEFINE(HAVE_RANDR) - - # Now check for version 1.2 in the same libs. - # Try to compile, since on MacOS 10.5.7, headers are older than libs! - AC_CACHE_CHECK([for XRRGetScreenResources], ac_cv_randr_12, - [ac_cv_randr_12=no - AC_TRY_X_COMPILE([#include - #include - #include ], - [XRRScreenResources *res = - XRRGetScreenResources (0, 0);], - [ac_cv_randr_12=yes], - [ac_cv_randr_12=no])]) - if test "$ac_cv_randr_12" = yes ; then - AC_DEFINE(HAVE_RANDR_12) - fi -# AC_CHECK_X_LIB(c, XRRGetOutputInfo, [AC_DEFINE(HAVE_RANDR_12)], -# [true], $SAVER_LIBS) - fi - - -elif test "$with_randr" != no; then - echo "error: must be yes or no: --with-randr-ext=$with_randr" - exit 1 -fi - - -############################################################################### -# -# Check for XF86MiscSetGrabKeysState (but only bother if we are already -# using other XF86 stuff.) -# -############################################################################### - -have_xf86miscsetgrabkeysstate=no -if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then - AC_CHECK_X_LIB(Xxf86misc, XF86MiscSetGrabKeysState, - [have_xf86miscsetgrabkeysstate=yes], - [true], -lXext -lX11) - if test "$have_xf86miscsetgrabkeysstate" = yes ; then - SAVER_LIBS="$SAVER_LIBS -lXxf86misc" - AC_DEFINE(HAVE_XF86MISCSETGRABKEYSSTATE) - fi -fi - - -############################################################################### -# -# Check for HP XHPDisableReset and XHPEnableReset. -# -############################################################################### - -AC_MSG_CHECKING([for XHPDisableReset in X11/XHPlib.h]) -AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h, - [AC_DEFINE(HAVE_XHPDISABLERESET) - SAVER_LIBS="-lXhp11 $SAVER_LIBS" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) - - -############################################################################### -# -# Check for /proc/interrupts. -# -############################################################################### - -have_proc_interrupts=no -with_proc_interrupts_req=unspecified -AC_ARG_WITH(proc-interrupts, -[ --with-proc-interrupts Include support for consulting the /proc/interrupts - file to notice keyboard activity.], - [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"], - [with_proc_interrupts=yes]) - -if test "$with_proc_interrupts" = yes; then - - # Note that we may be building in an environment (e.g. Debian buildd chroot) - # without a proper /proc filesystem. If /proc/interrupts exists, then we'll - # check that it has the bits we need, but otherwise we'll just go on faith. - # - have_proc_interrupts=yes - - if test -f /proc/interrupts; then - AC_CACHE_CHECK([whether /proc/interrupts contains keyboard data], - ac_cv_have_proc_interrupts, - [ac_cv_have_proc_interrupts=no - if grep 'keyboard\|i8042' /proc/interrupts >/dev/null 2>&1 ; then - ac_cv_have_proc_interrupts=yes - fi - ]) - have_proc_interrupts=$ac_cv_have_proc_interrupts - fi - - if test "$have_proc_interrupts" = yes; then - AC_DEFINE(HAVE_PROC_INTERRUPTS) - fi - -elif test "$with_proc_interrupts" != no; then - echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts" - exit 1 -fi - - -############################################################################### -# -# Check for /proc/*/oom_score_adj. -# -############################################################################### - -have_proc_oom=no -with_proc_oom_req=unspecified -AC_ARG_WITH(proc-oom, -[ --with-proc-oom Include support for disabling the OOM-killer.], - [with_proc_oom="$withval"; with_proc_oom_req="$withval"], - [with_proc_oom=yes]) - -if test "$with_proc_oom_req" = yes; then - - # Note that we may be building in an environment (e.g. Debian buildd chroot) - # without a proper /proc filesystem. - # - have_proc_oom=yes - AC_DEFINE(HAVE_PROC_OOM) - -elif test "$with_proc_oom_req" = unspecified; then - - have_proc_oom=no - AC_CACHE_CHECK([whether /proc/$$/oom_score_adj exists], - ac_cv_have_proc_oom, - [ac_cv_have_proc_oom=no - if test -f /proc/$$/oom_score_adj; then - ac_cv_have_proc_oom=yes - fi - ]) - have_proc_oom=$ac_cv_have_proc_oom - - if test "$have_proc_oom" = yes; then - AC_DEFINE(HAVE_PROC_OOM) - fi - -elif test "$with_proc_oom" != no; then - echo "error: must be yes or no: --with-proc-oom=$with_proc_oom" - exit 1 -fi - - -############################################################################### -# -# The --enable-locking option -# -############################################################################### - -AC_ARG_ENABLE(locking,[Screen locking options: - --enable-locking Compile in support for locking the display. - --disable-locking Do not allow locking at all.], - [enable_locking="$enableval"], - [if test "$ac_macosx" = yes; then - # We can't lock on MacOS X, so default to not compiling in support for it. - # But allow --enable-locking to override that, so I can debug Linux locking - # under MacOS X11. - enable_locking=no - else - enable_locking=yes - fi]) -if test "$enable_locking" = yes; then - true -elif test "$enable_locking" = no; then - AC_DEFINE(NO_LOCKING) -else - echo "error: must be yes or no: --enable-locking=$enable_locking" - exit 1 -fi - - -############################################################################### -# -# Whether to allow root password to unblank. -# -############################################################################### -AC_ARG_ENABLE(root-passwd, [ - --enable-root-passwd Allow root passwd to unlock screen. - --disable-root-passwd Do not allow that.], - [enable_root_passwd="$enableval"],[enable_root_passwd=yes]) -if test "$enable_root_passwd" = yes; then - AC_DEFINE(ALLOW_ROOT_PASSWD) - true -elif test "$enable_root_passwd" != no; then - echo "error: must be yes or no: --enable-root-passwd=$enable_root_passwd" - exit 1 -fi - -############################################################################### -# -# Check for PAM. -# -############################################################################### - -case "$host" in - *-solaris*) - # Solaris systems tend to come with PAM misconfigured. - # Don't build it by default, even if the headers exist. - with_pam_default=no - ;; - *) - # Default to building PAM support on all other systems, if it exists. - with_pam_default=yes - ;; -esac - -have_pam=no -with_pam_req=unspecified - -AC_ARG_WITH(pam, -[ --with-pam Include support for PAM (Pluggable Auth Modules.)], - [with_pam="$withval"; with_pam_req="$withval"],[with_pam=$with_pam_default]) - -AC_ARG_WITH([pam_service_name], - AC_HELP_STRING([--with-pam-service-name], - [NAME arg is the name of the PAM service that - xscreensaver will authenticate as.]), - [pam_service_name="$withval"],[pam_service_name="xscreensaver"]) - -AC_ARG_ENABLE(pam-check-account-type, - [AC_HELP_STRING([--enable-pam-check-account-type], - [Whether PAM should check the result of account - modules when authenticating. Only do this if you - have account configured properly on your system.])], - [enable_pam_check_account_type="$enableval"],[enable_pam_check_account_type=no]) -if test "$enable_pam_check_account_type" = yes ; then - AC_DEFINE(PAM_CHECK_ACCOUNT_TYPE) - true -elif test "$enable_pam_check_account_type" != no ; then - echo "error: must be yes or no: --enable-pam-check-account-type=$enable_pam_check_account_type" - exit 1 -fi - -HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM) - -if test "$enable_locking" = yes -a "$with_pam" = yes; then - AC_CACHE_CHECK([for PAM], ac_cv_pam, - [AC_TRY_X_COMPILE([#include ],, - [ac_cv_pam=yes], - [ac_cv_pam=no])]) - if test "$ac_cv_pam" = yes ; then - have_pam=yes - AC_DEFINE(HAVE_PAM) - AC_DEFINE_UNQUOTED(PAM_SERVICE_NAME,"$pam_service_name") - - PASSWD_LIBS="${PASSWD_LIBS} -lpam" - - # libpam typically requires dlopen and dlsym. On FreeBSD, - # those are in libc. On Linux and Solaris, they're in libdl. - AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"]) - - # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt. - have_timedwait=no - AC_CHECK_LIB(c, sigtimedwait, - [have_timedwait=yes - AC_DEFINE(HAVE_SIGTIMEDWAIT)]) - if test "$have_timedwait" = no ; then - AC_CHECK_LIB(rt, sigtimedwait, [have_timedwait=yes - AC_DEFINE(HAVE_SIGTIMEDWAIT) - PASSWD_LIBS="${PASSWD_LIBS} -lrt"]) - fi - - AC_MSG_CHECKING(how to call pam_strerror) - AC_CACHE_VAL(ac_cv_pam_strerror_args, - [AC_TRY_X_COMPILE([#include - #include - #include ], - [pam_handle_t *pamh = 0; - char *s = pam_strerror(pamh, PAM_SUCCESS);], - [ac_pam_strerror_args=2], - [AC_TRY_X_COMPILE([#include - #include - #include ], - [char *s = - pam_strerror(PAM_SUCCESS);], - [ac_pam_strerror_args=1], - [ac_pam_strerror_args=0])]) - ac_cv_pam_strerror_args=$ac_pam_strerror_args]) - ac_pam_strerror_args=$ac_cv_pam_strerror_args - if test "$ac_pam_strerror_args" = 1 ; then - AC_MSG_RESULT(one argument) - elif test "$ac_pam_strerror_args" = 2 ; then - AC_DEFINE(PAM_STRERROR_TWO_ARGS) - AC_MSG_RESULT(two arguments) - else - AC_MSG_RESULT(unknown) - fi - -# Check pam_fail_delay - AC_MSG_CHECKING(pam_fail_delay in -lpam) - AC_CACHE_VAL(ac_cv_pam_fail_delay, - [ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="-lpam" - AC_TRY_LINK([#include ], - [pam_handle_t *pamh = 0; - unsigned int usec = 1; - int status = pam_fail_delay (pamh, usec);], - [ac_pam_fail_delay=yes], - [ac_pam_fail_delay=no]) - ac_cv_pam_fail_delay=$ac_pam_fail_delay, - LDFLAGS=$ac_save_LDFLAGS]) - - if test "$ac_pam_fail_delay" = yes ; then - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_PAM_FAIL_DELAY) - else - AC_MSG_RESULT(no) - fi - - fi -fi - - -############################################################################### -# -# Check for Kerberos. -# -############################################################################### - -have_kerberos=no -have_kerberos5=no -with_kerberos_req=unspecified - -AC_ARG_WITH(kerberos, -[ --with-kerberos Include support for Kerberos authentication.], - [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes]) - -HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos) - -if test "$enable_locking" = yes -a "$with_kerberos" = yes; then - AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos, - [AC_TRY_X_COMPILE([#include ],, - [ac_cv_kerberos=yes], - [ac_cv_kerberos=no])]) - AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5, - [AC_TRY_X_COMPILE([#include ],, - [ac_cv_kerberos5=yes], - [ac_cv_kerberos5=no])]) - - if test "$ac_cv_kerberos" = yes ; then - have_kerberos=yes - AC_DEFINE(HAVE_KERBEROS) - fi - - if test "$ac_cv_kerberos5" = yes ; then - - # Andrew Snare wrote: - # - # You were assuming that if kerberosV (krb5) was found, then kerberosIV - # (krb4) was also available. This turns out not to be the case with - # mit-krb-1.2.7; apparently backwards-compatibility with KerberosIV - # is optional. - # - # So, disable kerberosV support if libkrb4 can't be found. - # This is not the best solution, but it makes the compile not fail. - # - AC_CHECK_X_LIB(krb4, krb_get_tf_realm, - [have_kerberos=yes], - [have_kerberos=no]) - if test "$have_kerberos" = yes ; then - have_kerberos5=yes - AC_DEFINE(HAVE_KERBEROS) - AC_DEFINE(HAVE_KERBEROS5) - else - have_kerberos5=no - AC_MSG_WARN([Cannot find compat lib (libkrb4) needed to use Kerberos 5]) - fi - - fi - - if test "$have_kerberos5" = yes ; then - # from Matt Knopp - # (who got it from amu@mit.edu) - - PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err" - - # jwz: MacOS X uses -lkrb5, but not -lcrypt - AC_CHECK_X_LIB(crypt, crypt, [PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) - - elif test "$have_kerberos" = yes ; then - # from Tim Showalter for FreeBSD 4.2 - PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err" - fi - - if test "$have_kerberos" = yes ; then - AC_CHECK_FUNC(res_search,, - AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv", - AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos]) - )) - fi -fi - - -############################################################################### -# -# Check for the nine billion variants of shadow passwords... -# -############################################################################### - -need_setuid=no - -have_shadow=no -with_shadow_req=unspecified - -AC_ARG_WITH(shadow, -[ --with-shadow Include support for shadow password authentication.], - [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes]) - -HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password) - -if test "$enable_locking" = no ; then - with_shadow_req=no - with_shadow=no -fi - - -############################################################################### -# -# Check for Sun "adjunct" passwords. -# -############################################################################### - -if test "$with_shadow" = yes ; then - AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct, - [AC_TRY_X_COMPILE([#include - #include - #include - #include - #include - #include ], - [struct passwd_adjunct *p = getpwanam("nobody"); - const char *pw = p->pwa_passwd;], - [ac_cv_sun_adjunct=yes], - [ac_cv_sun_adjunct=no])]) - if test "$ac_cv_sun_adjunct" = yes; then - have_shadow_adjunct=yes - have_shadow=yes - need_setuid=yes - fi -fi - - -############################################################################### -# -# Check for DEC and SCO so-called "enhanced" security. -# -############################################################################### - -if test "$with_shadow" = yes ; then - AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd, - [AC_TRY_X_COMPILE([#include - #include - #include - #include - #include - #include ], - [struct pr_passwd *p; - const char *pw; - set_auth_parameters(0, 0); - check_auth_parameters(); - p = getprpwnam("nobody"); - pw = p->ufld.fd_encrypt;], - [ac_cv_enhanced_passwd=yes], - [ac_cv_enhanced_passwd=no])]) - if test $ac_cv_enhanced_passwd = yes; then - have_shadow_enhanced=yes - have_shadow=yes - need_setuid=yes - - # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx) - # (I'm told it needs -lcurses too, but I don't understand why.) - # But on DEC, it's in -lsecurity. - # - AC_CHECK_LIB(prot, getprpwnam, - [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"], - [AC_CHECK_LIB(security, getprpwnam, - [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])], - [-lx]) - fi -fi - -############################################################################### -# -# Check for HP's entry in the "Not Invented Here" Sweepstakes. -# -############################################################################### - -if test "$with_shadow" = yes ; then - AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd, - [AC_TRY_X_COMPILE([#include - #include - #include - #include - #include - #include ], - [struct s_passwd *p = getspwnam("nobody"); - const char *pw = p->pw_passwd;], - [ac_cv_hpux_passwd=yes], - [ac_cv_hpux_passwd=no])]) - if test "$ac_cv_hpux_passwd" = yes; then - have_shadow_hpux=yes - have_shadow=yes - need_setuid=yes - - # on HPUX, bigcrypt is in -lsec - AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"]) - fi -fi - - -############################################################################### -# -# Check for FreeBSD-style shadow passwords. -# -# On FreeBSD, getpwnam() and friends work just like on non-shadow- -# password systems -- except you only get stuff in the pw_passwd field -# if the running program is setuid. So, guess that we've got this -# lossage to contend with if /etc/master.passwd exists, and default to -# a setuid installation. -# -############################################################################### - -if test "$with_shadow" = yes ; then - AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd, - [if test -f /etc/master.passwd ; then - ac_cv_master_passwd=yes - else - ac_cv_master_passwd=no - fi]) - if test "$ac_cv_master_passwd" = yes; then - need_setuid=yes - fi -fi - - -############################################################################### -# -# Check for traditional (ha!) shadow passwords. -# -############################################################################### - -if test "$with_shadow" = yes ; then - AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow, - [AC_TRY_X_COMPILE([#include - #include - #include - #include - #include ], - [struct spwd *p = getspnam("nobody"); - const char *pw = p->sp_pwdp;], - [ac_cv_shadow=yes], - [ac_cv_shadow=no])]) - if test "$ac_cv_shadow" = yes; then - have_shadow=yes - need_setuid=yes - - # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc. - have_getspnam=no - AC_CHECK_LIB(c, getspnam, [have_getspnam=yes]) - if test "$have_getspnam" = no ; then - AC_CHECK_LIB(gen, getspnam, - [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"]) - fi - fi -fi - - -############################################################################### -# -# Check for other libraries needed for non-shadow passwords. -# -############################################################################### - -if test "$enable_locking" = yes ; then - - # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc. - have_crypt=no - AC_CHECK_LIB(c, crypt, [have_crypt=yes]) - if test "$have_crypt" = no ; then - AC_CHECK_LIB(crypt, crypt, - [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) - fi -fi - - -# Most of the above shadow mechanisms will have set need_setuid to yes, -# if they were found. But, on some systems, we need setuid even when -# using plain old vanilla passwords. -# -if test "$enable_locking" = yes ; then - case "$host" in - *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* ) - need_setuid=yes - ;; - esac -fi - - -if test "$have_shadow_adjunct" = yes ; then - AC_DEFINE(HAVE_ADJUNCT_PASSWD) -elif test "$have_shadow_enhanced" = yes ; then - AC_DEFINE(HAVE_ENHANCED_PASSWD) -elif test "$have_shadow_hpux" = yes ; then - AC_DEFINE(HAVE_HPUX_PASSWD) -elif test "$have_shadow" = yes ; then - AC_DEFINE(HAVE_SHADOW_PASSWD) -fi - - -############################################################################### -# -# Check for external password helper -# On SuSE, instead of having xscreensaver be a setuid program, they -# fork an external program that takes the password on stdin, and -# returns true if that password is a valid one. Then only that -# smaller program needs to be setuid. -# -# (Note that this external program is not a GUI: the GUI is still -# all in xscreensaver itself; the external program just does auth.) -# -############################################################################### - -have_passwd_helper=no -with_passwd_helper_req=unspecified - -AC_ARG_WITH(passwd-helper, -[ --with-passwd-helper Include support for an external password - verification helper program.], - [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no]) -# no HANDLE_X_PATH_ARG for this one - -if test "$enable_locking" = no ; then - with_passwd_helper_req=no - with_passwd_helper=no -fi - -case "$with_passwd_helper" in - ""|no) : ;; - /*) - AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper") - have_passwd_helper=yes;; - *) - echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2 - exit 1 -esac - - -############################################################################### -# -# Check for a login manager for a "New Login" button on the lock dialog. -# Usually this will be "/usr/bin/gdmflexiserver". -# -############################################################################### - -with_login_manager_req=unspecified -default_login_manager_1='gdmflexiserver -ls' -default_login_manager_2='kdmctl reserve' -default_login_manager_3='lxdm -c USER_SWITCH' -default_login_manager_4='dm-tool switch-to-greeter' - -AC_ARG_WITH(login-manager, -[ --with-login-manager Put a "New Login" button on the unlock dialog that - runs a login manager like gdmflexiserver or kdmctl.], - [with_login_manager="$withval"; with_login_manager_req="$withval"], - [with_login_manager=yes]) -# no HANDLE_X_PATH_ARG for this one - -if test "$enable_locking" = no ; then - with_login_manager_req=no - with_login_manager=no -fi - -case "$with_login_manager_req" in - no) - with_login_manager="" - ;; - - yes|unspecified) - # Try various defaults, use the first one that exists. - - with_login_manager="" - - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_1 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_1" - fi - fi - - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_2 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_2" - fi - fi - - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_3 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_3" - fi - fi - - if test -z "$with_login_manager" ; then - set dummy $default_login_manager_4 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_4" - fi - fi - - ;; - - /*) - # absolute path specified on cmd line - set dummy $with_login_manager_req ; login_manager_tmp=$2 - AC_MSG_CHECKING([for $login_manager_tmp]) - if test -x "$login_manager_tmp" ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - with_login_manager="" - fi - ;; - - *) - # relative path specified on cmd line - set dummy $with_login_manager_req ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test -z "$login_manager_tmp" ; then - with_login_manager="" - else - with_login_manager="$login_manager_tmp" - fi - ;; -esac -ac_cv_login_manager_program="$with_login_manager" - -NEW_LOGIN_COMMAND_P='' -NEW_LOGIN_COMMAND="$ac_cv_login_manager_program" - -AC_MSG_CHECKING(for login manager) -if test -z "$NEW_LOGIN_COMMAND" ; then - NEW_LOGIN_COMMAND="$default_login_manager_1" - NEW_LOGIN_COMMAND_P='! ' - AC_MSG_RESULT($NEW_LOGIN_COMMAND (disabled)) -else - AC_MSG_RESULT($NEW_LOGIN_COMMAND) -fi - - -############################################################################### -# -# Check for -lgtk (and Gnome stuff) -# -############################################################################### - -have_gtk=no -with_gtk_req=unspecified -AC_ARG_WITH(gtk,[ -User interface options: - - --with-gtk Use the Gtk toolkit for the user interface.], - [with_gtk="$withval"; with_gtk_req="$withval"],[with_gtk=yes]) - -# if --with-gtk=/directory/ was specified, remember that directory so that -# we can also look for the `gtk-config' program in that directory. -case "$with_gtk" in - /*) - gtk_dir="$with_gtk" - ;; - *) - gtk_dir="" - ;; -esac - -HANDLE_X_PATH_ARG(with_gtk, --with-gtk, Gtk) - -if test "$with_gtk" != yes -a "$with_gtk" != no ; then - echo "error: must be yes or no: --with-gtk=$with_gtk" - exit 1 -fi - - -parse_gtk_version_string() { - # M4 sucks!! - changequote(X,Y) - maj=`echo $ac_gtk_version_string | sed -n 's/\..*//p'` - min=`echo $ac_gtk_version_string | sed -n 's/[^.]*\.\([^.]*\).*/\1/p'` - changequote([,]) - ac_gtk_version=`echo "$maj * 1000 + $min" | bc` - if test -z "$ac_gtk_version"; then - ac_gtk_version=unknown - ac_gtk_version_string=unknown - fi -} - -# Find pkg-config... (need this for both gtk and gdk_pixbuf.) -# if the user specified --with-gtk=/foo/ then look there. -# -gtk_path="$PATH" -if test ! -z "$gtk_dir"; then - # canonicalize slashes. - foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` - gtk_path="$foo:$gtk_path" -fi - -AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path) - -if test -z "$pkg_config" ; then - AC_MSG_WARN([pkg-config not found!]) - pkg_config="false" -fi - - -# Utility function for running pkg-config-based tests... -# -pkgs='' -pkg_check_version() { - if test "$ok" = yes ; then - req="$1" - min="$2" - AC_MSG_CHECKING(for $req) - if $pkg_config --exists "$req" ; then - vers=`$pkg_config --modversion "$req"` - if $pkg_config --exists "$req >= $min" ; then - AC_MSG_RESULT($vers) - pkgs="$pkgs $req" - return 1 - else - AC_MSG_RESULT($vers (wanted >= $min)) - ok=no - return 0 - fi - else - AC_MSG_RESULT(no) - ok=no - return 0 - fi - fi -} - - -jurassic_gtk=no -gtk_halfassed=no -have_gtk_2_22_or_higher=no -COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="" -COMMENT_DEMO_GLADE2_GTK_2_22_TAIL="" - -if test "$with_gtk" = yes; then - have_gtk=no - - ok="yes" - pkg_check_version gtk+-2.0 2.0.1 ; ac_gtk_version_string="$vers" - pkg_check_version gmodule-2.0 2.0.0 - pkg_check_version libxml-2.0 2.4.6 - pkg_check_version libglade-2.0 1.99.0 - pkg_check_version gdk-pixbuf-2.0 2.0.0 - pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 - have_gtk="$ok" - - if test "$have_gtk" = no; then - if test -n "$ac_gtk_version_string" ; then - gtk_halfassed="$ac_gtk_version_string" - gtk_halfassed_lib="$req" - fi - fi - - if test "$have_gtk" = yes; then - parse_gtk_version_string - jurassic_gtk=no - fi - - if test "$have_gtk" = yes; then - AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags, - [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`]) - AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs, - [ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`]) - fi - - ac_gtk_config_cflags=$ac_cv_gtk_config_cflags - ac_gtk_config_libs=$ac_cv_gtk_config_libs - - GTK_EXTRA_OBJS="" - GTK_DATADIR="" - if test "$have_gtk" = yes; then - GTK_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` - GTK_DATADIR="$GTK_DATADIR/share" - fi - - if test "$have_gtk" = yes; then - INCLUDES="$INCLUDES $ac_gtk_config_cflags" - GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs" - AC_DEFINE(HAVE_GTK) - AC_DEFINE(HAVE_GTK2) - AC_DEFINE(HAVE_XML) - fi - - if test "$have_gtk" = yes; then - ok="yes" - pkg_check_version gtk+-2.0 2.22 - have_gtk_2_22_or_higher="$ok" - if test "$have_gtk_2_22_or_higher" = yes; then - COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="" - fi - fi -fi - - -# Check for the various Gnome help and URL loading programs. -# -WITH_BROWSER=gnome-open -if test "$have_gtk" = yes; then - AC_CHECK_PROGS(gnome_open_program, gnome-open) - AC_CHECK_PROGS(gnome_url_show_program, gnome-url-show) -fi - - -############################################################################### -# -# Check for -lXm. -# -############################################################################### - -have_motif=no -with_motif_req=unspecified -AC_ARG_WITH(motif,[ --with-motif Use the Motif toolkit for the user interface - (no longer supported.)], - [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no]) - -HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif) - -if test "$with_motif" != yes -a "$with_motif" != no ; then - echo "error: must be yes or no: --with-motif=$with_motif" - exit 1 -fi - -if test "$with_motif" = yes; then - have_motif=no - AC_CHECK_X_HEADER(Xm/Xm.h, - [have_motif=yes - AC_DEFINE(HAVE_MOTIF) - MOTIF_LIBS="$MOTIF_LIBS -lXm"],, - [#include - #include - #include ]) -fi - - -if test "$have_motif" = yes; then - AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],, - [#include - #include - #include ]) -fi - - -############################################################################### -# -# Checking whether Motif is really Lesstif. -# -############################################################################### - -have_lesstif=no -if test "$have_motif" = yes ; then - AC_CACHE_CHECK([whether Motif is really LessTif], - ac_cv_have_lesstif, - [AC_TRY_X_COMPILE([#include ], - [long vers = LesstifVersion;], - [ac_cv_have_lesstif=yes], - [ac_cv_have_lesstif=no])]) - have_lesstif=$ac_cv_have_lesstif -fi - - -lesstif_version=unknown -lesstif_version_string=unknown - -if test "$have_lesstif" = yes ; then - ltv=unknown - echo unknown > conftest-lt - AC_CACHE_CHECK([LessTif version number], - ac_cv_lesstif_version_string, - [AC_TRY_X_RUN([#include - #include - int main() { - FILE *f = fopen("conftest-lt", "w"); - if (!f) exit(1); - fprintf(f, "%d %d.%d\n", LesstifVersion, - LESSTIF_VERSION, LESSTIF_REVISION); - fclose(f); - exit(0); - }], - [ltv=`cat conftest-lt` - ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'` - ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`], - [ac_cv_lesstif_version=unknown - ac_cv_lesstif_version_string=unknown], - [ac_cv_lesstif_version=unknown - ac_cv_lesstif_version_string=unknown])]) - rm -f conftest-lt - lesstif_version=$ac_cv_lesstif_version - lesstif_version_string=$ac_cv_lesstif_version_string - -fi - - -if test "$have_motif" = yes ; then - mtv=unknown - echo unknown > conftest-mt - AC_CACHE_CHECK([Motif version number], - ac_cv_motif_version_string, - [AC_TRY_X_RUN([#include - #include - int main() { - FILE *f = fopen("conftest-mt", "w"); - if (!f) exit(1); - fprintf(f, "%d %d.%d\n", XmVersion, - XmVERSION, XmREVISION); - fclose(f); - exit(0); - }], - [mtv=`cat conftest-mt` - ac_cv_motif_version=`echo $mtv | sed 's/ .*//'` - ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`], - [ac_cv_motif_version=unknown - ac_cv_motif_version_string=unknown], - [ac_cv_motif_version=unknown - ac_cv_motif_version_string=unknown])]) - rm -f conftest-mt - motif_version=$ac_cv_motif_version - motif_version_string=$ac_cv_motif_version_string - -fi - - -############################################################################### -# -# Checking whether Motif requires -lXp. -# -# Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing -# Extension". Why this extension isn't in -lXext with all the others, -# I have no idea. -# -############################################################################### - -have_xp_ext=no -if test "$have_motif" = yes ; then - have_xp_ext=no - AC_CHECK_X_LIB(Xp, XpQueryExtension, - [have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"], - [true], -lX11 -lXext -lm) -fi - - -############################################################################### -# -# Checking whether Motif requires -lXintl (for _Xsetlocale.) -# -############################################################################### - -have_xintl=no -if test "$have_motif" = yes ; then - AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no], - -lX11 -lXext -lm) - if test "$have_xintl" = yes; then - MOTIF_LIBS="$MOTIF_LIBS -lXintl" - fi -fi - - -############################################################################### -# -# Check for -lGL or -lMesaGL. -# -############################################################################### - -have_gl=no -ac_have_mesa_gl=no -with_gl_req=unspecified -gl_halfassed=no -AC_ARG_WITH(gl,[ -Graphics options: - - --with-gl Build those demos which depend on OpenGL.], - [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes]) - -HANDLE_X_PATH_ARG(with_gl, --with-gl, GL) - -ac_mesagl_version=unknown -ac_mesagl_version_string=unknown - -if test "$with_gl" = yes; then - AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no) - if test "$have_gl" = yes ; then - AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no, - [#include ]) - fi - - # If we have the headers, try and figure out which vendor it's from. - # - if test "$have_gl" = yes ; then - - # We need to know whether it's MesaGL so that we know which libraries - # to link against. - # - AC_CACHE_CHECK([whether GL is really MesaGL], ac_cv_have_mesa_gl, - [ac_cv_have_mesa_gl=no - if test "$ac_macosx" = no; then - # WTF! MacOS 10.5.0 ships the Mesa GL headers! - # It's not really Mesa, is it? - AC_EGREP_X_HEADER(Mesa|MESA, GL/glx.h, [ac_cv_have_mesa_gl=yes]) - fi]) - ac_have_mesa_gl=$ac_cv_have_mesa_gl - - gl_lib_1="" - GL_LIBS="" - - if test "$ac_macosx" = yes; then - - # Without these, every link against libGL gets a bunch of useless - # warnings. - # - osx_crud="-bind_at_load -multiply_defined suppress" - AC_MSG_RESULT(adding "$osx_crud" to GL_LIBS) - GL_LIBS="$GL_LIBS $osx_crud" - unset osx_crud - - # New lossage in 10.5.0: without this, we get: - # ld: cycle in dylib re-exports with /usr/X11/lib/libGL.dylib - # - osx_crud="/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" - osx_crud="-Wl,-dylib_file,${osx_crud}:${osx_crud}" - - AC_MSG_RESULT(adding "$osx_crud" to GL_LIBS) - GL_LIBS="$GL_LIBS $osx_crud" - unset osx_crud - - # New lossage in 10.6.8: we can't allow -L/opt/local/lib to be in the - # link line, or at runtime XQueryExtension gets a segv due to some kind - # of library version skew. Libs must come from /usr/X11/lib even if - # $prefix and/or $exec_prefix are set to /opt/local/. - # - AC_MSG_RESULT(omitting "$libdir" from LDFLAGS) - libdir='' - - # Looks like as of OSX 10.12, gcc can't do ObjC. - OBJCC="clang -Wall" - - fi - - - # Some versions of MesaGL are compiled to require -lpthread. - # So if the Mesa headers exist, and -lpthread exists, then always - # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.) - # - # Oftentimes, AX_PTHREAD will bring in -lpthread as well; but that ends - # up before -l(Mesa)GL, instead of after where it would belong. - # - if test "$ac_have_mesa_gl" = yes; then - AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],) - fi - - - # If we have Mesa headers, check to see if we can link against -lMesaGL. - # If we don't have Mesa headers, or we don't have -lMesaGL, try -lGL. - # Else, warn that GL is busted. (We have the headers, but no libs.) - # - - if test "$ac_have_mesa_gl" = yes ; then - AC_CHECK_X_LIB(MesaGL, glXCreateContext, - [gl_lib_1="MesaGL" - GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"], - [], -lMesaGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm) - fi - - if test "$gl_lib_1" = "" ; then - AC_CHECK_X_LIB(GL, glXCreateContext, - [gl_lib_1="GL" - GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"], - [], -lGLU $GL_LIBS -lX11 -lXext $VIDMODE_LIBS -lm) - fi - - if test "$gl_lib_1" = "" ; then - # we have headers, but no libs -- bail. - have_gl=no - ac_have_mesa_gl=no - gl_halfassed=yes - else - # linking works -- we can build the GL hacks. - AC_DEFINE(HAVE_GL) - if test "$ac_have_mesa_gl" = yes ; then - AC_DEFINE(HAVE_MESA_GL) - fi - fi - fi - - - # Now that we know we have GL headers and libs, do some more GL testing. - # - - if test "$have_gl" = yes ; then - # If it's MesaGL, we'd like to issue a warning if the version number - # is less than or equal to 2.6, because that version had a security bug. - # - if test "$ac_have_mesa_gl" = yes; then - - AC_CACHE_CHECK([MesaGL version number], ac_cv_mesagl_version_string, - [cat > conftest.$ac_ext < -#ifndef MESA_MAJOR_VERSION -# include -# ifdef XMESA_MAJOR_VERSION - /* Around Mesa 3.2, they took out the Mesa version number, so instead, - we have to check the XMesa version number (the number of the X protocol - support, which seems to be the same as the Mesa version number.) - */ -# define MESA_MAJOR_VERSION XMESA_MAJOR_VERSION -# define MESA_MINOR_VERSION XMESA_MINOR_VERSION -# else - /* Oh great. Some time after 3.4, they took out the xmesa.h header file, - so we have no way of telling what version of Mesa this is at all. - So, we'll guess that the osmesa version (the "offscreen protocol") - is less than or equal to the real mesa version number. Except that - if OSmesa is 3.3, assume at least Mesa 3.4, since OSmesa was 3.3 in - Mesa 3.4. And Mesa 3.3 had xmesa.h. What a complete load of shit! - */ -# include -# define MESA_MAJOR_VERSION OSMESA_MAJOR_VERSION -# define MESA_MINOR_VERSION OSMESA_MINOR_VERSION or newer, probably? -# if OSMESA_MAJOR_VERSION == 3 && OSMESA_MINOR_VERSION == 3 -# undef MESA_MINOR_VERSION -# define MESA_MINOR_VERSION 4 or newer, probably? -# endif -# endif -#endif -configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION -EOF - - ac_save_CPPFLAGS="$CPPFLAGS" - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - - mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | grep configure:` - - # M4 sucks!! - changequote(X,Y) - mglv=`echo "$mglv" | sed -n \ - 's/^configure: *\([0-9][0-9]*\) *\([0-9].*\)$/\1.\2/p'` - changequote([,]) - - rm -f conftest.$ac_ext - - CPPFLAGS="$ac_save_CPPFLAGS" - - if test "$mglv" = ""; then - ac_mesagl_version=unknown - ac_mesagl_version_string=unknown - else - ac_mesagl_version_string="$mglv" - # M4 sucks!! - changequote(X,Y) - maj=`echo "$mglv" | sed -n 's/^\([0-9][0-9]*\)\..*$/\1/p'` - min=`echo "$mglv" | sed -n 's/^.*\.\([0-9][0-9]*\).*$/\1/p'` - changequote([,]) - ac_mesagl_version=`echo "$maj * 1000 + $min" | bc` - if test -z "$ac_mesagl_version"; then - ac_mesagl_version=unknown - ac_mesagl_version_string=unknown - fi - fi - ac_cv_mesagl_version=$ac_mesagl_version - ac_cv_mesagl_version_string=$ac_mesagl_version_string - ]) - ac_mesagl_version=$ac_cv_mesagl_version - ac_mesagl_version_string=$ac_cv_mesagl_version_string - fi - - - # Check for OpenGL 1.1 features. - # - AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)], - [true], $GL_LIBS -lX11 -lXext -lm) - fi - -elif test "$with_gl" != no; then - echo "error: must be yes or no: --with-gl=$with_gl" - exit 1 -fi - - -############################################################################### -# -# Check for -lgle. -# -############################################################################### - -have_gle=no -with_gle_req=unspecified -gle_halfassed=no -AC_ARG_WITH(gle, -[ --with-gle Build those demos which depend on GLE - (the OpenGL "extrusion" library.)], - [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes]) - -HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE) - -GLE_LIBS="" - -if test "$have_gl" = no ; then - true -elif test "$with_gle" = yes; then - - AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no, - [#include ]) - if test "$have_gle3" = yes ; then - have_gle=yes; - else - AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no, - [#include ]) - if test "$have_gle" = yes ; then - AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no, - [#include ]) - fi - fi - - if test "$have_gle" = yes ; then - have_gle=no - gle_halfassed=yes - AC_CHECK_X_LIB(gle, gleCreateGC, - [have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"], - [], $GL_LIBS -lX11 -lXext -lm) - fi - if test "$have_gle" = yes ; then - have_gle=no - gle_halfassed=yes - - # sometimes the libmatrix stuff is included in libgle. look there first. -# -# I don't get it. For some reason, this test passes on SGI, as if -# uview_direction_d() was in libgle -- but it's not, it's in libmatrix. -# Yet the link is succeeding. Why??? -# -# AC_CHECK_X_LIB(gle, uview_direction_d, -# [have_gle=yes; gle_halfassed=no], -# [], $GL_LIBS -lX11 -lXext -lm) - - # As of GLE 3 this is in libgle, and has changed name to uview_direction! - # *sigh* - if test "$have_gle3" = yes ; then - AC_CHECK_X_LIB(gle, uview_direction, - [have_gle=yes; gle_halfassed=no], - [], $GL_LIBS -lX11 -lXext -lm) - fi - # if it wasn't in libgle, then look in libmatrix. - if test "$have_gle" = no ; then - AC_CHECK_X_LIB(matrix, uview_direction_d, - [have_gle=yes; gle_halfassed=no; - GLE_LIBS="$GLE_LIBS -lmatrix"], - [], $GL_LIBS -lX11 -lXext -lm) - fi - fi - - if test "$have_gle" = yes ; then - AC_DEFINE(HAVE_GLE) - if test "$have_gle3" = yes ; then - AC_DEFINE(HAVE_GLE3) - fi - fi - -elif test "$with_gle" != no; then - echo "error: must be yes or no: --with-gle=$with_gle" - exit 1 - -fi - - -############################################################################### -# -# Handle --with-gles -# -############################################################################### - -with_gles_req=unspecified -AC_ARG_WITH(gles, -[ --with-gles Target OpenGL ES 1.x API instead of OpenGL 1.3.], - [with_gles="$withval"; with_gles_req="$withval"],[with_gles=no]) - -HANDLE_X_PATH_ARG(with_gles, --with-gles, JWZGLES) - -if test "$with_gles" = yes; then - have_gles=yes - AC_DEFINE(HAVE_JWZGLES) - JWZGLES_OBJS='$(JWXYZ_BIN)/jwzgles.o' - AC_MSG_RESULT(using OpenGL ES compatiblity shim) -elif test "$with_gles" != no; then - echo "error: must be yes or no: --with-gles=$with_gles" - exit 1 -fi - -############################################################################### -# -# Check for -lpng -# -############################################################################### - -have_png=no -with_png_req=unspecified -png_halfassed=no -AC_ARG_WITH(png, -[ --with-png Include support for the PNG library.], - [with_png="$withval"; with_png_req="$withval"], - [with_png=yes]) - -HANDLE_X_PATH_ARG(with_png, --with-png, PNG) - -if test "$with_png" != yes -a "$with_png" != no ; then - echo "error: must be yes or no: --with-png=$with_png" - exit 1 -fi - -if test "$with_png" = yes; then - - have_png=no - AC_CHECK_X_HEADER(png.h, [have_png=yes]) - - if test "$have_png" = yes; then - # we have the header, now check for the library - have_png=no - png_halfassed=yes - AC_CHECK_X_LIB(png, png_create_read_struct, - [have_png=yes - png_halfassed=no - PNG_LIBS="-lpng" - AC_DEFINE(HAVE_LIBPNG)]) - fi -fi - - -############################################################################### -# -# Check for -lgdk_pixbuf. -# These tests are for gdk_pixbuf usage of the hacks, -# not xscreensaver-demo (thus we have to test again to get -# the libraries right: don't want to pull in all of GTK -# for the hacks.) -# -############################################################################### - -have_gdk_pixbuf=no -with_gdk_pixbuf_req=unspecified -AC_ARG_WITH(pixbuf, -[ --with-pixbuf Include support for the GDK-Pixbuf library in some - demos, which will make it possible for them to read - GIF, JPEG, and PNG files as well.], - [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"], - [with_gdk_pixbuf=yes]) - -# if --with-pixbuf=/directory/ was specified, remember that directory so that -# we can also look for the `gdk-pixbuf-config' program in that directory. -case "$with_gdk_pixbuf" in - /*) - gdk_pixbuf_dir="$with_gdk_pixbuf" - ;; - *) - gdk_pixbuf_dir="" - ;; -esac - -HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF) - -if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then - echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf" - exit 1 -fi - -if test "$with_gdk_pixbuf" = yes; then - have_gdk_pixbuf=no - - pkgs='' - ok="yes" - - pkg_check_version gdk-pixbuf-2.0 2.0.0 - pkg_check_version gdk-pixbuf-xlib-2.0 2.0.0 - pkg_check_version gio-2.0 2.0.0 - have_gdk_pixbuf="$ok" - - if test "$have_gdk_pixbuf" = yes; then - AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags, - [ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`]) - AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs, - [ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`]) - fi - - ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags - ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs - - - if test "$have_gdk_pixbuf" = yes; then - # - # we appear to have pixbuf; check for headers/libs to be sure. - # - ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags" - - have_gdk_pixbuf=no - - # check for header A... - AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes]) - - # if that worked, check for header B... - if test "$have_gdk_pixbuf" = yes; then - have_gdk_pixbuf=no - gdk_pixbuf_halfassed=yes - AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, - [have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no]) - - # yay, it has a new name in Gtk 2.x... - if test "$have_gdk_pixbuf" = no; then - have_gdk_pixbuf=no - gdk_pixbuf_halfassed=yes - AC_CHECK_X_HEADER(gdk-pixbuf-xlib/gdk-pixbuf-xlib.h, - [have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no]) - fi - fi - CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS" - fi - - if test "$have_gdk_pixbuf" = yes; then - # we have the headers, now check for the libraries - have_gdk_pixbuf=no - gdk_pixbuf_halfassed=yes - - AC_MSG_RESULT(checking for gdk_pixbuf usability...) - - # library A... - AC_CHECK_X_LIB(c, gdk_pixbuf_new_from_file, [have_gdk_pixbuf=yes],, - $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) - # library B... - if test "$have_gdk_pixbuf" = yes; then - have_gdk_pixbuf=no - AC_CHECK_X_LIB(c, gdk_pixbuf_xlib_init, - [have_gdk_pixbuf=yes - gdk_pixbuf_halfassed=no],, - $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) - fi - fi - - if test "$have_gdk_pixbuf" = yes; then - INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags" - PNG_LIBS="$ac_gdk_pixbuf_config_libs" - AC_DEFINE(HAVE_GDK_PIXBUF) - else - AC_MSG_RESULT(checking for gdk_pixbuf usability... no) - fi - - if test "$have_gdk_pixbuf" = yes; then - AC_CHECK_X_LIB(c, gdk_pixbuf_apply_embedded_orientation, - [AC_DEFINE(HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION)],, - $ac_gdk_pixbuf_config_libs -lX11 -lXext -lm) - fi -fi - - -############################################################################### -# -# Check for -ljpeg -# -############################################################################### - -have_jpeg=no -with_jpeg_req=unspecified -jpeg_halfassed=no -AC_ARG_WITH(jpeg, -[ --with-jpeg Include support for the JPEG library.], - [with_jpeg="$withval"; with_jpeg_req="$withval"], - [with_jpeg=yes]) - -HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG) - -if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then - echo "error: must be yes or no: --with-jpeg=$with_jpeg" - exit 1 -fi - -if test "$with_jpeg" = yes; then - - have_jpeg=no - AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes]) - - if test "$have_jpeg" = yes; then - # we have the header, now check for the library - have_jpeg=no - jpeg_halfassed=yes - AC_CHECK_X_LIB(jpeg, jpeg_start_compress, - [have_jpeg=yes - jpeg_halfassed=no - JPEG_LIBS="-ljpeg" - AC_DEFINE(HAVE_JPEGLIB)]) - fi -fi - - -############################################################################### -# -# Check for -lXft -# -############################################################################### - -have_xutf8drawstring=no -AC_CHECK_X_LIB(X11, Xutf8DrawString, - [have_xutf8drawstring=yes], - [true], -lX11 -lXext -lm) -if test "$have_xutf8drawstring" = yes ; then - AC_DEFINE(HAVE_XUTF8DRAWSTRING) -fi - - -have_xft=no -with_xft_req=unspecified -xft_halfassed=no -AC_ARG_WITH(xft, -[ --with-xft Include support for the X Freetype library.], - [with_xft="$withval"; with_xft_req="$withval"], - [with_xft=yes]) - -HANDLE_X_PATH_ARG(with_xft, --with-xft, Xft) - -if test "$with_xft" != yes -a "$with_xft" != no ; then - echo "error: must be yes or no: --with-xft=$with_xft" - exit 1 -fi - -if test "$with_xft" = yes; then - - pkgs='' - ok="yes" - pkg_check_version xft 2.1.0 - have_xft="$ok" - - if test "$have_xft" = yes; then - AC_CACHE_CHECK([for Xft includes], ac_cv_xft_config_cflags, - [ac_cv_xft_config_cflags=`$pkg_config --cflags $pkgs`]) - AC_CACHE_CHECK([for Xft libs], ac_cv_xft_config_libs, - [ac_cv_xft_config_libs=`$pkg_config --libs $pkgs`]) - fi - - ac_xft_config_cflags=$ac_cv_xft_config_cflags - ac_xft_config_libs=$ac_cv_xft_config_libs - - if test "$have_xft" = yes; then - # - # we appear to have Xft; check for headers/libs to be sure. - # - ac_save_xft_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $ac_xft_config_cflags" - - have_xft=no - AC_CHECK_X_HEADER(X11/Xft/Xft.h, [have_xft=yes]) - - CPPFLAGS="$ac_save_xft_CPPFLAGS" - fi - - if test "$have_xft" = yes; then - # we have the headers, now check for the libraries - have_xft=no - xft_halfassed=yes - - AC_MSG_RESULT(checking for Xft usability...) - AC_CHECK_X_LIB(c, XftDrawStringUtf8, [have_xft=yes],, - $ac_xft_config_libs -lX11 -lXext -lm) - fi - - if test "$have_xft" = no; then - AC_MSG_RESULT(checking for Xft usability... no) - fi -fi - -if test "$have_xft" = yes; then - INCLUDES="$INCLUDES $ac_xft_config_cflags" - XFT_LIBS="$ac_xft_config_libs" - XFT_SRCS='' - XFT_OBJS='' - AC_DEFINE(HAVE_XFT) -else - XFT_LIBS='' - XFT_SRCS='$(UTILS_SRC)/xft.c' - XFT_OBJS='$(UTILS_BIN)/xft.o' -fi - - -############################################################################### -# -# Check for pty support: this allows 'phosphor' and 'apple2' -# to run curses-based programs, or be used as terminal windows. -# -############################################################################### - -PTY_LIBS= -AC_CHECK_HEADERS(pty.h util.h sys/termios.h) -AC_CHECK_X_LIB(util, forkpty, - [PTY_LIBS="-lutil" - ac_have_forkpty=yes - AC_DEFINE(HAVE_FORKPTY)]) - -if test "$ac_have_forkpty" != yes ; then - # we don't need (or have) -lutil on MacOS 10.4.2... - AC_CHECK_X_LIB(c, forkpty, - [PTY_LIBS="" - AC_DEFINE(HAVE_FORKPTY)]) -fi - -############################################################################### -# -# Check for the XSHM server extension. -# -############################################################################### - -have_xshm=no -with_xshm_req=unspecified -AC_ARG_WITH(xshm-ext, -[ --with-xshm-ext Include support for the Shared Memory extension.], - [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes]) - -HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM) - -if test "$with_xshm" = yes; then - - # first check for Xshm.h. - AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],, - [#include ]) - - # if that succeeded, then check for sys/ipc.h. - if test "$have_xshm" = yes; then - have_xshm=no - AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes]) - fi - - # if that succeeded, then check for sys/shm.h. - if test "$have_xshm" = yes; then - have_xshm=no - AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes]) - fi - - # AIX is pathological, as usual: apparently it's normal for the Xshm headers - # to exist, but the library code to not exist. And even better, the library - # code is in its own library: libXextSam.a. So, if we're on AIX, and that - # lib doesn't exist, give up. (This lib gets added to X_EXTRA_LIBS, and - # that's not quite right, but close enough.) - # - case "$host" in - *-aix*) - if [ `uname -v` -eq 3 ]; then - have_xshm=no - AC_CHECK_X_LIB(XextSam, XShmQueryExtension, - [have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"], - [true], -lX11 -lXext -lm) - fi - ;; - esac - - # if that succeeded, then we've really got it. - if test "$have_xshm" = yes; then - AC_DEFINE(HAVE_XSHM_EXTENSION) - fi - -elif test "$with_xshm" != no; then - echo "error: must be yes or no: --with-xshm-ext=$with_xshm" - exit 1 -fi - - -############################################################################### -# -# Check for the DOUBLE-BUFFER server extension. -# -############################################################################### - -have_xdbe=no -with_xdbe_req=unspecified -AC_ARG_WITH(xdbe-ext, -[ --with-xdbe-ext Include support for the DOUBLE-BUFFER extension.], - [with_xdbe="$withval"; with_xdbe_req="$withval"],[with_xdbe=yes]) - -HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER) - -if test "$with_xdbe" = yes; then - - AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],, - [#include ]) - if test "$have_xdbe" = yes; then - AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION) - fi - -elif test "$with_xdbe" != no; then - echo "error: must be yes or no: --with-xdbe-ext=$with_xshm" - exit 1 -fi - - -############################################################################### -# -# Check for the SGI XReadDisplay server extension. -# -# Note: this has to be down here, rather than up with the other server -# extension tests, so that the output of `configure --help' is in the -# right order. Arrgh! -# -############################################################################### - -have_readdisplay=no -with_readdisplay_req=unspecified -AC_ARG_WITH(readdisplay, -[ --with-readdisplay Include support for the XReadDisplay extension.], - [with_readdisplay="$withval"; with_readdisplay_req="$withval"], - [with_readdisplay=yes]) - -HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay) - -if test "$with_readdisplay" = yes; then - AC_CHECK_X_HEADER(X11/extensions/readdisplay.h, - AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),, - [#include ]) -elif test "$with_readdisplay" != no; then - echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" - exit 1 -fi - - -############################################################################### -# -# Check for a directory full of images to use as the default value -# of the "imageDirectory" preference. -# -############################################################################### - -have_imagedir=no -with_imagedir_req=unspecified - -AC_ARG_WITH(image-directory, -[ --with-image-directory Arg is the default directory from which some demos - will choose random images to display.], - [with_imagedir="$withval"; with_imagedir_req="$withval"], - [with_imagedir=yes]) -# no HANDLE_X_PATH_ARG for this one - -case "$with_imagedir" in - /*) - # absolute path - AC_MSG_CHECKING([for image directory $with_imagedir]) - if test -d "$with_imagedir" ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - with_imagedir="" - fi - ;; - yes) - with_imagedir="" - - #### Could use some more defaults here... - for dd in \ - "/usr/share/backgrounds/images/" \ - "/usr/share/wallpapers/" \ - "/Library/Desktop Pictures/" \ - ; do - if test -z "$with_imagedir"; then - AC_MSG_CHECKING([for image directory $dd]) - if test -d "$dd" ; then - AC_MSG_RESULT(yes) - with_imagedir="$dd" - else - AC_MSG_RESULT(no) - fi - fi - done - - ;; - no) - with_imagedir="" - ;; - - *) - echo "error: must be an absolute path: --with-image-directory=$with_imagedir_req" - exit 1 - ;; -esac -ac_cv_imagedir="$with_imagedir" - -DEFAULT_IMAGES_P='True' -DEFAULT_IMAGE_DIRECTORY="$ac_cv_imagedir" - -if test -z "$DEFAULT_IMAGE_DIRECTORY" ; then - DEFAULT_IMAGES_P='False' -fi - - -############################################################################### -# -# Pick a text file to use as the default of the "textFile" preference. -# Any old file will do, but preferably one that will make interesting -# shapes when displayed by "starwars" and "fontglide". -# -############################################################################### - -have_textfile=no -with_textfile_req=unspecified - -AC_ARG_WITH(text-file, -[ --with-text-file=FILE By default, some demos may display this file.], - [with_textfile="$withval"; with_textfile_req="$withval"], - [with_textfile=yes]) -# no HANDLE_X_PATH_ARG for this one - -case "$with_textfile" in - /*) - # absolute path - AC_MSG_CHECKING([for text file $with_textfile]) - if test -f "$with_textfile" ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - with_textfile="" - fi - ;; - yes) - with_textfile="" - - #### Could use some more defaults here... - for f in \ - "/usr/X11R6/lib/X11/doc/README" \ - "/usr/share/doc/xserver-common/copyright" \ - "/usr/share/doc/xserver-xorg-core/copyright" \ - "/usr/X11R6/README" \ - "/usr/share/doc/libX11*/COPYING" \ - "/usr/X11/share/X11/doc/README*" \ - "/usr/share/doc/debian/debian-manifesto" \ - ; do - if test -z "$with_textfile"; then - AC_MSG_CHECKING([for text file $f]) - f=`/bin/ls $f 2>&- | head -1` - if test -f "$f" ; then - AC_MSG_RESULT(yes) - with_textfile="$f" - else - AC_MSG_RESULT(no) - fi - fi - done - - ;; - no) - with_textfile="" - ;; - - *) - echo "error: must be an absolute path: --with-text-file=$with_textfile_req" - exit 1 - ;; -esac -ac_cv_textfile="$with_textfile" - -DEFAULT_TEXT_FILE="$ac_cv_textfile" - - -############################################################################### -# -# Check the browser to see help URL -# -############################################################################### - -have_browser=no -with_browser_req=unspecified - -AC_ARG_WITH(browser, -[ --with-browser=BROWSER Specify the web browser used to show the help URL.], - [with_browser="$withval"; with_browser_req="$withval"], - [with_browser=no ]) -# no HANDLE_X_PATH_ARG for this one - -case "$with_browser" in - no ) - ;; - * ) - WITH_BROWSER=$with_browser - gnome_open_program=$with_browser - AC_MSG_CHECKING([for browser $with_browser]) - with_browser_fullpath=`which $with_browser 2>/dev/null` - case $with_browser_fullpath in - /* ) - AC_MSG_RESULT(yes) - have_browser=yes - ;; - * ) - AC_MSG_RESULT(no) -# Only warning: we don't want to install all packages for the -# dependency of the browser in building stage... - echo "WARNING: browser not found: --with-browser=$with_browser" - ;; - esac - ;; -esac -ac_cv_browser="$with_browser" - -############################################################################### -# -# Check whether it's ok to install some hacks as setuid (e.g., "sonar") -# This should be safe, but let's give people the option. -# -############################################################################### - -setuid_hacks_default=no -setuid_hacks="$setuid_hacks_default" -AC_ARG_WITH(setuid-hacks, -[ --with-setuid-hacks Allow some demos to be installed `setuid root' - (which is needed in order to ping other hosts.) -], - [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"]) - -HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks) - -if test "$setuid_hacks" = yes; then - true -elif test "$setuid_hacks" != no; then - echo "error: must be yes or no: --with-setuid-hacks=$setuid_hacks" - exit 1 -fi - - -############################################################################### -# -# Check for --with-record-animation -# -############################################################################### - -record_anim_default=no -record_anim="$record_anim_default" -AC_ARG_WITH(record-animation, -[ --with-record-animation Include code for generating MP4 videos. -], - [record_anim="$withval"], [record_anim="$record_anim_default"]) - -HANDLE_X_PATH_ARG(record_anim, --with-record-animation, record animation) - -if test "$record_anim" = yes; then - true -elif test "$record_anim" != no; then - echo "error: must be yes or no: --with-record-animation=$record_anim" - exit 1 -fi - -if test "$record_anim" = yes; then - if test "$have_gdk_pixbuf" != yes; then - AC_MSG_ERROR(--with-record-animation requires GDK-Pixbuf) - else - AC_MSG_RESULT(enabling --with-record-animation) - AC_DEFINE(HAVE_RECORD_ANIM) - ANIM_OBJS='$(ANIM_OBJS)' - ANIM_LIBS='$(ANIM_LIBS)' - fi -fi - -############################################################################### -# -# Done testing. Now, set up the various -I and -L variables, -# and decide which GUI program to build by default. -# -############################################################################### - -DEPEND=makedepend -DEPEND_FLAGS= -DEPEND_DEFINES= - - -if test \! -z "$includedir" ; then - INCLUDES="$INCLUDES -I$includedir" -fi - -if test \! -z "$libdir" ; then - LDFLAGS="$LDFLAGS -L$libdir" -fi - - -PREFERRED_DEMO_PROGRAM='' -ALL_DEMO_PROGRAMS= -if test "$have_motif" = yes; then - PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm - ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS" -fi -if test "$have_gtk" = yes; then - PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Gtk - ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS" -fi - - -if test "$have_kerberos" = yes; then - PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)" - PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)" -fi -if test "$have_pam" = yes; then - PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)" - PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)" - INSTALL_PAM="install-pam" -fi -if test "$enable_pam_check_account_type" = yes; then - COMMENT_PAM_CHECK_ACCOUNT="" -else - COMMENT_PAM_CHECK_ACCOUNT="#" -fi -if test "$have_passwd_helper" = yes; then - PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)" - PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)" -fi - PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)" - PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)" - - -if test "$enable_locking" = yes; then - LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' - LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' -else - LOCK_SRCS='$(NOLOCK_SRCS_1)' - LOCK_OBJS='$(NOLOCK_OBJS_1)' -fi - -if test "$ac_macosx" = yes; then - EXES_OSX='$(EXES_OSX)' - SCRIPTS_OSX='$(SCRIPTS_OSX)' - MEN_OSX='$(MEN_OSX)' -else - EXES_OSX= - SCRIPTS_OSX= - MEN_OSX= -fi - - -INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)' - -if test "$need_setuid" = yes; then - NEED_SETUID=yes -else - NEED_SETUID=no -fi - -if test "$setuid_hacks" = yes; then - SETUID_HACKS=yes -else - SETUID_HACKS=no -fi - -tab=' ' -if test "$have_gl" = yes; then - GL_EXES='$(GL_EXES)' - SUID_EXES='$(SUID_EXES)' - RETIRED_GL_EXES='$(RETIRED_GL_EXES)' - GL_UTIL_EXES='$(GL_UTIL_EXES)' - GL_MEN='$(GL_MEN)' - GL_KLUDGE=" " -else - GL_KLUDGE="-" -fi - -if test "$have_gle" = yes; then - GLE_EXES='$(GLE_EXES)' - GLE_KLUDGE=" " -else - GLE_KLUDGE="-" -fi - -if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then - JPEG_EXES='$(JPEG_EXES)' -fi - - -# Another substitution in the XScreenSaver.ad.in file: -# -if test "$gnome_open_program" != ''; then - GNOME24='' - GNOME22='! ' - NOGNOME='! ' -elif test "$gnome_url_show_program" != ''; then - GNOME24='! ' - GNOME22='' - NOGNOME='! ' -else - GNOME24='! ' - GNOME22='! ' - NOGNOME='' -fi - - -# Set PO_DATADIR to something sensible. -# -AC_MSG_CHECKING([for locale directory]) -if test -n "$GTK_DATADIR" ; then - PO_DATADIR="$GTK_DATADIR" -elif test "$have_gtk" = yes; then - PO_DATADIR=`$pkg_config --variable=prefix gtk+-2.0` - PO_DATADIR="$PO_DATADIR/share" -fi - -if test -z "$PO_DATADIR" ; then - # - # #### Total fucking kludge -- - # Map /build/prefix/usr/X11R6/share/ to /build/prefix/usr/share/ - # but of course we need to expand all the nested variables to do that... - # - dd=`eval eval eval eval eval eval eval eval eval eval eval echo $datadir` - PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'` -fi - -AC_MSG_RESULT($PO_DATADIR/locale) - - -# canonicalize slashes. -HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` - -# gcc 3.0 likes to issue this warning for every file: -# -# cc1: warning: changing search order for system directory "/usr/local/include" -# cc1: warning: as it has already been specified as a non-system directory -# -# Yay. We can only avoid that by deleting "-I${prefix}/include" from the list. -# Which *should* be totally redundant, and thus an ok thing to delete? -# -INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'` - - -############################################################################### -# -# Perform substitutions and write Makefiles. -# -############################################################################### - -AC_SUBST(INCLUDES) - -AC_SUBST(PREFERRED_DEMO_PROGRAM) -AC_SUBST(ALL_DEMO_PROGRAMS) -AC_SUBST(SAVER_LIBS) -AC_SUBST(MOTIF_LIBS) -AC_SUBST(GTK_LIBS) -AC_SUBST(XML_LIBS) -AC_SUBST(PNG_LIBS) -AC_SUBST(JPEG_LIBS) -AC_SUBST(HACK_LIBS) -AC_SUBST(PTY_LIBS) -AC_SUBST(GL_LIBS) -AC_SUBST(GLE_LIBS) -AC_SUBST(XDPMS_LIBS) -AC_SUBST(XINERAMA_LIBS) -AC_SUBST(PASSWD_LIBS) -AC_SUBST(INSTALL_SETUID) -AC_SUBST(SETUID_HACKS) -AC_SUBST(INSTALL_DIRS) -AC_SUBST(NEED_SETUID) -AC_SUBST(INSTALL_PAM) -AC_SUBST(HAVE_PAM_FAIL_DELAY) -AC_SUBST(COMMENT_PAM_CHECK_ACCOUNT) -AC_SUBST(NEW_LOGIN_COMMAND) -AC_SUBST(NEW_LOGIN_COMMAND_P) -AC_SUBST(DEFAULT_IMAGES_P) -AC_SUBST(DEFAULT_IMAGE_DIRECTORY) -AC_SUBST(DEFAULT_TEXT_FILE) -AC_SUBST(WITH_BROWSER) -AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_HEAD) -AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_TAIL) - - -AC_SUBST(OBJCC) -AC_SUBST(EXES_OSX) -AC_SUBST(SCRIPTS_OSX) -AC_SUBST(MEN_OSX) - -AC_SUBST(PASSWD_SRCS) -AC_SUBST(PASSWD_OBJS) -AC_SUBST(XMU_SRCS) -AC_SUBST(XMU_OBJS) -AC_SUBST(XMU_LIBS) -AC_SUBST(XFT_SRCS) -AC_SUBST(XFT_OBJS) -AC_SUBST(XFT_LIBS) -AC_SUBST(SAVER_GL_SRCS) -AC_SUBST(SAVER_GL_OBJS) -AC_SUBST(SAVER_GL_LIBS) -AC_SUBST(LOCK_SRCS) -AC_SUBST(LOCK_OBJS) -AC_SUBST(JPEG_EXES) -AC_SUBST(GL_EXES) -AC_SUBST(RETIRED_GL_EXES) -AC_SUBST(SUID_EXES) -AC_SUBST(GL_UTIL_EXES) -AC_SUBST(GL_MEN) -AC_SUBST(GL_KLUDGE) -AC_SUBST(GLE_EXES) -AC_SUBST(GLE_KLUDGE) -AC_SUBST(JWZGLES_OBJS) -AC_SUBST(GNOME24) -AC_SUBST(GNOME22) -AC_SUBST(NOGNOME) -AC_SUBST(HACKDIR) -AC_SUBST(HACKDIR_FULL) -AC_SUBST(GTK_DATADIR) -AC_SUBST(PO_DATADIR) -AC_SUBST(HACK_CONF_DIR) -AC_SUBST(GTK_EXTRA_OBJS) -AC_SUBST(ANIM_OBJS) -AC_SUBST(ANIM_LIBS) - -APPDEFAULTS=$ac_x_app_defaults -AC_SUBST(APPDEFAULTS) - -AC_SUBST(DEPEND) -AC_SUBST(DEPEND_FLAGS) -AC_SUBST(DEPEND_DEFINES) -AC_SUBST(PERL) - -AC_OUTPUT(Makefile - utils/Makefile - jwxyz/Makefile - hacks/Makefile - hacks/images/Makefile - hacks/glx/Makefile - po/Makefile.in - driver/Makefile - driver/xscreensaver.pam - driver/xscreensaver-demo.glade2 - driver/XScreenSaver.ad) - -############################################################################### -# -# Print some warnings at the end. -# -############################################################################### - -warn_prefix_1=" Warning:" -warn_prefix_2=" Note:" -warn_prefix="$warn_prefix_1" - -warning=no -warnsep=' #################################################################' - -warnpre() { - if test "$warning" = no ; then - echo '' ; echo "$warnsep" ; echo '' - warning=yes - fi -} - -warn() { - warnpre - if test "$warning" = long ; then echo '' ; fi - warning=yes - rest="$@" - echo "$warn_prefix $rest" -} - -warnL() { - was=$warning - warnpre - warning=yes - if test "$was" != no ; then echo '' ; fi - rest="$@" - echo "$warn_prefix $rest" -} - -warn2() { - rest="$@" - echo " $rest" - warning=long -} - -note() { - warn_prefix="$warn_prefix_2" - warn $@ - warn_prefix="$warn_prefix_1" -} - -noteL() { - warn_prefix="$warn_prefix_2" - warnL $@ - warn_prefix="$warn_prefix_1" -} - - -# ac_prog_cc_no_pthread normally only happens on AIX, because according -# to AX_PTHREAD, AIX needs CC=xlc_r or CC=cc_r to do threads. -# If CC is specified, it takes precedence over --with-pthread. -if test "$ac_prog_cc_no_pthread" ; then - warnL "You requested $ac_original_cc for the C compiler, but it doesn't" - warn2 "support POSIX threads." - echo "" - warn2 "If you have multiple CPU cores, try CC=$PTHREAD_CC." -elif test "$with_pthread_req" = yes -a "$have_pthread" = no ; then - warn 'POSIX threads were requested, but were not found.' -fi - -if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then - warn 'The SGI saver extension was requested, but was not found.' -fi - -if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then - warn 'The XIdle extension was requested, but was not found.' -fi - -if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then - warn 'The XSHM extension was requested, but was not found.' -fi - -if test "$with_xdbe_req" = yes -a "$have_xdbe" = no ; then - warn 'The DOUBLE-BUFFER extension was requested, but was not found.' -fi - -if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then - warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.' -fi - -if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then - warn 'The DPMS extension was requested, but was not found.' -fi - -if test "$with_xinerama_req" = yes -a "$have_xinerama" = no ; then - warn 'The Xinerama extension was requested, but was not found.' -fi - -if test "$with_xf86vmode_req" = yes -a "$have_xf86vmode" = no ; then - warn 'The XF86VMODE extension was requested, but was not found.' -fi - -if test "$with_randr_req" = yes -a "$have_randr" = no ; then - warn 'The RANDR extension was requested, but was not found.' -fi - -if test "$with_proc_interrupts_req" = yes -a "$have_proc_interrupts" = no; then - warn "Checking of /proc/interrupts was requested, but it's bogus." -fi - -if test "$pkg_config" = false ; then - warnL 'The "pkg-config" program was not found. Without that,' - warn2 "detection of the various GTK libraries won't work." -else - pkgerr=`$pkg_config --list-all 2>&1 >/dev/null` - if test "x$pkgerr" != "x" ; then - warnL 'The "pkg-config" program produces errors. This often causes' - warn2 "detection of the various GTK libraries to malfunction." - warn2 "The errors are:" - echo '' - echo "$pkgerr" | sed 's/^/ > /g' - fi -fi - -if test "$gtk_halfassed" != no ; then - warnL "GTK version $gtk_halfassed was found, but at least one supporting" - warn2 "library ($gtk_halfassed_lib) was not, so GTK can't be used." - warn2 "Perhaps some of the development packages are not installed?" - if test "$have_gtk" = yes ; then - v="$ac_gtk_version_string" - warn2 "GTK $v is also installed, so it will be used instead." - warn2 "Please read the above output and the \`config.log' file" - warn2 "for more details." - fi -fi - -motif_warn2() { - warn2 'Though the Motif front-end to xscreensaver is still' - warn2 'maintained, it is no longer being updated with new' - warn2 'features: all new development on the xscreensaver-demo' - warn2 'program is happening in the GTK version, and not in the' - warn2 'Motif version. It is recommended that you build against' - warn2 'GTK instead of Motif. See .' -} - -if test "$have_motif" = no -a "$have_gtk" = no; then - - if test "$with_motif" = yes; then - warnL "Neither the GTK nor Motif libraries were found; the" - warn2 "\`xscreensaver-demo' program requires one of these." - echo '' - motif_warn2 - else - warnL "The GTK libraries do not seem to be available; the" - warn2 "\`xscreensaver-demo' program requires them." -# echo '' -# warn2 'You can use Motif or Lesstif instead of GTK (use the' -# warn2 "\`--with-motif' option) but that is NOT recommended." -# motif_warn2 - fi - -elif test "$with_motif_req" = yes -a "$have_motif" = no ; then - warnL "Use of Motif was requested, but it wasn't found;" - warn2 "Gtk will be used instead." - -elif test "$jurassic_gtk" = yes ; then - - pref_gtk=2.0 - - v="$ac_gtk_version_string" - if test "$with_gtk_req" = yes -a "$ac_gtk_version" = "unknown" ; then - warnL "Use of Gtk was requested, but its version number is unknown;" - elif test "$with_gtk_req" = yes ; then - warnL "Use of Gtk was requested, but it is version $v;" - else - warnL "Gtk was found on this system, but it is version $v;" - fi - - warn2 "Gtk $pref_gtk or newer is required." - -elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then - warnL "Use of Gtk was requested, but it wasn't found." -fi - - -if test "$have_gtk" = yes -a "$have_gdk_pixbuf" = no ; then - warn "GTK is being used, but the GDK-Pixbuf library and/or" - warn2 "headers were not found. That can't be good. Please" - warn2 "install the GDK-Pixbuf development kit and re-configure." -fi - -if test "$have_motif" = yes -a "$have_lesstif" = yes ; then - - preferred_lesstif=0.92 - - if test "$lesstif_version" = unknown; then - warnL "Unable to determine the LessTif version number!" - warn2 "Make sure you are using version $preferred_lesstif or newer." - warn2 "See ." - - elif test \! $lesstif_version -gt 82; then - warnL "LessTif version $lesstif_version_string is being used." - warn2 "LessTif versions 0.82 and earlier are too buggy to" - warn2 "use with XScreenSaver; it is strongly recommended" - warn2 "that you upgrade to at least version $preferred_lesstif!" - warn2 "See ." - fi -fi - - -if test "$have_motif" = yes -a "$have_gtk" = no ; then - warn 'Motif is being used, and GTK is not.' - echo '' - motif_warn2 -fi - - -if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then - warnL 'Use of GDK-Pixbuf was requested, but it was not found.' -fi - -if test "$have_gdk_pixbuf" = no -o "$gdk_pixbuf_halfassed" = yes || \ - test "$have_gdk_pixbuf" = no ; then - - if test "$with_gdk_pixbuf_req" = yes ; then - true - elif test "$with_gdk_pixbuf_req" = no ; then - warnL 'The GDK-Pixbuf library is not being used.' - else - warnL 'The GDK-Pixbuf library was not found.' - fi - - if test "$gdk_pixbuf_halfassed" = yes ; then - echo '' - warn2 'More specifically, we found the headers, but not the' - warn2 'libraries; so either GDK-Pixbuf is half-installed on this' - warn2 "system, or something else went wrong. The \`config.log'" - warn2 'file might contain some clues.' - fi - - if test "$have_png" = yes ; then - echo '' - warn2 'The PNG library is being used instead.' - fi - - echo '' - warn2 'Some of the demos will not use images as much as they could.' - warn2 'You should consider installing GDK-Pixbuf and re-running' - warn2 'configure.' -fi - - -if test "$have_jpeg" = no ; then - if test "$with_jpeg_req" = yes ; then - warnL 'Use of libjpeg was requested, but it was not found.' - elif test "$with_jpeg_req" = no ; then - noteL 'The JPEG library is not being used.' - else - noteL 'The JPEG library was not found.' - fi - - if test "$jpeg_halfassed" = yes ; then - echo '' - warn2 'More specifically, we found the headers, but not the' - warn2 'library; so either JPEG is half-installed on this' - warn2 "system, or something else went wrong. The \`config.log'" - warn2 'file might contain some clues.' - echo '' - fi - - if test "$have_gdk_pixbuf" = no ; then - warn2 "This means that it won't be possible for the image-manipulating" - warn2 "display modes to load files from disk; and it also means that" - warn2 "the \`webcollage' program will be much slower." - else - warn2 "This means the \`webcollage' program will be much slower." - fi -fi - - -if test "$have_png" = no ; then - if test "$with_png_req" = yes ; then - warnL 'Use of libpng was requested, but it was not found.' - elif test "$with_png_req" = no ; then - noteL 'The PNG library is not being used.' - else - noteL 'The PNG library was not found.' - fi - - if test "$png_halfassed" = yes ; then - echo '' - warn2 'More specifically, we found the headers, but not the' - warn2 'library; so either PNG is half-installed on this' - warn2 "system, or something else went wrong. The \`config.log'" - warn2 'file might contain some clues.' - echo '' - fi - - warn2 "Many things aren't going to work right." -fi - - -if test "$have_xft" = no ; then - if test "$with_xft_req" = yes ; then - warnL "Use of libXft was requested, but it was not found." - elif test "$with_xft_req" = no ; then - noteL 'The Xft library is not being used.' - else - noteL "The Xft library was not found." - fi - - if test "$xft_halfassed" = yes ; then - echo '' - warn2 'More specifically, we found the headers, but not the' - warn2 'libraries; so either Xft is half-installed on this' - warn2 "system, or something else went wrong. The \`config.log'" - warn2 'file might contain some clues.' - echo '' - fi - - warn2 "This means that fonts won't be anti-aliased." -fi - - -if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then - preferred_mesagl=3.4 - mgv="$ac_mesagl_version_string" - pgl="$preferred_mesagl" - - if test "$ac_mesagl_version" = unknown; then - true - # warnL "Unable to determine the MesaGL version number!" - # warn2 "Make sure you are using version $preferred_mesagl or newer." - - elif test \! "$ac_mesagl_version" -gt 2006; then - warnL "MesaGL version number is $mgv --" - warn2 "MesaGL 2.6 and earlier have a security bug. It is strongly" - warn2 "recommended that you upgrade to at least version $preferred_mesagl." - - elif test \! "$ac_mesagl_version" -gt 3003; then - warnL "MesaGL version number is $mgv --" - warn2 "MesaGL 3.3 and earlier have some bugs; it is recommended" - warn2 "that you upgrade to $pgl or newer." - fi -fi - -if test "$have_gl" = no ; then - if test "$with_gl_req" = yes ; then - warnL 'Use of GL was requested, but it was not found.' - elif test "$with_gl_req" = no ; then - noteL 'The OpenGL 3D library is not being used.' - else - noteL 'The OpenGL 3D library was not found.' - fi - - if test "$gl_halfassed" = yes ; then - echo '' - warn2 'More specifically, we found the headers, but not the' - warn2 'libraries; so either GL is half-installed on this' - warn2 "system, or something else went wrong. The \`config.log'" - warn2 'file might contain some clues.' - fi - - echo '' - warn2 'Those demos which use 3D will not be built or installed.' - warn2 'You might want to consider installing OpenGL and' - warn2 're-running configure.' - -fi - - -if test "$have_gl" = yes -a "$have_gle" = no ; then - - # nobody cares about this; don't print the warning unless it was - # requested and not found, or halfway-found. - if test "$with_gle_req" = yes -o "$gle_halfassed" = yes ; then - - if test "$with_gle_req" = yes ; then - noteL 'Use of the GLE (GL Extrusion) library was requested, but' - warn2 'it was not found (though the OpenGL library was found, and' - warn2 'is being used.)' - elif test "$with_gle_req" = no ; then - noteL 'The OpenGL Library is being used, but the GLE (GL Extrusion)' - warn2 'library is not.' - else - noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)' - warn2 'library was not.' - fi - - if test "$gle_halfassed" = yes ; then - echo '' - warn2 'More specifically, we found the headers, but not the' - warn2 'libraries; so either GLE is half-installed on this' - warn2 "system, or something else went wrong. The \`config.log'" - warn2 'file might contain some clues.' - fi - - echo '' - warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)' - warn2 'will not be built or installed. You might want to consider' - warn2 'installing GLE and re-running configure. You can find the' - warn2 'GLE library at ' - - fi -fi - - -if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then - warn 'Use of XReadDisplay was requested, but it was not found.' -fi - -if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then - warn 'Use of Kerberos was requested, but it was not found.' -fi - -if test "$with_pam_req" = yes -a "$have_pam" = no ; then - warn 'Use of PAM was requested, but it was not found.' -fi - -if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then - warn 'Use of shadow passwords was requested, but they were not found.' -fi - -if test "$ac_macosx" = yes ; then - if test "$enable_locking" = yes ; then - warn "You have specified --enable-locking on MacOS X." - warn2 "THIS DOES NOT WORK! Don't do this!" - fi -fi - - -# You are in a twisty maze of namespaces and syntaxes, all alike. -# Fuck the skull of Unix. -# -bindir=`eval eval eval eval eval eval eval echo $bindir` -HACKDIR=`eval eval eval eval eval eval eval echo $HACKDIR` -HACK_CONF_DIR=`eval eval eval eval eval eval eval echo $HACK_CONF_DIR` - -# canonicalize slashes. -bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'` -HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` -HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` - - -# Sanity check the hackdir -for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do - if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then - echo "" - AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work. - There will be an executable installed with that name, so - that can't be the name of a directory as well. Please - re-configure with a different directory name.]) - fi -done - - -do_dir_warning=no - -# Now let's warn if there's a previous RPM version already installed. -# But don't bother with this test if we are currently *building* an RPM. - -if test -z "$RPM_PACKAGE_VERSION" ; then - - rpmnames="xscreensaver xscreensaver-base xscreensaver-extras" - - # M4 sucks!! - changequote(X,Y) - rpmv=`(rpm -qv $rpmnames) 2>/dev/null | \ - sed -n 's/^[-a-z]*-\([0-9][0-9]*[.][0-9][0-9a-z]*\)-.*$/\1/p' | \ - head -1` - changequote([,]) - - if test \! -z "$rpmv" ; then - rpmbdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/xscreensaver-demo$@\1@p'` - rpmhdir=`rpm -ql $rpmnames | sed -n 's@^\(.*\)/popsquares$@\1@p'` - - warning=no - warnL "There is already an installed RPM of xscreensaver $rpmv" - warn2 'on this system. You might want to remove it ("rpm -ve")' - warn2 'before running "make install" in this directory.' - echo "" - warn2 "Alternately, you could build this version of xscreensaver" - warn2 'as an RPM, and then install that. An "xscreensaver.spec"' - warn2 'file is included. Try "rpmbuild -v -ba xscreensaver.spec".' - warn2 "See the RPM documentation for more info." - echo "" - - if test "$rpmbdir" = "$rpmhdir" ; then - warn2 "The RPM version was installed in $rpmbdir/." - do_dir_warning=yes - else - warn2 "The RPM version was installed in $rpmbdir/," - warn2 "with demos in $rpmhdir/." - fi - fi -fi - -# Also warn if there's a Debian package installed. -# -debnames="xscreensaver xscreensaver-data xscreensaver-data-extra" -debv='' -for dpkg in $debnames ; do - if test -z "$debv"; then - debv=`dpkg -s $dpkg 2>/dev/null | sed -n 's/^Version: \(.*\)$/\1/p'` - fi -done - -if test \! -z "$debv" ; then - debbdir=`dpkg -L $debnames 2>/dev/null | \ - sed -n 's@^\(.*/bin/\)xscreensaver$@\1@p'` - debhdir=`dpkg -L $debnames 2>/dev/null | \ - sed -n 's@^\(.*/\)popsquares$@\1@p'` - if test -z "$debbdir" ; then debbdir='???'; fi - if test -z "$debhdir" ; then debhdir='???'; fi - - warning=no - warnL "There is already an installed dpkg of xscreensaver" - warn2 "version \"$debv\" on this system." - echo "" - warn2 "The dpkg was installed in $debbdir," - warn2 "with demos in $debhdir." -fi - - -if test "${bindir}" = "${HACKDIR}" ; then - do_dir_warning=yes -fi - -if test "$do_dir_warning" = yes; then - echo "" - echo "$warnsep" - echo "" - echo ' When you run "make install", the "xscreensaver",' - echo ' "xscreensaver-demo", and "xscreensaver-command" executables' - echo " will be installed in ${bindir}/." - echo "" - echo " The various graphics demos (200+ different executables) will" - echo " be installed in ${HACKDIR}/." - echo "" - echo " If you would prefer the demos to be installed elsewhere," - echo " you should re-run configure with the --with-hackdir=DIR" - echo " option. For more information, run \`./configure --help'." - warning=yes -fi - -if test "$warning" != no; then - echo '' ; echo "$warnsep" ; echo '' -fi - -if test "$do_dir_warning" = no; then - if test "$warning" = no; then - echo '' - fi - echo "User programs will be installed in ${bindir}/" - echo "Screen savers will be installed in ${HACKDIR}/" - echo "Configuration dialogs will be installed in ${HACK_CONF_DIR}/" - echo "System-wide default settings will be installed in ${APPDEFAULTS}/" - echo '' -fi diff -Nru xscreensaver-5.42+dfsg1/debian/changelog xscreensaver-5.45+dfsg1/debian/changelog --- xscreensaver-5.42+dfsg1/debian/changelog 2019-01-27 21:40:05.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/changelog 2021-06-14 23:21:52.000000000 +0000 @@ -1,4 +1,4 @@ -xscreensaver (5.42+dfsg1-1ubuntu1) devel; urgency=medium +xscreensaver (5.45+dfsg1-2ubuntu1) impish; urgency=medium * Merge from Debian unstable. Remaining changes: - debian/rules: @@ -10,12 +10,129 @@ + Install /usr/share/backgrounds. By default, settings search in /usr/share/backgrounds and without it, it displays an error. - debian/patches/90_ubuntu-branding.patch: Use Ubuntu branding. - * Dropped changes: - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - -- Unit 193 Sun, 27 Jan 2019 16:40:05 -0500 + -- Robert Ancell Tue, 15 Jun 2021 11:21:52 +1200 + +xscreensaver (5.45+dfsg1-2) unstable; urgency=medium + + * Do not assign raw net capability to "sonar" hack due to a security + vulnerability in mesa (Closes: #987149) + * Make sure is systemd unit is disabled if upgrading from previous + two releases (Closes: #978589) + * Do not enable screensaver on login screen (Closes: #979562, #988158) + * Recommend needed font for unlock dialog (Closes: #978086) + * Apply fix for crash on video output disconnection (Closes: #989508) + + -- Tormod Volden Sun, 06 Jun 2021 12:25:19 +0200 + +xscreensaver (5.45+dfsg1-1) unstable; urgency=low + + * New upstream release 5.45 + - New hacks, `covid19', `headroom', `sphereeversion' and `beats'. + - Shader updates to `hypertorus'. + - No more image-loading pause in `glslideshow'. + - BSOD supports GNOME. + - Image loaders support SVG. + - X11: `xscreensaver-systemd' now allows video players to request that + the screen not blank. + - X11: -log implies -verbose -no-capture-stderr. + - X11: Glade -> GtkBuilder. + - Various bug fixes. (Closes: #956251) + * Drop libglade2 dependency (Closes: #967892, #967232) + * debian/rules: Fix package build on architectures without systemd + * Use setcap in postinst only if available (Linux) + * Drop patches accepted upstream: + - 12_upstream_man_pages_name_header_backslash.patch + - 14_upstream_gibson_man_page_name.patch + - 16_upstream_cross_ac_path_tool.patch + - 18_upstream_misspellings.patch + * debian/patches/12_upstream_man_beats_speereev_backslash.patch: + - man page name header syntax fixes + * debian/patches/94_cpu_usage_verbose.patch: Mostly upstreamed + * debian/patches/53_default_newLoginCommand.patch: Update to use + dm-tool instead of gdmflexiserver as default for user switching + * Use gdm-command as fallback in xscreensaver-wrapper.sh + * Recommend xfonts-100dpi (Closes: #932837) thanks jwz + * Ship hacks under /usr/libexec instead of /usr/lib (thanks jwz) + * Do not enable systemd unit by default, since it breaks existing + (non-systemd) setups (Closes: #977804) Note it only got enabled + by default in 5.44+dfsg1-2. + + -- Tormod Volden Wed, 23 Dec 2020 00:09:44 +0100 + +xscreensaver (5.44+dfsg1-2) unstable; urgency=low + + [ Andrej Shadura ] + * debian/rules rewritten to short dh form + * Bump debhelper from deprecated 9 to 12 + + [ Tormod Volden ] + * Drop build-depends on autotools-dev and dh-autoreconf + * Limit setcap usage to Linux architectures + * New, upstreamed patches: + - 16_upstream_cross_ac_path_tool.patch (thanks Helmut Grohne) + Fixes cross-building from scratch (Closes: #973338) + - 18_upstream_misspellings.patch (various misspellings) + * debian/copyright: Clarify noseguy/hyperball/hypercube + * Add build-depends on gdk-pixbuf libraries no longer pulled in + by GTK 2 (Closes: #975703) thanks Simon McVittie + * Add NEWS link to upstream README (release notes) + * Bump Standards-Version to 4.5.1 + * Build without shadow passwd support since we rely on pam + + -- Tormod Volden Tue, 08 Dec 2020 19:49:18 +0100 + +xscreensaver (5.44+dfsg1-1) unstable; urgency=medium + + [ Patrice Duroux ] + * Fix invalid syntax in glitchpeg.desktop (Closes: #920753) + + [ Will Ross ] + * New upstream release 5.43 (Closes: #954017) + - New hacks, `GravityWell', `DeepStars'. + - GLPlanet now supports the Mercator projection. + - Bouncing Cow has mathematically ideal cows (spherical, frictionless). + - Foggy toasters. + - Unknown Pleasures can now use an image file as a clip mask. + - Updated `webcollage' for recent changes. + - X11: Added some sample unlock dialog color schemes to the .ad file. + - X11: On systemd systems, closing your laptop lid might actually lock + your screen now, maybe. (Closes: #781961) + - X11: 'sonar' can ping without being setuid by using setcap. + (Closes: #96677) + * Removed patches applied upstream or obsolete: + - debian/patches/12_upstream_hurd-no-pthread_stack_min.patch + - debian/patches/14_upstream_cpp_comments.patch + - debian/patches/91_allow_cross_compilation.patch.patch + + [ Tormod Volden ] + * New upstream release 5.44 + - New hacks, `gibson', `etruscanvenus' and `scooter'. + - BSOD supports Tivo and Nintendo. + - New color options in `romanboy', `projectiveplane', `hypertorus' + and `klein'. + - Performance tweaks for `eruption', `fireworkx', `halftone', `halo', + `moire2', `rd-bomb' + - X11: Always use $HOME/.xscreensaver, not getpwuid's directory. + - Various bug fixes. + * Drop obsolete or upstreamed patches: + - debian/patches/22_hacks_barcode.patch + - debian/patches/23_hacks_glx_glsnake.patch + - debian/patches/24_install_systemd_helper.patch + - debian/patches/93_driver_distclean.patch + * New, upstreamed patches: + - 12_upstream_man_pages_name_header_backslash.patch + - 14_upstream_gibson_man_page_name.patch + - 99_cpu_usage_verbose.patch + * Use dh_update_autotools_config and update debhelper deps + + [ Andrej Shadura ] + * debian/copyright: use spaces rather than tabs to start + continuation lines. + * Remove deprecated Encoding key from desktop file + debian/xscreensaver-daemon.desktop. + + -- Andrej Shadura Sat, 17 Oct 2020 18:08:05 +0200 xscreensaver (5.42+dfsg1-1) unstable; urgency=medium @@ -86,29 +203,6 @@ -- Tormod Volden Thu, 27 Sep 2018 00:12:07 +0200 -xscreensaver (5.36-1ubuntu1) zesty; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - debian/rules: - + Use /usr/share/backgrounds as image directory. - + Add translation domain to .desktop files. - - debian/source_xscreensaver.py: - + Add apport hook. - - debian/xscreensaver.dirs: - + Install /usr/share/backgrounds. By default, settings search in - /usr/share/backgrounds and without it, it displays an error. - - debian/patch/90_ubuntu-branding.patch: Use Ubuntu branding. - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - * Dropped changes: - - debian/control: - + Breaks/Replaces: the old changes are not needed anymore, but the - new changes the screensavers sets needs it. - * d/p/90_ubuntu-branding.patch: Fix feed used for the Fridge. - - -- Unit 193 Fri, 24 Mar 2017 17:21:10 -0400 - xscreensaver (5.36-1) unstable; urgency=medium * New upstream release 5.36, changes since 5.34: @@ -139,27 +233,6 @@ -- Tormod Volden Sun, 11 Dec 2016 15:18:05 +0100 -xscreensaver (5.34-2ubuntu1) xenial; urgency=medium - - * Merge from Debian unstable. Remaining changes: (Really fix LP: #1406825) - - debian/control: - + Breaks/Replaces: the old changes are not needed anymore, but the - new changes the screensavers sets needs it. - - debian/rules: - + Use /usr/share/backgrounds as image directory. - + Add translation domain to .desktop files. - - debian/source_xscreensaver.py: - + Add apport hook. - - debian/xscreensaver.dirs: - + Install /usr/share/backgrounds. By default, settings search in - /usr/share/backgrounds and without it, it displays an error. - - debian/patch/90_ubuntu-branding.patch: Use Ubuntu branding. - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - - -- Unit 193 Wed, 06 Apr 2016 17:26:23 -0400 - xscreensaver (5.34-2) unstable; urgency=medium * Fix sort order in hacks/Makefile (for reproducible builds) @@ -169,31 +242,6 @@ -- Tormod Volden Tue, 05 Apr 2016 22:53:13 +0200 -xscreensaver (5.34-1ubuntu1) xenial; urgency=medium - - * Merge from Debian unstable. Remaining changes: (LP: #1512136) - - debian/control: - + Breaks/Replaces: the old changes are not needed anymore, but the - new changes the screensavers sets needs it. - - debian/rules: - + Use /usr/share/backgrounds as image directory. - + Add translation domain to .desktop files. - - debian/source_xscreensaver.py: - + Add apport hook. - - debian/xscreensaver.dirs: - + Install /usr/share/backgrounds. By default, settings search in - /usr/share/backgrounds and without it, it displays an error. - - debian/patch/90_ubuntu-branding.patch: Use Ubuntu branding. - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - * Dropped changes, fixed in Debian: - - debian/patches/91_replace-gdmflexiserver.patch: - + Use dm-tool instead of gdmflexiserver for user-switching, - the latter is no longer provided by lightdm. - - -- Unit 193 Tue, 27 Oct 2015 20:23:19 -0400 - xscreensaver (5.34-1) unstable; urgency=medium * New upstream release 5.34 @@ -231,30 +279,6 @@ -- Tormod Volden Tue, 28 Jul 2015 00:41:06 +0200 -xscreensaver (5.30-1ubuntu1) vivid; urgency=medium - - * Merge from Debian unstable. (LP: #1406825) Remaining changes: - - debian/control: - + Breaks/Replaces: the old changes are not needed anymore, but the - new changes the screensavers sets needs it. - - debian/rules: - + Use /usr/share/backgrounds as image directory. - + Add translation domain to .desktop files. - - debian/source_xscreensaver.py: - + Add apport hook. - - debian/xscreensaver.dirs: - + Install /usr/share/backgrounds. By default, settings search in - /usr/share/backgrounds and without it, it displays an error. - - debian/patch/90_ubuntu-branding.patch: Use Ubuntu branding. - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - - debian/patches/91_replace-gdmflexiserver.patch: - + Use dm-tool instead of gdmflexiserver for user-switching, - the latter is no longer provided by lightdm. - - -- Unit 193 Wed, 18 Feb 2015 02:17:23 -0500 - xscreensaver (5.30-1) unstable; urgency=low * New upstream release 5.30 @@ -286,47 +310,6 @@ -- Tormod Volden Mon, 22 Sep 2014 08:09:14 +0200 -xscreensaver (5.26-1ubuntu3) utopic; urgency=medium - - * debian/patches/91_replace-gdmflexiserver.patch: - - Use dm-tool instead of gdmflexiserver for user-switching, - the latter is no longer provided by lightdm (LP: #1320560) - - -- Sean Davis Tue, 14 Oct 2014 07:07:45 -0400 - -xscreensaver (5.26-1ubuntu2) utopic; urgency=medium - - * debian/control: Fix typo in Repleaces on xscreensaver-data - (LP: #1319433). - - -- Mattia Rizzolo Sun, 18 May 2014 19:34:54 +0200 - -xscreensaver (5.26-1ubuntu1) utopic; urgency=low - - * Dropped Ubuntu changes: - - Ubuntu delta to the screensavers sets. - - Keep Debian Vcs-* links instead of the ~ubuntu-desktop team bzr - repository: the Desktop team does not have interest any more. - - The Ubuntu changes to the descriptions. - * Merge from Debian unstable. (LP: #1283459) Remaining changes: - - debian/control: - + Breaks/Replaces: the old changes are not needed anymore, but the - new changes the screensavers sets needs it. - - debian/rules: - + Use /usr/share/backgrounds as image directory. - + Add translation domain to .desktop files. - - debian/source_xscreensaver.py: - + Add apport hook. - - debian/xscreensaver.dirs: - + Install /usr/share/backgrounds. By default, settings search in - /usr/share/backgrounds and without it, it displays an error. - - debian/patch/90_ubuntu-branding.patch: Use Ubuntu branding. - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - - -- Mattia Rizzolo Tue, 06 May 2014 21:55:37 +0200 - xscreensaver (5.26-1) unstable; urgency=low * New upstream release 5.26, changes since 5.23: @@ -334,7 +317,7 @@ - Updated `webcollage' for recent Google changes. - Added Instagram and Bing as `webcollage' image sources. - Updated to latest autoconf. - - Bug fixes. + - Bug fixes. (Closes: #702258) * Drop patch applied upstream: - debian/patches/12_upstream_use_cppflags.patch * Bump Standards-Version to 3.9.5 (no changes needed) @@ -420,31 +403,6 @@ -- Tormod Volden Tue, 01 Oct 2013 22:00:48 +0200 -xscreensaver (5.15-3ubuntu1) saucy; urgency=low - - * Merge from Debian unstable. Remaining changes: - - debian/control: - + Add Vcs-Bzr link - + Add/Update replaces with Ubuntu versions - + Update package descriptions to list Ubuntu screensavers - - debian/rules: - + Use /usr/share/backgrounds as image directory - + Add translation domain to .desktop files - - debian/source_xscreensaver.py: - + Add apport hook - - debian/split-hacks.config: - + Use different set of default hacks than Debian - - debian/xscreensaver.dirs - + Install /usr/share/backgrounds. By default, settings search in - /usr/share/backgrounds and without it, it displays an error - - debian/patches/53_XScreenSaver.ad.in.patch: - + Use Ubuntu branding - - debian/patches/60_sequential_glslideshow.patch: - + Allow going through images sequentially rather than just at random in - the GLSlideshow hack. - - -- Adam Conrad Wed, 17 Jul 2013 13:47:29 +0100 - xscreensaver (5.15-3) unstable; urgency=low [ Jose Luis Rivas ] @@ -1039,7 +997,7 @@ * new upstream (closes: #308668, #195727, #322752, #305528) - -- Ralf Hildebrandt Wed, 26 Sep 2005 15:23:43 +0200 + -- Ralf Hildebrandt Mon, 26 Sep 2005 15:23:43 +0200 xscreensaver (4.21-7) unstable; urgency=low @@ -1899,6 +1857,3 @@ * New package -- Larry Daffner Wed, 2 Oct 1996 14:43:42 -0500 - - - diff -Nru xscreensaver-5.42+dfsg1/debian/clean xscreensaver-5.45+dfsg1/debian/clean --- xscreensaver-5.42+dfsg1/debian/clean 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/clean 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ +config.log config.h +driver/XScreenSaver.ad-nogl +debian/xscreensaver*.install +debian/xscreensaver*.manpages +po/.intltool-merge-cache +NEWS diff -Nru xscreensaver-5.42+dfsg1/debian/compat xscreensaver-5.45+dfsg1/debian/compat --- xscreensaver-5.42+dfsg1/debian/compat 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9 diff -Nru xscreensaver-5.42+dfsg1/debian/control xscreensaver-5.45+dfsg1/debian/control --- xscreensaver-5.42+dfsg1/debian/control 2019-01-27 20:51:01.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/control 2021-06-14 23:21:52.000000000 +0000 @@ -3,21 +3,22 @@ Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Tormod Volden -Build-Depends: autotools-dev, +Build-Depends: debhelper-compat (= 12), bc, - debhelper (>= 9.0), - dh-autoreconf, dpkg-dev (>= 1.16.1), fortune-mod, intltool, + libcap2-dev [linux-any], libgl1-mesa-dev | libgl-dev, - libglade2-dev, libgle-dev, libglu1-mesa-dev | xlibmesa-glu-dev | libglu-dev, libgtk2.0-dev, + libgdk-pixbuf-2.0-dev | libgdk-pixbuf2.0-dev, + libgdk-pixbuf-xlib-2.0-dev | libgdk-pixbuf2.0-dev, libjpeg-dev, libpam0g-dev, libpng-dev, + libsystemd-dev [linux-any], libx11-dev, libxext-dev, libxinerama-dev, @@ -33,15 +34,19 @@ x11proto-core-dev, xbitmaps, xutils-dev -Standards-Version: 4.1.4 +Standards-Version: 4.5.1 Homepage: https://www.jwz.org/xscreensaver/ Vcs-Browser: https://salsa.debian.org/debian/xscreensaver Vcs-Git: https://salsa.debian.org/debian/xscreensaver.git +Rules-Requires-Root: no Package: xscreensaver Architecture: any Depends: xscreensaver-data, ${misc:Depends}, ${shlibs:Depends} -Recommends: libjpeg-turbo-progs, miscfiles | wordlist, perl +Recommends: libjpeg-turbo-progs, + miscfiles | wordlist, + perl, + gsfonts-x11 | xfonts-100dpi Suggests: fortune, gdm3 | kdm-gdmcompat, qcam | streamer, @@ -79,8 +84,8 @@ . This is the selected set of non-GL screensavers shipped by default: abstractile, binaryring, cwaves, deco, distort, fiberlamp, fuzzyflakes, - galaxy, hexadrop, m6502, metaballs, penrose, ripples, shadebobs, - slidescreen, swirl, tessellimage, xlyap. + galaxy, hexadrop, m6502, metaballs, penrose, ripples, scooter, + shadebobs, slidescreen, swirl, tessellimage, xlyap. . More display modes can be found in xscreensaver-data-extra, xscreensaver-gl and xscreensaver-gl-extra packages. @@ -123,7 +128,7 @@ Package: xscreensaver-gl Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends} +Depends: libcap2-bin [linux-any], ${misc:Depends}, ${shlibs:Depends} Suggests: xscreensaver Description: GL(Mesa) screen saver modules for screensaver frontends XScreenSaver is a modular screen saver and locker for X11, @@ -134,18 +139,18 @@ xscreensaver and also some other screensaver engines. . This is the set of GL screensavers shipped by default: - antinspect, antspotlight, atunnel, blinkbox, bubble3d, circuit, - cityring, crumbler, cubestack, cubestorm, cubetwist, discoball, - dymaxionmap, endgame, energystream, engine, esper, flipflop, - flipscreen3d, flyingtoasters, gears, geodesic, geodesicgears, gflux, - glblur, glcells, gleidescope, glknots, glmatrix, glschool, - glslideshow, glsnake, gltext, hexstrut, hydrostat, hypertorus, - jigglypuff, kaleidocycle, lavalite, lockward, maze3d, mirrorblob, - moebius, moebiusgears, molecule, morph3d, peepers, pipes, polyhedra, - polytopes, projectiveplane, pulsar, quasicrystal, queens, raverhoop, - razzledazzle, romanboy, sierpinski3d, sonar, spheremonics, splitflap, - splodesic, stonerview, superquadrics, topblock, unicrud, vigilance, - voronoi, winduprobot. + antinspect, antspotlight, atunnel, beats, blinkbox, bubble3d, circuit, + cityring, covid19, crumbler, cubestack, cubestorm, cubetwist, discoball, + dymaxionmap, endgame, energystream, engine, esper, etruscanvenus, + flipflop, flipscreen3d, flyingtoasters, gears, geodesic, geodesicgears, + gflux, gibson, glblur, glcells, gleidescope, glknots, glmatrix, + glschool, glslideshow, glsnake, gltext, headroom, hexstrut, hydrostat, + hypertorus, jigglypuff, kaleidocycle, lavalite, lockward, maze3d, + mirrorblob, moebius, moebiusgears, molecule, morph3d, peepers, pipes, + polyhedra, polytopes, projectiveplane, pulsar, quasicrystal, queens, + raverhoop, razzledazzle, romanboy, sierpinski3d, sonar, sphereeversion, + spheremonics, splitflap, splodesic, stonerview, superquadrics, + topblock, unicrud, vigilance, voronoi, winduprobot. . More display modes can be found in the xscreensaver-data, xscreensaver-data-extra and xscreensaver-gl-extra packages. @@ -165,11 +170,11 @@ xscreensaver-gl: antmaze, atlantis, blocktube, boing, bouncingcow, boxed, cage, carousel, companioncube, crackberg, cube21, cubenetic, cubicgrid, - dangerball, extrusion, fliptext, flurry, glhanoi, glplanet, handsy, - hilbert, hypnowheel, jigsaw, juggler3d, klein, lament, menger, noof, - photopile, pinion, providence, rubik, rubikblocks, sballs, skytentacles, - sproingies, stairs, starwars, surfaces, tangram, timetunnel, tronbit, - unknownpleasures. + dangerball, deepstars, extrusion, fliptext, flurry, gravitywell, glhanoi, + glplanet, handsy, hilbert, hypnowheel, jigsaw, juggler3d, klein, lament, + menger, noof, photopile, pinion, providence, rubik, rubikblocks, sballs, + skytentacles, sproingies, stairs, starwars, surfaces, tangram, timetunnel, + tronbit, unknownpleasures. . More display modes can be found in the xscreensaver-data, xscreensaver-data-extra and xscreensaver-gl packages. diff -Nru xscreensaver-5.42+dfsg1/debian/copyright xscreensaver-5.45+dfsg1/debian/copyright --- xscreensaver-5.42+dfsg1/debian/copyright 2019-01-27 20:51:39.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/copyright 2021-06-14 23:21:52.000000000 +0000 @@ -8,11 +8,7 @@ Files-Excluded: OSX android Files: * - hacks/noseguy.* - hacks/hyperball.* -Copyright: 1991-2008 Jamie Zawinski - 1985-1990 Dan Heller - 2000 Joe Keane +Copyright: 1991-2020 Jamie Zawinski License: Other_1 Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that @@ -22,8 +18,32 @@ software for any purpose. It is provided "as is" without express or implied warranty. +Files: hacks/noseguy.* +Copyright: 1992-2018 Jamie Zawinski + 1985, 1990 Dan Heller +License: Other_1b + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. No representations are made about the suitability of this + software for any purpose. It is provided "as is" without express or + implied warranty. + +Files: hacks/hyperball.* hacks/hypercube.* +Copyright: 1992-2008 Jamie Zawinski + 2000 Joe Keane +License: Other_1c + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. No representations are made about the suitability of this + software for any purpose. It is provided "as is" without express or + implied warranty. + Files: hacks/flame.* hacks/bouboule.* hacks/hopalong.* -Copyright: © 1988-1991 Patrick J. Naughton +Copyright: 1988-1991 Patrick J. Naughton License: Other_2 Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, @@ -164,14 +184,14 @@ other special, indirect and consequential damages. Files: hacks/munch.* -Copyright: © 1997 Tim Showalter +Copyright: 1997 Tim Showalter License: Other_5 Permission is granted to copy, modify, and use this as long as this notice remains intact. No warranties are expressed or implied. CMU Sucks. Files: hacks/kumppa.* -Copyright: © 1998-2002 Teemu Suutari +Copyright: 1998-2002 Teemu Suutari License: X11 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -240,7 +260,7 @@ Files: hacks/glx/chessmodels.* Copyright: © 2006 John-Paul Gignac © 2002 Robert Ancell - © 2002 Michael Duelli + © 2002 Michael Duelli License: GPL-2+ 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 @@ -269,11 +289,11 @@ Files: debian/* Copyright: © 1996-2002 Larry Daffner © 2002 Colin Watson - © 2002-2005 Karl Ramm - © 2005-2007 Ralf Hildebrandt - © 2005-2007 Josselin Mouette - © 2007-2009 Jose Luis Rivas - © 2007-2012 Tormod Volden + © 2002-2005 Karl Ramm + © 2005-2007 Ralf Hildebrandt + © 2005-2007 Josselin Mouette + © 2007-2009 Jose Luis Rivas + © 2007-2012 Tormod Volden License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff -Nru xscreensaver-5.42+dfsg1/debian/patches/10_upstream_skip_retired_hacks.patch xscreensaver-5.45+dfsg1/debian/patches/10_upstream_skip_retired_hacks.patch --- xscreensaver-5.42+dfsg1/debian/patches/10_upstream_skip_retired_hacks.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/10_upstream_skip_retired_hacks.patch 2021-06-14 23:21:52.000000000 +0000 @@ -18,7 +18,7 @@ =================================================================== --- xscreensaver-git.orig/hacks/glx/Makefile.in +++ xscreensaver-git/hacks/glx/Makefile.in -@@ -276,7 +276,7 @@ TARFILES = $(SRCS) $(HDRS) $(GL_MEN) $(R +@@ -290,7 +290,7 @@ TARFILES = $(SRCS) $(HDRS) $(GL_MEN) $(R default: all diff -Nru xscreensaver-5.42+dfsg1/debian/patches/12_upstream_hurd-no-pthread_stack_min.patch xscreensaver-5.45+dfsg1/debian/patches/12_upstream_hurd-no-pthread_stack_min.patch --- xscreensaver-5.42+dfsg1/debian/patches/12_upstream_hurd-no-pthread_stack_min.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/12_upstream_hurd-no-pthread_stack_min.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -# -# Sent upstream (jwz) 2018-12-31 -# -# PTHREAD_STACK_MIN is not defined on GNU/Hurd -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823049 -# -Index: xscreensaver-git/utils/thread_util.c -=================================================================== ---- xscreensaver-git.orig/utils/thread_util.c 2016-05-07 23:25:54.144471652 +0200 -+++ xscreensaver-git/utils/thread_util.c 2016-05-07 23:27:27.668767526 +0200 -@@ -960,7 +960,7 @@ - attr_ptr = &attr; - if(pthread_attr_init(&attr)) - return NULL; --# if defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || defined _XOPEN_SOURCE -+# if (defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || defined _XOPEN_SOURCE) && !defined __GNU__ - /* PTHREAD_STACK_MIN needs the above test. */ - assert(stacksize >= PTHREAD_STACK_MIN); - # endif diff -Nru xscreensaver-5.42+dfsg1/debian/patches/12_upstream_man_beats_speereev_backslash.patch xscreensaver-5.45+dfsg1/debian/patches/12_upstream_man_beats_speereev_backslash.patch --- xscreensaver-5.42+dfsg1/debian/patches/12_upstream_man_beats_speereev_backslash.patch 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/12_upstream_man_beats_speereev_backslash.patch 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,31 @@ +From: Tormod Volden +Date: Sat Dec 19 17:23:14 2020 +0100 +Subject: [PATCH] man pages: Add backslash to section header separator +Forwarded: 2020-12-19 + +According to lexgrog(1) it is a good idea to retain the backslash. + +Index: xscreensaver-git/hacks/glx/beats.man +=================================================================== +--- xscreensaver-git.orig/hacks/glx/beats.man ++++ xscreensaver-git/hacks/glx/beats.man +@@ -1,6 +1,6 @@ + .TH XScreenSaver 1 "2020-Feb-04" "X Version 11" + .SH NAME +-beats - create offset beating figures ++beats \- create offset beating figures + .SH SYNOPSIS + .B beats + [\-display \fIhost:display.screen\fP] +Index: xscreensaver-git/hacks/glx/sphereeversion.man +=================================================================== +--- xscreensaver-git.orig/hacks/glx/sphereeversion.man ++++ xscreensaver-git/hacks/glx/sphereeversion.man +@@ -1,6 +1,6 @@ + .TH XScreenSaver 1 "" "X Version 11" + .SH NAME +-sphereeversion - Displays a sphere eversion. ++sphereeversion \- Displays a sphere eversion. + .SH SYNOPSIS + .B sphereeversion + [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/debian/patches/14_fix-updating-outputs-info.patch xscreensaver-5.45+dfsg1/debian/patches/14_fix-updating-outputs-info.patch --- xscreensaver-5.42+dfsg1/debian/patches/14_fix-updating-outputs-info.patch 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/14_fix-updating-outputs-info.patch 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,46 @@ +From c1e43f7fa01b7536bc90ad5a9b61c568f4db4dd1 Mon Sep 17 00:00:00 2001 +From: Marek Marczykowski-Górecki +Date: Tue, 18 May 2021 15:41:55 +0200 +Subject: [PATCH] Fix updating outputs info + +Taken from: +https://github.com/QubesOS/qubes-xscreensaver/blob/master/0001-Fix-updating-outputs-info.patch +Reference: +https://www.openwall.com/lists/oss-security/2021/06/05/2 +Note: Will be obsoleted by xscreensaver 6 + +When an output is disconnected, update_screen_layout() will try to unset +a property on window assigned to that output. It does that by iterating +si->screens up to 'count', while 'good_count' signifies how many outputs +are currently connected (good_count <= count). si->screens has few more +entries allocated (at start 10), but if there are more disconnected +outputs, the iteration will go beyond si->screens array. +The only out of bound access there is reading window ID to delete +property from, which in most cases will be a bogus number -> crashing +xscreensaver with BadWindow error. + +Fix this by allocating array up to full 'count' entries, even if much +fewer outputs are connected at the moment. +--- + driver/screens.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/driver/screens.c b/driver/screens.c +index 5aeb55d..16d6ec3 100644 +--- a/driver/screens.c ++++ b/driver/screens.c +@@ -1020,9 +1020,9 @@ update_screen_layout (saver_info *si) + calloc (sizeof(*si->screens), si->ssi_count); + } + +- if (si->ssi_count <= good_count) ++ if (si->ssi_count <= count) + { +- si->ssi_count = good_count + 10; ++ si->ssi_count = count; + si->screens = (saver_screen_info *) + realloc (si->screens, sizeof(*si->screens) * si->ssi_count); + memset (si->screens + si->nscreens, 0, +-- +2.31.1 + diff -Nru xscreensaver-5.42+dfsg1/debian/patches/14_upstream_cpp_comments.patch xscreensaver-5.45+dfsg1/debian/patches/14_upstream_cpp_comments.patch --- xscreensaver-5.42+dfsg1/debian/patches/14_upstream_cpp_comments.patch 2019-01-12 12:05:48.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/14_upstream_cpp_comments.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -# -# Sent upstream (jwz) 2018-12-31 -# - -Index: xscreensaver-git/hacks/fontglide.c -=================================================================== ---- xscreensaver-git.orig/hacks/fontglide.c -+++ xscreensaver-git/hacks/fontglide.c -@@ -2421,8 +2421,8 @@ fontglide_free (Display *dpy, Window win - - textclient_close (s->tc); - --// if (s->b && s->b != s->window) XFreePixmap (dpy, s->b); --// if (s->ba && s->ba != s->b) XFreePixmap (dpy, s->ba); -+/* if (s->b && s->b != s->window) XFreePixmap (dpy, s->b); */ -+/* if (s->ba && s->ba != s->b) XFreePixmap (dpy, s->ba); */ - XFreeGC (dpy, s->bg_gc); - if (s->charset) free (s->charset); - if (s->font_override) free (s->font_override); diff -Nru xscreensaver-5.42+dfsg1/debian/patches/20_skip_install-pam.patch xscreensaver-5.45+dfsg1/debian/patches/20_skip_install-pam.patch --- xscreensaver-5.42+dfsg1/debian/patches/20_skip_install-pam.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/20_skip_install-pam.patch 2021-06-14 23:21:52.000000000 +0000 @@ -5,7 +5,7 @@ =================================================================== --- xscreensaver-git.orig/driver/Makefile.in +++ xscreensaver-git/driver/Makefile.in -@@ -259,7 +259,7 @@ all: $(EXES) $(EXES2) +@@ -266,7 +266,7 @@ all: $(EXES) $(EXES2) tests: $(TEST_EXES) install: install-program install-ad install-scripts \ diff -Nru xscreensaver-5.42+dfsg1/debian/patches/21_driver_xscreensaver-getimage-video xscreensaver-5.45+dfsg1/debian/patches/21_driver_xscreensaver-getimage-video --- xscreensaver-5.42+dfsg1/debian/patches/21_driver_xscreensaver-getimage-video 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/21_driver_xscreensaver-getimage-video 2021-06-14 23:21:52.000000000 +0000 @@ -2,10 +2,8 @@ # Add yet another possible source for video # "streamer" can capture from a video4linux device # -Index: xscreensaver/driver/xscreensaver-getimage-video -=================================================================== ---- xscreensaver.orig/driver/xscreensaver-getimage-video 2013-11-23 16:16:12.000000000 +0100 -+++ xscreensaver/driver/xscreensaver-getimage-video 2013-11-23 16:16:12.000000000 +0100 +--- a/driver/xscreensaver-getimage-video ++++ b/driver/xscreensaver-getimage-video @@ -34,6 +34,8 @@ my $tmpdir = $ENV{TMPDIR} || "/tmp"; diff -Nru xscreensaver-5.42+dfsg1/debian/patches/22_hacks_barcode.patch xscreensaver-5.45+dfsg1/debian/patches/22_hacks_barcode.patch --- xscreensaver-5.42+dfsg1/debian/patches/22_hacks_barcode.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/22_hacks_barcode.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -# Parental Advisory :) -# Make the titles more innocent, for the small children using Debian - -Index: xscreensaver-git/hacks/barcode.c -=================================================================== ---- xscreensaver-git.orig/hacks/barcode.c 2016-05-28 19:05:42.729678148 +0200 -+++ xscreensaver-git/hacks/barcode.c 2016-05-28 19:05:42.729678148 +0200 -@@ -118,8 +118,6 @@ - "belly", - "bliss", - "bogosity", -- "boobies", -- "boobs", - "booty", - "bread", - "bubba", -@@ -132,7 +130,6 @@ - "children", - "chocolate", - "CLONE", -- "cock", - "constriction", - "contrition", - "cop", -@@ -172,7 +169,6 @@ - "fear", - "fever", - "filth", -- "flatulence", - "fluff", - "fnord", - "freedom", -@@ -189,10 +185,7 @@ - "happiness", - "hate", - "helplessness", -- "hemorrhoid", - "hermaphrodite", -- "heroin", -- "heroine", - "hope", - "hysteria", - "icepick", -@@ -266,7 +259,6 @@ - "punishment", - "punk rock", - "punk", -- "pussy", - "quagmire", - "quarantine", - "quartz", -@@ -334,8 +326,6 @@ - "vegetarian", - "venom", - "verifiability", -- "viagra", -- "vibrator", - "victim", - "vignette", - "villainy", diff -Nru xscreensaver-5.42+dfsg1/debian/patches/23_hacks_glx_glsnake.patch xscreensaver-5.45+dfsg1/debian/patches/23_hacks_glx_glsnake.patch --- xscreensaver-5.42+dfsg1/debian/patches/23_hacks_glx_glsnake.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/23_hacks_glx_glsnake.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -# Parental Advisory :) -# Make the titles more innocent, for the small children using Debian - -Index: xscreensaver-git/hacks/glx/glsnake.c -=================================================================== ---- xscreensaver-git.orig/hacks/glx/glsnake.c -+++ xscreensaver-git/hacks/glx/glsnake.c -@@ -539,7 +539,7 @@ static const struct model_s model[] = { - PIN, ZERO, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, - RIGHT, ZERO } - }, -- { "k's turd", -+ { "caterpillar", - { RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, - RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, - RIGHT, LEFT, RIGHT, PIN, ZERO } -@@ -564,22 +564,22 @@ static const struct model_s model[] = { - ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, - ZERO, ZERO, ZERO } - }, -- { "kissy box", -+ { "ribbon", - { PIN, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, - ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, - ZERO, PIN, ZERO } - }, -- { "erect penis", /* thanks benno */ -+ { "shuffle board", /* thanks benno */ - { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN, - PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, - ZERO, ZERO } - }, -- { "flaccid penis", -+ { "anchor", - { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN, - PIN, ZERO, ZERO, ZERO, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, - ZERO, ZERO } - }, -- { "vagina", -+ { "engagement ring", - { RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, - LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, - PIN, RIGHT, ZERO } -@@ -999,7 +999,7 @@ static const struct model_s model[] = { - { "Parrot", - { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO } - }, -- { "Penis", -+ { "Shuttle", - { PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN, ZERO } - }, - { "PictureComingSoon", diff -Nru xscreensaver-5.42+dfsg1/debian/patches/50_debian_branding.patch xscreensaver-5.45+dfsg1/debian/patches/50_debian_branding.patch --- xscreensaver-5.42+dfsg1/debian/patches/50_debian_branding.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/50_debian_branding.patch 2021-06-14 23:21:52.000000000 +0000 @@ -1,10 +1,8 @@ # # "Branding", show Planet Debian posts instead of Wikipedia pages # -Index: xscreensaver/driver/XScreenSaver.ad.in -=================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2014-10-07 22:48:41.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2014-10-07 22:48:41.000000000 +0200 +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in @@ -59,11 +59,11 @@ *ignoreUninstalledPrograms: False *authWarningSlack: 20 @@ -17,5 +15,5 @@ -*textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss +*textURL: https://planet.debian.org/rss20.xml - *overlayTextForeground: #FFFF00 - *overlayTextBackground: #000000 + ! When a saver writes an error message to stdout/stderr, it can be printed + ! on the screen. diff -Nru xscreensaver-5.42+dfsg1/debian/patches/51_generalize_external_commands.patch xscreensaver-5.45+dfsg1/debian/patches/51_generalize_external_commands.patch --- xscreensaver-5.42+dfsg1/debian/patches/51_generalize_external_commands.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/51_generalize_external_commands.patch 2021-06-14 23:21:52.000000000 +0000 @@ -1,11 +1,9 @@ # # Use yelp or any installed terminal to display man pages # -Index: xscreensaver/driver/XScreenSaver.ad.in -=================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2014-10-07 22:48:46.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2014-10-07 22:48:46.000000000 +0200 -@@ -99,9 +99,13 @@ +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in +@@ -100,9 +100,13 @@ ! ! Gnome 2.4, 2.6: (yelp can't display man pages, as of 2.6.3) ! @@ -22,7 +20,7 @@ ! ! Gnome 2.2: ! -@@ -116,9 +120,11 @@ +@@ -117,9 +121,11 @@ ! ! non-Gnome systems: ! diff -Nru xscreensaver-5.42+dfsg1/debian/patches/52_standard_time_format.patch xscreensaver-5.45+dfsg1/debian/patches/52_standard_time_format.patch --- xscreensaver-5.42+dfsg1/debian/patches/52_standard_time_format.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/52_standard_time_format.patch 2021-06-14 23:21:52.000000000 +0000 @@ -1,11 +1,9 @@ # # Use standard (ISO) date and time format # -Index: xscreensaver/driver/XScreenSaver.ad.in -=================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2014-10-07 22:48:53.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2014-10-07 22:48:53.000000000 +0200 -@@ -129,7 +129,9 @@ +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in +@@ -130,7 +130,9 @@ ! The format used for printing the date and time in the password dialog box ! (see the strftime(3) manual page for details.) @@ -13,6 +11,6 @@ +*dateFormat: %Y-%m-%d %H:%M:%S +! Original upstream format +! *dateFormat: %d-%b-%y (%a); %I:%M %p + ! For day month date: + ! *dateFormat: %a %b %d, %I:%M %p ! To show the time only: - ! *dateFormat: %I:%M %p - ! For 24 hour time: diff -Nru xscreensaver-5.42+dfsg1/debian/patches/53_default_newLoginCommand.patch xscreensaver-5.45+dfsg1/debian/patches/53_default_newLoginCommand.patch --- xscreensaver-5.42+dfsg1/debian/patches/53_default_newLoginCommand.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/53_default_newLoginCommand.patch 2021-06-14 23:21:52.000000000 +0000 @@ -5,18 +5,18 @@ # We also offer the intermediate band-aid solution of # /usr/share/xscreensaver/xscreensaver-wrapper.sh # -Index: xscreensaver/driver/XScreenSaver.ad.in +Index: xscreensaver-git/driver/XScreenSaver.ad.in =================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2015-07-19 11:29:34.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2015-07-19 11:29:34.000000000 +0200 -@@ -144,7 +144,9 @@ +--- xscreensaver-git.orig/driver/XScreenSaver.ad.in ++++ xscreensaver-git/driver/XScreenSaver.ad.in +@@ -147,7 +147,9 @@ ! Or maybe yet another wheel-reinvention, "lxdm -c USER_SWITCH". ! Oh wait, this wheel just keeps getting better: "dm-tool switch-to-greeter". ! -@NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@ +! @NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@ -+! Debian: Hard-wire the command in case the build machine does not have gdm -+*newLoginCommand: gdmflexiserver -ls ++! Debian: Hard-wire the command since the build cannot autodetect ++*newLoginCommand: dm-tool switch-to-greeter - ! Turning on "installColormap" on 8-bit systems interacts erratically with + ! Change these at your peril: diff -Nru xscreensaver-5.42+dfsg1/debian/patches/54_no_dnalogo_hack.patch xscreensaver-5.45+dfsg1/debian/patches/54_no_dnalogo_hack.patch --- xscreensaver-5.42+dfsg1/debian/patches/54_no_dnalogo_hack.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/54_no_dnalogo_hack.patch 2021-06-14 23:21:52.000000000 +0000 @@ -1,11 +1,9 @@ # # This hack is not built by default, and we are not shipping it either # -Index: xscreensaver/driver/XScreenSaver.ad.in -=================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2015-07-19 11:29:38.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2015-07-19 11:29:38.000000000 +0200 -@@ -263,7 +263,6 @@ +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in +@@ -448,7 +448,6 @@ xspirograph -root \n\ @GL_KLUDGE@ GL: circuit -root \n\ @GL_KLUDGE@ GL: dangerball -root \n\ diff -Nru xscreensaver-5.42+dfsg1/debian/patches/55_add_unicode_hack.patch xscreensaver-5.45+dfsg1/debian/patches/55_add_unicode_hack.patch --- xscreensaver-5.42+dfsg1/debian/patches/55_add_unicode_hack.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/55_add_unicode_hack.patch 2021-06-14 23:21:52.000000000 +0000 @@ -2,11 +2,9 @@ # This program is from the "unicode" package, just added here # as a convenience. See bug #560184 # -Index: xscreensaver/driver/XScreenSaver.ad.in -=================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2015-07-19 11:29:42.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2015-07-19 11:29:42.000000000 +0200 -@@ -196,6 +196,7 @@ +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in +@@ -381,6 +381,7 @@ goop -root \n\ grav -root \n\ ifs -root \n\ diff -Nru xscreensaver-5.42+dfsg1/debian/patches/56_password_dialog_reworded.patch xscreensaver-5.45+dfsg1/debian/patches/56_password_dialog_reworded.patch --- xscreensaver-5.42+dfsg1/debian/patches/56_password_dialog_reworded.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/56_password_dialog_reworded.patch 2021-06-14 23:21:52.000000000 +0000 @@ -5,9 +5,9 @@ =================================================================== --- xscreensaver-git.orig/driver/XScreenSaver.ad.in +++ xscreensaver-git/driver/XScreenSaver.ad.in -@@ -451,10 +451,11 @@ XScreenSaver.bourneShell: /bin/sh - *Dialog.shadowThickness: 2 - +@@ -327,10 +327,11 @@ XScreenSaver.bourneShell: /bin/sh + ! Static text in the dialog boxes: + ! *passwd.heading.label: XScreenSaver %s -*passwd.body.label: This screen is locked. +*passwd.body.label: Please enter your password. @@ -15,6 +15,6 @@ *passwd.login.label: New Login *passwd.user.label: Username: +*passwd.passwd.label: Password: - *passwd.thermometer.width: 8 - *passwd.asterisks: True - *passwd.uname: True + + *splash.heading.label: XScreenSaver %s + *splash.body.label: Copyright \251 1991-2020 by diff -Nru xscreensaver-5.42+dfsg1/debian/patches/57_grabDesktopImages_default_off.patch xscreensaver-5.45+dfsg1/debian/patches/57_grabDesktopImages_default_off.patch --- xscreensaver-5.42+dfsg1/debian/patches/57_grabDesktopImages_default_off.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/57_grabDesktopImages_default_off.patch 2021-06-14 23:21:52.000000000 +0000 @@ -1,10 +1,8 @@ # # Bug #679974: xscreensaver-data: disable hacks that reveal the desktop # -Index: xscreensaver/driver/XScreenSaver.ad.in -=================================================================== ---- xscreensaver.orig/driver/XScreenSaver.ad.in 2012-10-18 22:57:01.000000000 +0200 -+++ xscreensaver/driver/XScreenSaver.ad.in 2012-10-18 22:58:52.000000000 +0200 +--- a/driver/XScreenSaver.ad.in ++++ b/driver/XScreenSaver.ad.in @@ -38,7 +38,7 @@ *dpmsStandby: 2:00:00 *dpmsSuspend: 2:00:00 diff -Nru xscreensaver-5.42+dfsg1/debian/patches/75_Makefile_in-ignore-alien-platforms.patch xscreensaver-5.45+dfsg1/debian/patches/75_Makefile_in-ignore-alien-platforms.patch --- xscreensaver-5.42+dfsg1/debian/patches/75_Makefile_in-ignore-alien-platforms.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/75_Makefile_in-ignore-alien-platforms.patch 2021-06-14 23:21:52.000000000 +0000 @@ -4,14 +4,14 @@ # Index: xscreensaver-git/Makefile.in =================================================================== ---- xscreensaver-git.orig/Makefile.in 2016-12-11 15:04:10.000000000 +0100 -+++ xscreensaver-git/Makefile.in 2016-12-11 15:05:25.734072018 +0100 -@@ -7,7 +7,7 @@ +--- xscreensaver-git.orig/Makefile.in ++++ xscreensaver-git/Makefile.in +@@ -7,7 +7,7 @@ VPATH = @srcdir@ SHELL = /bin/sh SUBDIRS = utils jwxyz hacks/images hacks hacks/glx driver po -SUBDIRS2 = $(SUBDIRS) OSX android +SUBDIRS2 = $(SUBDIRS) TARFILES = README README.hacking README.VMS INSTALL \ - configure configure.in Makefile.in config.h.in \ + configure configure.ac Makefile.in config.h.in \ config.h-vms install-sh setup.com config.guess aclocal.m4 \ diff -Nru xscreensaver-5.42+dfsg1/debian/patches/80_Makefile_in-clean-fix.patch xscreensaver-5.45+dfsg1/debian/patches/80_Makefile_in-clean-fix.patch --- xscreensaver-5.42+dfsg1/debian/patches/80_Makefile_in-clean-fix.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/80_Makefile_in-clean-fix.patch 2021-06-14 23:21:52.000000000 +0000 @@ -5,11 +5,9 @@ # Makefile target, so clean the subdirs first # This is maybe another autoconf 2.64 problem # -Index: xscreensaver/Makefile.in -=================================================================== ---- xscreensaver.orig/Makefile.in 2015-06-18 21:55:28.000000000 +0200 -+++ xscreensaver/Makefile.in 2015-06-18 21:55:28.000000000 +0200 -@@ -54,8 +54,8 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -57,8 +57,8 @@ @$(MAKE_SUBDIR2) distclean:: clean diff -Nru xscreensaver-5.42+dfsg1/debian/patches/81_hacks_deterministic_file_order.patch xscreensaver-5.45+dfsg1/debian/patches/81_hacks_deterministic_file_order.patch --- xscreensaver-5.42+dfsg1/debian/patches/81_hacks_deterministic_file_order.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/81_hacks_deterministic_file_order.patch 2021-06-14 23:21:52.000000000 +0000 @@ -5,7 +5,7 @@ =================================================================== --- xscreensaver-git.orig/hacks/Makefile.in +++ xscreensaver-git/hacks/Makefile.in -@@ -873,8 +873,8 @@ cwaves: cwaves.o $(HACK_OBJS) $(COL) +@@ -875,8 +875,8 @@ cwaves: cwaves.o $(HACK_OBJS) $(COL) m6502.h: @echo "building m6502.h from $(srcdir)/images/m6502/*.asm"; \ diff -Nru xscreensaver-5.42+dfsg1/debian/patches/90_remove_Easter_egg_about_version.patch xscreensaver-5.45+dfsg1/debian/patches/90_remove_Easter_egg_about_version.patch --- xscreensaver-5.42+dfsg1/debian/patches/90_remove_Easter_egg_about_version.patch 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/90_remove_Easter_egg_about_version.patch 2021-06-14 23:21:52.000000000 +0000 @@ -3,9 +3,9 @@ # Index: xscreensaver-git/driver/prefs.c =================================================================== ---- xscreensaver-git.orig/driver/prefs.c 2016-05-28 19:06:12.441676714 +0200 -+++ xscreensaver-git/driver/prefs.c 2016-05-28 19:06:12.437676714 +0200 -@@ -1736,6 +1736,8 @@ +--- xscreensaver-git.orig/driver/prefs.c ++++ xscreensaver-git/driver/prefs.c +@@ -1743,6 +1743,8 @@ senesculent_p (void) everyone involved, most especially the users. */ diff -Nru xscreensaver-5.42+dfsg1/debian/patches/90_ubuntu-branding.patch xscreensaver-5.45+dfsg1/debian/patches/90_ubuntu-branding.patch --- xscreensaver-5.42+dfsg1/debian/patches/90_ubuntu-branding.patch 2018-07-20 11:44:14.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/90_ubuntu-branding.patch 2021-06-14 23:21:52.000000000 +0000 @@ -1,5 +1,7 @@ ---- a/driver/XScreenSaver.ad.in -+++ b/driver/XScreenSaver.ad.in +Index: xscreensaver-5.45+dfsg1/driver/XScreenSaver.ad.in +=================================================================== +--- xscreensaver-5.45+dfsg1.orig/driver/XScreenSaver.ad.in ++++ xscreensaver-5.45+dfsg1/driver/XScreenSaver.ad.in @@ -63,7 +63,7 @@ *textLiteral: XScreenSaver *textFile: @DEFAULT_TEXT_FILE@ @@ -7,5 +9,5 @@ -*textURL: https://planet.debian.org/rss20.xml +*textURL: https://feeds.feedburner.com/ubuntu-news - *overlayTextForeground: #FFFF00 - *overlayTextBackground: #000000 + ! When a saver writes an error message to stdout/stderr, it can be printed + ! on the screen. diff -Nru xscreensaver-5.42+dfsg1/debian/patches/91_allow_cross_compilation.patch xscreensaver-5.45+dfsg1/debian/patches/91_allow_cross_compilation.patch --- xscreensaver-5.42+dfsg1/debian/patches/91_allow_cross_compilation.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/91_allow_cross_compilation.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -From: Helmut Grohne -Subject: fix cross compilation - -AC_TRY_RUN fails during cross compilation. We can expect any compiler to just -work, so discard the test. - -Consider $ac_tool_prefix for pkg-config by using PKG_PROG_PKG_CONFIG. - -Debian bug #873106. - -Index: xscreensaver-git/configure.in -=================================================================== ---- xscreensaver-git.orig/configure.in -+++ xscreensaver-git/configure.in -@@ -427,13 +427,6 @@ AC_DEFUN([AC_PROG_CC_ANSI], - - OBJCC="$CC" - -- AC_MSG_CHECKING([whether the compiler works on ANSI C]) -- AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], -- AC_MSG_RESULT(yes), -- AC_MSG_RESULT(no) -- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), -- AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) -- - if test -n "$GCC"; then - AC_MSG_RESULT(Turning on gcc compiler warnings.) - CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes" -@@ -2670,11 +2663,13 @@ if test ! -z "$gtk_dir"; then - gtk_path="$foo:$gtk_path" - fi - --AC_PATH_PROGS(pkg_config, pkg-config,, $gtk_path) -+PKG_PROG_PKG_CONFIG - --if test -z "$pkg_config" ; then -+if test -z "$PKG_CONFIG" ; then - AC_MSG_WARN([pkg-config not found!]) - pkg_config="false" -+else -+ pkg_config=$PKG_CONFIG - fi - - diff -Nru xscreensaver-5.42+dfsg1/debian/patches/92_hacks_images_distclean.patch xscreensaver-5.45+dfsg1/debian/patches/92_hacks_images_distclean.patch --- xscreensaver-5.42+dfsg1/debian/patches/92_hacks_images_distclean.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/92_hacks_images_distclean.patch 2021-06-14 23:21:52.000000000 +0000 @@ -5,7 +5,7 @@ =================================================================== --- xscreensaver-git.orig/hacks/images/Makefile +++ xscreensaver-git/hacks/images/Makefile -@@ -52,3 +52,4 @@ uninstall-man: +@@ -53,3 +53,4 @@ uninstall-man: depend: distdepend: tags: diff -Nru xscreensaver-5.42+dfsg1/debian/patches/93_driver_distclean.patch xscreensaver-5.45+dfsg1/debian/patches/93_driver_distclean.patch --- xscreensaver-5.42+dfsg1/debian/patches/93_driver_distclean.patch 2019-01-12 12:05:19.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/93_driver_distclean.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -# -# Remove autogenerated files -# -Index: xscreensaver-git/driver/Makefile.in -=================================================================== ---- xscreensaver-git.orig/driver/Makefile.in -+++ xscreensaver-git/driver/Makefile.in -@@ -627,6 +627,7 @@ clean: - - distclean: clean - -rm -f Makefile XScreenSaver.ad \ -+ driver/xscreensaver-demo.glade2 driver/xscreensaver.pam.in \ - TAGS *~ "#"* screensaver-properties.desktop - - # Adds all current dependencies to Makefile diff -Nru xscreensaver-5.42+dfsg1/debian/patches/94_cpu_usage_verbose.patch xscreensaver-5.45+dfsg1/debian/patches/94_cpu_usage_verbose.patch --- xscreensaver-5.42+dfsg1/debian/patches/94_cpu_usage_verbose.patch 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/94_cpu_usage_verbose.patch 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,16 @@ +# +# Adds cpu time statistics to verbose output +# +Index: xscreensaver-git/driver/subprocs.c +=================================================================== +--- xscreensaver-git.orig/driver/subprocs.c ++++ xscreensaver-git/driver/subprocs.c +@@ -14,6 +14,8 @@ + # include "config.h" + #endif + ++#define LOG_CPU_TIME 1 ++ + #include + #include + #include diff -Nru xscreensaver-5.42+dfsg1/debian/patches/series xscreensaver-5.45+dfsg1/debian/patches/series --- xscreensaver-5.42+dfsg1/debian/patches/series 2019-01-12 12:07:06.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/patches/series 2021-06-14 23:21:52.000000000 +0000 @@ -1,11 +1,9 @@ 10_upstream_skip_retired_hacks.patch -12_upstream_hurd-no-pthread_stack_min.patch -14_upstream_cpp_comments.patch +12_upstream_man_beats_speereev_backslash.patch +14_fix-updating-outputs-info.patch 20_hacks_man_section.patch 20_skip_install-pam.patch 21_driver_xscreensaver-getimage-video -22_hacks_barcode.patch -23_hacks_glx_glsnake.patch # These two go together # ... but don't apply to 5.40 so: skipped. @@ -26,7 +24,9 @@ 80_Makefile_in-clean-fix.patch 81_hacks_deterministic_file_order.patch 90_remove_Easter_egg_about_version.patch -91_allow_cross_compilation.patch 92_hacks_images_distclean.patch -93_driver_distclean.patch + +# For benchmarking of cpu usage +94_cpu_usage_verbose.patch + 90_ubuntu-branding.patch diff -Nru xscreensaver-5.42+dfsg1/debian/README.Debian xscreensaver-5.45+dfsg1/debian/README.Debian --- xscreensaver-5.42+dfsg1/debian/README.Debian 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/README.Debian 2021-06-14 23:21:52.000000000 +0000 @@ -29,3 +29,4 @@ To have xscreensaver started by systemd, the user can run: systemctl --user enable xscreensaver +However, the is not recommended due to several issues. diff -Nru xscreensaver-5.42+dfsg1/debian/README.source xscreensaver-5.45+dfsg1/debian/README.source --- xscreensaver-5.42+dfsg1/debian/README.source 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/README.source 2021-06-14 23:21:52.000000000 +0000 @@ -1,3 +1,11 @@ -This package uses quilt as patch system. +This package uses quilt as patch system. Please, refer to +/usr/share/doc/quilt/README.source for more about adding, removing or +updating the patches on this package. -Please, refer to /usr/share/doc/quilt/README.source for more about adding, removing or updating the patches on this package. +Also, "dpkg-source --commit" might work well for adding smaller fixes. + +To incorporate new upstream releases: gbp import-orig --uscan + +To generate desktop files for new hacks, use debian/screensavers-desktop-qa.sh + +This package is uploaded using dgit, please consider using it for your uploads. diff -Nru xscreensaver-5.42+dfsg1/debian/rules xscreensaver-5.45+dfsg1/debian/rules --- xscreensaver-5.42+dfsg1/debian/rules 2018-07-20 11:35:46.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/rules 2021-06-14 23:21:52.000000000 +0000 @@ -11,18 +11,11 @@ # Includes hardening compile options export DEB_BUILD_MAINT_OPTIONS = hardening=+all -DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/buildflags.mk -export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - -build: build-arch build-indep -build-arch: build-stamp -build-indep: build-stamp -build-stamp: - dh_testdir +%: + dh $@ +override_dh_auto_configure: # Generate POT file for translators cd po && intltool-update --verbose -p && cd .. @@ -33,70 +26,40 @@ [ -f driver/XScreenSaver_Xm_ad.h.upstream ] || \ [ ! -f driver/XScreenSaver_Xm_ad.h ] || \ mv driver/XScreenSaver_Xm_ad.h driver/XScreenSaver_Xm_ad.h.upstream - - # Configs files will be updated, so preserve originals - [ -f config.sub.upstream ] || \ - mv config.sub config.sub.upstream && \ - cp /usr/share/misc/config.sub config.sub - [ -f config.guess.upstream ] || \ - mv config.guess config.guess.upstream && \ - cp /usr/share/misc/config.guess config.guess - - dh_autoreconf - # Configure for xscreensaver - ./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \ - --prefix=/usr \ + dh_auto_configure -- \ --with-image-directory=/usr/share/backgrounds \ --without-gl --with-pam --with-gtk --without-kerberos \ - --with-hackdir=/usr/lib/xscreensaver \ + --without-shadow \ + --with-hackdir=/usr/libexec/xscreensaver \ --with-configdir=/usr/share/xscreensaver/config \ - --mandir=/usr/share/man --with-login-manager \ - --with-x-app-defaults=/etc/X11/app-defaults \ + --with-login-manager \ + --with-app-defaults=/etc/X11/app-defaults \ --with-proc-interrupts cp driver/XScreenSaver.ad driver/XScreenSaver.ad-nogl # Configure for xscreensaver-gl - ./configure --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) \ - --prefix=/usr \ + dh_auto_configure -- \ --with-image-directory=/usr/share/backgrounds \ --with-gl --with-pam --with-gtk --without-kerberos \ - --with-hackdir=/usr/lib/xscreensaver \ + --without-shadow \ + --with-hackdir=/usr/libexec/xscreensaver \ --with-configdir=/usr/share/xscreensaver/config \ - --mandir=/usr/share/man --with-login-manager \ - --with-x-app-defaults=/etc/X11/app-defaults \ + --with-login-manager \ + --with-app-defaults=/etc/X11/app-defaults \ --with-proc-interrupts - $(MAKE) - touch build-stamp -clean: - dh_testdir +override_dh_auto_clean: [ ! -f Makefile ] || $(MAKE) distclean - rm -f config.log config.h - rm -rf driver/XScreenSaver.ad-nogl - rm -f debian/xscreensaver*.install - rm -f debian/xscreensaver*.manpages - rm -f po/.intltool-merge-cache - [ ! -f config.sub.upstream ] || mv config.sub.upstream config.sub - [ ! -f config.guess.upstream ] || mv config.guess.upstream config.guess [ ! -f driver/XScreenSaver_ad.h.upstream ] || \ mv driver/XScreenSaver_ad.h.upstream driver/XScreenSaver_ad.h [ ! -f driver/XScreenSaver_Xm_ad.h.upstream ] || \ mv driver/XScreenSaver_Xm_ad.h.upstream driver/XScreenSaver_Xm_ad.h - dh_autoreconf_clean - dh_clean - -binary-indep: build -# Nothing to do here + dh_auto_clean -binary-arch: build - dh_testdir - dh_testroot - dh_prep - $(MAKE) install_prefix=$(CURDIR)/debian/tmp \ - GTK_DATADIR=/usr/share KDEDIR=/usr install - dh_installdirs -a - dh_installdocs -a - dh_installchangelogs -a +override_dh_auto_install: + ln -sf README NEWS + dh_auto_install -- install_prefix=$(CURDIR)/debian/tmp \ + GTK_DATADIR=/usr/share KDEDIR=/usr # Add translation domain to .desktop files DOMAIN=$$(grep --max-count 1 '^GETTEXT_PACKAGE[[:space:]]*=' $(CURDIR)/po/Makefile | sed 's/^.*=[[:space:]]\([^[:space:]]\)/\1/'); \ @@ -115,27 +78,17 @@ debian/tmp/usr/share/man/man1/xscreensaver-gl-helper.1 # Change man header section from 6 to 1 sed -i '1s/6x/1/' debian/tmp/usr/share/man/man1/xscreensaver-gl-helper.1 - sh debian/split-hacks.sh - dh_install -a - chmod +x debian/xscreensaver/usr/share/xscreensaver/xscreensaver-wrapper.sh - dh_installman -a - dh_installpam -a - dh_installmenu -a + debian/split-hacks.sh + # Not built on kfreebsd and hurd + [ -e debian/tmp/usr/bin/xscreensaver-systemd ] && { \ + echo "usr/bin/xscreensaver-systemd" ; \ + echo "usr/share/man/man1/xscreensaver-systemd.1" ; \ + } >> debian/xscreensaver.install # Install app-defaults to proper places - mv debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver \ + mv debian/tmp/etc/X11/app-defaults/XScreenSaver \ debian/xscreensaver-gl/etc/X11/app-defaults/XScreenSaver-gl - install -m 644 -o root -g root driver/XScreenSaver.ad-nogl \ + install -D -m 644 driver/XScreenSaver.ad-nogl \ debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver-nogl - dh_link -a - dh_strip -a - dh_compress -a - dh_fixperms -a - dh_installdeb -a - dh_shlibdeps -a - dh_gencontrol -a - dh_md5sums -a - dh_builddeb -a - -binary: binary-indep binary-arch -.PHONY: binary binary-arch binary-indep clean +override_dh_installsystemduser: + dh_installsystemduser --no-enable diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/abstractile.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/abstractile.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/abstractile.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/abstractile.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Abstractile -Exec=/usr/lib/xscreensaver/abstractile -root -TryExec=/usr/lib/xscreensaver/abstractile +Exec=/usr/libexec/xscreensaver/abstractile -root +TryExec=/usr/libexec/xscreensaver/abstractile Comment=Generates mosaic patterns of interlocking tiles. Written by Steve Sundstrom. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/anemone.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/anemone.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/anemone.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/anemone.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Anemone -Exec=/usr/lib/xscreensaver/anemone -root -TryExec=/usr/lib/xscreensaver/anemone +Exec=/usr/libexec/xscreensaver/anemone -root +TryExec=/usr/libexec/xscreensaver/anemone Comment=Wiggling tentacles. Written by Gabriel Finch. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/anemotaxis.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/anemotaxis.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/anemotaxis.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/anemotaxis.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Anemotaxis -Exec=/usr/lib/xscreensaver/anemotaxis -root -TryExec=/usr/lib/xscreensaver/anemotaxis +Exec=/usr/libexec/xscreensaver/anemotaxis -root +TryExec=/usr/libexec/xscreensaver/anemotaxis Comment=Anemotaxis demonstrates a search algorithm designed for locating a source of odor in turbulent atmosphere. The searcher is able to sense the odor and determine local instantaneous wind direction. The goal is to find the source in the shortest mean time. http://en.wikipedia.org/wiki/Anemotaxis Written by Eugene Balkovsky. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ant.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ant.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ant.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ant.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - -[Desktop Entry] -Name=Ant -Exec=/usr/lib/xscreensaver/ant -root -TryExec=/usr/lib/xscreensaver/ant -Comment=A cellular automaton that is really a two-dimensional Turing machine: as the heads ("ants") walk along the screen, they change pixel values in their path. Then, as they pass over changed pixels, their behavior is influenced. http://en.wikipedia.org/wiki/Langton%27s_ant http://en.wikipedia.org/wiki/Turing_machine Written by David Bagley. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/antinspect.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/antinspect.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/antinspect.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/antinspect.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=AntInspect -Exec=/usr/lib/xscreensaver/antinspect -root -TryExec=/usr/lib/xscreensaver/antinspect +Exec=/usr/libexec/xscreensaver/antinspect -root +TryExec=/usr/libexec/xscreensaver/antinspect Comment=Draws a trio of ants moving their spheres around a circle. Written by Blair Tennessy. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/antmaze.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/antmaze.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/antmaze.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/antmaze.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=AntMaze -Exec=/usr/lib/xscreensaver/antmaze -root -TryExec=/usr/lib/xscreensaver/antmaze +Exec=/usr/libexec/xscreensaver/antmaze -root +TryExec=/usr/libexec/xscreensaver/antmaze Comment=Draws a few views of a few ants walking around in a simple maze. Written by Blair Tennessy. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/antspotlight.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/antspotlight.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/antspotlight.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/antspotlight.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=AntSpotlight -Exec=/usr/lib/xscreensaver/antspotlight -root -TryExec=/usr/lib/xscreensaver/antspotlight +Exec=/usr/libexec/xscreensaver/antspotlight -root +TryExec=/usr/libexec/xscreensaver/antspotlight Comment=Draws an ant (with a headlight) who walks on top of an image of your desktop or other image. Written by Blair Tennessy. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/apollonian.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/apollonian.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/apollonian.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/apollonian.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Apollonian -Exec=/usr/lib/xscreensaver/apollonian -root -TryExec=/usr/lib/xscreensaver/apollonian +Exec=/usr/libexec/xscreensaver/apollonian -root +TryExec=/usr/libexec/xscreensaver/apollonian Comment=Draws an Apollonian gasket: a fractal packing of circles with smaller circles, demonstrating Descartes's theorem. http://en.wikipedia.org/wiki/Apollonian_gasket http://en.wikipedia.org/wiki/Descartes%27_theorem Written by Allan R. Wilks and David Bagley. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/apple2.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/apple2.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/apple2.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/apple2.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Apple2 -Exec=/usr/lib/xscreensaver/apple2 -root -TryExec=/usr/lib/xscreensaver/apple2 +Exec=/usr/libexec/xscreensaver/apple2 -root +TryExec=/usr/libexec/xscreensaver/apple2 Comment=Simulates an original Apple ][ Plus computer in all its 1979 glory. It also reproduces the appearance of display on a color television set of the period. In "Basic Programming Mode", a simulated user types in a BASIC program and runs it. In "Text Mode", it displays the output of a program, or the contents of a file or URL. In "Slideshow Mode", it chooses random images and displays them within the limitations of the Apple ][ display hardware. (Six available colors in hi-res mode!) On X11 systems, This program is also a fully-functional VT100 emulator. http://en.wikipedia.org/wiki/Apple_II_series Written by Trevor Blackwell. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/atlantis.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/atlantis.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/atlantis.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/atlantis.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Atlantis -Exec=/usr/lib/xscreensaver/atlantis -root -TryExec=/usr/lib/xscreensaver/atlantis +Exec=/usr/libexec/xscreensaver/atlantis -root +TryExec=/usr/libexec/xscreensaver/atlantis Comment=A 3D animation of a number of sharks, dolphins, and whales. Written by Mark Kilgard. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/attraction.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/attraction.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/attraction.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/attraction.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Attraction -Exec=/usr/lib/xscreensaver/attraction -root -TryExec=/usr/lib/xscreensaver/attraction +Exec=/usr/libexec/xscreensaver/attraction -root +TryExec=/usr/libexec/xscreensaver/attraction Comment=Uses a simple simple motion model to generate many different display modes. The control points attract each other up to a certain distance, and then begin to repel each other. The attraction/repulsion is proportional to the distance between any two particles, similar to the strong and weak nuclear forces. Written by Jamie Zawinski and John Pezaris. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/atunnel.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/atunnel.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/atunnel.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/atunnel.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Atunnel -Exec=/usr/lib/xscreensaver/atunnel -root -TryExec=/usr/lib/xscreensaver/atunnel +Exec=/usr/libexec/xscreensaver/atunnel -root +TryExec=/usr/libexec/xscreensaver/atunnel Comment=Draws an animation of a textured tunnel in GL. Written by Eric Lassauge and Roman Podobedov. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/barcode.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/barcode.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/barcode.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/barcode.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Barcode -Exec=/usr/lib/xscreensaver/barcode -root -TryExec=/usr/lib/xscreensaver/barcode +Exec=/usr/libexec/xscreensaver/barcode -root +TryExec=/usr/libexec/xscreensaver/barcode Comment=Draws a random sequence of colorful barcodes scrolling across your screen. CONSUME! The barcodes follow the UPC-A, UPC-E, EAN-8 or EAN-13 standards. http://en.wikipedia.org/wiki/Universal_Product_Code http://en.wikipedia.org/wiki/European_Article_Number Written by Dan Bornstein. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/beats.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/beats.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/beats.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/beats.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=Beats +Exec=/usr/libexec/xscreensaver/beats -root +TryExec=/usr/libexec/xscreensaver/beats +Comment=Draws figures that move around at a slightly different rate from each other, creating interesting chaotic and ordered patterns. Written by David Eccles. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/binaryring.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/binaryring.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/binaryring.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/binaryring.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BinaryRing -Exec=/usr/lib/xscreensaver/binaryring -root -TryExec=/usr/lib/xscreensaver/binaryring +Exec=/usr/libexec/xscreensaver/binaryring -root +TryExec=/usr/libexec/xscreensaver/binaryring Comment=A system of path tracing particles evolves continuously from an initial creation, alternating dark and light colors. Written by J. Tarbell and Emilio Del Tessandoro. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blaster.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blaster.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blaster.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blaster.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Blaster -Exec=/usr/lib/xscreensaver/blaster -root -TryExec=/usr/lib/xscreensaver/blaster +Exec=/usr/libexec/xscreensaver/blaster -root +TryExec=/usr/libexec/xscreensaver/blaster Comment=Draws a simulation of flying space-combat robots (cleverly disguised as colored circles) doing battle in front of a moving star field. Written by Jonathan Lin. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blinkbox.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blinkbox.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blinkbox.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blinkbox.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BlinkBox -Exec=/usr/lib/xscreensaver/blinkbox -root -TryExec=/usr/lib/xscreensaver/blinkbox +Exec=/usr/libexec/xscreensaver/blinkbox -root +TryExec=/usr/libexec/xscreensaver/blinkbox Comment=Shows a ball contained inside of a bounding box. Colored blocks blink in when the ball hits the sides. Written by Jeremy English. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blitspin.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blitspin.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blitspin.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blitspin.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BlitSpin -Exec=/usr/lib/xscreensaver/blitspin -root -TryExec=/usr/lib/xscreensaver/blitspin +Exec=/usr/libexec/xscreensaver/blitspin -root +TryExec=/usr/libexec/xscreensaver/blitspin Comment=Repeatedly rotates a bitmap by 90 degrees by using logical operations: the bitmap is divided into quadrants, and the quadrants are shifted clockwise. Then the same thing is done again with progressively smaller quadrants, except that all sub-quadrants of a given size are rotated in parallel. As you watch it, the image appears to dissolve into static and then reconstitute itself, but rotated. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blocktube.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blocktube.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/blocktube.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/blocktube.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BlockTube -Exec=/usr/lib/xscreensaver/blocktube -root -TryExec=/usr/lib/xscreensaver/blocktube +Exec=/usr/libexec/xscreensaver/blocktube -root +TryExec=/usr/libexec/xscreensaver/blocktube Comment=Draws a swirling, falling tunnel of reflective slabs. They fade from hue to hue. Written by Lars R. Damerow. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/boing.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/boing.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/boing.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/boing.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Boing -Exec=/usr/lib/xscreensaver/boing -root -TryExec=/usr/lib/xscreensaver/boing +Exec=/usr/libexec/xscreensaver/boing -root +TryExec=/usr/libexec/xscreensaver/boing Comment=This bouncing ball is a clone of the first graphics demo for the Amiga 1000, which was written by Dale Luck and RJ Mical during a break at the 1984 Consumer Electronics Show (or so the legend goes.) This looks like the original Amiga demo if you turn off "smoothing" and "lighting" and turn on "scanlines", and is somewhat more modern otherwise. http://en.wikipedia.org/wiki/Amiga#Boing_Ball Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bouboule.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bouboule.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bouboule.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bouboule.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Bouboule -Exec=/usr/lib/xscreensaver/bouboule -root -TryExec=/usr/lib/xscreensaver/bouboule +Exec=/usr/libexec/xscreensaver/bouboule -root +TryExec=/usr/libexec/xscreensaver/bouboule Comment=This draws what looks like a spinning, deforming balloon with varying-sized spots painted on its invisible surface. Written by Jeremie Petit. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bouncingcow.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bouncingcow.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bouncingcow.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bouncingcow.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BouncingCow -Exec=/usr/lib/xscreensaver/bouncingcow -root -TryExec=/usr/lib/xscreensaver/bouncingcow +Exec=/usr/libexec/xscreensaver/bouncingcow -root +TryExec=/usr/libexec/xscreensaver/bouncingcow Comment=A Cow. A Trampoline. Together, they fight crime. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/boxed.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/boxed.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/boxed.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/boxed.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Boxed -Exec=/usr/lib/xscreensaver/boxed -root -TryExec=/usr/lib/xscreensaver/boxed +Exec=/usr/libexec/xscreensaver/boxed -root +TryExec=/usr/libexec/xscreensaver/boxed Comment=Draws a box full of 3D bouncing balls that explode. Written by Sander van Grieken. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/boxfit.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/boxfit.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/boxfit.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/boxfit.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BoxFit -Exec=/usr/lib/xscreensaver/boxfit -root -TryExec=/usr/lib/xscreensaver/boxfit +Exec=/usr/libexec/xscreensaver/boxfit -root +TryExec=/usr/libexec/xscreensaver/boxfit Comment=Packs the screen with growing squares or circles, colored according to a horizontal or vertical gradient, or according to the colors of the desktop or a loaded image file. The objects grow until they touch, then stop. When the screen is full, they shrink away and the process restarts. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/braid.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/braid.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/braid.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/braid.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Braid -Exec=/usr/lib/xscreensaver/braid -root -TryExec=/usr/lib/xscreensaver/braid +Exec=/usr/libexec/xscreensaver/braid -root +TryExec=/usr/libexec/xscreensaver/braid Comment=Draws random color-cycling inter-braided concentric circles. Written by John Neil. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bsod.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bsod.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bsod.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bsod.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=BSOD -Exec=/usr/lib/xscreensaver/bsod -root -TryExec=/usr/lib/xscreensaver/bsod +Exec=/usr/libexec/xscreensaver/bsod -root +TryExec=/usr/libexec/xscreensaver/bsod Comment=BSOD stands for "Blue Screen of Death". The finest in personal computer emulation, BSOD simulates popular screen savers from a number of less robust operating systems. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bubble3d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bubble3d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bubble3d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bubble3d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Bubble3D -Exec=/usr/lib/xscreensaver/bubble3d -root -TryExec=/usr/lib/xscreensaver/bubble3d +Exec=/usr/libexec/xscreensaver/bubble3d -root +TryExec=/usr/libexec/xscreensaver/bubble3d Comment=Draws a stream of rising, undulating 3D bubbles, rising toward the top of the screen, with transparency and specular reflections. Written by Richard Jones. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bumps.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bumps.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/bumps.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/bumps.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Bumps -Exec=/usr/lib/xscreensaver/bumps -root -TryExec=/usr/lib/xscreensaver/bumps +Exec=/usr/libexec/xscreensaver/bumps -root +TryExec=/usr/libexec/xscreensaver/bumps Comment=A spotlight roams across an embossed version of your desktop or other picture. Written by Shane Smit. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cage.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cage.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cage.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cage.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Cage -Exec=/usr/lib/xscreensaver/cage -root -TryExec=/usr/lib/xscreensaver/cage +Exec=/usr/libexec/xscreensaver/cage -root +TryExec=/usr/libexec/xscreensaver/cage Comment=This draws Escher's "Impossible Cage", a 3d analog of a moebius strip, and rotates it in three dimensions. http://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Written by Marcelo Vianna. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/carousel.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/carousel.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/carousel.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/carousel.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Carousel -Exec=/usr/lib/xscreensaver/carousel -root -TryExec=/usr/lib/xscreensaver/carousel +Exec=/usr/libexec/xscreensaver/carousel -root +TryExec=/usr/libexec/xscreensaver/carousel Comment=Loads several random images, and displays them flying in a circular formation. The formation changes speed and direction randomly, and images periodically drop out to be replaced by new ones. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ccurve.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ccurve.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ccurve.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ccurve.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CCurve -Exec=/usr/lib/xscreensaver/ccurve -root -TryExec=/usr/lib/xscreensaver/ccurve +Exec=/usr/libexec/xscreensaver/ccurve -root +TryExec=/usr/libexec/xscreensaver/ccurve Comment=Generates self-similar linear fractals, including the classic "C Curve". http://en.wikipedia.org/wiki/Levy_C_curve Written by Rick Campbell. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/celtic.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/celtic.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/celtic.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/celtic.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Celtic -Exec=/usr/lib/xscreensaver/celtic -root -TryExec=/usr/lib/xscreensaver/celtic +Exec=/usr/libexec/xscreensaver/celtic -root +TryExec=/usr/libexec/xscreensaver/celtic Comment=Repeatedly draws random Celtic cross-stitch patterns. http://en.wikipedia.org/wiki/Celtic_knot Written by Max Froumentin. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/circuit.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/circuit.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/circuit.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/circuit.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Circuit -Exec=/usr/lib/xscreensaver/circuit -root -TryExec=/usr/lib/xscreensaver/circuit +Exec=/usr/libexec/xscreensaver/circuit -root +TryExec=/usr/libexec/xscreensaver/circuit Comment=Animates a number of 3D electronic components. Written by Ben Buxton. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cityflow.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cityflow.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cityflow.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cityflow.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Cityflow -Exec=/usr/lib/xscreensaver/cityflow -root -TryExec=/usr/lib/xscreensaver/cityflow +Exec=/usr/libexec/xscreensaver/cityflow -root +TryExec=/usr/libexec/xscreensaver/cityflow Comment=Waves move across a sea of boxes. The city swells. The walls are closing in. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cloudlife.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cloudlife.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cloudlife.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cloudlife.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CloudLife -Exec=/usr/lib/xscreensaver/cloudlife -root -TryExec=/usr/lib/xscreensaver/cloudlife +Exec=/usr/libexec/xscreensaver/cloudlife -root +TryExec=/usr/libexec/xscreensaver/cloudlife Comment=Generates cloud-like formations based on a variant of Conway's Life. The difference is that cells have a maximum age, after which they count as 3 for populating the next generation. This makes long-lived formations explode instead of just sitting there. http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life Written by Don Marti. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/companioncube.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/companioncube.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/companioncube.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/companioncube.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CompanionCube -Exec=/usr/lib/xscreensaver/companioncube -root -TryExec=/usr/lib/xscreensaver/companioncube +Exec=/usr/libexec/xscreensaver/companioncube -root +TryExec=/usr/libexec/xscreensaver/companioncube Comment=The symptoms most commonly produced by Enrichment Center testing are superstition, perceiving inanimate objects as alive, and hallucinations. The Enrichment Center reminds you that the weighted companion cube will never threaten to stab you and, in fact, cannot speak. In the event that the Weighted Companion Cube does speak, the Enrichment Center urges you to disregard its advice. http://en.wikipedia.org/wiki/Portal_%28video_game%29 Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/compass.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/compass.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/compass.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/compass.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Compass -Exec=/usr/lib/xscreensaver/compass -root -TryExec=/usr/lib/xscreensaver/compass +Exec=/usr/libexec/xscreensaver/compass -root +TryExec=/usr/libexec/xscreensaver/compass Comment=This draws a compass, with all elements spinning about randomly, for that "lost and nauseous" feeling. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/coral.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/coral.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/coral.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/coral.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Coral -Exec=/usr/lib/xscreensaver/coral -root -TryExec=/usr/lib/xscreensaver/coral +Exec=/usr/libexec/xscreensaver/coral -root +TryExec=/usr/libexec/xscreensaver/coral Comment=Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/covid19.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/covid19.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/covid19.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/covid19.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=COVID19 +Exec=/usr/libexec/xscreensaver/covid19 -root +TryExec=/usr/libexec/xscreensaver/covid19 +Comment=SARS-CoV-2. Stay the fuck home. Wear a fucking mask. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/crackberg.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/crackberg.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/crackberg.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/crackberg.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Crackberg -Exec=/usr/lib/xscreensaver/crackberg -root -TryExec=/usr/lib/xscreensaver/crackberg +Exec=/usr/libexec/xscreensaver/crackberg -root +TryExec=/usr/libexec/xscreensaver/crackberg Comment=Flies through height maps, optionally animating the creation and destruction of generated tiles; tiles `grow' into place. Written by Matus Telgarsky. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/crumbler.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/crumbler.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/crumbler.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/crumbler.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Crumbler -Exec=/usr/lib/xscreensaver/crumbler -root -TryExec=/usr/lib/xscreensaver/crumbler +Exec=/usr/libexec/xscreensaver/crumbler -root +TryExec=/usr/libexec/xscreensaver/crumbler Comment=Randomly subdivides a ball into voronoi chunks, then further subdivides one of the remaining pieces. https://en.wikipedia.org/wiki/Voronoi_diagram https://en.wikipedia.org/wiki/Convex_hull https://en.wikipedia.org/wiki/Quickhull Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/crystal.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/crystal.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/crystal.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/crystal.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Crystal -Exec=/usr/lib/xscreensaver/crystal -root -TryExec=/usr/lib/xscreensaver/crystal +Exec=/usr/libexec/xscreensaver/crystal -root +TryExec=/usr/libexec/xscreensaver/crystal Comment=Moving polygons, similar to a kaleidoscope. See also the "Kaleidescope" and "GLeidescope" screen savers. http://en.wikipedia.org/wiki/Kaleidoscope Written by Jouk Jansen. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cube21.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cube21.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cube21.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cube21.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Cube21 -Exec=/usr/lib/xscreensaver/cube21 -root -TryExec=/usr/lib/xscreensaver/cube21 +Exec=/usr/libexec/xscreensaver/cube21 -root +TryExec=/usr/libexec/xscreensaver/cube21 Comment=Animates a Rubik-like puzzle known as Cube 21 or Square-1. The rotations are chosen randomly. See also the "Rubik" and "GLSnake" screen savers. http://en.wikipedia.org/wiki/Square_One_%28puzzle%29 Written by Vasek Potocek. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubenetic.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubenetic.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubenetic.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubenetic.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Cubenetic -Exec=/usr/lib/xscreensaver/cubenetic -root -TryExec=/usr/lib/xscreensaver/cubenetic +Exec=/usr/libexec/xscreensaver/cubenetic -root +TryExec=/usr/libexec/xscreensaver/cubenetic Comment=Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns undulating across their surfaces. It's sort of a cubist Lavalite. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubestack.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubestack.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubestack.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubestack.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CubeStack -Exec=/usr/lib/xscreensaver/cubestack -root -TryExec=/usr/lib/xscreensaver/cubestack +Exec=/usr/libexec/xscreensaver/cubestack -root +TryExec=/usr/libexec/xscreensaver/cubestack Comment=An endless stack of unfolding, translucent cubes. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubestorm.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubestorm.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubestorm.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubestorm.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CubeStorm -Exec=/usr/lib/xscreensaver/cubestorm -root -TryExec=/usr/lib/xscreensaver/cubestorm +Exec=/usr/libexec/xscreensaver/cubestorm -root +TryExec=/usr/libexec/xscreensaver/cubestorm Comment=Draws a series of rotating 3D boxes that intersect each other and eventually fill space. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubetwist.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubetwist.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubetwist.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubetwist.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CubeTwist -Exec=/usr/lib/xscreensaver/cubetwist -root -TryExec=/usr/lib/xscreensaver/cubetwist +Exec=/usr/libexec/xscreensaver/cubetwist -root +TryExec=/usr/libexec/xscreensaver/cubetwist Comment=A series of nested cubes rotate and slide recursively. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubicgrid.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubicgrid.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cubicgrid.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cubicgrid.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CubicGrid -Exec=/usr/lib/xscreensaver/cubicgrid -root -TryExec=/usr/lib/xscreensaver/cubicgrid +Exec=/usr/libexec/xscreensaver/cubicgrid -root +TryExec=/usr/libexec/xscreensaver/cubicgrid Comment=Draws the view of an observer located inside a rotating 3D lattice of colored points. Written by Vasek Potocek. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cwaves.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cwaves.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cwaves.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cwaves.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=CWaves -Exec=/usr/lib/xscreensaver/cwaves -root -TryExec=/usr/lib/xscreensaver/cwaves +Exec=/usr/libexec/xscreensaver/cwaves -root +TryExec=/usr/libexec/xscreensaver/cwaves Comment=This generates a languidly-scrolling vertical field of sinusoidal colors. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cynosure.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cynosure.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/cynosure.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/cynosure.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Cynosure -Exec=/usr/lib/xscreensaver/cynosure -root -TryExec=/usr/lib/xscreensaver/cynosure +Exec=/usr/libexec/xscreensaver/cynosure -root +TryExec=/usr/libexec/xscreensaver/cynosure Comment=Random dropshadowed rectangles pop onto the screen in lockstep. Written by Ozymandias G. Desiderata, Jamie Zawinski, and Stephen Linhart. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/dangerball.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/dangerball.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/dangerball.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/dangerball.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=DangerBall -Exec=/usr/lib/xscreensaver/dangerball -root -TryExec=/usr/lib/xscreensaver/dangerball +Exec=/usr/libexec/xscreensaver/dangerball -root +TryExec=/usr/libexec/xscreensaver/dangerball Comment=Draws a ball that periodically extrudes many random spikes. Ouch! Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/decayscreen.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/decayscreen.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/decayscreen.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/decayscreen.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=DecayScreen -Exec=/usr/lib/xscreensaver/decayscreen -root -TryExec=/usr/lib/xscreensaver/decayscreen +Exec=/usr/libexec/xscreensaver/decayscreen -root +TryExec=/usr/libexec/xscreensaver/decayscreen Comment=This takes an image and makes it melt. You've no doubt seen this effect before, but no screensaver would really be complete without it. It works best if there's something colorful visible. Warning, if the effect continues after the screen saver is off, seek medical attention. Written by David Wald, Vivek Khera, Jamie Zawinski, and Vince Levey. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/deco.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/deco.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/deco.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/deco.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Deco -Exec=/usr/lib/xscreensaver/deco -root -TryExec=/usr/lib/xscreensaver/deco +Exec=/usr/libexec/xscreensaver/deco -root +TryExec=/usr/libexec/xscreensaver/deco Comment=Subdivides and colors rectangles randomly. It looks kind of like Brady-Bunch-era rec-room wall paneling. http://en.wikipedia.org/wiki/Piet_Mondrian#Paris_1919.E2.80.931938 Written by Jamie Zawinski and Michael Bayne. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/deepstars.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/deepstars.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/deepstars.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/deepstars.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=DeepStars +Exec=/usr/libexec/xscreensaver/deepstars -root +TryExec=/usr/libexec/xscreensaver/deepstars +Comment=A long exposure of the night sky, showing star paths as vapor trails. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/deluxe.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/deluxe.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/deluxe.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/deluxe.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Deluxe -Exec=/usr/lib/xscreensaver/deluxe -root -TryExec=/usr/lib/xscreensaver/deluxe +Exec=/usr/libexec/xscreensaver/deluxe -root +TryExec=/usr/libexec/xscreensaver/deluxe Comment=Draws a pulsing sequence of transparent stars, circles, and lines. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/demon.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/demon.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/demon.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/demon.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Demon -Exec=/usr/lib/xscreensaver/demon -root -TryExec=/usr/lib/xscreensaver/demon +Exec=/usr/libexec/xscreensaver/demon -root +TryExec=/usr/libexec/xscreensaver/demon Comment=A cellular automaton that starts with a random field, and organizes it into stripes and spirals. http://en.wikipedia.org/wiki/Maxwell%27s_demon Written by David Bagley. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/discoball.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/discoball.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/discoball.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/discoball.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Discoball -Exec=/usr/lib/xscreensaver/discoball -root -TryExec=/usr/lib/xscreensaver/discoball +Exec=/usr/libexec/xscreensaver/discoball -root +TryExec=/usr/libexec/xscreensaver/discoball Comment=A dusty, dented disco ball. Woop woop. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/discrete.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/discrete.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/discrete.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/discrete.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Discrete -Exec=/usr/lib/xscreensaver/discrete -root -TryExec=/usr/lib/xscreensaver/discrete +Exec=/usr/libexec/xscreensaver/discrete -root +TryExec=/usr/libexec/xscreensaver/discrete Comment=More "discrete map" systems, including new variants of Hopalong and Julia, and a few others. Written by Tim Auckland. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/distort.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/distort.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/distort.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/distort.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Distort -Exec=/usr/lib/xscreensaver/distort -root -TryExec=/usr/lib/xscreensaver/distort +Exec=/usr/libexec/xscreensaver/distort -root +TryExec=/usr/libexec/xscreensaver/distort Comment=Grabs an image of the screen, and then lets a transparent lens wander around the screen, magnifying whatever is underneath. Written by Jonas Munsin. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/drift.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/drift.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/drift.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/drift.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Drift -Exec=/usr/lib/xscreensaver/drift -root -TryExec=/usr/lib/xscreensaver/drift +Exec=/usr/libexec/xscreensaver/drift -root +TryExec=/usr/libexec/xscreensaver/drift Comment=Drifting recursive fractal cosmic flames. Written by Scott Draves. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/dymaxionmap.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/dymaxionmap.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/dymaxionmap.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/dymaxionmap.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=DymaxionMap -Exec=/usr/lib/xscreensaver/dymaxionmap -root -TryExec=/usr/lib/xscreensaver/dymaxionmap +Exec=/usr/libexec/xscreensaver/dymaxionmap -root +TryExec=/usr/libexec/xscreensaver/dymaxionmap Comment=Buckminster Fuller's map of the Earth projected onto the surface of an unfolded icosahedron. It depicts the Earth's continents as one island, or nearly contiguous land masses. https://en.wikipedia.org/wiki/Dymaxion_map https://en.wikipedia.org/wiki/Buckminster_Fuller Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/endgame.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/endgame.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/endgame.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/endgame.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Endgame -Exec=/usr/lib/xscreensaver/endgame -root -TryExec=/usr/lib/xscreensaver/endgame +Exec=/usr/libexec/xscreensaver/endgame -root +TryExec=/usr/libexec/xscreensaver/endgame Comment=Black slips out of three mating nets, but the fourth one holds him tight! A brilliant composition! See also the "Queens" screen saver. http://en.wikipedia.org/wiki/Chess_endgame Written by Blair Tennessy. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/energystream.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/energystream.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/energystream.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/energystream.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=EnergyStream -Exec=/usr/lib/xscreensaver/energystream -root -TryExec=/usr/lib/xscreensaver/energystream +Exec=/usr/libexec/xscreensaver/energystream -root +TryExec=/usr/libexec/xscreensaver/energystream Comment=A flow of particles which form an energy stream. Written by Eugene Sandulenko and Konrad "Yoghurt" Zagorowicz. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/engine.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/engine.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/engine.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/engine.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Engine -Exec=/usr/lib/xscreensaver/engine -root -TryExec=/usr/lib/xscreensaver/engine +Exec=/usr/libexec/xscreensaver/engine -root +TryExec=/usr/libexec/xscreensaver/engine Comment=Draws a simple model of an engine that floats around the screen. http://en.wikipedia.org/wiki/Internal_combustion_engine#Operation Written by Ben Buxton and Ed Beroset. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/epicycle.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/epicycle.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/epicycle.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/epicycle.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Epicycle -Exec=/usr/lib/xscreensaver/epicycle -root -TryExec=/usr/lib/xscreensaver/epicycle +Exec=/usr/libexec/xscreensaver/epicycle -root +TryExec=/usr/libexec/xscreensaver/epicycle Comment=This draws the path traced out by a point on the edge of a circle. That circle rotates around a point on the rim of another circle, and so on, several times. These were the basis for the pre-heliocentric model of planetary motion. http://en.wikipedia.org/wiki/Deferent_and_epicycle Written by James Youngman. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/eruption.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/eruption.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/eruption.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/eruption.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Eruption -Exec=/usr/lib/xscreensaver/eruption -root -TryExec=/usr/lib/xscreensaver/eruption +Exec=/usr/libexec/xscreensaver/eruption -root +TryExec=/usr/libexec/xscreensaver/eruption Comment=Exploding fireworks. See also the "Fireworkx", "XFlame" and "Pyro" screen savers. Written by W.P. van Paassen. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/esper.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/esper.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/esper.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/esper.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Esper -Exec=/usr/lib/xscreensaver/esper -root -TryExec=/usr/lib/xscreensaver/esper +Exec=/usr/libexec/xscreensaver/esper -root +TryExec=/usr/libexec/xscreensaver/esper Comment="Enhance 224 to 176. Pull out track right. Center in pull back. Pull back. Wait a minute. Go right. Stop. Enhance 57 19. Track 45 left. Gimme a hardcopy right there." The Esper Machine was a voice-controlled forensic device used by LAPD in 2019, as documented in the 1982 film, Blade Runner. It was capable of enhancing photographs to an extreme degree, including reconstructing different viewpoints within the space from the reflections on various objects in the photograph. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/etruscanvenus.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/etruscanvenus.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/etruscanvenus.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/etruscanvenus.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=EtruscanVenus +Exec=/usr/libexec/xscreensaver/etruscanvenus -root +TryExec=/usr/libexec/xscreensaver/etruscanvenus +Comment=A 3D immersion of of a Klein bottle that smoothly deforms between the Etruscan Venus surface, the Roman surface, the Boy surface, and the Ida surface. Topologically, all surfaces are Klein bottles, even the Roman and Boy surfaces, which are doubly covered and therefore appear to be an immersed real projective plane. You can walk on the Klein bottle or rotate it in 3D. Since all the surfaces except the Ida surfaces have points where the surface normal is not well defined for some points, walking is performed on the Ida surface. Furthermore, it is possible to smoothly deform the surface between the Etruscan Venus surface, the Roman surface, the Boy surface, and the Ida surface surface while turning it. Inspired by George K. Francis's book "A Topological Picturebook", Springer, 1987, George K. Francis's paper "The Etruscan Venus" in P. Concus, R. Finn, and D. A. Hoffman: "Geometric Analysis and Computer Graphics", Springer, 1991, and a video entitled "The Etruscan Venus" by Donna J. Cox, George K. Francis, and Raymond L. Idaszak, presented at SIGGRAPH 1989. https://en.wikipedia.org/wiki/Boy%27s_surface https://en.wikipedia.org/wiki/Roman_surface https://en.wikipedia.org/wiki/Klein_bottle http://mathworld.wolfram.com/BoySurface.html http://mathworld.wolfram.com/RomanSurface.html http://mathworld.wolfram.com/EtruscanVenusSurface.html http://mathworld.wolfram.com/IdaSurface.html Written by Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/euler2d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/euler2d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/euler2d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/euler2d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Euler2D -Exec=/usr/lib/xscreensaver/euler2d -root -TryExec=/usr/lib/xscreensaver/euler2d +Exec=/usr/libexec/xscreensaver/euler2d -root +TryExec=/usr/libexec/xscreensaver/euler2d Comment=Simulates two dimensional incompressible inviscid fluid flow. http://en.wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29 http://en.wikipedia.org/wiki/Inviscid_flow Written by Stephen Montgomery-Smith. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/extrusion.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/extrusion.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/extrusion.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/extrusion.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Extrusion -Exec=/usr/lib/xscreensaver/extrusion -root -TryExec=/usr/lib/xscreensaver/extrusion +Exec=/usr/libexec/xscreensaver/extrusion -root +TryExec=/usr/libexec/xscreensaver/extrusion Comment=Draws various rotating extruded shapes that twist around, lengthen, and turn inside out. Written by Linas Vepstas, David Konerding, and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fadeplot.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fadeplot.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fadeplot.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fadeplot.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FadePlot -Exec=/usr/lib/xscreensaver/fadeplot -root -TryExec=/usr/lib/xscreensaver/fadeplot +Exec=/usr/libexec/xscreensaver/fadeplot -root +TryExec=/usr/libexec/xscreensaver/fadeplot Comment=Draws what looks like a waving ribbon following a sinusoidal path. Written by Bas van Gaalen and Charles Vidal. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fiberlamp.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fiberlamp.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fiberlamp.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fiberlamp.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Fiberlamp -Exec=/usr/lib/xscreensaver/fiberlamp -root -TryExec=/usr/lib/xscreensaver/fiberlamp +Exec=/usr/libexec/xscreensaver/fiberlamp -root +TryExec=/usr/libexec/xscreensaver/fiberlamp Comment=Draws a groovy rotating fiber optic lamp. Written by Tim Auckland. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/filmleader.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/filmleader.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/filmleader.desktop 2018-09-28 21:19:06.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/filmleader.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,7 +1,6 @@ [Desktop Entry] -Name=Filmleader -Exec=/usr/lib/xscreensaver/filmleader -root -TryExec=/usr/lib/xscreensaver/filmleader -Comment=Displays a looping countdown based on the SMPTE Universal Film leader on a simulation of an old analog television. https://en.wikipedia.org/wiki/Film_leader Written by Jamie Zawinski; 2018. - +Name=FilmLeader +Exec=/usr/libexec/xscreensaver/filmleader -root +TryExec=/usr/libexec/xscreensaver/filmleader +Comment=Displays a looping countdown based on the SMPTE Universal Film leader on a simulation of an old analog television. https://en.wikipedia.org/wiki/Film_leader Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fireworkx.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fireworkx.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fireworkx.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fireworkx.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Fireworkx -Exec=/usr/lib/xscreensaver/fireworkx -root -TryExec=/usr/lib/xscreensaver/fireworkx +Exec=/usr/libexec/xscreensaver/fireworkx -root +TryExec=/usr/libexec/xscreensaver/fireworkx Comment=Exploding fireworks. See also the "Eruption", "XFlame" and "Pyro" screen savers. Written by Rony B Chandran. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flame.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flame.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flame.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flame.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Flame -Exec=/usr/lib/xscreensaver/flame -root -TryExec=/usr/lib/xscreensaver/flame +Exec=/usr/libexec/xscreensaver/flame -root +TryExec=/usr/libexec/xscreensaver/flame Comment=Iterative fractals. Written by Scott Draves. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flipflop.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flipflop.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flipflop.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flipflop.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FlipFlop -Exec=/usr/lib/xscreensaver/flipflop -root -TryExec=/usr/lib/xscreensaver/flipflop +Exec=/usr/libexec/xscreensaver/flipflop -root +TryExec=/usr/libexec/xscreensaver/flipflop Comment=Draws a grid of 3D colored tiles that change positions with each other. Written by Kevin Ogden and Sergio Gutierrez. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flipscreen3d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flipscreen3d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flipscreen3d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flipscreen3d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FlipScreen3D -Exec=/usr/lib/xscreensaver/flipscreen3d -root -TryExec=/usr/lib/xscreensaver/flipscreen3d +Exec=/usr/libexec/xscreensaver/flipscreen3d -root +TryExec=/usr/libexec/xscreensaver/flipscreen3d Comment=Grabs an image of the desktop, turns it into a GL texture map, and spins it around and deforms it in various ways. Written by Ben Buxton and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fliptext.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fliptext.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fliptext.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fliptext.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FlipText -Exec=/usr/lib/xscreensaver/fliptext -root -TryExec=/usr/lib/xscreensaver/fliptext +Exec=/usr/libexec/xscreensaver/fliptext -root +TryExec=/usr/libexec/xscreensaver/fliptext Comment=Draws successive pages of text. The lines flip in and out in a soothing 3D pattern. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flow.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flow.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flow.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flow.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Flow -Exec=/usr/lib/xscreensaver/flow -root -TryExec=/usr/lib/xscreensaver/flow +Exec=/usr/libexec/xscreensaver/flow -root +TryExec=/usr/libexec/xscreensaver/flow Comment=Strange attractors formed of flows in a 3D differential equation phase space. Features the popular attractors described by Lorentz, Roessler, Birkhoff and Duffing, and can discover entirely new attractors by itself. http://en.wikipedia.org/wiki/Attractor#Strange_attractor Written by Tim Auckland. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fluidballs.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fluidballs.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fluidballs.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fluidballs.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FluidBalls -Exec=/usr/lib/xscreensaver/fluidballs -root -TryExec=/usr/lib/xscreensaver/fluidballs +Exec=/usr/libexec/xscreensaver/fluidballs -root +TryExec=/usr/libexec/xscreensaver/fluidballs Comment=Models the physics of bouncing balls, or of particles in a gas or fluid, depending on the settings. If "Shake Box" is selected, then every now and then, the box will be rotated, changing which direction is down (in order to keep the settled balls in motion.) Written by Peter Birtles and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flurry.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flurry.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flurry.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flurry.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Flurry -Exec=/usr/lib/xscreensaver/flurry -root -TryExec=/usr/lib/xscreensaver/flurry +Exec=/usr/libexec/xscreensaver/flurry -root +TryExec=/usr/libexec/xscreensaver/flurry Comment=This X11 port of the OSX screensaver of the same name draws a colourful star(fish)like flurry of particles. Original Mac version: http://homepage.mac.com/calumr Written by Calum Robinson and Tobias Sargeant. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flyingtoasters.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flyingtoasters.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/flyingtoasters.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/flyingtoasters.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FlyingToasters -Exec=/usr/lib/xscreensaver/flyingtoasters -root -TryExec=/usr/lib/xscreensaver/flyingtoasters +Exec=/usr/libexec/xscreensaver/flyingtoasters -root +TryExec=/usr/libexec/xscreensaver/flyingtoasters Comment=A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by the ancient Berkeley Systems After Dark flying toasters. http://en.wikipedia.org/wiki/After_Dark_%28software%29#Flying_Toasters Written by Jamie Zawinski and Devon Dossett. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fontglide.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fontglide.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fontglide.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fontglide.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FontGlide -Exec=/usr/lib/xscreensaver/fontglide -root -TryExec=/usr/lib/xscreensaver/fontglide +Exec=/usr/libexec/xscreensaver/fontglide -root +TryExec=/usr/libexec/xscreensaver/fontglide Comment=Puts text on the screen using large characters that glide in from the edges, assemble, then disperse. Alternately, it can simply scroll whole sentences from right to left. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fuzzyflakes.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fuzzyflakes.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/fuzzyflakes.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/fuzzyflakes.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=FuzzyFlakes -Exec=/usr/lib/xscreensaver/fuzzyflakes -root -TryExec=/usr/lib/xscreensaver/fuzzyflakes +Exec=/usr/libexec/xscreensaver/fuzzyflakes -root +TryExec=/usr/libexec/xscreensaver/fuzzyflakes Comment=Falling colored snowflake/flower shapes. Written by Barry Dmytro. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/galaxy.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/galaxy.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/galaxy.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/galaxy.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Galaxy -Exec=/usr/lib/xscreensaver/galaxy -root -TryExec=/usr/lib/xscreensaver/galaxy +Exec=/usr/libexec/xscreensaver/galaxy -root +TryExec=/usr/libexec/xscreensaver/galaxy Comment=This draws spinning galaxies, which then collide and scatter their stars to the, uh, four winds or something. Written by Uli Siegmund, Harald Backert, and Hubert Feyrer. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gears.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gears.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gears.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gears.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Gears -Exec=/usr/lib/xscreensaver/gears -root -TryExec=/usr/lib/xscreensaver/gears +Exec=/usr/libexec/xscreensaver/gears -root +TryExec=/usr/libexec/xscreensaver/gears Comment=This draws sets of turning, interlocking gears, rotating in three dimensions. See also the "Pinion" and "MoebiusGears" screen savers. http://en.wikipedia.org/wiki/Involute_gear http://en.wikipedia.org/wiki/Epicyclic_gearing Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/geodesic.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/geodesic.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/geodesic.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/geodesic.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Geodesic -Exec=/usr/lib/xscreensaver/geodesic -root -TryExec=/usr/lib/xscreensaver/geodesic +Exec=/usr/libexec/xscreensaver/geodesic -root +TryExec=/usr/libexec/xscreensaver/geodesic Comment=Animates a mesh geodesic sphere of increasing and decreasing complexity. A geodesic sphere is an icosohedron whose equilateral faces are sub-divided into non-equilateral triangles to more closely approximate a sphere. The animation shows the equilateral triangles subdivided into four coplanar equilateral triangles; and then inflated outward, causing the sub-triangles to no longer be equilateral, but to more closely approximate the surface of a sphere. http://en.wikipedia.org/wiki/Geodesic_dome http://en.wikipedia.org/wiki/Buckminster_Fuller Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/geodesicgears.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/geodesicgears.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/geodesicgears.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/geodesicgears.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GeodesicGears -Exec=/usr/lib/xscreensaver/geodesicgears -root -TryExec=/usr/lib/xscreensaver/geodesicgears +Exec=/usr/libexec/xscreensaver/geodesicgears -root +TryExec=/usr/libexec/xscreensaver/geodesicgears Comment=A set of meshed gears arranged on the surface of a sphere. http://en.wikipedia.org/wiki/Geodesic_dome http://en.wikipedia.org/wiki/Involute_gear Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gflux.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gflux.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gflux.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gflux.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GFlux -Exec=/usr/lib/xscreensaver/gflux -root -TryExec=/usr/lib/xscreensaver/gflux +Exec=/usr/libexec/xscreensaver/gflux -root +TryExec=/usr/libexec/xscreensaver/gflux Comment=Draws a rippling waves on a rotating wireframe grid. Written by Josiah Pease. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gibson.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gibson.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gibson.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gibson.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=Gibson +Exec=/usr/libexec/xscreensaver/gibson -root +TryExec=/usr/libexec/xscreensaver/gibson +Comment=Hacking the Gibson, as per the 1995 classic film, HACKERS. Cereal Killer: "Oh yeah, you want a seriously righteous hack, you score one of those Gibsons, man. You know, supercomputers they use to like, do physics, and look for oil and stuff?" Phantom Phreak: "Ain't no way, man, security's too tight. The big iron?" Zero Cool: "Maybe. But, if I were gonna hack some heavy metal, I'd, uh, work my way back through some low security, and try the back door." Cereal Killer: "Yeah but oh man, wouldn't you just love to get one of those Gibsons, baby? Ooooh!" Phantom Phreak: "Yo, who ate all of my fries?" Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glblur.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glblur.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glblur.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glblur.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLBlur -Exec=/usr/lib/xscreensaver/glblur -root -TryExec=/usr/lib/xscreensaver/glblur +Exec=/usr/libexec/xscreensaver/glblur -root +TryExec=/usr/libexec/xscreensaver/glblur Comment=This draws a box and a few line segments, and generates a radial blur outward from it. This creates flowing field effects. This is done by rendering the scene into a small texture, then repeatedly rendering increasingly-enlarged and increasingly-transparent versions of that texture onto the frame buffer. As such, it's quite GPU-intensive: if you don't have a very good graphics card, it will hurt your machine bad. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glcells.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glcells.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glcells.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glcells.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLCells -Exec=/usr/lib/xscreensaver/glcells -root -TryExec=/usr/lib/xscreensaver/glcells +Exec=/usr/libexec/xscreensaver/glcells -root +TryExec=/usr/libexec/xscreensaver/glcells Comment=Cells growing, dividing and dying on your screen. Written by Matthias Toussaint. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gleidescope.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gleidescope.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gleidescope.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gleidescope.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Gleidescope -Exec=/usr/lib/xscreensaver/gleidescope -root -TryExec=/usr/lib/xscreensaver/gleidescope +Exec=/usr/libexec/xscreensaver/gleidescope -root +TryExec=/usr/libexec/xscreensaver/gleidescope Comment=A kaleidoscope that operates on your desktop image, or on image files loaded from disk. http://en.wikipedia.org/wiki/Kaleidoscope Written by Andrew Dean. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glhanoi.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glhanoi.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glhanoi.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glhanoi.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLHanoi -Exec=/usr/lib/xscreensaver/glhanoi -root -TryExec=/usr/lib/xscreensaver/glhanoi +Exec=/usr/libexec/xscreensaver/glhanoi -root +TryExec=/usr/libexec/xscreensaver/glhanoi Comment=Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, one disk at a time, with no disk ever resting on a disk smaller than itself. http://en.wikipedia.org/wiki/Tower_of_Hanoi Written by Dave Atkinson; 2005. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glitchpeg.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glitchpeg.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glitchpeg.desktop 2018-09-28 21:19:06.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glitchpeg.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,7 +1,5 @@ - [Desktop Entry] -Name=Glitchpeg -Exec=/usr/lib/xscreensaver/glitchpeg -root -TryExec=/usr/lib/xscreensaver/glitchpeg -Comment=Loads an image, corrupts it, and then displays the corrupted version, -several times a second. After a while, finds a new image to corrupt. Written by Jamie Zawinski; 2018. +Name=GlitchPEG +Exec=/usr/libexec/xscreensaver/glitchpeg -root +TryExec=/usr/libexec/xscreensaver/glitchpeg +Comment=Loads an image, corrupts it, and then displays the corrupted version, several times a second. After a while, finds a new image to corrupt. Written by Jamie Zawinski; 2018. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glknots.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glknots.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glknots.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glknots.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLKnots -Exec=/usr/lib/xscreensaver/glknots -root -TryExec=/usr/lib/xscreensaver/glknots +Exec=/usr/libexec/xscreensaver/glknots -root +TryExec=/usr/libexec/xscreensaver/glknots Comment=Generates some twisting 3d knot patterns. Spins 'em around. http://en.wikipedia.org/wiki/Knot_theory Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glmatrix.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glmatrix.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glmatrix.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glmatrix.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLMatrix -Exec=/usr/lib/xscreensaver/glmatrix -root -TryExec=/usr/lib/xscreensaver/glmatrix +Exec=/usr/libexec/xscreensaver/glmatrix -root +TryExec=/usr/libexec/xscreensaver/glmatrix Comment=Draws 3D dropping characters similar to what is seen in the title sequence of "The Matrix". See also "xmatrix" for a 2D rendering of the similar effect that appeared on the computer monitors actually *in* the movie. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glplanet.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glplanet.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glplanet.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glplanet.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLPlanet -Exec=/usr/lib/xscreensaver/glplanet -root -TryExec=/usr/lib/xscreensaver/glplanet +Exec=/usr/libexec/xscreensaver/glplanet -root +TryExec=/usr/libexec/xscreensaver/glplanet Comment=Draws a planet bouncing around in space. The built-in image is a map of the earth (extracted from `xearth'), but you can wrap any texture around the sphere, e.g., the planetary textures that come with `ssystem'. Written by David Konerding. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glschool.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glschool.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glschool.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glschool.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLSchool -Exec=/usr/lib/xscreensaver/glschool -root -TryExec=/usr/lib/xscreensaver/glschool +Exec=/usr/libexec/xscreensaver/glschool -root +TryExec=/usr/libexec/xscreensaver/glschool Comment=Uses Craig Reynolds' Boids algorithm to simulate a school of fish. http://en.wikipedia.org/wiki/Boids Written by David C. Lambert. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glslideshow.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glslideshow.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glslideshow.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glslideshow.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLSlideshow -Exec=/usr/lib/xscreensaver/glslideshow -root -TryExec=/usr/lib/xscreensaver/glslideshow +Exec=/usr/libexec/xscreensaver/glslideshow -root +TryExec=/usr/libexec/xscreensaver/glslideshow Comment=Loads a random sequence of images and smoothly scans and zooms around in each, fading from pan to pan. Written by Jamie Zawinski and Mike Oliphant. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glsnake.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glsnake.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/glsnake.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/glsnake.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLSnake -Exec=/usr/lib/xscreensaver/glsnake -root -TryExec=/usr/lib/xscreensaver/glsnake +Exec=/usr/libexec/xscreensaver/glsnake -root +TryExec=/usr/libexec/xscreensaver/glsnake Comment=Draws a simulation of the Rubik's Snake puzzle. See also the "Rubik" and "Cube21" screen savers. http://en.wikipedia.org/wiki/Rubik%27s_Snake Written by Jamie Wilkinson, Andrew Bennetts, and Peter Aylett. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gltext.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gltext.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gltext.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gltext.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=GLText -Exec=/usr/lib/xscreensaver/gltext -root -TryExec=/usr/lib/xscreensaver/gltext +Exec=/usr/libexec/xscreensaver/gltext -root +TryExec=/usr/libexec/xscreensaver/gltext Comment=Displays a few lines of text spinning around in a solid 3D font. The text can use strftime() escape codes to display the current date and time. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/goop.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/goop.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/goop.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/goop.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Goop -Exec=/usr/lib/xscreensaver/goop -root -TryExec=/usr/lib/xscreensaver/goop +Exec=/usr/libexec/xscreensaver/goop -root +TryExec=/usr/libexec/xscreensaver/goop Comment=This draws set of animating, transparent, amoeba-like blobs. The blobs change shape as they wander around the screen, and they are translucent, so you can see the lower blobs through the higher ones, and when one passes over another, their colors merge. I got the idea for this from a mouse pad I had once, which achieved the same kind of effect in real life by having several layers of plastic with colored oil between them. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/grav.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/grav.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/grav.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/grav.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Grav -Exec=/usr/lib/xscreensaver/grav -root -TryExec=/usr/lib/xscreensaver/grav +Exec=/usr/libexec/xscreensaver/grav -root +TryExec=/usr/libexec/xscreensaver/grav Comment=This draws a simple orbital simulation. With trails enabled, it looks kind of like a cloud-chamber photograph. Written by Greg Bowering. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gravitywell.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gravitywell.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/gravitywell.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/gravitywell.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=GravityWell +Exec=/usr/libexec/xscreensaver/gravitywell -root +TryExec=/usr/libexec/xscreensaver/gravitywell +Comment=Massive objects distort space in a two dimensional universe. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/greynetic.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/greynetic.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/greynetic.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/greynetic.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Greynetic -Exec=/usr/lib/xscreensaver/greynetic -root -TryExec=/usr/lib/xscreensaver/greynetic +Exec=/usr/libexec/xscreensaver/greynetic -root +TryExec=/usr/libexec/xscreensaver/greynetic Comment=Draws random colored, stippled and transparent rectangles. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/halftone.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/halftone.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/halftone.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/halftone.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Halftone -Exec=/usr/lib/xscreensaver/halftone -root -TryExec=/usr/lib/xscreensaver/halftone +Exec=/usr/libexec/xscreensaver/halftone -root +TryExec=/usr/libexec/xscreensaver/halftone Comment=Draws the gravity force in each point on the screen seen through a halftone dot pattern. The gravity force is calculated from a set of moving mass points. View it from a distance for best effect. http://en.wikipedia.org/wiki/Halftone Written by Peter Jaric. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/halo.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/halo.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/halo.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/halo.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Halo -Exec=/usr/lib/xscreensaver/halo -root -TryExec=/usr/lib/xscreensaver/halo +Exec=/usr/libexec/xscreensaver/halo -root +TryExec=/usr/libexec/xscreensaver/halo Comment=Draws trippy psychedelic circular patterns that hurt to look at. http://en.wikipedia.org/wiki/Moire_pattern Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/handsy.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/handsy.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/handsy.desktop 2019-01-27 20:49:55.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/handsy.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Handsy -Exec=/usr/lib/xscreensaver/handsy -root -TryExec=/usr/lib/xscreensaver/handsy +Exec=/usr/libexec/xscreensaver/handsy -root +TryExec=/usr/libexec/xscreensaver/handsy Comment=A set of robotic hands communicate non-verbally. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/headroom.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/headroom.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/headroom.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/headroom.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=Headroom +Exec=/usr/libexec/xscreensaver/headroom -root +TryExec=/usr/libexec/xscreensaver/headroom +Comment="Back in my day, we used to say 'No future'. Well. This is it." -- Blank Reg "I can dump down all the information in the mind. Then I can eliminate any information I don't want. My parrot squawks in much the same way. For the moment, the computer power is only enough to generate a human head." -- Bryce Lynch Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/helix.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/helix.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/helix.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/helix.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Helix -Exec=/usr/lib/xscreensaver/helix -root -TryExec=/usr/lib/xscreensaver/helix +Exec=/usr/libexec/xscreensaver/helix -root +TryExec=/usr/libexec/xscreensaver/helix Comment=Spirally string-art-ish patterns. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hexadrop.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hexadrop.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hexadrop.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hexadrop.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hexadrop -Exec=/usr/lib/xscreensaver/hexadrop -root -TryExec=/usr/lib/xscreensaver/hexadrop +Exec=/usr/libexec/xscreensaver/hexadrop -root +TryExec=/usr/libexec/xscreensaver/hexadrop Comment=Draws a grid of hexagons or other shapes and drops them out. http://en.wikipedia.org/wiki/Tiling_by_regular_polygons Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hexstrut.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hexstrut.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hexstrut.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hexstrut.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hexstrut -Exec=/usr/lib/xscreensaver/hexstrut -root -TryExec=/usr/lib/xscreensaver/hexstrut +Exec=/usr/libexec/xscreensaver/hexstrut -root +TryExec=/usr/libexec/xscreensaver/hexstrut Comment=A grid of hexagons composed of rotating Y-shaped struts. Waves of rotation and color changes randomly propagate across the plane. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hilbert.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hilbert.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hilbert.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hilbert.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hilbert -Exec=/usr/lib/xscreensaver/hilbert -root -TryExec=/usr/lib/xscreensaver/hilbert +Exec=/usr/libexec/xscreensaver/hilbert -root +TryExec=/usr/libexec/xscreensaver/hilbert Comment=This draws the recursive Hilbert space-filling curve, in both 2D and 3D variants. It incrementally animates the growth and recursion to the maximum depth, then unwinds it back. The Hilbert path is a single contiguous line that can fill a volume without crossing itself. As a data structure, Hilbert paths are useful because ordering along the curve preserves locality: points that close together along the curve are also close together in space. The converse is often, but not always, true. The coloration reflects this. http://en.wikipedia.org/wiki/Hilbert_curve Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hopalong.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hopalong.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hopalong.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hopalong.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hopalong -Exec=/usr/lib/xscreensaver/hopalong -root -TryExec=/usr/lib/xscreensaver/hopalong +Exec=/usr/libexec/xscreensaver/hopalong -root +TryExec=/usr/libexec/xscreensaver/hopalong Comment=This draws lacy fractal patterns based on iteration in the imaginary plane, from a 1986 Scientific American article. See also the "Discrete" screen saver. Written by Patrick Naughton. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hydrostat.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hydrostat.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hydrostat.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hydrostat.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hydrostat -Exec=/usr/lib/xscreensaver/hydrostat -root -TryExec=/usr/lib/xscreensaver/hydrostat +Exec=/usr/libexec/xscreensaver/hydrostat -root +TryExec=/usr/libexec/xscreensaver/hydrostat Comment=Wiggly squid or jellyfish with many tentacles. A muscular hydrostat is a biological structure used to move its host about, consisting of muscles with no skeletal support. It performs its hydraulic movement without fluid in a separate compartment, as in a hydrostatic skeleton. https://en.wikipedia.org/wiki/Muscular_hydrostat Written by Justin Windle and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hyperball.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hyperball.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hyperball.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hyperball.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - -[Desktop Entry] -Name=HyperBall -Exec=/usr/lib/xscreensaver/hyperball -root -TryExec=/usr/lib/xscreensaver/hyperball -Comment=Hyperball is to hypercube as dodecahedron is to cube: this displays a 2D projection of the sequence of 3D objects which are the projections of the 4D analog to the dodecahedron. Technically, it is a "120 cell polytope". See also "polytopes" for a more general version of this using OpenGL. http://en.wikipedia.org/wiki/Hypercube http://en.wikipedia.org/wiki/Regular_polytope Written by Joe Keane. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hypercube.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hypercube.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hypercube.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hypercube.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - -[Desktop Entry] -Name=HyperCube -Exec=/usr/lib/xscreensaver/hypercube -root -TryExec=/usr/lib/xscreensaver/hypercube -Comment=This displays 2D projections of the sequence of 3D objects which are the projections of the 4D analog to the cube: as a square is composed of four lines, each touching two others; and a cube is composed of six squares, each touching four others; a hypercube is composed of eight cubes, each touching six others. To make it easier to visualize the rotation, it uses a different color for the edges of each face. Don't think about it too long, or your brain will melt. See also "polytopes" for a more general version of this using OpenGL. http://en.wikipedia.org/wiki/Hypercube http://en.wikipedia.org/wiki/Regular_polytope Written by Joe Keane, Fritz Mueller, and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hypertorus.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hypertorus.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hypertorus.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hypertorus.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hypertorus -Exec=/usr/lib/xscreensaver/hypertorus -root -TryExec=/usr/lib/xscreensaver/hypertorus +Exec=/usr/libexec/xscreensaver/hypertorus -root +TryExec=/usr/libexec/xscreensaver/hypertorus Comment=This shows a rotating Clifford Torus: a torus lying on the "surface" of a 4D hypersphere. Inspired by Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions", Scientific American Library, 1990. http://en.wikipedia.org/wiki/N-sphere http://en.wikipedia.org/wiki/Clifford_torus http://en.wikipedia.org/wiki/Regular_polytope Written by Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hypnowheel.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hypnowheel.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/hypnowheel.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/hypnowheel.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Hypnowheel -Exec=/usr/lib/xscreensaver/hypnowheel -root -TryExec=/usr/lib/xscreensaver/hypnowheel +Exec=/usr/libexec/xscreensaver/hypnowheel -root +TryExec=/usr/libexec/xscreensaver/hypnowheel Comment=Draws a series of overlapping, translucent spiral patterns. The tightness of their spirals fluctuates in and out. http://en.wikipedia.org/wiki/Moire_pattern Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ifs.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ifs.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ifs.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ifs.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=IFS -Exec=/usr/lib/xscreensaver/ifs -root -TryExec=/usr/lib/xscreensaver/ifs +Exec=/usr/libexec/xscreensaver/ifs -root +TryExec=/usr/libexec/xscreensaver/ifs Comment=This one draws spinning, colliding iterated-function-system images. Note that the "Detail" parameter is exponential. Number of points drawn is functions^detail. http://en.wikipedia.org/wiki/Iterated_function_system Written by Chris Le Sueur and Robby Griffin. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/imsmap.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/imsmap.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/imsmap.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/imsmap.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=IMSMap -Exec=/usr/lib/xscreensaver/imsmap -root -TryExec=/usr/lib/xscreensaver/imsmap +Exec=/usr/libexec/xscreensaver/imsmap -root +TryExec=/usr/libexec/xscreensaver/imsmap Comment=This generates random cloud-like patterns. The idea is to take four points on the edge of the image, and assign each a random "elevation". Then find the point between them, and give it a value which is the average of the other four, plus some small random offset. Coloration is done based on elevation. Written by Juergen Nickelsen and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/interaggregate.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/interaggregate.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/interaggregate.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/interaggregate.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Interaggregate -Exec=/usr/lib/xscreensaver/interaggregate -root -TryExec=/usr/lib/xscreensaver/interaggregate +Exec=/usr/libexec/xscreensaver/interaggregate -root +TryExec=/usr/libexec/xscreensaver/interaggregate Comment=A surface is filled with a hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Displays the instantaneous intersections of the circles as well as the aggregate intersections of the circles. Though actually it doesn't look like circles at all! Written by Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/interference.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/interference.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/interference.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/interference.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Interference -Exec=/usr/lib/xscreensaver/interference -root -TryExec=/usr/lib/xscreensaver/interference +Exec=/usr/libexec/xscreensaver/interference -root +TryExec=/usr/libexec/xscreensaver/interference Comment=Color field based on computing decaying sinusoidal waves. Written by Hannu Mallat. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/intermomentary.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/intermomentary.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/intermomentary.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/intermomentary.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Intermomentary -Exec=/usr/lib/xscreensaver/intermomentary -root -TryExec=/usr/lib/xscreensaver/intermomentary +Exec=/usr/libexec/xscreensaver/intermomentary -root +TryExec=/usr/libexec/xscreensaver/intermomentary Comment=A surface is filled with a hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Displays the instantaneous intersections of the circles as well as the aggregate intersections of the circles. The circles begin with a radius of 1 pixel and slowly increase to some arbitrary size. Circles are drawn with small moving points along the perimeter. The intersections are rendered as glowing orbs. Glowing orbs are rendered only when a perimeter point moves past the intersection point. Written by Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/jigglypuff.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/jigglypuff.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/jigglypuff.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/jigglypuff.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=JigglyPuff -Exec=/usr/lib/xscreensaver/jigglypuff -root -TryExec=/usr/lib/xscreensaver/jigglypuff +Exec=/usr/libexec/xscreensaver/jigglypuff -root +TryExec=/usr/libexec/xscreensaver/jigglypuff Comment=This does bad things with quasi-spherical objects. You have a tetrahedron with tesselated faces. The vertices on these faces have forces on them: one proportional to the distance from the surface of a sphere; and one proportional to the distance from the neighbors. They also have inertia. The resulting effect can range from a shape that does nothing, to a frenetic polygon storm. Somewhere in between there it usually manifests as a blob that jiggles in a kind of disturbing manner. Written by Keith Macleod. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/jigsaw.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/jigsaw.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/jigsaw.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/jigsaw.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Jigsaw -Exec=/usr/lib/xscreensaver/jigsaw -root -TryExec=/usr/lib/xscreensaver/jigsaw +Exec=/usr/libexec/xscreensaver/jigsaw -root +TryExec=/usr/libexec/xscreensaver/jigsaw Comment=This grabs a screen image, carves it up into a jigsaw puzzle, shuffles it, and then solves the puzzle. This works especially well when you feed it an external video signal instead of letting it grab the screen image (actually, I guess this is generally true...) When it is grabbing a video image, it is sometimes pretty hard to guess what the image is going to look like once the puzzle is solved. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/juggle.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/juggle.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/juggle.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/juggle.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - -[Desktop Entry] -Name=Juggle -Exec=/usr/lib/xscreensaver/juggle -root -TryExec=/usr/lib/xscreensaver/juggle -Comment=Draws a juggling stick-man. See also "Juggler3D". http://en.wikipedia.org/wiki/Siteswap Written by Tim Auckland. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/juggler3d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/juggler3d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/juggler3d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/juggler3d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Juggler3D -Exec=/usr/lib/xscreensaver/juggler3d -root -TryExec=/usr/lib/xscreensaver/juggler3d +Exec=/usr/libexec/xscreensaver/juggler3d -root +TryExec=/usr/libexec/xscreensaver/juggler3d Comment=3D simulation of a juggler performing with balls, clubs and rings. http://en.wikipedia.org/wiki/Siteswap Written by Brian Apps. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/julia.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/julia.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/julia.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/julia.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Julia -Exec=/usr/lib/xscreensaver/julia -root -TryExec=/usr/lib/xscreensaver/julia +Exec=/usr/libexec/xscreensaver/julia -root +TryExec=/usr/libexec/xscreensaver/julia Comment=Animates the Julia set (a close relative of the Mandelbrot set). The small moving dot indicates the control point from which the rest of the image was generated. See also the "Discrete" screen saver. http://en.wikipedia.org/wiki/Julia_set Written by Sean McCullough. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/kaleidescope.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/kaleidescope.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/kaleidescope.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/kaleidescope.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Kaleidescope -Exec=/usr/lib/xscreensaver/kaleidescope -root -TryExec=/usr/lib/xscreensaver/kaleidescope +Exec=/usr/libexec/xscreensaver/kaleidescope -root +TryExec=/usr/libexec/xscreensaver/kaleidescope Comment=A simple kaleidoscope. See also "GLeidescope". http://en.wikipedia.org/wiki/Kaleidoscope Written by Ron Tapia. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/kaleidocycle.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/kaleidocycle.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/kaleidocycle.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/kaleidocycle.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Kaleidocycle -Exec=/usr/lib/xscreensaver/kaleidocycle -root -TryExec=/usr/lib/xscreensaver/kaleidocycle +Exec=/usr/libexec/xscreensaver/kaleidocycle -root +TryExec=/usr/libexec/xscreensaver/kaleidocycle Comment=Draw a ring composed of tetrahedra connected at the edges that twists and rotates toroidally. When a series of tetrahedra are joined at the edges in a loop, it is possible for them to rotate continously through the center without deforming. This only works with an even number of tetrahedra, and there must be eight or more, or they don't fit. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/klein.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/klein.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/klein.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/klein.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Klein -Exec=/usr/lib/xscreensaver/klein -root -TryExec=/usr/lib/xscreensaver/klein +Exec=/usr/libexec/xscreensaver/klein -root +TryExec=/usr/libexec/xscreensaver/klein Comment=This draws a visualization of a Klein bottle or some other interesting parametric surfaces. http://en.wikipedia.org/wiki/Klein_bottle Written by Andrey Mirtchovski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/kumppa.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/kumppa.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/kumppa.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/kumppa.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Kumppa -Exec=/usr/lib/xscreensaver/kumppa -root -TryExec=/usr/lib/xscreensaver/kumppa +Exec=/usr/libexec/xscreensaver/kumppa -root +TryExec=/usr/libexec/xscreensaver/kumppa Comment=Spiraling, spinning, and very, very fast splashes of color rush toward the screen. Written by Teemu Suutari. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lament.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lament.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lament.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lament.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Lament -Exec=/usr/lib/xscreensaver/lament -root -TryExec=/usr/lib/xscreensaver/lament +Exec=/usr/libexec/xscreensaver/lament -root +TryExec=/usr/libexec/xscreensaver/lament Comment=Animates a simulation of Lemarchand's Box, the Lament Configuration, repeatedly solving itself. Warning: occasionally opens doors. http://en.wikipedia.org/wiki/Lemarchand%27s_box Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lavalite.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lavalite.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lavalite.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lavalite.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Lavalite -Exec=/usr/lib/xscreensaver/lavalite -root -TryExec=/usr/lib/xscreensaver/lavalite +Exec=/usr/libexec/xscreensaver/lavalite -root +TryExec=/usr/libexec/xscreensaver/lavalite Comment=Draws a 3D Simulation a Lava Lite(r). Odd-shaped blobs of a mysterious substance are heated, slowly rise to the top of the bottle, and then drop back down as they cool. This simulation requires a fairly fast machine (both CPU and 3D performance.) "LAVA LITE(r) and the configuration of the LAVA(r) brand motion lamp are registered trademarks of Haggerty Enterprises, Inc. The configuration of the globe and base of the motion lamp are registered trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in other countries around the world." http://en.wikipedia.org/wiki/Lava_lamp http://en.wikipedia.org/wiki/Metaballs Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lcdscrub.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lcdscrub.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lcdscrub.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lcdscrub.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=LCDscrub -Exec=/usr/lib/xscreensaver/lcdscrub -root -TryExec=/usr/lib/xscreensaver/lcdscrub +Exec=/usr/libexec/xscreensaver/lcdscrub -root +TryExec=/usr/libexec/xscreensaver/lcdscrub Comment=This screen saver is not meant to look pretty, but rather, to repair burn-in on LCD monitors. Believe it or not, screen burn is not a thing of the past. It can happen to LCD screens pretty easily, even in this modern age. However, leaving the screen on and displaying high contrast images can often repair the damage. That's what this screen saver does. See also: http://docs.info.apple.com/article.html?artnum=88343 http://toastycode.com/blog/2008/02/05/lcd-scrub/ Inspired by the like-named program by Daniel Sandler. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lockward.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lockward.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/lockward.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/lockward.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Lockward -Exec=/usr/lib/xscreensaver/lockward -root -TryExec=/usr/lib/xscreensaver/lockward +Exec=/usr/libexec/xscreensaver/lockward -root +TryExec=/usr/libexec/xscreensaver/lockward Comment=A translucent spinning, blinking thing. Sort of a cross between the wards in an old combination lock and those old backlit information displays that animated and changed color via polarized light. Written by Leo L. Schwab. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/loop.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/loop.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/loop.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/loop.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Loop -Exec=/usr/lib/xscreensaver/loop -root -TryExec=/usr/lib/xscreensaver/loop +Exec=/usr/libexec/xscreensaver/loop -root +TryExec=/usr/libexec/xscreensaver/loop Comment=Generates loop-shaped colonies that spawn, age, and eventually die. http://en.wikipedia.org/wiki/Langton%27s_loops Written by David Bagley. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/m6502.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/m6502.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/m6502.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/m6502.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=m6502 -Exec=/usr/lib/xscreensaver/m6502 -root -TryExec=/usr/lib/xscreensaver/m6502 +Exec=/usr/libexec/xscreensaver/m6502 -root +TryExec=/usr/libexec/xscreensaver/m6502 Comment=This emulates a 6502 microprocessor. The family of 6502 chips were used throughout the 70's and 80's in machines such as the Atari 2600, Commodore PET, VIC20 and C64, Apple ][, and the NES. Some example programs are included, and it can also read in an assembly file as input. Original JavaScript Version by Stian Soreng: http://www.6502asm.com/. Ported to XScreenSaver by Jeremy English. Written by Stian Soreng and Jeremy English. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/maze3d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/maze3d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/maze3d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/maze3d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Maze3D -Exec=/usr/lib/xscreensaver/maze3d -root -TryExec=/usr/lib/xscreensaver/maze3d +Exec=/usr/libexec/xscreensaver/maze3d -root +TryExec=/usr/libexec/xscreensaver/maze3d Comment=A re-creation of the 3D Maze screensaver from Windows 95. Written by Sudoer. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/maze.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/maze.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/maze.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/maze.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Maze -Exec=/usr/lib/xscreensaver/maze -root -TryExec=/usr/lib/xscreensaver/maze +Exec=/usr/libexec/xscreensaver/maze -root +TryExec=/usr/libexec/xscreensaver/maze Comment=This generates random mazes (with various different algorithms), and then solves them. Backtracking and look-ahead paths are displayed in different colors. Written by Jim Randell and many others. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/memscroller.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/memscroller.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/memscroller.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/memscroller.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=MemScroller -Exec=/usr/lib/xscreensaver/memscroller -root -TryExec=/usr/lib/xscreensaver/memscroller +Exec=/usr/libexec/xscreensaver/memscroller -root +TryExec=/usr/libexec/xscreensaver/memscroller Comment=This draws a dump of its own process memory scrolling across the screen in three windows at three different rates. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/menger.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/menger.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/menger.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/menger.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Menger -Exec=/usr/lib/xscreensaver/menger -root -TryExec=/usr/lib/xscreensaver/menger +Exec=/usr/libexec/xscreensaver/menger -root +TryExec=/usr/libexec/xscreensaver/menger Comment=This draws the three-dimensional variant of the recursive Menger Gasket, a cube-based fractal object analagous to the Sierpinski Tetrahedron. http://en.wikipedia.org/wiki/Menger_sponge http://en.wikipedia.org/wiki/Sierpinski_carpet Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/metaballs.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/metaballs.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/metaballs.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/metaballs.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=MetaBalls -Exec=/usr/lib/xscreensaver/metaballs -root -TryExec=/usr/lib/xscreensaver/metaballs +Exec=/usr/libexec/xscreensaver/metaballs -root +TryExec=/usr/libexec/xscreensaver/metaballs Comment=Draws two dimensional metaballs: overlapping and merging balls with fuzzy edges. http://en.wikipedia.org/wiki/Metaballs Written by W.P. van Paassen. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/mirrorblob.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/mirrorblob.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/mirrorblob.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/mirrorblob.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=MirrorBlob -Exec=/usr/lib/xscreensaver/mirrorblob -root -TryExec=/usr/lib/xscreensaver/mirrorblob +Exec=/usr/libexec/xscreensaver/mirrorblob -root +TryExec=/usr/libexec/xscreensaver/mirrorblob Comment=Draws a wobbly blob that distorts the image behind it. Written by Jon Dowdall. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moebius.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moebius.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moebius.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moebius.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Moebius -Exec=/usr/lib/xscreensaver/moebius -root -TryExec=/usr/lib/xscreensaver/moebius +Exec=/usr/libexec/xscreensaver/moebius -root +TryExec=/usr/libexec/xscreensaver/moebius Comment=This animates a 3D rendition M.C. Escher's "Moebius Strip II", an image of ants walking along the surface of a moebius strip. http://en.wikipedia.org/wiki/Moebius_strip http://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Written by Marcelo F. Vianna. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moebiusgears.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moebiusgears.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moebiusgears.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moebiusgears.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=MoebiusGears -Exec=/usr/lib/xscreensaver/moebiusgears -root -TryExec=/usr/lib/xscreensaver/moebiusgears +Exec=/usr/libexec/xscreensaver/moebiusgears -root +TryExec=/usr/libexec/xscreensaver/moebiusgears Comment=Draws a closed, interlinked chain of rotating gears. The layout of the gears follows the path of a moebius strip. See also the "Pinion" and "Gears" screen savers. http://en.wikipedia.org/wiki/Involute_gear http://en.wikipedia.org/wiki/Moebius_strip Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moire2.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moire2.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moire2.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moire2.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Moire2 -Exec=/usr/lib/xscreensaver/moire2 -root -TryExec=/usr/lib/xscreensaver/moire2 +Exec=/usr/libexec/xscreensaver/moire2 -root +TryExec=/usr/libexec/xscreensaver/moire2 Comment=Generates fields of concentric circles or ovals, and combines the planes with various operations. The planes are moving independently of one another, causing the interference lines to spray. http://en.wikipedia.org/wiki/Moire_pattern Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moire.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moire.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/moire.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/moire.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Moire -Exec=/usr/lib/xscreensaver/moire -root -TryExec=/usr/lib/xscreensaver/moire +Exec=/usr/libexec/xscreensaver/moire -root +TryExec=/usr/libexec/xscreensaver/moire Comment=When the lines on the screen Make more lines in between, That's a moire'! http://en.wikipedia.org/wiki/Moire_pattern Written by Jamie Zawinski and Michael Bayne. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/molecule.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/molecule.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/molecule.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/molecule.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Molecule -Exec=/usr/lib/xscreensaver/molecule -root -TryExec=/usr/lib/xscreensaver/molecule +Exec=/usr/libexec/xscreensaver/molecule -root +TryExec=/usr/libexec/xscreensaver/molecule Comment=Draws several different representations of molecules. Some common molecules are built in, and it can also read PDB (Protein Data Bank) files as input. http://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29 Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/morph3d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/morph3d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/morph3d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/morph3d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Morph3D -Exec=/usr/lib/xscreensaver/morph3d -root -TryExec=/usr/lib/xscreensaver/morph3d +Exec=/usr/libexec/xscreensaver/morph3d -root +TryExec=/usr/libexec/xscreensaver/morph3d Comment=Platonic solids that turn inside out and get spikey. http://en.wikipedia.org/wiki/Platonic_solid Written by Marcelo Vianna. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/mountain.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/mountain.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/mountain.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/mountain.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Mountain -Exec=/usr/lib/xscreensaver/mountain -root -TryExec=/usr/lib/xscreensaver/mountain +Exec=/usr/libexec/xscreensaver/mountain -root +TryExec=/usr/libexec/xscreensaver/mountain Comment=Generates random 3D plots that look vaguely mountainous. Written by Pascal Pensa. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/munch.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/munch.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/munch.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/munch.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Munch -Exec=/usr/lib/xscreensaver/munch -root -TryExec=/usr/lib/xscreensaver/munch +Exec=/usr/libexec/xscreensaver/munch -root +TryExec=/usr/libexec/xscreensaver/munch Comment=DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 As reported by HAKMEM, in 1962, Jackson Wright wrote the above PDP-1 code. That code still lives on here, some 46 years later. The number of lines of enclosing code has increased substantially, however. http://en.wikipedia.org/wiki/HAKMEM http://en.wikipedia.org/wiki/Munching_square Written by Jackson Wright and Tim Showalter. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/nerverot.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/nerverot.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/nerverot.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/nerverot.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=NerveRot -Exec=/usr/lib/xscreensaver/nerverot -root -TryExec=/usr/lib/xscreensaver/nerverot +Exec=/usr/libexec/xscreensaver/nerverot -root +TryExec=/usr/libexec/xscreensaver/nerverot Comment=Draws different shapes composed of nervously vibrating squiggles, as if seen through a camera operated by a monkey on crack. Written by Dan Bornstein. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/noof.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/noof.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/noof.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/noof.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Noof -Exec=/usr/lib/xscreensaver/noof -root -TryExec=/usr/lib/xscreensaver/noof +Exec=/usr/libexec/xscreensaver/noof -root +TryExec=/usr/libexec/xscreensaver/noof Comment=Draws some rotatey patterns, using OpenGL. Written by Bill Torzewski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/noseguy.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/noseguy.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/noseguy.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/noseguy.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=NoseGuy -Exec=/usr/lib/xscreensaver/noseguy -root -TryExec=/usr/lib/xscreensaver/noseguy +Exec=/usr/libexec/xscreensaver/noseguy -root +TryExec=/usr/libexec/xscreensaver/noseguy Comment=A little man with a big nose wanders around your screen saying things. Written by Dan Heller and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pacman.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pacman.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pacman.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pacman.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pacman -Exec=/usr/lib/xscreensaver/pacman -root -TryExec=/usr/lib/xscreensaver/pacman +Exec=/usr/libexec/xscreensaver/pacman -root +TryExec=/usr/libexec/xscreensaver/pacman Comment=Simulates a game of Pac-Man on a randomly-created level. http://en.wikipedia.org/wiki/Pac-Man Written by Edwin de Jong. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pedal.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pedal.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pedal.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pedal.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pedal -Exec=/usr/lib/xscreensaver/pedal -root -TryExec=/usr/lib/xscreensaver/pedal +Exec=/usr/libexec/xscreensaver/pedal -root +TryExec=/usr/libexec/xscreensaver/pedal Comment=This is sort of a combination spirograph/string-art. It generates a large, complex polygon, and renders it by filling using an even/odd winding rule. Written by Dale Moore. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/peepers.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/peepers.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/peepers.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/peepers.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Peepers -Exec=/usr/lib/xscreensaver/peepers -root -TryExec=/usr/lib/xscreensaver/peepers +Exec=/usr/libexec/xscreensaver/peepers -root +TryExec=/usr/libexec/xscreensaver/peepers Comment=Floating eyeballs. Anatomically correct, and they also track the pointer. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/penetrate.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/penetrate.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/penetrate.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/penetrate.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Penetrate -Exec=/usr/lib/xscreensaver/penetrate -root -TryExec=/usr/lib/xscreensaver/penetrate +Exec=/usr/libexec/xscreensaver/penetrate -root +TryExec=/usr/libexec/xscreensaver/penetrate Comment=Simulates (something like) the classic arcade game Missile Command. http://en.wikipedia.org/wiki/Missile_Command Written by Adam Miller. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/penrose.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/penrose.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/penrose.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/penrose.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Penrose -Exec=/usr/lib/xscreensaver/penrose -root -TryExec=/usr/lib/xscreensaver/penrose +Exec=/usr/libexec/xscreensaver/penrose -root +TryExec=/usr/libexec/xscreensaver/penrose Comment=Draws quasiperiodic tilings; think of the implications on modern formica technology. In April 1997, Sir Roger Penrose, a British math professor who has worked with Stephen Hawking on such topics as relativity, black holes, and whether time has a beginning, filed a copyright-infringement lawsuit against the Kimberly-Clark Corporation, which Penrose said copied a pattern he created (a pattern demonstrating that "a nonrepeating pattern could exist in nature") for its Kleenex quilted toilet paper. Penrose said he doesn't like litigation but, "When it comes to the population of Great Britain being invited by a multinational to wipe their bottoms on what appears to be the work of a Knight of the Realm, then a last stand must be taken." As reported by News of the Weird #491, 4-Jul-1997. http://en.wikipedia.org/wiki/Penrose_tiling Written by Timo Korvola. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/petri.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/petri.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/petri.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/petri.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Petri -Exec=/usr/lib/xscreensaver/petri -root -TryExec=/usr/lib/xscreensaver/petri +Exec=/usr/libexec/xscreensaver/petri -root +TryExec=/usr/libexec/xscreensaver/petri Comment=This simulates colonies of mold growing in a petri dish. Growing colored circles overlap and leave spiral interference in their wake. Written by Dan Bornstein. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/phosphor.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/phosphor.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/phosphor.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/phosphor.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Phosphor -Exec=/usr/lib/xscreensaver/phosphor -root -TryExec=/usr/lib/xscreensaver/phosphor +Exec=/usr/libexec/xscreensaver/phosphor -root +TryExec=/usr/libexec/xscreensaver/phosphor Comment=Draws a simulation of an old terminal, with large pixels and long-sustain phosphor. On X11 systems, This program is also a fully-functional VT100 emulator! Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/photopile.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/photopile.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/photopile.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/photopile.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Photopile -Exec=/usr/lib/xscreensaver/photopile -root -TryExec=/usr/lib/xscreensaver/photopile +Exec=/usr/libexec/xscreensaver/photopile -root +TryExec=/usr/libexec/xscreensaver/photopile Comment=Loads several random images, and displays them as if lying in a random pile. The pile is periodically reshuffled, with new images coming in and old ones being thrown out. Written by Jens Kilian. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/piecewise.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/piecewise.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/piecewise.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/piecewise.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Piecewise -Exec=/usr/lib/xscreensaver/piecewise -root -TryExec=/usr/lib/xscreensaver/piecewise +Exec=/usr/libexec/xscreensaver/piecewise -root +TryExec=/usr/libexec/xscreensaver/piecewise Comment=This draws a bunch of moving circles which switch from visibility to invisibility at intersection points. Written by Geoffrey Irving. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pinion.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pinion.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pinion.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pinion.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pinion -Exec=/usr/lib/xscreensaver/pinion -root -TryExec=/usr/lib/xscreensaver/pinion +Exec=/usr/libexec/xscreensaver/pinion -root +TryExec=/usr/libexec/xscreensaver/pinion Comment=Draws an interconnected set of gears moving across the screen. See also the "Gears" and "MoebiusGears" screen savers. http://en.wikipedia.org/wiki/Involute_gear Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pipes.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pipes.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pipes.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pipes.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pipes -Exec=/usr/lib/xscreensaver/pipes -root -TryExec=/usr/lib/xscreensaver/pipes +Exec=/usr/libexec/xscreensaver/pipes -root +TryExec=/usr/libexec/xscreensaver/pipes Comment=A growing plumbing system, with bolts and valves. Written by Marcelo Vianna. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/polyhedra.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/polyhedra.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/polyhedra.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/polyhedra.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Polyhedra -Exec=/usr/lib/xscreensaver/polyhedra -root -TryExec=/usr/lib/xscreensaver/polyhedra +Exec=/usr/libexec/xscreensaver/polyhedra -root +TryExec=/usr/libexec/xscreensaver/polyhedra Comment=Displays different 3D solids and some information about each. A new solid is chosen every few seconds. There are 75 uniform polyhedra, plus 5 infinite sets of prisms and antiprisms; including their duals brings the total to 160. http://en.wikipedia.org/wiki/Uniform_polyhedra Written by Dr. Zvi Har'El and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/polyominoes.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/polyominoes.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/polyominoes.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/polyominoes.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Polyominoes -Exec=/usr/lib/xscreensaver/polyominoes -root -TryExec=/usr/lib/xscreensaver/polyominoes +Exec=/usr/libexec/xscreensaver/polyominoes -root +TryExec=/usr/libexec/xscreensaver/polyominoes Comment=Repeatedly attempts to completely fill a rectangle with irregularly-shaped puzzle pieces. http://en.wikipedia.org/wiki/Polyomino Written by Stephen Montgomery-Smith. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/polytopes.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/polytopes.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/polytopes.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/polytopes.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Polytopes -Exec=/usr/lib/xscreensaver/polytopes -root -TryExec=/usr/lib/xscreensaver/polytopes +Exec=/usr/libexec/xscreensaver/polytopes -root +TryExec=/usr/libexec/xscreensaver/polytopes Comment=This shows one of the six regular 4D polytopes rotating in 4D. Inspired by H.S.M Coxeter's book "Regular Polytopes", 3rd Edition, Dover Publications, Inc., 1973, and Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions", Scientific American Library, 1990. http://en.wikipedia.org/wiki/Hypercube http://en.wikipedia.org/wiki/Regular_polytope Written by Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pong.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pong.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pong.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pong.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pong -Exec=/usr/lib/xscreensaver/pong -root -TryExec=/usr/lib/xscreensaver/pong +Exec=/usr/libexec/xscreensaver/pong -root +TryExec=/usr/libexec/xscreensaver/pong Comment=This simulates the 1971 Pong home video game, as well as various artifacts from displaying it on a color TV set. In clock mode, the score keeps track of the current time. http://en.wikipedia.org/wiki/Pong Written by Jeremy English and Trevor Blackwell. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/projectiveplane.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/projectiveplane.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/projectiveplane.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/projectiveplane.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=ProjectivePlane -Exec=/usr/lib/xscreensaver/projectiveplane -root -TryExec=/usr/lib/xscreensaver/projectiveplane +Exec=/usr/libexec/xscreensaver/projectiveplane -root +TryExec=/usr/libexec/xscreensaver/projectiveplane Comment=This animates a 4D embedding of the real projective plane. You can walk on the surface of the real projective plane or rotate it in 4D or walk on it while it rotates in 4D. Inspired by Thomas Banchoff's book "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions", Scientific American Library, 1990. http://en.wikipedia.org/wiki/Real_projective_plane http://en.wikipedia.org/wiki/Roman_surface http://en.wikipedia.org/wiki/Cross_cap http://en.wikipedia.org/wiki/Moebius_strip http://mathworld.wolfram.com/RealProjectivePlane.html http://mathworld.wolfram.com/RomanSurface.html http://mathworld.wolfram.com/Cross-Cap.html http://mathworld.wolfram.com/MoebiusStrip.html Written by Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/providence.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/providence.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/providence.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/providence.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Providence -Exec=/usr/lib/xscreensaver/providence -root -TryExec=/usr/lib/xscreensaver/providence +Exec=/usr/libexec/xscreensaver/providence -root +TryExec=/usr/libexec/xscreensaver/providence Comment="A pyramid unfinished. In the zenith an eye in a triangle, surrounded by a glory, proper." http://en.wikipedia.org/wiki/Eye_of_Providence Written by Blair Tennessy. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pulsar.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pulsar.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pulsar.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pulsar.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pulsar -Exec=/usr/lib/xscreensaver/pulsar -root -TryExec=/usr/lib/xscreensaver/pulsar +Exec=/usr/libexec/xscreensaver/pulsar -root +TryExec=/usr/libexec/xscreensaver/pulsar Comment=Draws some intersecting planes, making use of alpha blending, fog, textures, and mipmaps. Written by David Konerding. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pyro.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pyro.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/pyro.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/pyro.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Pyro -Exec=/usr/lib/xscreensaver/pyro -root -TryExec=/usr/lib/xscreensaver/pyro +Exec=/usr/libexec/xscreensaver/pyro -root +TryExec=/usr/libexec/xscreensaver/pyro Comment=Exploding fireworks. See also the "Fireworkx", "Eruption", and "XFlame" screen savers. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/qix.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/qix.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/qix.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/qix.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Qix -Exec=/usr/lib/xscreensaver/qix -root -TryExec=/usr/lib/xscreensaver/qix +Exec=/usr/libexec/xscreensaver/qix -root +TryExec=/usr/libexec/xscreensaver/qix Comment=Bounces a series of line segments around the screen, and uses variations on this basic motion pattern to produce all sorts of different presentations: line segments, filled polygons, and overlapping translucent areas. http://en.wikipedia.org/wiki/Qix Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/quasicrystal.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/quasicrystal.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/quasicrystal.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/quasicrystal.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=QuasiCrystal -Exec=/usr/lib/xscreensaver/quasicrystal -root -TryExec=/usr/lib/xscreensaver/quasicrystal +Exec=/usr/libexec/xscreensaver/quasicrystal -root +TryExec=/usr/libexec/xscreensaver/quasicrystal Comment=A quasicrystal is a structure that is ordered but aperiodic. Two-dimensional quasicrystals can be generated by adding a set of planes where x is the sine of y. Different complex aperiodic plane tilings are produced depending on the period, position, and rotation of the component planes, and whether the rotation of the planes is evenly distributed around the circle (the "symmetry" option, above) or random. See also the "RD-Bomb", "CWaves" and "Penrose" screen savers. http://en.wikipedia.org/wiki/Quasicrystal Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/queens.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/queens.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/queens.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/queens.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Queens -Exec=/usr/lib/xscreensaver/queens -root -TryExec=/usr/lib/xscreensaver/queens +Exec=/usr/libexec/xscreensaver/queens -root +TryExec=/usr/libexec/xscreensaver/queens Comment=Solves the N-Queens problem (where N is between 5 and 10 queens). The problem is: how may one place N queens on an NxN chessboard such that no queen can attack a sister? See also the "Endgame" screen saver. http://en.wikipedia.org/wiki/Eight_queens_puzzle Written by Blair Tennessy. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/raverhoop.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/raverhoop.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/raverhoop.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/raverhoop.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=RaverHoop -Exec=/usr/lib/xscreensaver/raverhoop -root -TryExec=/usr/lib/xscreensaver/raverhoop +Exec=/usr/libexec/xscreensaver/raverhoop -root +TryExec=/usr/libexec/xscreensaver/raverhoop Comment=Simulates an LED hula hoop in a dark room. Oontz oontz oontz. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/razzledazzle.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/razzledazzle.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/razzledazzle.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/razzledazzle.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=RazzleDazzle -Exec=/usr/lib/xscreensaver/razzledazzle -root -TryExec=/usr/lib/xscreensaver/razzledazzle +Exec=/usr/libexec/xscreensaver/razzledazzle -root +TryExec=/usr/libexec/xscreensaver/razzledazzle Comment=Generates an infinitely-scrolling sequence of dazzle camouflage patterns. Dazzle Ships, in addition to being the best album by Orchestral Manoeuvres in the Dark, were military vessels during World War I and early in World War II that were painted not to conceal but to confuse: with these Cubist overlapping stripes, it was very hard to estimate their size, range and heading. This was a big deal before the invention of Radar. https://en.wikipedia.org/wiki/Dazzle_camouflage https://en.wikipedia.org/wiki/Cubism https://en.wikipedia.org/wiki/Dazzle_Ships_%28album%29 https://en.wikipedia.org/wiki/Acoustic_mirror https://en.wikipedia.org/wiki/Radar Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rd-bomb.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rd-bomb.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rd-bomb.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rd-bomb.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=RDbomb -Exec=/usr/lib/xscreensaver/rd-bomb -root -TryExec=/usr/lib/xscreensaver/rd-bomb +Exec=/usr/libexec/xscreensaver/rd-bomb -root +TryExec=/usr/libexec/xscreensaver/rd-bomb Comment=Draws a grid of growing square-like shapes that, once they overtake each other, react in unpredictable ways. "RD" stands for reaction-diffusion. Written by Scott Draves. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rdbomb.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rdbomb.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rdbomb.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rdbomb.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - -[Desktop Entry] -Name=RDbomb -Exec=/usr/lib/xscreensaver/rd-bomb -root -TryExec=/usr/lib/xscreensaver/rd-bomb -Comment=Draws a grid of growing square-like shapes that, once they overtake each other, react in unpredictable ways. "RD" stands for reaction-diffusion. Written by Scott Draves. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ripples.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ripples.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/ripples.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/ripples.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Ripples -Exec=/usr/lib/xscreensaver/ripples -root -TryExec=/usr/lib/xscreensaver/ripples +Exec=/usr/libexec/xscreensaver/ripples -root +TryExec=/usr/libexec/xscreensaver/ripples Comment=This draws rippling interference patterns like splashing water. With the -water option, it manipulates your desktop image to look like something is dripping into it. Written by Tom Hammersley. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rocks.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rocks.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rocks.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rocks.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Rocks -Exec=/usr/lib/xscreensaver/rocks -root -TryExec=/usr/lib/xscreensaver/rocks +Exec=/usr/libexec/xscreensaver/rocks -root +TryExec=/usr/libexec/xscreensaver/rocks Comment=This draws an animation of flight through an asteroid field, with changes in rotation and direction. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/romanboy.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/romanboy.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/romanboy.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/romanboy.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=RomanBoy -Exec=/usr/lib/xscreensaver/romanboy -root -TryExec=/usr/lib/xscreensaver/romanboy +Exec=/usr/libexec/xscreensaver/romanboy -root +TryExec=/usr/libexec/xscreensaver/romanboy Comment=A 3D immersion of the real projective plane that smoothly deforms between the Roman surface and the Boy surface. You can walk on the surface of the real projective plane or rotate it in 3D. Furthermore, it is possible to smoothly deform the real projective plane between the Roman surface and the Boy surface while turning it or walking on it. Inspired by François Apéry's book "Models of the Real Projective Plane", Vieweg, 1987. https://en.wikipedia.org/wiki/Boy%27s_surface https://en.wikipedia.org/wiki/Roman_surface http://mathworld.wolfram.com/BoySurface.html http://mathworld.wolfram.com/RomanSurface.html Written by Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rorschach.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rorschach.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rorschach.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rorschach.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Rorschach -Exec=/usr/lib/xscreensaver/rorschach -root -TryExec=/usr/lib/xscreensaver/rorschach +Exec=/usr/libexec/xscreensaver/rorschach -root +TryExec=/usr/libexec/xscreensaver/rorschach Comment=This generates random inkblot patterns via a reflected random walk. Any deep-seated neurotic tendencies which this program reveals are your own problem. http://en.wikipedia.org/wiki/Rorschach_inkblot_test http://en.wikipedia.org/wiki/Random_walk Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rotzoomer.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rotzoomer.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rotzoomer.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rotzoomer.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=RotZoomer -Exec=/usr/lib/xscreensaver/rotzoomer -root -TryExec=/usr/lib/xscreensaver/rotzoomer +Exec=/usr/libexec/xscreensaver/rotzoomer -root +TryExec=/usr/libexec/xscreensaver/rotzoomer Comment=Creates a collage of rotated and scaled portions of the screen. Written by Claudio Matsuoka. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rubikblocks.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rubikblocks.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rubikblocks.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rubikblocks.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=RubikBlocks -Exec=/usr/lib/xscreensaver/rubikblocks -root -TryExec=/usr/lib/xscreensaver/rubikblocks +Exec=/usr/libexec/xscreensaver/rubikblocks -root +TryExec=/usr/libexec/xscreensaver/rubikblocks Comment=Animates the Rubik's Mirror Blocks puzzle. See also the "Rubik", "Cube21", and "GLSnake" screen savers. http://en.wikipedia.org/wiki/Combination_puzzles#Irregular_Cuboids Written by Vasek Potocek. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rubik.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rubik.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/rubik.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/rubik.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Rubik -Exec=/usr/lib/xscreensaver/rubik -root -TryExec=/usr/lib/xscreensaver/rubik +Exec=/usr/libexec/xscreensaver/rubik -root +TryExec=/usr/libexec/xscreensaver/rubik Comment=Draws a Rubik's Cube that rotates in three dimensions and repeatedly shuffles and solves itself. See also the "GLSnake" and "Cube21" screen savers. http://en.wikipedia.org/wiki/Rubik%27s_Cube Written by Marcelo Vianna. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sballs.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sballs.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sballs.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sballs.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=SBalls -Exec=/usr/lib/xscreensaver/sballs -root -TryExec=/usr/lib/xscreensaver/sballs +Exec=/usr/libexec/xscreensaver/sballs -root +TryExec=/usr/libexec/xscreensaver/sballs Comment=Draws an animation of textured balls spinning like crazy. Written by Eric Lassauge. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/scooter.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/scooter.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/scooter.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/scooter.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=Scooter +Exec=/usr/libexec/xscreensaver/scooter -root +TryExec=/usr/libexec/xscreensaver/scooter +Comment=Zooming down a tunnel in a star field. Originally an Amiga hack. Written by Sven Thoennissen; 2001. Ported by EoflaOE. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/shadebobs.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/shadebobs.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/shadebobs.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/shadebobs.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=ShadeBobs -Exec=/usr/lib/xscreensaver/shadebobs -root -TryExec=/usr/lib/xscreensaver/shadebobs +Exec=/usr/libexec/xscreensaver/shadebobs -root +TryExec=/usr/libexec/xscreensaver/shadebobs Comment=This draws smoothly-shaded oscillating oval patterns that look something like vapor trails or neon tubes. Written by Shane Smit. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sierpinski3d.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sierpinski3d.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sierpinski3d.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sierpinski3d.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Sierpinski3D -Exec=/usr/lib/xscreensaver/sierpinski3d -root -TryExec=/usr/lib/xscreensaver/sierpinski3d +Exec=/usr/libexec/xscreensaver/sierpinski3d -root +TryExec=/usr/libexec/xscreensaver/sierpinski3d Comment=This draws the Sierpinski tetrahedron fractal, the three-dimensional variant of the recursive Sierpinski triangle. http://en.wikipedia.org/wiki/Sierpinski_triangle#Analogs_in_higher_dimension Written by Tim Robinson and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sierpinski.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sierpinski.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sierpinski.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sierpinski.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Sierpinski -Exec=/usr/lib/xscreensaver/sierpinski -root -TryExec=/usr/lib/xscreensaver/sierpinski +Exec=/usr/libexec/xscreensaver/sierpinski -root +TryExec=/usr/libexec/xscreensaver/sierpinski Comment=This draws the two-dimensional variant of the recursive Sierpinski triangle fractal. See also the "Sierpinski3D" screen saver. http://en.wikipedia.org/wiki/Sierpinski_triangle Written by Desmond Daignault. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/skytentacles.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/skytentacles.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/skytentacles.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/skytentacles.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=SkyTentacles -Exec=/usr/lib/xscreensaver/skytentacles -root -TryExec=/usr/lib/xscreensaver/skytentacles +Exec=/usr/libexec/xscreensaver/skytentacles -root +TryExec=/usr/libexec/xscreensaver/skytentacles Comment=There is a tentacled abomination in the sky. From above you it devours. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/slidescreen.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/slidescreen.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/slidescreen.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/slidescreen.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=SlideScreen -Exec=/usr/lib/xscreensaver/slidescreen -root -TryExec=/usr/lib/xscreensaver/slidescreen +Exec=/usr/libexec/xscreensaver/slidescreen -root +TryExec=/usr/libexec/xscreensaver/slidescreen Comment=This takes an image, divides it into a grid, and then randomly shuffles the squares around as if it was one of those "fifteen-puzzle" games where there is a grid of squares, one of which is missing. http://en.wikipedia.org/wiki/Fifteen_puzzle Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/slip.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/slip.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/slip.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/slip.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Slip -Exec=/usr/lib/xscreensaver/slip -root -TryExec=/usr/lib/xscreensaver/slip +Exec=/usr/libexec/xscreensaver/slip -root +TryExec=/usr/libexec/xscreensaver/slip Comment=This throws some random bits on the screen, then sucks them through a jet engine and spews them out the other side. To avoid turning the image completely to mush, every now and then it will it interject some splashes of color into the scene, or go into a spin cycle, or stretch the image like taffy. Written by Scott Draves and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sonar.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sonar.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sonar.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sonar.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Sonar -Exec=/usr/lib/xscreensaver/sonar -root -TryExec=/usr/lib/xscreensaver/sonar +Exec=/usr/libexec/xscreensaver/sonar -root +TryExec=/usr/libexec/xscreensaver/sonar Comment=This draws a sonar screen that pings (get it?) the hosts on your local network, and plots their distance (response time) from you. The three rings represent ping times of approximately 2.5, 70 and 2,000 milliseconds respectively. Alternately, it can run a simulation that doesn't involve hosts. (If pinging doesn't work, you may need to make the executable be setuid.) http://en.wikipedia.org/wiki/Ping#History Written by Stephen Martin and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/speedmine.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/speedmine.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/speedmine.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/speedmine.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=SpeedMine -Exec=/usr/lib/xscreensaver/speedmine -root -TryExec=/usr/lib/xscreensaver/speedmine +Exec=/usr/libexec/xscreensaver/speedmine -root +TryExec=/usr/libexec/xscreensaver/speedmine Comment=Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written by Conrad Parker. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sphereeversion.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sphereeversion.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sphereeversion.desktop 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sphereeversion.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,6 @@ + +[Desktop Entry] +Name=SphereEversion +Exec=/usr/libexec/xscreensaver/sphereeversion -root +TryExec=/usr/libexec/xscreensaver/sphereeversion +Comment=Turns a sphere inside out: a smooth deformation (homotopy). During the eversion, the deformed sphere is allowed to intersect itself transversally, however, no creases or pinch points occur. Inspired by the following paper: Adam Bednorz, Witold Bednorz: "Analytic sphere eversion using ruled surfaces", Differential Geometry and its Applications 64:59-79, 2019. https://en.wikipedia.org/wiki/Sphere_eversion https://mathworld.wolfram.com/SphereEversion.html Written by Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/spheremonics.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/spheremonics.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/spheremonics.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/spheremonics.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Spheremonics -Exec=/usr/lib/xscreensaver/spheremonics -root -TryExec=/usr/lib/xscreensaver/spheremonics +Exec=/usr/libexec/xscreensaver/spheremonics -root +TryExec=/usr/libexec/xscreensaver/spheremonics Comment=These closed objects are commonly called spherical harmonics, although they are only remotely related to the mathematical definition found in the solution to certain wave functions, most notably the eigenfunctions of angular momentum operators. http://en.wikipedia.org/wiki/Spherical_harmonics#Visualization_of_the_spherical_harmonics Written by Paul Bourke and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/splitflap.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/splitflap.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/splitflap.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/splitflap.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=SplitFlap -Exec=/usr/lib/xscreensaver/splitflap -root -TryExec=/usr/lib/xscreensaver/splitflap +Exec=/usr/libexec/xscreensaver/splitflap -root +TryExec=/usr/libexec/xscreensaver/splitflap Comment=Simulates a split-flap display, an old style of electromechanical sign as seen in airports and train stations, and commonly used in alarm clocks in the 1960s and 1970s. https://en.wikipedia.org/wiki/Split-flap_display https://en.wikipedia.org/wiki/Flip_clock Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/splodesic.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/splodesic.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/splodesic.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/splodesic.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Splodesic -Exec=/usr/lib/xscreensaver/splodesic -root -TryExec=/usr/lib/xscreensaver/splodesic +Exec=/usr/libexec/xscreensaver/splodesic -root +TryExec=/usr/libexec/xscreensaver/splodesic Comment=A geodesic sphere experiences a series of eruptions. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/spotlight.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/spotlight.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/spotlight.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/spotlight.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Spotlight -Exec=/usr/lib/xscreensaver/spotlight -root -TryExec=/usr/lib/xscreensaver/spotlight +Exec=/usr/libexec/xscreensaver/spotlight -root +TryExec=/usr/libexec/xscreensaver/spotlight Comment=Draws a spotlight scanning across a black screen, illuminating the underlying desktop (or a picture) when it passes. Written by Rick Schultz and Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sproingies.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sproingies.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/sproingies.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/sproingies.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Sproingies -Exec=/usr/lib/xscreensaver/sproingies -root -TryExec=/usr/lib/xscreensaver/sproingies +Exec=/usr/libexec/xscreensaver/sproingies -root +TryExec=/usr/libexec/xscreensaver/sproingies Comment=Slinky-like creatures walk down an infinite staircase and occasionally explode! http://en.wikipedia.org/wiki/Slinky http://en.wikipedia.org/wiki/Q%2Abert http://en.wikipedia.org/wiki/Marble_Madness Written by Ed Mackey. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/squiral.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/squiral.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/squiral.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/squiral.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Squiral -Exec=/usr/lib/xscreensaver/squiral -root -TryExec=/usr/lib/xscreensaver/squiral +Exec=/usr/libexec/xscreensaver/squiral -root +TryExec=/usr/libexec/xscreensaver/squiral Comment=Draws a set of interacting, square-spiral-producing automata. The spirals grow outward until they hit something, then they go around it. Written by Jeff Epler. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/stairs.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/stairs.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/stairs.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/stairs.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Stairs -Exec=/usr/lib/xscreensaver/stairs -root -TryExec=/usr/lib/xscreensaver/stairs +Exec=/usr/libexec/xscreensaver/stairs -root +TryExec=/usr/libexec/xscreensaver/stairs Comment=Escher's infinite staircase. http://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Written by Marcelo Vianna. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/starfish.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/starfish.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/starfish.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/starfish.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Starfish -Exec=/usr/lib/xscreensaver/starfish -root -TryExec=/usr/lib/xscreensaver/starfish +Exec=/usr/libexec/xscreensaver/starfish -root +TryExec=/usr/libexec/xscreensaver/starfish Comment=This generates a sequence of undulating, throbbing, star-like patterns which pulsate, rotate, and turn inside out. Another display mode uses these shapes to lay down a field of colors, which are then cycled. The motion is very organic. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/starwars.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/starwars.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/starwars.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/starwars.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=StarWars -Exec=/usr/lib/xscreensaver/starwars -root -TryExec=/usr/lib/xscreensaver/starwars +Exec=/usr/libexec/xscreensaver/starwars -root +TryExec=/usr/libexec/xscreensaver/starwars Comment=Draws a stream of text slowly scrolling into the distance at an angle, over a star field, like at the beginning of the movie of the same name. http://en.wikipedia.org/wiki/Star_Wars_opening_crawl Written by Jamie Zawinski and Claudio Matauoka. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/stonerview.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/stonerview.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/stonerview.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/stonerview.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=StonerView -Exec=/usr/lib/xscreensaver/stonerview -root -TryExec=/usr/lib/xscreensaver/stonerview +Exec=/usr/libexec/xscreensaver/stonerview -root +TryExec=/usr/libexec/xscreensaver/stonerview Comment=Chains of colorful squares dance around each other in complex spiral patterns. Inspired by David Tristram's `electropaint' screen saver, originally written for SGI computers in the late 1980s or early 1990s. Written by Andrew Plotkin. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/strange.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/strange.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/strange.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/strange.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Strange -Exec=/usr/lib/xscreensaver/strange -root -TryExec=/usr/lib/xscreensaver/strange +Exec=/usr/libexec/xscreensaver/strange -root +TryExec=/usr/libexec/xscreensaver/strange Comment=This draws iterations to strange attractors: it's a colorful, unpredictably-animating swarm of dots that swoops and twists around. http://en.wikipedia.org/wiki/Attractor#Strange_attractor Written by Massimino Pascal. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/substrate.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/substrate.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/substrate.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/substrate.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Substrate -Exec=/usr/lib/xscreensaver/substrate -root -TryExec=/usr/lib/xscreensaver/substrate +Exec=/usr/libexec/xscreensaver/substrate -root +TryExec=/usr/libexec/xscreensaver/substrate Comment=Crystalline lines grow on a computational substrate. A simple perpendicular growth rule creates intricate city-like structures. Written by J. Tarbell and Mike Kershaw. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/superquadrics.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/superquadrics.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/superquadrics.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/superquadrics.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Superquadrics -Exec=/usr/lib/xscreensaver/superquadrics -root -TryExec=/usr/lib/xscreensaver/superquadrics +Exec=/usr/libexec/xscreensaver/superquadrics -root +TryExec=/usr/libexec/xscreensaver/superquadrics Comment=Morphing 3D shapes. Written by Ed Mackey. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/surfaces.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/surfaces.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/surfaces.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/surfaces.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Surfaces -Exec=/usr/lib/xscreensaver/surfaces -root -TryExec=/usr/lib/xscreensaver/surfaces +Exec=/usr/libexec/xscreensaver/surfaces -root +TryExec=/usr/libexec/xscreensaver/surfaces Comment=This draws a visualization of several interesting parametric surfaces. http://mathworld.wolfram.com/DinisSurface.html http://en.wikipedia.org/wiki/Enneper_surface http://mathworld.wolfram.com/EnnepersMinimalSurface.html http://mathworld.wolfram.com/KuenSurface.html http://en.wikipedia.org/wiki/Moebius_strip http://mathworld.wolfram.com/Seashell.html http://mathworld.wolfram.com/SwallowtailCatastrophe.html http://mathworld.wolfram.com/BohemianDome.html http://en.wikipedia.org/wiki/Whitney_umbrella http://mathworld.wolfram.com/PlueckersConoid.html http://mathworld.wolfram.com/HennebergsMinimalSurface.html http://mathworld.wolfram.com/CatalansSurface.html http://mathworld.wolfram.com/CorkscrewSurface.html Written by Andrey Mirtchovski and Carsten Steger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/swirl.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/swirl.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/swirl.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/swirl.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Swirl -Exec=/usr/lib/xscreensaver/swirl -root -TryExec=/usr/lib/xscreensaver/swirl +Exec=/usr/libexec/xscreensaver/swirl -root +TryExec=/usr/libexec/xscreensaver/swirl Comment=Flowing, swirly patterns. Written by M. Dobie and R. Taylor. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/tangram.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/tangram.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/tangram.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/tangram.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Tangram -Exec=/usr/lib/xscreensaver/tangram -root -TryExec=/usr/lib/xscreensaver/tangram +Exec=/usr/libexec/xscreensaver/tangram -root +TryExec=/usr/libexec/xscreensaver/tangram Comment=Solves tangram puzzles. http://en.wikipedia.org/wiki/Tangram Written by Jeremy English. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/tessellimage.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/tessellimage.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/tessellimage.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/tessellimage.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Tessellimage -Exec=/usr/lib/xscreensaver/tessellimage -root -TryExec=/usr/lib/xscreensaver/tessellimage +Exec=/usr/libexec/xscreensaver/tessellimage -root +TryExec=/usr/libexec/xscreensaver/tessellimage Comment=Converts an image to triangles using Delaunay tessellation, and animates the result at various depths. More triangles are allocated to visually complex parts of the image. This is accomplished by first computing the first derivative of the image: the distance between each pixel and its neighbors (which is essentially edge detection or embossing). Then the Delaunay control points are chosen by selecting those pixels whose distance value is above a certain threshold: those are the pixels that have the largest change in color/brightness. http://en.wikipedia.org/wiki/Delaunay_triangulation Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/thornbird.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/thornbird.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/thornbird.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/thornbird.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Thornbird -Exec=/usr/lib/xscreensaver/thornbird -root -TryExec=/usr/lib/xscreensaver/thornbird +Exec=/usr/libexec/xscreensaver/thornbird -root +TryExec=/usr/libexec/xscreensaver/thornbird Comment=Displays a view of the "Bird in a Thornbush" fractal. Written by Tim Auckland. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/timetunnel.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/timetunnel.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/timetunnel.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/timetunnel.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=TimeTunnel -Exec=/usr/lib/xscreensaver/timetunnel -root -TryExec=/usr/lib/xscreensaver/timetunnel +Exec=/usr/libexec/xscreensaver/timetunnel -root +TryExec=/usr/libexec/xscreensaver/timetunnel Comment=Draws an animation similar to the opening and closing effects on the Dr. Who TV show. Written by Sean P. Brennan. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/topblock.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/topblock.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/topblock.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/topblock.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=TopBlock -Exec=/usr/lib/xscreensaver/topblock -root -TryExec=/usr/lib/xscreensaver/topblock +Exec=/usr/libexec/xscreensaver/topblock -root +TryExec=/usr/libexec/xscreensaver/topblock Comment=Creates a 3D world with dropping blocks that build up and up. Written by rednuht. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/triangle.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/triangle.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/triangle.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/triangle.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Triangle -Exec=/usr/lib/xscreensaver/triangle -root -TryExec=/usr/lib/xscreensaver/triangle +Exec=/usr/libexec/xscreensaver/triangle -root +TryExec=/usr/libexec/xscreensaver/triangle Comment=Generates random mountain ranges using iterative subdivision of triangles. Written by Tobias Gloth. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/tronbit.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/tronbit.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/tronbit.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/tronbit.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=TronBit -Exec=/usr/lib/xscreensaver/tronbit -root -TryExec=/usr/lib/xscreensaver/tronbit +Exec=/usr/libexec/xscreensaver/tronbit -root +TryExec=/usr/libexec/xscreensaver/tronbit Comment=Draws an animation of the character "Bit" from the film, "Tron". The "yes" state is a tetrahedron; the "no" state is the second stellation of an icosahedron; and the idle state oscillates between a small triambic icosahedron and the compound of an icosahedron and a dodecahedron. http://en.wikipedia.org/wiki/List_of_Tron_characters#Bit http://en.wikipedia.org/wiki/Uniform_polyhedra http://en.wikipedia.org/wiki/Stellation Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/truchet.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/truchet.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/truchet.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/truchet.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Truchet -Exec=/usr/lib/xscreensaver/truchet -root -TryExec=/usr/lib/xscreensaver/truchet +Exec=/usr/libexec/xscreensaver/truchet -root +TryExec=/usr/libexec/xscreensaver/truchet Comment=This draws line- and arc-based truchet patterns that tile the screen. http://en.wikipedia.org/wiki/Tessellation Written by Adrian Likins. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/twang.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/twang.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/twang.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/twang.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Twang -Exec=/usr/lib/xscreensaver/twang -root -TryExec=/usr/lib/xscreensaver/twang +Exec=/usr/libexec/xscreensaver/twang -root +TryExec=/usr/libexec/xscreensaver/twang Comment=Divides the screen into a grid, and plucks them. Written by Dan Bornstein. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/unicrud.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/unicrud.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/unicrud.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/unicrud.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Unicrud -Exec=/usr/lib/xscreensaver/unicrud -root -TryExec=/usr/lib/xscreensaver/unicrud +Exec=/usr/libexec/xscreensaver/unicrud -root +TryExec=/usr/libexec/xscreensaver/unicrud Comment=Chooses a random Unicode character and displays it full screen, along with some information about it. https://en.wikipedia.org/wiki/Unicode Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/unknownpleasures.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/unknownpleasures.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/unknownpleasures.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/unknownpleasures.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=UnknownPleasures -Exec=/usr/lib/xscreensaver/unknownpleasures -root -TryExec=/usr/lib/xscreensaver/unknownpleasures +Exec=/usr/libexec/xscreensaver/unknownpleasures -root +TryExec=/usr/libexec/xscreensaver/unknownpleasures Comment=PSR B1919+21 (AKA CP 1919) was the first pulsar ever discovered: a spinning neutron star emitting a periodic lighthouse-like beacon. An illustration of the signal received from it was published in Scientific American in 1971, and later in The Cambridge Encyclopedia of Astronomy in 1977, where it was seen by Stephen Morris, the drummer of Joy Division, and was consequently appropriated by Peter Saville for the cover of the band's album "Unknown Pleasures". http://en.wikipedia.org/wiki/Pulsar http://en.wikipedia.org/wiki/PSR_B1919%2B21 http://en.wikipedia.org/wiki/Unknown_Pleasures http://en.wikipedia.org/wiki/Peter_Saville_%28graphic_designer%29 http://en.wikipedia.org/wiki/Joy_Division Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vermiculate.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vermiculate.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vermiculate.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vermiculate.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Vermiculate -Exec=/usr/lib/xscreensaver/vermiculate -root -TryExec=/usr/lib/xscreensaver/vermiculate +Exec=/usr/libexec/xscreensaver/vermiculate -root +TryExec=/usr/libexec/xscreensaver/vermiculate Comment=Draws squiggly worm-like paths. Written by Tyler Pierce. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vfeedback.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vfeedback.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vfeedback.desktop 2018-09-28 21:19:06.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vfeedback.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] -Name=Vfeedback -Exec=/usr/lib/xscreensaver/vfeedback -root -TryExec=/usr/lib/xscreensaver/vfeedback +Name=VFeedback +Exec=/usr/libexec/xscreensaver/vfeedback -root +TryExec=/usr/libexec/xscreensaver/vfeedback Comment=Simulates video feedback: pointing a video camera at an NTSC television. Written by Jamie Zawinski; 2018. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vidwhacker.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vidwhacker.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vidwhacker.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vidwhacker.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=VidWhacker -Exec=/usr/lib/xscreensaver/vidwhacker -root -TryExec=/usr/lib/xscreensaver/vidwhacker +Exec=/usr/libexec/xscreensaver/vidwhacker -root +TryExec=/usr/libexec/xscreensaver/vidwhacker Comment=This is a shell script that grabs a frame of video from the system's video input, and then uses some PBM filters (chosen at random) to manipulate and recombine the video frame in various ways (edge detection, subtracting the image from a rotated version of itself, etc.) Then it displays that image for a few seconds, and does it again. This works really well if you just feed broadcast television into it. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vigilance.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vigilance.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/vigilance.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/vigilance.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Vigilance -Exec=/usr/lib/xscreensaver/vigilance -root -TryExec=/usr/lib/xscreensaver/vigilance +Exec=/usr/libexec/xscreensaver/vigilance -root +TryExec=/usr/libexec/xscreensaver/vigilance Comment=Security cameras keep careful track of their surroundings. You can trust them. Everything is completely under control. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/voronoi.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/voronoi.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/voronoi.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/voronoi.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Voronoi -Exec=/usr/lib/xscreensaver/voronoi -root -TryExec=/usr/lib/xscreensaver/voronoi +Exec=/usr/libexec/xscreensaver/voronoi -root +TryExec=/usr/libexec/xscreensaver/voronoi Comment=Draws a randomly-colored Voronoi tessellation, and periodically zooms in and adds new points. The existing points also wander around. There are a set of control points on the plane, each at the center of a colored cell. Every pixel within that cell is closer to that cell's control point than to any other control point. That is what determines the cell's shapes. http://en.wikipedia.org/wiki/Voronoi_diagram Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/wander.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/wander.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/wander.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/wander.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Wander -Exec=/usr/lib/xscreensaver/wander -root -TryExec=/usr/lib/xscreensaver/wander +Exec=/usr/libexec/xscreensaver/wander -root +TryExec=/usr/libexec/xscreensaver/wander Comment=Draws a colorful random-walk, in various forms. http://en.wikipedia.org/wiki/Random_walk Written by Rick Campbell. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/webcollage.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/webcollage.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/webcollage.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/webcollage.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=WebCollage -Exec=/usr/lib/xscreensaver/webcollage -root -TryExec=/usr/lib/xscreensaver/webcollage +Exec=/usr/libexec/xscreensaver/webcollage -root +TryExec=/usr/libexec/xscreensaver/webcollage Comment=This makes collages out of random images pulled off of the World Wide Web. It finds these images by doing random web searches, and then extracting images from the returned pages. WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY. The Internet being what it is, absolutely anything might show up in the collage including -- quite possibly -- pornography, or even nudity. Please act accordingly. See also http://www.jwz.org/webcollage/ Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/whirlwindwarp.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/whirlwindwarp.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/whirlwindwarp.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/whirlwindwarp.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=WhirlWindWarp -Exec=/usr/lib/xscreensaver/whirlwindwarp -root -TryExec=/usr/lib/xscreensaver/whirlwindwarp +Exec=/usr/libexec/xscreensaver/whirlwindwarp -root +TryExec=/usr/libexec/xscreensaver/whirlwindwarp Comment=Floating stars are acted upon by a mixture of simple 2D forcefields. The strength of each forcefield changes continuously, and it is also switched on and off at random. Written by Paul 'Joey' Clark. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/winduprobot.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/winduprobot.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/winduprobot.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/winduprobot.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=WindupRobot -Exec=/usr/lib/xscreensaver/winduprobot -root -TryExec=/usr/lib/xscreensaver/winduprobot +Exec=/usr/libexec/xscreensaver/winduprobot -root +TryExec=/usr/libexec/xscreensaver/winduprobot Comment=A swarm of wind-up toy robots wander around the table-top, bumping into each other. Each robot contains a mechanically accurate gear system inside, which you can see when the robot's shell occasionally fades to transparency. Also, sometimes a cartoony word bubble pops up above a robot, full of random text. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/wormhole.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/wormhole.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/wormhole.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/wormhole.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Wormhole -Exec=/usr/lib/xscreensaver/wormhole -root -TryExec=/usr/lib/xscreensaver/wormhole +Exec=/usr/libexec/xscreensaver/wormhole -root +TryExec=/usr/libexec/xscreensaver/wormhole Comment=Flying through a colored wormhole in space. Written by Jon Rafkind. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xanalogtv.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xanalogtv.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xanalogtv.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xanalogtv.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XAnalogTV -Exec=/usr/lib/xscreensaver/xanalogtv -root -TryExec=/usr/lib/xscreensaver/xanalogtv +Exec=/usr/libexec/xscreensaver/xanalogtv -root +TryExec=/usr/libexec/xscreensaver/xanalogtv Comment=XAnalogTV shows a detailed simulation of an old TV set showing various test patterns, with various picture artifacts like snow, bloom, distortion, ghosting, and hash noise. It also simulates the TV warming up. It will cycle through 12 channels, some with images you give it, and some with color bars or nothing but static. Written by Trevor Blackwell. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xflame.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xflame.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xflame.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xflame.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XFlame -Exec=/usr/lib/xscreensaver/xflame -root -TryExec=/usr/lib/xscreensaver/xflame +Exec=/usr/libexec/xscreensaver/xflame -root +TryExec=/usr/libexec/xscreensaver/xflame Comment=Draws a simulation of pulsing fire. It can also take an arbitrary image and set it on fire too. Written by Carsten Haitzler and many others. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xjack.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xjack.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xjack.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xjack.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XJack -Exec=/usr/lib/xscreensaver/xjack -root -TryExec=/usr/lib/xscreensaver/xjack +Exec=/usr/libexec/xscreensaver/xjack -root +TryExec=/usr/libexec/xscreensaver/xjack Comment=This behaves schizophrenically and makes a lot of typos. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xlyap.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xlyap.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xlyap.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xlyap.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XLyap -Exec=/usr/lib/xscreensaver/xlyap -root -TryExec=/usr/lib/xscreensaver/xlyap +Exec=/usr/libexec/xscreensaver/xlyap -root +TryExec=/usr/libexec/xscreensaver/xlyap Comment=This generates pretty fractal pictures via the Lyapunov exponent. http://en.wikipedia.org/wiki/Lyapunov_exponent Written by Ron Record. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xmatrix.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xmatrix.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xmatrix.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xmatrix.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XMatrix -Exec=/usr/lib/xscreensaver/xmatrix -root -TryExec=/usr/lib/xscreensaver/xmatrix +Exec=/usr/libexec/xscreensaver/xmatrix -root +TryExec=/usr/libexec/xscreensaver/xmatrix Comment=Draws dropping characters similar to what is seen on the computer monitors in "The Matrix". See also "GLMatrix" for a 3D rendering of the similar effect that appeared in the movie's title sequence. Written by Jamie Zawinski. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xrayswarm.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xrayswarm.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xrayswarm.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xrayswarm.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XRaySwarm -Exec=/usr/lib/xscreensaver/xrayswarm -root -TryExec=/usr/lib/xscreensaver/xrayswarm +Exec=/usr/libexec/xscreensaver/xrayswarm -root +TryExec=/usr/libexec/xscreensaver/xrayswarm Comment=Draws a few swarms of critters flying around the screen, with faded color trails behind them. Written by Chris Leger. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xspirograph.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xspirograph.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/xspirograph.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/xspirograph.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=XSpirograph -Exec=/usr/lib/xscreensaver/xspirograph -root -TryExec=/usr/lib/xscreensaver/xspirograph +Exec=/usr/libexec/xscreensaver/xspirograph -root +TryExec=/usr/libexec/xscreensaver/xspirograph Comment=Simulates that pen-in-nested-plastic-gears toy from your childhood. http://en.wikipedia.org/wiki/Spirograph Written by Rohit Singh. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/zoom.desktop xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/zoom.desktop --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-files/zoom.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-files/zoom.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,6 @@ [Desktop Entry] Name=Zoom -Exec=/usr/lib/xscreensaver/zoom -root -TryExec=/usr/lib/xscreensaver/zoom +Exec=/usr/libexec/xscreensaver/zoom -root +TryExec=/usr/libexec/xscreensaver/zoom Comment=Zooms in on a part of the screen and then moves around. With the "Lenses" option, the result is like looking through many overlapping lenses rather than just a simple zoom. Written by James Macnicol. diff -Nru xscreensaver-5.42+dfsg1/debian/screensavers-desktop-qa.sh xscreensaver-5.45+dfsg1/debian/screensavers-desktop-qa.sh --- xscreensaver-5.42+dfsg1/debian/screensavers-desktop-qa.sh 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/screensavers-desktop-qa.sh 2021-06-14 23:21:52.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # Checks our desktop files and compare them to upstream xml files. # Or, provided an xml file as argument, generates a desktop file. -# 2008-2012 Tormod Volden +# 2008-2020 Tormod Volden # Some xml files are for external programs or hacks that are not built. # We do not ship desktop files for those. @@ -12,7 +12,6 @@ fireflies \ goban \ rdbomb \ - sphereeversion \ xaos \ xdaliclock \ xmountains \ @@ -36,12 +35,13 @@ sphere \ spiral \ t3d \ + testx11 \ vines \ whirlygig \ worm \ " -# Poor man's xml parser "can i haz xml purrser" +# Poor man's xml parser get_xml_option () { file=$1 tag=$2 @@ -85,8 +85,8 @@ [Desktop Entry] Name=$XMLLABEL - Exec=/usr/lib/xscreensaver/$XMLEXE - TryExec=/usr/lib/xscreensaver/$XMLNAME + Exec=/usr/libexec/xscreensaver/$XMLEXE + TryExec=/usr/libexec/xscreensaver/$XMLNAME Comment=$XMLDES EODESKTOP exit 0 @@ -126,7 +126,7 @@ extract_entries $XML DSKEXE=`sed -n '/^Exec=/s@Exec=@@p' < $DSK` - DSKEXE=${DSKEXE#/usr/lib/xscreensaver/} + DSKEXE=${DSKEXE#/usr/libexec/xscreensaver/} if [ x"$XMLEXE" = x ] || [ x"$DSKEXE" = x ] || [ x"$XMLEXE" != x"$DSKEXE" ]; then @@ -141,7 +141,7 @@ fi DSKTRY=`sed -n '/^TryExec=/s@TryExec=@@p' < $DSK` - DSKTRY=${DSKTRY#/usr/lib/xscreensaver/} + DSKTRY=${DSKTRY#/usr/libexec/xscreensaver/} if [ x"$XMLNAME" = x ] || [ x"$DSKTRY" = x ] || [ x"$XMLNAME" != x"$DSKTRY" ]; then diff -Nru xscreensaver-5.42+dfsg1/debian/split-hacks.config xscreensaver-5.45+dfsg1/debian/split-hacks.config --- xscreensaver-5.42+dfsg1/debian/split-hacks.config 2019-01-27 20:52:13.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/split-hacks.config 2021-06-14 23:21:52.000000000 +0000 @@ -14,6 +14,7 @@ attraction xscreensaver-data-extra atunnel xscreensaver-gl barcode xscreensaver-data-extra +beats xscreensaver-gl binaryring xscreensaver-data blaster xscreensaver-data-extra blinkbox xscreensaver-gl @@ -38,6 +39,7 @@ companioncube xscreensaver-gl-extra compass xscreensaver-data-extra coral xscreensaver-data-extra +covid19 xscreensaver-gl crackberg xscreensaver-gl-extra crumbler xscreensaver-gl crystal xscreensaver-data-extra @@ -52,6 +54,7 @@ dangerball xscreensaver-gl-extra decayscreen xscreensaver-data-extra deco xscreensaver-data +deepstars xscreensaver-gl-extra deluxe xscreensaver-data-extra demon xscreensaver-data-extra discoball xscreensaver-gl @@ -65,6 +68,7 @@ epicycle xscreensaver-data-extra eruption xscreensaver-data-extra esper xscreensaver-gl +etruscanvenus xscreensaver-gl euler2d xscreensaver-data-extra extrusion xscreensaver-gl-extra fadeplot xscreensaver-data-extra @@ -86,6 +90,7 @@ geodesic xscreensaver-gl High CPU on Radeon geodesicgears xscreensaver-gl gflux xscreensaver-gl +gibson xscreensaver-gl glblur xscreensaver-gl glcells xscreensaver-gl gleidescope xscreensaver-gl @@ -100,10 +105,12 @@ gltext xscreensaver-gl goop xscreensaver-data-extra grav xscreensaver-data-extra +gravitywell xscreensaver-gl-extra greynetic xscreensaver-data-extra halftone xscreensaver-data-extra halo xscreensaver-data-extra handsy xscreensaver-gl-extra +headroom xscreensaver-gl helix xscreensaver-data-extra hexadrop xscreensaver-data hexstrut xscreensaver-gl @@ -183,6 +190,7 @@ rubik xscreensaver-gl-extra rubikblocks xscreensaver-gl-extra sballs xscreensaver-gl-extra +scooter xscreensaver-data shadebobs xscreensaver-data sierpinski3d xscreensaver-gl sierpinski xscreensaver-data-extra @@ -191,6 +199,7 @@ slip xscreensaver-data-extra sonar xscreensaver-gl speedmine xscreensaver-data-extra +sphereeversion xscreensaver-gl spheremonics xscreensaver-gl splitflap xscreensaver-gl splodesic xscreensaver-gl diff -Nru xscreensaver-5.42+dfsg1/debian/split-hacks.sh xscreensaver-5.45+dfsg1/debian/split-hacks.sh --- xscreensaver-5.42+dfsg1/debian/split-hacks.sh 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/split-hacks.sh 2021-06-14 23:21:52.000000000 +0000 @@ -17,7 +17,7 @@ do [ -z "$HACK" ] && continue [ $HACK != "${HACK#\#}" ] && continue - echo usr/lib/xscreensaver/$HACK >> debian/$PACKAGE.install + echo usr/libexec/xscreensaver/$HACK >> debian/$PACKAGE.install if [ -e debian/tmp/usr/share/man/man6/$HACK.6x ]; then echo debian/tmp/usr/share/man/man6/$HACK.6x \ >> debian/$PACKAGE.manpages diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver-daemon.desktop xscreensaver-5.45+dfsg1/debian/xscreensaver-daemon.desktop --- xscreensaver-5.42+dfsg1/debian/xscreensaver-daemon.desktop 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver-daemon.desktop 2021-06-14 23:21:52.000000000 +0000 @@ -1,6 +1,5 @@ [Desktop Entry] Type=Application -Encoding=UTF-8 Name=XScreensaver TryExec=xscreensaver Exec=/usr/share/xscreensaver/xscreensaver-wrapper.sh -nosplash diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver-data.install.stub xscreensaver-5.45+dfsg1/debian/xscreensaver-data.install.stub --- xscreensaver-5.42+dfsg1/debian/xscreensaver-data.install.stub 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver-data.install.stub 2021-06-14 23:21:52.000000000 +0000 @@ -1,4 +1,3 @@ -etc/X11/app-defaults/XScreenSaver usr/bin/xscreensaver-getimage usr/bin/xscreensaver-getimage-file usr/bin/xscreensaver-getimage-video diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver.docs xscreensaver-5.45+dfsg1/debian/xscreensaver.docs --- xscreensaver-5.42+dfsg1/debian/xscreensaver.docs 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver.docs 2021-06-14 23:21:52.000000000 +0000 @@ -1,2 +1,3 @@ +NEWS README README.hacking diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver.install.stub xscreensaver-5.45+dfsg1/debian/xscreensaver.install.stub --- xscreensaver-5.42+dfsg1/debian/xscreensaver.install.stub 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver.install.stub 2021-06-14 23:21:52.000000000 +0000 @@ -29,14 +29,13 @@ usr/share/man/man1/xscreensaver-command.1 usr/share/man/man1/xscreensaver-demo.1 usr/share/pixmaps/xscreensaver.xpm -usr/share/xscreensaver/glade/screensaver-cmndln.png -usr/share/xscreensaver/glade/screensaver-colorselector.png -usr/share/xscreensaver/glade/screensaver-diagnostic.png -usr/share/xscreensaver/glade/screensaver-locking.png -usr/share/xscreensaver/glade/screensaver-power.png -usr/share/xscreensaver/glade/screensaver-snap.png -usr/share/xscreensaver/glade/xscreensaver-demo.glade2 +usr/share/xscreensaver/ui/screensaver-cmndln.png +usr/share/xscreensaver/ui/screensaver-colorselector.png +usr/share/xscreensaver/ui/screensaver-diagnostic.png +usr/share/xscreensaver/ui/screensaver-locking.png +usr/share/xscreensaver/ui/screensaver-power.png +usr/share/xscreensaver/ui/screensaver-snap.png +usr/share/xscreensaver/ui/xscreensaver-demo.ui debian/xscreensaver.svg /usr/share/pixmaps debian/xscreensaver-daemon.desktop usr/share/xscreensaver debian/xscreensaver-wrapper.sh usr/share/xscreensaver -debian/xscreensaver.service usr/lib/systemd/user diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver.postinst xscreensaver-5.45+dfsg1/debian/xscreensaver.postinst --- xscreensaver-5.42+dfsg1/debian/xscreensaver.postinst 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver.postinst 2021-06-14 23:21:52.000000000 +0000 @@ -12,4 +12,10 @@ fi fi +# Disable user unit globally, in case it was enabled by 5.44+dfsg1-2 +if [ "$1" = "configure" ] && [ "$2" = "5.44+dfsg1-2" -o "$2" = "5.45+dfsg1-1" ]; then + deb-systemd-helper --user purge xscreensaver.service >/dev/null || true + deb-systemd-helper --user unmask xscreensaver.service >/dev/null || true +fi + #DEBHELPER# diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver-screensaver-webcollage.install.stub xscreensaver-5.45+dfsg1/debian/xscreensaver-screensaver-webcollage.install.stub --- xscreensaver-5.42+dfsg1/debian/xscreensaver-screensaver-webcollage.install.stub 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver-screensaver-webcollage.install.stub 2021-06-14 23:21:52.000000000 +0000 @@ -1 +1 @@ -usr/lib/xscreensaver/webcollage-helper usr/bin +usr/libexec/xscreensaver/webcollage-helper usr/bin diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver.service xscreensaver-5.45+dfsg1/debian/xscreensaver.service --- xscreensaver-5.42+dfsg1/debian/xscreensaver.service 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver.service 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -[Unit] -Description=XScreenSaver - -[Service] -ExecStart=xscreensaver - -[Install] -WantedBy=default.target diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver.user.service xscreensaver-5.45+dfsg1/debian/xscreensaver.user.service --- xscreensaver-5.42+dfsg1/debian/xscreensaver.user.service 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver.user.service 2021-06-14 23:21:52.000000000 +0000 @@ -0,0 +1,9 @@ +[Unit] +Description=XScreenSaver +ConditionUser=!@system + +[Service] +ExecStart=xscreensaver + +[Install] +WantedBy=default.target diff -Nru xscreensaver-5.42+dfsg1/debian/xscreensaver-wrapper.sh xscreensaver-5.45+dfsg1/debian/xscreensaver-wrapper.sh --- xscreensaver-5.42+dfsg1/debian/xscreensaver-wrapper.sh 2018-07-20 11:30:16.000000000 +0000 +++ xscreensaver-5.45+dfsg1/debian/xscreensaver-wrapper.sh 2021-06-14 23:21:52.000000000 +0000 @@ -6,7 +6,8 @@ which dm-tool > /dev/null && echo "XScreenSaver.newLoginCommand: dm-tool switch-to-greeter" | xrdb -merge ;; *) - which gdmflexiserver > /dev/null && echo "XScreenSaver.newLoginCommand: gdmflexiserver -ls" | xrdb -merge + which gdm-control > /dev/null && echo "XScreenSaver.newLoginCommand: gdm-control --switch-user" | xrdb -merge + # which gdmflexiserver > /dev/null && echo "XScreenSaver.newLoginCommand: gdmflexiserver -ls" | xrdb -merge ;; esac fi diff -Nru xscreensaver-5.42+dfsg1/driver/demo-Gtk.c xscreensaver-5.45+dfsg1/driver/demo-Gtk.c --- xscreensaver-5.42+dfsg1/driver/demo-Gtk.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/demo-Gtk.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* demo-Gtk.c --- implements the interactive demo-mode and options dialogs. - * xscreensaver, Copyright (c) 1993-2018 Jamie Zawinski + * xscreensaver, Copyright (c) 1993-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -82,6 +82,15 @@ # include #endif /* HAVE_XINERAMA */ +#if (__GNUC__ >= 4) /* Ignore useless warnings generated by gtk.h */ +# undef inline +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wstrict-prototypes" +# pragma GCC diagnostic ignored "-Wlong-long" +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# pragma GCC diagnostic ignored "-Wpedantic" +#endif + #include #ifdef HAVE_CRAPPLET @@ -92,25 +101,20 @@ #include #ifdef HAVE_GTK2 -# include # include #else /* !HAVE_GTK2 */ # define G_MODULE_EXPORT /**/ #endif /* !HAVE_GTK2 */ -#if defined(DEFAULT_ICONDIR) && !defined(GLADE_DIR) -# define GLADE_DIR DEFAULT_ICONDIR -#endif -#if !defined(DEFAULT_ICONDIR) && defined(GLADE_DIR) -# define DEFAULT_ICONDIR GLADE_DIR -#endif - #ifndef HAVE_XML /* Kludge: this is defined in demo-Gtk-conf.c when HAVE_XML. It is unused otherwise, so in that case, stub it out. */ static const char *hack_configuration_path = 0; #endif +#if (__GNUC__ >= 4) +# pragma GCC diagnostic pop +#endif #include "version.h" @@ -208,7 +212,7 @@ conf_data *cdata; /* private data for per-hack configuration */ #ifdef HAVE_GTK2 - GladeXML *glade_ui; /* Glade UI file */ + GtkBuilder *gtk_ui; /* UI file */ #endif /* HAVE_GTK2 */ Bool debug_p; /* whether to print diagnostics */ @@ -250,7 +254,8 @@ Atom XA_VROOT; Atom XA_SCREENSAVER, XA_SCREENSAVER_RESPONSE, XA_SCREENSAVER_VERSION; Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO; -Atom XA_ACTIVATE, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT; +Atom XA_ACTIVATE, XA_SUSPEND, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT; +Atom XA_NEXT, XA_PREV; static void populate_demo_window (state *, int list_elt); @@ -271,16 +276,15 @@ static void schedule_preview_check (state *); -/* Prototypes of functions used by the Glade-generated code, - to avoid warnings. +/* Prototypes of functions used by the Gtk-generated code, to avoid warnings. */ -void exit_menu_cb (GtkMenuItem *, gpointer user_data); -void about_menu_cb (GtkMenuItem *, gpointer user_data); -void doc_menu_cb (GtkMenuItem *, gpointer user_data); -void file_menu_cb (GtkMenuItem *, gpointer user_data); -void activate_menu_cb (GtkMenuItem *, gpointer user_data); -void lock_menu_cb (GtkMenuItem *, gpointer user_data); -void kill_menu_cb (GtkMenuItem *, gpointer user_data); +void exit_menu_cb (GtkAction *, gpointer user_data); +void about_menu_cb (GtkAction *, gpointer user_data); +void doc_menu_cb (GtkAction *, gpointer user_data); +void file_menu_cb (GtkAction *, gpointer user_data); +void activate_menu_cb (GtkAction *, gpointer user_data); +void lock_menu_cb (GtkAction *, gpointer user_data); +void kill_menu_cb (GtkAction *, gpointer user_data); void restart_menu_cb (GtkWidget *, gpointer user_data); void run_this_cb (GtkButton *, gpointer user_data); void manual_cb (GtkButton *, gpointer user_data); @@ -338,38 +342,49 @@ if (!*name) abort(); #ifdef HAVE_GTK2 - if (!s->glade_ui) + if (!s->gtk_ui) { - /* First try to load the Glade file from the current directory; + /* First try to load the UI file from the current directory; if there isn't one there, check the installed directory. */ -# define GLADE_FILE_NAME "xscreensaver-demo.glade2" - const char * const files[] = { GLADE_FILE_NAME, - GLADE_DIR "/" GLADE_FILE_NAME }; +# define UI_FILE "xscreensaver-demo.ui" + const char * const files[] = { UI_FILE, + DEFAULT_ICONDIR "/" UI_FILE }; int i; + + s->gtk_ui = gtk_builder_new (); + for (i = 0; i < countof (files); i++) { struct stat st; if (!stat (files[i], &st)) { - s->glade_ui = glade_xml_new (files[i], NULL, NULL); - break; + GError* error = NULL; + + if (gtk_builder_add_from_file (s->gtk_ui, files[i], &error)) + break; + else + { + g_warning ("Couldn't load builder file %s: %s", + files[i], error->message); + g_error_free (error); + } } } - if (!s->glade_ui) + if (i >= countof (files)) { fprintf (stderr, - "%s: could not load \"" GLADE_FILE_NAME "\"\n" - "\tfrom " GLADE_DIR "/ or current directory.\n", + "%s: could not load \"" UI_FILE "\"\n" + "\tfrom " DEFAULT_ICONDIR "/ or current directory.\n", blurb()); exit (-1); } -# undef GLADE_FILE_NAME +# undef UI_FILE - glade_xml_signal_autoconnect (s->glade_ui); + gtk_builder_connect_signals (s->gtk_ui, NULL); } - w = glade_xml_get_widget (s->glade_ui, name); + w = GTK_WIDGET (gtk_builder_get_object (s->gtk_ui, name)); #else /* !HAVE_GTK2 */ @@ -381,7 +396,7 @@ #endif /* HAVE_GTK2 */ if (w) return w; - fprintf (stderr, "%s: no widget \"%s\" (wrong Glade file?)\n", + fprintf (stderr, "%s: no widget \"%s\" (wrong UI file?)\n", blurb(), name); abort(); } @@ -549,7 +564,10 @@ if (!parent || !GET_WINDOW (parent)) /* too early to pop up transient dialogs */ { - fprintf (stderr, "%s: too early for dialog?\n", progname); + fprintf (stderr, + "%s: too early for warning dialog?" + "\n\n\t%s\n\n", + progname, message); free(msg); return False; } @@ -770,12 +788,12 @@ /* Button callbacks According to Eric Lassauge, this G_MODULE_EXPORT crud is needed to make - libglade work on Cygwin; apparently all Glade callbacks need this magic - extra declaration. I do not pretend to understand. + GTK work on Cygwin; apparently all GTK callbacks need this magic extra + declaration. I do not pretend to understand. */ G_MODULE_EXPORT void -exit_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +exit_menu_cb (GtkAction *menu_action, gpointer user_data) { state *s = global_state_kludge; /* I hate C so much... */ flush_dialog_changes_and_save (s); @@ -794,7 +812,7 @@ G_MODULE_EXPORT void -about_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +about_menu_cb (GtkAction *menu_action, gpointer user_data) { char msg [2048]; char *vers = strdup (screensaver_id + 4); @@ -815,7 +833,7 @@ /* Ole Laursen says "don't use _() here because non-ASCII characters aren't allowed in localizable string keys." - (I don't want to just use (c) instead of because that doesn't + (I don't want to just use (c) instead of © because that doesn't look as good in the plain-old default Latin1 "C" locale.) */ #ifdef HAVE_GTK2 @@ -847,7 +865,8 @@ GtkWidget *dialog = gtk_dialog_new (); GtkWidget *hbox, *icon, *vbox, *label1, *label2, *hb, *ok; - GtkWidget *parent = GTK_WIDGET (menuitem); + GSList *proxies = gtk_action_get_proxies (menu_action); + GtkWidget *parent = GTK_WIDGET (proxies->data); while (GET_PARENT (parent)) parent = GET_PARENT (parent); @@ -928,7 +947,7 @@ G_MODULE_EXPORT void -doc_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +doc_menu_cb (GtkAction *menu_action, gpointer user_data) { state *s = global_state_kludge; /* I hate C so much... */ saver_preferences *p = &s->prefs; @@ -956,7 +975,7 @@ G_MODULE_EXPORT void -file_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +file_menu_cb (GtkAction *menu_action, gpointer user_data) { state *s = global_state_kludge; /* I hate C so much... */ sensitize_menu_items (s, False); @@ -964,7 +983,7 @@ G_MODULE_EXPORT void -activate_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +activate_menu_cb (GtkAction *menu_action, gpointer user_data) { state *s = global_state_kludge; /* I hate C so much... */ run_cmd (s, XA_ACTIVATE, 0); @@ -972,7 +991,7 @@ G_MODULE_EXPORT void -lock_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +lock_menu_cb (GtkAction *menu_action, gpointer user_data) { state *s = global_state_kludge; /* I hate C so much... */ run_cmd (s, XA_LOCK, 0); @@ -980,7 +999,7 @@ G_MODULE_EXPORT void -kill_menu_cb (GtkMenuItem *menuitem, gpointer user_data) +kill_menu_cb (GtkAction *menu_action, gpointer user_data) { state *s = global_state_kludge; /* I hate C so much... */ run_cmd (s, XA_EXIT, 0); @@ -1042,7 +1061,9 @@ strcat (buf, STFU _("You are running as root. This usually means that xscreensaver\n" "was unable to contact your X server because access control is\n" - "turned on. Try running this command:\n" + "turned on." +/* + " Try running this command:\n" "\n" " xhost +localhost\n" "\n" @@ -1052,9 +1073,10 @@ "on to this machine to access your screen, which might be\n" "considered a security problem. Please read the xscreensaver\n" "manual and FAQ for more information.\n" + */ "\n" "You shouldn't run X as root. Instead, you should log in as a\n" - "normal user, and `su' as necessary.")); + "normal user, and `sudo' as necessary.")); else strcat (buf, _("Please check your $PATH and permissions.")); @@ -1184,7 +1206,7 @@ if (!was) gtk_widget_set_sensitive (parent, True); #ifdef HAVE_GTK2 model = gtk_tree_view_get_model (GTK_TREE_VIEW (list)); - g_assert (model); + if (!model) abort(); if (gtk_tree_model_iter_nth_child (model, &iter, NULL, list_elt)) { selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); @@ -1627,11 +1649,8 @@ /* Map the mode menu to `saver_mode' enum values. */ { - GtkOptionMenu *opt = GTK_OPTION_MENU (name_to_widget (s, "mode_menu")); - GtkMenu *menu = GTK_MENU (gtk_option_menu_get_menu (opt)); - GtkWidget *selected = gtk_menu_get_active (menu); - GList *kids = gtk_container_children (GTK_CONTAINER (menu)); - int menu_elt = g_list_index (kids, (gpointer) selected); + GtkComboBox *opt = GTK_COMBO_BOX (name_to_widget (s, "mode_menu")); + int menu_elt = gtk_combo_box_get_active (opt); if (menu_elt < 0 || menu_elt >= countof(mode_menu_order)) abort(); p2->mode = mode_menu_order[menu_elt]; } @@ -1737,9 +1756,10 @@ int list_elt = selected_list_element (s); GtkEntry *cmd = GTK_ENTRY (name_to_widget (s, "cmd_text")); - GtkCombo *vis = GTK_COMBO (name_to_widget (s, "visual_combo")); + GtkComboBoxEntry *vis = GTK_COMBO_BOX_ENTRY (name_to_widget (s, "visual_combo")); + GtkEntry *visent = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (vis))); - const char *visual = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (vis)->entry)); + const char *visual = gtk_entry_get_text (visent); const char *command = gtk_entry_get_text (cmd); char c; @@ -1784,7 +1804,7 @@ { gdk_beep (); /* unparsable */ visual = ""; - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (vis)->entry), _("Any")); + gtk_entry_set_text (visent, _("Any")); } changed = flush_changes (s, list_elt, -1, command, visual); @@ -1832,21 +1852,8 @@ GtkWidget *list = name_to_widget (s, "list"); int list_elt; - GList *menu_items = - gtk_container_children (GTK_CONTAINER (GET_PARENT (widget))); - int menu_index = 0; - saver_mode new_mode; - - while (menu_items) - { - if (menu_items->data == widget) - break; - menu_index++; - menu_items = menu_items->next; - } - if (!menu_items) abort(); - - new_mode = mode_menu_order[menu_index]; + int menu_index = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + saver_mode new_mode = mode_menu_order[menu_index]; /* Keep the same list element displayed as before; except if we're switching *to* "one screensaver" mode from any other mode, set @@ -1894,7 +1901,7 @@ char *str; int list_elt; - g_return_if_fail (!gdk_pointer_is_grabbed ()); + if (gdk_pointer_is_grabbed()) return; str = gtk_tree_path_to_string (path); list_elt = strtol (str, NULL, 10); @@ -2861,13 +2868,13 @@ /* Map the `saver_mode' enum to mode menu to values. */ { - GtkOptionMenu *opt = GTK_OPTION_MENU (name_to_widget (s, "mode_menu")); + GtkComboBox *opt = GTK_COMBO_BOX (name_to_widget (s, "mode_menu")); int i; for (i = 0; i < countof(mode_menu_order); i++) if (mode_menu_order[i] == p->mode) break; - gtk_option_menu_set_history (opt, i); + gtk_combo_box_set_active (opt, i); update_list_sensitivity (s); } @@ -3015,7 +3022,7 @@ static Bool running_p = False; static time_t last_checked = 0; time_t now = time ((time_t *) 0); - const char *names[] = { "activate_menu", "lock_menu", "kill_menu", + const char *names[] = { "activate_action", "lock_action", "kill_action", /* "demo" */ }; int i; @@ -3027,8 +3034,8 @@ for (i = 0; i < countof(names); i++) { - GtkWidget *w = name_to_widget (s, names[i]); - gtk_widget_set_sensitive (GTK_WIDGET(w), running_p); + GtkAction *a = GTK_ACTION (gtk_builder_get_object (s->gtk_ui, names[i])); + gtk_action_set_sensitive (a, running_p); } } @@ -3100,7 +3107,7 @@ /* Now fix the width of the combo box. */ w = GTK_WIDGET (name_to_widget (s, "visual_combo")); - w = GTK_COMBO (w)->entry; + w = GTK_COMBO_BOX_ENTRY (w)->entry; width = gdk_string_width (w->style->font, "PseudoColor___"); gtk_widget_set_usize (w, width, -2); @@ -3306,7 +3313,7 @@ GtkFrame *frame1 = GTK_FRAME (name_to_widget (s, "preview_frame")); GtkFrame *frame2 = GTK_FRAME (name_to_widget (s, "opt_frame")); GtkEntry *cmd = GTK_ENTRY (name_to_widget (s, "cmd_text")); - GtkCombo *vis = GTK_COMBO (name_to_widget (s, "visual_combo")); + GtkComboBoxEntry *vis = GTK_COMBO_BOX_ENTRY (name_to_widget (s, "visual_combo")); GtkWidget *list = GTK_WIDGET (name_to_widget (s, "list")); if (p->mode == BLANK_ONLY) @@ -3356,7 +3363,7 @@ gtk_window_set_title (GTK_WINDOW (s->popup_widget), title); } - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (vis)->entry), + gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (vis))), (hack ? (hack->visual && *hack->visual ? hack->visual @@ -4421,7 +4428,8 @@ FILE *p = popen ("dcop kdesktop KScreensaverIface isEnabled 2>/dev/null", "r"); char buf[255]; - fgets (buf, sizeof(buf)-1, p); + if (!p) return False; + if (!fgets (buf, sizeof(buf)-1, p)) return False; pclose (p); if (!strcmp (buf, "true\n")) return True; @@ -4432,7 +4440,11 @@ static void kill_kde_screensaver (void) { - system ("dcop kdesktop KScreensaverIface enable false"); + /* Use empty body to kill warning from gcc -Wall with + "warning: ignoring return value of 'system', + declared with attribute warn_unused_result" + */ + if (system ("dcop kdesktop KScreensaverIface enable false")) {} } @@ -5069,8 +5081,11 @@ XA_SELECT = XInternAtom (dpy, "SELECT", False); XA_DEMO = XInternAtom (dpy, "DEMO", False); XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False); + XA_SUSPEND = XInternAtom (dpy, "SUSPEND", False); XA_BLANK = XInternAtom (dpy, "BLANK", False); XA_LOCK = XInternAtom (dpy, "LOCK", False); + XA_NEXT = XInternAtom (dpy, "NEXT", False); + XA_PREV = XInternAtom (dpy, "PREV", False); XA_EXIT = XInternAtom (dpy, "EXIT", False); XA_RESTART = XInternAtom (dpy, "RESTART", False); @@ -5156,31 +5171,32 @@ #endif /* !HAVE_GTK2 */ /* Hook up callbacks to the items on the mode menu. */ - { - GtkOptionMenu *opt = GTK_OPTION_MENU (name_to_widget (s, "mode_menu")); - GtkMenu *menu = GTK_MENU (gtk_option_menu_get_menu (opt)); - GList *kids = gtk_container_children (GTK_CONTAINER (menu)); - int i; - for (i = 0; kids; kids = kids->next, i++) - { - gtk_signal_connect (GTK_OBJECT (kids->data), "activate", - GTK_SIGNAL_FUNC (mode_menu_item_cb), - (gpointer) s); - - /* The "random-same" mode menu item does not appear unless - there are multple screens. - */ - if (s->nscreens <= 1 && - mode_menu_order[i] == RANDOM_HACKS_SAME) - gtk_widget_hide (GTK_WIDGET (kids->data)); - } + gtk_signal_connect (GTK_OBJECT (name_to_widget (s, "mode_menu")), + "changed", GTK_SIGNAL_FUNC (mode_menu_item_cb), + (gpointer) s); + if (s->nscreens <= 1) + { + GtkComboBox *opt = GTK_COMBO_BOX (name_to_widget (s, "mode_menu")); + GtkTreeModel *list = gtk_combo_box_get_model (opt); + unsigned int i; + for (i = 0; i < countof(mode_menu_order); i++) + { + /* The "random-same" mode menu item does not appear unless + there are multiple screens. + */ + if (mode_menu_order[i] == RANDOM_HACKS_SAME) + { + GtkTreeIter iter; + gtk_tree_model_iter_nth_child (list, &iter, NULL, i); + gtk_list_store_remove (GTK_LIST_STORE (list), &iter); + break; + } + } - if (s->nscreens <= 1) /* recompute option-menu size */ - { - gtk_widget_unrealize (GTK_WIDGET (menu)); - gtk_widget_realize (GTK_WIDGET (menu)); - } - } + /* recompute option-menu size */ + gtk_widget_unrealize (GTK_WIDGET (opt)); + gtk_widget_realize (GTK_WIDGET (opt)); + } /* Handle the -prefs command-line argument. */ diff -Nru xscreensaver-5.42+dfsg1/driver/demo-Gtk-conf.c xscreensaver-5.45+dfsg1/driver/demo-Gtk-conf.c --- xscreensaver-5.42+dfsg1/driver/demo-Gtk-conf.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/demo-Gtk-conf.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* demo-Gtk-conf.c --- implements the dynamic configuration dialogs. - * xscreensaver, Copyright (c) 2001-2014 Jamie Zawinski + * xscreensaver, Copyright (c) 2001-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -59,8 +59,21 @@ # endif /* LIBXML_VERSION */ #endif /* xmlChildrenNode */ +#if (__GNUC__ >= 4) /* Ignore useless warnings generated by gtk.h */ +# undef inline +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wstrict-prototypes" +# pragma GCC diagnostic ignored "-Wlong-long" +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# pragma GCC diagnostic ignored "-Wpedantic" +#endif + #include +#if (__GNUC__ >= 4) +# pragma GCC diagnostic pop +#endif + #include "demo-Gtk-conf.h" /* Deal with deprecation of direct access to struct fields on the way to GTK3 diff -Nru xscreensaver-5.42+dfsg1/driver/demo-Xm.c xscreensaver-5.45+dfsg1/driver/demo-Xm.c --- xscreensaver-5.42+dfsg1/driver/demo-Xm.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/demo-Xm.c 2020-12-20 10:54:56.000000000 +0000 @@ -113,7 +113,7 @@ Atom XA_VROOT; Atom XA_SCREENSAVER, XA_SCREENSAVER_RESPONSE, XA_SCREENSAVER_VERSION; Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO; -Atom XA_ACTIVATE, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT; +Atom XA_ACTIVATE, XA_SUSPEND, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT; static void populate_demo_window (Widget toplevel, @@ -1800,6 +1800,7 @@ XA_SELECT = XInternAtom (dpy, "SELECT", False); XA_DEMO = XInternAtom (dpy, "DEMO", False); XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False); + XA_SUSPEND = XInternAtom (dpy, "SUSPEND", False); XA_BLANK = XInternAtom (dpy, "BLANK", False); XA_LOCK = XInternAtom (dpy, "LOCK", False); XA_EXIT = XInternAtom (dpy, "EXIT", False); diff -Nru xscreensaver-5.42+dfsg1/driver/lock.c xscreensaver-5.45+dfsg1/driver/lock.c --- xscreensaver-5.42+dfsg1/driver/lock.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/lock.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* lock.c --- handling the password dialog for locking-mode. - * xscreensaver, Copyright (c) 1993-2018 Jamie Zawinski + * xscreensaver, Copyright (c) 1993-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -872,6 +872,7 @@ memset (buf, 0, sizeof(buf)); strftime (buf, sizeof(buf)-1, pw->date_label, tm); + XSetForeground (si->dpy, gc1, pw->foreground); XSetFont (si->dpy, gc1, pw->date_font->fid); y1 += pw->shadow_width; y1 += (spacing + tb_height); @@ -1148,7 +1149,8 @@ y = (pw->thermo_field_height - 2) * (1.0 - pw->ratio); if (y > 0) { - XFillRectangle (si->dpy, si->passwd_dialog, gc2, + XSetForeground (si->dpy, gc1, pw->thermo_background); + XFillRectangle (si->dpy, si->passwd_dialog, gc1, pw->thermo_field_x + 1, pw->thermo_field_y + 1, pw->thermo_width-2, @@ -1398,6 +1400,8 @@ memset (pw, 0, sizeof(*pw)); free (pw); si->pw_data = 0; + + si->unlock_dismiss_time = time((time_t *) 0); } @@ -1924,6 +1928,15 @@ if (si->pw_data->login_button_p) handle_login_button (si, &event.x_event); } + else if (event.x_event.xany.type == ClientMessage && + event.x_event.xclient.message_type == XA_SCREENSAVER && + event.x_event.xclient.format == 32) + { + const char *msg = + "ClientMessage ignored while authentication dialog is active"; + clientmessage_response (si, event.x_event.xclient.window, + True, msg, msg); + } else XtDispatchEvent (&event.x_event); } @@ -2214,6 +2227,7 @@ unlock_p (saver_info *si) { saver_preferences *p = &si->prefs; + time_t now = time ((time_t *) 0); if (!si->unlock_cb) { @@ -2223,6 +2237,18 @@ raise_window (si, True, True, True); + /* If your cat is sitting on the return key, don't thrash the window. + Only one failed/cancelled unlock per 2 seconds. + */ + if (si->unlock_dismiss_time >= now - 1) + { + if (p->verbose_p) + fprintf (stderr, "%s: unlock: thrashing: RET held down?\n", blurb()); + XSync (si->dpy, False); +# undef sleep + sleep (2); /* This is less than ideal, but fine */ + } + xss_authenticate(si, p->verbose_p); return (si->unlock_state == ul_success); diff -Nru xscreensaver-5.42+dfsg1/driver/Makefile.in xscreensaver-5.45+dfsg1/driver/Makefile.in --- xscreensaver-5.42+dfsg1/driver/Makefile.in 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/Makefile.in 2020-12-20 10:54:56.000000000 +0000 @@ -27,7 +27,8 @@ GTK_DATADIR = @GTK_DATADIR@ GTK_APPDIR = $(GTK_DATADIR)/applications GTK_ICONDIR = $(GTK_DATADIR)/pixmaps -GTK_GLADEDIR = $(GTK_DATADIR)/xscreensaver/glade +GTK_UIDIR = $(GTK_DATADIR)/xscreensaver/ui +OLD_GLADEDIR = $(GTK_DATADIR)/xscreensaver/glade HACK_CONF_DIR = @HACK_CONF_DIR@ CC = @CC@ @@ -36,8 +37,8 @@ LDFLAGS = @LDFLAGS@ DEFS = @DEFS@ INTL_DEFS = -DLOCALEDIR=\"$(localedir)\" -SUBP_DEFS = $(DEFS) -DDEFAULT_PATH_PREFIX='"@HACKDIR@"' -GTK_DEFS = $(DEFS) -DDEFAULT_ICONDIR='"$(GTK_GLADEDIR)"' +SUBP_DEFS = -DDEFAULT_PATH_PREFIX='"@HACKDIR@"' +GTK_DEFS = -DDEFAULT_ICONDIR='"$(GTK_UIDIR)"' CONF_DEFS = -DHACK_CONFIGURATION_PATH='"$(HACK_CONF_DIR)"' LIBS = @LIBS@ @@ -113,6 +114,10 @@ NOLOCK_SRCS_1 = lock.c NOLOCK_OBJS_1 = lock.o +SYSTEMD_SRCS = xscreensaver-systemd.c +SYSTEMD_OBJS = xscreensaver-systemd.o $(UTILS_BIN)/yarandom.o +SYSTEMD_LIBS = -lsystemd + TEST_SRCS = test-passwd.c test-uid.c test-xdpms.c test-grab.c \ test-apm.c test-fade.c test-xinerama.c test-vp.c \ test-randr.c xdpyinfo.c test-mlstring.c test-screens.c \ @@ -216,9 +221,10 @@ $(X_PRE_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS) EXES = xscreensaver xscreensaver-command xscreensaver-demo \ - xscreensaver-getimage @EXES_OSX@ + xscreensaver-getimage @EXES_OSX@ @EXES_SYSTEMD@ EXES2 = @ALL_DEMO_PROGRAMS@ EXES_OSX = pdf2jpeg +EXES_SYSTEMD = xscreensaver-systemd SCRIPTS_1 = xscreensaver-getimage-file xscreensaver-getimage-video \ xscreensaver-text @@ -233,20 +239,21 @@ xscreensaver-text.man \ xscreensaver-getimage.man \ xscreensaver-getimage-file.man \ - xscreensaver-getimage-video.man + xscreensaver-getimage-video.man \ + xscreensaver-systemd.man MEN_OSX = xscreensaver-getimage-desktop.man pdf2jpeg.man MEN = $(MEN_1) @MEN_OSX@ EXTRAS = README Makefile.in \ XScreenSaver.ad.in XScreenSaver-Xm.ad xscreensaver.pam.in \ - xscreensaver-demo.glade2.in xscreensaver-demo.glade2p \ + xscreensaver-demo.ui \ screensaver-properties.desktop.in \ .gdbinit VMSFILES = compile_axp.com compile_decc.com link_axp.com link_decc.com \ vms-getpwnam.c vms-pwd.h vms-hpwd.c vms-validate.c \ vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt -TARFILES = $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) \ +TARFILES = $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) $(SYSTEMD_SRCS) \ $(MOTIF_SRCS) $(GTK_SRCS) $(PWENT_SRCS) $(PWHELPER_SRCS) \ $(KERBEROS_SRCS) $(PAM_SRCS) $(LOCK_SRCS_1) $(DEMO_SRCS_1) \ $(CMD_SRCS) $(GETIMG_SRCS_1) $(PDF2JPEG_SRCS) $(HDRS) \ @@ -295,7 +302,7 @@ echo $$inst xscreensaver $(install_prefix)$(bindir)/xscreensaver ; \ $$inst xscreensaver $(install_prefix)$(bindir)/xscreensaver @for exe in xscreensaver-command xscreensaver-demo \ - xscreensaver-getimage @EXES_OSX@ ; do \ + xscreensaver-getimage @EXES_OSX@ @EXES_SYSTEMD@ ; do \ echo $(INSTALL_PROGRAM) $$exe $(install_prefix)$(bindir)/$$exe ; \ $(INSTALL_PROGRAM) $$exe $(install_prefix)$(bindir)/$$exe ; \ done @@ -372,7 +379,7 @@ install-man: $(MEN) @men="$(MEN)" ; \ U=$(UTILS_SRC)/version.h ; \ - V=`sed -n 's/.*xscreensaver \([0-9]\.[^)]*)\).*/\1/p' < $$U` ; \ + V=`sed -n 's/.*xscreensaver \([0-9]\.[^)]*)\).*/\1/p' < $$U` ; \ T=/tmp/xs$$$$.$(mansuffix) ; \ TH=".TH XScreenSaver $(mansuffix) \"$$V\" \"X Version 11\"" ; \ echo "installing man pages: $$TH" ; \ @@ -523,42 +530,42 @@ fi # ../utils/images/screensaver-*.png -# into /usr/share/xscreensaver/glade/ +# into /usr/share/xscreensaver/ui/ install-gnome:: - @if [ "$(GTK_DATADIR)" != "" ]; then \ - if [ ! -d "$(install_prefix)$(GTK_GLADEDIR)" ]; then \ - echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)" ;\ - $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)" ;\ + @if [ "$(GTK_DATADIR)" != "" ]; then \ + if [ ! -d "$(install_prefix)$(GTK_UIDIR)" ]; then \ + echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ + $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ fi ;\ for target in $(GTK_ICONS) ; do \ dest=`echo $$target | sed 's@^.*/@@'` ;\ echo $(INSTALL_DATA) $$target \ - $(install_prefix)$(GTK_GLADEDIR)/$$dest ;\ + $(install_prefix)$(GTK_UIDIR)/$$dest ;\ $(INSTALL_DATA) $$target \ - $(install_prefix)$(GTK_GLADEDIR)/$$dest ;\ + $(install_prefix)$(GTK_UIDIR)/$$dest ;\ done ;\ fi -# xscreensaver-demo.glade2 -# into /usr/share/xscreensaver/glade/ -install-gnome:: xscreensaver-demo.glade2 +# xscreensaver-demo.ui +# into /usr/share/xscreensaver/ui/ +install-gnome:: xscreensaver-demo.ui @if [ "$(GTK_DATADIR)" != "" ]; then \ - if [ ! -d "$(install_prefix)$(GTK_GLADEDIR)" ]; then \ - echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)" ;\ - $(INSTALL_DIRS) "$(install_prefix)$(GTK_GLADEDIR)" ;\ + if [ ! -d "$(install_prefix)$(GTK_UIDIR)" ]; then \ + echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ + $(INSTALL_DIRS) "$(install_prefix)$(GTK_UIDIR)" ;\ fi ;\ - target=xscreensaver-demo.glade2 ;\ - echo $(INSTALL_DATA) $$target \ - $(install_prefix)$(GTK_GLADEDIR)/$$target ;\ - if $(INSTALL_DATA) $$target \ - $(install_prefix)$(GTK_GLADEDIR)/$$target ;\ + target=xscreensaver-demo.ui ;\ + echo $(INSTALL_DATA) $$target \ + $(install_prefix)$(GTK_UIDIR)/$$target ;\ + if $(INSTALL_DATA) $$target \ + $(install_prefix)$(GTK_UIDIR)/$$target ;\ then true ;\ else \ e=echo ; \ $$e "" ;\ $$e " ####################################################################";\ $$e " Warning: unable to install $$target into" ;\ - $$e " $(install_prefix)$(GTK_GLADEDIR)/." ;\ + $$e " $(install_prefix)$(GTK_UIDIR)/." ;\ $$e " Without this file, xscreensaver-demo will not" ;\ $$e " be able to run properly." ;\ $$e " ####################################################################";\ @@ -587,25 +594,29 @@ fi # ../utils/images/screensaver-*.png -# into /usr/share/xscreensaver/glade/ +# into /usr/share/xscreensaver/ui/ uninstall-gnome:: @if [ "$(GTK_DATADIR)" != "" ]; then \ for target in $(GTK_ICONS) ; do \ dest=`echo $$target | sed 's@^.*/@@'` ;\ - echo rm -f $(install_prefix)$(GTK_GLADEDIR)/$$dest ;\ - rm -f $(install_prefix)$(GTK_GLADEDIR)/$$dest ;\ + echo rm -f $(install_prefix)$(GTK_UIDIR)/$$dest ;\ + rm -f $(install_prefix)$(GTK_UIDIR)/$$dest ;\ done ;\ fi -# xscreensaver-demo.glade2 -# into /usr/share/xscreensaver/glade/ -uninstall-gnome:: xscreensaver-demo.glade2 +# xscreensaver-demo.ui +# into /usr/share/xscreensaver/ui/ +uninstall-gnome:: @if [ "$(GTK_DATADIR)" != "" ]; then \ - target=xscreensaver-demo.glade2 ;\ - echo rm -f $(install_prefix)$(GTK_GLADEDIR)/$$target ;\ - rm -f $(install_prefix)$(GTK_GLADEDIR)/$$target ;\ + target=xscreensaver-demo.ui ;\ + echo rm -f $(install_prefix)$(GTK_UIDIR)/$$target ;\ + rm -f $(install_prefix)$(GTK_UIDIR)/$$target ;\ fi +# /usr/share/xscreensaver/glade/ no longer used +uninstall-gnome:: + -rm -rf $(OLD_GLADEDIR) + # /usr/share/xscreensaver/config/README install-xml: @dest=$(install_prefix)$(HACK_CONF_DIR) ; \ @@ -626,8 +637,12 @@ XScreenSaver_ad.h XScreenSaver_Xm_ad.h distclean: clean - -rm -f Makefile XScreenSaver.ad \ - TAGS *~ "#"* screensaver-properties.desktop + -rm -f \ + TAGS *~ "#"* *.rej *.orig \ + Makefile \ + XScreenSaver.ad \ + screensaver-properties.desktop \ + xscreensaver.pam # Adds all current dependencies to Makefile depend: XScreenSaver_ad.h XScreenSaver_Xm_ad.h @@ -645,9 +660,10 @@ $(DEPEND) -w 0 -f - \ -s '# DO NOT DELETE: updated by make distdepend' $(DEPEND_FLAGS) -- \ $(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) -- \ - $(SAVER_SRCS_1) $(MOTIF_SRCS) $(GTK_SRCS) $(GETIMG_SRCS_1) \ - $(PWENT_SRCS) $(LOCK_SRCS_1) $(DEMO_SRCS_1) $(CMD_SRCS) \ - $(TEST_SRCS) 2>/dev/null | \ + $(SAVER_SRCS_1) $(SYSTEMD_SRCS) $(MOTIF_SRCS) $(GTK_SRCS) \ + $(PWENT_SRCS) $(PWHELPER_SRCS) $(KERBEROS_SRCS) $(PAM_SRCS) \ + $(LOCK_SRCS_1) $(DEMO_SRCS_1) $(CMD_SRCS) $(GETIMG_SRCS_1) \ + $(PDF2JPEG_SRCS) $(TEST_SRCS) 2>/dev/null | \ sort -d | \ ( \ awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \ @@ -670,12 +686,12 @@ @ \ files="XScreenSaver.ad.in ../hacks/config/README ../OSX/bindist.rtf" ; \ U=$(UTILS_SRC)/version.h ; \ - V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' < $$U` ; \ + V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^ ]*\).*/\1/p' < $$U` ; \ Y=`date '+%Y'` ; \ D=`date '+%d-%b-%Y'` ; \ for S in $$files ; do \ T=/tmp/xs.$$$$ ; \ - sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9]*[ab]*[0-9]*\(.*\)/\1$$V\2/" \ + sed -e "s/\(.*version \)[0-9][0-9]*\.[0-9.]*[ab]*[0-9]*\(.*\)/\1$$V\2/" \ -e "s/\([0-9][0-9]-[A-Z][a-z][a-z]-[0-9][0-9][0-9]*\)/$$D/" \ -e "s/\( [0-9][0-9][0-9][0-9]-\)[0-9][0-9][0-9][0-9] /\1$$Y /" \ < $$S > $$T ; \ @@ -742,32 +758,26 @@ $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" # How we build object files in this directory. +CC_ALL=$(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) .c.o: - $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $< - + $(CC) -c $(CC_ALL) $< .m.o: - $(OBJCC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) $< + $(OBJCC) -c $(CC_ALL) $< # subprocs takes an extra -D option. subprocs.o: subprocs.c - $(CC) -c $(INCLUDES) $(SUBP_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \ - $(srcdir)/subprocs.c + $(CC) -c $(CC_ALL) $(SUBP_DEFS) $(srcdir)/subprocs.c # xscreensaver takes an extra -D option. xscreensaver.o: xscreensaver.c - $(CC) -c $(INCLUDES) $(DEFS) $(INTL_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \ - $(srcdir)/xscreensaver.c + $(CC) -c $(CC_ALL) $(INTL_DEFS) $(srcdir)/xscreensaver.c -# demo-Gtk takes extra -D options, and an extra -I option. +# demo-Gtk and demo-Gtk-conf take extra -D and -I options. +DEMO_GTK=$(CONF_DEFS) $(SUBP_DEFS) $(GTK_DEFS) $(INTL_DEFS) -I$(ICON_SRC) demo-Gtk.o: demo-Gtk.c - $(CC) -c $(INCLUDES) $(SUBP_DEFS) -I$(ICON_SRC) \ - $(GTK_DEFS) $(INTL_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \ - $(srcdir)/demo-Gtk.c - -# demo-Gtk-conf takes an extra -D option. + $(CC) -c $(CC_ALL) $(DEMO_GTK) $(srcdir)/demo-Gtk.c demo-Gtk-conf.o: demo-Gtk-conf.c - $(CC) -c $(INCLUDES) $(CONF_DEFS) $(GTK_DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) \ - $(srcdir)/demo-Gtk-conf.c + $(CC) -c $(CC_ALL) $(DEMO_GTK) $(srcdir)/demo-Gtk-conf.c # How we build the default app-defaults file into the program. @@ -799,15 +809,15 @@ cp -p @PREFERRED_DEMO_PROGRAM@@EXEEXT@ $@@EXEEXT@ ; \ fi +DEMO_XM_CC=$(DEMO_OBJS) $(MOTIF_OBJS) $(LIBS) $(X_LIBS) $(MOTIF_LIBS) +DEMO_GTK_CC=$(DEMO_OBJS) $(GTK_OBJS) $(LIBS) $(X_LIBS) $(GTK_LIBS) $(XML_LIBS) +DEMO_CC2=$(INTL_LIBS) $(X_PRE_LIBS) -lXt -lX11 $(XDPMS_LIBS) $(XINERAMA_LIBS) +DEMO_CC3=-lXext $(X_EXTRA_LIBS) xscreensaver-demo-Xm: $(DEMO_OBJS) $(MOTIF_OBJS) - $(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(MOTIF_OBJS) $(LIBS) $(X_LIBS) \ - $(MOTIF_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) -lXt -lX11 \ - $(XDPMS_LIBS) $(XINERAMA_LIBS) -lXext $(X_EXTRA_LIBS) + $(CC) $(LDFLAGS) -o $@ $(DEMO_XM_CC) $(DEMO_CC2) $(DEMO_CC3) xscreensaver-demo-Gtk: $(DEMO_OBJS) $(GTK_OBJS) - $(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(GTK_OBJS) $(LIBS) $(X_LIBS) \ - $(GTK_LIBS) $(XML_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) \ - -lXt -lX11 $(XDPMS_LIBS) $(XINERAMA_LIBS) -lXext $(X_EXTRA_LIBS) + $(CC) $(LDFLAGS) -o $@ $(DEMO_GTK_CC) $(DEMO_CC2) $(DEMO_CC3) demo-Gtk.o: XScreenSaver_ad.h demo-Xm.o: XScreenSaver_Xm_ad.h @@ -820,6 +830,8 @@ pdf2jpeg: $(PDF2JPEG_OBJS) $(OBJCC) $(LDFLAGS) -o $@ $(PDF2JPEG_OBJS) $(PDF2JPEG_LIBS) -lm +xscreensaver-systemd: $(SYSTEMD_OBJS) + $(CC) $(LDFLAGS) -o $@ $(SYSTEMD_OBJS) $(SYSTEMD_LIBS) -lm TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PASSWD_OBJS) \ subprocs.o setuid.o splash.o prefs.o mlstring.o exec.o \ @@ -858,7 +870,7 @@ test-mlstring: test-mlstring.o $(CC) -DTEST $(LDFLAGS) -o $@ test-mlstring.o $(SAVER_LIBS) -TEST_FADE_OBJS = test-fade.o $(UTILS_SRC)/fade.o $(DEMO_UTIL_OBJS) +TEST_FADE_OBJS = test-fade.o $(UTILS_BIN)/fade.o $(DEMO_UTIL_OBJS) test-fade: test-fade.o $(UTILS_BIN)/fade.o $(CC) $(LDFLAGS) -o $@ $(TEST_FADE_OBJS) $(SAVER_LIBS) @@ -915,11 +927,19 @@ lock.o: $(UTILS_SRC)/resources.h lock.o: $(srcdir)/xscreensaver.h mlstring.o: $(srcdir)/mlstring.h +passwd-helper.o: ../config.h +passwd-helper.o: $(srcdir)/prefs.h +passwd-helper.o: $(srcdir)/types.h +passwd-helper.o: $(srcdir)/xscreensaver.h +passwd-kerberos.o: ../config.h passwd.o: $(srcdir)/auth.h passwd.o: ../config.h passwd.o: $(srcdir)/prefs.h passwd.o: $(srcdir)/types.h passwd.o: $(srcdir)/xscreensaver.h +passwd-pam.o: $(srcdir)/auth.h +passwd-pam.o: ../config.h +passwd-pam.o: $(srcdir)/types.h passwd-pwent.o: ../config.h prefs.o: ../config.h prefs.o: $(srcdir)/prefs.h @@ -1023,6 +1043,10 @@ xscreensaver.o: $(UTILS_SRC)/visual.h xscreensaver.o: $(UTILS_SRC)/yarandom.h xscreensaver.o: $(srcdir)/xscreensaver.h +xscreensaver-systemd.o: ../config.h +xscreensaver-systemd.o: $(UTILS_SRC)/queue.h +xscreensaver-systemd.o: $(UTILS_SRC)/version.h +xscreensaver-systemd.o: $(UTILS_SRC)/yarandom.h xset.o: ../config.h xset.o: $(srcdir)/prefs.h xset.o: $(srcdir)/types.h diff -Nru xscreensaver-5.42+dfsg1/driver/passwd.c xscreensaver-5.45+dfsg1/driver/passwd.c --- xscreensaver-5.42+dfsg1/driver/passwd.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/passwd.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* passwd.c --- verifying typed passwords with the OS. - * xscreensaver, Copyright (c) 1993-2018 Jamie Zawinski + * xscreensaver, Copyright (c) 1993-2019 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -251,7 +251,7 @@ { # ifdef HAVE_SYSLOG struct passwd *pw = getpwuid (getuid ()); - char *d = DisplayString (si->dpy); + char *d = (si->dpy ? DisplayString (si->dpy) : 0); char *u = (pw && pw->pw_name ? pw->pw_name : "???"); int opt = 0; int fac = 0; @@ -324,8 +324,9 @@ si->cached_passwd && !*si->cached_passwd) { - fprintf (stderr, "%s: assuming null password means cancel.\n", - blurb()); + if (verbose_p) + fprintf (stderr, "%s: assuming null password means cancel.\n", + blurb()); si->unlock_state = ul_cancel; } @@ -354,11 +355,11 @@ { /* If any auth method gets a cancel or timeout, don't try the next auth method! We're done! */ - fprintf (stderr, - "%s: authentication via %s %s.\n", - blurb(), methods[i].name, - (si->unlock_state == ul_cancel - ? "cancelled" : "timed out")); + if (verbose_p) + fprintf (stderr, "%s: authentication via %s %s.\n", + blurb(), methods[i].name, + (si->unlock_state == ul_cancel + ? "cancelled" : "timed out")); goto DONE; } } diff -Nru xscreensaver-5.42+dfsg1/driver/passwd-pam.c xscreensaver-5.45+dfsg1/driver/passwd-pam.c --- xscreensaver-5.42+dfsg1/driver/passwd-pam.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/passwd-pam.c 2020-12-20 10:54:56.000000000 +0000 @@ -131,7 +131,7 @@ set up an "xscreensaver" PAM service. However, if we went that route, it would have a really awful failure mode: the failure mode would be that xscreensaver was willing to *lock* the screen, but would be unwilling to - *unlock* the screen. (With the non-PAM password code, the analagous + *unlock* the screen. (With the non-PAM password code, the analogous situation -- security not being configured properly, for example do to the executable not being installed as setuid root -- the failure mode is much more palettable, in that xscreensaver will refuse to *lock* the screen, diff -Nru xscreensaver-5.42+dfsg1/driver/pdf2jpeg.m xscreensaver-5.45+dfsg1/driver/pdf2jpeg.m --- xscreensaver-5.42+dfsg1/driver/pdf2jpeg.m 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/pdf2jpeg.m 2020-12-20 10:54:56.000000000 +0000 @@ -138,7 +138,7 @@ dictionaryWithObject: [NSNumber numberWithFloat:compression] forKey:NSImageCompressionFactor]; - NSData *jpeg_data = [bit_rep representationUsingType:NSJPEGFileType + NSData *jpeg_data = [bit_rep representationUsingType:NSBitmapImageFileTypeJPEG properties:props]; [jpeg_data writeToFile: diff -Nru xscreensaver-5.42+dfsg1/driver/prefs.c xscreensaver-5.45+dfsg1/driver/prefs.c --- xscreensaver-5.42+dfsg1/driver/prefs.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/prefs.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* dotfile.c --- management of the ~/.xscreensaver file. - * xscreensaver, Copyright (c) 1998-2018 Jamie Zawinski + * xscreensaver, Copyright (c) 1998-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -136,33 +136,34 @@ if (!file) { uid_t uid = getuid (); - struct passwd *p = getpwuid (uid); + const char *home = getenv("HOME"); - if (i_am_a_nobody (uid)) - /* If we're running as nobody, then use root's .xscreensaver file - (since ~root/.xscreensaver and ~nobody/.xscreensaver are likely - to be different -- if we didn't do this, then xscreensaver-demo - would appear to have no effect when the luser is running as root.) - */ - uid = 0; - - p = getpwuid (uid); - - if (!p || !p->pw_name || !*p->pw_name) - { - fprintf (stderr, "%s: couldn't get user info of uid %d\n", - blurb(), getuid ()); - file = ""; - } - else if (!p->pw_dir || !*p->pw_dir) + if (i_am_a_nobody (uid) || !home || !*home) { - fprintf (stderr, "%s: couldn't get home directory of \"%s\"\n", - blurb(), (p->pw_name ? p->pw_name : "???")); - file = ""; + /* If we're running as nobody, then use root's .xscreensaver file + (since ~root/.xscreensaver and ~nobody/.xscreensaver are likely + to be different -- if we didn't do this, then xscreensaver-demo + would appear to have no effect when the luser is running as root.) + */ + struct passwd *p = getpwuid (uid); + uid = 0; + if (!p || !p->pw_name || !*p->pw_name) + { + fprintf (stderr, "%s: couldn't get user info of uid %d\n", + blurb(), getuid ()); + } + else if (!p->pw_dir || !*p->pw_dir) + { + fprintf (stderr, "%s: couldn't get home directory of \"%s\"\n", + blurb(), (p->pw_name ? p->pw_name : "???")); + } + else + { + home = p->pw_dir; + } } - else + if (home && *home) { - const char *home = p->pw_dir; const char *name = ".xscreensaver"; file = (char *) malloc(strlen(home) + strlen(name) + 2); strcpy(file, home); @@ -170,6 +171,10 @@ strcat(file, "/"); strcat(file, name); } + else + { + file = ""; + } } if (file && *file) @@ -962,7 +967,9 @@ /* Since the .xscreensaver file is used for IPC, let's try and make sure that the bits actually land on the disk right away. */ - sync (); + /* Update 2020: Apparently here in the future, this sometimes takes + 3+ seconds, so let's not. */ + /* sync(); */ status = 0; /* wrote and renamed successfully! */ } @@ -1653,7 +1660,7 @@ if (p->watchdog_timeout > 57000) p->watchdog_timeout = 57000; /* 57 secs */ if (p->pointer_hysteresis < 0) p->pointer_hysteresis = 0; - if (p->pointer_hysteresis > 100) p->pointer_hysteresis = 100; +/* if (p->pointer_hysteresis > 100) p->pointer_hysteresis = 100; */ if (p->auth_warning_slack < 0) p->auth_warning_slack = 0; if (p->auth_warning_slack > 300) p->auth_warning_slack = 300; diff -Nru xscreensaver-5.42+dfsg1/driver/remote.c xscreensaver-5.45+dfsg1/driver/remote.c --- xscreensaver-5.42+dfsg1/driver/remote.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/remote.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver-command, Copyright (c) 1991-2009 Jamie Zawinski +/* xscreensaver-command, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -43,6 +43,7 @@ extern Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_RESPONSE; extern Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_EXIT; extern Atom XA_VROOT, XA_SELECT, XA_DEMO, XA_BLANK, XA_LOCK; +extern Atom XA_ACTIVATE, XA_SUSPEND, XA_NEXT, XA_PREV, XA_EXIT; static XErrorHandler old_handler = 0; @@ -490,6 +491,110 @@ } +/* Wait until the window has been mapped, blanking the screen. + Catches errors, times out after a few seconds. + */ +static int +xscreensaver_command_wait_for_blank (Display *dpy, Window window, + Bool verbose_p, char **error_ret) +{ + time_t start = time((time_t*)0); + int max = 10; + char err[2048]; + Status status = -1; + + while (1) + { + XWindowAttributes xgwa; + xgwa.map_state = IsUnmapped; + + if (!window) + got_badwindow = True; + else + { + XSync (dpy, False); + if (old_handler) abort(); + got_badwindow = False; + old_handler = XSetErrorHandler (BadWindow_ehandler); + status = XGetWindowAttributes (dpy, window, &xgwa); + XSync (dpy, False); + XSetErrorHandler (old_handler); + old_handler = 0; + } + + if (got_badwindow) + { + /* If we got a BadWindow, it might be that in the course of + activating, xscreensaver had to destroy and re-create the + window to get one with the proper Visual. So wait for a + new window to come into existence. + */ + if (window && verbose_p > 1) + fprintf (stderr, + "%s: BadWindow 0x%08x waiting for screen to blank\n", + progname, (unsigned int) window); + window = find_screensaver_window (dpy, 0); + if (window && verbose_p > 1) + fprintf (stderr, "%s: new window is 0x%08x.\n", + progname, (unsigned int) window); + got_badwindow = False; + } + else if (status == 0) + { + sprintf (err, "error on 0x%08x waiting for screen to blank", + (unsigned int) window); + if (error_ret) + *error_ret = strdup (err); + else + fprintf (stderr, "%s: %s\n", progname, err); + return -1; + } + else if (xgwa.map_state == IsViewable) + { + if (verbose_p > 1) + fprintf (stderr, "%s: window 0x%08x mapped.\n", + progname, (unsigned int) window); + return 0; + } + else + { + time_t now = time((time_t*)0); + + if (now >= start + max) + { + sprintf (err, "Timed out waiting for screen to blank on 0x%08x", + (unsigned int) window); + if (error_ret) + *error_ret = strdup (err); + else + fprintf (stderr, "%s: %s\n", progname, err); + return -1; + } + else if (verbose_p && now > start + 3) + { + fprintf (stderr, "%s: waiting for window 0x%08x to map\n", + progname, (unsigned int) window); + verbose_p++; + } + } + +# if defined(HAVE_SELECT) + { + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 1000000L / 10; + select (0, 0, 0, 0, &tv); + } +# else + sleep (1); +# endif + } + + return 0; +} + + + int xscreensaver_command (Display *dpy, Atom command, long arg, Bool verbose_p, char **error_ret) @@ -501,6 +606,18 @@ (command == XA_EXIT), error_ret); + /* If this command should result in the screen being blank, wait until + the xscreensaver window is mapped before returning. */ + if (status == 0 && + (command == XA_ACTIVATE || + command == XA_SUSPEND || + command == XA_LOCK || + command == XA_NEXT || + command == XA_PREV || + command == XA_SELECT)) + status = xscreensaver_command_wait_for_blank (dpy, w, verbose_p, + error_ret); + fflush (stdout); fflush (stderr); return (status < 0 ? status : 0); @@ -565,11 +682,12 @@ { char *o = 0, *p = 0, *c = 0; o = strchr ((char *) id, '('); - if (o) p = strchr (o, '@'); + if (o) p = strrchr (o, '@'); if (p) c = strchr (p, ')'); if (c) { - /* found ID of the form "1234 (user@host)". */ + /* found ID of the form "1234 (user@host)" + or the weirder "1234 (user@crap@host)". */ user = o+1; host = p+1; *p = 0; diff -Nru xscreensaver-5.42+dfsg1/driver/screens.c xscreensaver-5.45+dfsg1/driver/screens.c --- xscreensaver-5.42+dfsg1/driver/screens.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/screens.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* screens.c --- dealing with RANDR, Xinerama, and VidMode Viewports. - * xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski + * xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -576,7 +576,7 @@ { *errP = append (*errP, "WARNING: RANDR reports 1 screen but Xinerama\n" - "\t\treports multiple. Believing Xinerama."); + " reports multiple. Believing Xinerama."); free_monitors (randr_monitors); return xinerama_monitors; } @@ -584,7 +584,7 @@ { *errP = append (*errP, "WARNING: RANDR and Xinerama report different\n" - "\t\tscreen layouts! Believing RANDR."); + " screen layouts! Believing RANDR."); free_monitors (xinerama_monitors); return randr_monitors; } @@ -1089,6 +1089,22 @@ j++; } + for (; j < count; j++) + { + saver_screen_info *ssi = &si->screens[j]; + if (!ssi->screensaver_window) + continue; + fprintf (stderr, "%s: %d: screen now unused, disabling.\n", + blurb(), j); + /* Undo store_saver_id() so that xscreensaver-command doesn't attempt + to communicate with us through this window. It might make more + sense to destroy the window, but I'm not 100% sure that there are + no outstanding grabs on it that have yet been transferred. + */ + XDeleteProperty (si->dpy, ssi->screensaver_window, + XA_SCREENSAVER_VERSION); + } + si->default_screen = &si->screens[0]; return True; } diff -Nru xscreensaver-5.42+dfsg1/driver/splash.c xscreensaver-5.45+dfsg1/driver/splash.c --- xscreensaver-5.42+dfsg1/driver/splash.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/splash.c 2020-12-20 10:54:56.000000000 +0000 @@ -881,7 +881,7 @@ saver_preferences *p = &si->prefs; const char *cmd = p->prefs_command; - if (command && *command) + if (cmd && *cmd) fork_and_exec (ssi, cmd); else fprintf (stderr, "%s: no preferences command has been specified.\n", diff -Nru xscreensaver-5.42+dfsg1/driver/stderr.c xscreensaver-5.45+dfsg1/driver/stderr.c --- xscreensaver-5.42+dfsg1/driver/stderr.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/stderr.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* stderr.c --- capturing stdout/stderr output onto the screensaver window. - * xscreensaver, Copyright (c) 1991-2016 Jamie Zawinski + * xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -296,6 +296,7 @@ stderr_callback (XtPointer closure, int *fd, XtIntervalId *id) { saver_info *si = (saver_info *) closure; + Bool shutting_down_p = (id == 0); /* Called from shutdown_stderr() */ char *s; int left; int size; @@ -345,7 +346,7 @@ However, if the buffer is full (meaning lots of data has been written) then we don't reset the timer. */ - if (read_this_time > 0) + if (read_this_time > 0 && !shutting_down_p) { if (si->stderr_popup_timer) XtRemoveTimeOut (si->stderr_popup_timer); @@ -361,7 +362,7 @@ screen as well as on the original value of those streams. */ void -initialize_stderr (saver_info *si) +initialize_stderr (saver_info *si, Bool inhibit_p) { static Boolean done = False; int fds [2]; @@ -378,6 +379,9 @@ real_stderr = stderr; real_stdout = stdout; + if (inhibit_p) + return; + stderr_dialog_p = get_boolean_resource (si->dpy, "captureStderr", "Boolean"); if (!stderr_dialog_p) @@ -476,8 +480,9 @@ /* If the "-log file" command-line option has been specified, open the file for append, and redirect stdout/stderr there. This is called very early, before initialize_stderr(). + Returns true if logging to a file. */ -void +Bool stderr_log_file (saver_info *si) { int stdout_fd = 1; @@ -485,7 +490,8 @@ const char *filename = get_string_resource (si->dpy, "logFile", "LogFile"); int fd; - if (!filename || !*filename) return; + if (!filename || !*filename) + return False; fd = open (filename, O_WRONLY | O_APPEND | O_CREAT, 0666); @@ -511,6 +517,7 @@ "##########################################################################\n" "\n", blurb(), filename, timestring(0)); + return True; } @@ -527,6 +534,7 @@ if (!real_stderr || stderr_stdout_read_fd < 0) return; + /* Copy any stragglers from the stderr pipe into stderr_buffer */ stderr_callback ((XtPointer) si, &stderr_stdout_read_fd, 0); if (stderr_tail && diff -Nru xscreensaver-5.42+dfsg1/driver/subprocs.c xscreensaver-5.45+dfsg1/driver/subprocs.c --- xscreensaver-5.42+dfsg1/driver/subprocs.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/subprocs.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* subprocs.c --- choosing, spawning, and killing screenhacks. - * xscreensaver, Copyright (c) 1991-2017 Jamie Zawinski + * xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -62,7 +62,7 @@ #undef XtPointer #define XtAppContext void* #define XrmDatabase void* -#define XtIntervalId void* +#define XtIntervalId unsigned long #define XtPointer void* #define Widget void* @@ -264,8 +264,8 @@ clean_job_list(); AGAIN: - while (isspace(*in)) in++; /* skip whitespace */ - while (!isspace(*in) && *in != ':') { + while (*in && isspace(*in)) in++; /* skip whitespace */ + while (*in && !isspace(*in) && *in != ':') { if (*in == '=') got_eq = 1; *out++ = *in++; /* snarf first token */ } @@ -277,7 +277,7 @@ goto AGAIN; } - while (isspace(*in)) in++; /* skip whitespace */ + while (*in && isspace(*in)) in++; /* skip whitespace */ *out = 0; job->name = strdup(name); @@ -369,7 +369,8 @@ static void await_dying_children (saver_info *si); #ifndef VMS -static void describe_dead_child (saver_info *, pid_t, int wait_status); +static void describe_dead_child (saver_info *, pid_t, int wait_status, + struct rusage); #endif @@ -439,7 +440,7 @@ block_sigchld_handler--; } -static int +int kill_job (saver_info *si, pid_t pid, int signal) { saver_preferences *p = &si->prefs; @@ -561,9 +562,10 @@ { int wait_status = 0; pid_t kid; + struct rusage rus; errno = 0; - kid = waitpid (-1, &wait_status, WNOHANG|WUNTRACED); + kid = wait4 (-1, &wait_status, WNOHANG|WUNTRACED, &rus); if (si->prefs.debug_p) { @@ -600,13 +602,14 @@ (kid < 0 && errno != EINTR)) break; - describe_dead_child (si, kid, wait_status); + describe_dead_child (si, kid, wait_status, rus); } } static void -describe_dead_child (saver_info *si, pid_t kid, int wait_status) +describe_dead_child (saver_info *si, pid_t kid, int wait_status, + struct rusage rus) { int i; saver_preferences *p = &si->prefs; @@ -678,6 +681,10 @@ blurb(), screen_no, (unsigned long) kid, name, signal_name (WTERMSIG(wait_status))); */ +# ifdef LOG_CPU_TIME + long u_ms = rus.ru_utime.tv_usec / 1000 + rus.ru_utime.tv_sec * 1000; + long s_ms = rus.ru_stime.tv_usec / 1000 + rus.ru_stime.tv_sec * 1000; +# endif /* LOG_CPU_TIME */ write_string (STDERR_FILENO, blurb()); write_string (STDERR_FILENO, ": "); write_long (STDERR_FILENO, (long) screen_no); @@ -688,6 +695,20 @@ write_string (STDERR_FILENO, ") terminated with signal "); write_long (STDERR_FILENO, WTERMSIG(wait_status)); write_string (STDERR_FILENO, ".\n"); +# ifdef LOG_CPU_TIME + write_string (STDERR_FILENO, blurb()); + write_string (STDERR_FILENO, ": "); + write_long (STDERR_FILENO, (long) screen_no); + write_string (STDERR_FILENO, ": CPU used: "); + write_long (STDERR_FILENO, (u_ms / 1000)); /* msec -> sec */ + write_string (STDERR_FILENO, "."); + write_long (STDERR_FILENO, (u_ms % 1000) / 100); + write_string (STDERR_FILENO, "u, "); + write_long (STDERR_FILENO, (s_ms / 1000)); /* msec -> sec */ + write_string (STDERR_FILENO, "."); + write_long (STDERR_FILENO, (s_ms % 1000) / 100); + write_string (STDERR_FILENO, "s.\n"); +# endif /* LOG_CPU_TIME */ } if (job) @@ -738,12 +759,18 @@ /* Clear out the pid so that screenhack_running_p() knows it's dead. */ if (!job || job->status == job_dead) + { for (i = 0; i < si->nscreens; i++) { saver_screen_info *ssi = &si->screens[i]; if (kid == ssi->pid) ssi->pid = 0; } +# ifdef HAVE_LIBSYSTEMD + if (kid == si->systemd_pid) + si->systemd_pid = 0; +# endif + } } #else /* VMS */ @@ -872,7 +899,12 @@ pid_t fork_and_exec (saver_screen_info *ssi, const char *command) { - saver_info *si = ssi->global; + return fork_and_exec_1 (ssi->global, ssi, command); +} + +pid_t +fork_and_exec_1 (saver_info *si, saver_screen_info *ssi, const char *command) +{ saver_preferences *p = &si->prefs; pid_t forked; @@ -889,11 +921,12 @@ case 0: close (ConnectionNumber (si->dpy)); /* close display fd */ limit_subproc_memory (p->inferior_memory_limit, p->verbose_p); - hack_subproc_environment (ssi->screen, ssi->screensaver_window); + if (ssi) + hack_subproc_environment (ssi->screen, ssi->screensaver_window); if (p->verbose_p) fprintf (stderr, "%s: %d: spawning \"%s\" in pid %lu.\n", - blurb(), ssi->number, command, + blurb(), (ssi ? ssi->number : 0), command, (unsigned long) getpid ()); exec_command (p->shell, command, p->nice_inferior); @@ -908,7 +941,7 @@ break; default: /* parent */ - (void) make_job (forked, ssi->number, command); + (void) make_job (forked, (ssi ? ssi->number : 0), command); break; } @@ -1396,9 +1429,25 @@ void restart_process (saver_info *si) { - fflush (stdout); - fflush (stderr); - shutdown_stderr (si); + if (si->screen_blanked_p) + { + unblank_screen (si); + XSync (si->dpy, False); + } + + emergency_kill_subproc (si); + +# ifdef HAVE_LIBSYSTEMD + if (si->systemd_pid) /* Kill background xscreensaver-systemd process */ + { + /* We're exiting, so there's no need to do a full kill_job() here, + which would waitpid(). */ + /* kill_job (si, si->systemd_pid, SIGTERM); */ + kill (si->systemd_pid, SIGTERM); + si->systemd_pid = 0; + } +# endif + if (si->prefs.verbose_p) { int i; @@ -1406,12 +1455,13 @@ for (i = 0; saved_argv[i]; i++) fprintf (stderr, " %s", saved_argv[i]); fprintf (stderr, "\n"); + + describe_uids (si, stderr); + fprintf (stderr, "\n"); } - describe_uids (si, stderr); - fprintf (stderr, "\n"); - fflush (stdout); - fflush (stderr); + shutdown_stderr (si); + execvp (saved_argv [0], saved_argv); /* shouldn't return */ { char buf [512]; diff -Nru xscreensaver-5.42+dfsg1/driver/timers.c xscreensaver-5.45+dfsg1/driver/timers.c --- xscreensaver-5.42+dfsg1/driver/timers.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/timers.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* timers.c --- detecting when the user is idle, and other timer-related tasks. - * xscreensaver, Copyright (c) 1991-2017 Jamie Zawinski + * xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -311,6 +311,12 @@ if (p->verbose_p) fprintf (stderr, "%s: timed out; activating lock.\n", blurb()); + + if (!si->locked_p) + /* So that "xscreensaver-command -watch" reports the time that the + screen was locked, instead of duplicating the blank time. */ + si->blank_time = time ((time_t *) 0); + set_locked_p (si, True); } @@ -710,6 +716,9 @@ deactivated by clientmessage. I trust that explains why this function is a big hairy mess. + + See the very long comment at the top of xscreensaver.c for why the + MIT-SCREEN-SAVER extension is garbage and should not be used. */ void sleep_until_idle (saver_info *si, Bool until_idle_p) diff -Nru xscreensaver-5.42+dfsg1/driver/types.h xscreensaver-5.45+dfsg1/driver/types.h --- xscreensaver-5.42+dfsg1/driver/types.h 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/types.h 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1993-2014 Jamie Zawinski +/* xscreensaver, Copyright (c) 1993-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -275,6 +275,7 @@ int unlock_failures; /* Counts failed login attempts while the screen is locked. */ time_t unlock_failure_time; /* Time of first failed login attempt. */ + time_t unlock_dismiss_time; /* Time lock dialog most recently dismissed. */ char *unlock_typeahead; /* If the screen is locked, and the user types a character, we assume that it is the first @@ -344,6 +345,9 @@ XtIntervalId stderr_popup_timer; +# ifdef HAVE_LIBSYSTEMD + pid_t systemd_pid; +# endif }; /* This structure holds all the data that applies to the screen-specific parts diff -Nru xscreensaver-5.42+dfsg1/driver/windows.c xscreensaver-5.45+dfsg1/driver/windows.c --- xscreensaver-5.42+dfsg1/driver/windows.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/windows.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ /* windows.c --- turning the screen black; dealing with visuals, virtual roots. - * xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski + * xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -62,7 +62,7 @@ #undef XtPointer #define XtAppContext void* #define XrmDatabase void* -#define XtIntervalId void* +#define XtIntervalId unsigned long #define XtPointer void* #define Widget void* @@ -747,14 +747,37 @@ restore_real_vroot_handler (int sig) { saver_info *si = global_si_kludge; /* I hate C so much... */ + Bool restored_p; signal (sig, SIG_DFL); - if (restore_real_vroot (si)) - fprintf (real_stderr, "\n%s: %s intercepted, vroot restored.\n", - blurb(), signal_name(sig)); + +# ifdef HAVE_LIBSYSTEMD + if (si->systemd_pid) /* Kill background xscreensaver-systemd process */ + { + /* We're exiting, so there's no need to do a full kill_job() here, + which would waitpid(). */ + /* kill_job (si, si->systemd_pid, SIGTERM); */ + kill (si->systemd_pid, SIGTERM); + si->systemd_pid = 0; + } +# endif + + /* This is a signal handler, and the following might do X protocol, + which is horrible, but we're about to terminate so we don't have + a choice... */ + restored_p = restore_real_vroot (si); + + /* Calling fprintf from a signal handler is also risky, but we're + so far into the weeds on that front already... */ + fprintf (stderr, "\n%s: %s%s\n\n", blurb(), signal_name(sig), + (restored_p ? ", vroot restored" : "")); + + shutdown_stderr (si); + kill (getpid (), sig); } + static void catch_signal (saver_info *si, int sig, RETSIGTYPE (*handler) (int)) { @@ -837,15 +860,6 @@ fprintf (stderr, "%s: %s received: restarting...\n", blurb(), signal_name(sig)); - if (si->screen_blanked_p) - { - int i; - for (i = 0; i < si->nscreens; i++) - kill_screenhack (&si->screens[i]); - unblank_screen (si); - XSync (si->dpy, False); - } - restart_process (si); /* Does not return */ abort (); } @@ -861,23 +875,25 @@ Bool vrs; if (exiting) - exit(status); + exit (status); exiting = True; vrs = restore_real_vroot (si); - emergency_kill_subproc (si); - shutdown_stderr (si); - if (p->verbose_p && vrs) fprintf (real_stderr, "%s: old vroot restored.\n", blurb()); - fflush(real_stdout); + emergency_kill_subproc (si); -#ifdef VMS /* on VMS, 1 is the "normal" exit code instead of 0. */ - if (status == 0) status = 1; - else if (status == 1) status = -1; -#endif +# ifdef HAVE_LIBSYSTEMD + if (si->systemd_pid) /* Kill background xscreensaver-systemd process */ + { + kill_job (si, si->systemd_pid, SIGTERM); + si->systemd_pid = 0; + } +# endif + + shutdown_stderr (si); bugp = !!dump_core_reason; @@ -915,6 +931,11 @@ abort(); } +# ifdef VMS /* on VMS, 1 is the "normal" exit code instead of 0. */ + if (status == 0) status = 1; + else if (status == 1) status = -1; +# endif + exit (status); } @@ -1277,7 +1298,11 @@ always exist (though the ID is constant.) So to use this window, we'd have to reimplement the ACTIVATE ClientMessage to tell the *server* to tell *us* to turn on, to cause the window - to get created at the right time. Gag. */ + to get created at the right time. Gag. + + See the very long comment at the top of xscreensaver.c for why the + MIT-SCREEN-SAVER extension is garbage and should not be used. + */ XScreenSaverSetAttributes (si->dpy, root, 0, 0, width, height, 0, current_depth, InputOutput, visual, @@ -1445,6 +1470,7 @@ if (ssi->cmap) XInstallColormap (si->dpy, ssi->cmap); XMapRaised (si->dpy, ssi->screensaver_window); + XSync (si->dpy, False); if (! ssi->pid) spawn_screenhack (ssi); @@ -1568,6 +1594,7 @@ if (!dont_clear || ssi->stderr_overlay_window) clear_stderr (ssi); XMapRaised (si->dpy, ssi->screensaver_window); + XSync (si->dpy, False); #ifdef HAVE_MIT_SAVER_EXTENSION if (ssi->server_mit_saver_window && window_exists_p (si->dpy, ssi->server_mit_saver_window)) @@ -1774,15 +1801,18 @@ { Window focus = 0; int revert_to; + XSync (si->dpy, False); XGetInputFocus (si->dpy, &focus, &revert_to); if (focus && focus != PointerRoot && focus != None) { + XErrorHandler old_handler = XSetErrorHandler (BadWindow_ehandler); XWindowAttributes xgwa; xgwa.colormap = 0; - XGetWindowAttributes (si->dpy, focus, &xgwa); - if (xgwa.colormap && + if (XGetWindowAttributes (si->dpy, focus, &xgwa) && + xgwa.colormap && xgwa.colormap != DefaultColormapOfScreen (xgwa.screen)) XInstallColormap (si->dpy, xgwa.colormap); + XSetErrorHandler (old_handler); } } diff -Nru xscreensaver-5.42+dfsg1/driver/XScreenSaver_ad.h xscreensaver-5.45+dfsg1/driver/XScreenSaver_ad.h --- xscreensaver-5.42+dfsg1/driver/XScreenSaver_ad.h 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/XScreenSaver_ad.h 2020-12-20 10:54:56.000000000 +0000 @@ -27,7 +27,7 @@ "*splash: True", "*splashDuration: 0:00:05", "*visualID: default", -"*captureStderr: True", +"*installColormap: True", "*ignoreUninstalledPrograms: False", "*authWarningSlack: 20", "*textMode: file", @@ -35,23 +35,62 @@ "*textFile: ", "*textProgram: fortune", "*textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss", +"*captureStderr: True", +"*overlayStderr: True", "*overlayTextForeground: #FFFF00", "*overlayTextBackground: #000000", -"*overlayStderr: True", "*font: *-medium-r-*-140-*-m-*", "*sgiSaverExtension: True", "*xidleExtension: True", "*procInterrupts: True", "*xinputExtensionDev: False", -"GetViewPortIsFullOfLies: False", +"*GetViewPortIsFullOfLies: False", "*demoCommand: xscreensaver-demo", -"*prefsCommand: xscreensaver-demo -prefs", "*helpURL: https://www.jwz.org/xscreensaver/man.html", "*loadURL: firefox '%s' || mozilla '%s' || netscape '%s'", "*manualCommand: xterm -sb -fg black -bg gray75 -T '%s manual' \ -e /bin/sh -c 'man \"%s\" ; read foo'", "*dateFormat: %d-%b-%y (%a); %I:%M %p", -"*installColormap: True", +"XScreenSaver.pointerPollTime: 0:00:05", +"XScreenSaver.pointerHysteresis: 10", +"XScreenSaver.initialDelay: 0:00:00", +"XScreenSaver.windowCreationTimeout: 0:00:30", +"XScreenSaver.bourneShell: /bin/sh", +"*Dialog.headingFont: -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1", +"*Dialog.bodyFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1", +"*Dialog.labelFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1", +"*Dialog.unameFont: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1", +"*Dialog.buttonFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1", +"*Dialog.dateFont: -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1", +"*passwd.passwdFont: -*-courier-bold-r-*-*-*-140-*-*-*-iso8859-1", +"*passwd.uname: True", +"*passwd.asterisks: True", +"*Dialog.foreground: #000000", +"*Dialog.background: #E6E6E6", +"*Dialog.Button.foreground: #000000", +"*Dialog.Button.background: #F5F5F5", +"*Dialog.text.foreground: #000000", +"*Dialog.text.background: #FFFFFF", +"*Dialog.topShadowColor: #FFFFFF", +"*Dialog.bottomShadowColor: #CECECE", +"*Dialog.logo.width: 210", +"*Dialog.logo.height: 210", +"*Dialog.internalBorderWidth: 24", +"*Dialog.borderWidth: 1", +"*Dialog.shadowThickness: 2", +"*passwd.thermometer.foreground: #4464AC", +"*passwd.thermometer.background: #FFFFFF", +"*passwd.thermometer.width: 8", +"*passwd.heading.label: XScreenSaver %s", +"*passwd.body.label: This screen is locked.", +"*passwd.unlock.label: OK", +"*passwd.login.label: New Login", +"*passwd.user.label: Username:", +"*splash.heading.label: XScreenSaver %s", +"*splash.body.label: Copyright \\251 1991-2020 by", +"*splash.body2.label: Jamie Zawinski ", +"*splash.demo.label: Settings", +"*splash.help.label: Help", "*programs: \ maze -root \\n\ GL: superquadrics -root \\n\ @@ -155,6 +194,7 @@ GL: menger -root \\n\ GL: molecule -root \\n\ rotzoomer -root \\n\ + scooter -root \\n\ speedmine -root \\n\ GL: starwars -root \\n\ GL: stonerview -root \\n\ @@ -285,47 +325,15 @@ GL: maze3d -root \\n\ GL: peepers -root \\n\ GL: razzledazzle -root \\n\ - vfeedback -root \\n", -"XScreenSaver.pointerPollTime: 0:00:05", -"XScreenSaver.pointerHysteresis: 10", -"XScreenSaver.initialDelay: 0:00:00", -"XScreenSaver.windowCreationTimeout: 0:00:30", -"XScreenSaver.bourneShell: /bin/sh", -"*Dialog.headingFont: -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1", -"*Dialog.bodyFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1", -"*Dialog.labelFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1", -"*Dialog.unameFont: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1", -"*Dialog.buttonFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1", -"*Dialog.dateFont: -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1", -"*passwd.passwdFont: -*-courier-medium-r-*-*-*-140-*-*-*-iso8859-1", -"*Dialog.foreground: #000000", -"*Dialog.background: #E6E6E6", -"*Dialog.Button.foreground: #000000", -"*Dialog.Button.background: #F5F5F5", -"*Dialog.text.foreground: #000000", -"*Dialog.text.background: #FFFFFF", -"*passwd.thermometer.foreground: #4464AC", -"*passwd.thermometer.background: #FFFFFF", -"*Dialog.topShadowColor: #FFFFFF", -"*Dialog.bottomShadowColor: #CECECE", -"*Dialog.logo.width: 210", -"*Dialog.logo.height: 210", -"*Dialog.internalBorderWidth: 24", -"*Dialog.borderWidth: 1", -"*Dialog.shadowThickness: 2", -"*passwd.heading.label: XScreenSaver %s", -"*passwd.body.label: This screen is locked.", -"*passwd.unlock.label: OK", -"*passwd.login.label: New Login", -"*passwd.user.label: Username:", -"*passwd.thermometer.width: 8", -"*passwd.asterisks: True", -"*passwd.uname: True", -"*splash.heading.label: XScreenSaver %s", -"*splash.body.label: Copyright \\251 1991-2018 by", -"*splash.body2.label: Jamie Zawinski ", -"*splash.demo.label: Settings", -"*splash.help.label: Help", + vfeedback -root \\n\ + GL: deepstars -root \\n\ + GL: gravitywell -root \\n\ + GL: beats -root \\n\ + GL: covid19 -root \\n\ + GL: etruscanvenus -root \\n\ + GL: gibson -root \\n\ + GL: headroom -root \\n\ + GL: sphereeversion -root \\n", "*hacks.antinspect.name: AntInspect", "*hacks.antmaze.name: AntMaze", "*hacks.antspotlight.name: AntSpotlight", @@ -340,6 +348,7 @@ "*hacks.ccurve.name: CCurve", "*hacks.cloudlife.name: CloudLife", "*hacks.companioncube.name: CompanionCube", +"*hacks.covid19.name: COVID19", "*hacks.cubestack.name: CubeStack", "*hacks.cubestorm.name: CubeStorm", "*hacks.cubetwist.name: CubeTwist", @@ -347,9 +356,11 @@ "*hacks.cwaves.name: CWaves", "*hacks.dangerball.name: DangerBall", "*hacks.decayscreen.name: DecayScreen", +"*hacks.deepstars.name: DeepStars", "*hacks.dnalogo.name: DNA Logo", "*hacks.dymaxionmap.name: DymaxionMap", "*hacks.energystream.name: EnergyStream", +"*hacks.etruscanvenus.name: EtruscanVenus", "*hacks.euler2d.name: Euler2D", "*hacks.fadeplot.name: FadePlot", "*hacks.filmleader.name: FilmLeader", @@ -365,6 +376,7 @@ "*hacks.gleidescope.name: Gleidescope", "*hacks.glforestfire.name: GLForestFire", "*hacks.glitchpeg.name: GlitchPEG", +"*hacks.gravitywell.name: GravityWell", "*hacks.hyperball.name: HyperBall", "*hacks.hypercube.name: HyperCube", "*hacks.ifs.name: IFS", @@ -398,6 +410,7 @@ "*hacks.skytentacles.name: SkyTentacles", "*hacks.slidescreen.name: SlideScreen", "*hacks.speedmine.name: SpeedMine", +"*hacks.sphereeversion.name: SphereEversion", "*hacks.splitflap.name: SplitFlap", "*hacks.starwars.name: StarWars", "*hacks.stonerview.name: StonerView", diff -Nru xscreensaver-5.42+dfsg1/driver/XScreenSaver.ad.in xscreensaver-5.45+dfsg1/driver/XScreenSaver.ad.in --- xscreensaver-5.42+dfsg1/driver/XScreenSaver.ad.in 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/XScreenSaver.ad.in 2020-12-20 10:54:56.000000000 +0000 @@ -4,8 +4,8 @@ ! a screen saver and locker for the X window system ! by Jamie Zawinski ! -! version 5.42 -! 28-Dec-2018 +! version 5.45 +! 08-Dec-2020 ! ! See "man xscreensaver" for more info. The latest version is always ! available at https://www.jwz.org/xscreensaver/ @@ -55,7 +55,7 @@ *splash: True *splashDuration: 0:00:05 *visualID: default -*captureStderr: True +*installColormap: True *ignoreUninstalledPrograms: False *authWarningSlack: 20 @@ -65,12 +65,16 @@ *textProgram: fortune *textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss +! When a saver writes an error message to stdout/stderr, it can be printed +! on the screen. +! +*captureStderr: True +*overlayStderr: True *overlayTextForeground: #FFFF00 *overlayTextBackground: #000000 -*overlayStderr: True *font: *-medium-r-*-140-*-m-* -! The default is to use these extensions if available (as noted.) +! The default is to use these server extensions if available (as noted.) *sgiSaverExtension: True *xidleExtension: True *procInterrupts: True @@ -80,14 +84,11 @@ ! Set this to True if you are experiencing longstanding XFree86 bug #421 ! (xscreensaver not covering the whole screen) -GetViewPortIsFullOfLies: False +*GetViewPortIsFullOfLies: False -! This is what the "Demo" button on the splash screen runs (/bin/sh syntax.) +! This is what the "Settings" button on the splash screen runs. *demoCommand: xscreensaver-demo -! This is what the "Prefs" button on the splash screen runs (/bin/sh syntax.) -*prefsCommand: xscreensaver-demo -prefs - ! This is the URL loaded by the "Help" button on the splash screen, ! and by the "Documentation" menu item in xscreensaver-demo. *helpURL: https://www.jwz.org/xscreensaver/man.html @@ -124,6 +125,8 @@ ! The format used for printing the date and time in the password dialog box ! (see the strftime(3) manual page for details.) *dateFormat: %d-%b-%y (%a); %I:%M %p +! For day month date: +! *dateFormat: %a %b %d, %I:%M %p ! To show the time only: ! *dateFormat: %I:%M %p ! For 24 hour time: @@ -139,15 +142,195 @@ @NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@ -! Turning on "installColormap" on 8-bit systems interacts erratically with -! certain jurassic window managers. If your screen turns some color other -! than black, the window manager is buggy, and you need to set this resource -! to false. Or switch WMs. Or join the 21st century and get a 24-bit -! graphics card. +! Change these at your peril: ! -*installColormap: True +XScreenSaver.pointerPollTime: 0:00:05 +XScreenSaver.pointerHysteresis: 10 +XScreenSaver.initialDelay: 0:00:00 +XScreenSaver.windowCreationTimeout: 0:00:30 +XScreenSaver.bourneShell: /bin/sh + + +!============================================================================= +! +! Colors and fonts for the unlock dialog and splash screen. +! +!============================================================================= + +! Note, the daemon uses Xlib XLoadFont, not Xft. If these fonts don't +! exist, arcane heuristics are applied until we find something similar. +! +*Dialog.headingFont: -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1 +*Dialog.bodyFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1 +*Dialog.labelFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1 +*Dialog.unameFont: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1 +*Dialog.buttonFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1 +*Dialog.dateFont: -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1 + +! Helvetica asterisks look terrible. +*passwd.passwdFont: -*-courier-bold-r-*-*-*-140-*-*-*-iso8859-1 + +! Whether to display the local host name in the unlock dialog. +*passwd.uname: True + +! Whether typed passwords should echo as asterisks (true) or nothing (false) +*passwd.asterisks: True + + +! The default color scheme for the unlock and splash dialogs. +! This looks pretty close to the default Gtk theme. +! +*Dialog.foreground: #000000 +*Dialog.background: #E6E6E6 +*Dialog.Button.foreground: #000000 +*Dialog.Button.background: #F5F5F5 +*Dialog.text.foreground: #000000 +*Dialog.text.background: #FFFFFF +*Dialog.topShadowColor: #FFFFFF +*Dialog.bottomShadowColor: #CECECE +*Dialog.logo.width: 210 +*Dialog.logo.height: 210 +*Dialog.internalBorderWidth: 24 +*Dialog.borderWidth: 1 +*Dialog.shadowThickness: 2 +*passwd.thermometer.foreground: #4464AC +*passwd.thermometer.background: #FFFFFF +*passwd.thermometer.width: 8 + + +! A few other example color schemes. +! +! A convenient way to debug these is to build and run "driver/test-passwd". +! Remember that configure overwrites XScreenSaver.ad from XScreenSaver.ad.in. + + +! Borderless theme: +! +! *Dialog.topShadowColor: #E6E6E6 +! *Dialog.bottomShadowColor: #E6E6E6 +! *passwd.thermometer.width: 6 + + +! Dark gray theme: +! +! *Dialog.foreground: #CCCCCC +! *Dialog.background: #333333 +! *Dialog.topShadowColor: #444444 +! *Dialog.bottomShadowColor: #111111 +! *Dialog.text.foreground: #DDDDDD +! *Dialog.text.background: #666666 +! *Dialog.Button.foreground: #CCCCCC +! *Dialog.Button.background: #666666 +! *passwd.thermometer.foreground: #4464AC +! *passwd.thermometer.background: #666666 + + +! Black borderless theme: +! +! *Dialog.foreground: #CCCCCC +! *Dialog.background: #000000 +! *Dialog.topShadowColor: #000000 +! *Dialog.bottomShadowColor: #000000 +! *Dialog.text.foreground: #CCCCCC +! *Dialog.text.background: #000000 +! *Dialog.Button.foreground: #CCCCCC +! *Dialog.Button.background: #333333 +! *passwd.thermometer.foreground: #CCCCCC +! *passwd.thermometer.background: #333333 +! *passwd.thermometer.width: 3 + + +! Green on black theme: +! +! *Dialog.foreground: #00FF00 +! *Dialog.background: #000000 +! *Dialog.topShadowColor: #000000 +! *Dialog.bottomShadowColor: #000000 +! *Dialog.shadowThickness: 1 +! *Dialog.text.foreground: #00FF00 +! *Dialog.text.background: #006600 +! *Dialog.Button.foreground: #00FF00 +! *Dialog.Button.background: #006600 +! *passwd.thermometer.foreground: #00CC00 +! *passwd.thermometer.background: #006600 + + +! White theme: +! +! *Dialog.foreground: #000000 +! *Dialog.background: #FFFFFF +! *Dialog.topShadowColor: #CCCCCC +! *Dialog.bottomShadowColor: #CCCCCC +! *Dialog.shadowThickness: 1 +! *Dialog.text.foreground: #000000 +! *Dialog.text.background: #FFFFFF +! *Dialog.Button.foreground: #000000 +! *Dialog.Button.background: #FFFFFF + + +! Blue theme: +! +! *Dialog.foreground: #000000 +! *Dialog.background: #BBCCDD +! *Dialog.topShadowColor: #CCDDEE +! *Dialog.bottomShadowColor: #AABBCC +! *Dialog.text.foreground: #000000 +! *Dialog.text.background: #DDEEFF +! *Dialog.Button.foreground: #000000 +! *Dialog.Button.background: #DDEEFF +! *passwd.thermometer.foreground: #5566AA +! *passwd.thermometer.background: #BBCCDD + + +! Aqua on black borderless theme: +! +! *Dialog.foreground: #00EFEF +! *Dialog.background: #000000 +! *Dialog.topShadowColor: #000000 +! *Dialog.bottomShadowColor: #000000 +! *Dialog.Button.foreground: #000000 +! *Dialog.Button.background: #2244EE +! *Dialog.text.foreground: #2244EE +! *Dialog.text.background: #EEEEEE +! *Dialog.internalBorderWidth: 36 +! *Dialog.borderWidth: 4 +! *Dialog.shadowThickness: 2 +! *passwd.thermometer.foreground: #2244EE +! *passwd.thermometer.background: #000088 + + +! Wine theme, similar to the login screen of "Ubuntu 18.04 Community". +! +! *Dialog.foreground: #AD8FA6 +! *Dialog.background: #2C041E +! *Dialog.topShadowColor: #2C041E +! *Dialog.bottomShadowColor: #2C041E +! *Dialog.text.foreground: #706B70 +! *Dialog.text.background: #F9F9F8 +! *Dialog.Button.foreground: #CFC8CB +! *Dialog.Button.background: #4D2946 +! *passwd.thermometer.foreground: #AD8FA6 +! *passwd.thermometer.background: #4D2946 +! *passwd.thermometer.width: 6 + + +! Static text in the dialog boxes: +! +*passwd.heading.label: XScreenSaver %s +*passwd.body.label: This screen is locked. +*passwd.unlock.label: OK +*passwd.login.label: New Login +*passwd.user.label: Username: +*splash.heading.label: XScreenSaver %s +*splash.body.label: Copyright \251 1991-2020 by +*splash.body2.label: Jamie Zawinski +*splash.demo.label: Settings +*splash.help.label: Help + +!============================================================================= +! ! This is the list of installed screen saver modes. See "man xscreensaver" ! for the syntax used here. ! @@ -157,6 +340,8 @@ ! You can use the `xscreensaver-demo' program to edit the current list of ! screen savers interactively. ! +!============================================================================= + *programs: \ maze -root \n\ @GL_KLUDGE@ GL: superquadrics -root \n\ @@ -260,6 +445,7 @@ @GL_KLUDGE@ GL: menger -root \n\ @GL_KLUDGE@ GL: molecule -root \n\ rotzoomer -root \n\ + scooter -root \n\ speedmine -root \n\ @GL_KLUDGE@ GL: starwars -root \n\ @GL_KLUDGE@ GL: stonerview -root \n\ @@ -390,75 +576,22 @@ @GL_KLUDGE@ GL: maze3d -root \n\ @GL_KLUDGE@ GL: peepers -root \n\ @GL_KLUDGE@ GL: razzledazzle -root \n\ - vfeedback -root \n - - - -!============================================================================= -! -! You probably don't want to change anything after this point. -! -!============================================================================= - - -XScreenSaver.pointerPollTime: 0:00:05 -XScreenSaver.pointerHysteresis: 10 -XScreenSaver.initialDelay: 0:00:00 -XScreenSaver.windowCreationTimeout: 0:00:30 -XScreenSaver.bourneShell: /bin/sh - - -! Resources for the password and splash-screen dialog boxes of -! the "xscreensaver" daemon. -! -*Dialog.headingFont: -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1 -*Dialog.bodyFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1 -*Dialog.labelFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1 -*Dialog.unameFont: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1 -*Dialog.buttonFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1 -*Dialog.dateFont: -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1 + vfeedback -root \n\ +@GL_KLUDGE@ GL: deepstars -root \n\ +@GL_KLUDGE@ GL: gravitywell -root \n\ +@GL_KLUDGE@ GL: beats -root \n\ +@GL_KLUDGE@ GL: covid19 -root \n\ +@GL_KLUDGE@ GL: etruscanvenus -root \n\ +@GL_KLUDGE@ GL: gibson -root \n\ +@GL_KLUDGE@ GL: headroom -root \n\ +@GL_KLUDGE@ GL: sphereeversion -root \n -! Helvetica asterisks look terrible. -*passwd.passwdFont: -*-courier-medium-r-*-*-*-140-*-*-*-iso8859-1 - - -*Dialog.foreground: #000000 -*Dialog.background: #E6E6E6 -*Dialog.Button.foreground: #000000 -*Dialog.Button.background: #F5F5F5 -!*Dialog.Button.pointBackground: #EAEAEA -!*Dialog.Button.clickBackground: #C3C3C3 -*Dialog.text.foreground: #000000 -*Dialog.text.background: #FFFFFF -*passwd.thermometer.foreground: #4464AC -*passwd.thermometer.background: #FFFFFF -*Dialog.topShadowColor: #FFFFFF -*Dialog.bottomShadowColor: #CECECE -*Dialog.logo.width: 210 -*Dialog.logo.height: 210 -*Dialog.internalBorderWidth: 24 -*Dialog.borderWidth: 1 -*Dialog.shadowThickness: 2 - -*passwd.heading.label: XScreenSaver %s -*passwd.body.label: This screen is locked. -*passwd.unlock.label: OK -*passwd.login.label: New Login -*passwd.user.label: Username: -*passwd.thermometer.width: 8 -*passwd.asterisks: True -*passwd.uname: True - -*splash.heading.label: XScreenSaver %s -*splash.body.label: Copyright \251 1991-2018 by -*splash.body2.label: Jamie Zawinski -*splash.demo.label: Settings -*splash.help.label: Help !============================================================================= ! ! Pretty names for the hacks that have unusual capitalization. +! Used by xscreensaver-demo. ! !============================================================================= @@ -476,6 +609,7 @@ *hacks.ccurve.name: CCurve *hacks.cloudlife.name: CloudLife *hacks.companioncube.name: CompanionCube +*hacks.covid19.name: COVID19 *hacks.cubestack.name: CubeStack *hacks.cubestorm.name: CubeStorm *hacks.cubetwist.name: CubeTwist @@ -483,9 +617,11 @@ *hacks.cwaves.name: CWaves *hacks.dangerball.name: DangerBall *hacks.decayscreen.name: DecayScreen +*hacks.deepstars.name: DeepStars *hacks.dnalogo.name: DNA Logo *hacks.dymaxionmap.name: DymaxionMap *hacks.energystream.name: EnergyStream +*hacks.etruscanvenus.name: EtruscanVenus *hacks.euler2d.name: Euler2D *hacks.fadeplot.name: FadePlot *hacks.filmleader.name: FilmLeader @@ -501,6 +637,7 @@ *hacks.gleidescope.name: Gleidescope *hacks.glforestfire.name: GLForestFire *hacks.glitchpeg.name: GlitchPEG +*hacks.gravitywell.name: GravityWell *hacks.hyperball.name: HyperBall *hacks.hypercube.name: HyperCube *hacks.ifs.name: IFS @@ -534,6 +671,7 @@ *hacks.skytentacles.name: SkyTentacles *hacks.slidescreen.name: SlideScreen *hacks.speedmine.name: SpeedMine +*hacks.sphereeversion.name: SphereEversion *hacks.splitflap.name: SplitFlap *hacks.starwars.name: StarWars *hacks.stonerview.name: StonerView diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver.c xscreensaver-5.45+dfsg1/driver/xscreensaver.c --- xscreensaver-5.42+dfsg1/driver/xscreensaver.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1991-2018 Jamie Zawinski +/* xscreensaver, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -10,81 +10,155 @@ */ /* ======================================================================== + * HOW IT WORKS + * ======================================================================== + * * First we wait until the keyboard and mouse become idle for the specified - * amount of time. We do this in one of three different ways: periodically - * checking with the XIdle server extension; selecting key and mouse events - * on (nearly) all windows; or by waiting for the MIT-SCREEN-SAVER extension - * to send us a "you are idle" event. - * - * Then, we map a full screen black window. - * - * We place a __SWM_VROOT property on this window, so that newly-started - * clients will think that this window is a "virtual root" window (as per - * the logic in the historical "vroot.h" header.) - * - * If there is an existing "virtual root" window (one that already had - * an __SWM_VROOT property) then we remove that property from that window. - * Otherwise, clients would see that window (the real virtual root) instead - * of ours (the impostor.) - * - * Then we pick a random program to run, and start it. Two assumptions - * are made about this program: that it has been specified with whatever - * command-line options are necessary to make it run on the root window; - * and that it has been compiled with vroot.h, so that it is able to find - * the root window when a virtual-root window manager (or this program) is - * running. - * - * Then, we wait for keyboard or mouse events to be generated on the window. - * When they are, we kill the inferior process, unmap the window, and restore - * the __SWM_VROOT property to the real virtual root window if there was one. - * - * On multi-screen systems, we do the above on each screen, and start - * multiple programs, each with a different value of $DISPLAY. - * - * On Xinerama systems, we do a similar thing, but instead create multiple - * windows on the (only) display, and tell the subprocess which one to use - * via the $XSCREENSAVER_WINDOW environment variable -- this trick requires - * a recent (Aug 2003) revision of vroot.h. + * amount of time. Then, we map one or more full screen black windows. * - * (See comments in screens.c for more details about Xinerama/RANDR stuff.) + * We hold grabs on our override-redirect windows to ensure that user input + * does not leak through the screen saver to other applications on the + * desktop. If we cannot secure those grabs, we do not blank the screen. + * + * Creating those windows: + * + * - If there are multiple screens, in the X11 sense of "screen", we + * create a window for each (the second number in the $DISPLAY + * variable, "host:display.screen".) + * + * - On Xinerama/RANDR systems, we create windows covering each physical + * monitor, meaning multiple windows on the same virtual desktop. + * + * Then we pick a random program to run, and start it. We assume that it + * has been specified with whatever command line arguments are required to + * make it render onto the window we have provided. This is most easily + * accomplished by simply including the late-2003 version of "vroot.h", + * which will find the window via the $XSCREENSAVER_WINDOW environment + * variable, or via the __SWM_VROOT property. + * + * Programs must draw onto the window provided. Creating their own window + * atop the xscreensaver window does not work. + * + * Then, we wait for keyboard or mouse events to be generated on our + * windows. When they are, we kill the inferior process, unmap the + * windows, and restore the __SWM_VROOT property to the real virtual root + * window if there was one. + * + * Do not ever kill XScreenSaver with signal 9 -- that can lead to the + * __SWM_VROOT property not being restored, and that will screw up your + * window manager. Rather than "kill", use "xscreensaver-command -exit" + * instead. * * While we are waiting for user activity, we also set up timers so that, * after a certain amount of time has passed, we can start a different * screenhack. We do this by killing the running child process with * SIGTERM, and then starting a new one in the same way. * - * If there was a real virtual root, meaning that we removed the __SWM_VROOT - * property from it, meaning we must (absolutely must) restore it before we - * exit, then we set up signal handlers for most signals (SIGINT, SIGTERM, - * etc.) that do this. Most Xlib and Xt routines are not reentrant, so it - * is not generally safe to call them from signal handlers; however, this - * program spends most of its time waiting, so the window of opportunity - * when code could be called reentrantly is fairly small; and also, the worst - * that could happen is that the call would fail. If we've gotten one of - * these signals, then we're on our way out anyway. If we didn't restore the - * __SWM_VROOT property, that would be very bad, so it's worth a shot. Note - * that this means that, if you're using a virtual-root window manager, you - * can really fuck up the world by killing this process with "kill -9". - * * This program accepts ClientMessages of type SCREENSAVER; these messages - * may contain the atoms ACTIVATE, DEACTIVATE, etc, meaning to turn the - * screensaver on or off now, regardless of the idleness of the user, - * and a few other things. The included "xscreensaver-command" program - * sends these messsages. - * - * If we don't have the XIdle, MIT-SCREEN-SAVER, or SGI SCREEN_SAVER - * extensions, then we do the XAutoLock trick: notice every window that - * gets created, and wait 30 seconds or so until its creating process has - * settled down, and then select KeyPress events on those windows which - * already select for KeyPress events. It's important that we not select - * KeyPress on windows which don't select them, because that would - * interfere with event propagation. This will break if any program - * changes its event mask to contain KeyRelease or PointerMotion more than - * 30 seconds after creating the window, but such programs do not seem to - * occur in nature (I've never seen it happen in all these years.) + * may contain the atoms ACTIVATE, DEACTIVATE, etc. The included + * "xscreensaver-command" program sends these messsages. + * + * + * ======================================================================== + * ABOUT SERVER EXTENSIONS + * ======================================================================== + * + * Over the decades, there have been three X11 server extensions that are + * applicable to screen saving: + * + * - XIdle + * + * This extension provided a function to poll the user's idle time. + * It was simple and direct and worked great. Therefore, it was + * removed from the X11 distribution in 1994, with the release of + * X11R6. https://bugs.freedesktop.org/show_bug.cgi?id=1419 + * + * - SGI SCREEN_SAVER + * + * This extension sent two new events: "user is idle", and "user + * is no longer idle". It was simple and direct and worked great. + * But as the name implies, it only ever worked on Silicon + * Graphics machines. SGI became irrelevant around 1998 and went + * out of business in 2009. + * + * - MIT-SCREEN-SAVER + * + * This extension still exists, but it is useless to us. It takes + * the following approach: + * + * - When the user is idle, immediately map full screen black + * windows on each screen. + * + * - Inform the screen saver client that the screen is now black. + * + * - When user activity occurs, unmap the windows and then + * inform the screen saver client. + * + * The screen saver client can specify a few parameters of that + * window, like visual and depth, but that's it. + * + * The extension is designed with the assumption that a screen saver + * would render onto the provided window. However: + * + * - OpenGL programs may require different visuals than 2D X11 + * programs, and you can't change the visual of a window after it + * has been created. + * + * - The extension maps one window per X11 "Screen", which, in this + * modern world, tend to span the entire virtual desktop; whereas + * XScreenSaver runs savers full screen on each *monitor* instead. + * In other words, it is incompatible with Xinerama / RANDR. + * + * - Since this extension maps its own full-screen black windows and + * informs us of that after the fact, it prevents the "fade/unfade" + * animations from working properly. * - * The reason that we can't select KeyPresses on windows that don't have - * them already is that, when dispatching a KeyPress event, X finds the + * - Since it only tells us when the user is idle or non-idle, it + * prevents the "hysteresis" option from working properly (where + * we ignore tiny mouse motions). + * + * In summary, it creates its windows too early, removes them too late, + * creates windows of the wrong quantity and wrong shape, cannot create + * them with the proper visuals, and delivers too little information + * about what caused the user activity. + * + * Also my experience was that the MIT-SCREEN-SAVER extension was flaky, + * and using it at all led to frequent server crashes. + * + * So that's why, even if the server supports the MIT-SCREEN-SAVER + * extension, we don't use it. + * + * There is a recent trend among those who hack on video players to + * say, "We inhibit blanking by calling XResetScreenSaver and/or + * XScreenSaverSuspend, so our work here is done, fuck off." This + * betrays a willful ignorance of why the MIT-SCREEN-SAVER extension + * is a useless foundation upon which to build a screen saver or + * screen locker. + * + * The proper way to inhibit blanking while video is playing is to + * run "xscreensaver-command -deactivate" once a minute while the + * video is playing, as has been explained in the XScreenSaver FAQ + * for 3 decades: https://www.jwz.org/xscreensaver/faq.html#dvd + * + * The reason to do it as a heartbeat is so that your video player + * fails SAFE. Should the player exit abnormally, or freeze, the + * heartbeat stops coming, and screen blanking and locking can resume. + * + * + * ======================================================================== + * WITHOUT SERVER EXTENSIONS + * ======================================================================== + * + * So. Having established that there no longer exist any server extensions + * that help us in any way, here's how idle detection ACTUALLY works: + * + * XScreenSaver notices every window that gets created, wait 30 seconds or + * so until its birth pangs have settled down, and then select KeyPress + * events on those windows. + * + * Actually it only selects KeyPress events on windows that already selected + * for their own KeyPress events, because to do otherwise would interfere + * with event propagation. When dispatching a KeyPress event, X finds the * lowest (leafmost) window in the hierarchy on which *any* client selects * for KeyPress, and sends the event to that window. This means that if a * client had a window with subwindows, and expected to receive KeyPress @@ -94,7 +168,7 @@ * another client malfunction in this way. * * But here's a new kink that started showing up in late 2014: GNOME programs - * don't actually select for or receive KeyPress events! They do it behind + * don't actually select for or receive KeyPress events! They do it behind * the scenes through some kind of Input Method magic, even when running in * an en_US locale. However, in that case, those applications *do* seem to * update the _NET_WM_USER_TIME on their own windows every time they have @@ -103,44 +177,44 @@ * * To detect mouse motion, we periodically wake up and poll the mouse * position and button/modifier state, and notice when something has - * changed. We make this check every five seconds by default, and since the - * screensaver timeout has a granularity of one minute, this makes the + * changed. We make this check every five seconds by default, and since + * the screensaver timeout has a granularity of one minute, this makes the * chance of a false positive very small. We could detect mouse motion in * the same way as keyboard activity, but that would suffer from the same * "client changing event mask" problem that the KeyPress events hack does. - * I think polling is more reliable. + * Polling is more reliable. + * + * Also, because cats, trucks and earthquakes are things that exist, we + * ignore any mouse motions smaller than 10px by default. * - * On systems with /proc/interrupts (Linux) we poll that file and note when + * On Linux systems with /proc/interrupts we poll that file and note when * the interrupt counter numbers on the "keyboard" and "PS/2" lines change. - * (There is no reliable way, using /proc/interrupts, to detect non-PS/2 - * mice, so it doesn't help for serial or USB mice.) + * That was helpful for a decade or so, but then PS/2 devices went out of + * fashion, and there is no reliable way, using /proc/interrupts, to detect + * activity on USB keyboards or mice. Oh well. + * + * + * ======================================================================== + * DEBUGGING HINTS + * ======================================================================== + * + * - Have a second terminal handy, e.g. a Ctrl-Alt-F1 console. If you + * are running xscreensaver under a debugger, it might be helpful to + * run it from that other console, not from a terminal window within + * the same X11 session. That runs the risk of stopping at a + * breakpoint while the screen is blanked and the keyboard is grabbed. * - * None of this crap happens if we're using one of the extensions. Sadly, - * the XIdle extension hasn't been available for many years; the SGI - * extension only exists on SGIs; and the MIT extension, while widely - * deployed, is garbage in several ways. - * - * A third idle-detection option could be implemented (but is not): when - * running on the console display ($DISPLAY is `localhost`:0) and we're on a - * machine where /dev/tty and /dev/mouse have reasonable last-modification - * times, we could just stat() those. But the incremental benefit of - * implementing this is really small, so forget I said anything. - * - * Debugging hints: - * - Have a second terminal handy. - * - Be careful where you set your breakpoints, you don't want this to - * stop under the debugger with the keyboard grabbed or the blackout - * window exposed. - * - If you run your debugger under XEmacs, try M-ESC (x-grab-keyboard) - * to keep your emacs window alive even when xscreensaver has grabbed. * - Go read the code related to `debug_p'. + * * - You probably can't set breakpoints in functions that are called on * the other side of a call to fork() -- if your subprocesses are - * dying with signal 5, Trace/BPT Trap, you're losing in this way. - * - If you aren't using a server extension, don't leave this stopped - * under the debugger for very long, or the X input buffer will get - * huge because of the keypress events it's selecting for. This can - * make your X server wedge with "no more input buffers." + * dying with signal 5 Trace/BPT Trap, you're losing in this way. + * + * - Don't leave this stopped under the debugger for very long, or the + * X input buffer will get huge with un-read KeyPress events. This + * can make your X server hang with "no more input buffers." + * + * - Writing a new screen saver? See the README.hacking file. * * ======================================================================== */ @@ -241,7 +315,7 @@ static Atom XA_SCREENSAVER_RESPONSE; -static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_CYCLE, XA_NEXT, XA_PREV; +static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_SUSPEND, XA_CYCLE, XA_NEXT, XA_PREV; static Atom XA_RESTART, XA_SELECT; static Atom XA_THROTTLE, XA_UNTHROTTLE; Atom XA_DEMO, XA_PREFS, XA_EXIT, XA_LOCK, XA_BLANK; @@ -418,10 +492,10 @@ "#######################################################################\n" "\n" " If at all possible, please re-run xscreensaver with the command\n" - " line arguments `-sync -verbose -log log.txt', and reproduce this\n" - " bug. That will cause xscreensaver to dump a `core' file to the\n" - " current directory. Please include the stack trace from that core\n" - " file in your bug report. *DO NOT* mail the core file itself! That\n" + " line arguments \"-sync -log log.txt\", and reproduce this bug.\n" + " That will cause xscreensaver to dump a `core' file to the current\n" + " directory. Please include the stack trace from that core file\n" + " in your bug report. *DO NOT* mail the core file itself! That\n" " won't work. A \"log.txt\" file will also be written. Please *do*\n" " include the complete \"log.txt\" file with your bug report.\n" "\n" @@ -443,6 +517,11 @@ } +#ifdef __GNUC__ /* Silence warning */ +static void startup_ehandler (String, String, String, String, String *, + Cardinal *) __attribute__((noreturn)); +#endif /* __GNUC__ */ + /* This error handler is used only while the X connection is being set up; after we've got a connection, we don't use this handler again. The only reason for having this is so that we can present a more idiot-proof error @@ -681,6 +760,7 @@ XA_NET_WM_USER_TIME = XInternAtom (si->dpy, "_NET_WM_USER_TIME", False); XA_ACTIVATE = XInternAtom (si->dpy, "ACTIVATE", False); XA_DEACTIVATE = XInternAtom (si->dpy, "DEACTIVATE", False); + XA_SUSPEND = XInternAtom (si->dpy, "SUSPEND", False); XA_RESTART = XInternAtom (si->dpy, "RESTART", False); XA_CYCLE = XInternAtom (si->dpy, "CYCLE", False); XA_NEXT = XInternAtom (si->dpy, "NEXT", False); @@ -1206,7 +1286,13 @@ maybe_reload_init_file (si); - if (p->mode == DONT_BLANK) + /* Treat DONT_BLANK as BLANK_ONLY in emergency-lock when locking + is enabled. */ + + if (p->mode == DONT_BLANK && + (!si->emergency_lock_p || + !p->lock_p || + si->locking_disabled_p)) { if (p->verbose_p) fprintf (stderr, "%s: idle with blanking disabled at %s.\n", @@ -1302,6 +1388,7 @@ p->dpms_enabled_p && p->dpms_quickoff_p) { + /* Sync again just in case */ sync_server_dpms_settings (si->dpy, True, p->dpms_quickoff_p, p->dpms_standby / 1000, @@ -1332,6 +1419,9 @@ if (si->fading_possible_p && p->fade_p) lock_timeout += p->fade_seconds / 1000; + if (si->emergency_lock_p) + lock_timeout = 0; + if (si->emergency_lock_p && p->lock_p && lock_timeout) { int secs = p->lock_timeout / 1000; @@ -1408,6 +1498,24 @@ si->cycle_id = 0; cycle_timer ((XtPointer) si, 0); } + + /* If we are blanking only, optionally power down monitor + right now: quickoff means power down monitor again as soon + as unlock dialog is dismissed without unlocking. */ + if (!ok_to_unblank && + p->mode == BLANK_ONLY && + p->dpms_enabled_p && + p->dpms_quickoff_p) + { + /* Sync again just in case */ + sync_server_dpms_settings (si->dpy, True, + p->dpms_quickoff_p, + p->dpms_standby / 1000, + p->dpms_suspend / 1000, + p->dpms_off / 1000, + False); + monitor_power_on (si, False); + } } #endif /* !NO_LOCKING */ @@ -1450,6 +1558,11 @@ si->lock_id = 0; } +# ifdef HAVE_LIBSYSTEMD + /* This might be a good spot to re-launch si->systemd_pid + if it has died unexpectedly. Which shouldn't happen. */ +# endif + /* Since we're unblanked now, break race conditions and make sure we stay that way (see comment in timers.c.) */ if (! si->de_race_id) @@ -1468,6 +1581,7 @@ saver_info *si = &the_si; saver_preferences *p = &si->prefs; struct passwd *spasswd; + Bool inhibit_stderr_capture_p = False; int i; /* It turns out that if we do setlocale (LC_ALL, "") here, people @@ -1526,10 +1640,14 @@ shell = connect_to_server (si, &argc, argv); process_command_line (si, &argc, argv); - stderr_log_file (si); + inhibit_stderr_capture_p = stderr_log_file (si); print_banner (si); load_init_file(si->dpy, p); /* must be before initialize_per_screen_info() */ + + if (inhibit_stderr_capture_p && !p->verbose_p) + p->verbose_p = 1; /* "-log" implies "-verbose -no-capture-stderr" */ + blurb_timestamp_p = p->timestamp_p; /* kludge */ initialize_per_screen_info (si, shell); /* also sets si->fading_possible_p */ @@ -1546,6 +1664,7 @@ if (ssi->real_screen_p) if (ensure_no_screensaver_running (si->dpy, si->screens[i].screen)) exit (1); + ssi->current_hack = -1; } lock_initialization (si, &argc, argv); @@ -1572,9 +1691,20 @@ p->dpms_off / 1000, False); - initialize_stderr (si); + initialize_stderr (si, inhibit_stderr_capture_p); handle_signals (si); + store_saver_status (si); /* for xscreensaver-command -status */ + +# ifdef HAVE_LIBSYSTEMD /* Launch it in the background */ + { + const char *cmd = (p->verbose_p + ? "xscreensaver-systemd -verbose" + : "xscreensaver-systemd"); + si->systemd_pid = fork_and_exec_1 (si, 0, cmd); + } +# endif + make_splash_dialog (si); main_loop (si); /* doesn't return */ @@ -1656,7 +1786,7 @@ } -static void +void clientmessage_response (saver_info *si, Window w, Bool error, const char *stderr_msg, const char *protocol_msg) @@ -1831,6 +1961,11 @@ } else if (type == XA_DEACTIVATE) { + + /* Regardless of whether the screen saver is active, a DEACTIVATE + message should cause the monitor to become powered on. */ + monitor_power_on (si, True); + # if 0 /* When -deactivate is received while locked, pop up the dialog box instead of just ignoring it. Some people depend on this behavior @@ -1873,6 +2008,34 @@ reset_timers (si); } } + else if (type == XA_SUSPEND) + { + clientmessage_response(si, window, False, + "SUSPEND ClientMessage received.", + "suspending."); + si->selection_mode = 0; + si->demoing_p = False; + si->throttled_p = True; + + /* When suspending, immediately lock, if locking enabled. */ +# ifndef NO_LOCKING + if (p->lock_p && !si->locked_p && !si->locking_disabled_p) + { + si->emergency_lock_p = True; + if (p->verbose_p) + fprintf (stderr, "%s: locking.\n", blurb()); + set_locked_p (si, True); + } +# endif + + /* When suspending, immediately power off the display. */ + monitor_power_on (si, False); + + if (until_idle_p) + return True; /* Blank now */ + else + return False; /* Do not unblank now */ + } else if (type == XA_CYCLE) { if (! until_idle_p) @@ -2354,6 +2517,12 @@ fprintf (stderr, "%s\n", buf); } +# ifdef HAVE_LIBSYSTEMD + fprintf (stderr, "%s: libsystemd\n", blurb()); +# else + fprintf (stderr, "%s: libsystemd (disabled at compile time)\n", blurb()); +# endif + for (i = 0; i < si->nscreens; i++) { saver_screen_info *ssi = &si->screens[i]; diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-command.c xscreensaver-5.45+dfsg1/driver/xscreensaver-command.c --- xscreensaver-5.42+dfsg1/driver/xscreensaver-command.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-command.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver-command, Copyright (c) 1991-2013 Jamie Zawinski +/* xscreensaver-command, Copyright (c) 1991-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -51,8 +51,8 @@ Atom XA_VROOT; Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_RESPONSE; Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO, XA_EXIT; -Atom XA_BLANK, XA_LOCK; -static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_CYCLE, XA_NEXT, XA_PREV; +Atom XA_BLANK, XA_LOCK, XA_ACTIVATE, XA_SUSPEND, XA_NEXT, XA_PREV; +static Atom XA_DEACTIVATE, XA_CYCLE; static Atom XA_RESTART, XA_PREFS, XA_THROTTLE, XA_UNTHROTTLE; static char *screensaver_version; @@ -72,6 +72,9 @@ with this program, xscreensaver-command. See the man pages for\n\ details. These are the arguments understood by xscreensaver-command:\n\ \n\ + -quiet Only print output if an error occurs.\n\ + -verbose Opposite of -quiet. Default.\n\ +\n\ -demo Ask the xscreensaver process to enter interactive demo mode.\n\ \n\ -prefs Ask the xscreensaver process to bring up the preferences\n\ @@ -117,6 +120,11 @@ well, even if locking is not the default. If the saver is\n\ already active, this causes it to be locked as well.\n\ \n\ + -suspend Like -activate, but ignores the lock-timeout, if any, and\n\ + immediately powers off the screen without fading out.\n\ + This is intended to be run just after your laptop's lid\n\ + is closed, and just before the CPU halts.\n\ +\n\ -version Prints the version of xscreensaver that is currently running\n\ on the display -- that is, the actual version number of the\n\ running xscreensaver background process, rather than the\n\ @@ -161,6 +169,7 @@ char *s; Atom XA_WATCH = 0; /* kludge: not really an atom */ char year[5]; + Bool verbose_p = TRUE; progname = argv[0]; s = strrchr (progname, '/'); @@ -187,6 +196,7 @@ else if (cmd) USAGE(); else if (!strncmp (s, "-activate", L)) cmd = &XA_ACTIVATE; else if (!strncmp (s, "-deactivate", L)) cmd = &XA_DEACTIVATE; + else if (!strncmp (s, "-suspend", L)) cmd = &XA_SUSPEND; else if (!strncmp (s, "-cycle", L)) cmd = &XA_CYCLE; else if (!strncmp (s, "-next", L)) cmd = &XA_NEXT; else if (!strncmp (s, "-prev", L)) cmd = &XA_PREV; @@ -202,6 +212,8 @@ else if (!strncmp (s, "-version", L)) cmd = &XA_SCREENSAVER_VERSION; else if (!strncmp (s, "-time", L)) cmd = &XA_SCREENSAVER_STATUS; else if (!strncmp (s, "-watch", L)) cmd = &XA_WATCH; + else if (!strncmp (s, "-quiet", L)) verbose_p = FALSE; + else if (!strncmp (s, "-verbose", L)) verbose_p = TRUE; else USAGE (); if (cmd == &XA_SELECT || cmd == &XA_DEMO) @@ -300,6 +312,7 @@ XA_SCREENSAVER_RESPONSE = XInternAtom (dpy, "_SCREENSAVER_RESPONSE", False); XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False); XA_DEACTIVATE = XInternAtom (dpy, "DEACTIVATE", False); + XA_SUSPEND = XInternAtom (dpy, "SUSPEND", False); XA_RESTART = XInternAtom (dpy, "RESTART", False); XA_CYCLE = XInternAtom (dpy, "CYCLE", False); XA_NEXT = XInternAtom (dpy, "NEXT", False); @@ -321,7 +334,7 @@ exit (i); } - if (*cmd == XA_ACTIVATE || *cmd == XA_LOCK || + if (*cmd == XA_ACTIVATE || *cmd == XA_LOCK || *cmd == XA_SUSPEND || *cmd == XA_NEXT || *cmd == XA_PREV || *cmd == XA_SELECT) /* People never guess that KeyRelease deactivates the screen saver too, so if we're issuing an activation command, wait a second. @@ -331,7 +344,7 @@ if (isatty(0)) sleep (1); - i = xscreensaver_command (dpy, *cmd, arg, True, NULL); + i = xscreensaver_command (dpy, *cmd, arg, verbose_p, NULL); if (i < 0) exit (i); else exit (0); } diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-command.man xscreensaver-5.45+dfsg1/driver/xscreensaver-command.man --- xscreensaver-5.42+dfsg1/driver/xscreensaver-command.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-command.man 2020-12-20 10:54:56.000000000 +0000 @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "09-Nov-2013 (5.23)" "X Version 11" +.TH XScreenSaver 1 "03-Jun-2019 (5.42)" "X Version 11" .SH NAME xscreensaver-command - control a running xscreensaver process .SH SYNOPSIS @@ -29,9 +29,12 @@ \-exit | \ \-restart | \ \-lock | \ +\-suspend | \ \-version | \ \-time | \ -\-watch] +\-watch | \ +\-quiet | \ +\-verbose] .SH DESCRIPTION The \fIxscreensaver\-command\fP program controls a running \fIxscreensaver\fP process by sending it client-messages. @@ -52,6 +55,12 @@ .B \-help Prints a brief summary of command-line options. .TP 8 +.B \-quiet +Only print output if an error occurs. +.TP 8 +.B \-verbose +Opposite of \-quiet. Default. +.TP 8 .B \-demo This just launches the .BR xscreensaver\-demo (1) @@ -137,6 +146,12 @@ .BR xscreensaver (1) for details. .TP 8 +.B \-suspend +Like \fI\-activate\fP, but ignores \fIlockTimeout\fP and immediately +powers off the screen without fading out. This is intended to be run +just after your laptop's lid is closed, and just before the CPU halts, +to lock things down quickly. +.TP 8 .B \-version Prints the version of xscreensaver that is currently running on the display: that is, the actual version number of the running xscreensaver background @@ -249,7 +264,7 @@ .BR xscreensaver\-demo (1), .BR xset (1) .SH COPYRIGHT -Copyright \(co 1992-2013 by Jamie Zawinski. +Copyright \(co 1992-2020 by Jamie Zawinski. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-demo.glade2.in xscreensaver-5.45+dfsg1/driver/xscreensaver-demo.glade2.in --- xscreensaver-5.42+dfsg1/driver/xscreensaver-demo.glade2.in 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-demo.glade2.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,3136 +0,0 @@ - - - - - - - - XScreenSaver - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - False - - - - True - False - 5 - - - - True - GTK_PACK_DIRECTION_LTR - GTK_PACK_DIRECTION_LTR - - - - True - _File - True - - - - - - - - True - _Blank Screen Now - True - - - - - - - True - _Lock Screen Now - True - - - - - - - True - _Kill Daemon - True - - - - - - - True - _Restart Daemon - True - - - - - - - True - - - - - - True - _Quit - True - - - - - - - - - - - True - _Help - True - - - - - - - True - _About... - True - - - - - - - True - _Documentation... - True - - - - - - - - - - 0 - False - False - - - - - - 8 - True - False - 0 - - - - True - True - True - True - GTK_POS_TOP - False - False - - - - - 10 - True - 2 - 2 - False - 0 - 0 - - - - True - 3 - 4 - False - 2 - 0 - - - - True - _Cycle After - True - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 8 - 0 - cycle_spinbutton - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Whether a password should be required to un-blank the screen. - True - False - - - - True - True - _Lock Screen After - True - GTK_RELIEF_NORMAL - True - False - False - True - - Lock Screen - - - - - - - - - - 0 - 2 - 2 - 3 - fill - - - - - - - True - How long before the screen saver activates. - True - 15 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 1 1 720 1 15 0 - - - - - - - - - - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - How long after the screen blanks until a password will be required. - True - 15 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 720 1 15 0 - - Lock Screen After - - - - - - - - - - - - 2 - 3 - 2 - 3 - 10 - fill - - - - - - - True - How long each display mode should run before choosing a new one (in Random mode.) - True - 15 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 720 1 15 0 - - - - - - - - - - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - minutes - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 8 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 3 - 4 - 2 - 3 - - - - - - - True - minutes - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 8 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 3 - 4 - 1 - 2 - - - - - - - True - _Blank After - True - False - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 8 - 0 - timeout_spinbutton - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 1 - 2 - 0 - 1 - fill - - - - - - - True - minutes - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 8 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 3 - 4 - 0 - 1 - - - - - - 0 - 1 - 1 - 2 - fill - fill - - - - - - True - GTK_BUTTONBOX_SPREAD - 30 - - - - True - Demo the selected screen saver in full-screen mode (click the mouse to return.) - True - True - _Preview - True - GTK_RELIEF_NORMAL - True - - - - - - - True - Customization and explanation of the selected screen saver. - True - True - _Settings... - True - GTK_RELIEF_NORMAL - True - - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - - 10 - True - False - 0 - - - - True - False - 0 - - - - True - _Mode: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - mode_menu - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - 0 - False - False - - - - - - True - True - 0 - - - - - - - True - - - - True - Never blank the screen or power down the monitor. - _Disable Screen Saver - True - - - - - - True - When idle or locked, blacken the screen only. - _Blank Screen Only - True - - - - - - True - When idle or locked, run the display mode selected below. - _Only One Screen Saver - True - - - - - - True - When idle or locked, choose a random display mode from among the checked items in the list below. - _Random Screen Saver - True - - - - - - True - When idle or locked, choose a random display mode from among the checked items in the list below. Run that same mode on each monitor. - _Same Random Savers - True - - - - - - - 4 - True - True - - - - - 10 - False - True - - - - - - True - True - GTK_POLICY_NEVER - GTK_POLICY_ALWAYS - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - False - True - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - True - 0 - - - - True - False - 0 - - - - True - Run the next screen saver in the list in full-screen mode (click the mouse to return.) - True - GTK_RELIEF_NORMAL - True - - - - - True - GTK_ARROW_DOWN - GTK_SHADOW_OUT - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Run the previous screen saver in the list in full-screen mode (click the mouse to return.) - True - GTK_RELIEF_NORMAL - True - - - - - True - GTK_ARROW_UP - GTK_SHADOW_OUT - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 0 - False - False - - - - - 0 - False - True - GTK_PACK_END - - - - - 0 - 1 - 0 - 1 - fill - - - - - - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - - - - True - True - True - False - GTK_POS_BOTTOM - False - False - - - - 8 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - 0.5 - 0.5 - 1.33000004292 - False - - - - True - - - - - False - True - - - - - - True - preview - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - No Preview -Available - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - False - True - - - - - - True - no preview - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - Not -Installed - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - False - True - - - - - - True - not installed - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - Very few (or no) screen savers appear to be available. - -This probably means that the "xscreensaver-extras" and -"xscreensaver-gl-extras" packages are not installed. - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - False - True - - - - - - True - nothing - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - - - True - Description - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - label_item - - - - - 1 - 2 - 0 - 1 - 6 - expand|shrink|fill - expand|shrink|fill - - - - - False - True - - - - - - True - _Display Modes - True - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - notebook - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - 2 - 2 - True - 0 - 0 - - - - 10 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - - - - 8 - True - False - 8 - - - - True - screensaver-snap.png - 0 - 0 - 4 - 8 - - - 0 - False - False - - - - - - True - False - 0 - - - - True - Whether the image-manipulating modes should be allowed to operate on an image of your desktop. - True - Grab Desktop _Images - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - False - False - - - - - - True - Whether the image-manipulating modes should operate on images captured from the system's video input (if there is one.) - True - Grab _Video Frames - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - False - False - - - - - - True - Whether the image-manipulating modes should load image files. - True - Choose _Random Image: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - - - - - 0 - False - False - - - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 8 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - The local directory, RSS feed or Atom feed from which images will be randomly chosen. - True - True - True - 0 - - True - * - False - - - - - - - - - 2 - True - True - - - - - - True - True - _Browse - True - GTK_RELIEF_NORMAL - True - - - - 0 - False - False - - - - - 0 - False - False - - - - - - True - Local directory, or RSS feed URL. - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 20 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - 0 - True - True - - - - - - - - True - Image Manipulation - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - label_item - - - - - 0 - 1 - 0 - 1 - - - - - - 10 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - - - - 8 - True - False - 8 - - - - - 0 - False - False - - - - - - True - 5 - 3 - False - 2 - 2 - - - - True - Text-displaying modes will display the text typed here. - True - _Text - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - - - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - Text-displaying modes will display the contents of this file. - True - Text _file - True - GTK_RELIEF_NORMAL - True - False - False - True - text_radio - - - - - - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - Text-displaying modes will display the output of this program. - True - _Program - True - GTK_RELIEF_NORMAL - True - False - False - True - text_radio - - - - - - - - - 0 - 1 - 3 - 4 - fill - - - - - - - True - Text-displaying modes will display the contents of this URL (HTML or RSS). - True - _URL - True - GTK_RELIEF_NORMAL - True - False - False - True - text_radio - - - - - - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - Text-displaying modes will display the local host name, date, and time. - True - _Host Name and Time - True - GTK_RELIEF_NORMAL - True - True - False - True - text_radio - - - - 0 - 3 - 0 - 1 - fill - - - - - - - True - Text-displaying modes will display the contents of this URL (HTML or RSS). - True - True - True - 0 - - True - * - False - - - - - - - - 1 - 3 - 4 - 5 - - - - - - - True - True - _Browse - True - GTK_RELIEF_NORMAL - True - - - - - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - Text-displaying modes will display the text typed here. - True - True - True - 0 - - True - * - False - - - - - - - - - 1 - 3 - 1 - 2 - - - - - - - True - Text-displaying modes will display the output of this program. - True - True - True - 0 - - True - * - False - - - - - - - - - 1 - 2 - 3 - 4 - - - - - - - True - True - _Browse - True - GTK_RELIEF_NORMAL - True - - - - - - - 2 - 3 - 3 - 4 - fill - - - - - - - True - Text-displaying modes will display the contents of this file. - True - True - True - 0 - - True - * - False - - - - - - - - - 1 - 2 - 2 - 3 - - - - - - 0 - True - True - - - - - - - - True - Text Manipulation - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - label_item - - - - - 0 - 1 - 1 - 2 - fill - - - - - - 10 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 8 - True - False - 8 - - - - - 0 - False - False - - - - - - True - False - 0 - - - - True - Whether the monitor should be powered down after a while. - True - _Power Management Enabled - True - GTK_RELIEF_NORMAL - True - True - False - True - - - - - - - - - 0 - False - False - - - - - - True - 3 - 3 - False - 2 - 4 - - - - True - Stand_by After - True - False - GTK_JUSTIFY_LEFT - False - False - 1 - 0.5 - 10 - 0 - dpms_standby_spinbutton - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - Sus_pend After - True - False - GTK_JUSTIFY_LEFT - False - False - 1 - 0.5 - 10 - 0 - dpms_suspend_spinbutton - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - _Off After - True - False - GTK_JUSTIFY_LEFT - False - False - 1 - 0.5 - 10 - 0 - dpms_off_spinbutton - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 0 - 1 - 2 - 3 - fill - - - - - - - True - minutes - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - minutes - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - minutes - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - How long until the monitor powers down. - True - 15 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 1440 1 15 0 - - - - - - - - - - - - - 1 - 2 - 2 - 3 - - - - - - - - True - How long until the monitor goes into power-saving mode. - True - 15 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 1440 1 15 0 - - - - - - - - - - - - - 1 - 2 - 1 - 2 - - - - - - - - True - How long until the monitor goes completely black. - True - 15 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 1440 1 15 0 - - - - - - - - - - - - - 1 - 2 - 0 - 1 - - - - - - - 0 - False - True - - - - - - True - Whether the monitor should be powered off immediately in "Blank Screen Only" mode, regardless of the above power-management timeouts. - True - _Quick Power-off in Blank Only Mode - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - False - False - - - - - - 0 - True - True - - - - - - - - True - Display Power Management - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - label_item - - - - - 1 - 2 - 0 - 1 - fill - - - - - - 10 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - - - - 8 - True - False - 8 - - - - True - screensaver-colorselector.png - 0.5 - 0 - 0 - 0 - - - 0 - False - False - - - - - - True - False - 0 - - - - True - Whether the screen should slowly fade to black when the screen saver activates. - True - Fade to Black when _Blanking - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - - - - 0 - False - False - - - - - - True - Whether the screen should slowly fade in from black when the screen saver deactivates. - True - Fade from Black When _Unblanking - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - - - - 0 - False - False - - - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 3 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - F_ade Duration - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - fade_spinbutton - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 14 - False - False - - - - - - True - How long it should take for the screen to fade in and out. - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - True - False - 0 0 10 1 1 0 - - - - - - - - - - - - - - 4 - False - False - - - - - - True - seconds - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - - 2 - False - False - - - - - 0 - False - False - - - - - - True - - - 8 - False - False - - - - - - True - Whether to install a private colormap when running in 8-bit mode on the default Visual. - True - Install _Colormap - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - False - False - - - - - 0 - True - True - - - - - - - - True - Fading and Colormaps - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - label_item - - - - - 1 - 2 - 1 - 2 - fill - fill - - - - - False - True - - - - - - True - _Advanced - True - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - notebook - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - 5 - GTK_BUTTONBOX_EDGE - 10 - - - - True - True - True - gtk-help - True - GTK_RELIEF_NORMAL - True - - - - - - - True - True - True - gtk-close - True - GTK_RELIEF_NORMAL - True - - - - - - 0 - False - True - GTK_PACK_END - - - - - - - - dialog1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - @COMMENT_DEMO_GLADE2_GTK_2_22_HEAD@False@COMMENT_DEMO_GLADE2_GTK_2_22_TAIL@ - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - _Advanced >> - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - _Standard << - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - _Reset to Defaults - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - -6 - - - - - - - True - True - True - gtk-ok - True - GTK_RELIEF_NORMAL - True - -5 - - - - - - 0 - False - True - GTK_PACK_END - - - - - - True - False - 0 - - - - True - 0 - 0 - GTK_SHADOW_ETCHED_IN - - - - - - - 12 - True - True - True - False - GTK_POS_BOTTOM - False - False - - - - - True - False - 0 - - - - - - - True - True - GTK_PACK_END - - - - - - True - Standard - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - 4 - 2 - False - 0 - 0 - - - - - 0 - 1 - 0 - 1 - fill - fill - - - - - - True - _Command Line: - True - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - cmd_text - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - - - - 1 - 2 - 2 - 3 - - - - - - - True - False - 0 - - - - True - _Visual: - True - False - GTK_JUSTIFY_LEFT - False - False - 1 - 0.5 - 3 - 0 - visual_entry - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - 0 - False - False - - - - - - True - False - True - False - True - False - - - - - - - True - True - True - True - 0 - - True - * - False - - - - - - True - GTK_SELECTION_BROWSE - - - - True - True - Any - - - - - - True - True - Best - - - - - - True - True - Default - - - - - - True - True - Default-N - - - - - - True - True - GL - - - - - - True - True - TrueColor - - - - - - True - True - PseudoColor - - - - - - True - True - StaticGray - - - - - - True - True - GrayScale - - - - - - True - True - DirectColor - - - - - - True - True - Color - - - - - - True - True - Gray - - - - - - True - True - Mono - - - - - - - 0 - False - False - - - - - 1 - 2 - 3 - 4 - fill - fill - - - - - False - True - - - - - - True - Advanced - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - - - True - Settings - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - label_item - - - - - 0 - True - True - - - - - - True - 0 - 0 - GTK_SHADOW_NONE - - - - 5 - True - False - 5 - - - - True - True - - False - False - GTK_JUSTIFY_LEFT - True - True - 0 - 0 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - True - True - - - - - - True - False - 0 - - - - True - True - _Documentation... - True - GTK_RELIEF_NORMAL - True - - - - 0 - False - False - GTK_PACK_END - - - - - 0 - False - False - - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 0 - False - False - - - - - 0 - True - True - - - - - - - diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-demo.glade2p xscreensaver-5.45+dfsg1/driver/xscreensaver-demo.glade2p --- xscreensaver-5.42+dfsg1/driver/xscreensaver-demo.glade2p 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-demo.glade2p 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - XScreenSaver Demo - xscreensaver-demo - - ../utils/images - TRUE - FALSE - FALSE - FALSE - demo-Gtk2-widgets.c - demo-Gtk2-widgets.h - demo-Gtk2-stubs.c - demo-Gtk2-stubs.h - demo-Gtk2-support.c - demo-Gtk2-support.h - diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-demo.ui xscreensaver-5.45+dfsg1/driver/xscreensaver-demo.ui --- xscreensaver-5.42+dfsg1/driver/xscreensaver-demo.ui 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-demo.ui 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,2912 @@ + + + + + 720 + 1 + 15 + 1 + 0 + 1 + + + 720 + 0 + 15 + 1 + 0 + 0 + + + 720 + 0 + 15 + 1 + 0 + 0 + + + 1440 + 0 + 15 + 1 + 0 + 0 + + + 1440 + 0 + 15 + 1 + 0 + 0 + + + 1440 + 0 + 15 + 1 + 0 + 0 + + + 10 + 0 + 1 + 1 + 0 + 0 + + + + + + + + Disable Screen Saver + + + Blank Screen Only + + + Only One Screen Saver + + + Random Screen Saver + + + Same Random Savers + + + + + + + + + + Any + + + Best + + + Default + + + Default-N + + + GL + + + TrueColor + + + PseudoColor + + + StaticGray + + + GrayScale + + + DirectColor + + + Color + + + Gray + + + Mono + + + + + + + + + file + _File + + + + + + activate_action + _Blank Screen Now + + + + + + lock_action + _Lock Screen Now + + + + + + kill_action + _Kill Daemon + + + + + + restart_action + _Restart Daemon + + + + + + exit_action + _Quit + + + + + + help + _Help + + + + + about_action + _About... + + + + + + doc_action + _Documentation... + + + + + + + + + + + + + + + + + + + + + + + + XScreenSaver + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_NORMAL + GDK_GRAVITY_NORTH_WEST + True + False + + + True + False + 5 + + + True + GTK_PACK_DIRECTION_LTR + GTK_PACK_DIRECTION_LTR + + + 0 + False + False + + + + + 8 + True + False + 0 + + + True + True + True + True + GTK_POS_TOP + False + False + + + + 10 + True + 2 + 2 + False + 0 + 0 + + + True + 3 + 4 + False + 2 + 0 + + + True + _Cycle After + True + False + GTK_JUSTIFY_RIGHT + False + False + 1 + 0.5 + 8 + 0 + cycle_spinbutton + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 1 + 2 + 1 + 2 + fill + + + + + + True + Whether a password should be required to un-blank the screen. + False + False + + + True + True + _Lock Screen After + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + + + + + + Lock Screen + + + + + + + 0 + 2 + 2 + 3 + fill + + + + + + True + How long before the screen saver activates. + True + 15 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment1 + + + + + + + + + + + + 2 + 3 + 0 + 1 + fill + + + + + + True + How long after the screen blanks until a password will be required. + True + 15 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment2 + + + + + + + + + + + + + Lock Screen After + + + + + 2 + 3 + 2 + 3 + 10 + fill + + + + + + True + How long each display mode should run before choosing a new one (in Random mode.) + True + 15 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment3 + + + + + + + + + + + + 2 + 3 + 1 + 2 + fill + + + + + + True + minutes + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 8 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 3 + 4 + 2 + 3 + + + + + + True + minutes + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 8 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 3 + 4 + 1 + 2 + + + + + + True + _Blank After + True + False + GTK_JUSTIFY_RIGHT + False + False + 1 + 0.5 + 8 + 0 + timeout_spinbutton + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 1 + 2 + 0 + 1 + fill + + + + + + True + minutes + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 8 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 3 + 4 + 0 + 1 + + + + + + 0 + 1 + 1 + 2 + fill + fill + + + + + True + GTK_BUTTONBOX_SPREAD + 30 + + + True + Demo the selected screen saver in full-screen mode (click the mouse to return.) + True + True + _Preview + True + GTK_RELIEF_NORMAL + True + + + + + + True + Customization and explanation of the selected screen saver. + True + True + _Settings... + True + GTK_RELIEF_NORMAL + True + + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + 10 + True + False + 0 + + + True + False + 0 + + + True + _Mode: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + mode_menu + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + 0 + False + False + + + + + True + True + False + mode_menu_model + + + + + + + 0 + + + + + 4 + True + True + + + + + 10 + False + True + + + + + True + True + GTK_POLICY_NEVER + GTK_POLICY_ALWAYS + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + True + True + False + True + False + True + False + False + False + + + + + 0 + True + True + + + + + True + True + 0 + + + True + False + 0 + + + True + Run the next screen saver in the list in full-screen mode (click the mouse to return.) + True + GTK_RELIEF_NORMAL + True + + + + True + GTK_ARROW_DOWN + GTK_SHADOW_OUT + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + True + Run the previous screen saver in the list in full-screen mode (click the mouse to return.) + True + GTK_RELIEF_NORMAL + True + + + + True + GTK_ARROW_UP + GTK_SHADOW_OUT + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + 0 + False + False + + + + + 0 + False + True + GTK_PACK_END + + + + + 0 + 1 + 0 + 1 + fill + + + + + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + + + True + True + True + False + GTK_POS_BOTTOM + False + False + + + 8 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + 0.5 + 0.5 + 1.33000004292 + False + + + True + + + + + False + True + + + + + True + preview + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + True + No Preview +Available + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + True + no preview + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + True + Not +Installed + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + True + not installed + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + True + Very few (or no) screen savers appear to be available. + +This probably means that the "xscreensaver-extras" and +"xscreensaver-gl-extras" packages are not installed. + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + True + nothing + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + True + Description + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + + 1 + 2 + 0 + 1 + 6 + expand|shrink|fill + expand|shrink|fill + + + + + False + True + + + + + True + _Display Modes + True + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + notebook + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + True + 2 + 2 + True + 0 + 0 + + + 10 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + + + 8 + True + False + 8 + + + True + screensaver-snap.png + 0 + 0 + 4 + 8 + + + 0 + False + False + + + + + True + False + 0 + + + True + Whether the image-manipulating modes should be allowed to operate on an image of your desktop. + True + Grab Desktop _Images + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + 0 + False + False + + + + + True + Whether the image-manipulating modes should operate on images captured from the system's video input (if there is one.) + True + Grab _Video Frames + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + 0 + False + False + + + + + True + Whether the image-manipulating modes should load image files. + True + Choose _Random Image: + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + + + + + 0 + False + False + + + + + True + False + 0 + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 8 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + True + The local directory, RSS feed or Atom feed from which images will be randomly chosen. + True + True + True + 0 + + True + * + False + + + + + + + + + 2 + True + True + + + + + True + True + _Browse + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + + + + + 0 + False + False + + + + + True + Local directory, or RSS feed URL. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 20 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + + + True + Image Manipulation + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + + 0 + 1 + 0 + 1 + + + + + 10 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + + + 8 + True + False + 8 + + + + 0 + False + False + + + + + True + 5 + 3 + False + 2 + 2 + + + True + Text-displaying modes will display the text typed here. + True + _Text + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + + + + + 0 + 1 + 1 + 2 + fill + + + + + + True + Text-displaying modes will display the contents of this file. + True + Text _file + True + GTK_RELIEF_NORMAL + True + False + False + True + text_radio + + + + + + + + 0 + 1 + 2 + 3 + fill + + + + + + True + Text-displaying modes will display the output of this program. + True + _Program + True + GTK_RELIEF_NORMAL + True + False + False + True + text_radio + + + + + + + + + 0 + 1 + 3 + 4 + fill + + + + + + True + Text-displaying modes will display the contents of this URL (HTML or RSS). + True + _URL + True + GTK_RELIEF_NORMAL + True + False + False + True + text_radio + + + + + + + + 0 + 1 + 4 + 5 + fill + + + + + + True + Text-displaying modes will display the local host name, date, and time. + True + _Host Name and Time + True + GTK_RELIEF_NORMAL + True + True + False + True + text_radio + + + + 0 + 3 + 0 + 1 + fill + + + + + + True + Text-displaying modes will display the contents of this URL (HTML or RSS). + True + True + True + 0 + + True + * + False + + + + + + + + 1 + 3 + 4 + 5 + + + + + + True + True + _Browse + True + GTK_RELIEF_NORMAL + True + + + + + + + 2 + 3 + 2 + 3 + fill + + + + + + True + Text-displaying modes will display the text typed here. + True + True + True + 0 + + True + * + False + + + + + + + + + 1 + 3 + 1 + 2 + + + + + + True + Text-displaying modes will display the output of this program. + True + True + True + 0 + + True + * + False + + + + + + + + + 1 + 2 + 3 + 4 + + + + + + True + True + _Browse + True + GTK_RELIEF_NORMAL + True + + + + + + + 2 + 3 + 3 + 4 + fill + + + + + + True + Text-displaying modes will display the contents of this file. + True + True + True + 0 + + True + * + False + + + + + + + + + 1 + 2 + 2 + 3 + + + + + + 0 + True + True + + + + + + + True + Text Manipulation + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + + 0 + 1 + 1 + 2 + fill + + + + + 10 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + 8 + True + False + 8 + + + + 0 + False + False + + + + + True + False + 0 + + + True + Whether the monitor should be powered down after a while. + True + _Power Management Enabled + True + GTK_RELIEF_NORMAL + True + True + False + True + + + + + + + + + 0 + False + False + + + + + True + 3 + 3 + False + 2 + 4 + + + True + Stand_by After + True + False + GTK_JUSTIFY_LEFT + False + False + 1 + 0.5 + 10 + 0 + dpms_standby_spinbutton + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 0 + 1 + 0 + 1 + fill + + + + + + True + Sus_pend After + True + False + GTK_JUSTIFY_LEFT + False + False + 1 + 0.5 + 10 + 0 + dpms_suspend_spinbutton + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 0 + 1 + 1 + 2 + fill + + + + + + True + _Off After + True + False + GTK_JUSTIFY_LEFT + False + False + 1 + 0.5 + 10 + 0 + dpms_off_spinbutton + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 0 + 1 + 2 + 3 + fill + + + + + + True + minutes + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 2 + 3 + 0 + 1 + fill + + + + + + True + minutes + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 2 + 3 + 1 + 2 + fill + + + + + + True + minutes + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 2 + 3 + 2 + 3 + fill + + + + + + True + How long until the monitor powers down. + True + 15 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment4 + + + + + + + + + + + + + 1 + 2 + 2 + 3 + + + + + + + True + How long until the monitor goes into power-saving mode. + True + 15 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment5 + + + + + + + + + + + + + 1 + 2 + 1 + 2 + + + + + + + True + How long until the monitor goes completely black. + True + 15 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment6 + + + + + + + + + + + + + 1 + 2 + 0 + 1 + + + + + + + 0 + False + True + + + + + True + Whether the monitor should be powered off immediately in "Blank Screen Only" mode, regardless of the above power-management timeouts. + True + _Quick Power-off in Blank Only Mode + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + 0 + False + False + + + + + 0 + True + True + + + + + + + True + Display Power Management + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + + 1 + 2 + 0 + 1 + fill + + + + + 10 + True + 0 + 0.5 + GTK_SHADOW_ETCHED_IN + + + + + + 8 + True + False + 8 + + + True + screensaver-colorselector.png + 0.5 + 0 + 0 + 0 + + + 0 + False + False + + + + + True + False + 0 + + + True + Whether the screen should slowly fade to black when the screen saver activates. + True + Fade to Black when _Blanking + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + + + + 0 + False + False + + + + + True + Whether the screen should slowly fade in from black when the screen saver deactivates. + True + Fade from Black When _Unblanking + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + + + + 0 + False + False + + + + + True + False + 0 + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 3 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + True + F_ade Duration + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + fade_spinbutton + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 14 + False + False + + + + + True + How long it should take for the screen to fade in and out. + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + True + False + adjustment7 + + + + + + + + + + + + + + 4 + False + False + + + + + True + seconds + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + 2 + False + False + + + + + 0 + False + False + + + + + True + + + 8 + False + False + + + + + True + Whether to install a private colormap when running in 8-bit mode on the default Visual. + True + Install _Colormap + True + GTK_RELIEF_NORMAL + True + False + False + True + + + + 0 + False + False + + + + + 0 + True + True + + + + + + + True + Fading and Colormaps + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + False + True + + + + + True + _Advanced + True + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + notebook + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 5 + GTK_BUTTONBOX_EDGE + 10 + + + True + True + True + gtk-help + True + GTK_RELIEF_NORMAL + True + + + + + + True + True + True + gtk-close + True + GTK_RELIEF_NORMAL + True + + + + + + 0 + False + True + GTK_PACK_END + + + + + + + dialog1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + False + + + True + False + 0 + + + True + GTK_BUTTONBOX_END + + + True + True + True + _Advanced >> + True + GTK_RELIEF_NORMAL + True + + + + + + True + True + True + _Standard << + True + GTK_RELIEF_NORMAL + True + + + + + + True + True + True + _Reset to Defaults + True + GTK_RELIEF_NORMAL + True + + + + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + + + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + True + + + + + + 0 + False + True + GTK_PACK_END + + + + + True + False + 0 + + + True + 0 + 0 + GTK_SHADOW_ETCHED_IN + + + + + + 12 + True + True + True + False + GTK_POS_BOTTOM + False + False + + + + True + False + 0 + + + + + + True + True + GTK_PACK_END + + + + + True + Standard + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + True + 4 + 2 + False + 0 + 0 + + + + 0 + 1 + 0 + 1 + fill + fill + + + + + True + _Command Line: + True + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + cmd_text + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + 1 + 2 + 1 + 2 + fill + + + + + + True + True + True + True + 0 + + True + * + False + + + + + + 1 + 2 + 2 + 3 + + + + + + True + False + 0 + + + True + _Visual: + True + False + GTK_JUSTIFY_LEFT + False + False + 1 + 0.5 + 3 + 0 + visual_combo + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + 0 + False + False + + + + + False + True + visual_combo_model + 0 + + + + + + True + True + True + True + 0 + + True + * + False + + + + + 0 + False + False + + + + + 1 + 2 + 3 + 4 + fill + fill + + + + + False + True + + + + + True + Advanced + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + True + Settings + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + + + + 0 + True + True + + + + + True + 0 + 0 + GTK_SHADOW_NONE + + + 5 + True + False + 5 + + + True + True + + False + False + GTK_JUSTIFY_LEFT + True + True + 0 + 0 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + True + False + 0 + + + True + True + _Documentation... + True + GTK_RELIEF_NORMAL + True + + + + 0 + False + False + GTK_PACK_END + + + + + 0 + False + False + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + + + 0 + False + False + + + + + 0 + True + True + + + + + + adv_button + std_button + reset_button + cancel_button + ok_button + + + diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-getimage.c xscreensaver-5.45+dfsg1/driver/xscreensaver-getimage.c --- xscreensaver-5.42+dfsg1/driver/xscreensaver-getimage.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-getimage.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2001-2018 by Jamie Zawinski +/* xscreensaver, Copyright (c) 2001-2020 by Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -52,11 +52,24 @@ #ifdef HAVE_GDK_PIXBUF # undef HAVE_JPEGLIB + +# if (__GNUC__ >= 4) /* Ignore useless warnings generated by GTK headers */ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wlong-long" +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# pragma GCC diagnostic ignored "-Wpedantic" +# endif + # ifdef HAVE_GTK2 # include # else /* !HAVE_GTK2 */ # include # endif /* !HAVE_GTK2 */ + +# if (__GNUC__ >= 4) +# pragma GCC diagnostic pop +# endif + #endif /* HAVE_GDK_PIXBUF */ #ifdef HAVE_JPEGLIB @@ -765,6 +778,13 @@ " when compiled with JPEGlib instead of GDK_Pixbuf.\n", progname, filename); goto FAIL; + } + else if (!strncasecmp (buf, ". +# Copyright © 2001-2020 Jamie Zawinski . # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that @@ -53,7 +53,7 @@ my $progname = $0; $progname =~ s@.*/@@g; -my ($version) = ('$Revision: 1.52 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.57 $' =~ m/\s(\d[.\d]+)\s/s); my $verbose = 0; @@ -84,7 +84,7 @@ # them, but it assumes that you gave your images sensible file extensions. # my @good_extensions = ('jpg', 'jpeg', 'pjpeg', 'pjpg', 'png', 'gif', - 'tif', 'tiff', 'xbm', 'xpm'); + 'tif', 'tiff', 'xbm', 'xpm', 'svg'); my $good_file_re = '\.(' . join("|", @good_extensions) . ')$'; # This matches file extensions that might occur in an image directory, @@ -1120,8 +1120,21 @@ } -# Given the raw body of a GIF, JPEG, or PNG document, returns the dimensions -# of the image. +# Given the raw body of an SVG document, returns the dimensions of the image. +# +sub svg_size($) { + my ($body) = @_; + return () unless ($body =~ m/^<\?xml\s/s); + return () unless ($body =~ m/&- " . # Silicon Graphics "&& mv $tmpfile-00000.rgb $tmpfile", - # Maybe this works? - # "ffmpeg -i /dev/video0 -ss 00:00:01 -vframes 1 $tmpfile 2>&-", + "ffmpeg -y -v quiet -i /dev/video0 -vframes:v 1 $escaped_tmpfile 2>&-", # "mplayer -really-quiet tv://0 " . # Maybe works with some cams? # "-ao null -vo pnm -frames 1 2>&- " . @@ -124,7 +123,7 @@ sub usage() { - print STDERR "usage: $progname [--verbose] [--name | --stdout]\n"; + print STDERR "usage: $progname [--verbose] [--name]\n"; exit 1; } diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver.h xscreensaver-5.45+dfsg1/driver/xscreensaver.h --- xscreensaver-5.42+dfsg1/driver/xscreensaver.h 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver.h 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1993-2017 Jamie Zawinski +/* xscreensaver, Copyright (c) 1993-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -140,6 +140,10 @@ extern Bool handle_clientmessage (saver_info *, XEvent *, Bool); extern void maybe_reload_init_file (saver_info *); +extern void clientmessage_response (saver_info *, Window, Bool error, + const char *stderr_msg, + const char *protocol_msg); + /* ======================================================================= subprocs @@ -157,7 +161,10 @@ extern void init_sigchld (void); extern void spawn_screenhack (saver_screen_info *ssi); extern pid_t fork_and_exec (saver_screen_info *ssi, const char *command); +extern pid_t fork_and_exec_1 (saver_info *si, saver_screen_info *ssi, + const char *command); extern void kill_screenhack (saver_screen_info *ssi); +int kill_job (saver_info *si, pid_t pid, int signal); extern void suspend_screenhack (saver_screen_info *ssi, Bool suspend_p); extern Bool screenhack_running_p (saver_info *si); extern void emergency_kill_subproc (saver_info *si); @@ -171,8 +178,8 @@ extern FILE *real_stderr; extern FILE *real_stdout; -extern void stderr_log_file (saver_info *si); -extern void initialize_stderr (saver_info *si); +extern Bool stderr_log_file (saver_info *si); +extern void initialize_stderr (saver_info *si, Bool inhibit_p); extern void reset_stderr (saver_screen_info *ssi); extern void clear_stderr (saver_screen_info *ssi); extern void shutdown_stderr (saver_info *si); diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver.man xscreensaver-5.45+dfsg1/driver/xscreensaver.man --- xscreensaver-5.42+dfsg1/driver/xscreensaver.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver.man 2020-12-20 10:54:56.000000000 +0000 @@ -11,7 +11,7 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "09-Nov-2013 (5.23)" "X Version 11" +.TH XScreenSaver 1 "6-Jun-2019 (5.43)" "X Version 11" .SH NAME xscreensaver - extensible screen saver and screen locking framework .SH SYNOPSIS @@ -201,8 +201,10 @@ .EX sudo dpkg -P gnome-screensaver .EE +Be careful that it doesn't try to uninstall all of GNOME. .TP 3 \fB2: Launch xscreensaver at login.\fP + Select "\fIStartup Applications\fP" from the menu (or manually launch "\fIgnome-session-properties\fP") and add "\fIxscreensaver\fP". @@ -222,11 +224,18 @@ replace Unity's locking "feature" with xscreensaver, let me know.) .TP 3 \fB4: Turn off Unity's built-in blanking.\fP + Open "\fISystem Settings / Brightness & Lock\fP"; .br Un-check "\fIStart Automatically\fP"; .br Set \fI"Turn screen off when inactive for"\fP to \fI"Never".\fP +.br +Or possibly that has been randomly renamed again: +.br +Set "\fISettings / Power / Power Settings\fP" to \fI"Never".\fP +.TP 3 +\fB5: Log out and back in again. .SH USING KDE Like GNOME, KDE also decided to invent their own screen saver framework from scratch instead of simply using xscreensaver. To replace the KDE @@ -254,7 +263,7 @@ Open "\fISystem Settings / Startup/Shutdown / Autostart\fP", and then add "\fI/usr/bin/xscreensaver\fP". -If you are lucky, that will create a \fIxscreensaver.desktop"\fP file +If you are lucky, that will create a \fI"xscreensaver.desktop"\fP file for you in \fI~/.config/autostart/\fP or \fI~/.kde/Autostart/\fP. .TP 3 \fB3: Make xscreensaver be an Autostart program.\fP @@ -303,6 +312,7 @@ Description=XScreenSaver [Service] ExecStart=/usr/bin/xscreensaver +Restart=always [Install] WantedBy=default.target .EE @@ -369,6 +379,17 @@ .BR xauth (1), and .BR xhost (1). +.SH LAPTOP LIDS +If you are running a system with +.BR systemd (1) +221 or newer, and if xscreensaver was compiled with \fIlibsystemd\fP +support, then closing the lid of your laptop will cause the screen to +lock immediately. + +If not, then the screen might not lock until a few seconds \fIafter\fP you +re-open the lid. Which is less than ideal. So if you don't +use \fIsystemd\fP, you might want to get in the habit of +doing \fIxscreensaver-command -lock\fP before closing the lid. .SH BUGS Bugs? There are no bugs. Ok, well, maybe. If you find one, please let me know. https://www.jwz.org/xscreensaver/bugs.html explains how to @@ -1016,7 +1037,7 @@ .BR xscreensaver\-getimage (1), .BR xscreensaver\-text (1). .SH COPYRIGHT -Copyright \(co 1991-2018 by Jamie Zawinski. +Copyright \(co 1991-2020 by Jamie Zawinski. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-systemd.c xscreensaver-5.45+dfsg1/driver/xscreensaver-systemd.c --- xscreensaver-5.42+dfsg1/driver/xscreensaver-systemd.c 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-systemd.c 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,927 @@ +/* xscreensaver-systemd, Copyright (c) 2019-2020 + * Martin Lucina and Jamie Zawinski + * + * ISC License + * + * Permission to use, copy, modify, and/or distribute this software + * for any purpose with or without fee is hereby granted, provided + * that the above copyright notice and this permission notice appear + * in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * + * This utility provides systemd integration for XScreenSaver. + * It does two things: + * + * - When the system is about to go to sleep (e.g., laptop lid closing) + * it locks the screen *before* the system goes to sleep, by running + * "xscreensaver-command -suspend". And then when the system wakes + * up again, it runs "xscreensaver-command -deactivate" to force the + * unlock dialog to appear immediately. + * + * - When another process on the system makes asks for the screen saver + * to be inhibited (e.g. because a video is playing) this program + * periodically runs "xscreensaver-command -deactivate" to keep the + * display un-blanked. It does this until the other program asks for + * it to stop. + * + * + * Background: + * + * For decades, the traditional way for a video player to temporarily + * inhibit the screen saver was to have a heartbeat command that ran + * "xscreensaver-command -deactivate" once a minute while the video was + * playing, and ceased when the video was paused or stopped. The reason + * to do it as a heartbeat rather than a toggle is so that the player + * fails SAFE -- if the player exits abnormally, the heart stops beating, + * and screen saving and locking resumes. + * + * These days, the popular apps do this by using systemd. The design of + * the systemd method easily and trivially allows an app to inhibit the + * screen saver, crash, and then never un-inhibit it, so now your screen + * will never blank again. + * + * Furthermore, since the systemd method uses cookies to ensure that only + * the app that sent "inhibit" can send the matching "uninhibit", simply + * re-launching the crashed video player does not fix the problem. + * + * "Did IQs just drop sharply while I was away?" -- Ellen Ripley + * + * So here's what we're dealing with now, with the various apps you might + * use to play video on Linux at the end of 2020: + * + * + ***************************************************************************** + * + * Firefox (version 78.5) + * + * When playing media, Firefox will send "inhibit" to one of these + * targets: "org.freedesktop.ScreenSaver" or "org.gnome.SessionManager". + * + * However, Firefox decides which, if any, of those to use at launch time, + * and does not revisit that decision. So if xscreensaver-systemd has not + * been launched before Firefox, it won't work. Fortunately, in most use + * cases, xscreensaver will have been launched earlier in the startup + * sequence than the web browser. + * + * If you close the tab or exit while playing, Firefox sends "uninhibit". + * + * Critical Firefox Bug: + * + * If Firefox crashes or is killed while playing, it never sends + * "uninhibit", leaving the screen saver permanently inhibited. Once + * that happens, the only way to un-fuck things is to kill and restart + * the "xscreensaver-systemd" program. + * + * Annoying Firefox Bug: + * + * Firefox sends an "inhibit" message when it is merely playing audio. + * That's horrible. Playing audio should prevent your machine from going + * to sleep, but it should NOT prevent your screen from blanking or + * locking. + * + * However at least it sends it with the reason "audio-playing" instead + * of "video-playing", meaning we can (and do) special-case Firefox and + * ignore that one. + * + * + ***************************************************************************** + * + * Chrome (version 87) + * + * Sends "inhibit" to "org.freedesktop.ScreenSaver" (though it uses a + * a different object path than Firefox does). Unlike Firefox, Chrome + * does not send an "inhibit" message when only audio is playing. + * + * Critical Chrome Bug: + * + * If Chrome crashes or is killed while playing, it never sends + * "uninhibit", leaving the screen saver permanently inhibited. + * + * + ***************************************************************************** + * + * Chromium (version 78, Raspbian 10.4) + * + * Does not use "org.freedesktop.ScreenSaver" or "xdg-screensaver". + * It appears to make no attempt to inhibit the screen saver while + * video is playing. + * + * + ***************************************************************************** + * + * Chromium (version 84.0.4147.141, Raspbian 10.6) + * + * Sends "inhibit" to "org.freedesktop.ScreenSaver" (though it uses a + * a different object path than Firefox does). Unlike Firefox, Chrome + * does not send an "inhibit" message when only audio is playing. + * + * If you close the tab or exit while playing, Chromium sends "uninhibit". + * + * Critical Chromium Bug: + * + * If Chromium crashes or is killed while playing, it never sends + * "uninhibit", leaving the screen saver permanently inhibited. + * + * Annoying Chromium Bug: + * + * Like Firefox, Chromium sends an "inhibit" message when it is merely + * playing audio. Unlike Firefox, it sends exactly the same "reason" + * string as it does when playing video, so we can't tell them apart. + * + * + ***************************************************************************** + * + * MPV (version 0.29.1) + * + * While playing, it runs "xdg-screensaver reset" every 10 seconds as a + * heartbeat. That program is a super-complicated shell script that will + * eventually run "xscreensaver-command -reset". So MPV talks to the + * xscreensaver daemon directly rather than going through systemd. + * That's fine. + * + * On Debian 10.4 and 10.6, MPV does not have a dependency on the + * "xdg-utils" package, so "xdg-screensaver" might not be installed. + * Oddly, Chromium *does* have a dependency on "xdg-utils", even though + * Chromium doesn't run "xdg-screensaver". + * + * The source code suggests that MPlayer and MPV call XResetScreenSaver() + * as well, but only affects the X11 server's built-in screen saver, not + * a userspace screen locker like xscreensaver. + * + * They also call XScreenSaverSuspend() which is part of the MIT + * SCREEN-SAVER server extension. XScreenSaver does make use of that + * extension because it is worse than useless. See the commentary at + * the top of xscreensaver.c for details. + * + * Annoying MPV Bug: + * + * Like Firefox and Chromium, MPV inhibits screen blanking when only + * audio is playing. + * + * + ***************************************************************************** + * + * MPlayer (version mplayer-gui 2:1.3.0) + * + * I can't get this thing to play video at all. It only plays the audio + * of MP4 files, so I can't guess what it might or might not do with video. + * It appears to make no attempt to inhibit the screen saver. + * + * + ***************************************************************************** + * + * VLC (version 3.0.11-0+deb10u1+rpt3) + * + * VLC sends "inhibit" to "org.freedesktop.ScreenSaver" when playing + * video. It does not send "inhibit" when playing audio only, and it + * sends "uninhibit" under all the right circumstances. + * + * NOTE: that's what I saw when I tested it on Raspbian 10.6. However, + * the version that came with Raspbian 10.4 -- which also called itself + * "VLC 3.0.11" -- did not send "uninhibit" when using the window + * manager's "close" button! Or when killed with "kill". + * + * NOTE ALSO: The VLC source code suggests that under some circumstances + * it might be talking to these instead: "org.freedesktop.ScreenSaver", + * "org.freedesktop.PowerManagement.Inhibit", "org.mate.SessionManager", + * and/or "org.gnome.SessionManager". It also contains code to run + * "xdg-screensaver reset" as a heartbeat. I can't tell how it decides + * which system to use. I have never seen it run "xdg-screensaver". + * + * + ***************************************************************************** + * + * TO DO: + * + * - What does the standalone Zoom executable do on Linux? There doesn't + * seem to be a Raspbian build, so I can't test it. + * + * - Since the systemd misdesign allows a program to call "inhibit" and + * then crash without un-inhibiting, it would be sensible for us to + * auto-uninhibit if the inhibiting process's pid goes away, but it + * seems that sd_bus_creds_get_pid() never works, so we can't do that. + * This is going to be a constant problem! + * + * - xscreensaver_method_uninhibit() does not actually send a reply, are + * we doing the right thing when registering it? + * + * - Currently this code is only listening to "org.freedesktop.ScreenSaver". + * Perhaps it should listen to "org.mate.SessionManager" and + * "org.gnome.SessionManager"? Where are those documented? + * + * - Do we need to call sd_bus_release_name() explicitly on exit? + * + * - Run under valgrind to check for any memory leaks. + * + * + * TESTING: + * + * To call the D-BUS methods manually, you can use "busctl": + * + * busctl --user call org.freedesktop.ScreenSaver \ + * /ScreenSaver org.freedesktop.ScreenSaver \ + * Inhibit ss test-application test-reason + * + * This will hand out a cookie, which you can pass back to UnInhibit: + * + * u 1792821391 + * + * busctl --user call org.freedesktop.ScreenSaver \ + * /ScreenSaver org.freedesktop.ScreenSaver \ + * UnInhibit u 1792821391 + * + * https://github.com/mato/xscreensaver-systemd + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "yarandom.h" + +#ifdef HAVE_LIBSYSTEMD +# include + +#else /* !HAVE_LIBSYSTEMD */ + + /* This is a testing shim so that I can somewhat test this even on + machines that only have libsystemd < 221, such as CentOS 7.7... + */ + typedef struct sd_bus sd_bus; + typedef struct sd_bus_message sd_bus_message; + typedef struct sd_bus_slot sd_bus_slot; + typedef struct sd_bus_creds sd_bus_creds; + typedef struct { char *message; } sd_bus_error; + typedef int (*sd_bus_message_handler_t) + (sd_bus_message *m, void *userdata, sd_bus_error *ret_error); + #define SD_BUS_ERROR_NULL { 0 } + static int sd_bus_message_read (sd_bus_message *m, char *types, ...) + { return -1; } + static sd_bus_message *sd_bus_message_unref(sd_bus_message *m) { return 0; } + static void sd_bus_error_free(sd_bus_error *e) { } + static int sd_bus_call_method(sd_bus *bus, const char *destination, + const char *path, const char *interface, + const char *member, sd_bus_error *ret_error, + sd_bus_message **reply, const char *types, ...) + { return -1; } + static int sd_bus_open_user(sd_bus **ret) { return -1; } + static int sd_bus_request_name(sd_bus *bus, const char *name, uint64_t flags) + { return -1; } + static int sd_bus_open_system(sd_bus **ret) { return -1; } + static int sd_bus_add_match(sd_bus *bus, sd_bus_slot **slot, + const char *match, + sd_bus_message_handler_t callback, void *userdata) + { return -1; } + static int sd_bus_process(sd_bus *bus, sd_bus_message **r) { return -1; } + static sd_bus *sd_bus_flush_close_unref(sd_bus *bus) { return 0; } + static void sd_bus_message_ref(sd_bus_message *r) { } + static int sd_bus_reply_method_return (sd_bus_message *call, + const char *types, ...) { return -1; } + typedef int (*sd_bus_message_handler_t) (sd_bus_message *m, void *userdata, + sd_bus_error *ret_error); + struct sd_bus_vtable { const char *a; const char *b; const char *c; + sd_bus_message_handler_t d; int e; }; + typedef struct sd_bus_vtable sd_bus_vtable; +# define SD_BUS_VTABLE_START(_flags) { 0 } +# define SD_BUS_VTABLE_END /**/ +# define SD_BUS_VTABLE_UNPRIVILEGED -1 +# define SD_BUS_METHOD(_member, _signature, _result, _handler, _flags) { \ + _member, _signature, _result, _handler, _flags } + static int sd_bus_add_object_vtable(sd_bus *bus, sd_bus_slot **slot, + const char *path, const char *interface, + const sd_bus_vtable *vtable, + void *userdata) { return -1; } + static int sd_bus_get_fd(sd_bus *bus) { return -1; } + static int sd_bus_get_events(sd_bus *bus) { return -1; } + static int sd_bus_get_timeout (sd_bus *bus, uint64_t *u) { return -1; } + static sd_bus_creds *sd_bus_message_get_creds (sd_bus_message *m) {return 0;} + static int sd_bus_creds_get_pid(sd_bus_creds *c, pid_t *p) { return -1; } +#endif /* !HAVE_LIBSYSTEMD */ + +#include "queue.h" +#include "version.h" + +static char *progname; +static char *screensaver_version; +static int verbose_p = 0; + +#define DBUS_CLIENT_NAME "org.jwz.XScreenSaver" +#define DBUS_SD_SERVICE_NAME "org.freedesktop.login1" +#define DBUS_SD_OBJECT_PATH "/org/freedesktop/login1" +#define DBUS_SD_INTERFACE "org.freedesktop.login1.Manager" +#define DBUS_SD_METHOD "Inhibit" +#define DBUS_SD_METHOD_ARGS "ssss" +#define DBUS_SD_METHOD_WHAT "sleep" +#define DBUS_SD_METHOD_WHO "xscreensaver" +#define DBUS_SD_METHOD_WHY "lock screen on suspend" +#define DBUS_SD_METHOD_MODE "delay" + +#define DBUS_SD_MATCH "type='signal'," \ + "interface='" DBUS_SD_INTERFACE "'," \ + "member='PrepareForSleep'" + +#define DBUS_FDO_NAME "org.freedesktop.ScreenSaver" +#define DBUS_FDO_OBJECT_PATH "/ScreenSaver" /* Firefox */ +#define DBUS_FDO_OBJECT_PATH_2 "/org/freedesktop/ScreenSaver" /* Chrome */ +#define DBUS_FDO_INTERFACE "org.freedesktop.ScreenSaver" + +#define HEARTBEAT_INTERVAL 50 /* seconds */ + + +struct handler_ctx { + sd_bus *system_bus; + sd_bus_message *lock_message; + int lock_fd; + int is_inhibited; +}; + +static struct handler_ctx global_ctx = { NULL, NULL, -1 }; + +SLIST_HEAD(inhibit_head, inhibit_entry) inhibit_head = + SLIST_HEAD_INITIALIZER(inhibit_head); + +struct inhibit_entry { + uint32_t cookie; + pid_t pid; + time_t start_time; + char *appname; + SLIST_ENTRY(inhibit_entry) entries; +}; + + +static const char * +blurb (void) +{ + static char buf[255]; + time_t now = time ((time_t *) 0); + char ct[100]; + int n = strlen(progname); + if (n > 100) n = 99; + strncpy(buf, progname, n); + buf[n++] = ':'; + buf[n++] = ' '; + ctime_r (&now, ct); + strncpy(buf+n, ct+11, 8); + strcpy(buf+n+9, ": "); + return buf; +} + + +static void +xscreensaver_command (const char *cmd) +{ + char buf[1024]; + int rc; + sprintf (buf, "xscreensaver-command %.100s -%.100s", + (verbose_p ? "-verbose" : "-quiet"), + cmd); + if (verbose_p) + fprintf (stderr, "%s: exec: %s\n", blurb(), buf); + rc = system (buf); + if (rc == -1) + fprintf (stderr, "%s: exec failed: %s\n", blurb(), buf); + else if (WEXITSTATUS(rc) != 0) + fprintf (stderr, "%s: exec: \"%s\" exited with status %d\n", + blurb(), buf, WEXITSTATUS(rc)); +} + + +static int +xscreensaver_register_sleep_lock (struct handler_ctx *ctx) +{ + sd_bus_error error = SD_BUS_ERROR_NULL; + sd_bus_message *reply = NULL; + int fd = -1; + int rc = sd_bus_call_method (ctx->system_bus, + DBUS_SD_SERVICE_NAME, DBUS_SD_OBJECT_PATH, + DBUS_SD_INTERFACE, DBUS_SD_METHOD, + &error, &reply, + DBUS_SD_METHOD_ARGS, + DBUS_SD_METHOD_WHAT, DBUS_SD_METHOD_WHO, + DBUS_SD_METHOD_WHY, DBUS_SD_METHOD_MODE); + if (rc < 0) { + fprintf (stderr, "%s: inhibit sleep failed: %s\n", + blurb(), error.message); + goto DONE; + } + + /* Save the lock fd and explicitly take a ref to the lock message. */ + rc = sd_bus_message_read (reply, "h", &fd); + if (rc < 0 || fd < 0) { + fprintf (stderr, "%s: inhibit sleep failed: no lock fd: %s\n", + blurb(), strerror(-rc)); + goto DONE; + } + sd_bus_message_ref(reply); + ctx->lock_message = reply; + ctx->lock_fd = fd; + + DONE: + sd_bus_error_free (&error); + + return rc; +} + + +/* Called when DBUS_SD_INTERFACE sends a "PrepareForSleep" signal. + The event is sent twice: before sleep, and after. + */ +static int +xscreensaver_systemd_handler (sd_bus_message *m, void *arg, + sd_bus_error *ret_error) +{ + struct handler_ctx *ctx = arg; + int before_sleep; + int rc; + + rc = sd_bus_message_read (m, "b", &before_sleep); + if (rc < 0) { + fprintf (stderr, "%s: message read failed: %s\n", + blurb(), strerror(-rc)); + return 1; /* >= 0 means success */ + } + + /* Use the scheme described at + https://www.freedesktop.org/wiki/Software/systemd/inhibit/ + under "Taking Delay Locks". + */ + + if (before_sleep) { + /* Tell xscreensaver that we are suspending, and to lock if desired. */ + xscreensaver_command ("suspend"); + + if (ctx->lock_message) { + /* Release the lock, meaning we are done and it's ok to sleep now. + Don't rely on unref'ing the message to close the fd, do that + explicitly here. + */ + close(ctx->lock_fd); + sd_bus_message_unref (ctx->lock_message); + ctx->lock_message = NULL; + ctx->lock_fd = -1; + } else { + fprintf (stderr, "%s: no context lock\n", blurb()); + } + } else { + /* Tell xscreensaver to present the unlock dialog right now. */ + xscreensaver_command ("deactivate"); + + /* We woke from sleep, so we need to re-register for the next sleep. */ + rc = xscreensaver_register_sleep_lock (ctx); + if (rc < 0) + fprintf (stderr, "%s: could not re-register sleep lock\n", blurb()); + } + + return 1; /* >= 0 means success */ +} + + +/* Called from the vtable when another process sends a request to systemd + to inhibit the screen saver. We return to them a cookie which they must + present with their "uninhibit" request. + */ +static int +xscreensaver_method_inhibit (sd_bus_message *m, void *arg, + sd_bus_error *ret_error) +{ + struct handler_ctx *ctx = arg; + const char *application_name = 0, *inhibit_reason = 0; + struct inhibit_entry *entry = 0; + sd_bus_creds *creds = 0; + pid_t pid = 0; + const char *s; + + int rc = sd_bus_message_read(m, "ss", &application_name, &inhibit_reason); + if (rc < 0) { + fprintf (stderr, "%s: failed to parse method call: %s\n", + blurb(), strerror(-rc)); + return rc; + } + + if (!application_name || !*application_name) { + fprintf (stderr, "%s: no app name in method call\n", blurb()); + return -1; + } + + if (!inhibit_reason || !*inhibit_reason) { + fprintf (stderr, "%s: no reason in method call from \"%s\"\n", + blurb(), application_name); + return -1; + } + + /* Omit directory (Chrome does this shit) */ + s = strrchr (application_name, '/'); + if (s && s[1]) application_name = s+1; + + if (strcasestr (inhibit_reason, "audio") && + !strcasestr (inhibit_reason, "video")) { + /* Firefox 78 sends an inhibit when playing audio only, with reason + "audio-playing". This is horrible. Ignore it. (But perhaps it + would be better to accept it, issue them a cookie, and then just + ignore that entry?) */ + if (verbose_p) + fprintf (stderr, "%s: inhibited by \"%s\" with \"%s\", ignored\n", + blurb(), application_name, inhibit_reason); + return -1; + } + + /* Get the pid of the process that called inhibit, so that we can + auto-uninhibit if that process dies. We need to do this because so + many apps do not fail safe, and systemd's design doesn't enforce that. + + Welp, this doesn't work. We get ENODATA any time we try to get the + pid of the message sender. FFFFFFFfffffffuuuuuuu...... + + Other things that do not work include: sd_bus_creds_get_exe, + sd_bus_creds_get_cmdline and sd_bus_creds_get_description. So maybe + we could go through the process table and find a pid whose command + line matches application_name, but there's no guarantee that those are + the same. + */ + creds = sd_bus_message_get_creds (m); + if (!creds) { + if (verbose_p) + fprintf (stderr, "%s: inhibit: unable to get creds of \"%s\"\n", + blurb(), application_name); + } else { + rc = sd_bus_creds_get_pid (creds, &pid); + if (rc < 0 || pid <= 0) { + pid = 0; + if (verbose_p) + fprintf (stderr, "%s: inhibit: unable to get pid of \"%s\": %s\n", + blurb(), application_name, strerror(-rc)); + } + } + + entry = malloc(sizeof (struct inhibit_entry)); + entry->cookie = ya_random(); + entry->appname = strdup(application_name); + entry->pid = pid; + entry->start_time = time ((time_t *)0); + SLIST_INSERT_HEAD(&inhibit_head, entry, entries); + ctx->is_inhibited++; + if (verbose_p) + fprintf (stderr, "%s: inhibited by \"%s\" with \"%s\" -> cookie %08X\n", + blurb(), application_name, inhibit_reason, entry->cookie); + + return sd_bus_reply_method_return (m, "u", entry->cookie); +} + + +/* Called from the vtable when another process sends a request to systemd + to uninhibit the screen saver. The cookie must match an earlier "inhibit" + request. + */ +static int +xscreensaver_method_uninhibit (sd_bus_message *m, void *arg, + sd_bus_error *ret_error) +{ + struct handler_ctx *ctx = arg; + uint32_t cookie; + struct inhibit_entry *entry; + int found = 0; + + int rc = sd_bus_message_read (m, "u", &cookie); + if (rc < 0) { + fprintf (stderr, "%s: failed to parse method call: %s\n", + blurb(), strerror(-rc)); + return rc; + } + + SLIST_FOREACH(entry, &inhibit_head, entries) { + if (entry->cookie == cookie) { + if (verbose_p) + fprintf (stderr, "%s: uninhibited by \"%s\" with cookie %08X\n", + blurb(), entry->appname, cookie); + SLIST_REMOVE (&inhibit_head, entry, inhibit_entry, entries); + if (entry->appname) free (entry->appname); + free(entry); + ctx->is_inhibited--; + if (ctx->is_inhibited < 0) + ctx->is_inhibited = 0; + found = 1; + break; + } + } + + if (! found) + fprintf (stderr, "%s: uninhibit: no match for cookie %08X\n", + blurb(), cookie); + + return sd_bus_reply_method_return (m, ""); +} + +/* + * This vtable defines the service interface we implement. + */ +static const sd_bus_vtable +xscreensaver_dbus_vtable[] = { + SD_BUS_VTABLE_START(0), + SD_BUS_METHOD("Inhibit", "ss", "u", xscreensaver_method_inhibit, + SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("UnInhibit", "u", "", xscreensaver_method_uninhibit, + SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_VTABLE_END +}; + + +static int +pid_dead (pid_t pid) +{ + int rc = kill (pid, 0); + if (rc == 0) return 0; /* Process exists. */ + if (errno == EPERM) return 0; /* Process exists but is not owned by us. */ + return 1; /* No such process, ESRCH. */ +} + + +static int +xscreensaver_systemd_loop (void) +{ + sd_bus *system_bus = NULL, *user_bus = NULL; + struct handler_ctx *ctx = &global_ctx; + sd_bus_error error = SD_BUS_ERROR_NULL; + int rc; + time_t last_deactivate_time = 0; + + /* 'user_bus' is where we receive messages from other programs sending + inhibit/uninhibit to org.freedesktop.ScreenSaver, etc. + */ + + rc = sd_bus_open_user (&user_bus); + if (rc < 0) { + fprintf (stderr, "%s: user bus connection failed: %s\n", + blurb(), strerror(-rc)); + goto FAIL; + } + + rc = sd_bus_add_object_vtable (user_bus, + NULL, + DBUS_FDO_OBJECT_PATH, + DBUS_FDO_INTERFACE, + xscreensaver_dbus_vtable, + &global_ctx); + if (rc < 0) { + fprintf (stderr, "%s: vtable registration failed: %s\n", + blurb(), strerror(-rc)); + goto FAIL; + } + + rc = sd_bus_add_object_vtable (user_bus, + NULL, + DBUS_FDO_OBJECT_PATH_2, + DBUS_FDO_INTERFACE, + xscreensaver_dbus_vtable, + &global_ctx); + if (rc < 0) { + fprintf (stderr, "%s: vtable registration failed: %s\n", + blurb(), strerror(-rc)); + goto FAIL; + } + + rc = sd_bus_request_name (user_bus, DBUS_FDO_NAME, 0); + if (rc < 0) { + fprintf (stderr, "%s: failed to connect as %s: %s\n", + blurb(), DBUS_FDO_NAME, strerror(-rc)); + goto FAIL; + } + + rc = sd_bus_request_name (user_bus, DBUS_CLIENT_NAME, 0); + if (rc < 0) { + fprintf (stderr, "%s: failed to connect as %s: %s\n", + blurb(), DBUS_CLIENT_NAME, strerror(-rc)); + goto FAIL; + } + + + /* 'system_bus' is where we hold a lock on org.freedesktop.login1, meaning + that the system will send us a PrepareForSleep message when the system is + about to suspend. + */ + + rc = sd_bus_open_system (&system_bus); + if (rc < 0) { + fprintf (stderr, "%s: system bus connection failed: %s\n", + blurb(), strerror(-rc)); + goto FAIL; + } + + /* Obtain a lock fd from the "Inhibit" method, so that we can delay + sleep when a "PrepareForSleep" signal is posted. */ + + ctx->system_bus = system_bus; + rc = xscreensaver_register_sleep_lock (ctx); + if (rc < 0) + goto FAIL; + + /* This is basically an event mask, saying that we are interested in + "PrepareForSleep", and to run our callback when that signal is thrown. + */ + rc = sd_bus_add_match (system_bus, NULL, DBUS_SD_MATCH, + xscreensaver_systemd_handler, + &global_ctx); + if (rc < 0) { + fprintf (stderr, "%s: add match failed: %s\n", blurb(), strerror(-rc)); + goto FAIL; + } + + if (verbose_p) + fprintf (stderr, "%s: connected\n", blurb()); + + + /* Run an event loop forever, and wait for our callback to run. + */ + while (1) { + struct pollfd fds[2]; + uint64_t poll_timeout, system_timeout, user_timeout; + struct inhibit_entry *entry; + + /* We MUST call sd_bus_process() on each bus at least once before calling + sd_bus_get_events(), so just always start the event loop by processing + all outstanding requests on both busses. */ + do { + rc = sd_bus_process (system_bus, NULL); + if (rc < 0) { + fprintf (stderr, "%s: failed to process system bus: %s\n", + blurb(), strerror(-rc)); + goto FAIL; + } + } while (rc > 0); + + do { + rc = sd_bus_process (user_bus, NULL); + if (rc < 0) { + fprintf (stderr, "%s: failed to process user bus: %s\n", + blurb(), strerror(-rc)); + goto FAIL; + } + } while (rc > 0); + + fds[0].fd = sd_bus_get_fd (system_bus); + fds[0].events = sd_bus_get_events (system_bus); + fds[0].revents = 0; + + fds[1].fd = sd_bus_get_fd (user_bus); + fds[1].events = sd_bus_get_events (user_bus); + fds[1].revents = 0; + + sd_bus_get_timeout (system_bus, &system_timeout); + sd_bus_get_timeout (user_bus, &user_timeout); + + if (system_timeout == 0 && user_timeout == 0) + poll_timeout = 0; + else if (system_timeout == UINT64_MAX && user_timeout == UINT64_MAX) + poll_timeout = -1; + else { + poll_timeout = (system_timeout < user_timeout + ? system_timeout : user_timeout); + poll_timeout /= 1000000; + } + + /* Prune any entries whose process has gone away: this happens if + a program inhibits, then exits without having called uninhibit. + That would have left us inhibited forever, even if the inhibiting + program was re-launched, since the new instance won't have the + same cookie. */ + SLIST_FOREACH (entry, &inhibit_head, entries) { + if (entry->pid && /* Might not know this entry's pid, sigh... */ + pid_dead (entry->pid)) { + if (verbose_p) + fprintf (stderr, + "%s: pid %lu for inhibiting app \"%s\" has died:" + " uninhibiting %08X\n", + blurb(), + (unsigned long) entry->pid, + entry->appname, + entry->cookie); + SLIST_REMOVE (&inhibit_head, entry, inhibit_entry, entries); + if (entry->appname) free (entry->appname); + free (entry); + ctx->is_inhibited--; + if (ctx->is_inhibited < 0) + ctx->is_inhibited = 0; + } + } + + + /* We want to wake up at least once every N seconds to de-activate + the screensaver if we have been inhibited. + */ + if (poll_timeout > HEARTBEAT_INTERVAL * 1000) + poll_timeout = HEARTBEAT_INTERVAL * 1000; + + rc = poll (fds, 2, poll_timeout); + if (rc < 0) { + fprintf (stderr, "%s: poll failed: %s\n", blurb(), strerror(-rc)); + exit (EXIT_FAILURE); + } + + if (ctx->is_inhibited) { + time_t now = time ((time_t *) 0); + if (now - last_deactivate_time >= HEARTBEAT_INTERVAL) { + if (verbose_p) { + SLIST_FOREACH (entry, &inhibit_head, entries) { + char ct[100]; + ctime_r (&entry->start_time, ct); + fprintf (stderr, "%s: inhibited by \"%s\" since %s", + blurb(), entry->appname, ct); + } + } + xscreensaver_command ("deactivate"); + last_deactivate_time = now; + } + } + } + + FAIL: + if (system_bus) + sd_bus_flush_close_unref (system_bus); + + if (user_bus) + sd_bus_flush_close_unref (user_bus); + + sd_bus_error_free (&error); + + return EXIT_FAILURE; +} + + +static char *usage = "\n\ +usage: %s [-verbose]\n\ +\n\ +This program is launched by the xscreensaver daemon to monitor DBus.\n\ +It invokes 'xscreensaver-command' to tell the xscreensaver daemon to lock\n\ +the screen before the system suspends, e.g., when a laptop's lid is closed.\n\ +\n\ +It also responds to certain messages sent by media players allowing them to\n\ +request that the screen not be blanked during playback.\n\ +\n\ +From XScreenSaver %s, (c) 1991-%s Jamie Zawinski .\n"; + + +#define USAGE() do { \ + fprintf (stderr, usage, progname, screensaver_version, year); exit (1); \ + } while(0) + + +int +main (int argc, char **argv) +{ + int i; + char *s; + char year[5]; + + progname = argv[0]; + s = strrchr (progname, '/'); + if (s) progname = s+1; + + screensaver_version = (char *) malloc (5); + memcpy (screensaver_version, screensaver_id + 17, 4); + screensaver_version [4] = 0; + + s = strchr (screensaver_id, '-'); + s = strrchr (s, '-'); + s++; + strncpy (year, s, 4); + year[4] = 0; + + for (i = 1; i < argc; i++) + { + const char *s = argv [i]; + int L; + if (s[0] == '-' && s[1] == '-') s++; + L = strlen (s); + if (L < 2) USAGE (); + else if (!strncmp (s, "-verbose", L)) verbose_p = 1; + else if (!strncmp (s, "-quiet", L)) verbose_p = 0; + else USAGE (); + } + +# undef ya_rand_init + ya_rand_init (0); + + exit (xscreensaver_systemd_loop()); +} diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-systemd.man xscreensaver-5.45+dfsg1/driver/xscreensaver-systemd.man --- xscreensaver-5.42+dfsg1/driver/xscreensaver-systemd.man 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-systemd.man 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,49 @@ +.TH XScreenSaver 1 "4-Jun-2019 (5.43)" "X Version 11" +.SH NAME +xscreensaver-systemd - lock the screen when the machine suspends. +.SH SYNOPSIS +.B xscreensaver-systemd +.SH DESCRIPTION +The \fIxscreensaver\-systemd\fP program is a helper program to +integrate xscreensaver with +.BR systemd (1). +When run from \fI~/.xsession\fP or equivalent, this will: +.TP 3 +\fB1: +Lock the screen before the system goes to sleep +(using \fIxscreensaver-command -suspend\fP). +.TP 3 +\fB2: +Ensure the XScreenSaver password dialog is shown after the system +is resumed (using \fIxscreensaver-command -deactivate\fP). +.RS 0 + +This is implemented using inhibitor locks; +.BR sd-bus (3) +is used for DBUS communication. +.SH BUGS +Uses libsystemd. +.SH SEE ALSO +.BR X (1), +.BR xscreensaver (1), +.BR xscreensaver\-demo (1), +.BR xscreensaver\-command (1), +.BR systemd (1), +.BR sd-bus (3) +.SH COPYRIGHT +Copyright \(co 2019 by Martin Lucina. +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice appear +in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.SH AUTHOR +Martin Lucina , 4-Jun-2019 diff -Nru xscreensaver-5.42+dfsg1/driver/xscreensaver-text xscreensaver-5.45+dfsg1/driver/xscreensaver-text --- xscreensaver-5.42+dfsg1/driver/xscreensaver-text 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xscreensaver-text 2020-12-20 10:54:56.000000000 +0000 @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# Copyright © 2005-2017 Jamie Zawinski +# Copyright © 2005-2020 Jamie Zawinski # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that @@ -37,7 +37,7 @@ #use bytes; # This breaks shit. my $progname = $0; $progname =~ s@.*/@@g; -my ($version) = ('$Revision: 1.46 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.49 $' =~ m/\s(\d[.\d]+)\s/s); my $verbose = 0; my $http_proxy = undef; @@ -344,6 +344,11 @@ last if ($truncate_lines && $lines > $truncate_lines); } close $pipe; + + # I don't understand why we must do this here, but must not do this + # in the 'file' branch above, which reads the file with :raw... + utf8::decode ($body); # Pack multi-byte UTF-8 back into wide chars. + $body = reformat_text ($body); print STDOUT $body; } else { @@ -524,8 +529,13 @@ if (!defined($wrap_columns) || $wrap_columns > 0) { $Text::Wrap::columns = ($wrap_columns || 72); $Text::Wrap::break = '[\s/|]'; # wrap on slashes for URLs - $_ = wrap ("", " ", $_); # wrap the lines as a paragraph - s/[ \t]+$//gm; # lose whitespace at end of line again + + # Text::Wrap sometimes dies with "This shouldn't happen" if columns + # is small, but not in any predictable way. + eval { + $_ = wrap ("", " ", $_); # wrap the lines as a paragraph + s/[ \t]+$//gm; # lose whitespace at end of line again + }; } s/^\n+//gs; @@ -573,9 +583,10 @@ foreach (@items) { $i++; - my ($title, $body1, $body2, $body3); + my ($title, $author, $body1, $body2, $body3); $title = $3 if (m@<((TITLE) [^<>\s]*)[^<>]*>\s*(.*?)\s*@xsi); + $author= $3 if (m@<((DC:CREATOR) [^<>\s]*)[^<>]*>\s*(.*?)\s*@xsi); $body1 = $3 if (m@<((DESCRIPTION) [^<>\s]*)[^<>]*>\s*(.*?)\s*@xsi); $body2 = $3 if (m@<((CONTENT) [^<>\s]*)[^<>]*>\s*(.*?)\s*@xsi); $body3 = $3 if (m@<((SUMMARY) [^<>\s]*)[^<>]*>\s*(.*?)\s*@xsi); @@ -602,10 +613,19 @@ } $title = rss_field_to_html ($title || ''); + $author= rss_field_to_html ($author || ''); $body1 = rss_field_to_html ($body1 || ''); $title = '' if ($body1 eq $title); # Identical in Twitter's atom feed. + # Omit author if it's in the title or body + $author = '' if ($author && + ($title =~ m/\Q$author\E/si || + $body1 =~ m/\Q$author\E/si)); + + $title = $author if ($author && !$title); + $title = "$author: $title" if ($author && $title); + $out .= reformat_html ("$title

$body1", $wiki_p ? 'wiki' : 'rss'); $out .= "\n"; } @@ -643,8 +663,13 @@ print STDERR "$progname: wrapping at $wrap_columns...\n" if ($verbose > 2); $Text::Wrap::columns = $wrap_columns; $Text::Wrap::break = '[\s/]'; # wrap on slashes for URLs - $body = wrap ("", "", $body); - $body =~ s/[ \t]+$//gm; + + # Text::Wrap sometimes dies with "This shouldn't happen" if columns + # is small, but not in any predictable way. + eval { + $body = wrap ("", "", $body); + $body =~ s/[ \t]+$//gm; + }; } if ($truncate_lines) { @@ -827,13 +852,12 @@ else { usage; } } - if ($load_p) { - - if (!defined ($cocoa_id)) { - # see OSX/XScreenSaverView.m - $cocoa_id = $ENV{XSCREENSAVER_CLASSPATH}; - } + if (!defined ($cocoa_id)) { + # see OSX/XScreenSaverView.m + $cocoa_id = $ENV{XSCREENSAVER_CLASSPATH}; + } + if ($load_p) { if (defined ($cocoa_id)) { get_cocoa_prefs($cocoa_id); } else { diff -Nru xscreensaver-5.42+dfsg1/driver/xset.c xscreensaver-5.45+dfsg1/driver/xset.c --- xscreensaver-5.42+dfsg1/driver/xset.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/driver/xset.c 2020-12-20 10:54:56.000000000 +0000 @@ -35,7 +35,9 @@ #endif -/* MIT SCREEN-SAVER server extension hackery. +/* MIT SCREEN-SAVER server extension. + * See the very long comment at the top of xscreensaver.c for why the + * MIT-SCREEN-SAVER extension is garbage and should not be used. */ #ifdef HAVE_MIT_SAVER_EXTENSION diff -Nru xscreensaver-5.42+dfsg1/hacks/abstractile.man xscreensaver-5.45+dfsg1/hacks/abstractile.man --- xscreensaver-5.42+dfsg1/hacks/abstractile.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/abstractile.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "27-Apr-97" "X Version 11" .SH NAME -abstractile - draw abstract mosaic patterns of interlocking tiles +abstractile \- draw abstract mosaic patterns of interlocking tiles .SH SYNOPSIS .B abstractile [\-sleep \fIseconds\fP] [\-speed \fIint\fP] [\-tile \fItile_mode\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/analogtv.c xscreensaver-5.45+dfsg1/hacks/analogtv.c --- xscreensaver-5.42+dfsg1/hacks/analogtv.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/analogtv.c 2020-12-20 10:54:56.000000000 +0000 @@ -647,11 +647,6 @@ cmap_again: if (it->use_cmap && !it->n_colors) { - if (it->n_colors) { - XFreeColors(it->dpy, it->colormap, it->colors, it->n_colors, 0L); - it->n_colors=0; - } - { int yli,qli,ili; for (yli=0; ylipuheight * (double)it->useheight/(double)ANALOGTV_VISLINES); /* calculate tint once per frame */ + /* Christopher Mosher argues that this should use 33 degress instead of + 103 degrees, and then TVTint should default to 0 in analogtv.h and + all relevant XML files. But that makes all the colors go really green + and saturated, so apparently that's not right. -- jwz, Nov 2020. + */ it->tint_i = -cos((103 + it->tint_control)*3.1415926/180); it->tint_q = sin((103 + it->tint_control)*3.1415926/180); diff -Nru xscreensaver-5.42+dfsg1/hacks/analogtv-cli.c xscreensaver-5.45+dfsg1/hacks/analogtv-cli.c --- xscreensaver-5.42+dfsg1/hacks/analogtv-cli.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/analogtv-cli.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xanalogtv-cli, Copyright (c) 2018 Jamie Zawinski +/* xanalogtv-cli, Copyright (c) 2018-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -15,7 +15,7 @@ * --duration Length in seconds of MP4. * --powerup Do the power-on animation at the beginning. * --logo FILE Small image overlayed onto the colorbars image. - * --audio FILE Add a soundtrack. Must be as long or longer. + * --audio FILE Add a soundtrack. * * Created: 10-Dec-2018 by jwz. */ @@ -55,12 +55,12 @@ static Bool verbose_p = 0; #define RANDSIGN() ((random() & 1) ? 1 : -1) +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) -enum { - N_CHANNELS=12, - MAX_MULTICHAN=2, - MAX_STATIONS=11 -}; +#define MAX_MULTICHAN 2 +static int N_CHANNELS=12; +static int MAX_STATIONS=6; typedef struct chansetting_s { analogtv_reception recs[MAX_MULTICHAN]; @@ -78,12 +78,12 @@ analogtv_font ugly_font; int n_stations; - analogtv_input *stations[MAX_STATIONS]; + analogtv_input **stations; Bool image_loading_p; XImage *logo, *logo_mask; int curinputi; - chansetting chansettings[N_CHANNELS]; + chansetting *chansettings; chansetting *cs; }; @@ -319,13 +319,15 @@ abort(); } +static int darkp = 0; double get_float_resource (Display *dpy, char *name, char *class) { - if (!strcmp(name, "TVTint")) return 5; - if (!strcmp(name, "TVColor")) return 70; - if (!strcmp(name, "TVBrightness")) return -15; - if (!strcmp(name, "TVContrast")) return 150; + if (!strcmp(name, "TVTint")) return 5; /* default 5 */ + if (!strcmp(name, "TVColor")) return 70; /* default 70 */ + if (!strcmp(name, "TVBrightness")) + return (darkp ? -15 : 2); /* default 2 */ + if (!strcmp(name, "TVContrast")) return 150; /* default 150 */ abort(); } @@ -535,7 +537,7 @@ for (i = 0; i <= st->frames_written; i++) { sprintf (outfile, st->framefile_fmt, i); - if (verbose_p > 1) + if (verbose_p > 2) fprintf (stderr, "%s: rm %s\n", progname, outfile); unlink (outfile); } @@ -551,6 +553,25 @@ } +static char * +quote (const char *s) +{ + char *s2, *o; + if (!s) return 0; + + s2 = malloc (strlen(s) * 2 + 2); + o = s2; + while (*s) + { + if (*s == '"' || *s == '\\') + *o++ = '\\'; + *o++ = *s++; + } + *o = 0; + return s2; +} + + static void analogtv_write_mp4 (struct state *st, const char *outfile, const char *audiofile, @@ -558,32 +579,37 @@ { char cmd[1024]; struct stat ss; + char *qout = quote (outfile); + char *qaudio = quote (audiofile); sprintf (cmd, "ffmpeg" " -hide_banner" - " -v 16" - " -framerate 30" /* rate of input: must be before -i */ - " -i '%s'" - " -r 30", /* rate of output: must be after -i */ + " -loglevel error" + " -framerate 30" /* rate of input: must be before -i */ + " -thread_queue_size 4096" + " -i \"%s\"" + " -r 30", /* rate of output: must be after -i */ st->framefile_fmt); if (audiofile) sprintf (cmd + strlen(cmd), - " -i '%s'" + " -i \"%s\"" " -map 0:v:0" " -map 1:a:0" " -acodec aac" - " -shortest", - audiofile); + " -b:a 96k" + /* Truncate or pad audio to length of video */ + " -filter_complex '[1:0] apad' -shortest", + qaudio); sprintf (cmd + strlen(cmd), " -c:v libx264" " -profile:v high" - " -crf 24" /* 18 is very high; 24 is good enough */ " -pix_fmt yuv420p" + " -preset veryfast" + " -crf 24" /* 18 is very high; 24 is good enough */ " '%s'" - " &-"*/, - outfile); + " 1) fprintf (stderr, "%s: exec: %s\n", progname, cmd); @@ -630,45 +656,79 @@ static void -analogtv_convert (const char *infile, const char *outfile, +analogtv_convert (const char **infiles, const char *outfile, const char *audiofile, const char *logofile, int duration, Bool powerp) { + unsigned long start_time = time((time_t *)0); struct state *st = &global_state; - XImage *ximage = file_to_ximage (0, 0, infile); Display *dpy = 0; Window window = 0; - int i; + int i, n; unsigned long curticks = 0; time_t lastlog = time((time_t *)0); - int frames_left; + int frames_left = 0; + int channel_changes = 0; int fps = 30; + XImage **ximages; + int singlep; + int *stats; + + stats = (int *) calloc(N_CHANNELS, sizeof(*stats)); + ximages = calloc (MAX_STATIONS, sizeof(*ximages)); + i = 0; + while (infiles[i]) + { + ximages[i] = file_to_ximage (0, 0, infiles[i]); + if (verbose_p > 1) + fprintf (stderr, "%s: loaded %s %dx%d\n", + progname, infiles[i], ximages[i]->width, ximages[i]->height); + flip_ximage (ximages[i]); + i++; + } - if (verbose_p) - fprintf (stderr, "%s: progname: loaded %s %dx%d\n", - progname, infile, ximage->width, ximage->height); + singlep = !infiles[1]; - flip_ximage (ximage); + if (singlep) powerp = 0; /* #### These don't work together but should */ memset (st, 0, sizeof(*st)); st->dpy = dpy; st->window = window; - st->output_frame = XCreateImage (dpy, 0, ximage->depth, ximage->format, 0, + st->output_frame = XCreateImage (dpy, 0, ximages[0]->depth, + ximages[0]->format, 0, NULL, - ximage->width & ~1, /* can't be odd */ - ximage->height & ~1, - ximage->bitmap_pad, 0); + ximages[0]->width & ~1, /* can't be odd */ + ximages[0]->height & ~1, + ximages[0]->bitmap_pad, 0); st->output_frame->data = (char *) calloc (st->output_frame->height, st->output_frame->bytes_per_line); { - char *s1, *s2; - st->framefile_fmt = malloc (strlen(outfile) + 100); + char *s0, *slash, *dot; + st->framefile_fmt = calloc (1, strlen(outfile) + 100); + + s0 = st->framefile_fmt; strcpy (st->framefile_fmt, outfile); - s1 = strrchr (st->framefile_fmt, '/'); - s2 = strrchr (st->framefile_fmt, '.'); - if (s2 && s2 > s1) *s2 = 0; + + slash = strrchr (st->framefile_fmt, '/'); + dot = strrchr (st->framefile_fmt, '.'); + if (dot && dot > slash) *dot = 0; + + /* Make tmp files be dotfiles */ + if (slash) { + memmove (slash+1, slash, strlen(slash)+1); + slash[1] = '.'; + } else { + memmove (s0+1, s0, strlen(s0)+1); + s0[0] = '.'; + } + + /* Can't have percents in the tmp file names */ + for (s0 = (slash ? slash : s0); *s0; s0++) { + if (*s0 == '%') *s0 = '_'; + } + sprintf (st->framefile_fmt + strlen(st->framefile_fmt), ".%08x.%%06d.png", (random() % 0xFFFFFFFF)); } @@ -677,7 +737,7 @@ int x, y; st->logo = file_to_ximage (0, 0, logofile); if (verbose_p) - fprintf (stderr, "%s: progname: loaded %s %dx%d\n", + fprintf (stderr, "%s: loaded %s %dx%d\n", progname, logofile, st->logo->width, st->logo->height); flip_ximage (st->logo); /* Pull the alpha out of the logo and make a separate mask ximage. */ @@ -739,6 +799,8 @@ st->tv=analogtv_allocate(dpy, window); + st->stations = (analogtv_input **) + calloc (MAX_STATIONS, sizeof(*st->stations)); while (st->n_stations < MAX_STATIONS) { analogtv_input *input=analogtv_input_allocate(); st->stations[st->n_stations++]=input; @@ -754,16 +816,17 @@ if (1) { st->tv->color_control += frand(0.3) * RANDSIGN(); } - if (random()%4==0) { - st->tv->brightness_control += frand(0.15); - } - if (random()%4==0) { - st->tv->contrast_control += frand(0.2) * RANDSIGN(); + if (darkp) { + if (random()%4==0) { + st->tv->brightness_control += frand(0.15); + } + if (random()%4==0) { + st->tv->contrast_control += frand(0.2) * RANDSIGN(); + } } + st->chansettings = calloc (N_CHANNELS, sizeof (*st->chansettings)); for (i=0; ichansettings[i], 0, sizeof(chansetting)); - st->chansettings[i].noise_level = 0.06; { int last_station=42; @@ -799,12 +862,16 @@ st->curinputi=0; st->cs = &st->chansettings[st->curinputi]; - frames_left = fps * (2 + frand(1.5)); + + if (singlep) + /* First channel (initial unadulterated image) stays for this long */ + frames_left = fps * (2 + frand(1.5)); st->tv->powerup=0.0; /* load_station_images() */ + n = 0; for (i = 0; i < MAX_STATIONS; i++) { analogtv_input *input = st->stations[i]; @@ -812,6 +879,13 @@ station 1 is colorbars. */ input->updater = update_smpte_colorbars; } else { + XImage *ximage = ximages[n++]; + if (!ximage) { + n = 0; + ximage = ximages[n++]; + } + + { int w = ximage->width * 0.815; /* underscan */ int h = ximage->height * 0.970; int x = (ximage->width - w) / 2; @@ -819,6 +893,7 @@ analogtv_input *input = st->stations[i]; analogtv_setup_sync(input, 1, (random()%20)==0); analogtv_load_ximage (st->tv, input, ximage, 0, x, y, w, h); + } } } @@ -832,17 +907,60 @@ frames_left--; if (frames_left <= 0) { - frames_left = fps * (0.5 + frand(2.5)); - if (st->curinputi != 0 && !(random() % 3)) { - st->curinputi = 0; /* unadulterated image */ + channel_changes++; + + if (singlep && channel_changes == 1) { + /* Second channel has short duration, 0.25 to 0.75 sec. */ + frames_left = fps * (0.25 + frand(0.5)); + } else if (singlep) { + /* 0.5 - 2.0 sec (was 0.5 - 3.0 sec) */ + frames_left = fps * (0.5 + frand(1.5)); } else { + /* 1 - 7 sec */ + frames_left = fps * (1 + frand(6)); + } + + if (singlep && channel_changes == 2) { + /* Always use the unadulterated image for the third channel: + So the effect is, plain, brief blip, plain, then random. */ + st->curinputi = 0; + frames_left += fps * (0.1 + frand(0.5)); + + } else if (singlep && st->curinputi != 0 && ((random() % 100) < 75)) { + /* Use the unadulterated image 75% of the time (was 33%) */ + st->curinputi = 0; + } else { + /* Otherwise random */ st->curinputi = 1 + (random() % (N_CHANNELS - 1)); } + stats[st->curinputi]++; st->cs = &st->chansettings[st->curinputi]; /* Set channel change noise flag */ st->tv->channel_change_cycles=200000; + + if (verbose_p > 1) + fprintf (stderr, "%s: %.1f: channel %d\n", + progname, curticks/1000.0, st->curinputi); + + /* Turn the knobs every now and then */ + if (! (random() % 5)) { + if (random()%4==0) { + st->tv->tint_control += pow(frand(2.0)-1.0, 7) * 180.0 * RANDSIGN(); + } + if (1) { + st->tv->color_control += frand(0.3) * RANDSIGN(); + } + if (darkp) { + if (random()%4==0) { + st->tv->brightness_control += frand(0.15); + } + if (random()%4==0) { + st->tv->contrast_control += frand(0.2) * RANDSIGN(); + } + } + } } for (i=0; itv->powerup=(powerp ? curtime : 9999); - if (st->curinputi == 0) { - XPutImage (dpy, 0, 0, ximage, 0, 0, 0, 0, - ximage->width, ximage->height); + if (st->curinputi == 0 && singlep) { + XPutImage (dpy, 0, 0, ximages[0], 0, 0, 0, 0, + ximages[0]->width, ximages[0]->height); } else { for (i=0; ics->recs[i]; @@ -883,14 +1001,41 @@ if (verbose_p) { unsigned long now = time((time_t *)0); - if (now > lastlog + 5) { - fprintf (stderr, "%s: %2d%%...\n", progname, - (int) (curtime * 100 / duration)); + if (now > (verbose_p == 1 ? lastlog : lastlog + 10)) { + unsigned long elapsed = now - start_time; + double ratio = curtime / (double) duration; + int remaining = (ratio ? (elapsed / ratio) - elapsed : 0); + int pct = 100 * ratio; + int cols = 47; + char dots[80]; + int ii; + for (ii = 0; ii < cols * ratio; ii++) + dots[ii] = '.'; + dots[ii] = 0; + fprintf (stderr, "%s%s: %s %2d%%, %d:%02d:%02d ETA%s", + (verbose_p == 1 ? "\r" : ""), + progname, + dots, pct, + (remaining/60/60), + (remaining/60)%60, + remaining%60, + (verbose_p == 1 ? "" : "\n")); lastlog = now; } } } + if (verbose_p == 1) fprintf(stderr, "\n"); + + if (verbose_p > 1) { + if (channel_changes == 0) channel_changes++; + fprintf(stderr, "%s: channels shown: %d\n", progname, channel_changes); + for (i = 0; i < N_CHANNELS; i++) + fprintf(stderr, "%s: %2d: %3d%%\n", progname, + i+1, stats[i] * 100 / channel_changes); + } + + free (stats); analogtv_write_mp4 (st, outfile, audiofile, st->frames_written); } @@ -900,7 +1045,7 @@ { if (err) fprintf (stderr, "%s: %s unknown\n", progname, err); fprintf (stderr, "usage: %s [--verbose] [--duration secs]" - " [--audio mp3-file] [--no-powerup] infile.png outfile.mp4\n", + " [--audio mp3-file] [--no-powerup] infile.png ... outfile.mp4\n", progname); exit (1); } @@ -909,17 +1054,20 @@ main (int argc, char **argv) { int i; - const char *infile = 0; + const char *infiles[1000]; const char *outfile = 0; int duration = 30; Bool powerp = False; char *audio = 0; char *logo = 0; + int nfiles = 0; char *s = strrchr (argv[0], '/'); progname = s ? s+1 : argv[0]; progclass = progname; + memset (infiles, 0, sizeof(infiles)); + for (i = 1; i < argc; i++) { if (argv[i][0] == '-' && argv[i][1] == '-') @@ -950,18 +1098,29 @@ powerp = False; else if (argv[i][0] == '-') usage(argv[i]); - else if (!infile) - infile = argv[i]; - else if (!outfile) - outfile = argv[i]; + else if (nfiles >= countof(infiles)-1) + usage("too many files"); else - usage(argv[i]); + infiles[nfiles++] = argv[i]; } - if (!infile) usage("input file"); - if (!outfile) usage("output file"); + + if (nfiles < 2) + usage(""); + + outfile = infiles[nfiles-1]; + infiles[--nfiles] = 0; + + /* stations should be a multiple of files, but >= 6. + channels should be double that. */ + MAX_STATIONS = 0; + while (MAX_STATIONS < 6) + MAX_STATIONS += nfiles; + N_CHANNELS = MAX_STATIONS * 2; + + darkp = (nfiles == 1); # undef ya_rand_init ya_rand_init (0); - analogtv_convert (infile, outfile, audio, logo, duration, powerp); + analogtv_convert (infiles, outfile, audio, logo, duration, powerp); exit (0); } diff -Nru xscreensaver-5.42+dfsg1/hacks/analogtv.h xscreensaver-5.45+dfsg1/hacks/analogtv.h --- xscreensaver-5.42+dfsg1/hacks/analogtv.h 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/analogtv.h 2020-12-20 10:54:56.000000000 +0000 @@ -15,7 +15,7 @@ #include "thread_util.h" #include "xshm.h" -#if defined(USE_IPHONE) || defined(HAVE_ANDROID) +#if defined(HAVE_IPHONE) || defined(HAVE_ANDROID) # define HAVE_MOBILE #endif diff -Nru xscreensaver-5.42+dfsg1/hacks/anemone.man xscreensaver-5.45+dfsg1/hacks/anemone.man --- xscreensaver-5.42+dfsg1/hacks/anemone.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/anemone.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -anemone - wiggling tentacles. +anemone \- wiggling tentacles. .SH SYNOPSIS .B anemone [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/anemotaxis.man xscreensaver-5.45+dfsg1/hacks/anemotaxis.man --- xscreensaver-5.42+dfsg1/hacks/anemotaxis.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/anemotaxis.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -anemotaxis - directional search on a plane. +anemotaxis \- directional search on a plane. .SH SYNOPSIS .B anemotaxis [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/ant.man xscreensaver-5.45+dfsg1/hacks/ant.man --- xscreensaver-5.42+dfsg1/hacks/ant.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/ant.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -ant - cellular automaton. +ant \- cellular automaton. .SH SYNOPSIS .B ant [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/apollonian.man xscreensaver-5.45+dfsg1/hacks/apollonian.man --- xscreensaver-5.42+dfsg1/hacks/apollonian.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/apollonian.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -apollonian - Descartes Circle Theorem. +apollonian \- Descartes Circle Theorem. .SH SYNOPSIS .B apollonian [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/apple2.man xscreensaver-5.45+dfsg1/hacks/apple2.man --- xscreensaver-5.42+dfsg1/hacks/apple2.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/apple2.man 2020-12-20 10:54:56.000000000 +0000 @@ -13,7 +13,7 @@ .. .TH XScreenSaver 1 "5-May-2004" "X Version 11" .SH NAME -apple2 - Apple ][ display emulator +apple2 \- Apple ][ display emulator .SH SYNOPSIS .B apple2 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/asm6502.c xscreensaver-5.45+dfsg1/hacks/asm6502.c --- xscreensaver-5.42+dfsg1/hacks/asm6502.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/asm6502.c 2020-12-20 10:54:56.000000000 +0000 @@ -119,9 +119,8 @@ /* estrdup() - Allocates memory for a new string a returns a copy of the source sting in it. */ static char *estrdup(const char *source){ - int ln = strlen(source) + 1; - char *s = ecalloc(ln, sizeof(char)); - strncpy(s,source,ln); + char *s = strdup (source); + if (!s) abort(); return s; } @@ -1010,8 +1009,8 @@ static void assignOpCodes(m6502_Opcodes *opcodes){ #define SETOP(num, _name, _Imm, _ZP, _ZPX, _ZPY, _ABS, _ABSX, _ABSY, _INDX, _INDY, _SNGL, _BRA, _func) \ -{opcodes[num].name[3] = '\0'; \ - strncpy(opcodes[num].name, _name, 3); opcodes[num].Imm = _Imm; opcodes[num].ZP = _ZP; \ +{sprintf(opcodes[num].name, "%.*s", MAX_LABEL_LEN-1, _name); \ + opcodes[num].Imm = _Imm; opcodes[num].ZP = _ZP; \ opcodes[num].ZPX = _ZPX; opcodes[num].ZPY = _ZPY; opcodes[num].ABS = _ABS; \ opcodes[num].ABSX = _ABSX; opcodes[num].ABSY = _ABSY; opcodes[num].INDX = _INDX; \ opcodes[num].INDY = _INDY; opcodes[num].SNGL = _SNGL; opcodes[num].BRA = _BRA; \ @@ -1413,9 +1412,7 @@ param->type = (**s == '<') ? IMMEDIATE_LESS : IMMEDIATE_GREAT; (*s)++; /* move past < or > */ if (paramLabel(s, &label)){ - int ln = strlen(label) + 1; - strncpy(param->label, label, ln); - free(label); + sprintf(param->label, "%.*s", MAX_LABEL_LEN-1, label); return TRUE; } free(label); @@ -2069,7 +2066,7 @@ } } else{ - fprintf(stderr,"An error occured while parsing the file.\n"); + fprintf(stderr,"An error occurred while parsing the file.\n"); codeOk = FALSE; } freeallAsmLine(asmlist); @@ -2117,7 +2114,6 @@ void m6502_destroy6502(machine_6502 *machine){ free(machine); - machine = NULL; } void m6502_trace(machine_6502 *machine, FILE *output){ diff -Nru xscreensaver-5.42+dfsg1/hacks/attraction.man xscreensaver-5.45+dfsg1/hacks/attraction.man --- xscreensaver-5.42+dfsg1/hacks/attraction.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/attraction.man 2020-12-20 10:54:56.000000000 +0000 @@ -13,7 +13,7 @@ .. .TH XScreenSaver 1 "14-Jun-97" "X Version 11" .SH NAME -attraction - interactions of opposing forces +attraction \- interactions of opposing forces .SH SYNOPSIS .B attraction [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/barcode.c xscreensaver-5.45+dfsg1/hacks/barcode.c --- xscreensaver-5.42+dfsg1/hacks/barcode.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/barcode.c 2020-12-20 10:54:56.000000000 +0000 @@ -101,14 +101,17 @@ "abstraction", "acid", "addiction", + "affluenza", "alertness", "Algeria", + "antifa", "anxiety", "aorta", "argyle socks", "attrition", "axis of evil", "bamboo", + "banana slug", "bangle", "bankruptcy", "baptism", @@ -116,27 +119,36 @@ "bellicosity", "bells", "belly", + "bird flu", "bliss", "bogosity", "boobies", "boobs", "booty", "bread", + "brogrammers", "bubba", "burrito", "California", + "cancer", "capybara", "cardinality", "caribou", "carnage", "children", "chocolate", + "chupacabra", "CLONE", "cock", + "congress", "constriction", "contrition", "cop", "corpse", +# ifndef HAVE_IPHONE + "coronavirus", + "covid-19", +# endif "cowboy", "crabapple", "craziness", @@ -153,10 +165,10 @@ "despair", "desperation", "disease", - "disease", + "DNA Lounge", "doberman", "DOOM", - "dreams", + "dot com", "dreams", "drugs", "easy", @@ -175,9 +187,10 @@ "flatulence", "fluff", "fnord", + "followers", + "frak", "freedom", "fruit", - "fruit", "futility", "gerbils", "GOD", @@ -198,8 +211,12 @@ "icepick", "identity", "ignorance", + "illuminati", "importance", "individuality", + "influence", + "influencers", + "influenza", "inkling", "insurrection", "intoxicant", @@ -215,6 +232,7 @@ "lattice", "lawyer", "lemming", + "likes", "liquidation", "lobbyist", "love", @@ -224,9 +242,11 @@ "malfunction", "marmot", "marshmallow", + "measles", "merit", "merkin", "mescaline", + "methane", "milk", "mischief", "mistrust", @@ -281,7 +301,12 @@ "respect", "revolution", "roadrunner", + "rootkit", "rule", + "SARS", +# ifndef HAVE_IPHONE + "SARS-CoV-2", +# endif "savor", "scab", "scalar", @@ -290,6 +315,7 @@ "security", "sediment", "self worth", + "shadow profile", "sickness", "silicone", "slack", @@ -316,17 +342,21 @@ "terrorism", "terrorist", "the impossible", + "the panopticon", "the unknown", "toast", "topography", "truism", + "truthiness", "turgid", + "twits", "underbrush", "underling", "unguent", "unusual", "uplink", "urge", + "vaccines", "valor", "variance", "vaudeville", @@ -334,6 +364,7 @@ "vegetarian", "venom", "verifiability", + "very fine people", "viagra", "vibrator", "victim", @@ -351,7 +382,6 @@ "words", "worm", "worship", - "worship", "Xanax", "Xerxes", "Xhosa", diff -Nru xscreensaver-5.42+dfsg1/hacks/barcode.man xscreensaver-5.45+dfsg1/hacks/barcode.man --- xscreensaver-5.42+dfsg1/hacks/barcode.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/barcode.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -barcode - draws a random sequence of barcodes for the products you enjoy +barcode \- draws a random sequence of barcodes for the products you enjoy .SH SYNOPSIS .B barcode [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/binaryring.man xscreensaver-5.45+dfsg1/hacks/binaryring.man --- xscreensaver-5.42+dfsg1/hacks/binaryring.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/binaryring.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH "Binary Ring" 1 "02-Sep-14" "X Version 11" .SH NAME -binaryring - A system of path tracing particles evolves continuously from an initial creation. +binaryring \- A system of path tracing particles evolves continuously from an initial creation. .SH SYNOPSIS .B binaryring [\-fps] diff -Nru xscreensaver-5.42+dfsg1/hacks/blaster.man xscreensaver-5.45+dfsg1/hacks/blaster.man --- xscreensaver-5.42+dfsg1/hacks/blaster.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/blaster.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -blaster - simulation of space combat +blaster \- simulation of space combat .SH SYNOPSIS .B blaster [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/blitspin.man xscreensaver-5.45+dfsg1/hacks/blitspin.man --- xscreensaver-5.42+dfsg1/hacks/blitspin.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/blitspin.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "24-Nov-97" "X Version 11" .SH NAME -blitspin - rotate a bitmap in an interesting way +blitspin \- rotate a bitmap in an interesting way .SH SYNOPSIS .B blitspin [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/bouboule.man xscreensaver-5.45+dfsg1/hacks/bouboule.man --- xscreensaver-5.42+dfsg1/hacks/bouboule.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/bouboule.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "15-May-97" "X Version 11" .SH NAME -bouboule - draws spinning 3D blobs +bouboule \- draws spinning 3D blobs .SH SYNOPSIS .B bouboule [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-3d] diff -Nru xscreensaver-5.42+dfsg1/hacks/boxfit.man xscreensaver-5.45+dfsg1/hacks/boxfit.man --- xscreensaver-5.42+dfsg1/hacks/boxfit.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/boxfit.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -boxfit - fills space with a gradient of growing boxes or circles. +boxfit \- fills space with a gradient of growing boxes or circles. .SH SYNOPSIS .B boxfit [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/braid.man xscreensaver-5.45+dfsg1/hacks/braid.man --- xscreensaver-5.42+dfsg1/hacks/braid.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/braid.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "10-May-97" "X Version 11" .SH NAME -braid - draws random color-cycling braids around a circle +braid \- draws random color-cycling braids around a circle .SH SYNOPSIS .B braid [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/bsod.c xscreensaver-5.45+dfsg1/hacks/bsod.c --- xscreensaver-5.42+dfsg1/hacks/bsod.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/bsod.c 2020-12-20 10:54:56.000000000 +0000 @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1998-2018 Jamie Zawinski +/* xscreensaver, Copyright (c) 1998-2020 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -63,6 +63,8 @@ #include "images/gen/atm_png.h" #include "images/gen/sun_png.h" #include "images/gen/dvd_png.h" +#include "images/gen/gnome1_png.h" +#include "images/gen/gnome2_png.h" #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -957,7 +959,7 @@ jwxyz_XSetAntiAliasing (dpy, bst->gc, True); #endif -# ifdef USE_IPHONE +# ifdef HAVE_IPHONE /* Stupid iPhone X bezel. #### This is the worst of all possible ways to do this! */ @@ -1064,7 +1066,7 @@ BSOD_TEXT (bst, CENTER, "Windows\n"); BSOD_INVERT (bst); BSOD_TEXT (bst, CENTER, - "A fatal exception 0E has occured at F0AD:42494C4C\n" + "A fatal exception 0E has occurred at F0AD:42494C4C\n" "the current application will be terminated.\n" "\n" "* Press any key to terminate the current application.\n" @@ -1121,7 +1123,7 @@ BSOD_CHAR_DELAY (bst, 100000); BSOD_TEXT (bst, LEFT, "4321"); BSOD_CHAR_DELAY (bst, 0); - BSOD_TEXT (bst, LEFT, "Disk dump successfull.\n" + BSOD_TEXT (bst, LEFT, "Disk dump successful.\n" "Waiting for Debugger (world 1037)\n" "Debugger is listening on serial port ...\n"); BSOD_CHAR_DELAY (bst, 10000); @@ -1554,7 +1556,7 @@ const time_t stage1_deadline = now + 259200 - advance_deadline; /* 3 days */ const time_t stage2_deadline = now + 604800 - advance_deadline; /* 7 days */ char stage1_deadline_str[25], stage2_deadline_str[25]; - char countdown_str[16]; + char countdown_str[20]; int countdown_d, countdown_h, countdown_m, countdown_s, countdown_r; int line_height = bst->font->ascent + bst->font->descent; int line_height1 = bst->fontA->ascent + bst->fontA->descent; @@ -1626,7 +1628,7 @@ const char *excuse_quip = excuse_quips[random() % countof(excuse_quips)]; - /* WELL ACTUALLY, screensavers aren't really nescessary anymore because... */ + /* WELL ACTUALLY, screensavers aren't really necessary anymore because... */ const char *screensaver_quips[] = { "I read it on hacker news", "that's official Debian policy now", @@ -1673,7 +1675,7 @@ ". Also you didn't click hard enough and now Tinkerbelle is dead.\n", "\n", "*But Aren't Screensavers Are Necessary?\n", - "WELL ACTUALLY, screensavers aren't really nescessary anymore because ", + "WELL ACTUALLY, screensavers aren't really necessary anymore because ", "[S]", ".\n", "\n", "Please file complaints to @POTUS on Twitter.\n", @@ -1929,7 +1931,7 @@ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123459789"; buf[i] = s[random() % strlen(s)]; } - strncpy (buf, " //", 3); + memcpy (buf, " //", 3); buf[10] = '/'; buf[17] = '/'; buf[24] = '/'; @@ -2528,7 +2530,7 @@ if (xoff < 0) xoff = 0; if (yoff < 0) yoff = 0; - BSOD_MARGINS (bst, xoff, yoff); + BSOD_MARGINS (bst, xoff, xoff); BSOD_COLOR (bst, bc, bg); BSOD_RECT (bst, True, 0, 0, bst->xgwa.width, bst->xgwa.height); @@ -2552,7 +2554,9 @@ BSOD_MOVETO (bst, xoff + col_right + char_width, yoff + body_top + line_height); - BSOD_MARGINS (bst, xoff + col_right + char_width, yoff); + BSOD_MARGINS (bst, + xoff + col_right + char_width, + xoff + col_right + char_width); BSOD_TEXT (bst, LEFT, body); BSOD_RECT (bst, False, xoff-2, yoff, page_right+4, page_bottom); /* again */ @@ -3220,7 +3224,7 @@ "contact your service representative.\n", /* Warp 4.52+, typical JFS problem. */ - "Exeption in module: JFS\n" + "Exception in module: JFS\n" "TRAP 0003 ERRCD=0000 ERACC=**** ERLIM=********\n" "EAX=00000000 EBX=ffffff05 ECX=00000001 EDX=f5cd8010\n" "ESI=000000e6 EDI=000000e7 EBP=f9c7378e FLG=00002296\n" @@ -3265,28 +3269,21 @@ Pixmap pixmap = image_data_to_pixmap (dpy, window, sun_png, sizeof(sun_png), &pix_w, &pix_h, &mask); -# if 0 - if (pixmap && - pix_w < bst->xgwa.width / 2 && - pix_h < bst->xgwa.height / 2) - { - int i, n = 1; - if (bst->xgwa.width > 2560) n++; /* Retina displays */ - for (i = 0; i < n; i++) - { - pixmap = double_pixmap (dpy, bst->xgwa.visual, - bst->xgwa.depth, pixmap, pix_w, pix_h); - mask = double_pixmap (dpy, bst->xgwa.visual, 1, mask, pix_w, pix_h); - pix_w *= 2; - pix_h *= 2; - } - } -# endif char_width = (bst->font->per_char ? bst->font->per_char['n'-bst->font->min_char_or_byte2].width : bst->font->min_bounds.width); + if (pixmap) + while (pix_w < char_width * 4) + { + pixmap = double_pixmap (dpy, bst->xgwa.visual, + bst->xgwa.depth, pixmap, pix_w, pix_h); + mask = double_pixmap (dpy, bst->xgwa.visual, 1, mask, pix_w, pix_h); + pix_w *= 2; + pix_h *= 2; + } + bst->pixmap = pixmap; bst->mask = mask; @@ -3384,13 +3381,13 @@ BSOD_PIXMAP (bst, 0, 0, pix_w, pix_h, ~0, ~0); BSOD_MARGINS (bst, - bst->left_margin + char_width * 12, - bst->top_margin); + bst->left_margin + pix_w + char_width * 2, + bst->left_margin + pix_w + char_width * 2); BSOD_TEXT (bst, LEFT, "SPARCstation IPC, Keyboard Present\n" "ROM Rev. 2.9, 16 MB memory installed, Serial #12648190.\n" "Ethernet address 8:0:20:37:1:87, Host ID: 52c0fefe.\n"); - BSOD_MARGINS (bst, bst->left_margin, bst->top_margin); + BSOD_MARGINS (bst, bst->left_margin, bst->left_margin); BSOD_TEXT (bst, LEFT, "\n\n\033"); BSOD_PAUSE (bst, 3000000); @@ -4601,7 +4598,6 @@ int size = 40; for (i = 0; i <= steps; i++) { - if (i > steps) i = steps; sprintf (buf, "*** Dumping: %3d%% complete (%d of 40 MB) (device 64:0x2)\r", i * 100 / steps, @@ -5653,6 +5649,121 @@ } +static struct bsod_state * +tivo (Display *dpy, Window window) +{ + struct bsod_state *bst = make_bsod_state (dpy, window, "tivo", "Tivo"); + int char_width = + (bst->font->per_char + ? bst->font->per_char['n'-bst->font->min_char_or_byte2].width + : bst->font->min_bounds.width); + int line_height = bst->font->ascent + bst->font->descent; + + int left = (bst->xgwa.width - char_width * 44) / 2; + int top = (bst->xgwa.height - line_height * 15) / 2; + if (left < 0) left = 0; + if (top < 0) top = 0; + + XClearWindow (dpy, window); + + BSOD_MARGINS (bst, left, left); + BSOD_MOVETO (bst, left, top); + + BSOD_FONT (bst, 1); + BSOD_TEXT (bst, LEFT, "\nA severe error has occurred.\n\n"); + BSOD_FONT (bst, 0); + BSOD_TEXT (bst, LEFT, + "Please leave the Receiver plugged in and connected\n" + "to the phone line for the next three hours while the\n" + "Receiver attempts to repair itself."); + BSOD_FONT (bst, 1); + BSOD_TEXT (bst, LEFT, + "\n\n" + "DO NOT UNPLUG OR RESTART\nTHE RECEIVER.\n\n"); + BSOD_FONT (bst, 0); + BSOD_TEXT (bst, LEFT, + "If, after three hours, the Receiver does not restart\n" + "itself, call Customer Care."); + + BSOD_PAUSE (bst, 1000000 * 60); + return bst; +} + + +/* Error message for corrupted (and therefore presumed bootleg) cartridges. + */ +static struct bsod_state * +nintendo (Display *dpy, Window window) +{ + struct bsod_state *bst = make_bsod_state (dpy, window, + "nintendo", "Nintendo"); + unsigned long bg = get_pixel_resource (dpy, bst->xgwa.colormap, + "nintendo.background", + "Nintendo.Background"); + unsigned long bg2 = get_pixel_resource (dpy, bst->xgwa.colormap, + "nintendo.background2", + "Nintendo.Background"); + unsigned long fg = get_pixel_resource (dpy, bst->xgwa.colormap, + "nintendo.foreground", + "Nintendo.Foreground"); + int char_width = + (bst->font->per_char + ? bst->font->per_char['n'-bst->font->min_char_or_byte2].width + : bst->font->min_bounds.width); + int line_height = bst->font->ascent + bst->font->descent; + + int left = (bst->xgwa.width - char_width * 30) / 2; + int top = (bst->xgwa.height - line_height * 9) / 2; + int left2 = left - char_width * 4; + int top2 = top - line_height; + if (left < 0) left = 0; + if (top < 0) top = 0; + if (left2 < 0) left2 = 0; + if (top2 < 0) top2 = 0; + if (left2 > char_width * 8) left2 = char_width * 8; + if (top2 > line_height * 10) top2 = line_height * 10; + + XClearWindow (dpy, window); + + BSOD_COLOR (bst, bg2, bg); + BSOD_RECT (bst, True, left2, top2 - line_height*2, + bst->xgwa.width - left2*2, + bst->xgwa.height - top2*2 + line_height*2); + + BSOD_MARGINS (bst, left, left); + BSOD_MOVETO (bst, left, top - line_height/2); + + BSOD_FONT (bst, 1); + BSOD_COLOR (bst, bg, bg2); + + /* a variant crash has a second box above the English text that says: + + 警告 + ビデオゲームのコピーは法律で禁じられています。 + 詳しくは取扱説明書をご覧になってください。 + + but BSOD_TEXT doesn't do Xft, and more importantly, "PxPlus IBM VGA8" + doesn't contain Japanese characters. + */ + + BSOD_TEXT (bst, CENTER, "WARNING"); + BSOD_FONT (bst, 0); + BSOD_COLOR (bst, fg, bg2); + BSOD_TEXT (bst, LEFT, + "\n\n" + "IT IS A SERIOUS CRIME\n" + "TO COPY VIDEO GAMES\n" + "ACCORDING TO COPYRIGHT LAW.\n" + "PLEASE REFER TO\n" + "YOUR NINTENDO GAME\n" + "INSTRUCTION BOOKLET\n" + "FOR FURTHER INFORMATION."); + + BSOD_PAUSE (bst, 1000000 * 60); + return bst; +} + + /* An Android phone boot loader, by jwz. */ static struct bsod_state * @@ -5885,6 +5996,65 @@ } +/* Gnome SOD. Truly 2020 will be the year of the Linux Desktop. */ +static struct bsod_state * +gnome (Display *dpy, Window window) +{ + struct bsod_state *bst = make_bsod_state (dpy, window, "gnome", "Gnome"); + + int pix_w, pix_h; + int x, y; + int lh = bst->font->ascent + bst->font->descent; + Pixmap mask = 0; + Pixmap pixmap; + unsigned long fg, bg; + Bool which = random() & 1; + + if (which) + { + pixmap = image_data_to_pixmap (dpy, window, + gnome2_png, sizeof(gnome2_png), + &pix_w, &pix_h, &mask); + fg = get_pixel_resource (dpy, bst->xgwa.colormap, + "gnome.foreground2", "Gnome.Foreground"); + bg = get_pixel_resource (dpy, bst->xgwa.colormap, + "gnome.background2", "Gnome.Background"); + } + else + { + pixmap = image_data_to_pixmap (dpy, window, + gnome1_png, sizeof(gnome1_png), + &pix_w, &pix_h, &mask); + fg = get_pixel_resource (dpy, bst->xgwa.colormap, + "gnome.foreground", "Gnome.Foreground"); + bg = get_pixel_resource (dpy, bst->xgwa.colormap, + "gnome.background", "Gnome.Background"); + } + + x = (bst->xgwa.width - pix_w) / 2; + y = (bst->xgwa.height - pix_h) / 2; + if (y < 0) y = 0; + + XSetWindowBackground (dpy, window, bg); + XClearWindow (dpy, window); + XSetClipMask (dpy, bst->gc, mask); + XSetClipOrigin (dpy, bst->gc, x, y); + XCopyArea (dpy, pixmap, window, bst->gc, 0, 0, pix_w, pix_h, x, y); + XSetClipMask (dpy, bst->gc, None); + XFreePixmap (dpy, mask); + + BSOD_MOVETO (bst, 0, y + pix_h + lh * 2); + BSOD_COLOR (bst, fg, bg); + BSOD_FONT (bst, 0); + BSOD_TEXT (bst, CENTER, "Oh no! Something has gone wrong!\n\n"); + BSOD_FONT (bst, 1); + BSOD_TEXT (bst, CENTER, + "A problem has occurred and the system can't recover.\n"); + BSOD_TEXT (bst, CENTER, "Please log out and try again."); + BSOD_PAUSE (bst, 60 * 1000000); + + return bst; +} /***************************************************************************** @@ -5930,6 +6100,9 @@ { "VMware", vmware }, { "Encom", encom }, { "DVD", dvd }, + { "Tivo", tivo }, + { "Nintendo", nintendo }, + { "Gnome", gnome }, }; @@ -6247,10 +6420,13 @@ "*doNvidia: True", "*doATM: True", "*doGLaDOS: True", - "*doAndroid: True", + "*doAndroid: False", "*doVMware: True", "*doEncom: True", "*doDVD: True", + "*doTivo: True", + "*doNintendo: True", + "*doGnome: True", ".foreground: White", ".background: Black", @@ -6362,6 +6538,18 @@ ".vmware.foreground2: Yellow", ".vmware.background: #a700a8", /* purple */ + ".tivo.background: #339020", + ".tivo.foreground: #B8E6BA", + + ".nintendo.background: #F76D0A", + ".nintendo.background2: #085C89", + ".nintendo.foreground: #EEAACF", + + ".gnome.background: #000000", + ".gnome.foreground: #E2E2E2", + ".gnome.background2: #F0F0F0", + ".gnome.foreground2: #2E3436", + "*dontClearRoot: True", ANALOGTV_DEFAULTS @@ -6370,10 +6558,12 @@ "*useSHM: True", #endif + ".lowrez: false", /* This is required on macOS */ + "*fontB: ", "*fontC: ", -# if defined(USE_IPHONE) +# if defined(HAVE_IPHONE) "*font: PxPlus IBM VGA8 16, Courier-Bold 14", "*bigFont: ", @@ -6391,15 +6581,24 @@ ".win10.fontB: Arial 50, Helvetica 50", ".win10.fontC: Arial 9, Helvetica 9", - /* The real Solaris font is ../OSX/Gallant19.bdf but I don't know how - to convert that to a TTF, so let's use Luxi Mono instead. */ - ".solaris.font: Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12", + /* The real Solaris font is Gallant (../OSX/gallant12x22.ttf) + but Luxi Mono (../OSX/luximr.ttf) is pretty close as well. */ + ".solaris.font: Gallant12x22 12, Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12", /* "Arial" loads "ArialMT" but "Arial Bold" does not load "Arial-BoldMT"? */ ".ransomware.font: Arial 11, Helvetica 11", ".ransomware.fontB: Arial 9, Helvetica 9", ".ransomware.fontC: Arial Bold 11, Arial-BoldMT 11, Helvetica Bold 11", + ".tivo.font: Helvetica-Bold 13", + ".tivo.fontB: Helvetica-Bold 17", + + ".nintendo.font: PxPlus IBM VGA8 18, Courier-Bold 18", + + ".gnome.font: Helvetica-Bold 13", + ".gnome.bigFont: Helvetica-Bold 13", + ".gnome.fontB: Helvetica 13", + # elif defined(HAVE_ANDROID) "*font: PxPlus IBM VGA8 16", @@ -6413,7 +6612,7 @@ ".macinstall.bigFont: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*", ".msdos.font: PxPlus IBM VGA8 32", ".nt.font: PxPlus IBM VGA8 12", - ".solaris.font: Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12", + ".solaris.font: Gallant12x22 14, Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12", ".win10.font: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*", ".win10.bigFont: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*", @@ -6424,6 +6623,15 @@ ".ransomware.fontB: -*-helvetica-medium-r-*-*-*-80-*-*-*-*-*-*", ".ransomware.fontC: -*-helvetica-bold-r-*-*-*-100-*-*-*-*-*-*", + ".tivo.font: -*-helvetica-medium-r-*-*-*-180-*-*-*-*-*-*", + ".tivo.fontB: -*-helvetica-bold-r-*-*-*-240-*-*-*-*-*-*", + + ".nintendo.font: PxPlus IBM VGA8 18", + + ".gnome.font: Helvetica-Bold 13", + ".gnome.bigFont: Helvetica-Bold 13", + ".gnome.fontB: Helvetica 13", + # elif defined(HAVE_COCOA) "*font: PxPlus IBM VGA8 8, Courier Bold 9", @@ -6433,7 +6641,7 @@ ".mac.bigFont: Monaco 18, Courier Bold 18", ".macsbug.font: Monaco 10, Courier Bold 9", - ".macsbug.bigFont: Monaco 24, Courier Bold 24", + ".macsbug.bigFont: Monaco 10, Courier Bold 9", ".macx.font: Courier Bold 9", ".macx.bigFont: Courier Bold 14", @@ -6442,23 +6650,33 @@ ".macinstall.font: Helvetica 24, Arial 24", ".macinstall.bigFont: Helvetica 24, Arial 24", - ".hvx.bigFont: PxPlus IBM VGA8 16, Courier Bold 14", - ".hppalinux.bigFont: PxPlus IBM VGA8 16, Courier Bold 14", - ".linux.bigFont: PxPlus IBM VGA8 16, Courier Bold 14", - ".hpux.bigFont: PxPlus IBM VGA8 16, Courier Bold 14", - ".msdos.font: PxPlus IBM VGA8 16, Courier Bold 14", - ".solaris.font: Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12", - ".solaris.bigFont: Luxi Mono 16, PxPlus IBM VGA8 16, Courier Bold 14", + ".hvx.bigFont: PxPlus IBM VGA8 24, Courier Bold 14", + ".hppalinux.bigFont: PxPlus IBM VGA8 24, Courier Bold 14", + ".linux.bigFont: PxPlus IBM VGA8 24, Courier Bold 14", + ".hpux.bigFont: PxPlus IBM VGA8 24, Courier Bold 14", + ".msdos.font: PxPlus IBM VGA8 24, Courier Bold 14", + ".solaris.font: Gallant12x22 12, Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12", + ".solaris.bigFont: Gallant12x22 22, Luxi Mono 16, PxPlus IBM VGA8 16, Courier Bold 14", ".win10.font: Arial 24, Helvetica 24", ".win10.bigFont: Arial 24, Helvetica 24", ".win10.fontB: Arial 100, Helvetica 100", ".win10.fontC: Arial 16, Helvetica 16", - ".ransomware.font: Arial 24, Helvetica 24", - ".ransomware.bigFont: Arial 24, Helvetica 24", - ".ransomware.fontB: Arial 16, Helvetica 16", - ".ransomware.fontC: Arial Bold 24, Helvetica Bold 24", + ".ransomware.font: Arial 24, Helvetica 24", + ".ransomware.bigFont: Arial 24, Helvetica 24", + ".ransomware.fontB: Arial 16, Helvetica 16", + ".ransomware.fontC: Arial Bold 24, Helvetica Bold 24", + + ".tivo.font: Helvetica 36", + ".tivo.fontB: Helvetica 48", + + ".nintendo.font: PxPlus IBM VGA8 12, Courier Bold 12", + ".nintendo.bigFont: PxPlus IBM VGA8 48, Courier Bold 48", + + ".gnome.font: Helvetica-Bold 14", + ".gnome.bigFont: Helvetica-Bold 14", + ".gnome.fontB: Helvetica 14", # else /* X11 */ @@ -6506,6 +6724,15 @@ ".ransomware.fontB: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-*-*", ".ransomware.fontC: -*-helvetica-bold-r-*-*-*-180-*-*-*-*-*-*", + ".tivo.font: -*-helvetica-medium-r-*-*-*-180-*-*-*-*-*-*", + ".tivo.fontB: -*-helvetica-bold-r-*-*-*-240-*-*-*-*-*-*", + + ".nintendo.font: -*-courier-bold-r-*-*-*-180-*-*-m-*-*-*", + ".nintendo.bigFont: -*-courier-bold-r-*-*-*-360-*-*-m-*-*-*", + + ".gnome.font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-*-*", + ".gnome.bigFont: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-*-*", + ".gnome.fontB: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-*-*", # endif /* X11 */ @@ -6580,8 +6807,14 @@ { "-no-vmware", ".doVMware", XrmoptionNoArg, "False" }, { "-encom", ".doEncom", XrmoptionNoArg, "True" }, { "-no-encom", ".doEncom", XrmoptionNoArg, "False" }, - { "-dvd", ".doDVD", XrmoptionNoArg, "True" }, - { "-no-dvd", ".doDVD", XrmoptionNoArg, "False" }, + { "-dvd", ".doDVD", XrmoptionNoArg, "True" }, + { "-no-dvd", ".doDVD", XrmoptionNoArg, "False" }, + { "-tivo", ".doTivo", XrmoptionNoArg, "True" }, + { "-no-tivo", ".doTivo", XrmoptionNoArg, "False" }, + { "-nintendo", ".doNintendo", XrmoptionNoArg, "True" }, + { "-no-nintendo", ".doNintendo", XrmoptionNoArg, "False" }, + { "-gnome", ".doGnome", XrmoptionNoArg, "True" }, + { "-no-gnome", ".doGnome", XrmoptionNoArg, "False" }, ANALOGTV_OPTIONS { 0, 0, 0, 0 } }; diff -Nru xscreensaver-5.42+dfsg1/hacks/bsod.man xscreensaver-5.45+dfsg1/hacks/bsod.man --- xscreensaver-5.42+dfsg1/hacks/bsod.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/bsod.man 2020-12-20 10:54:56.000000000 +0000 @@ -13,7 +13,7 @@ .. .TH XScreenSaver 1 "5-May-2004" "X Version 11" .SH NAME -bsod - Blue Screen of Death emulator +bsod \- Blue Screen of Death emulator .SH SYNOPSIS .B bsod [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/bubbles.man xscreensaver-5.45+dfsg1/hacks/bubbles.man --- xscreensaver-5.42+dfsg1/hacks/bubbles.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/bubbles.man 2020-12-20 10:54:56.000000000 +0000 @@ -13,7 +13,7 @@ .. .TH XScreenSaver 1 "14-Dec-95" "X Version 11" .SH NAME -bubbles - frying pan / soft drink simulation +bubbles \- frying pan / soft drink simulation .SH SYNOPSIS .B bubbles [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-simple] [\-broken] [\-3D] [\-rise|\-drop] [-trails] diff -Nru xscreensaver-5.42+dfsg1/hacks/bumps.man xscreensaver-5.45+dfsg1/hacks/bumps.man --- xscreensaver-5.42+dfsg1/hacks/bumps.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/bumps.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "05-Apr-1999" "X Version 11" .SH NAME -bumps - move distorting spotlight around desktop +bumps \- move distorting spotlight around desktop .SH SYNOPSIS .B bumps [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/ccurve.c xscreensaver-5.45+dfsg1/hacks/ccurve.c --- xscreensaver-5.42+dfsg1/hacks/ccurve.c 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/ccurve.c 2020-12-20 10:54:56.000000000 +0000 @@ -223,7 +223,7 @@ double x = 0.0; double y = 0.0; - replacement = (Position*)(malloc (segment_count * sizeof (Segment))); + replacement = (Position*)(malloc (segment_count * sizeof (*replacement))); copy_points (segment_count, points, replacement); assert (fabs ((replacement [segment_count - 1].x) - 1.0) < EPSILON); assert (fabs (replacement [segment_count - 1].y) < EPSILON); diff -Nru xscreensaver-5.42+dfsg1/hacks/ccurve.man xscreensaver-5.45+dfsg1/hacks/ccurve.man --- xscreensaver-5.42+dfsg1/hacks/ccurve.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/ccurve.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -ccurve - self-similar linear fractals. +ccurve \- self-similar linear fractals. .SH SYNOPSIS .B ccurve [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/celtic.man xscreensaver-5.45+dfsg1/hacks/celtic.man --- xscreensaver-5.42+dfsg1/hacks/celtic.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/celtic.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -celtic - draws celtic cross-stich patterns +celtic \- draws celtic cross-stich patterns .SH SYNOPSIS .B ifs [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/check-configs.pl xscreensaver-5.45+dfsg1/hacks/check-configs.pl --- xscreensaver-5.42+dfsg1/hacks/check-configs.pl 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/check-configs.pl 2020-12-20 10:54:56.000000000 +0000 @@ -21,7 +21,7 @@ use strict; my $progname = $0; $progname =~ s@.*/@@g; -my ($version) = ('$Revision: 1.28 $' =~ m/\s(\d[.\d]+)\s/s); +my ($version) = ('$Revision: 1.29 $' =~ m/\s(\d[.\d]+)\s/s); my $verbose = 0; my $debug_p = 0; @@ -1091,9 +1091,6 @@ " android:versionCode=\"$versb\"\n" . " android:versionName=\"$vers\">\n" . - " \n" . - " \n" . diff -Nru xscreensaver-5.42+dfsg1/hacks/cloudlife.man xscreensaver-5.45+dfsg1/hacks/cloudlife.man --- xscreensaver-5.42+dfsg1/hacks/cloudlife.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/cloudlife.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 6 "20-May-2003" "X Version 11" .SH NAME -cloudlife - a cellular automaton based on Conway's Life +cloudlife \- a cellular automaton based on Conway's Life .SH SYNOPSIS .B cloudlife [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-cycle-delay \fImicroseconds\fP] [\-cycle-colors \fIinteger\fP][\-cell-size \fIinteger\fP] [\-initial-density \fIinteger\fP] [\-max-age \fIinteger\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/compass.man xscreensaver-5.45+dfsg1/hacks/compass.man --- xscreensaver-5.42+dfsg1/hacks/compass.man 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/compass.man 2020-12-20 10:54:56.000000000 +0000 @@ -1,6 +1,6 @@ .TH XScreenSaver 1 "" "X Version 11" .SH NAME -compass - draws a spinning compass. +compass \- draws a spinning compass. .SH SYNOPSIS .B compass [\-display \fIhost:display.screen\fP] diff -Nru xscreensaver-5.42+dfsg1/hacks/compile_axp.com xscreensaver-5.45+dfsg1/hacks/compile_axp.com --- xscreensaver-5.42+dfsg1/hacks/compile_axp.com 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/compile_axp.com 2020-12-20 10:54:56.000000000 +0000 @@ -111,6 +111,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) RORSCHACH.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTOR.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTZOOMER.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCOOTER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCREENHACK.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SHADEBOBS.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SIERPINSKI.C diff -Nru xscreensaver-5.42+dfsg1/hacks/compile_decc.com xscreensaver-5.45+dfsg1/hacks/compile_decc.com --- xscreensaver-5.42+dfsg1/hacks/compile_decc.com 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/compile_decc.com 2020-12-20 10:54:56.000000000 +0000 @@ -111,6 +111,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) RORSCHACH.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTOR.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTZOOMER.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCOOTER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCREENHACK.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SHADEBOBS.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SIERPINSKI.C diff -Nru xscreensaver-5.42+dfsg1/hacks/config/beats.xml xscreensaver-5.45+dfsg1/hacks/config/beats.xml --- xscreensaver-5.42+dfsg1/hacks/config/beats.xml 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/beats.xml 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,42 @@ + + + + + + +

+ + + +
+ + + + + + <_description> +Draws figures that move around at a slightly different rate from +each other, creating interesting chaotic and ordered patterns. + +Written by David Eccles; 2020. + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/bouncingcow.xml xscreensaver-5.45+dfsg1/hacks/config/bouncingcow.xml --- xscreensaver-5.42+dfsg1/hacks/config/bouncingcow.xml 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/bouncingcow.xml 2020-12-20 10:54:56.000000000 +0000 @@ -19,7 +19,11 @@ _label="Number of cows" _low-label="Moo" _high-label="Herd" low="1" high="9" default="1"/> - + + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/bsod.xml xscreensaver-5.45+dfsg1/hacks/config/bsod.xml --- xscreensaver-5.42+dfsg1/hacks/config/bsod.xml 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/bsod.xml 2020-12-20 10:54:56.000000000 +0000 @@ -10,7 +10,7 @@ - +
@@ -19,47 +19,54 @@ - - + - - - + + + + + + - + + - + - - + - - - + + + + + + + + - +
diff -Nru xscreensaver-5.42+dfsg1/hacks/config/co____9.xml xscreensaver-5.45+dfsg1/hacks/config/co____9.xml --- xscreensaver-5.42+dfsg1/hacks/config/co____9.xml 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/co____9.xml 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/covid19.xml xscreensaver-5.45+dfsg1/hacks/config/covid19.xml --- xscreensaver-5.42+dfsg1/hacks/config/covid19.xml 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/covid19.xml 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/deepstars.xml xscreensaver-5.45+dfsg1/hacks/config/deepstars.xml --- xscreensaver-5.42+dfsg1/hacks/config/deepstars.xml 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/deepstars.xml 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,31 @@ + + + + + + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/dnalogo.xml xscreensaver-5.45+dfsg1/hacks/config/dnalogo.xml --- xscreensaver-5.42+dfsg1/hacks/config/dnalogo.xml 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/dnalogo.xml 2020-12-20 10:54:56.000000000 +0000 @@ -33,18 +33,6 @@ San Francisco, CA 94103 -Codeword - - Restaurant -- Bar -- Nightclub -- Cafe -- Est. 2015. - - 917 Folsom Street - San Francisco, CA - 94107 - - https://www.dnalounge.com/ - http://www.dnapizza.com/ - https://www.codeword-sf.com/ - Written by Jamie Zawinski; 2001. diff -Nru xscreensaver-5.42+dfsg1/hacks/config/etruscanvenus.xml xscreensaver-5.45+dfsg1/hacks/config/etruscanvenus.xml --- xscreensaver-5.42+dfsg1/hacks/config/etruscanvenus.xml 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/etruscanvenus.xml 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,143 @@ + + + + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/flyingtoasters.xml xscreensaver-5.45+dfsg1/hacks/config/flyingtoasters.xml --- xscreensaver-5.42+dfsg1/hacks/config/flyingtoasters.xml 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/flyingtoasters.xml 2020-12-20 10:54:56.000000000 +0000 @@ -25,6 +25,7 @@
+
diff -Nru xscreensaver-5.42+dfsg1/hacks/config/gibson.xml xscreensaver-5.45+dfsg1/hacks/config/gibson.xml --- xscreensaver-5.42+dfsg1/hacks/config/gibson.xml 1970-01-01 00:00:00.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/gibson.xml 2020-12-20 10:54:56.000000000 +0000 @@ -0,0 +1,65 @@ + + + + + + + diff -Nru xscreensaver-5.42+dfsg1/hacks/config/glplanet.xml xscreensaver-5.45+dfsg1/hacks/config/glplanet.xml --- xscreensaver-5.42+dfsg1/hacks/config/glplanet.xml 2019-01-22 14:29:24.000000000 +0000 +++ xscreensaver-5.45+dfsg1/hacks/config/glplanet.xml 2020-12-20 10:54:56.000000000 +0000 @@ -5,6 +5,7 @@