From: (no author) <(no author)@91ce42f0-d328-0410-95d8-f526ca767f89> Date: Sat, 23 Apr 2005 11:30:19 +0000 (+0000) Subject: This commit was manufactured by cvs2svn to create tag X-Git-Tag: Release-1.36.3 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b8038c40fc96befe1137a75438158f98eeb93399;p=bacula%2Fbacula This commit was manufactured by cvs2svn to create tag 'Release-1.36.3'. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/tags/Release-1.36.3@1954 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/ChangeLog b/bacula/ChangeLog index f4d894739e..18e46be420 100644 --- a/bacula/ChangeLog +++ b/bacula/ChangeLog @@ -1,5 +1,109 @@ -Version 1.36.1 released xxNov04: +Changes to 1.36.3 released 23Apr05: +22Apr05 +- Correct return type of ftello to avoid overflow -- + thanks to Peter Eriksson. +13Apr05 +- Fix seg fault if Name directive missing in Job resource. +12Apr05 +- Add new LaTeX doc to 1.36.2 branch. +- Fix SuSE autostart routines to use /etc/init.d instead + of /etc/rc.d/init.d. +- Increase index size on File table Name and Path table Path + to improve performance. +- Second fix for not zeroing SD pointers on restarted job. +- Turn off old style Include/Excludes. +01Apr05 +- Use fseeko and ftello so that attributes can exceed 4GB +- Flush console output after every line. +- Turn off Multiple Connections in catalog resource, which + causes corruped databases. It is silently ignored. +- Drop support for old style Include/Exclude. There is a + perl script that will convert them. +- Inhibit trying to reset attributes on a Win32 drive. +18Mar05 1.36.2-store.patch +- This patch fails a job if no Storage resource is specified and + the job attempts to call the SD. +18Mar05 1.36.2-reschedule.patch +- This patch should fix a Segfault bug when a job is rescheduled. + The storage pointers were being released when they should not + have been. +17Mar05 1.36.2-restore-speed.patch +- This patch will fix a subtle bug that was introduced in 1.36.2 + which causes Bacula to be very slow restoring a few files. This + is because it reads completely to the end of the Volume rather + than stopping when all the files on the Volume are loaded. The + introduction of the bug was caused by a patch that fixed + Bacula truncating tapes after a restore. + Note that all source files will be rebuilt during the make. +16Mar05 1.36.2-console.patch +- This patch causes the output directed to a file to be + flushed after every line. This is a bit overkill, IMO, but + a user complained about it. +15Mar05 1.36.2-netbsd.patch +- This patch corrects a compile problem because of no statfs() + on NetBSD. The patch was submitted by kardel with bug 258. +09Mar05 1.36.2-win32-drive.patch +- This patch will prevent the Win32 FD from printing an error message + when it attempts to restore the permissions for a drive (which Win32 + doesn't permit). The error is harmless in any case. +04Mar05 1.36.2-level.patch +- This patch should fix a problem with th %l editing in the + client (FD) where it edited nothing. With this fix, it should + edit "since". +04Mar05 1.36.2-pool.patch +- This patch corrects a problem preventing multiple + simultaneous jobs from different pools. + +Changes to 1.36.2 released 28Feb05: +27Feb05 +- Fix pointer to stack variable in Verify jobs. +- Change reference to DEV_BSIZE to B_DEV_BSIZE to + avoid colision with some OSes. +- Release storage[i] in job.c if allocated when + starting/restarting a job. Avoids orpahanned buffers. +24Feb05 +- Add awk check to configure.in +- Bring over a few files from 1.37. +18Feb05 +- Fix some lower case character problems in sql_cmds.c reported + by Debian. +- Fix seg fault if debug level 900 set in SD. +- Truncate Win32 child return code to 8 bits. +15Feb05 +- Fix deadlock in multiple simultaneous jobs. +- Fix tape "truncation"/"number of files" after restore bug. +- Merge a few minor things from the 1.37 stream. +14Feb05 +- Add a number of new features from 1.37, and apply fixes + for all known bugs. See ReleaseNotes for details. +- Apply Tim's patch for ACLs. + +Version 1.36.1 released 26Nov04: +24Nov04 +- Take Dan's fix to the fix_postgresql_tables (thanks Dan) +- Increase Maximum Concurrent Jobs to 20 in SD and FD! +- Fix improper handling of autochanger Volumes that are not + marked InChanger. +22Nov04 +- Update authentication failure message to indicate possible + problem with Maximum Concurrent Jobs. Add to doc too. +- Commit PostgreSQL BIGINT fix -- apparently some people didn't + get it. +- Do not use a slot unless it is InChanger in the autochanger + code, otherwise autochanger gets upset not finding the Volume. +21Nov04 +- Make authentication timeout compile time configurable. + The value is set in src/baconfig.h +- Fix removing items from watchdog queue, which apparently + screwed up if there was more than one item. +- Rework mediaformat part of manual to separate out old + tape format for easier reading. +- Add a lot of debug code to the authentication code. +- Add seconds to the start/end times printed in the job report. +19Nov04 +- Fix mutex deadlock in dequeue of messages. +- Add debug code to FD authorization. 18Nov04 - Increase authentication timeouts to 10 minutes. 15Nov04 diff --git a/bacula/LICENSE b/bacula/LICENSE index 18162b1900..c6875a7282 100644 --- a/bacula/LICENSE +++ b/bacula/LICENSE @@ -49,6 +49,8 @@ the copyright license set forth in this Agreement. Code falling under the above conditions will be marked as follows: + Copyright (C) 2000-2005 Kern Sibbald +or Copyright (C) 2000-2004 Kern Sibbald and John Walker This program is free software; you can redistribute it and/or diff --git a/bacula/Makefile.in b/bacula/Makefile.in index e3bb87cce8..a5b99c1e03 100755 --- a/bacula/Makefile.in +++ b/bacula/Makefile.in @@ -57,7 +57,7 @@ bacula-fd: Makefile configure: autoconf/configure.in autoconf/aclocal.m4 autoconf/acconfig.h autoconf/config.h.in cd $(srcdir); ${RMF} -f config.cache config.log config.out config.status src/config.h - WANT_AUTOCONF=2.5 autoconf --prepend-include=$(srcdir)/autoconf \ + autoconf --prepend-include=$(srcdir)/autoconf \ autoconf/configure.in > configure chmod 755 configure @@ -76,7 +76,7 @@ config.status: autoconf/config.h.in: autoconf/configure.in autoconf/acconfig.h cd $(srcdir); ${RMF} -f config.cache config.log config.out config.status src/config.h - WANT_AUTOCONF=2.5 autoheader --prepend-include=$(srcdir)/autoconf \ + autoheader --prepend-include=$(srcdir)/autoconf \ autoconf/configure.in > autoconf/config.h.in chmod 644 autoconf/config.h.in @@ -181,6 +181,8 @@ clean: @(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1) @$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum @$(RMF) examples/1 examples/2 examples/devices/1 examples/devices/2 + @$(RMF) -r autom4te.cache + @find . -name .#* -exec $(RMF) {} \; # clean for distribution diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 99d6eb5005..dd3baf5895 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,81 +1,147 @@ - Release Notes for Bacula 1.36.0 - - Bacula code: Total files = 396 Total lines = 116,418 (*.h *.c *.in) - - -Major Changes: -- Tray monitor program (really cool) -- Bacula Rescue CDROM (easy to make and essential for emergencies) -- Bacula CD Image Manager -- General bug fixes/stabilization -- French translation of manual by Ludovic Strappazon well - underway. -- UTF-8 is supported in conio. -- Improved conf scanning code allowing FileSet components to - be put on a single line (previously everything had to be on - a different line). -- Win32 files restored to an alternate directory will have the - colon following the drive letter turned into a / e.g. c: - becomes c/. Previously the c: was stripped. This applies only - to files written to an alternate directory (i.e. using a where=). -- Certain open files (Word for example) can now be saved on - Win32 systems. -- Default for Wild-cards on Win32 systems is to fold case this - should correct most of the problems users are having with - exclusion on Win32. -- Lots of improvements in the Rescue scripts -- better - network detection, better mounting code, ... -- The attributes spool file can now exceed 2GB. -- Significant speed improvements when running PostgreSQL. -- Significantly faster restore command with very large - FileSets while building the in memory directory tree. -- Patches directory in the source will have all patches - that have not been applied and released (new releases are - only generated when really critical bugs are found). -- Bacula forces the tape drive into variable block mode - on most systems (providing Bacula is running in variable - block mode). -- dbcheck updated to remove many more orphaned records. -- Support for IPv6 (untested). -- Modifications to the license to termination clause for - more protection from SCO type predators. No change for - normal users. -- SIGHUP to Director causes it to reload conf file. - -- Many improvements in the documentation. - -New Directives: -- Added "Rerun Failed levels = yes/no" in the Job resource - of the Director. It will upgrade the current job to a - higher level (Full or Differential) if a previous job - of that level failed. -- Added "Ignore FileSet Changes = yes/no" in the FileSet - directive of the Director. It prevents the Director from - immediately upgrading the job to a Full save if you modify - the contents of the FileSet. Not recommended. -- Added "Block positioning = yes/no" in Device resource in SD. - If set to no, Bacula should (as yet untested) be able to - recover data from tapes where the drive was set to fixed - blocksize but Bacula is in variable block size. -- Added "Multiple connections = yes/no" in Catalog record for - allowing multiple simultaneous connections to the database. - This is a major performance improvement for PostgreSQL and - SQLite, but it is untested, so please test before putting - it into production. -- Alert Command in SD permits checking for tape drive - alerts at the end of every job (or doing anything you want). - An example of the command is in the default bacula-sd.conf - file as well as in the Storage Configuration chapter of - the manual. + Release Notes for Bacula 1.36.3 + + Bacula code: Total files = 398 Total lines = 118,000 (*.h *.c *.in) + +Major Changes to version 1.36.3: +- Applied all fixes for bugs since version 1.36.2 (see below) +- Use fseeko and ftello so that attributes can exceed 4 GB. +- Thanks to Karl Cunningham's hard work and skilled Perl + programming, the manual is now in LaTeX format + and has an index! +- Drop support of old style Include/Excludes (see below). + +New Directives in 1.36.3: +- None, but see 1.36.2 additions below. New Commands: -- umount -- same as unmount. -- delete job now permits multiple jobids and ranges, e.g.: - delete job jobid=1,3,5,11-16 -- reload -- reloads bacula-dir.conf in Director. +- None since 1.36.1 + +Items to note for 1.36.3!!! +- Drop support of old style Include/Excludes. Matt Howard has + supplied a handy Perl program that will do a good job of + converting your FileSets. It can be found in + examples/conf/fileset_convert.pl +- Dan has reminded us that the arguments for make_catalog_backup + changed from 1.34.x to 1.36.1. The old arguments were typically + "-U bacula". The new arguments are typically "bacula bacula", + where the first is the database name, and the second is the + user name. + +Patches applied: + +04Mar05 1.36.2-level.patch + This patch should fix a problem with th %l editing in the + client (FD) where it edited nothing. With this fix, it should + edit "since". + +04Mar05 1.36.2-pool.patch + This patch corrects a problem preventing multiple + simultaneous jobs from different pools. + +09Mar05 1.36.2-win32-drive.patch + This patch will prevent the Win32 FD from printing an error message + when it attempts to restore the permissions for a drive (which Win32 + doesn't permit). The error is harmless in any case. + +15Mar05 1.36.2-netbsd.patch + This patch corrects a compile problem because of no statfs() + on NetBSD. The patch was submitted by kardel with bug 258. + +16Mar05 1.36.2-console.patch + This patch causes the output directed to a file to be + flushed after every line. This is a bit overkill, IMO, but + a user complained about it. + +17Mar05 1.36.2-restore-speed.patch + This patch will fix a subtle bug that was introduced in 1.36.2 + which causes Bacula to be very slow restoring a few files. This + is because it reads completely to the end of the Volume rather + than stopping when all the files on the Volume are loaded. The + introduction of the bug was caused by a patch that fixed + Bacula truncating tapes after a restore. + Note that all source files will be rebuilt during the make. + +18Mar05 1.36.2-store.patch + This patch fails a job if no Storage resource is specified and + the job attempts to call the SD. + +18Mar05 1.36.2-reschedule.patch + This patch should fix a Segfault bug when a job is rescheduled. + The storage pointers were being released when they should not + have been. + +24Mar05 1.36.2-wx-console-bugfixes.patch + Major wx-console fixes (see src/wx-console/CHANGELOG for details). + +28Mar05 1.36.2-tray-monitor-memleak.patch + This patch should fix memory leaks in tray-monitor. -Items to note!!! +================================================================ + +Items to note for 1.36.2!!! +- Dan has reminded us that the arguments for make_catalog_backup + changed from 1.34.x to 1.36.1. The old arguments were typically + "-U bacula". The new arguments are typically "bacula bacula", + where the first is the database name, and the second is the + user name. + +Patches applied: + +03Dec04 1.36.1-pool.patch + This patch should hold jobs in the Director's start queue if + more than one simultaneous backup job wants to use the same + Storage device with two different Pools (i.e. 2 Volumes). + +03Dec04 1.16.1-slots.patch + This patch should fix "update slots" with two different + magazines in different pools by checking the pool when zapping + the InChanger. + +18Dec04 1.36.1-spool.patch + This patch fixes the despooling size printed in the Job + report. Previously, it reported the total size for the + device. This patch makes it report the size for the job. + +21Dec04 1.36.1-store.patch + This patch fixes a problem with overriding storage daemon + specifications. Previously they were not always honored. + This implements more uniform handling. It also eliminates + an orphaned buffer situation using JobDefs. + +21Dec04 1.36.1-reload.patch + This patch fixes Bacula so that it does not exit if there + is a syntax error in its conf file during a reload command. + +24Dec04 1.36.1-fileset.patch + This patch should correct a seg fault in the FD that occurs + at the end of a job when the job uses old style include/excludes. + Old style include/excludes are deprecated and should be + converted to the new style as soon as possible. + +30Jan05 1.36.1-acl.patch + This patch fixes some typos with ACL checking that results + in the incorrect name being used for the check. + This fixes possible security problems with unwanted + access by restricted consoles. + +15Feb05 1.36.1-truncate.patch + This patch fixes a bug where a tape gets "truncated" after + doing a restore. The number of files in the catalog do not + agree with what Bacula thinks is on tape, then the tape is + marked in error. + +=== +Items to note for version 1.36.1: +- The output from Job reports has been modified to include the + seconds on the start/end times, the Storage device used, and to + indent the output differently. +- If you created a PostgreSQL database under version 1.36.0, there + are two things you might want to do. 1. manually remove some + of the File table indexes to improve backup performance. See the + make_postgresql_tables script. 2. run fix_postgresql_tables (in + src/cats and updatedb) to correct a table. This is necessary only + if you are creating disk Volumes greater than 2GB. - As of 1.35.5 you MUST do a database update. cd scripts-dir (or src/cats) @@ -85,11 +151,47 @@ Items to note!!! of the new FileSet features such as regular expressions. - Regular expressions are not supported in the Win32 FD. -Other Items: -- Much better error messages from system errors particularly - on Win32 and in running scripts. -- Many improvements in the SD. -- Full support for 64 bit machines. -- btape improved test and fill commands. -- See the ChangeLog for additional details. +Major Changes to version 1.36.1: +- There is a new Win32 pebuilder rescue disk thanks to Scott. This + is worth the effort to checkout. +- A number of indexes have been removed from the PostgreSQL + database to improve performance during backups. You may need to + add these indexes if you do Verifies. See the scripts. +- We now have a Gentoo ebuild -- thanks Scott. +- There are a number of new ./configure options for the + bimagemgr. Please see the documentation or ./configure --help +- The RedHat autostart scripts disable using /lib/tls. If you + don't want this you will need to turn it off. +- Corrected a problem with the default SD and FD conf files that + incorrectly set Maximum Concurrent Jobs = 1. This prevented + running a job and obtaining the status at the same time. +- All daemon messages are now prefixed with a short date/time, + and queued messages (generated in the comm routines) have the + time the message was generated rather than the time the message + was sent (usually much later). +- Fixed a bug with the autochanger code not respecting the InChanger + flag. + +Other Items: +- It is now possible to build the Rescue CDROM using a pre-installed + static Bacula FD. +- Corrected a bug in the traceback code when Bacula was executed without + a path. Tracebacks should now work in more cases. +- Corrected a typo in the traceback script. +- Fixed the mtx autochanger script so that it correctly waits on + Linux systems (if you manually enable the code). +- Added grant all on cdimages for PostgreSQL users of bimagemgr. +- The actual Job start time is now correctly recorded in the catalog. +- You can now specify a JobId (or multiple ones separated by commas) on + the restore command line. +- A -d50 will now turn on lots of debug code if you are having + authentication errors. +- Found a workaround to a /lib/tls pthreads bug (a library seg fault). +- Added an ALERT message class for Alert messages. +- Fixed a seg fault in the restore tree routine when attempting + to select certain files in the root directory. +- Allow other jobs to request new Volumes while operator intervention + is needed -- previously all stalled. +- Enhancements to btape test (don't loop if certain tape errors occur). +- Improvements to the Win32 install. diff --git a/bacula/autoconf/config.h.in b/bacula/autoconf/config.h.in index f195ac7296..66087f295a 100644 --- a/bacula/autoconf/config.h.in +++ b/bacula/autoconf/config.h.in @@ -263,12 +263,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H -/* Define to 1 if your system has a working POSIX `fnmatch' function. */ -#undef HAVE_FNMATCH - /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK +/* Define to 1 if you have the `fseeko' function. */ +#undef HAVE_FSEEKO + /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD @@ -596,9 +596,9 @@ /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in do not work properly. */ diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index 9dc22a53eb..e849c26222 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -54,7 +54,6 @@ AC_PATH_PROG(MV, mv, mv) AC_PATH_PROG(RM, rm, rm) AC_PATH_PROG(CP, cp, cp) AC_PATH_PROG(SED, sed, sed) -AC_PATH_PROG(AWK, awk, awk) AC_PATH_PROG(ECHO, echo, echo) AC_PATH_PROG(CMP, cmp, cmp) AC_PATH_PROG(TBL, tbl, tbl) @@ -64,7 +63,23 @@ AC_PATH_PROG(OPENSSL, openssl, none) AC_PATH_PROG(MTX, mtx, mtx) AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config) AC_PATH_PROG(WXCONFIG, wx-config, wx-config) -AC_PATH_PROG(CDRECORD, cdrecord) +AC_PATH_PROG(CDRECORD, cdrecord, cdrecord) +AC_PATH_PROG(PIDOF, pidof, pidof) +AC_PROG_AWK +# Some AWK programs fail, so test it and warn the user +if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 } + { if ((prog == $2) || (("(" prog ")") == $2) || + (("[" prog "]") == $2) || + ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :; +else + AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!! + The regex engine of $AWK is too broken to be used you + might want to install GNU AWK. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!]) +fi +THE_AWK=$AWK +AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK) + test -n "$ARFLAG" || ARFLAGS="cr" AC_SUBST(ARFLAGS) @@ -154,6 +169,7 @@ support_static_fd=no support_static_sd=no support_static_dir=no support_static_cons=no +support_python=no build_client_only=no cats= db_name=Internal @@ -1005,7 +1021,7 @@ AC_ARG_WITH(bimagemgr-bingroup, bimagemgr_dataowner=apache AC_ARG_WITH(bimagemgr-dataowner, - [ --with-bimagemgr-dataowner=USER specify bimagemgr data file owner], + [ --with-bimagemgr-dataowner=USER specify bimagemgr data file owner], [ if test "x$withval" != "xno" ; then bimagemgr_dataowner=$withval @@ -1015,7 +1031,7 @@ AC_ARG_WITH(bimagemgr-dataowner, bimagemgr_datagroup=apache AC_ARG_WITH(bimagemgr-datagroup, - [ --with-bimagemgr-datagroup=USER specify bimagemgr data file group], + [ --with-bimagemgr-datagroup=USER specify bimagemgr data file group], [ if test "x$withval" != "xno" ; then bimagemgr_datagroup=$withval @@ -1488,7 +1504,7 @@ AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)]) AC_CHECK_FUNCS(chflags) -AC_CHECK_FUNCS(snprintf vsnprintf gethostid getdomainname) +AC_CHECK_FUNCS(snprintf vsnprintf gethostid getdomainname fseeko) dnl# -------------------------------------------------------------------------- dnl# CHECKING FOR THREAD SAFE FUNCTIONS @@ -1539,7 +1555,7 @@ AC_FUNC_ALLOCA AC_FUNC_GETMNTENT AC_FUNC_CLOSEDIR_VOID AC_FUNC_SETPGRP dnl check for BSD setpgrp. -AC_FUNC_FNMATCH +# AC_FUNC_FNMATCH dnl use local version dnl# FreeBSD needs to link libxpg4 @@ -1895,6 +1911,8 @@ AC_OUTPUT([autoconf/Make.common \ scripts/gnome-console.console_apps \ scripts/mtx-changer \ scripts/bacula-tray-monitor.desktop \ + scripts/logwatch/Makefile \ + scripts/logwatch/logfile.bacula.conf \ doc/Makefile \ src/Makefile \ src/host.h \ @@ -1958,9 +1976,9 @@ AC_OUTPUT([autoconf/Make.common \ src/win32/Makefile \ src/win32/console/bconsole.conf \ src/win32/wx-console/wx-console.conf \ - src/win32/pebuilder/Makefile \ - src/bimagemgr/Makefile \ - src/bimagemgr/bacula-bimagemgr.spec \ + src/win32/pebuilder/Makefile \ + src/bimagemgr/Makefile \ + src/bimagemgr/bacula-bimagemgr.spec \ $PFILES ], [(echo "Doing make of dependencies"; ${MAKE:-make} depend;) ] ) @@ -2094,4 +2112,4 @@ cat config.out # old stuff # cweb support: ${got_cweb} ${CWEB_SRC} - # gmp support: ${got_gmp} ${GMP_SRC} +# gmp support: ${got_gmp} ${GMP_SRC} diff --git a/bacula/configure b/bacula/configure index 51992be776..46923cf668 100755 --- a/bacula/configure +++ b/bacula/configure @@ -1,9 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57. +# Generated by GNU Autoconf 2.59. # -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. +# Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -20,9 +19,10 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi +DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false @@ -41,7 +41,7 @@ for as_var in \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var @@ -218,16 +218,17 @@ rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS @@ -308,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS BUILD_DIR TRUEPRG FALSEPRG VERSION DATE LSMDATE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB MV RM CP SED AWK ECHO CMP TBL AR OPENSSL MTX PKGCONFIG WXCONFIG CDRECORD ARFLAGS MAKE_SHELL LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os HAVE_SUN_OS_TRUE HAVE_SUN_OS_FALSE HAVE_OSF1_OS_TRUE HAVE_OSF1_OS_FALSE HAVE_AIX_OS_TRUE HAVE_AIX_OS_FALSE HAVE_HPUX_OS_TRUE HAVE_HPUX_OS_FALSE HAVE_LINUX_OS_TRUE HAVE_LINUX_OS_FALSE HAVE_FREEBSD_OS_TRUE HAVE_FREEBSD_OS_FALSE HAVE_NETBSD_OS_TRUE HAVE_NETBSD_OS_FALSE HAVE_OPENBSD_OS_TRUE HAVE_OPENBSD_OS_FALSE HAVE_BSDI_OS_TRUE HAVE_BSDI_OS_FALSE HAVE_SGI_OS_TRUE HAVE_SGI_OS_FALSE HAVE_IRIX_OS_TRUE HAVE_IRIX_OS_FALSE HAVE_DARWIN_OS_TRUE HAVE_DARWIN_OS_FALSE INSIDE_GNOME_COMMON_TRUE INSIDE_GNOME_COMMON_FALSE MSGFMT GNOME_INCLUDEDIR GNOMEUI_LIBS GNOME_LIBDIR GNOME_LIBS GNOMEGNORBA_LIBS GTKXMHTML_LIBS ZVT_LIBS GNOME_CONFIG ORBIT_CONFIG ORBIT_IDL HAVE_ORBIT_TRUE HAVE_ORBIT_FALSE ORBIT_CFLAGS ORBIT_LIBS HAVE_GNORBA_TRUE HAVE_GNORBA_FALSE GNORBA_CFLAGS GNORBA_LIBS GNOME_APPLETS_LIBS GNOME_DOCKLETS_LIBS GNOME_CAPPLET_LIBS GNOME_DIR WXCONS_CPPFLAGS WXCONS_LDFLAGS WX_DIR TRAY_MONITOR_CPPFLAGS TRAY_MONITOR_LDFLAGS TRAY_MONITOR_DIR TTOOL_LDFLAGS STATIC_FD STATIC_SD STATIC_DIR STATIC_CONS STATIC_GNOME_CONS STATIC_WX_CONS ALL_DIRS CONS_INC CONS_OBJ CONS_SRC CONS_LIBS CONS_LDFLAGS READLINE_SRC CDSTL working_dir scriptdir dump_email job_email smtp_host piddir subsysdir baseport dir_port fd_port sd_port dir_password fd_password sd_password mon_dir_password mon_fd_password mon_sd_password bimagemgr_cgidir bimagemgr_docdir bimagemgr_binowner bimagemgr_bingroup bimagemgr_dataowner bimagemgr_datagroup dir_user dir_group sd_user sd_group fd_user fd_group SBINPERM SQL_LFLAGS SQL_INCLUDE SQL_BINDIR cats DB_NAME GETCONF ac_ct_GETCONF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LIBOBJS ALLOCA FDLIBS DEBUG DINCLUDE DLIB DB_LIBS WCFLAGS WLDFLAGS OBJLIST hostname TAPEDRIVE PSCMD WIN32 MACOSX DISTNAME DISTVER LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS BUILD_DIR TRUEPRG FALSEPRG VERSION DATE LSMDATE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB MV RM CP SED ECHO CMP TBL AR OPENSSL MTX PKGCONFIG WXCONFIG CDRECORD PIDOF AWK ARFLAGS MAKE_SHELL LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os HAVE_SUN_OS_TRUE HAVE_SUN_OS_FALSE HAVE_OSF1_OS_TRUE HAVE_OSF1_OS_FALSE HAVE_AIX_OS_TRUE HAVE_AIX_OS_FALSE HAVE_HPUX_OS_TRUE HAVE_HPUX_OS_FALSE HAVE_LINUX_OS_TRUE HAVE_LINUX_OS_FALSE HAVE_FREEBSD_OS_TRUE HAVE_FREEBSD_OS_FALSE HAVE_NETBSD_OS_TRUE HAVE_NETBSD_OS_FALSE HAVE_OPENBSD_OS_TRUE HAVE_OPENBSD_OS_FALSE HAVE_BSDI_OS_TRUE HAVE_BSDI_OS_FALSE HAVE_SGI_OS_TRUE HAVE_SGI_OS_FALSE HAVE_IRIX_OS_TRUE HAVE_IRIX_OS_FALSE HAVE_DARWIN_OS_TRUE HAVE_DARWIN_OS_FALSE INSIDE_GNOME_COMMON_TRUE INSIDE_GNOME_COMMON_FALSE MSGFMT GNOME_INCLUDEDIR GNOMEUI_LIBS GNOME_LIBDIR GNOME_LIBS GNOMEGNORBA_LIBS GTKXMHTML_LIBS ZVT_LIBS GNOME_CONFIG ORBIT_CONFIG ORBIT_IDL HAVE_ORBIT_TRUE HAVE_ORBIT_FALSE ORBIT_CFLAGS ORBIT_LIBS HAVE_GNORBA_TRUE HAVE_GNORBA_FALSE GNORBA_CFLAGS GNORBA_LIBS GNOME_APPLETS_LIBS GNOME_DOCKLETS_LIBS GNOME_CAPPLET_LIBS GNOME_DIR WXCONS_CPPFLAGS WXCONS_LDFLAGS WX_DIR TRAY_MONITOR_CPPFLAGS TRAY_MONITOR_LDFLAGS TRAY_MONITOR_DIR TTOOL_LDFLAGS STATIC_FD STATIC_SD STATIC_DIR STATIC_CONS STATIC_GNOME_CONS STATIC_WX_CONS ALL_DIRS CONS_INC CONS_OBJ CONS_SRC CONS_LIBS CONS_LDFLAGS READLINE_SRC CDSTL working_dir scriptdir dump_email job_email smtp_host piddir subsysdir baseport dir_port fd_port sd_port dir_password fd_password sd_password mon_dir_password mon_fd_password mon_sd_password bimagemgr_cgidir bimagemgr_docdir bimagemgr_binowner bimagemgr_bingroup bimagemgr_dataowner bimagemgr_datagroup dir_user dir_group sd_user sd_group fd_user fd_group SBINPERM SQL_LFLAGS SQL_INCLUDE SQL_BINDIR cats DB_NAME GETCONF ac_ct_GETCONF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LIBOBJS ALLOCA FDLIBS DEBUG DINCLUDE DLIB DB_LIBS WCFLAGS WLDFLAGS OBJLIST hostname TAPEDRIVE PSCMD WIN32 MACOSX DISTNAME DISTVER LTLIBOBJS' ac_subst_files='MCOMMON' # Initialize some variables set by options. @@ -667,7 +668,7 @@ done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir + localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in @@ -707,10 +708,10 @@ if test -z "$srcdir"; then # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -810,9 +811,9 @@ _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -897,8 +898,8 @@ Optional Packages: --with-bimagemgr-docdir=DIR specify bimagemgr doc root dir --with-bimagemgr-binowner=USER specify bimagemgr binary file owner --with-bimagemgr-bingroup=USER specify bimagemgr binary file group - --with-bimagemgr-dataowner=USER specify bimagemgr data file owner - --with-bimagemgr-datagroup=USER specify bimagemgr data file group + --with-bimagemgr-dataowner=USER specify bimagemgr data file owner + --with-bimagemgr-datagroup=USER specify bimagemgr data file group --with-dir-user=USER specify user for Director daemon --with-dir-group=GROUP specify group for Director daemon --with-sd-user=USER specify user for Storage daemon @@ -969,12 +970,45 @@ case $srcdir in ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. @@ -985,7 +1019,7 @@ ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then + test -f $ac_srcdir/configure.in; then echo $ac_configure --help else @@ -999,8 +1033,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -Free Software Foundation, Inc. +Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1012,7 +1045,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1089,19 +1122,19 @@ do 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. + ac_must_keep_next=false # Got value, back to normal. else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. @@ -1135,12 +1168,12 @@ _ASBOX case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } @@ -1169,7 +1202,7 @@ _ASBOX for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi @@ -1188,7 +1221,7 @@ _ASBOX echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 - rm -f core core.* *.core && + rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 @@ -1268,7 +1301,7 @@ fi # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" @@ -1285,13 +1318,13 @@ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. @@ -1811,7 +1844,6 @@ ac_compiler=`set X $ac_compile; echo $2` (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -1831,8 +1863,8 @@ ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -echo "$as_me:$LINENO: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 @@ -1852,23 +1884,23 @@ do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; + ;; conftest.$ac_ext ) - # This is the source file. - ;; + # This is the source file. + ;; [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; + # We found the default executable, but exeext='' is most + # certainly right. + break;; *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; * ) - break;; + break;; esac done else @@ -1942,8 +1974,8 @@ for ac_file in conftest.exe conftest conftest.*; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; + export ac_cv_exeext + break;; * ) break;; esac done @@ -1968,7 +2000,6 @@ if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2019,7 +2050,6 @@ if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2039,11 +2069,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2056,7 +2096,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi @@ -2072,7 +2112,6 @@ if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2089,11 +2128,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2106,7 +2155,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 @@ -2133,7 +2182,6 @@ else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2161,6 +2209,16 @@ static char *f (char * (*g) (char **, int), char **p, ...) va_end (v); return s; } + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std1 is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std1. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; @@ -2187,11 +2245,21 @@ do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2204,7 +2272,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext +rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC @@ -2232,19 +2300,28 @@ cat >conftest.$ac_ext <<_ACEOF _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ - ''\ - '#include ' \ + '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ @@ -2252,14 +2329,13 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include $ac_declaration +#include int main () { @@ -2270,11 +2346,21 @@ exit (42); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2287,9 +2373,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 continue fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2306,11 +2391,21 @@ exit (42); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2322,7 +2417,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then @@ -2336,7 +2431,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2462,7 +2557,6 @@ if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2482,11 +2576,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2499,7 +2603,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi @@ -2515,7 +2619,6 @@ if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2532,11 +2635,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2549,7 +2662,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 @@ -2569,8 +2682,7 @@ else fi fi for ac_declaration in \ - ''\ - '#include ' \ + '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ @@ -2578,14 +2690,13 @@ for ac_declaration in \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include $ac_declaration +#include int main () { @@ -2596,11 +2707,21 @@ exit (42); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2613,9 +2734,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 continue fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2632,11 +2752,21 @@ exit (42); _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2648,7 +2778,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then @@ -2676,7 +2806,6 @@ if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2727,11 +2856,11 @@ then echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - # cc works too. - : + # cc works too. + : else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi @@ -2782,7 +2911,6 @@ do # 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2793,7 +2921,7 @@ cat >>conftest.$ac_ext <<_ACEOF #else # include #endif - Syntax error + Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -2805,6 +2933,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -2825,7 +2954,6 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2843,6 +2971,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -2889,7 +3018,6 @@ do # 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2900,7 +3028,7 @@ cat >>conftest.$ac_ext <<_ACEOF #else # include #endif - Syntax error + Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -2912,6 +3040,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -2932,7 +3061,6 @@ rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2950,6 +3078,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -3012,7 +3141,6 @@ if test "${ac_cv_prog_gcc_traditional+set}" = set; then else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3032,7 +3160,6 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3075,6 +3202,7 @@ fi # 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. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 @@ -3091,6 +3219,7 @@ do 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. @@ -3098,20 +3227,20 @@ case $as_dir/ in # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if $as_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi + if $as_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 + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi done done ;; @@ -3381,46 +3510,6 @@ else echo "${ECHO_T}no" >&6 fi -# Extract the first word of "awk", so it can be a program name with args. -set dummy awk; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $AWK in - [\\/]* | ?:[\\/]*) - ac_cv_path_AWK="$AWK" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_AWK" && ac_cv_path_AWK="awk" - ;; -esac -fi -AWK=$ac_cv_path_AWK - -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - # Extract the first word of "echo", so it can be a program name with args. set dummy echo; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -3767,6 +3856,7 @@ do done done + test -z "$ac_cv_path_CDRECORD" && ac_cv_path_CDRECORD="cdrecord" ;; esac fi @@ -3780,6 +3870,144 @@ else echo "${ECHO_T}no" >&6 fi +# Extract the first word of "pidof", so it can be a program name with args. +set dummy pidof; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PIDOF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PIDOF in + [\\/]* | ?:[\\/]*) + ac_cv_path_PIDOF="$PIDOF" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PIDOF="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PIDOF" && ac_cv_path_PIDOF="pidof" + ;; +esac +fi +PIDOF=$ac_cv_path_PIDOF + +if test -n "$PIDOF"; then + echo "$as_me:$LINENO: result: $PIDOF" >&5 +echo "${ECHO_T}$PIDOF" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$AWK" && break +done + +# Some AWK programs fail, so test it and warn the user +if echo xfoo | $AWK 'BEGIN { prog=ARGV1; ARGC=1 } + { if ((prog == $2) || (("(" prog ")") == $2) || + (("" prog "") == $2) || + ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :; +else + { { echo "$as_me:$LINENO: error: !!!!!!!!! WARNING !!!!!!!!!!!!!! + The regex engine of $AWK is too broken to be used you + might want to install GNU AWK. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >&5 +echo "$as_me: error: !!!!!!!!! WARNING !!!!!!!!!!!!!! + The regex engine of $AWK is too broken to be used you + might want to install GNU AWK. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >&2;} + { (exit 1); exit 1; }; } +fi +THE_AWK=$AWK +# Extract the first word of "$THE_AWK", so it can be a program name with args. +set dummy $THE_AWK; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $AWK in + [\\/]* | ?:[\\/]*) + ac_cv_path_AWK="$AWK" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_AWK" && ac_cv_path_AWK="$THE_AWK" + ;; +esac +fi +AWK=$ac_cv_path_AWK + +if test -n "$AWK"; then + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ARFLAG" || ARFLAGS="cr" @@ -3851,7 +4079,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` case $host_os in *cygwin* ) CYGWIN=yes;; - * ) CYGWIN=no;; + * ) CYGWIN=no;; esac if test $HAVE_UNAME=yes -a x`uname -s` = xSunOS @@ -4379,6 +4607,7 @@ support_static_fd=no support_static_sd=no support_static_dir=no support_static_cons=no +support_python=no build_client_only=no cats= db_name=Internal @@ -4970,7 +5199,6 @@ if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -4991,11 +5219,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5008,12 +5246,11 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5035,7 +5272,6 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5060,7 +5296,6 @@ if test $ac_cv_header_stdc = yes; then : else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5072,9 +5307,9 @@ cat >>conftest.$ac_ext <<_ACEOF # 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')) + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif @@ -5085,7 +5320,7 @@ main () int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) + || toupper (i) != TOUPPER (i)) exit(2); exit (0); } @@ -5110,7 +5345,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi @@ -5135,7 +5370,7 @@ fi for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h + inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 @@ -5144,7 +5379,6 @@ if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5156,11 +5390,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5173,7 +5417,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -5200,7 +5444,6 @@ else echo "$as_me:$LINENO: checking termcap.h usability" >&5 echo $ECHO_N "checking termcap.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5211,11 +5454,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5228,7 +5481,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -5236,7 +5489,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking termcap.h presence" >&5 echo $ECHO_N "checking termcap.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5254,6 +5506,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -5273,33 +5526,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: termcap.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: termcap.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: termcap.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: termcap.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: termcap.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: termcap.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: termcap.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: termcap.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: termcap.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: termcap.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: termcap.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: termcap.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: termcap.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: termcap.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: termcap.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: termcap.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -5325,7 +5577,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermcap $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5349,11 +5600,21 @@ tgetent (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5366,7 +5627,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_termcap_tgetent=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 @@ -5392,7 +5654,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5416,11 +5677,21 @@ tgetent (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5433,7 +5704,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ncurses_tgetent=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 @@ -5475,7 +5747,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5486,11 +5757,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5503,7 +5784,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -5511,7 +5792,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5529,6 +5809,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -5548,33 +5829,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -5585,7 +5865,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -5606,7 +5886,6 @@ if test "${ac_cv_header_term_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5621,11 +5900,21 @@ cat >>conftest.$ac_ext <<_ACEOF _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5638,7 +5927,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_term_h=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_header_term_h" >&5 echo "${ECHO_T}$ac_cv_header_term_h" >&6 @@ -5651,7 +5940,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5675,11 +5963,21 @@ tgetent (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5692,7 +5990,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_curses_tgetent=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 @@ -5767,7 +6066,6 @@ else echo "$as_me:$LINENO: checking ${with_readline}/readline.h usability" >&5 echo $ECHO_N "checking ${with_readline}/readline.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5778,11 +6076,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5795,7 +6103,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -5803,7 +6111,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking ${with_readline}/readline.h presence" >&5 echo $ECHO_N "checking ${with_readline}/readline.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5821,6 +6128,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -5840,33 +6148,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: ${with_readline}/readline.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: ${with_readline}/readline.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: ${with_readline}/readline.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: ${with_readline}/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: ${with_readline}/readline.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -5877,7 +6184,7 @@ echo $ECHO_N "checking for ${with_readline}/readline.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -5919,7 +6226,6 @@ else echo "$as_me:$LINENO: checking /usr/include/readline/readline.h usability" >&5 echo $ECHO_N "checking /usr/include/readline/readline.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5930,11 +6236,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -5947,7 +6263,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -5955,7 +6271,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking /usr/include/readline/readline.h presence" >&5 echo $ECHO_N "checking /usr/include/readline/readline.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5973,6 +6288,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -5992,33 +6308,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: /usr/include/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: /usr/include/readline/readline.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: /usr/include/readline/readline.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: /usr/include/readline/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: /usr/include/readline/readline.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -6061,7 +6376,6 @@ else echo "$as_me:$LINENO: checking ${TOP_DIR}/depkgs/readline/readline.h usability" >&5 echo $ECHO_N "checking ${TOP_DIR}/depkgs/readline/readline.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6072,11 +6386,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6089,7 +6413,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -6097,7 +6421,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking ${TOP_DIR}/depkgs/readline/readline.h presence" >&5 echo $ECHO_N "checking ${TOP_DIR}/depkgs/readline/readline.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6115,6 +6438,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -6134,33 +6458,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -6171,7 +6494,7 @@ echo $ECHO_N "checking for ${TOP_DIR}/depkgs/readline/readline.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -6225,7 +6548,6 @@ if test "${ac_cv_header_stat_broken+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6292,7 +6614,6 @@ if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6312,11 +6633,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6329,7 +6660,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -6352,7 +6683,6 @@ else ac_func_search_save_LIBS=$LIBS ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6376,11 +6706,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6392,12 +6732,12 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test "$ac_cv_search_opendir" = no; then for ac_lib in dir; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6421,11 +6761,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6438,7 +6788,8 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext done fi LIBS=$ac_func_search_save_LIBS @@ -6459,7 +6810,6 @@ else ac_func_search_save_LIBS=$LIBS ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6483,11 +6833,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6499,12 +6859,12 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test "$ac_cv_search_opendir" = no; then for ac_lib in x; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6528,11 +6888,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6545,7 +6915,8 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext done fi LIBS=$ac_func_search_save_LIBS @@ -6576,21 +6947,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -6621,11 +6999,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6638,7 +7026,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -6661,21 +7050,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -6706,11 +7102,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6723,7 +7129,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -6752,7 +7159,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6763,11 +7169,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -6780,7 +7196,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -6788,7 +7204,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6806,6 +7221,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -6825,33 +7241,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -6862,7 +7277,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -7029,21 +7444,28 @@ if test "${ac_cv_func_socket+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define socket to an innocuous variant, in case declares socket. + For example, HP-UX 11i declares gettimeofday. */ +#define socket innocuous_socket + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char socket (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef socket + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -7074,11 +7496,21 @@ return f != socket; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7091,7 +7523,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_socket=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5 echo "${ECHO_T}$ac_cv_func_socket" >&6 @@ -7108,7 +7541,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lxnet $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -7132,11 +7564,21 @@ socket (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7149,7 +7591,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_xnet_socket=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_socket" >&5 @@ -7172,7 +7615,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -7196,11 +7638,21 @@ socket (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7213,7 +7665,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_socket=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 @@ -7236,7 +7689,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-linet $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -7260,11 +7712,21 @@ socket (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7277,7 +7739,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_inet_socket=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_inet_socket" >&5 @@ -7310,7 +7773,6 @@ if test "${with_tcp_wrappers+set}" = set; then echo "$as_me:$LINENO: checking for libwrap" >&5 echo $ECHO_N "checking for libwrap... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -7330,11 +7792,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7356,7 +7828,6 @@ sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$saved_LIBS -lwrap -lnsl" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -7376,11 +7847,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -7404,10 +7885,12 @@ echo "$as_me: error: *** libwrap missing" >&2;} { (exit 1); exit 1; }; } fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi @@ -7986,21 +8469,28 @@ if test "${ac_cv_func_crypt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define crypt to an innocuous variant, in case declares crypt. + For example, HP-UX 11i declares gettimeofday. */ +#define crypt innocuous_crypt + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char crypt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef crypt + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -8031,24 +8521,35 @@ return f != crypt; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_crypt=yes + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_crypt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_crypt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_crypt" >&5 echo "${ECHO_T}$ac_cv_func_crypt" >&6 @@ -8063,7 +8564,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypt $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8087,11 +8587,21 @@ crypt (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8104,7 +8614,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_crypt_crypt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5 @@ -8516,7 +9027,6 @@ else ac_save_CC="$CC" CC="$CC $ac_cv_sys_largefile_CFLAGS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8533,11 +9043,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8550,7 +9070,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_sys_largefile_CFLAGS=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext CC="$ac_save_CC" esac } @@ -8743,8 +9264,8 @@ _ACEOF # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; 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 + 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 @@ -8804,7 +9325,6 @@ if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8822,6 +9342,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -8852,7 +9373,6 @@ if test "$ac_x_libraries" = no; then ac_save_LIBS=$LIBS LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8869,11 +9389,21 @@ XtMalloc (0) _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8898,7 +9428,8 @@ do done done fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then @@ -8907,7 +9438,7 @@ if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then else # 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" + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi @@ -8954,7 +9485,6 @@ else echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8971,11 +9501,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -8988,7 +9528,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_R_nospace=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test $ac_R_nospace = yes; then echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 @@ -8996,7 +9537,6 @@ echo "${ECHO_T}no" >&6 else LIBS="$ac_xsave_LIBS -R $x_libraries" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9013,11 +9553,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9030,7 +9580,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_R_space=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test $ac_R_space = yes; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 @@ -9056,7 +9607,6 @@ echo "${ECHO_T}neither works" >&6 # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9080,11 +9630,21 @@ XOpenDisplay (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9103,7 +9663,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9127,11 +9686,21 @@ dnet_ntoa (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9144,7 +9713,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_dnet_ntoa=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 @@ -9162,7 +9732,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9186,11 +9755,21 @@ dnet_ntoa (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9203,7 +9782,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_stub_dnet_ntoa=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 @@ -9214,7 +9794,8 @@ fi fi fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f 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, @@ -9231,21 +9812,28 @@ if test "${ac_cv_func_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname innocuous_gethostbyname + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef gethostbyname + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -9276,11 +9864,21 @@ return f != gethostbyname; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9293,7 +9891,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gethostbyname=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 @@ -9307,7 +9906,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9331,11 +9929,21 @@ gethostbyname (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9348,7 +9956,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 @@ -9358,7 +9967,7 @@ if test $ac_cv_lib_nsl_gethostbyname = yes; then fi if test $ac_cv_lib_nsl_gethostbyname = no; then - echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 + echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -9366,7 +9975,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9390,11 +9998,21 @@ gethostbyname (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9407,7 +10025,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_bsd_gethostbyname=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 @@ -9432,21 +10051,28 @@ if test "${ac_cv_func_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef connect + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -9477,11 +10103,21 @@ return f != connect; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9494,7 +10130,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_connect=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 echo "${ECHO_T}$ac_cv_func_connect" >&6 @@ -9508,7 +10145,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9532,11 +10168,21 @@ connect (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9549,7 +10195,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_connect=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 @@ -9567,21 +10214,28 @@ if test "${ac_cv_func_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define remove to an innocuous variant, in case declares remove. + For example, HP-UX 11i declares gettimeofday. */ +#define remove innocuous_remove + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char remove (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef remove + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -9612,11 +10266,21 @@ return f != remove; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9629,7 +10293,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_remove=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 echo "${ECHO_T}$ac_cv_func_remove" >&6 @@ -9643,7 +10308,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9667,11 +10331,21 @@ remove (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9684,7 +10358,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_posix_remove=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 @@ -9702,21 +10377,28 @@ if test "${ac_cv_func_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define shmat to an innocuous variant, in case declares shmat. + For example, HP-UX 11i declares gettimeofday. */ +#define shmat innocuous_shmat + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shmat (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef shmat + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -9747,11 +10429,21 @@ return f != shmat; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9764,7 +10456,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shmat=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 echo "${ECHO_T}$ac_cv_func_shmat" >&6 @@ -9778,7 +10471,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9802,11 +10494,21 @@ shmat (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9819,7 +10521,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ipc_shmat=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 @@ -9848,7 +10551,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9872,11 +10574,21 @@ IceConnectionNumber (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -9889,7 +10601,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ICE_IceConnectionNumber=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 @@ -9974,7 +10687,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9985,11 +10697,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10002,7 +10724,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -10010,7 +10732,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10028,6 +10749,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -10047,33 +10769,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -10084,7 +10805,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -10105,7 +10826,6 @@ if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10126,11 +10846,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10143,12 +10873,11 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10170,7 +10899,6 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10195,7 +10923,6 @@ if test $ac_cv_header_stdc = yes; then : else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10207,9 +10934,9 @@ cat >>conftest.$ac_ext <<_ACEOF # 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')) + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif @@ -10220,7 +10947,7 @@ main () int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) + || toupper (i) != TOUPPER (i)) exit(2); exit (0); } @@ -10245,7 +10972,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi @@ -10265,7 +10992,6 @@ if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10282,11 +11008,21 @@ return makedev(0, 0); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10299,7 +11035,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_types_h_makedev=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5 @@ -10319,7 +11056,6 @@ else echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5 echo $ECHO_N "checking sys/mkdev.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10330,11 +11066,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10347,7 +11093,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -10355,7 +11101,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5 echo $ECHO_N "checking sys/mkdev.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10373,6 +11118,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -10392,33 +11138,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -10459,7 +11204,6 @@ else echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5 echo $ECHO_N "checking sys/sysmacros.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10470,11 +11214,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10487,7 +11241,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -10495,7 +11249,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5 echo $ECHO_N "checking sys/sysmacros.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10513,6 +11266,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -10532,33 +11286,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -10601,7 +11354,6 @@ if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10621,11 +11373,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10638,7 +11400,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -10661,7 +11423,6 @@ else ac_func_search_save_LIBS=$LIBS ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10685,11 +11446,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10701,12 +11472,12 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test "$ac_cv_search_opendir" = no; then for ac_lib in dir; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10730,11 +11501,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10747,7 +11528,8 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext done fi LIBS=$ac_func_search_save_LIBS @@ -10768,7 +11550,6 @@ else ac_func_search_save_LIBS=$LIBS ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10792,28 +11573,38 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_search_opendir="none required" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext if test "$ac_cv_search_opendir" = no; then for ac_lib in x; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10837,11 +11628,21 @@ opendir (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10854,7 +11655,8 @@ else sed 's/^/| /' conftest.$ac_ext >&5 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext done fi LIBS=$ac_func_search_save_LIBS @@ -10874,7 +11676,6 @@ if test "${ac_cv_header_stat_broken+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10933,7 +11734,6 @@ if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10960,11 +11760,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -10977,7 +11787,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_wait_h=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 @@ -10995,7 +11805,6 @@ if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11016,11 +11825,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11033,7 +11852,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6 @@ -11052,7 +11871,6 @@ if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11071,11 +11889,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11087,7 +11915,6 @@ else sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11106,11 +11933,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11123,9 +11960,9 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_blksize=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6 @@ -11149,7 +11986,6 @@ if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11168,11 +12004,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11184,7 +12030,6 @@ else sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11203,11 +12048,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11220,9 +12075,9 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_blocks=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6 @@ -11238,7 +12093,14 @@ cat >>confdefs.h <<\_ACEOF _ACEOF else - LIBOBJS="$LIBOBJS fileblocks.$ac_objext" + case $LIBOBJS in + "fileblocks.$ac_objext" | \ + *" fileblocks.$ac_objext" | \ + "fileblocks.$ac_objext "* | \ + *" fileblocks.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS fileblocks.$ac_objext" ;; +esac + fi @@ -11248,7 +12110,6 @@ if test "${ac_cv_struct_tm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11267,11 +12128,21 @@ struct tm *tp; tp->tm_sec; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11284,7 +12155,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 echo "${ECHO_T}$ac_cv_struct_tm" >&6 @@ -11302,7 +12173,6 @@ if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11324,11 +12194,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11340,7 +12220,6 @@ else sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11362,11 +12241,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11379,9 +12268,9 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_zone=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 @@ -11407,7 +12296,6 @@ if test "${ac_cv_var_tzname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11428,11 +12316,21 @@ atoi(*tzname); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11445,7 +12343,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_var_tzname=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 echo "${ECHO_T}$ac_cv_var_tzname" >&6 @@ -11465,7 +12364,6 @@ if test "${ba_cv_header_utime_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11484,11 +12382,21 @@ struct utimbuf foo _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11501,7 +12409,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ba_cv_header_utime_h=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ba_cv_header_utime_h" >&5 echo "${ECHO_T}$ba_cv_header_utime_h" >&6 @@ -11516,7 +12424,6 @@ if test "${ba_cv_header_socklen_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11535,11 +12442,21 @@ socklen_t x _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11552,7 +12469,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ba_cv_header_socklen_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ba_cv_header_socklen_t" >&5 echo "${ECHO_T}$ba_cv_header_socklen_t" >&6 @@ -11570,7 +12487,6 @@ else ba_cv_bigendian=no else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11598,7 +12514,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ba_cv_bigendian=no fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ba_cv_bigendian" >&5 @@ -11615,7 +12531,6 @@ if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11678,11 +12593,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11695,7 +12620,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 @@ -11714,7 +12639,6 @@ echo $ECHO_N "checking how to get filesystem type... $ECHO_C" >&6 fstype=no # The order of these tests is important. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11733,6 +12657,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -11753,7 +12678,6 @@ fi rm -f conftest.err conftest.$ac_ext if test $fstype = no; then cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11772,6 +12696,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -11793,7 +12718,6 @@ rm -f conftest.err conftest.$ac_ext fi if test $fstype = no; then cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11812,6 +12736,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -11833,7 +12758,6 @@ rm -f conftest.err conftest.$ac_ext fi if test $fstype = no; then cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11851,6 +12775,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -11872,7 +12797,6 @@ rm -f conftest.err conftest.$ac_ext fi if test $fstype = no; then cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11893,7 +12817,6 @@ rm -f conftest* fi if test $fstype = no; then cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11912,6 +12835,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -11940,7 +12864,6 @@ if test "${ac_cv_type_signal+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11967,11 +12890,21 @@ int i; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -11984,7 +12917,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_signal=int fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6 @@ -12002,7 +12935,6 @@ if test "${bash_cv_signal_vintage+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12025,11 +12957,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12042,7 +12984,6 @@ sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12062,11 +13003,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12079,7 +13030,6 @@ sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12102,11 +13052,21 @@ main () _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12120,13 +13080,16 @@ sed 's/^/| /' conftest.$ac_ext >&5 bash_cv_signal_vintage=v7 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi @@ -12155,7 +13118,6 @@ if test "${ac_cv_type_mode_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12175,11 +13137,21 @@ if (sizeof (mode_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12192,7 +13164,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_mode_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 echo "${ECHO_T}$ac_cv_type_mode_t" >&6 @@ -12212,7 +13184,6 @@ if test "${ac_cv_type_uid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12251,7 +13222,6 @@ if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12271,11 +13241,21 @@ if (sizeof (size_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12288,7 +13268,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 @@ -12308,7 +13288,6 @@ if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12328,11 +13307,21 @@ if (sizeof (pid_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12345,7 +13334,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6 @@ -12365,7 +13354,6 @@ if test "${ac_cv_type_off_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12385,11 +13373,21 @@ if (sizeof (off_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12402,7 +13400,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_off_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 echo "${ECHO_T}$ac_cv_type_off_t" >&6 @@ -12422,7 +13420,6 @@ if test "${ac_cv_type_ino_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12442,11 +13439,21 @@ if (sizeof (ino_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12459,7 +13466,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_ino_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 echo "${ECHO_T}$ac_cv_type_ino_t" >&6 @@ -12479,7 +13486,6 @@ if test "${ac_cv_type_dev_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12499,11 +13505,21 @@ if (sizeof (dev_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12516,7 +13532,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_dev_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5 echo "${ECHO_T}$ac_cv_type_dev_t" >&6 @@ -12536,7 +13552,6 @@ if test "${ac_cv_type_daddr_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12556,11 +13571,21 @@ if (sizeof (daddr_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12573,7 +13598,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_daddr_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_daddr_t" >&5 echo "${ECHO_T}$ac_cv_type_daddr_t" >&6 @@ -12593,7 +13618,6 @@ if test "${ac_cv_type_major_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12613,11 +13637,21 @@ if (sizeof (major_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12630,7 +13664,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_major_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_major_t" >&5 echo "${ECHO_T}$ac_cv_type_major_t" >&6 @@ -12650,7 +13684,6 @@ if test "${ac_cv_type_minor_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12670,11 +13703,21 @@ if (sizeof (minor_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12687,7 +13730,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_minor_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_minor_t" >&5 echo "${ECHO_T}$ac_cv_type_minor_t" >&6 @@ -12707,7 +13750,6 @@ if test "${ac_cv_type_ssize_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12727,11 +13769,21 @@ if (sizeof (ssize_t)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12744,7 +13796,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_ssize_t=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 @@ -12764,7 +13816,6 @@ if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12783,11 +13834,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12799,7 +13860,6 @@ else sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12818,11 +13878,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12835,9 +13905,9 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_blocks=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6 @@ -12853,7 +13923,14 @@ cat >>confdefs.h <<\_ACEOF _ACEOF else - LIBOBJS="$LIBOBJS fileblocks.$ac_objext" + case $LIBOBJS in + "fileblocks.$ac_objext" | \ + *" fileblocks.$ac_objext" | \ + "fileblocks.$ac_objext "* | \ + *" fileblocks.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS fileblocks.$ac_objext" ;; +esac + fi @@ -12864,7 +13941,6 @@ if test "${ac_cv_member_struct_stat_st_rdev+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12883,23 +13959,32 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_stat_st_rdev=yes -else + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_rdev=yes +else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12918,11 +14003,21 @@ return 0; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12935,9 +14030,9 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_rdev=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_rdev" >&5 echo "${ECHO_T}$ac_cv_member_struct_stat_st_rdev" >&6 @@ -12961,7 +14056,6 @@ if test "${ac_cv_struct_tm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -12980,11 +14074,21 @@ struct tm *tp; tp->tm_sec; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -12997,7 +14101,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 echo "${ECHO_T}$ac_cv_struct_tm" >&6 @@ -13015,7 +14119,6 @@ if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13078,11 +14181,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13095,7 +14208,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 @@ -13115,7 +14228,6 @@ if test "${ac_cv_type_char+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13135,11 +14247,21 @@ if (sizeof (char)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13152,7 +14274,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_char=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5 echo "${ECHO_T}$ac_cv_type_char" >&6 @@ -13170,7 +14292,6 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13189,11 +14310,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13202,7 +14333,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13221,11 +14351,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13237,20 +14377,19 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13269,11 +14408,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13282,7 +14431,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13301,11 +14449,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13317,13 +14475,13 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 @@ -13331,14 +14489,13 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13357,11 +14514,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13374,7 +14541,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_char=$ac_lo;; @@ -13393,7 +14560,6 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13455,7 +14621,7 @@ echo "$as_me: error: cannot compute sizeof (char), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val @@ -13476,7 +14642,6 @@ if test "${ac_cv_type_short_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13496,11 +14661,21 @@ if (sizeof (short int)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13513,7 +14688,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_short_int=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_short_int" >&5 echo "${ECHO_T}$ac_cv_type_short_int" >&6 @@ -13531,7 +14706,6 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13550,11 +14724,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13563,7 +14747,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13582,11 +14765,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13598,20 +14791,19 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13630,11 +14822,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13643,7 +14845,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13662,11 +14863,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13678,13 +14889,13 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 @@ -13692,14 +14903,13 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13718,11 +14928,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13735,7 +14955,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_short_int=$ac_lo;; @@ -13754,7 +14974,6 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13816,7 +15035,7 @@ echo "$as_me: error: cannot compute sizeof (short int), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val @@ -13837,7 +15056,6 @@ if test "${ac_cv_type_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13857,11 +15075,21 @@ if (sizeof (int)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13874,7 +15102,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 echo "${ECHO_T}$ac_cv_type_int" >&6 @@ -13892,7 +15120,6 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13911,11 +15138,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13924,7 +15161,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13943,11 +15179,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -13959,20 +15205,19 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13991,11 +15236,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14004,7 +15259,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14023,11 +15277,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14039,13 +15303,13 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 @@ -14053,14 +15317,13 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14079,11 +15342,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14096,7 +15369,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int=$ac_lo;; @@ -14115,7 +15388,6 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14177,7 +15449,7 @@ echo "$as_me: error: cannot compute sizeof (int), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val @@ -14198,7 +15470,6 @@ if test "${ac_cv_type_long_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14218,11 +15489,21 @@ if (sizeof (long int)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14235,7 +15516,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_int=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_long_int" >&5 echo "${ECHO_T}$ac_cv_type_long_int" >&6 @@ -14253,7 +15534,6 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14272,11 +15552,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14285,7 +15575,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14304,11 +15593,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14320,20 +15619,19 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14352,11 +15650,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14365,7 +15673,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14384,11 +15691,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14400,13 +15717,13 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 @@ -14414,14 +15731,13 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14440,11 +15756,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14457,7 +15783,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long_int=$ac_lo;; @@ -14476,7 +15802,6 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14538,7 +15863,7 @@ echo "$as_me: error: cannot compute sizeof (long int), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val @@ -14559,7 +15884,6 @@ if test "${ac_cv_type_long_long_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14579,11 +15903,21 @@ if (sizeof (long long int)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14596,7 +15930,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long_int=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5 echo "${ECHO_T}$ac_cv_type_long_long_int" >&6 @@ -14614,7 +15948,6 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14633,11 +15966,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14646,7 +15989,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14665,11 +16007,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14681,20 +16033,19 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14713,11 +16064,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14726,7 +16087,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14745,11 +16105,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14761,13 +16131,13 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 @@ -14775,14 +16145,13 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14801,11 +16170,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14818,7 +16197,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long_long_int=$ac_lo;; @@ -14837,7 +16216,6 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14899,7 +16277,7 @@ echo "$as_me: error: cannot compute sizeof (long long int), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val @@ -14920,7 +16298,6 @@ if test "${ac_cv_type_int_p+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14940,11 +16317,21 @@ if (sizeof (int *)) _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -14957,7 +16344,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int_p=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_int_p" >&5 echo "${ECHO_T}$ac_cv_type_int_p" >&6 @@ -14975,7 +16362,6 @@ else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14994,11 +16380,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15007,7 +16403,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15026,11 +16421,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15042,20 +16447,19 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15074,11 +16478,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15087,7 +16501,6 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15106,11 +16519,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15122,13 +16545,13 @@ else sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 @@ -15136,14 +16559,13 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15162,11 +16584,21 @@ test_array [0] = 0 _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15179,7 +16611,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int_p=$ac_lo;; @@ -15198,7 +16630,6 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15260,7 +16691,7 @@ echo "$as_me: error: cannot compute sizeof (int *), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val @@ -15284,7 +16715,6 @@ if test "${ac_cv_have_u_int+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15301,11 +16731,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15319,7 +16759,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_u_int="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_u_int" >&5 @@ -15339,7 +16779,6 @@ if test "${ac_cv_have_intmax_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15356,11 +16795,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15373,7 +16822,6 @@ sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15390,11 +16838,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15408,11 +16866,11 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_intmax_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi @@ -15434,7 +16892,6 @@ if test "${ac_cv_have_u_intmax_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15451,11 +16908,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15468,7 +16935,6 @@ sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15485,11 +16951,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15503,11 +16979,11 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_u_intmax_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_u_intmax_t" >&5 @@ -15528,7 +17004,6 @@ if test "${ac_cv_have_intxx_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15545,11 +17020,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15563,7 +17048,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_intxx_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_intxx_t" >&5 @@ -15583,7 +17068,6 @@ if test "${ac_cv_have_int64_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15600,11 +17084,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15618,7 +17112,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_int64_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_int64_t" >&5 @@ -15638,7 +17132,6 @@ if test "${ac_cv_have_u_intxx_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15655,11 +17148,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15673,7 +17176,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_u_intxx_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_u_intxx_t" >&5 @@ -15693,7 +17196,6 @@ if test "${ac_cv_have_u_int64_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15710,11 +17212,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15728,7 +17240,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_u_int64_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_u_int64_t" >&5 @@ -15747,7 +17259,6 @@ then echo "$as_me:$LINENO: checking for intXX_t and u_intXX_t types in sys/bitypes.h" >&5 echo $ECHO_N "checking for intXX_t and u_intXX_t types in sys/bitypes.h... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15766,11 +17277,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15798,7 +17319,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 echo "${ECHO_T}no" >&6 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi if test -z "$have_u_intxx_t" ; then @@ -15809,7 +17330,6 @@ if test "${ac_cv_have_uintxx_t+set}" = set; then else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15827,11 +17347,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15845,7 +17375,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_uintxx_t="no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_uintxx_t" >&5 @@ -15864,7 +17394,6 @@ then echo "$as_me:$LINENO: checking for int64_t and u_int64_t types in sys/bitypes.h" >&5 echo $ECHO_N "checking for int64_t and u_int64_t types in sys/bitypes.h... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15882,11 +17411,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15910,7 +17449,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 echo "${ECHO_T}no" >&6 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi if (test -z "$have_uintxx_t" && \ @@ -15919,7 +17458,6 @@ then echo "$as_me:$LINENO: checking for uintXX_t types in sys/bitypes.h" >&5 echo $ECHO_N "checking for uintXX_t types in sys/bitypes.h... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -15937,11 +17475,21 @@ main () _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -15961,7 +17509,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 echo "${ECHO_T}no" >&6 fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi @@ -16004,21 +17552,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16049,11 +17604,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16066,7 +17631,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16092,21 +17658,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16137,11 +17710,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16154,7 +17737,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16179,21 +17763,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16224,11 +17815,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16241,7 +17842,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16267,21 +17869,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16312,11 +17921,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16329,7 +17948,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16346,7 +17966,8 @@ done -for ac_func in snprintf vsnprintf gethostid getdomainname + +for ac_func in snprintf vsnprintf gethostid getdomainname fseeko do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -16355,21 +17976,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16400,11 +18028,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16417,7 +18055,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16443,21 +18082,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16488,11 +18134,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16505,7 +18161,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16525,21 +18182,28 @@ if test "${ac_cv_func_gethostbyname_r+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define gethostbyname_r to an innocuous variant, in case declares gethostbyname_r. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname_r innocuous_gethostbyname_r + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname_r (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef gethostbyname_r + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16570,11 +18234,21 @@ return f != gethostbyname_r; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16587,7 +18261,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gethostbyname_r=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname_r" >&5 echo "${ECHO_T}$ac_cv_func_gethostbyname_r" >&6 @@ -16604,7 +18279,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16628,11 +18302,21 @@ gethostbyname_r (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16645,7 +18329,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname_r=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname_r" >&5 @@ -16668,7 +18353,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -16692,11 +18376,21 @@ gethostbyname_r (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16709,7 +18403,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_resolv_gethostbyname_r=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname_r" >&5 @@ -16738,21 +18433,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16783,11 +18485,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16800,7 +18512,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16825,21 +18538,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16870,11 +18590,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16887,7 +18617,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16912,21 +18643,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -16957,11 +18695,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16974,7 +18722,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -16996,7 +18745,6 @@ if test "${ac_cv_struct_sockaddr_sa_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17013,11 +18761,21 @@ struct sockaddr s; s.sa_len; _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17030,7 +18788,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_sockaddr_sa_len=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_struct_sockaddr_sa_len" >&5 echo "${ECHO_T}$ac_cv_struct_sockaddr_sa_len" >&6 @@ -17050,7 +18808,6 @@ if test "${ac_cv_ipv6_support+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17070,11 +18827,21 @@ struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_ad _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17087,7 +18854,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_ipv6_support=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_ipv6_support" >&5 echo "${ECHO_T}$ac_cv_ipv6_support" >&6 @@ -17112,21 +18880,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -17157,11 +18932,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17174,7 +18959,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -17193,7 +18979,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17217,11 +19002,21 @@ strftime (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17234,7 +19029,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_strftime=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 @@ -17260,21 +19056,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -17305,11 +19108,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17322,7 +19135,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -17337,21 +19151,28 @@ if test "${ac_cv_func__doprnt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define _doprnt to an innocuous variant, in case declares _doprnt. + For example, HP-UX 11i declares gettimeofday. */ +#define _doprnt innocuous__doprnt + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef _doprnt + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -17382,11 +19203,21 @@ return f != _doprnt; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17399,7 +19230,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func__doprnt=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 echo "${ECHO_T}$ac_cv_func__doprnt" >&6 @@ -17423,7 +19255,6 @@ if test "${ac_cv_working_alloca_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17440,11 +19271,21 @@ char *p = (char *) alloca (2 * sizeof (int)); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17457,7 +19298,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_working_alloca_h=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 @@ -17475,7 +19317,6 @@ if test "${ac_cv_func_alloca_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17512,11 +19353,21 @@ char *p = (char *) alloca (1); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17529,7 +19380,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_alloca_works=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 @@ -17559,7 +19411,6 @@ if test "${ac_cv_os_cray+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17592,21 +19443,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -17637,11 +19495,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17654,7 +19522,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -17679,7 +19548,6 @@ else ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17725,7 +19593,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 @@ -17747,7 +19615,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lsun $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17771,11 +19638,21 @@ getmntent (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17788,7 +19665,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_sun_getmntent=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getmntent" >&5 @@ -17804,7 +19682,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lseq $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17828,11 +19705,21 @@ getmntent (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17845,7 +19732,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_seq_getmntent=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_seq_getmntent" >&5 @@ -17861,7 +19749,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lgen $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17885,11 +19772,21 @@ getmntent (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17902,7 +19799,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gen_getmntent=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getmntent" >&5 @@ -17925,21 +19823,28 @@ if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -17970,11 +19875,21 @@ return f != $ac_func; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -17987,7 +19902,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 @@ -18009,7 +19925,6 @@ else ac_cv_func_closedir_void=yes else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18049,7 +19964,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_closedir_void=yes fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 @@ -18073,7 +19988,6 @@ echo "$as_me: error: cannot check setpgrp when cross compiling" >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18114,7 +20028,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_setpgrp_void=yes fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_func_setpgrp_void" >&5 @@ -18126,79 +20040,7 @@ cat >>confdefs.h <<\_ACEOF _ACEOF fi - echo "$as_me:$LINENO: checking for working POSIX fnmatch" >&5 -echo $ECHO_N "checking for working POSIX fnmatch... $ECHO_C" >&6 -if test "${ac_cv_func_fnmatch_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Some versions of Solaris, SCO, and the GNU C Library - # have a broken or incompatible fnmatch. - # So we run a test program. If we are cross-compiling, take no chance. - # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. - if test "$cross_compiling" = yes; then - ac_cv_func_fnmatch_works=cross -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -# define y(a, b, c) (fnmatch (a, b, c) == 0) -# define n(a, b, c) (fnmatch (a, b, c) == FNM_NOMATCH) - -int -main () -{ -exit - (!(y ("a*", "abc", 0) - && n ("d*/*1", "d/s/1", FNM_PATHNAME) - && y ("a\\\\bc", "abc", 0) - && n ("a\\\\bc", "abc", FNM_NOESCAPE) - && y ("*x", ".x", 0) - && n ("*x", ".x", FNM_PERIOD) - && 1)); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_fnmatch_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_fnmatch_works=no -fi -rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_works" >&5 -echo "${ECHO_T}$ac_cv_func_fnmatch_works" >&6 -if test $ac_cv_func_fnmatch_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_FNMATCH 1 -_ACEOF - -fi - - - + # AC_FUNC_FNMATCH dnl use local version echo "$as_me:$LINENO: checking for setlocale in -lxpg4" >&5 @@ -18209,7 +20051,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lxpg4 $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18233,11 +20074,21 @@ setlocale (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18250,7 +20101,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_xpg4_setlocale=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_xpg4_setlocale" >&5 @@ -18270,7 +20122,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lsun $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18294,11 +20145,21 @@ getpwnam (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18311,7 +20172,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_sun_getpwnam=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwnam" >&5 @@ -18343,7 +20205,6 @@ else echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18354,11 +20215,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18371,7 +20242,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -18379,7 +20250,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18397,6 +20267,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -18416,33 +20287,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -18453,7 +20323,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - eval "$as_ac_Header=$ac_header_preproc" + eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 @@ -18476,7 +20346,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18500,11 +20369,21 @@ deflate (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18517,7 +20396,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_deflate=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5 @@ -18548,7 +20428,6 @@ else echo "$as_me:$LINENO: checking sys/acl.h usability" >&5 echo $ECHO_N "checking sys/acl.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18559,11 +20438,21 @@ $ac_includes_default _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18576,7 +20465,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 @@ -18584,7 +20473,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6 echo "$as_me:$LINENO: checking sys/acl.h presence" >&5 echo $ECHO_N "checking sys/acl.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18602,6 +20490,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi @@ -18621,33 +20510,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) { echo "$as_me:$LINENO: WARNING: sys/acl.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/acl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/acl.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/acl.h: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + { echo "$as_me:$LINENO: WARNING: sys/acl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/acl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) { echo "$as_me:$LINENO: WARNING: sys/acl.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/acl.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/acl.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/acl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/acl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/acl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/acl.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/acl.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/acl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/acl.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -18674,7 +20562,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lacl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18698,11 +20585,21 @@ acl_get_file (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18715,7 +20612,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_acl_acl_get_file=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_acl_acl_get_file" >&5 @@ -18742,7 +20640,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18766,11 +20663,21 @@ pthread_create (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18783,7 +20690,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread_pthread_create=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 @@ -18799,7 +20707,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18823,11 +20730,21 @@ pthread_create (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18840,7 +20757,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthreads_pthread_create=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_pthread_create" >&5 @@ -18856,7 +20774,6 @@ else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18880,11 +20797,21 @@ pthread_create (); _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18897,7 +20824,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_c_r_pthread_create=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_create" >&5 @@ -18911,21 +20839,28 @@ if test "${ac_cv_func_pthread_create+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Define pthread_create to an innocuous variant, in case declares pthread_create. + For example, HP-UX 11i declares gettimeofday. */ +#define pthread_create innocuous_pthread_create + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pthread_create (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + +#undef pthread_create + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" @@ -18956,11 +20891,21 @@ return f != pthread_create; _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -18973,7 +20918,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_pthread_create=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_pthread_create" >&5 echo "${ECHO_T}$ac_cv_func_pthread_create" >&6 @@ -19289,7 +21235,7 @@ if test "x${subsysdir}" = "x${sbindir}" ; then exit 1 fi - ac_config_files="$ac_config_files autoconf/Make.common Makefile rescue/Makefile rescue/linux/Makefile rescue/linux/floppy/Makefile rescue/linux/cdrom/Makefile rescue/linux/cdrom/bacula/Makefile rescue/freebsd/Makefile rescue/solaris/Makefile scripts/startmysql scripts/stopmysql scripts/btraceback scripts/startit scripts/stopit scripts/bconsole scripts/gconsole scripts/bacula scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/bacula.desktop.gnome1 scripts/bacula.desktop.gnome2 scripts/bacula.desktop.gnome1.consolehelper scripts/bacula.desktop.gnome2.consolehelper scripts/bacula.desktop.gnome1.xsu scripts/bacula.desktop.gnome2.xsu scripts/gnome-console.console_apps scripts/mtx-changer scripts/bacula-tray-monitor.desktop doc/Makefile src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/gnome-console/Makefile src/gnome-console/gnome-console.conf src/gnome2-console/Makefile src/gnome2-console/gnome-console.conf src/wx-console/Makefile src/wx-console/wx-console.conf src/tray-monitor/Makefile src/tray-monitor/tray-monitor.conf src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/filed/win32/Makefile src/cats/Makefile src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite_database src/cats/update_sqlite_tables src/cats/make_sqlite_tables src/cats/grant_sqlite_privileges src/cats/drop_sqlite_tables src/cats/drop_sqlite_database src/cats/sqlite src/cats/mysql src/cats/create_bdb_database src/cats/update_bdb_tables src/cats/make_bdb_tables src/cats/grant_bdb_privileges src/cats/drop_bdb_tables src/cats/drop_bdb_database src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/findlib/Makefile src/tools/Makefile src/win32/winbacula.nsi src/win32/baculafd/bacula-fd.conf src/win32/Makefile src/win32/console/bconsole.conf src/win32/wx-console/wx-console.conf src/win32/pebuilder/Makefile src/bimagemgr/Makefile src/bimagemgr/bacula-bimagemgr.spec $PFILES" + ac_config_files="$ac_config_files autoconf/Make.common Makefile rescue/Makefile rescue/linux/Makefile rescue/linux/floppy/Makefile rescue/linux/cdrom/Makefile rescue/linux/cdrom/bacula/Makefile rescue/freebsd/Makefile rescue/solaris/Makefile scripts/startmysql scripts/stopmysql scripts/btraceback scripts/startit scripts/stopit scripts/bconsole scripts/gconsole scripts/bacula scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/bacula.desktop.gnome1 scripts/bacula.desktop.gnome2 scripts/bacula.desktop.gnome1.consolehelper scripts/bacula.desktop.gnome2.consolehelper scripts/bacula.desktop.gnome1.xsu scripts/bacula.desktop.gnome2.xsu scripts/gnome-console.console_apps scripts/mtx-changer scripts/bacula-tray-monitor.desktop scripts/logwatch/Makefile scripts/logwatch/logfile.bacula.conf doc/Makefile src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/gnome-console/Makefile src/gnome-console/gnome-console.conf src/gnome2-console/Makefile src/gnome2-console/gnome-console.conf src/wx-console/Makefile src/wx-console/wx-console.conf src/tray-monitor/Makefile src/tray-monitor/tray-monitor.conf src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/filed/win32/Makefile src/cats/Makefile src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite_database src/cats/update_sqlite_tables src/cats/make_sqlite_tables src/cats/grant_sqlite_privileges src/cats/drop_sqlite_tables src/cats/drop_sqlite_database src/cats/sqlite src/cats/mysql src/cats/create_bdb_database src/cats/update_bdb_tables src/cats/make_bdb_tables src/cats/grant_bdb_privileges src/cats/drop_bdb_tables src/cats/drop_bdb_database src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/findlib/Makefile src/tools/Makefile src/win32/winbacula.nsi src/win32/baculafd/bacula-fd.conf src/win32/Makefile src/win32/console/bconsole.conf src/win32/wx-console/wx-console.conf src/win32/pebuilder/Makefile src/bimagemgr/Makefile src/bimagemgr/bacula-bimagemgr.spec $PFILES" ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -19319,13 +21265,13 @@ _ACEOF # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | @@ -19355,13 +21301,13 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ + ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; +s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; -s/^[^=]*=[ ]*$//; +s/^[^=]*=[ ]*$//; }' fi @@ -19372,7 +21318,7 @@ ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' @@ -19416,9 +21362,10 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi +DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false @@ -19437,7 +21384,7 @@ for as_var in \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var @@ -19616,16 +21563,17 @@ rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS @@ -19652,7 +21600,7 @@ _ASBOX cat >&5 <<_CSEOF This file was extended by $as_me, which was -generated by GNU Autoconf 2.57. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -19696,9 +21644,9 @@ Usage: $0 [OPTIONS] [FILE]... -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] - instantiate the configuration file FILE + instantiate the configuration file FILE --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + instantiate the configuration header FILE Configuration files: $config_files @@ -19715,11 +21663,10 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.57, +configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir @@ -19847,6 +21794,8 @@ do "scripts/gnome-console.console_apps" ) CONFIG_FILES="$CONFIG_FILES scripts/gnome-console.console_apps" ;; "scripts/mtx-changer" ) CONFIG_FILES="$CONFIG_FILES scripts/mtx-changer" ;; "scripts/bacula-tray-monitor.desktop" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula-tray-monitor.desktop" ;; + "scripts/logwatch/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/logwatch/Makefile" ;; + "scripts/logwatch/logfile.bacula.conf" ) CONFIG_FILES="$CONFIG_FILES scripts/logwatch/logfile.bacula.conf" ;; "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/host.h" ) CONFIG_FILES="$CONFIG_FILES src/host.h" ;; @@ -20028,7 +21977,6 @@ s,@MV@,$MV,;t t s,@RM@,$RM,;t t s,@CP@,$CP,;t t s,@SED@,$SED,;t t -s,@AWK@,$AWK,;t t s,@ECHO@,$ECHO,;t t s,@CMP@,$CMP,;t t s,@TBL@,$TBL,;t t @@ -20038,6 +21986,8 @@ s,@MTX@,$MTX,;t t s,@PKGCONFIG@,$PKGCONFIG,;t t s,@WXCONFIG@,$WXCONFIG,;t t s,@CDRECORD@,$CDRECORD,;t t +s,@PIDOF@,$PIDOF,;t t +s,@AWK@,$AWK,;t t s,@ARFLAGS@,$ARFLAGS,;t t s,@MAKE_SHELL@,$MAKE_SHELL,;t t s,@LOCAL_LIBS@,$LOCAL_LIBS,;t t @@ -20212,9 +22162,9 @@ _ACEOF (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end @@ -20232,21 +22182,21 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -20262,10 +22212,10 @@ echo X"$ac_file" | as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -20303,12 +22253,45 @@ case $srcdir in ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac case $INSTALL in @@ -20330,7 +22313,7 @@ echo "$as_me: creating $ac_file" >&6;} configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." + sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. @@ -20339,24 +22322,24 @@ echo "$as_me: creating $ac_file" >&6;} case $f in -) echo $tmp/stdin ;; [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - echo $f;; + echo "$f";; *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - fi;; + fi;; esac done` || { (exit 1); exit 1; } _ACEOF @@ -20398,12 +22381,12 @@ cat >>$CONFIG_STATUS <<\_ACEOF # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' @@ -20412,11 +22395,11 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac @@ -20430,28 +22413,29 @@ echo "$as_me: creating $ac_file" >&6;} case $f in -) echo $tmp/stdin ;; [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - echo $f;; + # Do quote $f, to prevent DOS paths from being IFS'd. + echo "$f";; *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } - fi;; + fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF @@ -20474,9 +22458,9 @@ s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times @@ -20490,13 +22474,13 @@ rm -f confdef2sed.sed # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail @@ -20505,7 +22489,7 @@ do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS @@ -20532,7 +22516,7 @@ do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS @@ -20566,10 +22550,10 @@ echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -20585,10 +22569,10 @@ echo X"$ac_file" | as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } @@ -20620,16 +22604,41 @@ for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. if test "$ac_dir" != .; then @@ -20655,12 +22664,45 @@ case $srcdir in ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 @@ -20831,4 +22873,4 @@ cat config.out # old stuff # cweb support: ${got_cweb} ${CWEB_SRC} - # gmp support: ${got_gmp} ${GMP_SRC} +# gmp support: ${got_gmp} ${GMP_SRC} diff --git a/bacula/examples/conf/fileset_convert.pl b/bacula/examples/conf/fileset_convert.pl new file mode 100755 index 0000000000..f39a00d2ba --- /dev/null +++ b/bacula/examples/conf/fileset_convert.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl +# +# A nice little script written by Matt Howard that will +# convert old style Bacula FileSets into the new style. +# +# fileset_convert.pl bacula-dir.conf >output-file +# +use warnings; +use strict; + +my $in; +$in .= $_ while (<>); + +sub options { + return "Options { ".join('; ',split(/\s+/, shift)) . " } "; +} + +sub file_lines { + return join($/, map {" File = $_"} split(/\n\s*/, shift)); +} + +$in =~ s/Include\s*=\s*((?:\w+=\w+\s+)*){\s*((?:.*?\n)+?)\s*}/ + "Include { " . + ( $1 ? options($1) : '' ) . "\n" . + file_lines($2) . + "\n }\n" /eg; + +$in =~ s/Exclude\s*=\s*{\s*((?:.*?\n)+?)\s*}/ + "Exclude {\n" . file_lines($1) . "\n }\n"/eg; + +print $in; diff --git a/bacula/kernstodo b/bacula/kernstodo index 683cd3a5fc..8816726bd6 100644 --- a/bacula/kernstodo +++ b/bacula/kernstodo @@ -1,5 +1,5 @@ Kern's ToDo List - 18 November 2004 + 20 October 2004 Major development: Project Developer @@ -7,51 +7,15 @@ Project Developer IPv6_2 Meno Abels Data encryption Meno Abels (see projects) Communication encryption Meno Abels -Version 1.37 Kern (see below) +Version 1.35 Kern (see below) ======================================================== -For 1.36.1: -- Fix orphanned buffers: - Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c - Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c -- Add dump of VolSessionId/Time and FileIndex with bls. - -1.37 Projects: -#3 Migration (Move, Copy, Archive Jobs) -#4 Embedded Python Scripting -#5 Events that call a Python program -#6 Select one from among Multiple Storage Devices for Job -#7 Single Job Writing to Multiple Storage Devices - - -1.37 Possibilities: -- Document testing -- Add performance testing hooks -- if 2 concurrent backups are attempted on the same tape - drive (autoloader) into different tape pools, one of them will exit - fatally instead of halting until the drive is idle -- Add seconds to start and end times in the Job report output. -- Add disk seeking on restore. -- Document that ChangerDevice is used for Alert command. -- Include within include does it work? -- Implement a Pool of type Cleaning? -- Implement VolReadTime and VolWriteTime in SD -- Modify Backing up Your Database to include a bootstrap file. -- Add restore of specific JobId to regression. -- Think about making certain database errors fatal. -- Look at correcting the time jump in the sceduler for daylight - savings time changes. -- Add a "real" timer to network connections. -- Tell the "restore" user when browsing is no longer possible. -- Write non-optimized bsrs from the JobMedia and Media records, - even after Files are pruned. -- Document that Bootstrap files can be written with cataloging - turned off. -- Look at adding full Volume and Pool information to a Volume - label so that bscan can get *all* the info. -- Promote to Full = Time period -- Scratch Pool where the volumes can be re-assigned to any Pool. -- Update StartTime if job held in Job Queue. +1.35 Items to do for release: +- Finish recovering from a disaster situation. + - How to get back a catalog. + + +Maybe for 1.35: - Despool attributes simultaneously with data in a separate thread, rejoined at end of data spooling. - Implement Files/Bytes,... stats for restore job. @@ -66,6 +30,7 @@ For 1.36.1: - Add IPv6 to regression - Perhaps add read/write programs and/or plugins to FileSets. - How to handle backing up portables ... +- Add "Rerun failed levels = yes/no" to Job resource. - Add some sort of guaranteed Interval for upgrading jobs. - Can we write the state file after every job terminates? On Win32 the system crashes and the state file is not updated. @@ -111,18 +76,70 @@ For 1.37 Testing/Documentation: up through the prompt. - Detect fixed tape block mode during positioning by looking at block numbers in btape "test". Possibly adjust in Bacula. +- Implement a Client filename case fold option (default = fold + on Win32). - Fix list volumes to output volume retention in some other units, perhaps via a directive. - If opening a tape in read/write mode fails attempt to open it in read-only mode, and mark the tape for read only. - Add a read-only mode to the mount option. +- Add "Allow multiple connections" in Catalog resource to open a new + database connection for each job. - Allow Simultaneous Priorities = yes => run up to Max concurrent jobs even with multiple priorities. +- Fix find_device in stored/dircmd.c:462 (see code) - Add db check test to regression. Test each function like delete, purge, ... - If you use restore replace=never, the directory attributes for non-existent directories will not be restored properly. +Fix: + Kern, + mt status and tapeinfo output are attached. Default blocksize was + originally 512 bytes. I ran the following test on my machine: + + - set defblksize to 512 + - started bacula, labelled tape, ran job + - job completes with the following in log + SD termination status: OK + Termination: Backup OK + - restore attempts with blocksize set to 0 or 512 result in the familiar + "Volume data error! Wanted block-id BB02, got . Buffer discarded." + + + # tapeinfo -f /dev/sg0 + Product Type: Tape Drive + Vendor ID: 'SONY ' + Product ID: 'TSL-11000 ' + Revision: 'L100' + Attached Changer: Yes + SerialNumber: '0010000443' + MinBlock:1 + MaxBlock:16777215 + SCSI ID: 1 + SCSI LUN: 0 + Ready: yes + BufferedMode: yes + Medium Type: Not Loaded + Density Code: 0x26 + BlockSize: 512 + DataCompEnabled: no + DataCompCapable: yes + DataDeCompEnabled: yes + CompType: 0x20 + DeCompType: 0x20 + BOP: yes + Block Position: 0 + + # mt -f /dev/nst0 status + SCSI 2 tape drive: + File number=0, block number=132, partition=0. + Tape block size 512 bytes. Density code 0x26 (DDS-4 or QIC-4GB). + Soft error count since last status=0 + General status bits on (1010000): + ONLINE IM_REP_EN + +Wish list: - see lzma401.zip in others directory for new compression algorithm/library. - Minimal autochanger handling in Bacula and in btape. @@ -189,6 +206,9 @@ For 1.37 Testing/Documentation: - Make ? do a help command (no return needed). - Implement restore directory. - Document streams and how to implement them. +- Possibly implement "Ensure Full Backup = yes" looks for a failed full backup + and upgrades the current backup if one exists. +- Check that barcode reading and update slots scan works. - Try not to re-backup a file if a new hard link is added. - Add feature to backup hard links only, but not the data. - Fix stream handling to be simpler. @@ -196,6 +216,8 @@ For 1.37 Testing/Documentation: - Eliminate Restore "Run Restore Job" prompt by allowing new "run command to be issued" - Remove View FileSet button from Run a Job dialog. +- Don't count higher level non-saved directories in Files expected + in restore report. - Handle prompt for restore job at end of Restore command. - Add display of total selected files to Restore window. - Add tree pane to left of window. @@ -225,6 +247,8 @@ For 1.37 Testing/Documentation: fields. - Fix option 2 of restore -- list where file is backed up -- require Client, then list last 20 backups. +- Add all pools in Dir conf to DB also update them to catch changed + LabelFormats and such. - Pass Director resource name as an option to the Console. - Add a "batch" mode to the Console (no unsolicited queries, ...). - Add a .list all files in the restore tree (probably also a list all files) @@ -235,6 +259,7 @@ For 1.37 Testing/Documentation: did not exist. - Use SHA1 on authentication if possible. - See comtest-xxx.zip for Windows code to talk to USB. +- Make btape accept Device Names in addition to Archive names. - Add Events and Perl scripting. - Add John's appended files: Appended = { /files/server/logs/http/*log } @@ -249,7 +274,8 @@ For 1.37 Testing/Documentation: entirely upon the length.On a restore, the full and all incrementals since it will beapplied in sequence to restore the file. - Add a regression test for dbcheck. -- Allow for optional cancelling of SD and FD in case DIR +- Add disk seeking on restore. - Allow + for optional cancelling of SD and FD in case DIR gets a fatal error. Requested by Jesse Guardiani - Add "limit=n" for "list jobs" - Check new HAVE_WIN32 open bits. @@ -290,6 +316,66 @@ For 1.37 Testing/Documentation: in Job, Client, and Pool, with precedence such that Job overrides Client which in turn overrides Pool. +- Spooling ideas taken from Volker Sauer's and other's emails: + > IMHO job spooling should be turned on + > + > 1) by job + > 2) by schedule + > 3) by sd + > + > where and 2) overrides 1) and 3) is independent. + + Yes, this is the minimum that I think is necessary. + + > + > Reason(s): + > It should be switched by job, because the job that backs up the machine + > with the bacula-sd on doesn't need spooling. + > It should be switched by schedule, because for full-backups I don't need + > spooling, so I can switch it off (because the network faster then the + > tapedrive) + + True, with the exception that if you have enough disk spool space, + and you want to run concurrent jobs, spooling can eliminate the block + interleaving restore inefficiencies. + + > And you should be able to turn it of by sd for sd-machines with low disk + > capacity or if you just don't need or want this feature. + > + > There should be: + > - definitly the possibility for multipe spool direcories + + Having multiple directories is no problem -- having different maximum + sizes creates specification problems. At some point, I will probably + have a common SD pool of spool directories as well as a set of + private spool directories for each device. The first implementation + will be a set of private spool directories for each device since + managing a global pool with a bunch of threads writing into the same + directory is *much* more complicated and prone to error. + + > - the ability to spool parts of a backup (not the whole client) + + This may change in the future, but for the moment, it will spool + either to a job high water mark, or until the directory is full + (reaches max spool size or I/O error). It will then write to tape, + truncate the spool file, and begin spooling again. + + > - spooling while writing to tape + + Not within a job, but yes, if you run concurrent jobs -- each is a + different thread. Within a job could be a feature, but *much* later. + + > - parallel spooling (like parallel jobs/ concurrent jobs) of clients + + Yes, this is one of my main motivations for doing it (aside from + eliminating tape "shoe shine" during incremental backups. + + > - flushing a backup that only went to disk (like amflush in amanda) + + This will be a future feature, since spooling is different from backing + up to disk. The future feature will be "migration" which will move a job + from one backup Volume to another. + - New Storage specifications: - Want to write to multiple storage devices simultaneously - Want to write to multiple storage devices sequentially (in one job) @@ -321,9 +407,10 @@ For 1.37 Testing/Documentation: is contained in only one device. In SD allow Device to have Multiple MediaTypes +After 1.33: - Look at www.nu2.nu/pebuilder as a helper for full windows bare metal restore. -- Ideas from Jerry Scharf: +Ideas from Jerry Scharf: First let's point out some big pluses that bacula has for this it's open source more importantly it's active. Thank you so much for that @@ -347,6 +434,9 @@ For 1.37 Testing/Documentation: support for Oracle database ?? === - Look at adding SQL server and Exchange support for Windows. +- Restore: Enter Filename: 'C:/Documents and Settings/Comercial/My + Documents/MOP/formulário de registro BELAS ARTES.doc' causes Bacula to + crash. - Each DVD-RAM disk would be a volume, just like each tape is a volume. It's a 4.7GB media with random access, but there's nothing about it that I can see that makes it so different than a tape from  bacula's @@ -356,13 +446,20 @@ For 1.37 Testing/Documentation: be an invalid value which happens with BSR. - Create VolAddr for disk files in place of VolFile and VolBlock. This is needed to properly specify ranges. +- Print bsmtp output to job report so that problems will be seen. +- Pass the number of files to be restored to the FD for reporting - Add progress of files/bytes to SD and FD. +- Don't continue Restore if no files selected. - Print warning message if FileId > 4 billion - do a "messages" before the first prompt in Console - Add a date and time stamp at the beginning of every line in the Job report (Volker Sauer). - Client does not show busy during Estimate command. - Implement Console mtx commands. +- Add a default DB password to MySQL. + GRANT all privileges ON bacula.* TO bacula@localhost IDENTIFIED BY + 'bacula_password'; + FLUSH PRIVILEGES; - Implement a Mount Command and an Unmount Command where the users could specify a system command to be performed to do the mount, after which Bacula could attempt to @@ -378,24 +475,63 @@ For 1.37 Testing/Documentation: - Implement dump/print label to UA - Spool to disk only when the tape is full, then when a tape is hung move it to tape. +- Scratch Pool where the volumes can be re-assigned to any Pool. - bextract is sending everything to the log file ****FIXME**** +- Add Progress command that periodically reports the progress of + a job or all jobs. +- Restrict characters permitted in a Resource name, and don't permit + duplicate names. - Allow multiple Storage specifications (or multiple names on a single Storage specification) in the Job record. Thus a job can be backed up to a number of storage devices. - Implement some way for the File daemon to contact the Director to start a job or pass its DHCP obtained IP number. +- Implement multiple Consoles. - Implement a query tape prompt/replace feature for a console +- From Johan? + Two jobs ready to go, first one blocked waiting for media + Cancel 2nd job ("waiting execution" one) + Cancel blocked job + boom - segfault* - Copy console @ code to gnome2-console - Make AES the only encryption algorithm see http://csrc.nist.gov/CryptoToolkit/aes/). It's an officially adopted standard, has survived peer review, and provides keys up to 256 bits. +- Think about how space could be freed up on a tape -- perhaps this + is a Merge or Compact feature that is needed. +- Modify FileSet, did not upgrade the current Increment job, but + waited for the next job to be upgraded. - Take a careful look at SetACL http://setacl.sourceforge.net +- Implement a where command for the tree telling where a file + is located. - Take a careful look at Level for the estimate command, maybe make it a command line option. - Add Volume name to "I cannot write on this volume because" - Make tree walk routines like cd, ls, ... more user friendly by handling spaces better. +- Write your PID file and chown root:wheel before drop. +- Make sure there is no symlink in a file before creating a + file (attack). +- Look at mktemp or mkstemp(3). + mktemp and mkstemp create files with predictable names too. That's + not the vulnerability. The vulnerability is in creating files without + using the O_EXCL flag, which means "only create this file if it doesn't + exist, including if the file is a dangling symlink." + + It is *NOT* enough to do the equivalent of + + if doesn't exist $filename + then create $filename + + because between the test and the create another process could have + gotten the CPU and created the file. You must use atomic functions + (those that don't get interrupted by other processes) and O_EXCL is + the only way for this particular example. +- Automatically create pools, but instead of looking for what + in in Job records, walk through the pool resources. +- Check and double check tree code, why does it take so long? +- Add device name to "Current Volume not acceptable because ..." - Make sure that Bacula rechecks the tape after the 20 min wait. - Set IO_NOWAIT on Bacula TCP/IP packets. - Try doing a raw partition backup and restore by mounting a @@ -409,17 +545,76 @@ For 1.37 Testing/Documentation: By the way can bacula automatically "move" an empty/purged volume say in the "short" pool to the "long" pool if this pool runs out of volume space? +- Eliminate orphaned jobs: dbcheck, normal pruning, delete job command. + Hm.  Well, there are the remaining orphaned job records: + + |   105 | Llioness Save  | 0000-00-00 00:00:00 | B    | D     |        0 |             0 | f         | + |   110 | Llioness Save  | 0000-00-00 00:00:00 | B    | I     |        0 |             0 | f         | + |   115 | Llioness Save  | 2003-09-10 02:22:03 | B    | I     |        0 |             0 | A         | + |   128 | Catalog Save   | 2003-09-11 03:53:32 | B    | I     |        0 |             0 | C         | + |   131 | Catalog Save   | 0000-00-00 00:00:00 | B    | I     |        0 |             0 | f         | + + As you can see, three of the five are failures.  I already deleted the + one restore and one other failure using the by-client option.  Deciding + what is an orphaned job is a tricky problem though, I agree.  All these + records have or had 0 files/ 0 bytes, except for the restore.  With no + files, of course, I don't know of the job ever actually becomes + associated with a Volume. + + (I'm not sure if this is documented anywhere -- what are the meanings of + all the possible JobStatus codes?) + + Looking at my database, it appears to me as though all the "orphaned" + jobs fit into one of two categories: + + 1)  The Job record has a StartTime but no EndTime, and the job is not +     currently running; + or + 2)  The Job record has an EndTime, indicating that it completed, but +     it has no associated JobMedia record. + + + This does suggest an approach.  If failed jobs (or jobs that, for some + other reason, write no files) are associated with a volume via a + JobMedia record, then they should be purged when the associated volume + is purged.  I see two ways to handle jobs that are NOT associated with a + specific volume: + + 1)  purge them automatically whenever any volume is manually purged; + or + 2)  add an option to the purge command to manually purge all jobs with +     no associated volume. + + I think Restore jobs also fall into category 2 above .... so one might + want to make that "The Job record has an EndTime,, but no associated + JobMedia record, and is not a Restore job." +- make "btape /tmp" work. +- Make sure a rescheduled job is properly reported by status. +- Walk through the Pool records rather than the Job records + in dird.c to create/update pools. - What to do about "list files job=xxx". +- When job rescheduled, status gives is waiting for Client Rufus + to connect to Storage File. Dir needs to inform SD that job + is rescheduled. - Make Dmsg look at global before calling subroutine. +- Enable trace output at runtime for Win32 +- Available volumes for autochangers (see patrick@baanboard.com 3 Sep 03 + and 4 Sep) scan slots. - Get and test MySQL 4.0 +- Do a complete audit of all pthreads_mutex, cond, ... to ensure that + any that are dynamically initialized are destroyed when no longer used. - Look at how fuser works and /proc/PID/fd that is how Nic found the file descriptor leak in Bacula. - Implement WrapCounters in Counters. +- Turn on SIGHUP in dird.c and test. +- Use system dependent calls to get more precise info on tape errors. - Add heartbeat from FD to SD if hb interval expires. +- Suppress read error on blank tape when doing a label. - Can we dynamically change FileSets? - If pool specified to label command and Label Format is specified, automatically generate the Volume name. - Why can't SQL do the filename sort for restore? +- Look at libkse (man kse) for FreeBSD threading. - Look into Microsoft Volume Shadowcopy Service VSS for backing up system state components (Active Directory, System Volume, ...) - Add ExhautiveRestoreSearch @@ -427,6 +622,7 @@ For 1.37 Testing/Documentation: data into the restore tree (i.e. do it one directory at a time as the user walks through the tree). - Possibly use the hash code if the user selects all for a restore command. +- Orphaned Dir buffer at parse_conf.c:373 => store_dir - Fix "restore all" to bypass building the tree. - Prohibit backing up archive device (findlib/find_one.c:128) - Implement Release Device in the Job resource to unmount a drive. @@ -434,28 +630,50 @@ For 1.37 Testing/Documentation: be sure this works with admin jobs so that the user can get prompted to insert the correct tape. Possibly some way to say to run the job but don't save the files. +- Implement FileOptions (see end of this document) - Make things like list where a file is saved case independent for Windows. - Implement migrate +- Bacula needs to propagate SD errors. + > > cluster-dir: Start Backup JobId 252, Job=REUTERS.2003-08-11_15.04.12 + > > prod4-sd: REUTERS.2003-08-11_15.04.12 Error: Write error on device + /dev/nst0. ERR=Input/output error. + > > prod4-sd: REUTERS.2003-08-11_15.04.12 Error: Re-read of last block failed. + Last block=5162 Current block=5164. + > > prod4-sd: End of medium on Volume "REU007" Bytes=16,303,521,933 + - Use autochanger to handle multiple devices. - Add SuSE install doc to list. - Check and rechedk "Invalid block number" +- Make bextract release the drive properly between tapes + so that an autochanger can be made to work. - User wants to NOT backup up certain big files (email files). - Maybe remove multiple simultaneous devices code in SD. - On Windows with very long path names, it may be impossible to create a file (and thus restore it) because the total length is too long. We must cd into the directory then create the file without the full path name. +- lstat() is not going to work on Win32 for testing date. - Implement a Recycle command - Add client name to cram-md5 challenge so Director can immediately verify if it is the correct client. +- Add JobLevel in FD status (but make sure it is defined). - Audit all UA commands to ensure that we always prompt where possible. +- Check Jmsg in bnet, may not work, must dup bsock. +- Suppress Job Name in Jmsg for console +- Create Pools that are referenced in a Run statement at startup if possible. +- Use runbeforejob to unload, then reload a volume previously used, + then the next job run gets an error reading the drive. - Make bootstrap filename unique. - Test a second language e.g. french. - Start working on Base jobs. +- Make "make binary-release" work from any directory. - Implement UnsavedFiles DB record. - Implement argc/argv for daemon command line scanning using table driven stuff below. +- Implement table driven single argc/argv scanner to pickup all arguments. + Much like xxx_conf.c scan table. + keyword, handler(store_routine), store_address, code, flags, default. - From Phil Stracchino: It would probably be a per-client option, and would be called something like, say, "Automatically purge obsoleted jobs". What it @@ -472,10 +690,16 @@ For 1.37 Testing/Documentation: - Currently in mount.c:236 the SD simply creates a Volume. It should have explicit permission to do so. It should also mark the tape in error if there is an error. +- Make sure all restore counters are working correctly in the FD. - SD Bytes Read is wrong. +- Look at ALL higher level routines that call block.c to be sure + they don't expect something in errmsg. - Investigate doing RAW backup of Win32 partition. +- Add thread specific data to hold the jcr -- send error messages from + low level routines by accessing it and using Jmsg(). - Cancel waiting for Client connect in SD if FD goes away. +- Examine Bare Metal restore problem (a FD crash exists somewhere ...). - Implement timeout in response() when it should come quickly. - Implement console @echo command. - Implement a Slot priority (loaded/not loaded). @@ -483,6 +707,9 @@ For 1.37 Testing/Documentation: - Implement single pane restore (much like the Gftp panes). - Implement Automatic Mount even in operator wait. - Implement create "FileSet"? +- Fix watchdog pthread crash on Win32 (this is pthread_kill() Cygwin bug) +- Implement "scratch pool" where tapes are defined and can be + taken by any pool that needs them. - Implement restore "current system", but take all files without doing selection tree -- so that jobs without File records can be restored. @@ -526,6 +753,8 @@ For 1.37 Testing/Documentation: - Figure out how to do a bare metal Windows restore - Possibly add email to Watchdog if drive is unmounted too long and a job is waiting on the drive. +- Restore program that errs in SD due to no tape, reports + OK incorrectly in output. - After unmount, if restore job started, ask to mount. - Convert all %x substitution variables, which are hard to remember and read to %(variable-name). Idea from TMDA. @@ -995,8 +1224,167 @@ Block Position: 0 ==== -=== Done -- Add "Rerun failed levels = yes/no" to Job resource. -- Fix CDROM make script to permit picking up already installed - static FD. -- Add date/time to each Jmsg. +=== Done in 1.34.3 +- To pass Include 1 or two letter commands + I Name Include name - first record + B Name Base name - repeat + R "xxx" Regexp + W "xxx" Wild Card + E zzz Exclude expression (wild card) + P "plugin" Plugin + D "reader" Reader program + T "writer" Writer program + O Options In current commpressed format + (compression, signature, onefs, recurse, sparse, + replace, verify options, ...) + N End option set + B BaseName Start second option set any letter + ... + E + F Number Number of filenames to follow + + B Name + ... + N End option set + F Number Number of filenames to follow + + ... +- Add regression of btape "fill" +==== Done in 1.34.4 +- Implement "label slots=1,2... pool=yyy barcodes" +- Mark a non-removable disk Volume in error rather than asking sys op to + mount it. +- Implement Fixed storage LabelFormat test. +- Add reporting in attr despooling. +- Figure out how to use ssh or stunnel to protect Bacula communications. + Add Dan's work to manual See ssl.txt + +==== Done in 1.35.0 +- Implement fast tree insert (doubly linked list) +- Disallow using Internal database +- Feedback while the restore tree is being built. +- Add detection of Whitebox release in ./configure +- Add InChanger to "list media" +- Implement second cut of SIGHUP in Dir + (Implement resources on a single pointer) +- Add regular expressions to FileSets (needs testing). +- Test new despooling error recovery code when partition fills. +- Sort Scheduled jobs status listing by start time. +- Add priority to Scheduled jobs status listing. +- Look at Win32 inc problem when new directory added files not saved??? +- Require resource names to be unique. +- Make sure that all errors from libacl are printed. +- Make FD run on Win95 if possible (not really possible). +- Fix GROUP BYs in all SQL (done by Dan -- thanks) +- Make entering multiple Storage names in Dir illegal. +- Make btape release the drive during the "test" append. +- Fix restore: + You have selected the following JobIds: 739,856,797 + Building directory tree for JobId 739 ... + Building directory tree for JobId 856 ... + Building directory tree for JobId 797 ...3 + Jobs inserted into the tree. +- Fix errno handling in win32 compat routines. +- Add better error codes to run_program (10000+) +- Revisit and revise Disaster Recovery (fix SCSI and RAID + disk detection) +- When passwords do not match, print message that points the + user to the doc. +- Do tape alerts -- see tapealert.txt +- Find memory leaks in address_conf.c +- Network order of port and ip addresses. +- SetIP in dird/fd_cmds.c is broken. +- don't use inet_addr() it is deprecated. +- Fix code in filed.c for init_bsock(); +- Fix code in console.c for init_bsock(); +- Solve the termcap.h problem on Solaris configure. +- Make Verify jobs require exclusive use of Volume as Restore + jobs do. +- Fix restore ++++ that get intermingled with "Building directory tree" +- Fix doc in dirdconf.html for @, where the file must + have not a list of files, but + file = xxx + file = yyy +- Test Win32 errno handling. +- port 1.34.6-block.patch to 1.35 +- Look at Chris' patch for bscan bug. +- Fix error handling in spooling both data and attribute. +- Implement Ignore FileSet Change. +- Doc new duration time input editing. +- Bacula rescue CDROM implement isolinux +- Make sure Qmsgs are dequeued by FD and SD. +- Check if ACLs allocated at dird_conf.c:1214 are being properly + released. +- Test/doc Tape Alerts +- Doc dbcheck eliminate orphaned clients. +- Doc Phil's new delete job jobid scanning code. +- Document that console commands can be abbreviated. +- Doc update AllFromVol +- Doc -p option in stored +- New IP address specification is used as follows: + [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { + [[addr|port] = [^ ]+[\n;]+] }] } + + so it could look for example like this: + SDaddresses = { ip = { + addr = 1.2.3.4; port = 1205; } + ipv4 = { + addr = 1.2.3.4; port = http; } + ipv6 = { + addr = 1.2.3.4; + port = 1205; + } + ip = { + addr = 1.2.3.4 + port = 1205 + } + ip = { + addr = 1.2.3.4 + } + ip = { + addr = 201:220:222::2 + } + ip = { + addr = bluedot.thun.net + } + } + as a consequence, you can now specify multiple IP addresses and + ports to be used. In the case of a server, it will listen on + all those that you specify. In the case of connecting to the server, + Bacula will attempt connecting to one at a time until it succeeds. + And, in a few other special cases, Bacula will use only the first + address specified. + + The default port numbers are still the same and the services and hosts + are also resolved by name. So now you could use the real names for the + port numbers. + + An ip section will allow resolution to either an ipv4 or an ipv6 address. + An ipv4 section forces the resolution to be only ipv4, and an ipv6 section + forces the resolution to be only ipv6. +- Fix silly restriction requiring Include { Options { xxx } } to be + on separate lines. +- Restore c: with a prefix into /prefix/c/ to prevent c: and d: + files with the same name from overwritting each other. +- Add "Multiple connections = yes/no" to catalog resource. +- Add new DCR calling sequences everywhere in SD. This will permit + simultaneous use of multiple devices by a single job. +- Fix bscan so that it releases the drive when requesting a new tape. +- List verify options for DiskToCatalog in doc. +- Turn on transactions if multiple connections are on in DB. +- Fix storage overrides in Run directives. +- Look into failing Excludes in Win32 +- Make restore check if the file size restored is correct. +- Backspace to beginning of line (conio) does not erase first char. +- Fix possible bug in update volumefrompool (email 9/28 from + jesk@killall.org +- Add relabel regression test. +- Document a get out of jail procedure if everything breaks if + you lost/broke the Catalog -- do the same for "I know my + file is there how do I get it back?". +- Fix documentation for readline. +- Add File indexes as suggested by Martin -- modify update + scripts to add them. +- Modify postgresql update script to remove bigint FilenameId + reference. +- Kill daemons at levels in the teens rather than late. diff --git a/bacula/patches/fix_postgresql_tables b/bacula/patches/fix_postgresql_tables deleted file mode 100755 index 2d69f89278..0000000000 --- a/bacula/patches/fix_postgresql_tables +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# -# Shell script to fix PostgreSQL tables in version 8 -# -echo " " -echo "This script will fix a Bacula PostgreSQL database version 8" -echo "Depending on the size of your database," -echo "this script may take several minutes to run." -echo " " -# -# Set the following to the path to psql. -bindir=****EDIT-ME to be the path to psql**** - -if $bindir/psql $* -f - </dev/null | grep CD-RW | ${AWK} '{print $1}'` +- if test x${CDSTL} = x ; then +- CDSTL=`${CDRECORD} -scanbus 2>/dev/null | grep CD+RW | ${AWK} '{print $1}'` +- fi +- if test x${CDSTL} = x ; then +- CDSTL="3,0,0" +- fi +-fi + + + diff --git a/bacula/platforms/gentoo/bacula.ebuild b/bacula/platforms/gentoo/bacula.ebuild index c8a62d44aa..b87c6248f4 100644 --- a/bacula/platforms/gentoo/bacula.ebuild +++ b/bacula/platforms/gentoo/bacula.ebuild @@ -1,8 +1,37 @@ # Copyright 2004 D. Scott Barninger -# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +# # Modified from bacula-1.34.5.ebuild for 1.36.0 release # 24 Oct 2004 D. Scott Barninger +# +# added cdrom rescue for 1.36.1 +# init script now comes from source package not ${FILES} dir +# 26 Nov 2004 D. Scott Barninger +# +# fix symlink creation in rescue package in post script +# remove mask on x86 keyword +# fix post script so it doesn't talk about server config for client-only build +# bug #181 - unable to reproduce on 2.4 kernel system so add FEATURES="-sandbox" +# 04 Dec 2004 D. Scott Barninger +# +# more on bug #181 - another user has reported a sandbox violation trying to +# write to /dev/sg0 - still can't reproduce this behavior +# add an 'addpredict /dev/sg0' +# 08 Dec 2004 D. Scott Barninger +# +# resolve bug #181 - problem is caused by configure calling cdrecord to scan +# the scsi bus. patch configure to remove this. add logrotate script. +# 06 Feb 2005 D. Scott Barninger +# +# fix documentation bug +# 07 Feb 2005 D. Scott Barninger +# +# new USE keywords bacula-clientonly bacula-split +# add new logwatch scripts +# 06 Mar 2005 D. Scott Barninger +# +# 1.36.3 doc changes +# 17 Apr 2005 D. Scott Barninger DESCRIPTION="featureful client/server network backup suite" HOMEPAGE="http://www.bacula.org/" @@ -10,66 +39,73 @@ SRC_URI="mirror://sourceforge/bacula/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~x86 ~ppc ~sparc" -IUSE="readline tcpd gnome mysql sqlite X static postgres wxwindows" +KEYWORDS="x86 ~ppc ~sparc ~amd64" +IUSE="readline tcpd gnome mysql sqlite X static postgres wxwindows bacula-clientonly bacula-split" inherit eutils -#theres a local sqlite use flag. use it -OR- mysql, not both. -#mysql is the reccomended choice ... -#may need sys-libs/libtermcap-compat but try without first +# there is a local sqlite use flag. use it -OR- mysql, not both. +# mysql is the recommended choice ... +# may need sys-libs/libtermcap-compat but try without first DEPEND=">=sys-libs/zlib-1.1.4 - sys-apps/mtx readline? ( >=sys-libs/readline-4.1 ) tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) gnome? ( gnome-base/libgnome ) gnome? ( app-admin/gnomesu ) - sqlite? ( =dev-db/sqlite-2* ) - mysql? ( >=dev-db/mysql-3.23 ) - postgres? ( >=dev-db/postgresql-7.4.0 ) + !bacula-clientonly? ( + sqlite? ( =dev-db/sqlite-2* ) + mysql? ( >=dev-db/mysql-3.23 ) + postgres? ( >=dev-db/postgresql-7.4.0 ) + sys-apps/mtx + ) X? ( virtual/x11 ) wxwindows? ( >=x11-libs/wxGTK-2.4.2 ) virtual/mta - dev-libs/gmp" + dev-libs/gmp + app-text/tetex + dev-tex/latex2html" RDEPEND="${DEPEND} - sys-apps/mtx - app-arch/mt-st" + !bacula-clientonly? ( + sys-apps/mtx + app-arch/mt-st + )" src_compile() { - # patch configure for scripts/bacula-tray-monitor.desktop - patch ${S}/configure ${FILESDIR}/${P}-configure.diff + # this resolves bug #181 + epatch ${FILESDIR}/1.36.2-cdrecord-configure.patch local myconf="" - #sed -i -e "s:$bindir/mysql:$bindir/mysql -p:g" grant_mysql_privileges.in - - #define this to skip building the other daemons ... - [ -n "$BUILD_CLIENT_ONLY" ] \ - && myconf="${myconf} --enable-client-only" - myconf=" `use_enable readline` `use_enable gnome` `use_enable tcpd tcp-wrappers` `use_enable X x`" - [ -n "$BUILD_CLIENT_ONLY" ] \ - && myconf="${myconf} --enable-client-only" - - # mysql is the reccomended choice ... - if use mysql - then - myconf="${myconf} --with-mysql=/usr" - elif use postgres + # define this to skip building the other daemons ... + if use bacula-clientonly then - myconf="${myconf} --with-postgresql=/usr" - elif use sqlite - then - myconf="${myconf} --with-sqlite=/usr" - elif use sqlite && use mysql + myconf="${myconf} --enable-client-only" + fi + + # select database support + if ! use bacula-clientonly then - myconf="${myconf/--with-sqlite/}" + # mysql is the recomended choice ... + if use mysql + then + myconf="${myconf} --with-mysql=/usr" + elif use postgres + then + myconf="${myconf} --with-postgresql=/usr" + elif use sqlite + then + myconf="${myconf} --with-sqlite=/usr" + elif use sqlite && use mysql + then + myconf="${myconf/--with-sqlite/}" + fi fi if use wxwindows @@ -87,7 +123,6 @@ src_compile() { myconf="${myconf} --enable-tray-monitor" fi - ./configure \ --enable-smartalloc \ --prefix=/usr \ @@ -108,10 +143,18 @@ src_compile() { emake || die "compile problem" + # for the rescue package regardless of use static + cd ${S}/src/filed + make static-bacula-fd + cd ${S} + + # make the docs + cd ${S}/doc/latex + make + cd ${S} + if use static then - cd ${S}/src/filed - make static-baula-fd cd ${S}/src/console make static-console cd ${S}/src/dird @@ -152,7 +195,7 @@ src_install() { cd ${S}/src/wx-console cp static-wx-console ${D}/usr/sbin/wx-console fi - cd ${S}/src/storge + cd ${S}/src/stored cp static-bacula-sd ${D}/usr/sbin/bacula-sd fi @@ -170,20 +213,45 @@ src_install() { chmod 644 ${D}/etc/bacula/tray-monitor.conf fi - # the database update scripts - mkdir -p ${D}/etc/bacula/updatedb - cp ${S}/updatedb/* ${D}/etc/bacula/updatedb/ - chmod 754 ${D}/etc/bacula/updatedb/* + if ! use bacula-clientonly + then + # the database update scripts + mkdir -p ${D}/etc/bacula/updatedb + cp ${S}/updatedb/* ${D}/etc/bacula/updatedb/ + chmod 754 ${D}/etc/bacula/updatedb/* + + # the logrotate configuration + mkdir -p ${D}/etc/logrotate.d + cp ${S}/scripts/logrotate ${D}/etc/logrotate.d/bacula + chmod 644 ${D}/etc/logrotate.d/bacula + + # the logwatch scripts + mkdir -p ${D}/etc/log.d/conf/logfiles + mkdir -p ${D}/etc/log.d/conf/services + mkdir -p ${D}/etc/log.d/scripts/services + cp ${S}/scripts/logwatch/bacula ${D}/etc/log.d/scripts/services/bacula + cp ${S}/scripts/logwatch/logfile.bacula.conf ${D}/etc/log.d/conf/logfiles/bacula.conf + cp ${S}/scripts/logwatch/services.bacula.conf ${D}/etc/log.d/conf/services/bacula.conf + chmod 755 ${D}/etc/log.d/scripts/services/bacula + chmod 644 ${D}/etc/log.d/conf/logfiles/bacula.conf + chmod 644 ${D}/etc/log.d/conf/services/bacula.conf + + fi + + # the cdrom rescue package + mkdir -p ${D}/etc/bacula/rescue/cdrom + cp -R ${S}/rescue/linux/cdrom/* ${D}/etc/bacula/rescue/cdrom/ + mkdir ${D}/etc/bacula/rescue/cdrom/bin + cp ${S}/src/filed/static-bacula-fd ${D}/etc/bacula/rescue/cdrom/bin/bacula-fd + chmod 754 ${D}/etc/bacula/rescue/cdrom/bin/bacula-fd # documentation - for a in ${S}/{Changelog,README,ReleaseNotes,kernstodo,LICENSE,doc/bacula.pdf} + for a in ${S}/{ChangeLog,README,ReleaseNotes,kernstodo,LICENSE,doc/latex/bacula.pdf} do dodoc $a done - dohtml -r ${S}/doc/html-manual doc/home-page - chown -R root:root ${D}/usr/share/doc/${PF} - chmod -R 644 ${D}/usr/share/doc/${PF}/* + dohtml -r ${S}/doc/latex/bacula # clean up permissions left broken by install chmod o-r ${D}/etc/bacula/query.sql @@ -191,8 +259,21 @@ src_install() { # remove the working dir so we can add it postinst with group rmdir ${D}/var/bacula + # init scripts exeinto /etc/init.d - newexe ${FILESDIR}/bacula-init bacula + if use bacula-clientonly + then + newexe ${S}/platforms/gentoo/bacula-fd bacula-fd + else + if use bacula-split + then + newexe ${S}/platforms/gentoo/bacula-fd bacula-fd + newexe ${S}/platforms/gentoo/bacula-sd bacula-sd + newexe ${S}/platforms/gentoo/bacula-dir bacula-dir + else + newexe ${S}/platforms/gentoo/bacula-init bacula + fi + fi } pkg_postinst() { @@ -208,9 +289,23 @@ pkg_postinst() { # the working directory install -m0750 -o root -g bacula -d ${ROOT}/var/bacula + # link installed bacula-fd.conf into rescue directory + #ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/cdrom/bacula-fd.conf + # no longer necessary after 1.36.2 + + einfo + einfo "The CDRom rescue disk package has been installed into the" + einfo "/etc/bacula/rescue/cdrom/ directory. Please examine the manual" + einfo "for information on creating a rescue CD. CDR device detection" + einfo "during build has been disabled to prevent sandbox violations." + einfo "You need to examine /etc/bacula/rescue/cdrom/Makefile and adjust" + einfo "the device information for your CD recorder." + einfo + + if ! use bacula-clientonly; then einfo einfo "Please note either/or nature of database USE flags for" - einfo "Bacula. If mysql is set, it will be used, else postgresql" + einfo "Bacula. If mysql is set, it will be used, else postgres" einfo "else finally SQLite. If you wish to have multiple DBs on" einfo "one system, you may wish to unset auxillary DBs for this" einfo "build." @@ -220,7 +315,7 @@ pkg_postinst() { then # test for an existing database # note: this ASSUMES no password has been set for bacula database - DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` + DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` if [ -z "$DB_VER" ]; then einfo "This appears to be a new install and you plan to use mysql" einfo "for your catalog database. You should now create it by doing" @@ -243,18 +338,18 @@ pkg_postinst() { fi fi - if use postgresql + if use postgres then # test for an existing database # note: this ASSUMES no password has been set for bacula database - DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` + DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` if [ -z "$DB_VER" ]; then einfo "This appears to be a new install and you plan to use postgresql" einfo "for your catalog database. You should now create it by doing" einfo "these commands:" - einfo " sh /etc/bacula/grant_postgresql_privileges" einfo " sh /etc/bacula/create_postgresql_database" einfo " sh /etc/bacula/make_postgresql_tables" + einfo " sh /etc/bacula/grant_postgresql_privileges" elif [ "$DB_VER" -lt "8" ]; then elinfo "This release requires an upgrade to your bacula database" einfo "as the database format has changed. Please read the" @@ -274,7 +369,7 @@ pkg_postinst() { then # test for an existing database # note: this ASSUMES no password has been set for bacula database - DB_VER=`echo "select * from Version;" | sqlite /var/bacula/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | sqlite 2>/dev/null /var/bacula/bacula.db | tail -n 1` if [ -z "$DB_VER" ]; then einfo "This appears to be a new install and you plan to use sqlite" einfo "for your catalog database. You should now create it by doing" @@ -288,7 +383,7 @@ pkg_postinst() { einfo "manual chapter for how to upgrade your database!!!" einfo einfo "Backup your database with the command:" - einfo " echo .dump | sqlite /var/bacula/bacula.db | bzip2 > \" + einfo " echo .dump | sqlite /var/bacula/bacula.db | bzip2 > \\" einfo " /var/bacula/bacula_backup.sql.bz2" einfo einfo "Then update your database using the scripts found in" @@ -297,13 +392,35 @@ pkg_postinst() { einfo "version to the current version." fi fi + fi einfo - einfo "Then setup your configuration files in /etc/bacula and" + einfo "Review your configuration files in /etc/bacula and" einfo "start the daemons:" - einfo " /etc/init.d/bacula start" + if use bacula-clientonly; then + einfo " /etc/init.d/bacula-fd start" + else + if use bacula-split; then + einfo " /etc/init.d/bacula-sd start" + einfo " /etc/init.d/bacula-dir start" + einfo " /etc/init.d/bacula-fd start" + einfo " or /etc/bacula/bacula will start all three." + else + einfo " /etc/init.d/bacula start" + fi + fi einfo einfo "You may also wish to:" - einfo " rc-update add bacula default" + if use bacula-clientonly; then + einfo " rc-update add bacula-fd default" + else + if use bacula-split; then + einfo " rc-update add bacula-sd default" + einfo " rc-update add bacula-dir default" + einfo " rc-update add bacula-fd default" + else + einfo " rc-update add bacula default" + fi + fi einfo } diff --git a/bacula/platforms/mandrake/bacula.spec.in b/bacula/platforms/mandrake/bacula.spec.in index 3e9abd6082..3374e8d0a7 100644 --- a/bacula/platforms/mandrake/bacula.spec.in +++ b/bacula/platforms/mandrake/bacula.spec.in @@ -1,3 +1,6 @@ +# Bacula RPM spec file +# Copyright (C) 2004 Kern Sibbald + # Platform Build Configuration # basic defines for every build @@ -19,15 +22,26 @@ %{?build_rh8:%define rh8 1} %define rh9 0 %{?build_rh9:%define rh9 1} -# Fedora Core 1 build +# Fedora Core build %define fc1 0 %{?build_fc1:%define fc1 1} +%define fc3 0 +%{?build_fc3:%define fc3 1} # Whitebox Enterprise build -# this should also work for RHEL %define wb3 0 %{?build_wb3:%define wb3 1} +# RedHat Enterprise builds +%define rhel3 0 +%{?build_rhel3:%define rhel3 1} +%{?build_rhel3:%define wb3 1} +%define rhel4 0 +%{?build_rhel4:%define rhel4 1} +%{?build_rhel4:%define fc3 1} +# CentOS build +%define centos4 0 +%{?build_centos4:%define centos4 1} +%{?build_centos4:%define fc3 1} # SuSE build -# this is known to build on SuSE 8.2 and 9.0 %define su9 0 %{?build_su9:%define su9 1} # Mandrake build @@ -35,7 +49,7 @@ %{?build_mdk:%define mdk 1} # test for a platform definition -%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{wb3} && ! %{su9} && ! %{mdk} +%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{fc3} && ! %{wb3} && ! %{su9} && ! %{mdk} %{error: You must specify a platform. Please examine the spec file.} exit 1 %endif @@ -44,6 +58,10 @@ exit 1 # set for database support desired or define the build_xxx on the command line %define mysql 0 %{?build_mysql:%define mysql 1} +# if using mysql 4.x define this and mysql above +# currently: Mandrake 10.1, SuSE 9.2, RHEL4 +%define mysql4 0 +%{?build_mysql4:%define mysql4 1} %define sqlite 0 %{?build_sqlite:%define sqlite 1} %define postgresql 0 @@ -55,6 +73,33 @@ exit 1 exit 1 %endif +# 64 bit support +%define x86_64 0 +%{?build_x86_64:%define x86_64 1} + +# check what distribution we are +%if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4} +%define _dist %(grep Red /etc/redhat-release) +%endif +%if %{fc1} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{centos4} +%define _dist %(grep CentOS /etc/redhat-release) +%endif +%if %{fc3} && ! %{rhel4} && ! %{centos4} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{wb3} && ! %{rhel3} +%define _dist %(grep White /etc/whitebox-release) +%endif +%if %{su9} +%define _dist %(grep SuSE /etc/SuSE-release) +%endif +%if %{mdk} +%define _dist %(grep Mandrake /etc/mandrake-release) +%endif + Summary: Bacula - The Network Backup Solution Name: bacula Version: @VERSION@ @@ -68,9 +113,9 @@ Source3: Release_Notes-%{version}-%{release}.tar.gz BuildRoot: %{_tmppath}/%{name}-root URL: http://www.bacula.org/ Vendor: The Bacula Team -Distribution: The Bacula Team +Distribution: %{_dist} Packager: D. Scott Barninger -BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel +BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel, perl BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig %if %{rh7} BuildRequires: libtermcap-devel @@ -81,6 +126,8 @@ BuildRequires: ORBit-devel BuildRequires: bonobo-devel BuildRequires: GConf-devel BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex %endif %if %{su9} BuildRequires: termcap @@ -96,6 +143,8 @@ BuildRequires: bonobo-activation-devel BuildRequires: gconf2-devel BuildRequires: linc-devel BuildRequires: freetype2-devel +BuildRequires: tetex +BuildRequires: latex2html %endif %if %{mdk} BuildRequires: libtermcap-devel @@ -111,8 +160,25 @@ BuildRequires: libGConf2-devel BuildRequires: libstdc++-static-devel BuildRequires: glibc-static-devel BuildRequires: freetype2-devel +BuildRequires: tetex +BuildRequires: latex2html %endif -%if ! %{rh7} && ! %{su9} && ! %{mdk} +%if %{fc3} +BuildRequires: libtermcap-devel +BuildRequires: gtk2-devel >= 2.4 +BuildRequires: libgnomeui-devel >= 2.8 +BuildRequires: glibc-devel >= 2.3 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex +%endif +%if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3} BuildRequires: libtermcap-devel BuildRequires: gtk2-devel >= 2.0 BuildRequires: libgnomeui-devel >= 2.0 @@ -125,12 +191,18 @@ BuildRequires: bonobo-activation-devel BuildRequires: GConf2-devel BuildRequires: linc-devel BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex %endif -%if %{mysql} +%if %{mysql} && ! %{mysql4} BuildRequires: mysql-devel >= 3.23 %endif +%if %{mysql} && %{mysql4} +BuildRequires: mysql-devel >= 4.0 +%endif + %if %{postgresql} && %{wb3} BuildRequires: rh-postgresql-devel >= 7 %endif @@ -168,6 +240,7 @@ Requires: readline, ncurses, libstdc++, zlib %if %{sqlite} Conflicts: sqlite, sqlite-tools %endif + %if %{rh7} Requires: glibc >= 2.2 Requires: libtermcap @@ -180,18 +253,34 @@ Requires: termcap Requires: glibc >= 2.3 Requires: libtermcap %endif -%if %{mysql} && ! %{su9} && ! %{mdk} + +%if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-server >= 3.23 %endif -%if %{mysql} && %{su9} +%if %{mysql} && ! %{su9} && ! %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-server >= 4.0 +%endif + +%if %{mysql} && %{su9} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-client >= 3.23 %endif -%if %{mysql} && %{mdk} +%if %{mysql} && %{su9} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + +%if %{mysql} && %{mdk} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-client >= 3.23 %endif +%if %{mysql} && %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + %if %{postgresql} && %{wb3} Requires: rh-postgresql >= 7 Requires: rh-postgresql-server >= 7 @@ -268,7 +357,7 @@ console program. Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons -Requires: coreutils, util-linux, libc5, bacula-fd, cdrecord, mkisofs, make +Requires: coreutils, util-linux, bacula-fd, cdrecord, mkisofs, make %description rescue Bacula - It comes by night and sucks the vital essence from your computers. @@ -282,7 +371,7 @@ features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. This package installs scripts for disaster recovery and builds rescue -floppy disks for bare metal recovery. This package includes tomsrtbt +floppy disks and cdroms for bare metal recovery. This package includes tomsrtbt (http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a tool to build a boot floppy disk. @@ -290,14 +379,20 @@ You need to have the bacula-sqlite, bacula-mysql, bacula-postgresql or bacula-client package for your platform installed and configured before installing this package. -To create a boot disk run "./getdiskinfo" from the /etc/bacula/rescue +To create a floppy boot disk run "./getdiskinfo" from the /etc/bacula/rescue/floppy directory (this is done when the package is first installed), -then run "./install.s" from the /etc/bacula/rescue/tomsrtbt/ +then run "./install.s" from the /etc/bacula/rescue/floppy/tomsrtbt/ directory. To make the bacula rescue disk run "./make_rescue_disk --copy-static-bacula --copy-etc-files" -from the /etc/bacula/rescue directory. To recreate the rescue +from the /etc/bacula/rescue/floppy directory. To recreate the rescue information for this system run ./getdiskinfo again. +To create a rescue cdrom run "make all" from the /etc/bacula/rescue/cdrom +directory which will create an iso image file. You can burn that image with your +favorite cd burning utility or run "make burn" after examining and possibly +adjusting /etc/bacula/rescue/cdrom/Makefile. To recreate the rescue +information for this system run /etc/bacula/rescue/cdrom/bacula/getdiskinfo again. + %package updatedb Summary: Bacula - The Network Backup Solution @@ -356,7 +451,19 @@ Requires: libbonoboui >= 2.0 Requires: GConf2 Requires: freetype2 %endif -%if ! %{rh7} && ! %{su9} && ! %{mdk} +%if %{fc3} +Requires: gtk2 >= 2.4 +Requires: libgnomeui >= 2.8 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3} Requires: gtk2 >= 2.0 Requires: libgnomeui >= 2.0 Requires: glibc >= 2.3 @@ -429,6 +536,15 @@ patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch %endif +# 64 bit lib location hacks +# this is the location on redhat type platforms, don't know about others yet +%if %{x86_64} +export LDFLAGS=-L/usr/lib64 +%endif +%if %{mysql} && %{x86_64} +export LDFLAGS=-L/usr/lib64/mysql +%endif + %configure \ --prefix=/usr \ --sbindir=/usr/sbin \ @@ -464,12 +580,19 @@ cd src/filed strip static-bacula-fd cd ../../ +cd doc/latex +make +cd ../../ + %install cwd=${PWD} [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" mkdir -p $RPM_BUILD_ROOT/etc/init.d mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services +mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps %if %{rh7} mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System @@ -508,14 +631,11 @@ make \ mtx-install cd ${cwd} -# setup the manual for the doc dir and correct some broken CVS permissions +# setup the manual for the doc dir mkdir html-manual -cp -p doc/html-manual/*.html html-manual/ -cp -p doc/html-manual/*.jpg html-manual/ -cp -p doc/html-manual/*.gif html-manual/ -cp -p doc/html-manual/*.css html-manual/ -chmod 644 html-manual/* -chmod 644 doc/bacula.pdf +cp -p doc/latex/bacula/*.html html-manual/ +cp -p doc/latex/bacula/*.png html-manual/ +cp -p doc/latex/bacula/*.css html-manual/ # fixme - make installs the mysql scripts for sqlite build %if %{sqlite} @@ -562,7 +682,7 @@ cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.ap cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console %endif -%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{mdk} +%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{mdk} cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console @@ -613,6 +733,14 @@ cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/tomsrtbt/ # install the updatedb scripts cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/ +# install the logwatch scripts +cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf + # now clean up permissions that are left broken by the install chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql chmod o-rwx $RPM_BUILD_ROOT/var/bacula @@ -650,19 +778,24 @@ chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %dir %{working_dir} @@ -687,7 +820,7 @@ chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf %pre mysql # test for bacula database older than version 7 # note: this ASSUMES no password has been set for bacula database -DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." @@ -714,7 +847,7 @@ fi # test for an existing database # note: this ASSUMES no password has been set for bacula database -DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` # grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then @@ -738,10 +871,10 @@ elif [ "$DB_VER" -lt "8" ]; then fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -779,19 +912,24 @@ fi /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %{sqlite_bindir}/libsqlite.a %{sqlite_bindir}/sqlite.h @@ -820,7 +958,7 @@ fi %pre sqlite # test for bacula database older than version 7 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then - DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." echo "You appear to be running database version $DB_VER. You must first update" @@ -846,7 +984,7 @@ fi # test for an existing database if [ -s %{working_dir}/bacula.db ]; then - DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1` # check to see if we need to upgrade a 1.34 or lower database if [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade requires a database update to version 8. You appear to" @@ -875,10 +1013,10 @@ else fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -916,19 +1054,24 @@ fi /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %dir %{working_dir} @@ -953,7 +1096,7 @@ fi %pre postgresql # test for bacula database older than version 7 # note: this ASSUMES no password has been set for bacula database -DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." @@ -975,17 +1118,17 @@ fi # test for an existing database # note: this ASSUMES no password has been set for bacula database -DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` # grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then echo "Hmm, doesn't look like you have an existing database." - echo "Granting privileges for PostgreSQL user bacula..." - /etc/bacula/grant_postgresql_privileges echo "Creating PostgreSQL bacula database..." /etc/bacula/create_postgresql_database echo "Creating bacula tables..." /etc/bacula/make_postgresql_tables + echo "Granting privileges for PostgreSQL user bacula..." + /etc/bacula/grant_postgresql_privileges # check to see if we need to upgrade a 1.34 or lower database elif [ "$DB_VER" -lt "8" ]; then @@ -999,7 +1142,7 @@ elif [ "$DB_VER" -lt "8" ]; then fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 echo "The group %{daemon_group} has been added to %{groupfile}." @@ -1023,7 +1166,8 @@ fi /etc/bacula/bconsole /etc/init.d/bacula-fd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /etc/logrotate.d/bacula %config(noreplace) /etc/bacula/bacula-fd.conf @@ -1048,7 +1192,7 @@ fi HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -1065,8 +1209,8 @@ fi %post rescue # link our current installed conf file to the rescue directory -ln -s /etc/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf -ln -s /etc/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf +ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf +ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf # run getdiskinfo echo "Creating rescue files for this system..." @@ -1114,7 +1258,7 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %if ! %{rh7} && ! %{rh8} /usr/sbin/bacula-tray-monitor -/etc/bacula/tray-monitor.conf +%config(noreplace) /etc/bacula/tray-monitor.conf /usr/share/pixmaps/bacula-tray-monitor.xpm /usr/share/applications/bacula-tray-monitor.desktop %endif @@ -1128,6 +1272,41 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %changelog +* Sun Apr 17 2005 D. Scott Barninger +- release 1.36.3 update docs +* Tue Apr 05 2005 D. Scott Barninger +- add centos4 build tag +- add x86_64 build tag +* Sun Apr 03 2005 D. Scott Barninger +- add rhel4 build tag +- clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4 +* Sun Mar 06 2005 D. Scott Barninger +- add rhel3 build tag +* Tue Mar 01 2005 D. Scott Barninger +- fix tray-monitor.conf for noreplace +* Mon Feb 28 2005 D. Scott Barninger +- fix distribution check for Fedora and Whitebox +* Sun Feb 06 2005 D. Scott Barninger +- add logwatch script +- add dvd scripts +* Sat Jan 15 2005 D. Scott Barninger +- add build for Fedora Core 3 (linc now included in ORDit2) +- add mysql4 define for Mandrake 10.1 +* Fri Jan 14 2005 D. Scott Barninger +- fix {group_file} variable in post scripts +* Thu Dec 30 2004 D. Scott Barninger +- add distribution checking and custom Distribution tag +* Thu Dec 09 2004 D. Scott Barninger +- ASSIGNMENT OF COPYRIGHT +- FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and +- assigns unto Kern Sibbald, his successors, assigns and personal representatives, +- all right, title and interest in and to the copyright in this software RPM +- spec file. D. Scott Barninger warrants good title to said copyright, that it is +- free of all liens, encumbrances or any known claims against said copyright. +* Sat Dec 04 2004 D. Scott Barninger +- bug 183 fixes +- thanks to Daniel Widyono +- update description for rescue package to describe cdrom creation * Thu Nov 18 2004 D. Scott Barninger - update depkgs to 29Oct04 * Fri Nov 12 2004 D. Scott Barninger diff --git a/bacula/platforms/redhat/bacula-dir.in b/bacula/platforms/redhat/bacula-dir.in index 84cca2904a..ec9992f773 100755 --- a/bacula/platforms/redhat/bacula-dir.in +++ b/bacula/platforms/redhat/bacula-dir.in @@ -31,14 +31,14 @@ case "$1" in if [ "${DIR_GROUP}" != '' ]; then OPTIONS="${OPTIONS} -g ${DIR_GROUP}" fi - echo -n "Starting the Bacula Director: " + echo -n "Starting Bacula Director services: " daemon @sbindir@/bacula-dir $2 ${OPTIONS} -c @sysconfdir@/bacula-dir.conf RETVAL=$? echo [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir ;; stop) - echo -n "Stopping the Director daemon: " + echo -n "Stopping Bacula Director services: " killproc @sbindir@/bacula-dir RETVAL=$? echo diff --git a/bacula/platforms/redhat/bacula-fd.in b/bacula/platforms/redhat/bacula-fd.in index dc7bf27177..9e72008324 100755 --- a/bacula/platforms/redhat/bacula-fd.in +++ b/bacula/platforms/redhat/bacula-fd.in @@ -31,14 +31,14 @@ case "$1" in if [ "${FD_GROUP}" != '' ]; then OPTIONS="${OPTIONS} -g ${FD_GROUP}" fi - echo -n "Starting the Bacula File daemon: " + echo -n "Starting Bacula File services: " daemon @sbindir@/bacula-fd $2 ${OPTIONS} -c @sysconfdir@/bacula-fd.conf RETVAL=$? echo [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd ;; stop) - echo -n "Stopping the Bacula File daemon: " + echo -n "Stopping Bacula File services: " killproc @sbindir@/bacula-fd RETVAL=$? echo diff --git a/bacula/platforms/redhat/bacula-sd.in b/bacula/platforms/redhat/bacula-sd.in index cf8d1af373..3bfd6ed021 100755 --- a/bacula/platforms/redhat/bacula-sd.in +++ b/bacula/platforms/redhat/bacula-sd.in @@ -32,14 +32,14 @@ case "$1" in OPTIONS="${OPTIONS} -g ${SD_GROUP}" fi - echo -n "Starting the Bacula Storage daemon: " + echo -n "Starting Bacula Storage services: " daemon @sbindir@/bacula-sd $2 ${OPTIONS} -c @sysconfdir@/bacula-sd.conf RETVAL=$? echo [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd ;; stop) - echo -n "Stopping the Bacula Storage daemon: " + echo -n "Stopping Bacula Storage services: " killproc @sbindir@/bacula-sd RETVAL=$? echo diff --git a/bacula/platforms/redhat/bacula.spec.in b/bacula/platforms/redhat/bacula.spec.in index 3e9abd6082..3374e8d0a7 100644 --- a/bacula/platforms/redhat/bacula.spec.in +++ b/bacula/platforms/redhat/bacula.spec.in @@ -1,3 +1,6 @@ +# Bacula RPM spec file +# Copyright (C) 2004 Kern Sibbald + # Platform Build Configuration # basic defines for every build @@ -19,15 +22,26 @@ %{?build_rh8:%define rh8 1} %define rh9 0 %{?build_rh9:%define rh9 1} -# Fedora Core 1 build +# Fedora Core build %define fc1 0 %{?build_fc1:%define fc1 1} +%define fc3 0 +%{?build_fc3:%define fc3 1} # Whitebox Enterprise build -# this should also work for RHEL %define wb3 0 %{?build_wb3:%define wb3 1} +# RedHat Enterprise builds +%define rhel3 0 +%{?build_rhel3:%define rhel3 1} +%{?build_rhel3:%define wb3 1} +%define rhel4 0 +%{?build_rhel4:%define rhel4 1} +%{?build_rhel4:%define fc3 1} +# CentOS build +%define centos4 0 +%{?build_centos4:%define centos4 1} +%{?build_centos4:%define fc3 1} # SuSE build -# this is known to build on SuSE 8.2 and 9.0 %define su9 0 %{?build_su9:%define su9 1} # Mandrake build @@ -35,7 +49,7 @@ %{?build_mdk:%define mdk 1} # test for a platform definition -%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{wb3} && ! %{su9} && ! %{mdk} +%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{fc3} && ! %{wb3} && ! %{su9} && ! %{mdk} %{error: You must specify a platform. Please examine the spec file.} exit 1 %endif @@ -44,6 +58,10 @@ exit 1 # set for database support desired or define the build_xxx on the command line %define mysql 0 %{?build_mysql:%define mysql 1} +# if using mysql 4.x define this and mysql above +# currently: Mandrake 10.1, SuSE 9.2, RHEL4 +%define mysql4 0 +%{?build_mysql4:%define mysql4 1} %define sqlite 0 %{?build_sqlite:%define sqlite 1} %define postgresql 0 @@ -55,6 +73,33 @@ exit 1 exit 1 %endif +# 64 bit support +%define x86_64 0 +%{?build_x86_64:%define x86_64 1} + +# check what distribution we are +%if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4} +%define _dist %(grep Red /etc/redhat-release) +%endif +%if %{fc1} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{centos4} +%define _dist %(grep CentOS /etc/redhat-release) +%endif +%if %{fc3} && ! %{rhel4} && ! %{centos4} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{wb3} && ! %{rhel3} +%define _dist %(grep White /etc/whitebox-release) +%endif +%if %{su9} +%define _dist %(grep SuSE /etc/SuSE-release) +%endif +%if %{mdk} +%define _dist %(grep Mandrake /etc/mandrake-release) +%endif + Summary: Bacula - The Network Backup Solution Name: bacula Version: @VERSION@ @@ -68,9 +113,9 @@ Source3: Release_Notes-%{version}-%{release}.tar.gz BuildRoot: %{_tmppath}/%{name}-root URL: http://www.bacula.org/ Vendor: The Bacula Team -Distribution: The Bacula Team +Distribution: %{_dist} Packager: D. Scott Barninger -BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel +BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel, perl BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig %if %{rh7} BuildRequires: libtermcap-devel @@ -81,6 +126,8 @@ BuildRequires: ORBit-devel BuildRequires: bonobo-devel BuildRequires: GConf-devel BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex %endif %if %{su9} BuildRequires: termcap @@ -96,6 +143,8 @@ BuildRequires: bonobo-activation-devel BuildRequires: gconf2-devel BuildRequires: linc-devel BuildRequires: freetype2-devel +BuildRequires: tetex +BuildRequires: latex2html %endif %if %{mdk} BuildRequires: libtermcap-devel @@ -111,8 +160,25 @@ BuildRequires: libGConf2-devel BuildRequires: libstdc++-static-devel BuildRequires: glibc-static-devel BuildRequires: freetype2-devel +BuildRequires: tetex +BuildRequires: latex2html %endif -%if ! %{rh7} && ! %{su9} && ! %{mdk} +%if %{fc3} +BuildRequires: libtermcap-devel +BuildRequires: gtk2-devel >= 2.4 +BuildRequires: libgnomeui-devel >= 2.8 +BuildRequires: glibc-devel >= 2.3 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex +%endif +%if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3} BuildRequires: libtermcap-devel BuildRequires: gtk2-devel >= 2.0 BuildRequires: libgnomeui-devel >= 2.0 @@ -125,12 +191,18 @@ BuildRequires: bonobo-activation-devel BuildRequires: GConf2-devel BuildRequires: linc-devel BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex %endif -%if %{mysql} +%if %{mysql} && ! %{mysql4} BuildRequires: mysql-devel >= 3.23 %endif +%if %{mysql} && %{mysql4} +BuildRequires: mysql-devel >= 4.0 +%endif + %if %{postgresql} && %{wb3} BuildRequires: rh-postgresql-devel >= 7 %endif @@ -168,6 +240,7 @@ Requires: readline, ncurses, libstdc++, zlib %if %{sqlite} Conflicts: sqlite, sqlite-tools %endif + %if %{rh7} Requires: glibc >= 2.2 Requires: libtermcap @@ -180,18 +253,34 @@ Requires: termcap Requires: glibc >= 2.3 Requires: libtermcap %endif -%if %{mysql} && ! %{su9} && ! %{mdk} + +%if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-server >= 3.23 %endif -%if %{mysql} && %{su9} +%if %{mysql} && ! %{su9} && ! %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-server >= 4.0 +%endif + +%if %{mysql} && %{su9} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-client >= 3.23 %endif -%if %{mysql} && %{mdk} +%if %{mysql} && %{su9} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + +%if %{mysql} && %{mdk} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-client >= 3.23 %endif +%if %{mysql} && %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + %if %{postgresql} && %{wb3} Requires: rh-postgresql >= 7 Requires: rh-postgresql-server >= 7 @@ -268,7 +357,7 @@ console program. Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons -Requires: coreutils, util-linux, libc5, bacula-fd, cdrecord, mkisofs, make +Requires: coreutils, util-linux, bacula-fd, cdrecord, mkisofs, make %description rescue Bacula - It comes by night and sucks the vital essence from your computers. @@ -282,7 +371,7 @@ features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. This package installs scripts for disaster recovery and builds rescue -floppy disks for bare metal recovery. This package includes tomsrtbt +floppy disks and cdroms for bare metal recovery. This package includes tomsrtbt (http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a tool to build a boot floppy disk. @@ -290,14 +379,20 @@ You need to have the bacula-sqlite, bacula-mysql, bacula-postgresql or bacula-client package for your platform installed and configured before installing this package. -To create a boot disk run "./getdiskinfo" from the /etc/bacula/rescue +To create a floppy boot disk run "./getdiskinfo" from the /etc/bacula/rescue/floppy directory (this is done when the package is first installed), -then run "./install.s" from the /etc/bacula/rescue/tomsrtbt/ +then run "./install.s" from the /etc/bacula/rescue/floppy/tomsrtbt/ directory. To make the bacula rescue disk run "./make_rescue_disk --copy-static-bacula --copy-etc-files" -from the /etc/bacula/rescue directory. To recreate the rescue +from the /etc/bacula/rescue/floppy directory. To recreate the rescue information for this system run ./getdiskinfo again. +To create a rescue cdrom run "make all" from the /etc/bacula/rescue/cdrom +directory which will create an iso image file. You can burn that image with your +favorite cd burning utility or run "make burn" after examining and possibly +adjusting /etc/bacula/rescue/cdrom/Makefile. To recreate the rescue +information for this system run /etc/bacula/rescue/cdrom/bacula/getdiskinfo again. + %package updatedb Summary: Bacula - The Network Backup Solution @@ -356,7 +451,19 @@ Requires: libbonoboui >= 2.0 Requires: GConf2 Requires: freetype2 %endif -%if ! %{rh7} && ! %{su9} && ! %{mdk} +%if %{fc3} +Requires: gtk2 >= 2.4 +Requires: libgnomeui >= 2.8 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3} Requires: gtk2 >= 2.0 Requires: libgnomeui >= 2.0 Requires: glibc >= 2.3 @@ -429,6 +536,15 @@ patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch %endif +# 64 bit lib location hacks +# this is the location on redhat type platforms, don't know about others yet +%if %{x86_64} +export LDFLAGS=-L/usr/lib64 +%endif +%if %{mysql} && %{x86_64} +export LDFLAGS=-L/usr/lib64/mysql +%endif + %configure \ --prefix=/usr \ --sbindir=/usr/sbin \ @@ -464,12 +580,19 @@ cd src/filed strip static-bacula-fd cd ../../ +cd doc/latex +make +cd ../../ + %install cwd=${PWD} [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" mkdir -p $RPM_BUILD_ROOT/etc/init.d mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services +mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps %if %{rh7} mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System @@ -508,14 +631,11 @@ make \ mtx-install cd ${cwd} -# setup the manual for the doc dir and correct some broken CVS permissions +# setup the manual for the doc dir mkdir html-manual -cp -p doc/html-manual/*.html html-manual/ -cp -p doc/html-manual/*.jpg html-manual/ -cp -p doc/html-manual/*.gif html-manual/ -cp -p doc/html-manual/*.css html-manual/ -chmod 644 html-manual/* -chmod 644 doc/bacula.pdf +cp -p doc/latex/bacula/*.html html-manual/ +cp -p doc/latex/bacula/*.png html-manual/ +cp -p doc/latex/bacula/*.css html-manual/ # fixme - make installs the mysql scripts for sqlite build %if %{sqlite} @@ -562,7 +682,7 @@ cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.ap cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console %endif -%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{mdk} +%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{mdk} cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console @@ -613,6 +733,14 @@ cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/tomsrtbt/ # install the updatedb scripts cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/ +# install the logwatch scripts +cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf + # now clean up permissions that are left broken by the install chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql chmod o-rwx $RPM_BUILD_ROOT/var/bacula @@ -650,19 +778,24 @@ chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %dir %{working_dir} @@ -687,7 +820,7 @@ chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf %pre mysql # test for bacula database older than version 7 # note: this ASSUMES no password has been set for bacula database -DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." @@ -714,7 +847,7 @@ fi # test for an existing database # note: this ASSUMES no password has been set for bacula database -DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` # grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then @@ -738,10 +871,10 @@ elif [ "$DB_VER" -lt "8" ]; then fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -779,19 +912,24 @@ fi /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %{sqlite_bindir}/libsqlite.a %{sqlite_bindir}/sqlite.h @@ -820,7 +958,7 @@ fi %pre sqlite # test for bacula database older than version 7 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then - DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." echo "You appear to be running database version $DB_VER. You must first update" @@ -846,7 +984,7 @@ fi # test for an existing database if [ -s %{working_dir}/bacula.db ]; then - DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1` # check to see if we need to upgrade a 1.34 or lower database if [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade requires a database update to version 8. You appear to" @@ -875,10 +1013,10 @@ else fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -916,19 +1054,24 @@ fi /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %dir %{working_dir} @@ -953,7 +1096,7 @@ fi %pre postgresql # test for bacula database older than version 7 # note: this ASSUMES no password has been set for bacula database -DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." @@ -975,17 +1118,17 @@ fi # test for an existing database # note: this ASSUMES no password has been set for bacula database -DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` # grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then echo "Hmm, doesn't look like you have an existing database." - echo "Granting privileges for PostgreSQL user bacula..." - /etc/bacula/grant_postgresql_privileges echo "Creating PostgreSQL bacula database..." /etc/bacula/create_postgresql_database echo "Creating bacula tables..." /etc/bacula/make_postgresql_tables + echo "Granting privileges for PostgreSQL user bacula..." + /etc/bacula/grant_postgresql_privileges # check to see if we need to upgrade a 1.34 or lower database elif [ "$DB_VER" -lt "8" ]; then @@ -999,7 +1142,7 @@ elif [ "$DB_VER" -lt "8" ]; then fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 echo "The group %{daemon_group} has been added to %{groupfile}." @@ -1023,7 +1166,8 @@ fi /etc/bacula/bconsole /etc/init.d/bacula-fd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /etc/logrotate.d/bacula %config(noreplace) /etc/bacula/bacula-fd.conf @@ -1048,7 +1192,7 @@ fi HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -1065,8 +1209,8 @@ fi %post rescue # link our current installed conf file to the rescue directory -ln -s /etc/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf -ln -s /etc/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf +ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf +ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf # run getdiskinfo echo "Creating rescue files for this system..." @@ -1114,7 +1258,7 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %if ! %{rh7} && ! %{rh8} /usr/sbin/bacula-tray-monitor -/etc/bacula/tray-monitor.conf +%config(noreplace) /etc/bacula/tray-monitor.conf /usr/share/pixmaps/bacula-tray-monitor.xpm /usr/share/applications/bacula-tray-monitor.desktop %endif @@ -1128,6 +1272,41 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %changelog +* Sun Apr 17 2005 D. Scott Barninger +- release 1.36.3 update docs +* Tue Apr 05 2005 D. Scott Barninger +- add centos4 build tag +- add x86_64 build tag +* Sun Apr 03 2005 D. Scott Barninger +- add rhel4 build tag +- clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4 +* Sun Mar 06 2005 D. Scott Barninger +- add rhel3 build tag +* Tue Mar 01 2005 D. Scott Barninger +- fix tray-monitor.conf for noreplace +* Mon Feb 28 2005 D. Scott Barninger +- fix distribution check for Fedora and Whitebox +* Sun Feb 06 2005 D. Scott Barninger +- add logwatch script +- add dvd scripts +* Sat Jan 15 2005 D. Scott Barninger +- add build for Fedora Core 3 (linc now included in ORDit2) +- add mysql4 define for Mandrake 10.1 +* Fri Jan 14 2005 D. Scott Barninger +- fix {group_file} variable in post scripts +* Thu Dec 30 2004 D. Scott Barninger +- add distribution checking and custom Distribution tag +* Thu Dec 09 2004 D. Scott Barninger +- ASSIGNMENT OF COPYRIGHT +- FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and +- assigns unto Kern Sibbald, his successors, assigns and personal representatives, +- all right, title and interest in and to the copyright in this software RPM +- spec file. D. Scott Barninger warrants good title to said copyright, that it is +- free of all liens, encumbrances or any known claims against said copyright. +* Sat Dec 04 2004 D. Scott Barninger +- bug 183 fixes +- thanks to Daniel Widyono +- update description for rescue package to describe cdrom creation * Thu Nov 18 2004 D. Scott Barninger - update depkgs to 29Oct04 * Fri Nov 12 2004 D. Scott Barninger diff --git a/bacula/platforms/suse/Makefile.in b/bacula/platforms/suse/Makefile.in index 6a6225fb96..9e54418e7c 100644 --- a/bacula/platforms/suse/Makefile.in +++ b/bacula/platforms/suse/Makefile.in @@ -17,10 +17,10 @@ install-autostart: install-autostart-fd install-autostart-sd install-autostart-d install-autostart-fd: - @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-fd; then \ + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-fd; then \ /sbin/chkconfig --del bacula-fd; \ fi - @$(INSTALL_PROGRAM) -m 744 bacula-fd $(DESTDIR)/etc/rc.d/init.d/bacula-fd + @$(INSTALL_PROGRAM) -m 744 bacula-fd $(DESTDIR)/etc/init.d/bacula-fd # set symlinks for script at startup and shutdown @if test x$(DESTDIR) = x ; then \ /sbin/chkconfig --add bacula-fd; \ @@ -28,10 +28,10 @@ install-autostart-fd: install-autostart-sd: - @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-sd; then \ + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-sd; then \ /sbin/chkconfig --del bacula-sd; \ fi - @$(INSTALL_PROGRAM) -m 744 bacula-sd $(DESTDIR)/etc/rc.d/init.d/bacula-sd + @$(INSTALL_PROGRAM) -m 744 bacula-sd $(DESTDIR)/etc/init.d/bacula-sd # set symlinks for script at startup and shutdown @if test x$(DESTDIR) = x ; then \ /sbin/chkconfig --add bacula-sd; \ @@ -39,10 +39,10 @@ install-autostart-sd: install-autostart-dir: - @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-dir; then \ + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-dir; then \ /sbin/chkconfig --del bacula-dir; \ fi - @$(INSTALL_PROGRAM) -m 744 bacula-dir $(DESTDIR)/etc/rc.d/init.d/bacula-dir + @$(INSTALL_PROGRAM) -m 744 bacula-dir $(DESTDIR)/etc/init.d/bacula-dir # set symlinks for script at startup and shutdown @if test x$(DESTDIR) = x ; then \ /sbin/chkconfig --add bacula-dir; \ @@ -54,23 +54,23 @@ uninstall: uninstall-autostart uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir uninstall-autostart-fd: - @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-fd; then \ + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-fd; then \ /sbin/chkconfig --del bacula-fd; \ fi - @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-fd + @rm -f $(DESTDIR)/etc/init.d/bacula-fd uninstall-autostart-sd: - @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-sd; then \ + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-sd; then \ /sbin/chkconfig --del bacula-sd; \ fi - @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-sd + @rm -f $(DESTDIR)/etc/init.d/bacula-sd uninstall-autostart-dir: - @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-dir; then \ + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-dir; then \ /sbin/chkconfig --del bacula-dir; \ fi - @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-dir + @rm -f $(DESTDIR)/etc/init.d/bacula-dir clean: @rm -f 1 2 3 @@ -83,4 +83,3 @@ distclean: clean devclean: clean @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec @rm -f bacula-sd bacula-fd bacula-dir - diff --git a/bacula/platforms/suse/bacula.spec.in b/bacula/platforms/suse/bacula.spec.in index 3e9abd6082..3374e8d0a7 100644 --- a/bacula/platforms/suse/bacula.spec.in +++ b/bacula/platforms/suse/bacula.spec.in @@ -1,3 +1,6 @@ +# Bacula RPM spec file +# Copyright (C) 2004 Kern Sibbald + # Platform Build Configuration # basic defines for every build @@ -19,15 +22,26 @@ %{?build_rh8:%define rh8 1} %define rh9 0 %{?build_rh9:%define rh9 1} -# Fedora Core 1 build +# Fedora Core build %define fc1 0 %{?build_fc1:%define fc1 1} +%define fc3 0 +%{?build_fc3:%define fc3 1} # Whitebox Enterprise build -# this should also work for RHEL %define wb3 0 %{?build_wb3:%define wb3 1} +# RedHat Enterprise builds +%define rhel3 0 +%{?build_rhel3:%define rhel3 1} +%{?build_rhel3:%define wb3 1} +%define rhel4 0 +%{?build_rhel4:%define rhel4 1} +%{?build_rhel4:%define fc3 1} +# CentOS build +%define centos4 0 +%{?build_centos4:%define centos4 1} +%{?build_centos4:%define fc3 1} # SuSE build -# this is known to build on SuSE 8.2 and 9.0 %define su9 0 %{?build_su9:%define su9 1} # Mandrake build @@ -35,7 +49,7 @@ %{?build_mdk:%define mdk 1} # test for a platform definition -%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{wb3} && ! %{su9} && ! %{mdk} +%if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{fc3} && ! %{wb3} && ! %{su9} && ! %{mdk} %{error: You must specify a platform. Please examine the spec file.} exit 1 %endif @@ -44,6 +58,10 @@ exit 1 # set for database support desired or define the build_xxx on the command line %define mysql 0 %{?build_mysql:%define mysql 1} +# if using mysql 4.x define this and mysql above +# currently: Mandrake 10.1, SuSE 9.2, RHEL4 +%define mysql4 0 +%{?build_mysql4:%define mysql4 1} %define sqlite 0 %{?build_sqlite:%define sqlite 1} %define postgresql 0 @@ -55,6 +73,33 @@ exit 1 exit 1 %endif +# 64 bit support +%define x86_64 0 +%{?build_x86_64:%define x86_64 1} + +# check what distribution we are +%if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4} +%define _dist %(grep Red /etc/redhat-release) +%endif +%if %{fc1} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{centos4} +%define _dist %(grep CentOS /etc/redhat-release) +%endif +%if %{fc3} && ! %{rhel4} && ! %{centos4} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{wb3} && ! %{rhel3} +%define _dist %(grep White /etc/whitebox-release) +%endif +%if %{su9} +%define _dist %(grep SuSE /etc/SuSE-release) +%endif +%if %{mdk} +%define _dist %(grep Mandrake /etc/mandrake-release) +%endif + Summary: Bacula - The Network Backup Solution Name: bacula Version: @VERSION@ @@ -68,9 +113,9 @@ Source3: Release_Notes-%{version}-%{release}.tar.gz BuildRoot: %{_tmppath}/%{name}-root URL: http://www.bacula.org/ Vendor: The Bacula Team -Distribution: The Bacula Team +Distribution: %{_dist} Packager: D. Scott Barninger -BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel +BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel, perl BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig %if %{rh7} BuildRequires: libtermcap-devel @@ -81,6 +126,8 @@ BuildRequires: ORBit-devel BuildRequires: bonobo-devel BuildRequires: GConf-devel BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex %endif %if %{su9} BuildRequires: termcap @@ -96,6 +143,8 @@ BuildRequires: bonobo-activation-devel BuildRequires: gconf2-devel BuildRequires: linc-devel BuildRequires: freetype2-devel +BuildRequires: tetex +BuildRequires: latex2html %endif %if %{mdk} BuildRequires: libtermcap-devel @@ -111,8 +160,25 @@ BuildRequires: libGConf2-devel BuildRequires: libstdc++-static-devel BuildRequires: glibc-static-devel BuildRequires: freetype2-devel +BuildRequires: tetex +BuildRequires: latex2html %endif -%if ! %{rh7} && ! %{su9} && ! %{mdk} +%if %{fc3} +BuildRequires: libtermcap-devel +BuildRequires: gtk2-devel >= 2.4 +BuildRequires: libgnomeui-devel >= 2.8 +BuildRequires: glibc-devel >= 2.3 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex +%endif +%if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3} BuildRequires: libtermcap-devel BuildRequires: gtk2-devel >= 2.0 BuildRequires: libgnomeui-devel >= 2.0 @@ -125,12 +191,18 @@ BuildRequires: bonobo-activation-devel BuildRequires: GConf2-devel BuildRequires: linc-devel BuildRequires: freetype-devel +BuildRequires: tetex +BuildRequires: tetex-latex %endif -%if %{mysql} +%if %{mysql} && ! %{mysql4} BuildRequires: mysql-devel >= 3.23 %endif +%if %{mysql} && %{mysql4} +BuildRequires: mysql-devel >= 4.0 +%endif + %if %{postgresql} && %{wb3} BuildRequires: rh-postgresql-devel >= 7 %endif @@ -168,6 +240,7 @@ Requires: readline, ncurses, libstdc++, zlib %if %{sqlite} Conflicts: sqlite, sqlite-tools %endif + %if %{rh7} Requires: glibc >= 2.2 Requires: libtermcap @@ -180,18 +253,34 @@ Requires: termcap Requires: glibc >= 2.3 Requires: libtermcap %endif -%if %{mysql} && ! %{su9} && ! %{mdk} + +%if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-server >= 3.23 %endif -%if %{mysql} && %{su9} +%if %{mysql} && ! %{su9} && ! %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-server >= 4.0 +%endif + +%if %{mysql} && %{su9} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-client >= 3.23 %endif -%if %{mysql} && %{mdk} +%if %{mysql} && %{su9} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + +%if %{mysql} && %{mdk} && ! %{mysql4} Requires: mysql >= 3.23 Requires: mysql-client >= 3.23 %endif +%if %{mysql} && %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + %if %{postgresql} && %{wb3} Requires: rh-postgresql >= 7 Requires: rh-postgresql-server >= 7 @@ -268,7 +357,7 @@ console program. Summary: Bacula - The Network Backup Solution Group: System Environment/Daemons -Requires: coreutils, util-linux, libc5, bacula-fd, cdrecord, mkisofs, make +Requires: coreutils, util-linux, bacula-fd, cdrecord, mkisofs, make %description rescue Bacula - It comes by night and sucks the vital essence from your computers. @@ -282,7 +371,7 @@ features that make it easy to find and recover lost or damaged files. Bacula source code has been released under the GPL version 2 license. This package installs scripts for disaster recovery and builds rescue -floppy disks for bare metal recovery. This package includes tomsrtbt +floppy disks and cdroms for bare metal recovery. This package includes tomsrtbt (http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a tool to build a boot floppy disk. @@ -290,14 +379,20 @@ You need to have the bacula-sqlite, bacula-mysql, bacula-postgresql or bacula-client package for your platform installed and configured before installing this package. -To create a boot disk run "./getdiskinfo" from the /etc/bacula/rescue +To create a floppy boot disk run "./getdiskinfo" from the /etc/bacula/rescue/floppy directory (this is done when the package is first installed), -then run "./install.s" from the /etc/bacula/rescue/tomsrtbt/ +then run "./install.s" from the /etc/bacula/rescue/floppy/tomsrtbt/ directory. To make the bacula rescue disk run "./make_rescue_disk --copy-static-bacula --copy-etc-files" -from the /etc/bacula/rescue directory. To recreate the rescue +from the /etc/bacula/rescue/floppy directory. To recreate the rescue information for this system run ./getdiskinfo again. +To create a rescue cdrom run "make all" from the /etc/bacula/rescue/cdrom +directory which will create an iso image file. You can burn that image with your +favorite cd burning utility or run "make burn" after examining and possibly +adjusting /etc/bacula/rescue/cdrom/Makefile. To recreate the rescue +information for this system run /etc/bacula/rescue/cdrom/bacula/getdiskinfo again. + %package updatedb Summary: Bacula - The Network Backup Solution @@ -356,7 +451,19 @@ Requires: libbonoboui >= 2.0 Requires: GConf2 Requires: freetype2 %endif -%if ! %{rh7} && ! %{su9} && ! %{mdk} +%if %{fc3} +Requires: gtk2 >= 2.4 +Requires: libgnomeui >= 2.8 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3} Requires: gtk2 >= 2.0 Requires: libgnomeui >= 2.0 Requires: glibc >= 2.3 @@ -429,6 +536,15 @@ patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch %endif +# 64 bit lib location hacks +# this is the location on redhat type platforms, don't know about others yet +%if %{x86_64} +export LDFLAGS=-L/usr/lib64 +%endif +%if %{mysql} && %{x86_64} +export LDFLAGS=-L/usr/lib64/mysql +%endif + %configure \ --prefix=/usr \ --sbindir=/usr/sbin \ @@ -464,12 +580,19 @@ cd src/filed strip static-bacula-fd cd ../../ +cd doc/latex +make +cd ../../ + %install cwd=${PWD} [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" mkdir -p $RPM_BUILD_ROOT/etc/init.d mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services +mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps %if %{rh7} mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System @@ -508,14 +631,11 @@ make \ mtx-install cd ${cwd} -# setup the manual for the doc dir and correct some broken CVS permissions +# setup the manual for the doc dir mkdir html-manual -cp -p doc/html-manual/*.html html-manual/ -cp -p doc/html-manual/*.jpg html-manual/ -cp -p doc/html-manual/*.gif html-manual/ -cp -p doc/html-manual/*.css html-manual/ -chmod 644 html-manual/* -chmod 644 doc/bacula.pdf +cp -p doc/latex/bacula/*.html html-manual/ +cp -p doc/latex/bacula/*.png html-manual/ +cp -p doc/latex/bacula/*.css html-manual/ # fixme - make installs the mysql scripts for sqlite build %if %{sqlite} @@ -562,7 +682,7 @@ cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.ap cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console %endif -%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{mdk} +%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{mdk} cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console @@ -613,6 +733,14 @@ cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/floppy/tomsrtbt/ # install the updatedb scripts cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/ +# install the logwatch scripts +cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf + # now clean up permissions that are left broken by the install chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql chmod o-rwx $RPM_BUILD_ROOT/var/bacula @@ -650,19 +778,24 @@ chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %dir %{working_dir} @@ -687,7 +820,7 @@ chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf %pre mysql # test for bacula database older than version 7 # note: this ASSUMES no password has been set for bacula database -DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." @@ -714,7 +847,7 @@ fi # test for an existing database # note: this ASSUMES no password has been set for bacula database -DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` # grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then @@ -738,10 +871,10 @@ elif [ "$DB_VER" -lt "8" ]; then fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -779,19 +912,24 @@ fi /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %{sqlite_bindir}/libsqlite.a %{sqlite_bindir}/sqlite.h @@ -820,7 +958,7 @@ fi %pre sqlite # test for bacula database older than version 7 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then - DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." echo "You appear to be running database version $DB_VER. You must first update" @@ -846,7 +984,7 @@ fi # test for an existing database if [ -s %{working_dir}/bacula.db ]; then - DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null` + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1` # check to see if we need to upgrade a 1.34 or lower database if [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade requires a database update to version 8. You appear to" @@ -875,10 +1013,10 @@ else fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -916,19 +1054,24 @@ fi /etc/bacula/mtx-changer /etc/bacula/btraceback.dbx /etc/bacula/btraceback.gdb +#/etc/bacula/dvd-freespace +#/etc/bacula/dvd-writepart /etc/init.d/bacula-dir /etc/init.d/bacula-fd /etc/init.d/bacula-sd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /usr/man/man1/* /etc/logrotate.d/bacula - +/etc/log.d/scripts/services/bacula %config(noreplace) /etc/bacula/bacula-dir.conf %config(noreplace) /etc/bacula/bacula-fd.conf %config(noreplace) /etc/bacula/bacula-sd.conf %config(noreplace) /etc/bacula/bconsole.conf +%config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%config(noreplace) /etc/log.d/conf/services/bacula.conf /etc/bacula/query.sql %dir %{working_dir} @@ -953,7 +1096,7 @@ fi %pre postgresql # test for bacula database older than version 7 # note: this ASSUMES no password has been set for bacula database -DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "7" ]; then echo "This bacula upgrade will update a bacula database from version 7 to 8." @@ -975,17 +1118,17 @@ fi # test for an existing database # note: this ASSUMES no password has been set for bacula database -DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null` +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` # grant privileges and create tables if they do not exist if [ -z "$DB_VER" ]; then echo "Hmm, doesn't look like you have an existing database." - echo "Granting privileges for PostgreSQL user bacula..." - /etc/bacula/grant_postgresql_privileges echo "Creating PostgreSQL bacula database..." /etc/bacula/create_postgresql_database echo "Creating bacula tables..." /etc/bacula/make_postgresql_tables + echo "Granting privileges for PostgreSQL user bacula..." + /etc/bacula/grant_postgresql_privileges # check to see if we need to upgrade a 1.34 or lower database elif [ "$DB_VER" -lt "8" ]; then @@ -999,7 +1142,7 @@ elif [ "$DB_VER" -lt "8" ]; then fi # create the daemon group -HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 echo "The group %{daemon_group} has been added to %{groupfile}." @@ -1023,7 +1166,8 @@ fi /etc/bacula/bconsole /etc/init.d/bacula-fd -%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc doc/latex/bacula.pdf doc/latex/developers.pdf html-manual ../Release_Notes-%{version}-%{release}.txt /etc/logrotate.d/bacula %config(noreplace) /etc/bacula/bacula-fd.conf @@ -1048,7 +1192,7 @@ fi HAVE_BACULA=`cat %{group_file} | grep %{daemon_group} 2>/dev/null` if [ -z $HAVE_BACULA ]; then %{groupadd} -r %{daemon_group} > /dev/null 2>&1 - echo "The group %{daemon_group} has been added to %{groupfile}." + echo "The group %{daemon_group} has been added to %{group_file}." echo "See the manual chapter Running Bacula for details." fi @@ -1065,8 +1209,8 @@ fi %post rescue # link our current installed conf file to the rescue directory -ln -s /etc/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf -ln -s /etc/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf +ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/floppy/bacula-fd.conf +ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/cdrom/bin/bacula-fd.conf # run getdiskinfo echo "Creating rescue files for this system..." @@ -1114,7 +1258,7 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %if ! %{rh7} && ! %{rh8} /usr/sbin/bacula-tray-monitor -/etc/bacula/tray-monitor.conf +%config(noreplace) /etc/bacula/tray-monitor.conf /usr/share/pixmaps/bacula-tray-monitor.xpm /usr/share/applications/bacula-tray-monitor.desktop %endif @@ -1128,6 +1272,41 @@ echo "The database update scripts were installed to /etc/bacula/updatedb" %changelog +* Sun Apr 17 2005 D. Scott Barninger +- release 1.36.3 update docs +* Tue Apr 05 2005 D. Scott Barninger +- add centos4 build tag +- add x86_64 build tag +* Sun Apr 03 2005 D. Scott Barninger +- add rhel4 build tag +- clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4 +* Sun Mar 06 2005 D. Scott Barninger +- add rhel3 build tag +* Tue Mar 01 2005 D. Scott Barninger +- fix tray-monitor.conf for noreplace +* Mon Feb 28 2005 D. Scott Barninger +- fix distribution check for Fedora and Whitebox +* Sun Feb 06 2005 D. Scott Barninger +- add logwatch script +- add dvd scripts +* Sat Jan 15 2005 D. Scott Barninger +- add build for Fedora Core 3 (linc now included in ORDit2) +- add mysql4 define for Mandrake 10.1 +* Fri Jan 14 2005 D. Scott Barninger +- fix {group_file} variable in post scripts +* Thu Dec 30 2004 D. Scott Barninger +- add distribution checking and custom Distribution tag +* Thu Dec 09 2004 D. Scott Barninger +- ASSIGNMENT OF COPYRIGHT +- FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and +- assigns unto Kern Sibbald, his successors, assigns and personal representatives, +- all right, title and interest in and to the copyright in this software RPM +- spec file. D. Scott Barninger warrants good title to said copyright, that it is +- free of all liens, encumbrances or any known claims against said copyright. +* Sat Dec 04 2004 D. Scott Barninger +- bug 183 fixes +- thanks to Daniel Widyono +- update description for rescue package to describe cdrom creation * Thu Nov 18 2004 D. Scott Barninger - update depkgs to 29Oct04 * Fri Nov 12 2004 D. Scott Barninger diff --git a/bacula/scripts/.cvsignore b/bacula/scripts/.cvsignore index 38362e56b4..b0dbddcbfc 100644 --- a/bacula/scripts/.cvsignore +++ b/bacula/scripts/.cvsignore @@ -1,4 +1,3 @@ -bacula-tray-monitor.desktop bacula-tray-monior.desktop .xvpics logrotate diff --git a/bacula/scripts/bacula.in b/bacula/scripts/bacula.in index 3554e5ed65..9697517383 100755 --- a/bacula/scripts/bacula.in +++ b/bacula/scripts/bacula.in @@ -11,6 +11,12 @@ PSCMD="@PSCMD@" +# +# On Solaris, you may need to use nawk, or alternatively, +# add the GNU binaries to your path, such as /usr/xpg4/bin +# +AWK=@AWK@ + # All these are not *really* needed but it makes it # easier to "steal" this code for the development # environment where they are different. @@ -35,6 +41,8 @@ FD_GROUP=@fd_group@ SD_USER=@sd_user@ SD_GROUP=@sd_group@ +PIDOF=@PIDOF@ + # A function to stop a program. killproc() { RC=0 @@ -120,8 +128,8 @@ pidofproc() { fi # Next try "pidof" - if [ -x /sbin/pidof ] ; then - pid=`/sbin/pidof $1` + if [ -x ${PIDOF} ] ; then + pid=`${PIDOF} $1` fi if [ "$pid" != "" ] ; then echo $pid @@ -129,11 +137,12 @@ pidofproc() { fi # Finally try to extract it from ps - ${PSCMD} | grep $1 | awk '{ print $1 }' | tr '\n' ' ' + ${PSCMD} | grep $1 | ${AWK} '{ print $1 }' | tr '\n' ' ' return 0 } status() { + pid="" # Test syntax. if [ $# = 0 ] ; then echo "Usage: status {program}" @@ -144,14 +153,14 @@ status() { base=`basename $1` # First try "pidof" - if [ -x /sbin/pidof ] ; then - pid=`/sbin/pidof $1` + if [ -x ${PIDOF} ] ; then + pid=`${PIDOF} $1` fi if [ "$pid" != "" ] ; then echo "$base (pid $pid) is running..." return 0 else - pid=`${PSCMD} | awk 'BEGIN { prog=ARGV[1]; ARGC=1 } + pid=`${PSCMD} | ${AWK} 'BEGIN { prog=ARGV[1]; ARGC=1 } { if ((prog == $2) || (("(" prog ")") == $2) || (("[" prog "]") == $2) || ((prog ":") == $2)) { print $1 ; exit 0 } }' $1` diff --git a/bacula/scripts/btraceback.in b/bacula/scripts/btraceback.in index 656e8b31ef..36e9eca8e1 100755 --- a/bacula/scripts/btraceback.in +++ b/bacula/scripts/btraceback.in @@ -9,7 +9,7 @@ # $2 = main pid of running program to be traced back. # PNAME=`basename $1` -if test `uname -s` = SunOs ; then +if test `uname -s` = SunOS ; then gcore -o @working_dir@/${PNAME} $2 dbx $1 $2 <@scriptdir@/btraceback.dbx 2>&1 \ | @sbindir@/bsmtp -h @smtp_host@ -s "Bacula DBX traceback of ${PNAME}" @dump_email@ diff --git a/bacula/scripts/logwatch/Makefile.in b/bacula/scripts/logwatch/Makefile.in new file mode 100644 index 0000000000..564e0517c9 --- /dev/null +++ b/bacula/scripts/logwatch/Makefile.in @@ -0,0 +1,18 @@ +# Makefile to install logwatch script +# 08 Jan 2005 D. Scott Barninger + +SYSCONFDIR=/etc/log.d +INSTALL=@INSTALL@ + +all: install + +install: + + $(INSTALL) -m 755 bacula $(DESTDIR)$(SYSCONFDIR)/scripts/services/bacula + $(INSTALL) -m 644 logfile.bacula.conf $(DESTDIR)$(SYSCONFDIR)/conf/logfiles/bacula.conf + $(INSTALL) -m 644 services.bacula.conf $(DESTDIR)$(SYSCONFDIR)/conf/services/bacula.conf + +uninstall: + rm -f $(DESTDIR)$(SYSCONFDIR)/scripts/services/bacula + rm -f $(DESTDIR)$(SYSCONFDIR)/conf/logfiles/bacula.conf + rm -f $(DESTDIR)$(SYSCONFDIR)/conf/services/bacula.conf diff --git a/bacula/scripts/logwatch/bacula b/bacula/scripts/logwatch/bacula new file mode 100755 index 0000000000..d567576f74 --- /dev/null +++ b/bacula/scripts/logwatch/bacula @@ -0,0 +1,82 @@ +#!/usr/bin/perl -w +# +# logwatch filter script for bacula log files +# +# Mon Jan 03 2005 +# D. Scott Barninger and Karl Cunningham +# +# Copyright 2005 Kern Sibbald +# licensed under GPL-v2 + +use strict; +use POSIX qw(strftime); + +my (@JobName,$JobStatus,$ThisName,$ThisStatus,$ThisDate,$SearchDate); +my ($Job,$JobId,$JobDate,$Debug,$DebugCounter,%data,$time); + +# set the logwatch search date we want +$time = time; + +if ( $ENV{'LOGWATCH_DATE_RANGE'} eq 'yesterday') { + $SearchDate = strftime("%Y-%m-%d", localtime($time-86400)); +} +elsif ( $ENV{'LOGWATCH_DATE_RANGE'} eq 'today') { + $SearchDate = strftime("%Y-%m-%d", localtime($time)); +} + +# set debug level +$Debug = $ENV{'LOGWATCH_DEBUG'} || 0; + +if ( $Debug >= 5 ) { + print STDERR "\n\nDEBUG: Inside Bacula Filter \n\n"; + $DebugCounter = 1; +} + +while () { + chomp; + if ( $Debug >= 5 ) { + print STDERR "DEBUG($DebugCounter): $_\n"; + $DebugCounter++; + } + + # Test the line for a new entry, which is a jobid record + if (/^\s*JobId:\s+(\d+)/) { + # A new entry. Test, then save the previous stuff and + # set up to grab more. + if ($JobId and $Job and $JobStatus and $JobDate) { + $data{$JobId} = { + "Job" => $Job, + "JobStatus" => $JobStatus, + "JobDate" => $JobDate, + }; + $Job = $JobStatus = $JobDate = ""; + } + $JobId = $1; + next; + } + (/^\s*Job:\s*(.*)/) and $Job = $1; + (/^\s*Termination:\s*(.*)/) and $JobStatus = $1; + (/^\s*Job:.*(\d{4}-\d{2}-\d{2})/) and $JobDate = $1; +} + +# if we have data print it out, otherwise do nothing +if (scalar(keys(%data))) { + print "\nJobs Run:\n"; + foreach my $Id (sort {$a<=>$b} (keys(%data))) { + $ThisName = $data{$Id}{Job}; + $ThisStatus = $data{$Id}{JobStatus}; + $ThisDate = $data{$Id}{JobDate}; + $ThisName =~ s/\s//g; + $ThisStatus =~ s/\s//g; + if ( $ENV{'LOGWATCH_DATE_RANGE'} eq 'all') { + $SearchDate = $ThisDate; + } + if ($ThisDate eq $SearchDate) { + print "$ThisDate $Id $ThisName\n $ThisStatus\n\n"; + } + } +} + +exit(0); + + diff --git a/bacula/scripts/logwatch/logfile.bacula.conf.in b/bacula/scripts/logwatch/logfile.bacula.conf.in new file mode 100644 index 0000000000..3eaf0e2c75 --- /dev/null +++ b/bacula/scripts/logwatch/logfile.bacula.conf.in @@ -0,0 +1,3 @@ +# What actual file? Defaults to LogPath if not absolute path.... +LogFile = @working_dir@/log + diff --git a/bacula/scripts/logwatch/services.bacula.conf b/bacula/scripts/logwatch/services.bacula.conf new file mode 100644 index 0000000000..298a3f8d43 --- /dev/null +++ b/bacula/scripts/logwatch/services.bacula.conf @@ -0,0 +1,5 @@ +Title = "bacula" + +# Which logfile group... +LogFile = bacula + diff --git a/bacula/src/baconfig.h b/bacula/src/baconfig.h index db85a20c19..f9e5a7a611 100644 --- a/bacula/src/baconfig.h +++ b/bacula/src/baconfig.h @@ -5,7 +5,7 @@ * Version $Id$ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -55,7 +55,7 @@ #endif /* Allow printing of NULL pointers */ -#define NPRT(x) (x)?(x):"*None*" +#define NPRT(x) (x)?(x):"*None*" #ifdef ENABLE_NLS #include @@ -76,7 +76,7 @@ #define MAXSTRING 500 /* Maximum length to edit time/date */ -#define MAX_TIME_LENGTH 50 +#define MAX_TIME_LENGTH 50 /* Maximum Name length including EOS */ #define MAX_NAME_LENGTH 128 @@ -86,12 +86,17 @@ /* All tape operations MUST be a multiple of this */ #define TAPE_BSIZE 1024 -#if !defined(DEV_BSIZE) && defined(BSIZE) -#define DEV_BSIZE BSIZE + +#ifdef DEV_BSIZE +#define B_DEV_BSIZE DEV_BSIZE +#endif + +#if !defined(B_DEV_BSIZE) & defined(BSIZE) +#define B_DEV_BSIZE BSIZE #endif -#ifndef DEV_BSIZE -#define DEV_BSIZE 512 +#ifndef B_DEV_BSIZE +#define B_DEV_BSIZE 512 #endif /* @@ -135,10 +140,15 @@ #define STREAM_WIN32_GZIP_DATA 12 /* Gzipped Win32 BackupRead data */ #define STREAM_MACOS_FORK_DATA 13 /* Mac resource fork */ #define STREAM_HFSPLUS_ATTRIBUTES 14 /* Mac OS extra attributes */ -#define STREAM_UNIX_ATTRIBUTES_ACL 15 /* ACL attributes on UNIX */ +/*** FIXME ***/ +#define STREAM_UNIX_ATTRIBUTES_ACCESS_ACL 15 /* Standard ACL attributes on UNIX */ +#define STREAM_UNIX_ATTRIBUTES_ACL 15 /* Standard ACL attributes on UNIX */ +#define STREAM_UNIX_ATTRIBUTES_DEFAULT_ACL 16 /* Default ACL attributes on UNIX */ +/*** FIXME ***/ + -/* - * File type (Bacula defined). +/* + * File type (Bacula defined). * NOTE!!! These are saved in the Attributes record on the tape, so * do not change them. If need be, add to them. * @@ -147,7 +157,7 @@ * additional optional fields in the attribute record. */ #define FT_MASK 0xFFFF /* Bits used by FT (type) */ -#define FT_LNKSAVED 1 /* hard link to file already saved */ +#define FT_LNKSAVED 1 /* hard link to file already saved */ #define FT_REGE 2 /* Regular file but empty */ #define FT_REG 3 /* Regular file */ #define FT_LNK 4 /* Soft Link */ @@ -168,6 +178,7 @@ * that it can filter packets, but otherwise, it is not used * or saved */ #define FT_DIRBEGIN 18 /* Directory at beginning (not saved) */ +#define FT_INVALIDFS 19 /* File system not allowed for */ /* Definitions for upper part of type word (see above). */ #define AR_DATA_STREAM (1<<16) /* Data stream id present */ @@ -179,6 +190,13 @@ #define MD5_SIG 1 #define SHA1_SIG 2 +/* + * Tape label types -- stored in catalog + */ +#define B_BACULA_LABEL 0 +#define B_ANSI_LABEL 1 +#define B_IBM_LABEL 2 + /* Size of File Address stored in STREAM_SPARSE_DATA. Do NOT change! */ #define SPARSE_FADDR_SIZE (sizeof(uint64_t)) @@ -373,7 +391,7 @@ void b_memset(const char *file, int line, void *mem, int val, size_t num); #define Pmsg13(lvl,msg,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) p_msg(__FILE__,__LINE__,lvl,msg,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) #define Pmsg14(lvl,msg,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) p_msg(__FILE__,__LINE__,lvl,msg,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) - + /* Daemon Error Messages that are delivered according to the message resource */ #define Emsg0(typ, lvl, msg) e_msg(__FILE__, __LINE__, typ, lvl, msg) #define Emsg1(typ, lvl, msg, a1) e_msg(__FILE__, __LINE__, typ, lvl, msg, a1) @@ -453,12 +471,24 @@ int m_msg(const char *file, int line, POOLMEM *&pool_buf, const char *fmt, ...) #define bmalloc(size) b_malloc(__FILE__, __LINE__, (size)) #endif +/* ============================================================= + * OS Dependent defines + * ============================================================= + */ + +#ifndef HAVE_FSEEKO +/* Bad news. This OS cannot handle 64 bit fseeks and ftells */ +#define fseeko fseek +#define ftello ftell +#endif + + #ifdef __alpha__ #define OSF 1 #endif #ifdef HAVE_SUN_OS - /* + /* * On Solaris 2.5, threads are not timesliced by default, so we need to * explictly increase the conncurrency level. */ @@ -478,9 +508,6 @@ extern int thr_setconcurrency(int); #ifdef HAVE_DARWIN_OS /* Apparently someone forgot to wrap getdomainname as a C function */ extern "C" int getdomainname(char *name, int len); - -/* Darwin lib fnmatch() doesn't work, so use our own */ -#undef HAVE_FNMATCH #endif #ifdef HAVE_CYGWIN @@ -502,7 +529,7 @@ extern "C" int getdomainname(char *name, int len); extern "C" int fchdir(int filedes); extern "C" long gethostid(void); #endif - + /* This probably should be done on a machine by machine basic, but it works */ #define ALIGN_SIZE (sizeof(double)) #define BALIGN(x) (((x) + ALIGN_SIZE - 1) & ~(ALIGN_SIZE -1)) @@ -515,7 +542,7 @@ extern "C" long gethostid(void); /* * Replace codes needed in both file routines and non-file routines - * Job replace codes -- in "replace" + * Job replace codes -- in "replace" */ #define REPLACE_ALWAYS 'a' #define REPLACE_IFNEWER 'w' @@ -530,7 +557,7 @@ extern "C" long gethostid(void); #endif #ifdef HAVE_NL_LANGINFO #include -#else +#else #define nl_langinfo(x) ("ANSI_X3.4-1968") #endif diff --git a/bacula/src/cats/drop_mysql_tables.in b/bacula/src/cats/drop_mysql_tables.in index 3c5fc9aaba..6db7b19d75 100644 --- a/bacula/src/cats/drop_mysql_tables.in +++ b/bacula/src/cats/drop_mysql_tables.in @@ -23,6 +23,7 @@ DROP TABLE IF EXISTS Counters; DROP TABLE IF EXISTS BaseFiles; DROP TABLE IF EXISTS UnsavedFiles; DROP TABLE IF EXISTS CDImages; +DROP TABLE IF EXISTS Status; END-OF-DATA then echo "Deletion of Bacula MySQL tables succeeded." diff --git a/bacula/src/cats/make_mysql_tables.in b/bacula/src/cats/make_mysql_tables.in index 3f292ea447..2bbd71b247 100644 --- a/bacula/src/cats/make_mysql_tables.in +++ b/bacula/src/cats/make_mysql_tables.in @@ -10,14 +10,14 @@ CREATE TABLE Filename ( FilenameId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Name BLOB NOT NULL, PRIMARY KEY(FilenameId), - INDEX (Name(30)) + INDEX (Name(255)) ); CREATE TABLE Path ( PathId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Path BLOB NOT NULL, PRIMARY KEY(PathId), - INDEX (Path(50)) + INDEX (Path(255)) ); @@ -32,7 +32,7 @@ CREATE TABLE File ( LStat TINYBLOB NOT NULL, MD5 TINYBLOB NOT NULL, PRIMARY KEY(FileId), - INDEX (FilenameId, PathId) + INDEX (JobId, PathId, FilenameId) ); # @@ -43,7 +43,7 @@ CREATE TABLE File ( # INDEX (JobId), # INDEX (PathId), # INDEX (FilenameId), -# INDEX (JobId, PathId, FilenameId) +# INDEX (FilenameId, PathId) # CREATE TABLE Job ( diff --git a/bacula/src/cats/sql_update.c b/bacula/src/cats/sql_update.c index 48dfb254ef..d2d73c998d 100644 --- a/bacula/src/cats/sql_update.c +++ b/bacula/src/cats/sql_update.c @@ -389,7 +389,8 @@ db_make_inchanger_unique(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr) { if (mr->InChanger != 0 && mr->Slot != 0) { Mmsg(mdb->cmd, "UPDATE Media SET InChanger=0 WHERE " - "Slot=%d AND MediaId!=%u", mr->Slot, mr->MediaId); + "Slot=%d AND PoolId=%u AND MediaId!=%u", + mr->Slot, mr->PoolId, mr->MediaId); Dmsg1(400, "%s\n", mdb->cmd); UPDATE_DB(jcr, mdb, mdb->cmd); } diff --git a/bacula/src/console/conio.c b/bacula/src/console/conio.c index 889400b0a9..94ffeaea1c 100755 --- a/bacula/src/console/conio.c +++ b/bacula/src/console/conio.c @@ -1,12 +1,12 @@ -/* - Generalized console input/output handler +/* + Generalized console input/output handler A maintanable replacement for readline() Updated for Bacula, Kern Sibbald, December MMIII This code is in part derived from code that I wrote in 1981, so some of it is a bit old and could use a cleanup. - + */ /* Copyright (C) 1981-2004 Kern Sibbald and John Walker @@ -29,7 +29,7 @@ */ -/* +/* * UTF-8 * If the top bit of a UTF-8 string is 0 (8 bits), then it * is a normal ASCII character. @@ -45,7 +45,7 @@ #include #include #include -#include +#include #else /* We are in Bacula */ @@ -59,6 +59,8 @@ extern "C" int tgetent(void *, const char *); extern "C" int tgetnum(const char *); extern "C" char *tgetstr (const char*, char**); extern "C" char *tgoto (const char *, int, int); +#elif HAVE_HPUX_OS +#include #else #include #endif @@ -66,8 +68,13 @@ extern "C" char *tgoto (const char *, int, int); /* From termios library */ +#ifdef HAVE_HPUX_OS +static char *BC; +static char *UP; +#else extern char *BC; extern char *UP; +#endif /* Forward referenced functions */ extern "C" { @@ -243,10 +250,10 @@ void con_term(); void trapctlc(); int usrbrk(); void clrbrk(); - + void con_init(FILE *input) { - atexit(con_term); + atexit(con_term); rawmode(input); trapctlc(); } @@ -313,7 +320,7 @@ char *bstrncpy(char *dest, const char *src, int maxlen) static unsigned do_smap(unsigned c) { char str[MAX_STAB]; - int len = 0; + int len = 0; stab_t *tstab; int i, found; unsigned cm; @@ -384,7 +391,7 @@ static void add_smap(char *str, int func) { stab_t *tstab; int len; - + if (!str) { return; } @@ -405,7 +412,7 @@ static void add_smap(char *str, int func) } tstab->next = stab[tstab->len-1]; stab[tstab->len-1] = tstab; -/* printf("Add_smap tstab=%x len=%d func=%d tstab->next=%x\n\r", tstab, len, +/* printf("Add_smap tstab=%x len=%d func=%d tstab->next=%x\n\r", tstab, len, func, tstab->next); */ } @@ -582,7 +589,7 @@ input_line(char *string, int length) curline[cp++] = c; /* store character in line being built */ t_char(c); /* echo character to terminal */ while (more--) { - c= input_char(); + c= input_char(); insert_hole(curline, sizeof(curline)); curline[cp++] = c; /* store character in line being built */ t_char(c); /* echo character to terminal */ @@ -670,7 +677,7 @@ forward(char *str, int str_len) } /* How many characters under the cursor */ -static int +static int char_count(int cptr, char *str) { int cnt = 1; @@ -689,7 +696,7 @@ char_count(int cptr, char *str) /* Backup cursor keeping characters under it */ static void -backup(char *str) +backup(char *str) { if (cp == 0) { return; @@ -703,7 +710,7 @@ backup(char *str) /* Delete the character under the cursor */ static void -delchr(int del, char *curline, int line_len) +delchr(int del, char *curline, int line_len) { int i, cnt; @@ -906,7 +913,7 @@ t_clrline(int pos, int width) asclrl(pos, width); /* clear to end of line */ } -/* Helper function to add string preceded by +/* Helper function to add string preceded by * ESC to smap table */ static void add_esc_smap(const char *str, int func) { @@ -936,11 +943,11 @@ static void rawmode(FILE *input) exit(1); } old_term_params_set = true; - t = old_term_params; + t = old_term_params; t.c_cc[VMIN] = 1; /* satisfy read after 1 char */ t.c_cc[VTIME] = 0; - t.c_iflag &= ~(BRKINT | IGNPAR | PARMRK | INPCK | - ISTRIP | ICRNL | IXON | IXOFF | INLCR | IGNCR); + t.c_iflag &= ~(BRKINT | IGNPAR | PARMRK | INPCK | + ISTRIP | ICRNL | IXON | IXOFF | INLCR | IGNCR); t.c_iflag |= IGNBRK; t.c_oflag |= ONLCR; t.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL | ICANON | @@ -955,7 +962,7 @@ static void rawmode(FILE *input) signal(SIGHUP, SIG_IGN); // signal(SIGSTOP, SIG_IGN); signal(SIGINT, sigintcatcher); - signal(SIGWINCH, SIG_IGN); + signal(SIGWINCH, SIG_IGN); signal(SIGQUIT, SIG_IGN); signal(SIGCHLD, SIG_IGN); // signal(SIGTSTP, SIG_IGN); @@ -1054,9 +1061,9 @@ static unsigned t_getch(void) if (read(0, &c, 1) != 1) { c = 0; } - return (unsigned)c; + return (unsigned)c; } - + /* Send message to terminal - primitive routine */ void t_sendl(const char *msg, int len) @@ -1116,7 +1123,7 @@ void trapctlc() /* ASCLRL() -- Clear to end of line from current position */ -static void asclrl(int pos, int width) +static void asclrl(int pos, int width) { int i; @@ -1134,7 +1141,7 @@ static void asclrl(int pos, int width) for (i=1; i<=width-pos+1; i++) /* backspace to original position */ t_char(0x8); return; - + } @@ -1143,10 +1150,10 @@ static void ascurs(int y, int x) { t_send((char *)tgoto(t_cm, x, y)); } - + /* ASCLRS -- Clear whole screen */ -static void asclrs() +static void asclrs() { ascurs(0,0); t_send(t_cs); diff --git a/bacula/src/console/console.c b/bacula/src/console/console.c index 73989938d3..8bf17863fd 100644 --- a/bacula/src/console/console.c +++ b/bacula/src/console/console.c @@ -34,12 +34,12 @@ #ifdef HAVE_CONIO #include "conio.h" #else -#define con_init(x) +#define con_init(x) #define con_term() #define con_set_zed_keys(); #define trapctlc() #define clrbrk() -#define usrbrk() 0 +#define usrbrk() 0 #endif #ifdef HAVE_WIN32 @@ -47,7 +47,7 @@ #define isatty(fd) (fd==0) DWORD g_platform_id = VER_PLATFORM_WIN32_WINDOWS; #endif - + /* Exported variables */ #ifdef HAVE_CYGWIN @@ -77,7 +77,7 @@ extern "C" void got_sigtin(int sig); /* Static variables */ static char *configfile = NULL; static BSOCK *UA_sock = NULL; -static DIRRES *dir; +static DIRRES *dir; static FILE *output = stdout; static bool tee = false; /* output to output and stdout */ static bool stop = false; @@ -109,32 +109,32 @@ static void usage() " -dnn set debug level to nn\n" " -s no signals\n" " -t test - read configuration and exit\n" -" -? print this message.\n" +" -? print this message.\n" "\n"), HOST_OS, DISTNAME, DISTVER); } -extern "C" +extern "C" void got_sigstop(int sig) { stop = true; } -extern "C" +extern "C" void got_sigcontinue(int sig) { stop = false; } -extern "C" -void got_sigtout(int sig) +extern "C" +void got_sigtout(int sig) { // printf("Got tout\n"); } -extern "C" +extern "C" void got_sigtin(int sig) -{ +{ // printf("Got tin\n"); } @@ -148,7 +148,7 @@ static int zed_keyscmd(FILE *input, BSOCK *UA_sock) /* * These are the @command */ -struct cmdstruct { const char *key; int (*func)(FILE *input, BSOCK *UA_sock); const char *help; }; +struct cmdstruct { const char *key; int (*func)(FILE *input, BSOCK *UA_sock); const char *help; }; static struct cmdstruct commands[] = { { N_("input"), inputcmd, _("input from file")}, { N_("output"), outputcmd, _("output to file")}, @@ -199,14 +199,14 @@ static int do_a_command(FILE *input, BSOCK *UA_sock) } -static void read_and_process_input(FILE *input, BSOCK *UA_sock) +static void read_and_process_input(FILE *input, BSOCK *UA_sock) { const char *prompt = "*"; bool at_prompt = false; int tty_input = isatty(fileno(input)); int stat; - for ( ;; ) { + for ( ;; ) { if (at_prompt) { /* don't prompt multiple times */ prompt = ""; } else { @@ -342,7 +342,7 @@ int main(int argc, char *argv[]) usage(); con_term(); exit(1); - } + } } argc -= optind; argv += optind; @@ -382,8 +382,8 @@ int main(int argc, char *argv[]) UnlockRes(); if (ndir == 0) { con_term(); - Emsg1(M_ERROR_TERM, 0, _("No Director resource defined in %s\n\ -Without that I don't how to speak to the Director :-(\n"), configfile); + Emsg1(M_ERROR_TERM, 0, _("No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n"), configfile); } if (test_config) { @@ -429,9 +429,9 @@ try_again: dir = (DIRRES *)GetNextRes(R_DIRECTOR, NULL); UnlockRes(); } - + senditf(_("Connecting to Director %s:%d\n"), dir->address,dir->DIRport); - UA_sock = bnet_connect(NULL, 5, 15, "Director daemon", dir->address, + UA_sock = bnet_connect(NULL, 5, 15, "Director daemon", dir->address, NULL, dir->DIRport, 0); if (UA_sock == NULL) { terminate_console(0); @@ -504,7 +504,7 @@ static void terminate_console(int sig) #include "history.h" -int +int get_cmd(FILE *input, const char *prompt, BSOCK *sock, int sec) { char *line; @@ -559,17 +559,17 @@ wait_for_data(int fd, int sec) } } -/* - * Get next input command from terminal. +/* + * Get next input command from terminal. * * Returns: 1 if got input * 0 if timeout * -1 if EOF or error */ -int +int get_cmd(FILE *input, const char *prompt, BSOCK *sock, int sec) { - int len; + int len; if (!stop) { if (output == stdout || tee) { sendit(prompt); @@ -579,7 +579,7 @@ again: switch (wait_for_data(fileno(input), sec)) { case 0: return 0; /* timeout */ - case -1: + case -1: return -1; /* error */ default: len = sizeof_pool_memory(sock->msg) - 1; @@ -629,9 +629,9 @@ static int inputcmd(FILE *input, BSOCK *UA_sock) } fd = fopen(argk[1], "r"); if (!fd) { - senditf(_("Cannot open file %s for input. ERR=%s\n"), + senditf(_("Cannot open file %s for input. ERR=%s\n"), argk[1], strerror(errno)); - return 1; + return 1; } read_and_process_input(fd, UA_sock); fclose(fd); @@ -675,9 +675,9 @@ static int do_outputcmd(FILE *input, BSOCK *UA_sock) } fd = fopen(argk[1], mode); if (!fd) { - senditf(_("Cannot open file %s for output. ERR=%s\n"), + senditf(_("Cannot open file %s for output. ERR=%s\n"), argk[1], strerror(errno)); - return 1; + return 1; } output = fd; return 1; @@ -726,10 +726,10 @@ void sendit(const char *buf) { #ifdef xHAVE_CONIO if (output == stdout || tee) { - char *p, *q; + char *p, *q; /* * Here, we convert every \n into \r\n because the - * terminal is in raw mode when we are using + * terminal is in raw mode when we are using * conio. */ for (p=q=buf; (p=strchr(q, '\n')); ) { @@ -748,10 +748,11 @@ void sendit(const char *buf) } #else fputs(buf, output); + fflush(output); if (tee) { fputs(buf, stdout); } - if (output == stdout || tee) { + if (output != stdout || tee) { fflush(stdout); } #endif diff --git a/bacula/src/dird/admin.c b/bacula/src/dird/admin.c index b26ae18c94..f85636ef4a 100644 --- a/bacula/src/dird/admin.c +++ b/bacula/src/dird/admin.c @@ -40,11 +40,11 @@ static void admin_cleanup(JCR *jcr, int TermCode); /* External functions */ -/* +/* * Returns: 0 on failure * 1 on success */ -int do_admin(JCR *jcr) +int do_admin(JCR *jcr) { jcr->jr.JobId = jcr->JobId; @@ -76,9 +76,9 @@ static void admin_cleanup(JCR *jcr, int TermCode) set_jcr_job_status(jcr, TermCode); update_job_end_record(jcr); /* update database */ - + if (!db_get_job_record(jcr, jcr->db, &jcr->jr)) { - Jmsg(jcr, M_WARNING, 0, _("Error getting job record for stats: %s"), + Jmsg(jcr, M_WARNING, 0, _("Error getting job record for stats: %s"), db_strerror(jcr->db)); set_jcr_job_status(jcr, JS_ErrorTerminated); } @@ -90,7 +90,7 @@ static void admin_cleanup(JCR *jcr, int TermCode) break; case JS_FatalError: case JS_ErrorTerminated: - term_msg = _("*** Admin Error ***"); + term_msg = _("*** Admin Error ***"); msg_type = M_ERROR; /* Generate error message */ break; case JS_Canceled: @@ -104,12 +104,12 @@ static void admin_cleanup(JCR *jcr, int TermCode) bstrftime(sdt, sizeof(sdt), jcr->jr.StartTime); bstrftime(edt, sizeof(edt), jcr->jr.EndTime); - Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n\ - JobId: %d\n\ - Job: %s\n\ - Start time: %s\n\ - End time: %s\n\ - Termination: %s\n\n"), + Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n\n"), edt, jcr->jr.JobId, jcr->jr.Job, @@ -118,4 +118,4 @@ static void admin_cleanup(JCR *jcr, int TermCode) term_msg); Dmsg0(100, "Leave admin_cleanup()\n"); -} +} diff --git a/bacula/src/dird/authenticate.c b/bacula/src/dird/authenticate.c index b889e5e8b9..4ad863a3ea 100644 --- a/bacula/src/dird/authenticate.c +++ b/bacula/src/dird/authenticate.c @@ -85,8 +85,10 @@ bool authenticate_storage_daemon(JCR *jcr, STORE *store) stop_bsock_timer(tid); Dmsg0(50, _("Director and Storage daemon passwords or names not the same.\n")); Jmsg0(jcr, M_FATAL, 0, - _("Director and Storage daemon passwords or names not the same or\n" - "you have exceeded the Maximum Concurrent Jobs on the SD.\n" + _("Unable to authenticate with Storage daemon. Possible causes:\n" + "Passwords or names not the same or\n" + "Maximum Concurrent Jobs exceeded on the SD or\n" + "SD networking messed up (restart daemon).\n" "Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors for help.\n")); return 0; } @@ -142,8 +144,10 @@ int authenticate_file_daemon(JCR *jcr) stop_bsock_timer(tid); Dmsg0(50, _("Director and File daemon passwords or names not the same.\n")); Jmsg(jcr, M_FATAL, 0, - _("Director and File daemon passwords or names not the same or\n" - "you have exceeded the Maximum Concurrent Jobs on the FD.\n" + _("Unable to authenticate with File daemon. Possible causes:\n" + "Passwords or names not the same or\n" + "Maximum Concurrent Jobs exceeded on the FD or\n" + "FD networking messed up (restart daemon).\n" "Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors for help.\n")); return 0; } diff --git a/bacula/src/dird/dird.c b/bacula/src/dird/dird.c index 9f74f27d37..61642e1dca 100644 --- a/bacula/src/dird/dird.c +++ b/bacula/src/dird/dird.c @@ -372,6 +372,7 @@ void reload_config(int sig) JCR *jcr; int njobs = 0; /* number of running jobs */ int table, rtable; + bool ok; if (already_here) { abort(); /* Oops, recursion -> die */ @@ -396,16 +397,17 @@ void reload_config(int sig) reload_table[table].res_table = save_config_resources(); Dmsg1(100, "Saved old config in table %d\n", table); - parse_config(configfile); + ok = parse_config(configfile, 0); /* no exit on error */ Dmsg0(100, "Reloaded config file\n"); - if (!check_resources()) { + if (!ok || !check_resources()) { rtable = find_free_reload_table_entry(); /* save new, bad table */ if (rtable < 0) { Jmsg(NULL, M_ERROR, 0, _("Please correct configuration file: %s\n"), configfile); Jmsg(NULL, M_ERROR_TERM, 0, _("Out of reload table entries. Giving up.\n")); } else { Jmsg(NULL, M_ERROR, 0, _("Please correct configuration file: %s\n"), configfile); + Jmsg(NULL, M_ERROR, 0, _("Resetting previous configuration.\n")); } reload_table[rtable].res_table = save_config_resources(); /* Now restore old resoure values */ @@ -465,8 +467,8 @@ static int check_resources() job = (JOB *)GetNextRes(R_JOB, NULL); director = (DIRRES *)GetNextRes(R_DIRECTOR, NULL); if (!director) { - Jmsg(NULL, M_FATAL, 0, _("No Director resource defined in %s\n\ -Without that I don't know who I am :-(\n"), configfile); + Jmsg(NULL, M_FATAL, 0, _("No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n"), configfile); OK = false; } else { set_working_directory(director->working_directory); diff --git a/bacula/src/dird/dird.h b/bacula/src/dird/dird.h index 37136a123a..f60431499a 100644 --- a/bacula/src/dird/dird.h +++ b/bacula/src/dird/dird.h @@ -45,3 +45,4 @@ extern int SDConnectTimeout; /* From job.c */ void dird_free_jcr(JCR *jcr); +void dird_free_jcr_pointers(JCR *jcr); diff --git a/bacula/src/dird/dird_conf.c b/bacula/src/dird/dird_conf.c index 33ed9bee98..e72a9a8926 100644 --- a/bacula/src/dird/dird_conf.c +++ b/bacula/src/dird/dird_conf.c @@ -8,21 +8,21 @@ * 1. The generic lexical scanner in lib/lex.c and lib/lex.h * * 2. The generic config scanner in lib/parse_config.c and - * lib/parse_config.h. - * These files contain the parser code, some utility - * routines, and the common store routines (name, int, - * string). + * lib/parse_config.h. + * These files contain the parser code, some utility + * routines, and the common store routines (name, int, + * string). * * 3. The daemon specific file, which contains the Resource - * definitions as well as any specific store routines - * for the resource records. + * definitions as well as any specific store routines + * for the resource records. * * Kern Sibbald, January MM * * Version $Id$ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -83,7 +83,7 @@ int res_all_size = sizeof(res_all); /* * Director Resource * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM dir_items[] = { {"name", store_name, ITEM(res_dir.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -108,7 +108,7 @@ static RES_ITEM dir_items[] = { /* * Console Resource * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM con_items[] = { {"name", store_name, ITEM(res_con.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -131,7 +131,7 @@ static RES_ITEM con_items[] = { /* * Client or File daemon resource * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM cli_items[] = { @@ -153,7 +153,7 @@ static RES_ITEM cli_items[] = { /* Storage daemon resource * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM store_items[] = { {"name", store_name, ITEM(res_store.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -176,7 +176,7 @@ static RES_ITEM store_items[] = { /* * Catalog Resource Directives * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM cat_items[] = { {"name", store_name, ITEM(res_cat.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -190,6 +190,7 @@ static RES_ITEM cat_items[] = { {"user", store_str, ITEM(res_cat.db_user), 0, 0, 0}, {"dbname", store_str, ITEM(res_cat.db_name), 0, ITEM_REQUIRED, 0}, {"dbsocket", store_str, ITEM(res_cat.db_socket), 0, 0, 0}, + /* Turned off for the moment */ {"multipleconnections", store_yesno, ITEM(res_cat.mult_db_connections), 0, 0, 0}, {NULL, NULL, NULL, 0, 0, 0} }; @@ -197,7 +198,7 @@ static RES_ITEM cat_items[] = { /* * Job Resource Directives * - * name handler value code flags default_value + * name handler value code flags default_value */ RES_ITEM job_items[] = { {"name", store_name, ITEM(res_job.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -245,7 +246,7 @@ RES_ITEM job_items[] = { /* FileSet resource * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM fs_items[] = { {"name", store_name, ITEM(res_fs.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -253,13 +254,13 @@ static RES_ITEM fs_items[] = { {"include", store_inc, NULL, 0, ITEM_NO_EQUALS, 0}, {"exclude", store_inc, NULL, 1, ITEM_NO_EQUALS, 0}, {"ignorefilesetchanges", store_yesno, ITEM(res_fs.ignore_fs_changes), 1, ITEM_DEFAULT, 0}, - {NULL, NULL, NULL, 0, 0, 0} + {NULL, NULL, NULL, 0, 0, 0} }; /* Schedule -- see run_conf.c */ /* Schedule * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM sch_items[] = { {"name", store_name, ITEM(res_sch.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -270,7 +271,7 @@ static RES_ITEM sch_items[] = { /* Pool resource * - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM pool_items[] = { {"name", store_name, ITEM(res_pool.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -298,7 +299,7 @@ static RES_ITEM pool_items[] = { /* * Counter Resource - * name handler value code flags default_value + * name handler value code flags default_value */ static RES_ITEM counter_items[] = { {"name", store_name, ITEM(res_counter.hdr.name), 0, ITEM_REQUIRED, 0}, @@ -321,7 +322,7 @@ extern RES_ITEM msgs_items[]; * NOTE!!! keep it in the same order as the R_codes * or eliminate all resources[rindex].name * - * name items rcode res_head + * name items rcode res_head */ RES_TABLE resources[] = { {"director", dir_items, R_DIRECTOR}, @@ -336,13 +337,13 @@ RES_TABLE resources[] = { {"counter", counter_items, R_COUNTER}, {"console", con_items, R_CONSOLE}, {"jobdefs", job_items, R_JOBDEFS}, - {NULL, NULL, 0} + {NULL, NULL, 0} }; /* Keywords (RHS) permitted in Job Level records * - * level_name level job_type + * level_name level job_type */ struct s_jl joblevels[] = { {"Full", L_FULL, JT_BACKUP}, @@ -357,19 +358,19 @@ struct s_jl joblevels[] = { {"Data", L_VERIFY_DATA, JT_VERIFY}, {" ", L_NONE, JT_ADMIN}, {" ", L_NONE, JT_RESTORE}, - {NULL, 0, 0} + {NULL, 0, 0} }; /* Keywords (RHS) permitted in Job type records * - * type_name job_type + * type_name job_type */ struct s_jt jobtypes[] = { {"backup", JT_BACKUP}, {"admin", JT_ADMIN}, {"verify", JT_VERIFY}, {"restore", JT_RESTORE}, - {NULL, 0} + {NULL, 0} }; #ifdef old_deprecated_code @@ -379,7 +380,7 @@ static struct s_kw BakVerFields[] = { {"client", 'C'}, {"fileset", 'F'}, {"level", 'L'}, - {NULL, 0} + {NULL, 0} }; /* Keywords (RHS) permitted in Restore records */ @@ -390,7 +391,7 @@ static struct s_kw RestoreFields[] = { {"where", 'W'}, /* root of restore */ {"replace", 'R'}, /* replacement options */ {"bootstrap", 'B'}, /* bootstrap file */ - {NULL, 0} + {NULL, 0} }; #endif @@ -400,7 +401,7 @@ struct s_kw ReplaceOptions[] = { {"ifnewer", REPLACE_IFNEWER}, {"ifolder", REPLACE_IFOLDER}, {"never", REPLACE_NEVER}, - {NULL, 0} + {NULL, 0} }; const char *level_to_str(int level) @@ -412,8 +413,8 @@ const char *level_to_str(int level) bsnprintf(level_no, sizeof(level_no), "%d", level); /* default if not found */ for (i=0; joblevels[i].level_name; i++) { if (level == joblevels[i].level) { - str = joblevels[i].level_name; - break; + str = joblevels[i].level_name; + break; } } return str; @@ -430,93 +431,93 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm sendit(sock, "No %s resource defined\n", res_to_str(type)); return; } - if (type < 0) { /* no recursion */ + if (type < 0) { /* no recursion */ type = - type; recurse = false; } switch (type) { case R_DIRECTOR: sendit(sock, "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n", - reshdr->name, res->res_dir.MaxConcurrentJobs, - edit_uint64(res->res_dir.FDConnectTimeout, ed1), - edit_uint64(res->res_dir.SDConnectTimeout, ed2)); + reshdr->name, res->res_dir.MaxConcurrentJobs, + edit_uint64(res->res_dir.FDConnectTimeout, ed1), + edit_uint64(res->res_dir.SDConnectTimeout, ed2)); if (res->res_dir.query_file) { sendit(sock, " query_file=%s\n", res->res_dir.query_file); } if (res->res_dir.messages) { sendit(sock, " --> "); - dump_resource(-R_MSGS, (RES *)res->res_dir.messages, sendit, sock); + dump_resource(-R_MSGS, (RES *)res->res_dir.messages, sendit, sock); } break; case R_CONSOLE: sendit(sock, "Console: name=%s SSL=%d\n", - res->res_con.hdr.name, res->res_con.enable_ssl); + res->res_con.hdr.name, res->res_con.enable_ssl); break; case R_COUNTER: if (res->res_counter.WrapCounter) { sendit(sock, "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n", - res->res_counter.hdr.name, res->res_counter.MinValue, - res->res_counter.MaxValue, res->res_counter.CurrentValue, - res->res_counter.WrapCounter->hdr.name); + res->res_counter.hdr.name, res->res_counter.MinValue, + res->res_counter.MaxValue, res->res_counter.CurrentValue, + res->res_counter.WrapCounter->hdr.name); } else { sendit(sock, "Counter: name=%s min=%d max=%d\n", - res->res_counter.hdr.name, res->res_counter.MinValue, - res->res_counter.MaxValue); + res->res_counter.hdr.name, res->res_counter.MinValue, + res->res_counter.MaxValue); } if (res->res_counter.Catalog) { sendit(sock, " --> "); - dump_resource(-R_CATALOG, (RES *)res->res_counter.Catalog, sendit, sock); + dump_resource(-R_CATALOG, (RES *)res->res_counter.Catalog, sendit, sock); } break; case R_CLIENT: sendit(sock, "Client: name=%s address=%s FDport=%d MaxJobs=%u\n", - res->res_client.hdr.name, res->res_client.address, res->res_client.FDport, - res->res_client.MaxConcurrentJobs); + res->res_client.hdr.name, res->res_client.address, res->res_client.FDport, + res->res_client.MaxConcurrentJobs); sendit(sock, " JobRetention=%s FileRetention=%s AutoPrune=%d\n", - edit_utime(res->res_client.JobRetention, ed1, sizeof(ed1)), - edit_utime(res->res_client.FileRetention, ed2, sizeof(ed2)), - res->res_client.AutoPrune); + edit_utime(res->res_client.JobRetention, ed1, sizeof(ed1)), + edit_utime(res->res_client.FileRetention, ed2, sizeof(ed2)), + res->res_client.AutoPrune); if (res->res_client.catalog) { sendit(sock, " --> "); - dump_resource(-R_CATALOG, (RES *)res->res_client.catalog, sendit, sock); + dump_resource(-R_CATALOG, (RES *)res->res_client.catalog, sendit, sock); } break; case R_STORAGE: sendit(sock, "Storage: name=%s address=%s SDport=%d MaxJobs=%u\n\ DeviceName=%s MediaType=%s\n", - res->res_store.hdr.name, res->res_store.address, res->res_store.SDport, - res->res_store.MaxConcurrentJobs, - res->res_store.dev_name, res->res_store.media_type); + res->res_store.hdr.name, res->res_store.address, res->res_store.SDport, + res->res_store.MaxConcurrentJobs, + res->res_store.dev_name, res->res_store.media_type); break; case R_CATALOG: sendit(sock, "Catalog: name=%s address=%s DBport=%d db_name=%s\n\ db_user=%s\n", - res->res_cat.hdr.name, NPRT(res->res_cat.db_address), - res->res_cat.db_port, res->res_cat.db_name, NPRT(res->res_cat.db_user)); + res->res_cat.hdr.name, NPRT(res->res_cat.db_address), + res->res_cat.db_port, res->res_cat.db_name, NPRT(res->res_cat.db_user)); break; case R_JOB: case R_JOBDEFS: sendit(sock, "%s: name=%s JobType=%d level=%s Priority=%d MaxJobs=%u\n", type == R_JOB ? "Job" : "JobDefs", - res->res_job.hdr.name, res->res_job.JobType, - level_to_str(res->res_job.JobLevel), res->res_job.Priority, - res->res_job.MaxConcurrentJobs); + res->res_job.hdr.name, res->res_job.JobType, + level_to_str(res->res_job.JobLevel), res->res_job.Priority, + res->res_job.MaxConcurrentJobs); sendit(sock, " Resched=%d Times=%d Interval=%s Spool=%d\n", - res->res_job.RescheduleOnError, res->res_job.RescheduleTimes, - edit_uint64_with_commas(res->res_job.RescheduleInterval, ed1), - res->res_job.spool_data); + res->res_job.RescheduleOnError, res->res_job.RescheduleTimes, + edit_uint64_with_commas(res->res_job.RescheduleInterval, ed1), + res->res_job.spool_data); if (res->res_job.client) { sendit(sock, " --> "); - dump_resource(-R_CLIENT, (RES *)res->res_job.client, sendit, sock); + dump_resource(-R_CLIENT, (RES *)res->res_job.client, sendit, sock); } if (res->res_job.fileset) { sendit(sock, " --> "); - dump_resource(-R_FILESET, (RES *)res->res_job.fileset, sendit, sock); + dump_resource(-R_FILESET, (RES *)res->res_job.fileset, sendit, sock); } if (res->res_job.schedule) { sendit(sock, " --> "); - dump_resource(-R_SCHEDULE, (RES *)res->res_job.schedule, sendit, sock); + dump_resource(-R_SCHEDULE, (RES *)res->res_job.schedule, sendit, sock); } if (res->res_job.RestoreWhere) { sendit(sock, " --> Where=%s\n", NPRT(res->res_job.RestoreWhere)); @@ -538,33 +539,33 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm } if (res->res_job.storage[0]) { sendit(sock, " --> "); - /* ***FIXME*** */ -// dump_resource(-R_STORAGE, (RES *)res->res_job.storage, sendit, sock); + /* ***FIXME*** */ +// dump_resource(-R_STORAGE, (RES *)res->res_job.storage, sendit, sock); } if (res->res_job.pool) { sendit(sock, " --> "); - dump_resource(-R_POOL, (RES *)res->res_job.pool, sendit, sock); + dump_resource(-R_POOL, (RES *)res->res_job.pool, sendit, sock); } if (res->res_job.full_pool) { sendit(sock, " --> "); - dump_resource(-R_POOL, (RES *)res->res_job.full_pool, sendit, sock); + dump_resource(-R_POOL, (RES *)res->res_job.full_pool, sendit, sock); } if (res->res_job.inc_pool) { sendit(sock, " --> "); - dump_resource(-R_POOL, (RES *)res->res_job.inc_pool, sendit, sock); + dump_resource(-R_POOL, (RES *)res->res_job.inc_pool, sendit, sock); } if (res->res_job.dif_pool) { sendit(sock, " --> "); - dump_resource(-R_POOL, (RES *)res->res_job.dif_pool, sendit, sock); + dump_resource(-R_POOL, (RES *)res->res_job.dif_pool, sendit, sock); } if (res->res_job.verify_job) { sendit(sock, " --> "); - dump_resource(-type, (RES *)res->res_job.verify_job, sendit, sock); + dump_resource(-type, (RES *)res->res_job.verify_job, sendit, sock); } break; if (res->res_job.messages) { sendit(sock, " --> "); - dump_resource(-R_MSGS, (RES *)res->res_job.messages, sendit, sock); + dump_resource(-R_MSGS, (RES *)res->res_job.messages, sendit, sock); } break; case R_FILESET: @@ -572,151 +573,166 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm int i, j, k; sendit(sock, "FileSet: name=%s\n", res->res_fs.hdr.name); for (i=0; ires_fs.num_includes; i++) { - INCEXE *incexe = res->res_fs.include_items[i]; - for (j=0; jnum_opts; j++) { - FOPTS *fo = incexe->opts_list[j]; + INCEXE *incexe = res->res_fs.include_items[i]; + for (j=0; jnum_opts; j++) { + FOPTS *fo = incexe->opts_list[j]; sendit(sock, " O %s\n", fo->opts); - for (k=0; kregex.size(); k++) { + for (k=0; kregex.size(); k++) { sendit(sock, " R %s\n", fo->regex.get(k)); - } - for (k=0; kwild.size(); k++) { + } + for (k=0; kregexdir.size(); k++) { + sendit(sock, " RD %s\n", fo->regexdir.get(k)); + } + for (k=0; kregexfile.size(); k++) { + sendit(sock, " RF %s\n", fo->regexfile.get(k)); + } + for (k=0; kwild.size(); k++) { sendit(sock, " W %s\n", fo->wild.get(k)); - } - for (k=0; kbase.size(); k++) { + } + for (k=0; kwilddir.size(); k++) { + sendit(sock, " WD %s\n", fo->wilddir.get(k)); + } + for (k=0; kwildfile.size(); k++) { + sendit(sock, " WF %s\n", fo->wildfile.get(k)); + } + for (k=0; kbase.size(); k++) { sendit(sock, " B %s\n", fo->base.get(k)); - } - if (fo->reader) { + } + for (k=0; kfstype.size(); k++) { + sendit(sock, " X %s\n", fo->fstype.get(k)); + } + if (fo->reader) { sendit(sock, " D %s\n", fo->reader); - } - if (fo->writer) { + } + if (fo->writer) { sendit(sock, " T %s\n", fo->writer); - } + } sendit(sock, " N\n"); - } - for (j=0; jname_list.size(); j++) { + } + for (j=0; jname_list.size(); j++) { sendit(sock, " I %s\n", incexe->name_list.get(j)); - } - if (incexe->name_list.size()) { + } + if (incexe->name_list.size()) { sendit(sock, " N\n"); - } + } } - + for (i=0; ires_fs.num_excludes; i++) { - INCEXE *incexe = res->res_fs.exclude_items[i]; - for (j=0; jname_list.size(); j++) { + INCEXE *incexe = res->res_fs.exclude_items[i]; + for (j=0; jname_list.size(); j++) { sendit(sock, " E %s\n", incexe->name_list.get(j)); - } - if (incexe->name_list.size()) { + } + if (incexe->name_list.size()) { sendit(sock, " N\n"); - } + } } break; } case R_SCHEDULE: if (res->res_sch.run) { - int i; - RUN *run = res->res_sch.run; - char buf[1000], num[30]; + int i; + RUN *run = res->res_sch.run; + char buf[1000], num[30]; sendit(sock, "Schedule: name=%s\n", res->res_sch.hdr.name); - if (!run) { - break; - } + if (!run) { + break; + } next_run: sendit(sock, " --> Run Level=%s\n", level_to_str(run->level)); bstrncpy(buf, " hour=", sizeof(buf)); - for (i=0; i<24; i++) { - if (bit_is_set(i, run->hour)) { + for (i=0; i<24; i++) { + if (bit_is_set(i, run->hour)) { bsnprintf(num, sizeof(num), "%d ", i); - bstrncat(buf, num, sizeof(buf)); - } - } + bstrncat(buf, num, sizeof(buf)); + } + } bstrncat(buf, "\n", sizeof(buf)); - sendit(sock, buf); + sendit(sock, buf); bstrncpy(buf, " mday=", sizeof(buf)); - for (i=0; i<31; i++) { - if (bit_is_set(i, run->mday)) { + for (i=0; i<31; i++) { + if (bit_is_set(i, run->mday)) { bsnprintf(num, sizeof(num), "%d ", i); - bstrncat(buf, num, sizeof(buf)); - } - } + bstrncat(buf, num, sizeof(buf)); + } + } bstrncat(buf, "\n", sizeof(buf)); - sendit(sock, buf); + sendit(sock, buf); bstrncpy(buf, " month=", sizeof(buf)); - for (i=0; i<12; i++) { - if (bit_is_set(i, run->month)) { + for (i=0; i<12; i++) { + if (bit_is_set(i, run->month)) { bsnprintf(num, sizeof(num), "%d ", i); - bstrncat(buf, num, sizeof(buf)); - } - } + bstrncat(buf, num, sizeof(buf)); + } + } bstrncat(buf, "\n", sizeof(buf)); - sendit(sock, buf); + sendit(sock, buf); bstrncpy(buf, " wday=", sizeof(buf)); - for (i=0; i<7; i++) { - if (bit_is_set(i, run->wday)) { + for (i=0; i<7; i++) { + if (bit_is_set(i, run->wday)) { bsnprintf(num, sizeof(num), "%d ", i); - bstrncat(buf, num, sizeof(buf)); - } - } + bstrncat(buf, num, sizeof(buf)); + } + } bstrncat(buf, "\n", sizeof(buf)); - sendit(sock, buf); + sendit(sock, buf); bstrncpy(buf, " wom=", sizeof(buf)); - for (i=0; i<5; i++) { - if (bit_is_set(i, run->wom)) { + for (i=0; i<5; i++) { + if (bit_is_set(i, run->wom)) { bsnprintf(num, sizeof(num), "%d ", i); - bstrncat(buf, num, sizeof(buf)); - } - } + bstrncat(buf, num, sizeof(buf)); + } + } bstrncat(buf, "\n", sizeof(buf)); - sendit(sock, buf); + sendit(sock, buf); bstrncpy(buf, " woy=", sizeof(buf)); - for (i=0; i<54; i++) { - if (bit_is_set(i, run->woy)) { + for (i=0; i<54; i++) { + if (bit_is_set(i, run->woy)) { bsnprintf(num, sizeof(num), "%d ", i); - bstrncat(buf, num, sizeof(buf)); - } - } + bstrncat(buf, num, sizeof(buf)); + } + } bstrncat(buf, "\n", sizeof(buf)); - sendit(sock, buf); + sendit(sock, buf); sendit(sock, " mins=%d\n", run->minute); - if (run->pool) { + if (run->pool) { sendit(sock, " --> "); - dump_resource(-R_POOL, (RES *)run->pool, sendit, sock); - } - if (run->storage) { + dump_resource(-R_POOL, (RES *)run->pool, sendit, sock); + } + if (run->storage) { sendit(sock, " --> "); - dump_resource(-R_STORAGE, (RES *)run->storage, sendit, sock); - } - if (run->msgs) { + dump_resource(-R_STORAGE, (RES *)run->storage, sendit, sock); + } + if (run->msgs) { sendit(sock, " --> "); - dump_resource(-R_MSGS, (RES *)run->msgs, sendit, sock); - } - /* If another Run record is chained in, go print it */ - if (run->next) { - run = run->next; - goto next_run; - } + dump_resource(-R_MSGS, (RES *)run->msgs, sendit, sock); + } + /* If another Run record is chained in, go print it */ + if (run->next) { + run = run->next; + goto next_run; + } } else { sendit(sock, "Schedule: name=%s\n", res->res_sch.hdr.name); } break; case R_POOL: sendit(sock, "Pool: name=%s PoolType=%s\n", res->res_pool.hdr.name, - res->res_pool.pool_type); + res->res_pool.pool_type); sendit(sock, " use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n", - res->res_pool.use_catalog, res->res_pool.use_volume_once, - res->res_pool.accept_any_volume, res->res_pool.catalog_files); + res->res_pool.use_catalog, res->res_pool.use_volume_once, + res->res_pool.accept_any_volume, res->res_pool.catalog_files); sendit(sock, " max_vols=%d auto_prune=%d VolRetention=%s\n", - res->res_pool.max_volumes, res->res_pool.AutoPrune, - edit_utime(res->res_pool.VolRetention, ed1, sizeof(ed1))); + res->res_pool.max_volumes, res->res_pool.AutoPrune, + edit_utime(res->res_pool.VolRetention, ed1, sizeof(ed1))); sendit(sock, " VolUse=%s recycle=%d LabelFormat=%s\n", - edit_utime(res->res_pool.VolUseDuration, ed1, sizeof(ed1)), - res->res_pool.Recycle, - NPRT(res->res_pool.label_format)); + edit_utime(res->res_pool.VolUseDuration, ed1, sizeof(ed1)), + res->res_pool.Recycle, + NPRT(res->res_pool.label_format)); sendit(sock, " CleaningPrefix=%s\n", - NPRT(res->res_pool.cleaning_prefix)); + NPRT(res->res_pool.cleaning_prefix)); sendit(sock, " recyleOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n", - res->res_pool.purge_oldest_volume, - res->res_pool.MaxVolJobs, res->res_pool.MaxVolFiles); + res->res_pool.purge_oldest_volume, + res->res_pool.MaxVolJobs, res->res_pool.MaxVolFiles); break; case R_MSGS: sendit(sock, "Messages: name=%s\n", res->res_msgs.hdr.name); @@ -743,13 +759,18 @@ static void free_incexe(INCEXE *incexe) for (int i=0; inum_opts; i++) { FOPTS *fopt = incexe->opts_list[i]; fopt->regex.destroy(); + fopt->regexdir.destroy(); + fopt->regexfile.destroy(); fopt->wild.destroy(); + fopt->wilddir.destroy(); + fopt->wildfile.destroy(); fopt->base.destroy(); + fopt->fstype.destroy(); if (fopt->reader) { - free(fopt->reader); + free(fopt->reader); } if (fopt->writer) { - free(fopt->writer); + free(fopt->writer); } free(fopt); } @@ -769,7 +790,7 @@ static void free_incexe(INCEXE *incexe) void free_resource(RES *sres, int type) { int num; - RES *nres; /* next resource if linked */ + RES *nres; /* next resource if linked */ URES *res = (URES *)sres; if (res == NULL) @@ -787,152 +808,152 @@ void free_resource(RES *sres, int type) switch (type) { case R_DIRECTOR: if (res->res_dir.working_directory) { - free(res->res_dir.working_directory); + free(res->res_dir.working_directory); } if (res->res_dir.pid_directory) { - free(res->res_dir.pid_directory); + free(res->res_dir.pid_directory); } if (res->res_dir.subsys_directory) { - free(res->res_dir.subsys_directory); + free(res->res_dir.subsys_directory); } if (res->res_dir.password) { - free(res->res_dir.password); + free(res->res_dir.password); } if (res->res_dir.query_file) { - free(res->res_dir.query_file); + free(res->res_dir.query_file); } if (res->res_dir.DIRaddrs) { - free_addresses(res->res_dir.DIRaddrs); + free_addresses(res->res_dir.DIRaddrs); } break; case R_COUNTER: break; case R_CONSOLE: if (res->res_con.password) { - free(res->res_con.password); + free(res->res_con.password); } for (int i=0; ires_con.ACL_lists[i]) { - delete res->res_con.ACL_lists[i]; - res->res_con.ACL_lists[i] = NULL; - } + if (res->res_con.ACL_lists[i]) { + delete res->res_con.ACL_lists[i]; + res->res_con.ACL_lists[i] = NULL; + } } break; case R_CLIENT: if (res->res_client.address) { - free(res->res_client.address); + free(res->res_client.address); } if (res->res_client.password) { - free(res->res_client.password); + free(res->res_client.password); } break; case R_STORAGE: if (res->res_store.address) { - free(res->res_store.address); + free(res->res_store.address); } if (res->res_store.password) { - free(res->res_store.password); + free(res->res_store.password); } if (res->res_store.media_type) { - free(res->res_store.media_type); + free(res->res_store.media_type); } if (res->res_store.dev_name) { - free(res->res_store.dev_name); + free(res->res_store.dev_name); } break; case R_CATALOG: if (res->res_cat.db_address) { - free(res->res_cat.db_address); + free(res->res_cat.db_address); } if (res->res_cat.db_socket) { - free(res->res_cat.db_socket); + free(res->res_cat.db_socket); } if (res->res_cat.db_user) { - free(res->res_cat.db_user); + free(res->res_cat.db_user); } if (res->res_cat.db_name) { - free(res->res_cat.db_name); + free(res->res_cat.db_name); } if (res->res_cat.db_password) { - free(res->res_cat.db_password); + free(res->res_cat.db_password); } break; case R_FILESET: if ((num=res->res_fs.num_includes)) { - while (--num >= 0) { - free_incexe(res->res_fs.include_items[num]); - } - free(res->res_fs.include_items); + while (--num >= 0) { + free_incexe(res->res_fs.include_items[num]); + } + free(res->res_fs.include_items); } res->res_fs.num_includes = 0; if ((num=res->res_fs.num_excludes)) { - while (--num >= 0) { - free_incexe(res->res_fs.exclude_items[num]); - } - free(res->res_fs.exclude_items); + while (--num >= 0) { + free_incexe(res->res_fs.exclude_items[num]); + } + free(res->res_fs.exclude_items); } res->res_fs.num_excludes = 0; break; case R_POOL: if (res->res_pool.pool_type) { - free(res->res_pool.pool_type); + free(res->res_pool.pool_type); } if (res->res_pool.label_format) { - free(res->res_pool.label_format); + free(res->res_pool.label_format); } if (res->res_pool.cleaning_prefix) { - free(res->res_pool.cleaning_prefix); + free(res->res_pool.cleaning_prefix); } break; case R_SCHEDULE: if (res->res_sch.run) { - RUN *nrun, *next; - nrun = res->res_sch.run; - while (nrun) { - next = nrun->next; - free(nrun); - nrun = next; - } + RUN *nrun, *next; + nrun = res->res_sch.run; + while (nrun) { + next = nrun->next; + free(nrun); + nrun = next; + } } break; case R_JOB: case R_JOBDEFS: if (res->res_job.RestoreWhere) { - free(res->res_job.RestoreWhere); + free(res->res_job.RestoreWhere); } if (res->res_job.RestoreBootstrap) { - free(res->res_job.RestoreBootstrap); + free(res->res_job.RestoreBootstrap); } if (res->res_job.WriteBootstrap) { - free(res->res_job.WriteBootstrap); + free(res->res_job.WriteBootstrap); } if (res->res_job.RunBeforeJob) { - free(res->res_job.RunBeforeJob); + free(res->res_job.RunBeforeJob); } if (res->res_job.RunAfterJob) { - free(res->res_job.RunAfterJob); + free(res->res_job.RunAfterJob); } if (res->res_job.RunAfterFailedJob) { - free(res->res_job.RunAfterFailedJob); + free(res->res_job.RunAfterFailedJob); } if (res->res_job.ClientRunBeforeJob) { - free(res->res_job.ClientRunBeforeJob); + free(res->res_job.ClientRunBeforeJob); } if (res->res_job.ClientRunAfterJob) { - free(res->res_job.ClientRunAfterJob); + free(res->res_job.ClientRunAfterJob); } for (int i=0; i < MAX_STORE; i++) { - if (res->res_job.storage[i]) { - delete (alist *)res->res_job.storage[i]; - } + if (res->res_job.storage[i]) { + delete (alist *)res->res_job.storage[i]; + } } break; case R_MSGS: if (res->res_msgs.mail_cmd) { - free(res->res_msgs.mail_cmd); + free(res->res_msgs.mail_cmd); } if (res->res_msgs.operator_cmd) { - free(res->res_msgs.operator_cmd); + free(res->res_msgs.operator_cmd); } free_msgs_res((MSGS *)res); /* free message resource */ res = NULL; @@ -968,16 +989,26 @@ void save_resource(int type, RES_ITEM *items, int pass) * Ensure that all required items are present */ for (i=0; items[i].name; i++) { - if (items[i].flags & ITEM_REQUIRED) { - if (!bit_is_set(i, res_all.res_dir.hdr.item_present)) { - Emsg2(M_ERROR_TERM, 0, "%s item is required in %s resource, but not found.\n", - items[i].name, resources[rindex]); - } - } - /* If this triggers, take a look at lib/parse_conf.h */ - if (i >= MAX_RES_ITEMS) { + if (items[i].flags & ITEM_REQUIRED) { + if (!bit_is_set(i, res_all.res_dir.hdr.item_present)) { + Emsg2(M_ERROR_TERM, 0, "%s item is required in %s resource, but not found.\n", + items[i].name, resources[rindex]); + } + } + /* If this triggers, take a look at lib/parse_conf.h */ + if (i >= MAX_RES_ITEMS) { Emsg1(M_ERROR_TERM, 0, "Too many items in %s resource\n", resources[rindex]); - } + } + } + } else if (type == R_JOB) { + /* + * Ensure that the name item is present + */ + if (items[0].flags & ITEM_REQUIRED) { + if (!bit_is_set(0, res_all.res_dir.hdr.item_present)) { + Emsg2(M_ERROR_TERM, 0, "%s item is required in %s resource, but not found.\n", + items[0].name, resources[rindex]); + } } } @@ -996,76 +1027,76 @@ void save_resource(int type, RES_ITEM *items, int pass) case R_POOL: case R_MSGS: case R_FILESET: - break; + break; /* Resources containing another resource */ case R_DIRECTOR: - if ((res = (URES *)GetResWithName(R_DIRECTOR, res_all.res_dir.hdr.name)) == NULL) { + if ((res = (URES *)GetResWithName(R_DIRECTOR, res_all.res_dir.hdr.name)) == NULL) { Emsg1(M_ERROR_TERM, 0, "Cannot find Director resource %s\n", res_all.res_dir.hdr.name); - } - res->res_dir.messages = res_all.res_dir.messages; - break; + } + res->res_dir.messages = res_all.res_dir.messages; + break; case R_JOB: case R_JOBDEFS: - if ((res = (URES *)GetResWithName(type, res_all.res_dir.hdr.name)) == NULL) { + if ((res = (URES *)GetResWithName(type, res_all.res_dir.hdr.name)) == NULL) { Emsg1(M_ERROR_TERM, 0, "Cannot find Job resource %s\n", - res_all.res_dir.hdr.name); - } - res->res_job.messages = res_all.res_job.messages; - res->res_job.schedule = res_all.res_job.schedule; - res->res_job.client = res_all.res_job.client; - res->res_job.fileset = res_all.res_job.fileset; - for (int i=0; i < MAX_STORE; i++) { - res->res_job.storage[i] = res_all.res_job.storage[i]; - } - res->res_job.pool = res_all.res_job.pool; - res->res_job.full_pool = res_all.res_job.full_pool; - res->res_job.inc_pool = res_all.res_job.inc_pool; - res->res_job.dif_pool = res_all.res_job.dif_pool; - res->res_job.verify_job = res_all.res_job.verify_job; - res->res_job.jobdefs = res_all.res_job.jobdefs; - break; + res_all.res_dir.hdr.name); + } + res->res_job.messages = res_all.res_job.messages; + res->res_job.schedule = res_all.res_job.schedule; + res->res_job.client = res_all.res_job.client; + res->res_job.fileset = res_all.res_job.fileset; + for (int i=0; i < MAX_STORE; i++) { + res->res_job.storage[i] = res_all.res_job.storage[i]; + } + res->res_job.pool = res_all.res_job.pool; + res->res_job.full_pool = res_all.res_job.full_pool; + res->res_job.inc_pool = res_all.res_job.inc_pool; + res->res_job.dif_pool = res_all.res_job.dif_pool; + res->res_job.verify_job = res_all.res_job.verify_job; + res->res_job.jobdefs = res_all.res_job.jobdefs; + break; case R_COUNTER: - if ((res = (URES *)GetResWithName(R_COUNTER, res_all.res_counter.hdr.name)) == NULL) { + if ((res = (URES *)GetResWithName(R_COUNTER, res_all.res_counter.hdr.name)) == NULL) { Emsg1(M_ERROR_TERM, 0, "Cannot find Counter resource %s\n", res_all.res_counter.hdr.name); - } - res->res_counter.Catalog = res_all.res_counter.Catalog; - res->res_counter.WrapCounter = res_all.res_counter.WrapCounter; - break; + } + res->res_counter.Catalog = res_all.res_counter.Catalog; + res->res_counter.WrapCounter = res_all.res_counter.WrapCounter; + break; case R_CLIENT: - if ((res = (URES *)GetResWithName(R_CLIENT, res_all.res_client.hdr.name)) == NULL) { + if ((res = (URES *)GetResWithName(R_CLIENT, res_all.res_client.hdr.name)) == NULL) { Emsg1(M_ERROR_TERM, 0, "Cannot find Client resource %s\n", res_all.res_client.hdr.name); - } - res->res_client.catalog = res_all.res_client.catalog; - break; + } + res->res_client.catalog = res_all.res_client.catalog; + break; case R_SCHEDULE: - /* - * Schedule is a bit different in that it contains a RUN record + /* + * Schedule is a bit different in that it contains a RUN record * chain which isn't a "named" resource. This chain was linked - * in by run_conf.c during pass 2, so here we jam the pointer - * into the Schedule resource. - */ - if ((res = (URES *)GetResWithName(R_SCHEDULE, res_all.res_client.hdr.name)) == NULL) { + * in by run_conf.c during pass 2, so here we jam the pointer + * into the Schedule resource. + */ + if ((res = (URES *)GetResWithName(R_SCHEDULE, res_all.res_client.hdr.name)) == NULL) { Emsg1(M_ERROR_TERM, 0, "Cannot find Schedule resource %s\n", res_all.res_client.hdr.name); - } - res->res_sch.run = res_all.res_sch.run; - break; + } + res->res_sch.run = res_all.res_sch.run; + break; default: Emsg1(M_ERROR, 0, "Unknown resource type %d in save_resource.\n", type); - error = 1; - break; + error = 1; + break; } /* Note, the resource name was already saved during pass 1, * so here, we can just release it. */ if (res_all.res_dir.hdr.name) { - free(res_all.res_dir.hdr.name); - res_all.res_dir.hdr.name = NULL; + free(res_all.res_dir.hdr.name); + res_all.res_dir.hdr.name = NULL; } if (res_all.res_dir.hdr.desc) { - free(res_all.res_dir.hdr.desc); - res_all.res_dir.hdr.desc = NULL; + free(res_all.res_dir.hdr.desc); + res_all.res_dir.hdr.desc = NULL; } return; } @@ -1119,22 +1150,22 @@ void save_resource(int type, RES_ITEM *items, int pass) res = (URES *)malloc(size); memcpy(res, &res_all, size); if (!res_head[rindex]) { - res_head[rindex] = (RES *)res; /* store first entry */ + res_head[rindex] = (RES *)res; /* store first entry */ Dmsg3(900, "Inserting first %s res: %s index=%d\n", res_to_str(type), - res->res_dir.hdr.name, rindex); + res->res_dir.hdr.name, rindex); } else { - RES *next; - /* Add new res to end of chain */ - for (next=res_head[rindex]; next->next; next=next->next) { - if (strcmp(next->name, res->res_dir.hdr.name) == 0) { - Emsg2(M_ERROR_TERM, 0, + RES *next; + /* Add new res to end of chain */ + for (next=res_head[rindex]; next->next; next=next->next) { + if (strcmp(next->name, res->res_dir.hdr.name) == 0) { + Emsg2(M_ERROR_TERM, 0, _("Attempt to define second %s resource named \"%s\" is not permitted.\n"), - resources[rindex].name, res->res_dir.hdr.name); - } - } - next->next = (RES *)res; + resources[rindex].name, res->res_dir.hdr.name); + } + } + next->next = (RES *)res; Dmsg4(900, "Inserting %s res: %s index=%d pass=%d\n", res_to_str(type), - res->res_dir.hdr.name, rindex, pass); + res->res_dir.hdr.name, rindex, pass); } } } @@ -1151,9 +1182,9 @@ void store_jobtype(LEX *lc, RES_ITEM *item, int index, int pass) /* Store the type both pass 1 and pass 2 */ for (i=0; jobtypes[i].type_name; i++) { if (strcasecmp(lc->str, jobtypes[i].type_name) == 0) { - *(int *)(item->value) = jobtypes[i].job_type; - i = 0; - break; + *(int *)(item->value) = jobtypes[i].job_type; + i = 0; + break; } } if (i != 0) { @@ -1175,9 +1206,9 @@ void store_level(LEX *lc, RES_ITEM *item, int index, int pass) /* Store the level pass 2 so that type is defined */ for (i=0; joblevels[i].level_name; i++) { if (strcasecmp(lc->str, joblevels[i].level_name) == 0) { - *(int *)(item->value) = joblevels[i].level; - i = 0; - break; + *(int *)(item->value) = joblevels[i].level; + i = 0; + break; } } if (i != 0) { @@ -1194,9 +1225,9 @@ void store_replace(LEX *lc, RES_ITEM *item, int index, int pass) /* Scan Replacement options */ for (i=0; ReplaceOptions[i].name; i++) { if (strcasecmp(lc->str, ReplaceOptions[i].name) == 0) { - *(int *)(item->value) = ReplaceOptions[i].token; - i = 0; - break; + *(int *)(item->value) = ReplaceOptions[i].token; + i = 0; + break; } } if (i != 0) { @@ -1217,16 +1248,16 @@ void store_acl(LEX *lc, RES_ITEM *item, int index, int pass) for (;;) { token = lex_get_token(lc, T_NAME); if (pass == 1) { - if (((alist **)item->value)[item->code] == NULL) { - ((alist **)item->value)[item->code] = New(alist(10, owned_by_alist)); + if (((alist **)item->value)[item->code] == NULL) { + ((alist **)item->value)[item->code] = New(alist(10, owned_by_alist)); Dmsg1(900, "Defined new ACL alist at %d\n", item->code); - } - ((alist **)item->value)[item->code]->append(bstrdup(lc->str)); + } + ((alist **)item->value)[item->code]->append(bstrdup(lc->str)); Dmsg2(900, "Appended to %d %s\n", item->code, lc->str); } token = lex_get_token(lc, T_ALL); if (token == T_COMMA) { - continue; /* get another ACL */ + continue; /* get another ACL */ } break; } diff --git a/bacula/src/dird/dird_conf.h b/bacula/src/dird/dird_conf.h index d3344eb4c6..24b056aa35 100644 --- a/bacula/src/dird/dird_conf.h +++ b/bacula/src/dird/dird_conf.h @@ -243,14 +243,19 @@ struct JOB { }; #undef MAX_FOPTS -#define MAX_FOPTS 30 +#define MAX_FOPTS 34 /* File options structure */ struct FOPTS { char opts[MAX_FOPTS]; /* options string */ alist regex; /* regex string(s) */ + alist regexdir; /* regex string(s) for directories */ + alist regexfile; /* regex string(s) for files */ alist wild; /* wild card strings */ + alist wilddir; /* wild card strings for directories */ + alist wildfile; /* wild card strings for files */ alist base; /* list of base names */ + alist fstype; /* file system type limitation */ char *reader; /* reader program */ char *writer; /* writer program */ }; diff --git a/bacula/src/dird/fd_cmds.c b/bacula/src/dird/fd_cmds.c index 46131fc04b..e4be6d4c36 100644 --- a/bacula/src/dird/fd_cmds.c +++ b/bacula/src/dird/fd_cmds.c @@ -6,14 +6,14 @@ * * This routine is run as a separate thread. There may be more * work to be done to make it totally reentrant!!!! - * + * * Utility functions for sending info to File Daemon. * These functions are used by both backup and verify. - * + * * Version $Id$ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -59,14 +59,14 @@ static char OKRunAfter[] = "2000 OK RunAfter\n"; /* External functions */ extern int debug_level; -extern DIRRES *director; +extern DIRRES *director; extern int FDConnectTimeout; #define INC_LIST 0 #define EXC_LIST 1 /* - * Open connection with File daemon. + * Open connection with File daemon. * Try connecting every retry_interval (default 10 sec), and * give up after max_retry_time (default 30 mins). */ @@ -78,7 +78,7 @@ int connect_to_file_daemon(JCR *jcr, int retry_interval, int max_retry_time, if (!jcr->file_bsock) { fd = bnet_connect(jcr, retry_interval, max_retry_time, - _("File daemon"), jcr->client->address, + _("File daemon"), jcr->client->address, NULL, jcr->client->FDport, verbose); if (fd == NULL) { set_jcr_job_status(jcr, JS_ErrorTerminated); @@ -96,11 +96,11 @@ int connect_to_file_daemon(JCR *jcr, int retry_interval, int max_retry_time, set_jcr_job_status(jcr, JS_ErrorTerminated); return 0; } - + /* * Now send JobId and authorization key */ - bnet_fsend(fd, jobcmd, jcr->JobId, jcr->Job, jcr->VolSessionId, + bnet_fsend(fd, jobcmd, jcr->JobId, jcr->Job, jcr->VolSessionId, jcr->VolSessionTime, jcr->sd_auth_key); if (strcmp(jcr->sd_auth_key, "dummy") != 0) { memset(jcr->sd_auth_key, 0, strlen(jcr->sd_auth_key)); @@ -109,7 +109,7 @@ int connect_to_file_daemon(JCR *jcr, int retry_interval, int max_retry_time, if (bget_dirmsg(fd) > 0) { Dmsg1(110, "msg); if (strncmp(fd->msg, OKjob, strlen(OKjob)) != 0) { - Jmsg(jcr, M_FATAL, 0, _("File daemon \"%s\" rejected Job command: %s\n"), + Jmsg(jcr, M_FATAL, 0, _("File daemon \"%s\" rejected Job command: %s\n"), jcr->client->hdr.name, fd->msg); set_jcr_job_status(jcr, JS_ErrorTerminated); return 0; @@ -137,15 +137,15 @@ int connect_to_file_daemon(JCR *jcr, int retry_interval, int max_retry_time, /* * This subroutine edits the last job start time into a - * "since=date/time" buffer that is returned in the + * "since=date/time" buffer that is returned in the * variable since. This is used for display purposes in - * the job report. The time in jcr->stime is later + * the job report. The time in jcr->stime is later * passed to tell the File daemon what to do. */ void get_level_since_time(JCR *jcr, char *since, int since_len) { int JobLevel; - /* Lookup the last FULL backup job to get the time/date for a + /* Lookup the last FULL backup job to get the time/date for a * differential or incremental save. */ if (!jcr->stime) { @@ -162,7 +162,7 @@ void get_level_since_time(JCR *jcr, char *since, int since_len) /* No job found, so upgrade this one to Full */ Jmsg(jcr, M_INFO, 0, "%s", db_strerror(jcr->db)); Jmsg(jcr, M_INFO, 0, _("No prior or suitable Full backup found. Doing FULL backup.\n")); - bsnprintf(since, since_len, " (upgraded from %s)", + bsnprintf(since, since_len, " (upgraded from %s)", level_to_str(jcr->JobLevel)); jcr->JobLevel = jcr->jr.JobLevel = L_FULL; } else { @@ -170,13 +170,13 @@ void get_level_since_time(JCR *jcr, char *since, int since_len) if (db_find_failed_job_since(jcr, jcr->db, &jcr->jr, jcr->stime, JobLevel)) { Jmsg(jcr, M_INFO, 0, _("Prior failed job found. Upgrading to %s.\n"), level_to_str(JobLevel)); - bsnprintf(since, since_len, " (upgraded from %s)", + bsnprintf(since, since_len, " (upgraded from %s)", level_to_str(jcr->JobLevel)); jcr->JobLevel = jcr->jr.JobLevel = JobLevel; jcr->jr.JobId = jcr->JobId; break; } - } + } bstrncpy(since, ", since=", since_len); bstrncat(since, jcr->stime, since_len); } @@ -188,15 +188,15 @@ void get_level_since_time(JCR *jcr, char *since, int since_len) /* - * Send level command to FD. + * Send level command to FD. * Used for backup jobs and estimate command. */ -int send_level_command(JCR *jcr) +int send_level_command(JCR *jcr) { BSOCK *fd = jcr->file_bsock; utime_t stime; char ed1[50]; - /* + /* * Send Level command to File daemon */ switch (jcr->JobLevel) { @@ -218,7 +218,7 @@ int send_level_command(JCR *jcr) break; case L_SINCE: default: - Jmsg2(jcr, M_FATAL, 0, _("Unimplemented backup level %d %c\n"), + Jmsg2(jcr, M_FATAL, 0, _("Unimplemented backup level %d %c\n"), jcr->JobLevel, jcr->JobLevel); return 0; } @@ -377,7 +377,7 @@ static int send_fileset(JCR *jcr) num = fileset->num_includes; } else { num = fileset->num_excludes; - } + } for (int i=0; iexclude_items[i]; bnet_fsend(fd, "E\n"); - } + } for (j=0; jnum_opts; j++) { FOPTS *fo = ie->opts_list[j]; bnet_fsend(fd, "O %s\n", fo->opts); for (k=0; kregex.size(); k++) { bnet_fsend(fd, "R %s\n", fo->regex.get(k)); } + for (k=0; kregexdir.size(); k++) { + bnet_fsend(fd, "RD %s\n", fo->regexdir.get(k)); + } + for (k=0; kregexfile.size(); k++) { + bnet_fsend(fd, "RF %s\n", fo->regexfile.get(k)); + } for (k=0; kwild.size(); k++) { bnet_fsend(fd, "W %s\n", fo->wild.get(k)); } + for (k=0; kwilddir.size(); k++) { + bnet_fsend(fd, "WD %s\n", fo->wilddir.get(k)); + } + for (k=0; kwildfile.size(); k++) { + bnet_fsend(fd, "WF %s\n", fo->wildfile.get(k)); + } for (k=0; kbase.size(); k++) { bnet_fsend(fd, "B %s\n", fo->base.get(k)); } + for (k=0; kfstype.size(); k++) { + bnet_fsend(fd, "X %s\n", fo->fstype.get(k)); + } if (fo->reader) { bnet_fsend(fd, "D %s\n", fo->reader); } @@ -518,7 +533,7 @@ int send_include_list(JCR *jcr) /* - * Send exclude list to File daemon + * Send exclude list to File daemon */ int send_exclude_list(JCR *jcr) { @@ -549,14 +564,14 @@ int send_bootstrap_file(JCR *jcr) bs = fopen(jcr->RestoreBootstrap, "r"); if (!bs) { berrno be; - Jmsg(jcr, M_FATAL, 0, _("Could not open bootstrap file %s: ERR=%s\n"), + Jmsg(jcr, M_FATAL, 0, _("Could not open bootstrap file %s: ERR=%s\n"), jcr->RestoreBootstrap, be.strerror()); set_jcr_job_status(jcr, JS_ErrorTerminated); return 0; } bnet_fsend(fd, bootstrap); while (fgets(buf, sizeof(buf), bs)) { - bnet_fsend(fd, "%s", buf); + bnet_fsend(fd, "%s", buf); } bnet_sig(fd, BNET_EOD); fclose(bs); @@ -599,7 +614,7 @@ int send_run_before_and_after_commands(JCR *jcr) } -/* +/* * Read the attributes from the File daemon for * a Verify job and store them in the catalog. */ @@ -618,7 +633,7 @@ int get_attributes_and_put_in_catalog(JCR *jcr) /* Pickup file attributes and signature */ while (!fd->errors && (n = bget_dirmsg(fd)) > 0) { - /*****FIXME****** improve error handling to stop only on + /*****FIXME****** improve error handling to stop only on * really fatal problems, or the number of errors is too * large. */ @@ -630,8 +645,8 @@ int get_attributes_and_put_in_catalog(JCR *jcr) jcr->fname = check_pool_memory_size(jcr->fname, fd->msglen); if ((len = sscanf(fd->msg, "%ld %d %s", &file_index, &stream, Opts_SIG)) != 3) { - Jmsg(jcr, M_FATAL, 0, _("msglen, fd->msg); + Jmsg(jcr, M_FATAL, 0, _("msglen, fd->msg); set_jcr_job_status(jcr, JS_ErrorTerminated); return 0; } @@ -640,7 +655,7 @@ msglen=%d msg=%s\n"), len, fd->msglen, fd->msg); skip_spaces(&p); skip_nonspaces(&p); /* skip Stream */ skip_spaces(&p); - skip_nonspaces(&p); /* skip Opts_SHA1 */ + skip_nonspaces(&p); /* skip Opts_SHA1 */ p++; /* skip space */ fn = jcr->fname; while (*p != 0) { @@ -680,7 +695,7 @@ msglen=%d msg=%s\n"), len, fd->msglen, fd->msg); } db_escape_string(SIG, Opts_SIG, strlen(Opts_SIG)); Dmsg2(120, "SIGlen=%d SIG=%s\n", strlen(SIG), SIG); - if (!db_add_SIG_to_file_record(jcr, jcr->db, jcr->FileId, SIG, + if (!db_add_SIG_to_file_record(jcr, jcr->db, jcr->FileId, SIG, stream==STREAM_MD5_SIGNATURE?MD5_SIG:SHA1_SIG)) { Jmsg1(jcr, M_ERROR, 0, "%s", db_strerror(jcr->db)); set_jcr_job_status(jcr, JS_Error); @@ -688,7 +703,7 @@ msglen=%d msg=%s\n"), len, fd->msglen, fd->msg); } jcr->jr.JobFiles = jcr->JobFiles = file_index; jcr->jr.LastIndex = file_index; - } + } if (is_bnet_error(fd)) { Jmsg1(jcr, M_FATAL, 0, _("msg[0] == 'S') { /* Status change */ + int JobStatus; + char Job[MAX_NAME_LENGTH]; + if (sscanf(bs->msg, Job_status, &Job, &JobStatus) == 2) { + jcr->SDJobStatus = JobStatus; /* current status */ + free_jcr(jcr); + continue; + } + } return n; } } diff --git a/bacula/src/dird/inc_conf.c b/bacula/src/dird/inc_conf.c index c3a01f4ef3..51de57ba13 100644 --- a/bacula/src/dird/inc_conf.c +++ b/bacula/src/dird/inc_conf.c @@ -7,7 +7,7 @@ * Version $Id$ */ /* - Copyright (C) 2003-2004 Kern Sibbald and John Walker + Copyright (C) 2003-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -39,6 +39,7 @@ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass); static void store_newinc(LEX *lc, RES_ITEM *item, int index, int pass); static void store_regex(LEX *lc, RES_ITEM *item, int index, int pass); static void store_wild(LEX *lc, RES_ITEM *item, int index, int pass); +static void store_fstype(LEX *lc, RES_ITEM *item, int index, int pass); static void store_opts(LEX *lc, RES_ITEM *item, int index, int pass); static void store_fname(LEX *lc, RES_ITEM *item, int index, int pass); static void options_res(LEX *lc, RES_ITEM *item, int index, int pass); @@ -59,14 +60,14 @@ extern int res_all_size; /* We build the current new Include and Exclude items here */ static INCEXE res_incexe; -/* +/* * new Include/Exclude items * name handler value code flags default_value */ static RES_ITEM newinc_items[] = { {"file", store_fname, NULL, 0, 0, 0}, {"options", options_res, NULL, 0, 0, 0}, - {NULL, NULL, NULL, 0, 0, 0} + {NULL, NULL, NULL, 0, 0, 0} }; /* @@ -79,19 +80,27 @@ static RES_ITEM options_items[] = { {"onefs", store_opts, NULL, 0, 0, 0}, {"recurse", store_opts, NULL, 0, 0, 0}, {"sparse", store_opts, NULL, 0, 0, 0}, + {"hardlinks", store_opts, NULL, 0, 0, 0}, {"readfifo", store_opts, NULL, 0, 0, 0}, {"replace", store_opts, NULL, 0, 0, 0}, {"portable", store_opts, NULL, 0, 0, 0}, {"mtimeonly", store_opts, NULL, 0, 0, 0}, {"keepatime", store_opts, NULL, 0, 0, 0}, {"regex", store_regex, NULL, 0, 0, 0}, + {"regexdir", store_regex, NULL, 1, 0, 0}, + {"regexfile", store_regex, NULL, 2, 0, 0}, {"base", store_base, NULL, 0, 0, 0}, {"wild", store_wild, NULL, 0, 0, 0}, + {"wilddir", store_wild, NULL, 1, 0, 0}, + {"wildfile", store_wild, NULL, 2, 0, 0}, {"exclude", store_opts, NULL, 0, 0, 0}, {"aclsupport", store_opts, NULL, 0, 0, 0}, {"reader", store_reader, NULL, 0, 0, 0}, {"writer", store_writer, NULL, 0, 0, 0}, - {NULL, NULL, NULL, 0, 0, 0} + {"ignorecase", store_opts, NULL, 0, 0, 0}, + {"fstype", store_fstype, NULL, 0, 0, 0}, + {"hfsplussupport", store_opts, NULL, 0, 0, 0}, + {NULL, NULL, NULL, 0, 0, 0} }; @@ -106,13 +115,16 @@ enum { INC_KW_ONEFS, INC_KW_RECURSE, INC_KW_SPARSE, + INC_KW_HARDLINK, INC_KW_REPLACE, /* restore options */ INC_KW_READFIFO, /* Causes fifo data to be read */ INC_KW_PORTABLE, INC_KW_MTIMEONLY, INC_KW_KEEPATIME, INC_KW_EXCLUDE, - INC_KW_ACL + INC_KW_ACL, + INC_KW_IGNORECASE, + INC_KW_HFSPLUS }; /* @@ -127,6 +139,7 @@ static struct s_kw FS_option_kw[] = { {"onefs", INC_KW_ONEFS}, {"recurse", INC_KW_RECURSE}, {"sparse", INC_KW_SPARSE}, + {"hardlinks", INC_KW_HARDLINK}, {"replace", INC_KW_REPLACE}, {"readfifo", INC_KW_READFIFO}, {"portable", INC_KW_PORTABLE}, @@ -134,6 +147,8 @@ static struct s_kw FS_option_kw[] = { {"keepatime", INC_KW_KEEPATIME}, {"exclude", INC_KW_EXCLUDE}, {"aclsupport", INC_KW_ACL}, + {"ignorecase", INC_KW_IGNORECASE}, + {"hfsplussupport", INC_KW_HFSPLUS}, {NULL, 0} }; @@ -146,7 +161,7 @@ struct s_fs_opt { }; /* - * Options permitted for each keyword and resulting value. + * Options permitted for each keyword and resulting value. * The output goes into opts, which are then transmitted to * the FD for application as options to the following list of * included files. @@ -172,6 +187,8 @@ static struct s_fs_opt FS_options[] = { {"no", INC_KW_RECURSE, "h"}, {"yes", INC_KW_SPARSE, "s"}, {"no", INC_KW_SPARSE, "0"}, + {"yes", INC_KW_HARDLINK, "0"}, + {"no", INC_KW_HARDLINK, "H"}, {"always", INC_KW_REPLACE, "a"}, {"ifnewer", INC_KW_REPLACE, "w"}, {"never", INC_KW_REPLACE, "n"}, @@ -187,13 +204,17 @@ static struct s_fs_opt FS_options[] = { {"no", INC_KW_EXCLUDE, "0"}, {"yes", INC_KW_ACL, "A"}, {"no", INC_KW_ACL, "0"}, + {"yes", INC_KW_IGNORECASE, "i"}, + {"no", INC_KW_IGNORECASE, "0"}, + {"yes", INC_KW_HFSPLUS, "R"}, /* "R" for resource fork */ + {"no", INC_KW_HFSPLUS, "0"}, {NULL, 0, 0} }; -/* - * Scan for right hand side of Include options (keyword=option) is +/* + * Scan for right hand side of Include options (keyword=option) is * converted into one or two characters. Verifyopts=xxxx is Vxxxx: * Whatever is found is concatenated to the opts string. * This code is also used inside an Options resource. @@ -202,10 +223,12 @@ static void scan_include_options(LEX *lc, int keyword, char *opts, int optlen) { int token, i; char option[3]; + int lcopts = lc->options; option[0] = 0; /* default option = none */ option[2] = 0; /* terminate options */ - token = lex_get_token(lc, T_NAME); /* expect at least one option */ + lc->options |= LOPT_STRING; /* force string */ + token = lex_get_token(lc, T_STRING); /* expect at least one option */ if (keyword == INC_KW_VERIFY) { /* special case */ /* ***FIXME**** ensure these are in permitted set */ bstrncat(opts, "V", optlen); /* indicate Verify */ @@ -214,7 +237,7 @@ static void scan_include_options(LEX *lc, int keyword, char *opts, int optlen) Dmsg3(900, "Catopts=%s option=%s optlen=%d\n", opts, option,optlen); /* - * Standard keyword options for Include/Exclude + * Standard keyword options for Include/Exclude */ } else { for (i=0; FS_options[i].name; i++) { @@ -233,6 +256,7 @@ static void scan_include_options(LEX *lc, int keyword, char *opts, int optlen) Dmsg3(900, "Catopts=%s option=%s optlen=%d\n", opts, option,optlen); } } + lc->options = lcopts; /* If option terminated by comma, eat it */ if (lc->ch == ',') { @@ -240,9 +264,9 @@ static void scan_include_options(LEX *lc, int keyword, char *opts, int optlen) } } -/* - * - * Store FileSet Include/Exclude info +/* + * + * Store FileSet Include/Exclude info * NEW style includes are handled in store_newinc() */ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass) @@ -258,11 +282,12 @@ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass) * new Include is followed immediately by open brace, whereas the * old include has options following the Include. */ - token = lex_get_token(lc, T_SKIP_EOL); + token = lex_get_token(lc, T_SKIP_EOL); if (token == T_BOB) { store_newinc(lc, item, index, pass); return; } + scan_err0(lc, _("Old style Include/Exclude not supported\n")); /* What follows is scanning for the OLD style Include/Exclude */ @@ -275,7 +300,7 @@ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass) /* Get include options */ inc_opts[0] = 0; while ((token=lex_get_token(lc, T_SKIP_EOL)) != T_BOB) { - + keyword = INC_KW_NONE; for (i=0; FS_option_kw[i].name; i++) { if (strcasecmp(lc->str, FS_option_kw[i].name) == 0) { @@ -299,7 +324,7 @@ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass) } if (!inc_opts[0]) { - strcat(inc_opts, "0"); /* set no options */ + bstrncat(inc_opts, "0", sizeof(inc_opts)); /* set no options */ } inc_opts_len = strlen(inc_opts); @@ -360,11 +385,11 @@ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass) break; default: scan_err1(lc, "Expected a filename, got: %s", lc->str); - } + } } /* Note, MD5Final is done in backup.c */ } else { /* pass 2 */ - while (lex_get_token(lc, T_ALL) != T_EOB) + while (lex_get_token(lc, T_ALL) != T_EOB) {} } scan_to_eol(lc); @@ -374,7 +399,7 @@ void store_inc(LEX *lc, RES_ITEM *item, int index, int pass) /* - * Store NEW style FileSet FInclude/FExclude info + * Store NEW style FileSet FInclude/FExclude info * * Note, when this routine is called, we are inside a FileSet * resource. We treat the Include/Execlude like a sort of @@ -384,7 +409,7 @@ static void store_newinc(LEX *lc, RES_ITEM *item, int index, int pass) { int token, i; INCEXE *incexe; - bool options; + bool options; if (!res_all.res_fs.have_MD5) { MD5Init(&res_all.res_fs.md5c); @@ -453,8 +478,10 @@ static void store_regex(LEX *lc, RES_ITEM *item, int index, int pass) int token, rc; regex_t preg; char prbuf[500]; + char *type; + int newsize; - token = lex_get_token(lc, T_SKIP_EOL); + token = lex_get_token(lc, T_SKIP_EOL); if (pass == 1) { /* Pickup regex string */ @@ -470,13 +497,25 @@ static void store_regex(LEX *lc, RES_ITEM *item, int index, int pass) break; } regfree(&preg); - res_incexe.current_opts->regex.append(bstrdup(lc->str)); - Dmsg3(900, "set regex %p size=%d %s\n", - res_incexe.current_opts, res_incexe.current_opts->regex.size(),lc->str); + if (item->code == 1) { + type = "regexdir"; + res_incexe.current_opts->regexdir.append(bstrdup(lc->str)); + newsize = res_incexe.current_opts->regexdir.size(); + } else if (item->code == 2) { + type = "regexfile"; + res_incexe.current_opts->regexfile.append(bstrdup(lc->str)); + newsize = res_incexe.current_opts->regexfile.size(); + } else { + type = "regex"; + res_incexe.current_opts->regex.append(bstrdup(lc->str)); + newsize = res_incexe.current_opts->regex.size(); + } + Dmsg4(900, "set %s %p size=%d %s\n", + type, res_incexe.current_opts, newsize, lc->str); break; default: scan_err1(lc, _("Expected a regex string, got: %s\n"), lc->str); - } + } } scan_to_eol(lc); } @@ -486,7 +525,7 @@ static void store_base(LEX *lc, RES_ITEM *item, int index, int pass) { int token; - token = lex_get_token(lc, T_NAME); + token = lex_get_token(lc, T_NAME); if (pass == 1) { /* * Pickup Base Job Name @@ -501,12 +540,12 @@ static void store_reader(LEX *lc, RES_ITEM *item, int index, int pass) { int token; - token = lex_get_token(lc, T_NAME); + token = lex_get_token(lc, T_NAME); if (pass == 1) { /* * Pickup reader command */ - res_incexe.current_opts->reader = bstrdup(lc->str); + res_incexe.current_opts->reader = bstrdup(lc->str); } scan_to_eol(lc); } @@ -516,7 +555,7 @@ static void store_writer(LEX *lc, RES_ITEM *item, int index, int pass) { int token; - token = lex_get_token(lc, T_NAME); + token = lex_get_token(lc, T_NAME); if (pass == 1) { /* * Pickup writer command @@ -532,8 +571,10 @@ static void store_writer(LEX *lc, RES_ITEM *item, int index, int pass) static void store_wild(LEX *lc, RES_ITEM *item, int index, int pass) { int token; + char *type; + int newsize; - token = lex_get_token(lc, T_SKIP_EOL); + token = lex_get_token(lc, T_SKIP_EOL); if (pass == 1) { /* * Pickup Wild-card string @@ -542,17 +583,51 @@ static void store_wild(LEX *lc, RES_ITEM *item, int index, int pass) case T_IDENTIFIER: case T_UNQUOTED_STRING: case T_QUOTED_STRING: - res_incexe.current_opts->wild.append(bstrdup(lc->str)); - Dmsg3(900, "set wild %p size=%d %s\n", - res_incexe.current_opts, res_incexe.current_opts->wild.size(),lc->str); + if (item->code == 1) { + type = "wilddir"; + res_incexe.current_opts->wilddir.append(bstrdup(lc->str)); + newsize = res_incexe.current_opts->wilddir.size(); + } else if (item->code == 2) { + type = "wildfile"; + res_incexe.current_opts->wildfile.append(bstrdup(lc->str)); + newsize = res_incexe.current_opts->wildfile.size(); + } else { + type = "wild"; + res_incexe.current_opts->wild.append(bstrdup(lc->str)); + newsize = res_incexe.current_opts->wild.size(); + } + Dmsg4(9, "set %s %p size=%d %s\n", + type, res_incexe.current_opts, newsize, lc->str); break; default: scan_err1(lc, _("Expected a wild-card string, got: %s\n"), lc->str); - } + } } scan_to_eol(lc); } +/* Store fstype info */ +static void store_fstype(LEX *lc, RES_ITEM *item, int index, int pass) +{ + int token; + + token = lex_get_token(lc, T_SKIP_EOL); + if (pass == 1) { + /* Pickup fstype string */ + switch (token) { + case T_IDENTIFIER: + case T_UNQUOTED_STRING: + case T_QUOTED_STRING: + res_incexe.current_opts->fstype.append(bstrdup(lc->str)); + Dmsg3(900, "set fstype %p size=%d %s\n", + res_incexe.current_opts, res_incexe.current_opts->fstype.size(), lc->str); + break; + default: + scan_err1(lc, _("Expected an fstype string, got: %s\n"), lc->str); + } + } + scan_to_eol(lc); +} /* * Store Filename info. Note, for minor efficiency reasons, we @@ -564,7 +639,7 @@ static void store_fname(LEX *lc, RES_ITEM *item, int index, int pass) int token; INCEXE *incexe; - token = lex_get_token(lc, T_SKIP_EOL); + token = lex_get_token(lc, T_SKIP_EOL); if (pass == 1) { /* Pickup Filename string */ @@ -584,11 +659,12 @@ static void store_fname(LEX *lc, RES_ITEM *item, int index, int pass) break; default: scan_err1(lc, _("Expected a filename, got: %s"), lc->str); - } + } } scan_to_eol(lc); } + /* * Come here when Options seen in Include/Exclude */ @@ -596,7 +672,7 @@ static void options_res(LEX *lc, RES_ITEM *item, int index, int pass) { int token, i; - token = lex_get_token(lc, T_SKIP_EOL); + token = lex_get_token(lc, T_SKIP_EOL); if (token != T_BOB) { scan_err1(lc, "Expecting open brace. Got %s", lc->str); } @@ -604,7 +680,7 @@ static void options_res(LEX *lc, RES_ITEM *item, int index, int pass) if (pass == 1) { setup_current_opts(); } - + while ((token = lex_get_token(lc, T_ALL)) != T_EOF) { if (token == T_EOL) { continue; @@ -672,8 +748,13 @@ static void setup_current_opts(void) FOPTS *fo = (FOPTS *)malloc(sizeof(FOPTS)); memset(fo, 0, sizeof(FOPTS)); fo->regex.init(1, true); + fo->regexdir.init(1, true); + fo->regexfile.init(1, true); fo->wild.init(1, true); + fo->wilddir.init(1, true); + fo->wildfile.init(1, true); fo->base.init(1, true); + fo->fstype.init(1, true); res_incexe.current_opts = fo; if (res_incexe.num_opts == 0) { res_incexe.opts_list = (FOPTS **)malloc(sizeof(FOPTS *)); diff --git a/bacula/src/dird/job.c b/bacula/src/dird/job.c index 676d1bcef7..2d9bfc8150 100644 --- a/bacula/src/dird/job.c +++ b/bacula/src/dird/job.c @@ -7,7 +7,7 @@ * Version $Id$ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2004 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -74,15 +74,15 @@ void init_job_server(int max_workers) void term_job_server() { - jobq_destroy(&job_queue); /* ignore any errors */ + jobq_destroy(&job_queue); /* ignore any errors */ } /* * Run a job -- typically called by the scheduler, but may also - * be called by the UA (Console program). + * be called by the UA (Console program). * * Returns: 0 on failure - * JobId on success + * JobId on success * */ JobId_t run_job(JCR *jcr) @@ -107,12 +107,12 @@ JobId_t run_job(JCR *jcr) */ Dmsg0(50, "Open database\n"); jcr->db=db_init_database(jcr, jcr->catalog->db_name, jcr->catalog->db_user, - jcr->catalog->db_password, jcr->catalog->db_address, - jcr->catalog->db_port, jcr->catalog->db_socket, - jcr->catalog->mult_db_connections); + jcr->catalog->db_password, jcr->catalog->db_address, + jcr->catalog->db_port, jcr->catalog->db_socket, + jcr->catalog->mult_db_connections); if (!jcr->db || !db_open_database(jcr, jcr->db)) { Jmsg(jcr, M_FATAL, 0, _("Could not open database \"%s\".\n"), - jcr->catalog->db_name); + jcr->catalog->db_name); if (jcr->db) { Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db)); } @@ -157,7 +157,7 @@ bail_out: /* - * This is the engine called by jobq.c:jobq_add() when we were pulled + * This is the engine called by jobq.c:jobq_add() when we were pulled * from the work queue. * At this point, we are running in our own thread and all * necessary resources are allocated -- see jobq.c @@ -172,7 +172,7 @@ static void *job_thread(void *arg) for ( ;; ) { Dmsg0(200, "=====Start Job=========\n"); - jcr->start_time = time(NULL); /* set the real start time */ + jcr->start_time = time(NULL); /* set the real start time */ jcr->jr.StartTime = jcr->start_time; set_jcr_job_status(jcr, JS_Running); if (!db_update_job_start_record(jcr, jcr->db, &jcr->jr)) { @@ -180,108 +180,108 @@ static void *job_thread(void *arg) } if (job_canceled(jcr)) { - update_job_end_record(jcr); + update_job_end_record(jcr); } else if (jcr->job->MaxStartDelay != 0 && jcr->job->MaxStartDelay < - (utime_t)(jcr->start_time - jcr->sched_time)) { + (utime_t)(jcr->start_time - jcr->sched_time)) { Jmsg(jcr, M_FATAL, 0, _("Job canceled because max start delay time exceeded.\n")); - set_jcr_job_status(jcr, JS_Canceled); - update_job_end_record(jcr); + set_jcr_job_status(jcr, JS_Canceled); + update_job_end_record(jcr); } else { - /* Run Job */ - if (jcr->job->RunBeforeJob) { - POOLMEM *before = get_pool_memory(PM_FNAME); - int status; - BPIPE *bpipe; - char line[MAXSTRING]; - + /* Run Job */ + if (jcr->job->RunBeforeJob) { + POOLMEM *before = get_pool_memory(PM_FNAME); + int status; + BPIPE *bpipe; + char line[MAXSTRING]; + before = edit_job_codes(jcr, before, jcr->job->RunBeforeJob, ""); bpipe = open_bpipe(before, 0, "r"); - free_pool_memory(before); - while (fgets(line, sizeof(line), bpipe->rfd)) { + free_pool_memory(before); + while (fgets(line, sizeof(line), bpipe->rfd)) { Jmsg(jcr, M_INFO, 0, _("RunBefore: %s"), line); - } - status = close_bpipe(bpipe); - if (status != 0) { - berrno be; + } + status = close_bpipe(bpipe); + if (status != 0) { + berrno be; Jmsg(jcr, M_FATAL, 0, _("RunBeforeJob error: ERR=%s\n"), be.strerror(status)); - set_jcr_job_status(jcr, JS_FatalError); - update_job_end_record(jcr); - goto bail_out; - } - } - switch (jcr->JobType) { - case JT_BACKUP: - do_backup(jcr); - if (jcr->JobStatus == JS_Terminated) { - do_autoprune(jcr); - } - break; - case JT_VERIFY: - do_verify(jcr); - if (jcr->JobStatus == JS_Terminated) { - do_autoprune(jcr); - } - break; - case JT_RESTORE: - do_restore(jcr); - if (jcr->JobStatus == JS_Terminated) { - do_autoprune(jcr); - } - break; - case JT_ADMIN: - do_admin(jcr); - if (jcr->JobStatus == JS_Terminated) { - do_autoprune(jcr); - } - break; - case JT_MIGRATION: - case JT_COPY: - case JT_ARCHIVE: - do_mac(jcr); /* migration, archive, copy */ - if (jcr->JobStatus == JS_Terminated) { - do_autoprune(jcr); - } - break; - default: + set_jcr_job_status(jcr, JS_FatalError); + update_job_end_record(jcr); + goto bail_out; + } + } + switch (jcr->JobType) { + case JT_BACKUP: + do_backup(jcr); + if (jcr->JobStatus == JS_Terminated) { + do_autoprune(jcr); + } + break; + case JT_VERIFY: + do_verify(jcr); + if (jcr->JobStatus == JS_Terminated) { + do_autoprune(jcr); + } + break; + case JT_RESTORE: + do_restore(jcr); + if (jcr->JobStatus == JS_Terminated) { + do_autoprune(jcr); + } + break; + case JT_ADMIN: + do_admin(jcr); + if (jcr->JobStatus == JS_Terminated) { + do_autoprune(jcr); + } + break; + case JT_MIGRATION: + case JT_COPY: + case JT_ARCHIVE: + do_mac(jcr); /* migration, archive, copy */ + if (jcr->JobStatus == JS_Terminated) { + do_autoprune(jcr); + } + break; + default: Pmsg1(0, "Unimplemented job type: %d\n", jcr->JobType); - break; - } - if ((jcr->job->RunAfterJob && jcr->JobStatus == JS_Terminated) || - (jcr->job->RunAfterFailedJob && jcr->JobStatus != JS_Terminated)) { - POOLMEM *after = get_pool_memory(PM_FNAME); - int status; - BPIPE *bpipe; - char line[MAXSTRING]; - - if (jcr->JobStatus == JS_Terminated) { + break; + } + if ((jcr->job->RunAfterJob && jcr->JobStatus == JS_Terminated) || + (jcr->job->RunAfterFailedJob && jcr->JobStatus != JS_Terminated)) { + POOLMEM *after = get_pool_memory(PM_FNAME); + int status; + BPIPE *bpipe; + char line[MAXSTRING]; + + if (jcr->JobStatus == JS_Terminated) { after = edit_job_codes(jcr, after, jcr->job->RunAfterJob, ""); - } else { + } else { after = edit_job_codes(jcr, after, jcr->job->RunAfterFailedJob, ""); - } + } bpipe = open_bpipe(after, 0, "r"); - free_pool_memory(after); - while (fgets(line, sizeof(line), bpipe->rfd)) { + free_pool_memory(after); + while (fgets(line, sizeof(line), bpipe->rfd)) { Jmsg(jcr, M_INFO, 0, _("RunAfter: %s"), line); - } - status = close_bpipe(bpipe); - /* - * Note, if we get an error here, do not mark the - * job in error, simply report the error condition. - */ - if (status != 0) { - berrno be; - if (jcr->JobStatus == JS_Terminated) { + } + status = close_bpipe(bpipe); + /* + * Note, if we get an error here, do not mark the + * job in error, simply report the error condition. + */ + if (status != 0) { + berrno be; + if (jcr->JobStatus == JS_Terminated) { Jmsg(jcr, M_WARNING, 0, _("RunAfterJob error: ERR=%s\n"), be.strerror(status)); - } else { + } else { Jmsg(jcr, M_FATAL, 0, _("RunAfterFailedJob error: ERR=%s\n"), be.strerror(status)); - } - } - } - /* Send off any queued messages */ - if (jcr->msg_queue->size() > 0) { - dequeue_messages(jcr); - } + } + } + } + /* Send off any queued messages */ + if (jcr->msg_queue->size() > 0) { + dequeue_messages(jcr); + } } bail_out: break; @@ -295,10 +295,10 @@ bail_out: /* * Cancel a job -- typically called by the UA (Console program), but may also - * be called by the job watchdog. + * be called by the job watchdog. * * Returns: 1 if cancel appears to be successful - * 0 on failure. Message sent to ua->jcr. + * 0 on failure. Message sent to ua->jcr. */ int cancel_job(UAContext *ua, JCR *jcr) { @@ -314,51 +314,51 @@ int cancel_job(UAContext *ua, JCR *jcr) case JS_WaitStartTime: set_jcr_job_status(jcr, JS_Canceled); bsendmsg(ua, _("JobId %d, Job %s marked to be canceled.\n"), - jcr->JobId, jcr->Job); + jcr->JobId, jcr->Job); jobq_remove(&job_queue, jcr); /* attempt to remove it from queue */ return 1; - + default: set_jcr_job_status(jcr, JS_Canceled); /* Cancel File daemon */ if (jcr->file_bsock) { - ua->jcr->client = jcr->client; - if (!connect_to_file_daemon(ua->jcr, 10, FDConnectTimeout, 1)) { + ua->jcr->client = jcr->client; + if (!connect_to_file_daemon(ua->jcr, 10, FDConnectTimeout, 1)) { bsendmsg(ua, _("Failed to connect to File daemon.\n")); - return 0; - } + return 0; + } Dmsg0(200, "Connected to file daemon\n"); - fd = ua->jcr->file_bsock; + fd = ua->jcr->file_bsock; bnet_fsend(fd, "cancel Job=%s\n", jcr->Job); - while (bnet_recv(fd) >= 0) { + while (bnet_recv(fd) >= 0) { bsendmsg(ua, "%s", fd->msg); - } - bnet_sig(fd, BNET_TERMINATE); - bnet_close(fd); - ua->jcr->file_bsock = NULL; + } + bnet_sig(fd, BNET_TERMINATE); + bnet_close(fd); + ua->jcr->file_bsock = NULL; } /* Cancel Storage daemon */ if (jcr->store_bsock) { - if (!ua->jcr->storage[0]) { - copy_storage(ua->jcr, jcr); - } else { - ua->jcr->store = jcr->store; - } - if (!connect_to_storage_daemon(ua->jcr, 10, SDConnectTimeout, 1)) { + if (!ua->jcr->storage[0]) { + copy_storage(ua->jcr, jcr); + } else { + set_storage(ua->jcr, jcr->store); + } + if (!connect_to_storage_daemon(ua->jcr, 10, SDConnectTimeout, 1)) { bsendmsg(ua, _("Failed to connect to Storage daemon.\n")); - return 0; - } + return 0; + } Dmsg0(200, "Connected to storage daemon\n"); - sd = ua->jcr->store_bsock; + sd = ua->jcr->store_bsock; bnet_fsend(sd, "cancel Job=%s\n", jcr->Job); - while (bnet_recv(sd) >= 0) { + while (bnet_recv(sd) >= 0) { bsendmsg(ua, "%s", sd->msg); - } - bnet_sig(sd, BNET_TERMINATE); - bnet_close(sd); - ua->jcr->store_bsock = NULL; + } + bnet_sig(sd, BNET_TERMINATE); + bnet_close(sd); + ua->jcr->store_bsock = NULL; } } @@ -388,10 +388,10 @@ static void job_monitor_watchdog(watchdog_t *self) if (jcr->JobId == 0) { Dmsg2(400, "Skipping JCR %p (%s) with JobId 0\n", - jcr, jcr->Job); - /* Keep reference counts correct */ - free_locked_jcr(jcr); - continue; + jcr, jcr->Job); + /* Keep reference counts correct */ + free_locked_jcr(jcr); + continue; } /* check MaxWaitTime */ @@ -402,12 +402,12 @@ static void job_monitor_watchdog(watchdog_t *self) if (cancel) { Dmsg3(200, "Cancelling JCR %p jobid %d (%s)\n", - jcr, jcr->JobId, jcr->Job); + jcr, jcr->JobId, jcr->Job); - UAContext *ua = new_ua_context(jcr); - ua->jcr = control_jcr; - cancel_job(ua, jcr); - free_ua_context(ua); + UAContext *ua = new_ua_context(jcr); + ua->jcr = control_jcr; + cancel_job(ua, jcr); + free_ua_context(ua); Dmsg1(200, "Have cancelled JCR %p\n", jcr); } @@ -431,12 +431,12 @@ static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr) } if ((watchdog_time - jcr->start_time) < jcr->job->MaxWaitTime) { Dmsg3(200, "Job %p (%s) with MaxWaitTime %d not expired\n", - jcr, jcr->Job, jcr->job->MaxWaitTime); + jcr, jcr->Job, jcr->job->MaxWaitTime); return false; } Dmsg3(200, "Job %d (%s): MaxWaitTime of %d seconds exceeded, " "checking status\n", - jcr->JobId, jcr->Job, jcr->job->MaxWaitTime); + jcr->JobId, jcr->Job, jcr->job->MaxWaitTime); switch (jcr->JobStatus) { case JS_Created: case JS_Blocked: @@ -457,12 +457,12 @@ static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr) case JS_WaitMount: case JS_WaitMedia: case JS_WaitFD: - cancel = true; + cancel = true; Dmsg0(200, "JCR blocked in #2\n"); - break; + break; default: Dmsg0(200, "JCR not blocked in #2\n"); - break; + break; } break; case JS_Terminated: @@ -473,7 +473,7 @@ static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr) break; default: Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"), - jcr->JobStatus); + jcr->JobStatus); } Dmsg3(200, "MaxWaitTime result: %scancel JCR %p (%s)\n", cancel ? "" : "do not ", jcr, jcr->job); @@ -494,7 +494,7 @@ static bool job_check_maxruntime(JCR *control_jcr, JCR *jcr) } if ((watchdog_time - jcr->start_time) < jcr->job->MaxRunTime) { Dmsg3(200, "Job %p (%s) with MaxRunTime %d not expired\n", - jcr, jcr->Job, jcr->job->MaxRunTime); + jcr, jcr->Job, jcr->job->MaxRunTime); return false; } @@ -521,7 +521,7 @@ static bool job_check_maxruntime(JCR *control_jcr, JCR *jcr) break; default: Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"), - jcr->JobStatus); + jcr->JobStatus); } Dmsg3(200, "MaxRunTime result: %scancel JCR %p (%s)\n", @@ -549,13 +549,13 @@ bool get_or_create_client_record(JCR *jcr) pm_strcpy(jcr->client_name, jcr->client->hdr.name); if (!db_create_client_record(jcr, jcr->db, &cr)) { Jmsg(jcr, M_FATAL, 0, _("Could not create Client record. ERR=%s\n"), - db_strerror(jcr->db)); + db_strerror(jcr->db)); return false; } jcr->jr.ClientId = cr.ClientId; if (cr.Uname[0]) { if (!jcr->client_uname) { - jcr->client_uname = get_pool_memory(PM_NAME); + jcr->client_uname = get_pool_memory(PM_NAME); } pm_strcpy(jcr->client_uname, cr.Uname); } @@ -585,14 +585,14 @@ bool get_or_create_fileset_record(JCR *jcr, FILESET_DBR *fsr) !db_get_fileset_record(jcr, jcr->db, fsr)) { if (!db_create_fileset_record(jcr, jcr->db, fsr)) { Jmsg(jcr, M_ERROR, 0, _("Could not create FileSet \"%s\" record. ERR=%s\n"), - fsr->FileSet, db_strerror(jcr->db)); - return false; + fsr->FileSet, db_strerror(jcr->db)); + return false; } } jcr->jr.FileSetId = fsr->FileSetId; if (fsr->created) { Jmsg(jcr, M_INFO, 0, _("Created new FileSet record \"%s\" %s\n"), - fsr->FileSet, fsr->cCreateTime); + fsr->FileSet, fsr->cCreateTime); } Dmsg2(119, "Created FileSet %s record %u\n", jcr->fileset->hdr.name, jcr->jr.FileSetId); @@ -603,7 +603,7 @@ void init_jcr_job_record(JCR *jcr) { jcr->jr.SchedTime = jcr->sched_time; jcr->jr.StartTime = jcr->start_time; - jcr->jr.EndTime = 0; /* perhaps rescheduled, clear it */ + jcr->jr.EndTime = 0; /* perhaps rescheduled, clear it */ jcr->jr.JobType = jcr->JobType; jcr->jr.JobLevel = jcr->JobLevel; jcr->jr.JobStatus = jcr->JobStatus; @@ -627,7 +627,7 @@ void update_job_end_record(JCR *jcr) jcr->jr.VolSessionTime = jcr->VolSessionTime; if (!db_update_job_end_record(jcr, jcr->db, &jcr->jr)) { Jmsg(jcr, M_WARNING, 0, _("Error updating job record. %s"), - db_strerror(jcr->db)); + db_strerror(jcr->db)); } } @@ -652,21 +652,21 @@ void create_unique_job_name(JCR *jcr, const char *base_name) /* Guarantee unique start time -- maximum one per second, and * thus unique Job Name */ - P(mutex); /* lock creation of jobs */ + P(mutex); /* lock creation of jobs */ now = time(NULL); while (now == last_start_time) { bmicrosleep(0, 500000); now = time(NULL); } last_start_time = now; - V(mutex); /* allow creation of jobs */ + V(mutex); /* allow creation of jobs */ jcr->start_time = now; /* Form Unique JobName */ localtime_r(&now, &tm); /* Use only characters that are permitted in Windows filenames */ strftime(dt, sizeof(dt), "%Y-%m-%d_%H.%M.%S", &tm); bstrncpy(name, base_name, sizeof(name)); - name[sizeof(name)-22] = 0; /* truncate if too long */ + name[sizeof(name)-22] = 0; /* truncate if too long */ bsnprintf(jcr->Job, sizeof(jcr->Job), "%s.%s", name, dt); /* add date & time */ /* Convert spaces into underscores */ for (p=jcr->Job; *p; p++) { @@ -676,15 +676,9 @@ void create_unique_job_name(JCR *jcr, const char *base_name) } } -/* - * Free the Job Control Record if no one is still using it. - * Called from main free_jcr() routine in src/lib/jcr.c so - * that we can do our Director specific cleanup of the jcr. - */ -void dird_free_jcr(JCR *jcr) +/* Called directly from job rescheduling */ +void dird_free_jcr_pointers(JCR *jcr) { - Dmsg0(200, "Start dird free_jcr\n"); - if (jcr->sd_auth_key) { free(jcr->sd_auth_key); jcr->sd_auth_key = NULL; @@ -723,6 +717,27 @@ void dird_free_jcr(JCR *jcr) } if (jcr->term_wait_inited) { pthread_cond_destroy(&jcr->term_wait); + jcr->term_wait_inited = false; + } +} + +/* + * Free the Job Control Record if no one is still using it. + * Called from main free_jcr() routine in src/lib/jcr.c so + * that we can do our Director specific cleanup of the jcr. + */ +void dird_free_jcr(JCR *jcr) +{ + Dmsg0(200, "Start dird free_jcr\n"); + + dird_free_jcr_pointers(jcr); + + /* Delete lists setup to hold storage pointers */ + for (int i=0; istorage[i]) { + delete jcr->storage[i]; + jcr->storage[i] = NULL; + } } jcr->job_end_push.destroy(); Dmsg0(200, "End dird free_jcr\n"); @@ -749,10 +764,20 @@ void set_jcr_defaults(JCR *jcr, JOB *job) break; } jcr->JobPriority = job->Priority; + /* Copy storage definitions -- deleted in dir_free_jcr above */ for (int i=0; istorage[i] = job->storage[i]; + STORE *st; + if (job->storage[i]) { + if (jcr->storage[i]) { + delete jcr->storage[i]; + } + jcr->storage[i] = New(alist(10, not_owned_by_alist)); + foreach_alist(st, job->storage[i]) { + jcr->storage[i]->append(st); + } + } } - if (!jcr->store && jcr->storage[0]) { + if (jcr->storage[0]) { jcr->store = (STORE *)jcr->storage[0]->first(); } jcr->client = job->client; @@ -782,17 +807,17 @@ void set_jcr_defaults(JCR *jcr, JOB *job) if (jcr->JobLevel == 0) { switch (jcr->JobType) { case JT_VERIFY: - jcr->JobLevel = L_VERIFY_CATALOG; - break; + jcr->JobLevel = L_VERIFY_CATALOG; + break; case JT_BACKUP: - jcr->JobLevel = L_INCREMENTAL; - break; + jcr->JobLevel = L_INCREMENTAL; + break; case JT_RESTORE: case JT_ADMIN: - jcr->JobLevel = L_NONE; - break; + jcr->JobLevel = L_NONE; + break; default: - break; + break; } } } @@ -804,16 +829,26 @@ void copy_storage(JCR *new_jcr, JCR *old_jcr) { for (int i=0; i < MAX_STORE; i++) { if (old_jcr->storage[i]) { - STORE *st; - new_jcr->storage[i] = New(alist(10, not_owned_by_alist)); - foreach_alist(st, old_jcr->storage[i]) { - new_jcr->storage[i]->append(st); - } + STORE *st; + new_jcr->storage[i] = New(alist(10, not_owned_by_alist)); + foreach_alist(st, old_jcr->storage[i]) { + new_jcr->storage[i]->append(st); + } + if (old_jcr->storage[i]) { + delete old_jcr->storage[i]; + } } if (old_jcr->store) { - new_jcr->store = old_jcr->store; + new_jcr->store = old_jcr->store; } else if (new_jcr->storage[0]) { - new_jcr->store = (STORE *)new_jcr->storage[0]->first(); + new_jcr->store = (STORE *)new_jcr->storage[0]->first(); } } } + +/* Set storage override */ +void set_storage(JCR *jcr, STORE *store) +{ + jcr->store = store; + jcr->storage[0]->prepend(store); +} diff --git a/bacula/src/dird/jobq.c b/bacula/src/dird/jobq.c index 12e2c434c1..a83d4cd669 100755 --- a/bacula/src/dird/jobq.c +++ b/bacula/src/dird/jobq.c @@ -18,7 +18,7 @@ * */ /* - Copyright (C) 2003-2004 Kern Sibbald and John Walker + Copyright (C) 2003-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -40,6 +40,7 @@ #include "bacula.h" #include "dird.h" +extern JCR *jobs; /* Forward referenced functions */ extern "C" void *jobq_server(void *arg); @@ -47,7 +48,9 @@ extern "C" void *sched_wait(void *arg); static int start_server(jobq_t *jq); -/* + + +/* * Initialize a job queue * * Returns: 0 on success @@ -57,9 +60,10 @@ int jobq_init(jobq_t *jq, int threads, void *(*engine)(void *arg)) { int stat; jobq_item_t *item = NULL; - + if ((stat = pthread_attr_init(&jq->attr)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_attr_init: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_attr_init: ERR=%s\n", be.strerror(stat)); return stat; } if ((stat = pthread_attr_setdetachstate(&jq->attr, PTHREAD_CREATE_DETACHED)) != 0) { @@ -67,12 +71,14 @@ int jobq_init(jobq_t *jq, int threads, void *(*engine)(void *arg)) return stat; } if ((stat = pthread_mutex_init(&jq->mutex, NULL)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_init: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_init: ERR=%s\n", be.strerror(stat)); pthread_attr_destroy(&jq->attr); return stat; } if ((stat = pthread_cond_init(&jq->work, NULL)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_cond_init: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_cond_init: ERR=%s\n", be.strerror(stat)); pthread_mutex_destroy(&jq->mutex); pthread_attr_destroy(&jq->attr); return stat; @@ -82,7 +88,7 @@ int jobq_init(jobq_t *jq, int threads, void *(*engine)(void *arg)) jq->num_workers = 0; /* no threads yet */ jq->idle_workers = 0; /* no idle threads */ jq->engine = engine; /* routine to run */ - jq->valid = JOBQ_VALID; + jq->valid = JOBQ_VALID; /* Initialize the job queues */ jq->waiting_jobs = New(dlist(item, &item->link)); jq->running_jobs = New(dlist(item, &item->link)); @@ -100,46 +106,50 @@ int jobq_destroy(jobq_t *jq) { int stat, stat1, stat2; - if (jq->valid != JOBQ_VALID) { - return EINVAL; - } - if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", strerror(stat)); - return stat; - } - jq->valid = 0; /* prevent any more operations */ - - /* - * If any threads are active, wake them - */ - if (jq->num_workers > 0) { - jq->quit = true; - if (jq->idle_workers) { - if ((stat = pthread_cond_broadcast(&jq->work)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_cond_broadcast: ERR=%s\n", strerror(stat)); - pthread_mutex_unlock(&jq->mutex); - return stat; - } - } - while (jq->num_workers > 0) { - if ((stat = pthread_cond_wait(&jq->work, &jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_cond_wait: ERR=%s\n", strerror(stat)); - pthread_mutex_unlock(&jq->mutex); - return stat; - } - } - } - if ((stat = pthread_mutex_unlock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", strerror(stat)); - return stat; - } - stat = pthread_mutex_destroy(&jq->mutex); - stat1 = pthread_cond_destroy(&jq->work); - stat2 = pthread_attr_destroy(&jq->attr); - delete jq->waiting_jobs; - delete jq->running_jobs; - delete jq->ready_jobs; - return (stat != 0 ? stat : (stat1 != 0 ? stat1 : stat2)); + if (jq->valid != JOBQ_VALID) { + return EINVAL; + } + if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat)); + return stat; + } + jq->valid = 0; /* prevent any more operations */ + + /* + * If any threads are active, wake them + */ + if (jq->num_workers > 0) { + jq->quit = true; + if (jq->idle_workers) { + if ((stat = pthread_cond_broadcast(&jq->work)) != 0) { + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_cond_broadcast: ERR=%s\n", be.strerror(stat)); + pthread_mutex_unlock(&jq->mutex); + return stat; + } + } + while (jq->num_workers > 0) { + if ((stat = pthread_cond_wait(&jq->work, &jq->mutex)) != 0) { + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_cond_wait: ERR=%s\n", be.strerror(stat)); + pthread_mutex_unlock(&jq->mutex); + return stat; + } + } + } + if ((stat = pthread_mutex_unlock(&jq->mutex)) != 0) { + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", be.strerror(stat)); + return stat; + } + stat = pthread_mutex_destroy(&jq->mutex); + stat1 = pthread_cond_destroy(&jq->work); + stat2 = pthread_attr_destroy(&jq->attr); + delete jq->waiting_jobs; + delete jq->running_jobs; + delete jq->ready_jobs; + return (stat != 0 ? stat : (stat1 != 0 ? stat1 : stat2)); } struct wait_pkt { @@ -154,24 +164,24 @@ struct wait_pkt { * most jobs are put into the job queue only when their * scheduled time arives. */ -extern "C" +extern "C" void *sched_wait(void *arg) { JCR *jcr = ((wait_pkt *)arg)->jcr; jobq_t *jq = ((wait_pkt *)arg)->jq; - Dmsg0(300, "Enter sched_wait.\n"); + Dmsg0(2300, "Enter sched_wait.\n"); free(arg); time_t wtime = jcr->sched_time - time(NULL); set_jcr_job_status(jcr, JS_WaitStartTime); /* Wait until scheduled time arrives */ if (wtime > 0) { - Jmsg(jcr, M_INFO, 0, _("Job %s waiting %d seconds for scheduled start time.\n"), + Jmsg(jcr, M_INFO, 0, _("Job %s waiting %d seconds for scheduled start time.\n"), jcr->Job, wtime); } - /* Check every 30 seconds if canceled */ + /* Check every 30 seconds if canceled */ while (wtime > 0) { - Dmsg2(300, "Waiting on sched time, jobid=%d secs=%d\n", jcr->JobId, wtime); + Dmsg2(2300, "Waiting on sched time, jobid=%d secs=%d\n", jcr->JobId, wtime); if (wtime > 30) { wtime = 30; } @@ -185,16 +195,16 @@ void *sched_wait(void *arg) jobq_add(jq, jcr); V(jcr->mutex); free_jcr(jcr); /* we are done with jcr */ - Dmsg0(300, "Exit sched_wait\n"); + Dmsg0(2300, "Exit sched_wait\n"); return NULL; } /* * Add a job to the queue * jq is a queue that was created with jobq_init - * + * * On entry jcr->mutex must be locked. - * + * */ int jobq_add(jobq_t *jq, JCR *jcr) { @@ -204,30 +214,32 @@ int jobq_add(jobq_t *jq, JCR *jcr) time_t wtime = jcr->sched_time - time(NULL); pthread_t id; wait_pkt *sched_pkt; - - Dmsg3(300, "jobq_add jobid=%d jcr=0x%x use_count=%d\n", jcr->JobId, jcr, jcr->use_count); + + Dmsg3(2300, "jobq_add jobid=%d jcr=0x%x use_count=%d\n", jcr->JobId, jcr, jcr->use_count); if (jq->valid != JOBQ_VALID) { Jmsg0(jcr, M_ERROR, 0, "Jobq_add queue not initialized.\n"); return EINVAL; } jcr->use_count++; /* mark jcr in use by us */ - Dmsg3(300, "jobq_add jobid=%d jcr=0x%x use_count=%d\n", jcr->JobId, jcr, jcr->use_count); + Dmsg3(2300, "jobq_add jobid=%d jcr=0x%x use_count=%d\n", jcr->JobId, jcr, jcr->use_count); if (!job_canceled(jcr) && wtime > 0) { set_thread_concurrency(jq->max_workers + 2); sched_pkt = (wait_pkt *)malloc(sizeof(wait_pkt)); sched_pkt->jcr = jcr; sched_pkt->jq = jq; - jcr->use_count--; /* release our use of jcr */ +// jcr->use_count--; /* release our use of jcr */ stat = pthread_create(&id, &jq->attr, sched_wait, (void *)sched_pkt); if (stat != 0) { /* thread not created */ - Jmsg1(jcr, M_ERROR, 0, "pthread_thread_create: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(jcr, M_ERROR, 0, "pthread_thread_create: ERR=%s\n", be.strerror(stat)); } return stat; } if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { - Jmsg1(jcr, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(jcr, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat)); jcr->use_count--; /* release jcr */ return stat; } @@ -241,15 +253,15 @@ int jobq_add(jobq_t *jq, JCR *jcr) if (job_canceled(jcr)) { /* Add job to ready queue so that it is canceled quickly */ jq->ready_jobs->prepend(item); - Dmsg1(300, "Prepended job=%d to ready queue\n", jcr->JobId); + Dmsg1(2300, "Prepended job=%d to ready queue\n", jcr->JobId); } else { /* Add this job to the wait queue in priority sorted order */ foreach_dlist(li, jq->waiting_jobs) { - Dmsg2(300, "waiting item jobid=%d priority=%d\n", + Dmsg2(2300, "waiting item jobid=%d priority=%d\n", li->jcr->JobId, li->jcr->JobPriority); if (li->jcr->JobPriority > jcr->JobPriority) { jq->waiting_jobs->insert_before(item, li); - Dmsg2(300, "insert_before jobid=%d before waiting job=%d\n", + Dmsg2(2300, "insert_before jobid=%d before waiting job=%d\n", li->jcr->JobId, jcr->JobId); inserted = true; break; @@ -258,7 +270,7 @@ int jobq_add(jobq_t *jq, JCR *jcr) /* If not jobs in wait queue, append it */ if (!inserted) { jq->waiting_jobs->append(item); - Dmsg1(300, "Appended item jobid=%d to waiting queue\n", jcr->JobId); + Dmsg1(2300, "Appended item jobid=%d to waiting queue\n", jcr->JobId); } } @@ -266,7 +278,7 @@ int jobq_add(jobq_t *jq, JCR *jcr) stat = start_server(jq); pthread_mutex_unlock(&jq->mutex); - Dmsg0(300, "Return jobq_add\n"); + Dmsg0(2300, "Return jobq_add\n"); return stat; } @@ -284,14 +296,15 @@ int jobq_remove(jobq_t *jq, JCR *jcr) int stat; bool found = false; jobq_item_t *item; - - Dmsg2(300, "jobq_remove jobid=%d jcr=0x%x\n", jcr->JobId, jcr); + + Dmsg2(2300, "jobq_remove jobid=%d jcr=0x%x\n", jcr->JobId, jcr); if (jq->valid != JOBQ_VALID) { return EINVAL; } if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat)); return stat; } @@ -303,19 +316,19 @@ int jobq_remove(jobq_t *jq, JCR *jcr) } if (!found) { pthread_mutex_unlock(&jq->mutex); - Dmsg2(300, "jobq_remove jobid=%d jcr=0x%x not in wait queue\n", jcr->JobId, jcr); + Dmsg2(2300, "jobq_remove jobid=%d jcr=0x%x not in wait queue\n", jcr->JobId, jcr); return EINVAL; } /* Move item to be the first on the list */ jq->waiting_jobs->remove(item); jq->ready_jobs->prepend(item); - Dmsg2(300, "jobq_remove jobid=%d jcr=0x%x moved to ready queue\n", jcr->JobId, jcr); - + Dmsg2(2300, "jobq_remove jobid=%d jcr=0x%x moved to ready queue\n", jcr->JobId, jcr); + stat = start_server(jq); pthread_mutex_unlock(&jq->mutex); - Dmsg0(300, "Return jobq_remove\n"); + Dmsg0(2300, "Return jobq_remove\n"); return stat; } @@ -330,17 +343,19 @@ static int start_server(jobq_t *jq) /* if any threads are idle, wake one */ if (jq->idle_workers > 0) { - Dmsg0(300, "Signal worker to wake up\n"); + Dmsg0(2300, "Signal worker to wake up\n"); if ((stat = pthread_cond_signal(&jq->work)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_cond_signal: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_cond_signal: ERR=%s\n", be.strerror(stat)); return stat; } } else if (jq->num_workers < jq->max_workers) { - Dmsg0(300, "Create worker thread\n"); + Dmsg0(2300, "Create worker thread\n"); /* No idle threads so create a new one */ set_thread_concurrency(jq->max_workers + 1); if ((stat = pthread_create(&id, &jq->attr, jobq_server, (void *)jq)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_create: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_create: ERR=%s\n", be.strerror(stat)); return stat; } } @@ -348,12 +363,12 @@ static int start_server(jobq_t *jq) } -/* +/* * This is the worker thread that serves the job queue. - * When all the resources are acquired for the job, + * When all the resources are acquired for the job, * it will call the user's engine. */ -extern "C" +extern "C" void *jobq_server(void *arg) { struct timespec timeout; @@ -363,9 +378,10 @@ void *jobq_server(void *arg) bool timedout = false; bool work = true; - Dmsg0(300, "Start jobq_server\n"); + Dmsg0(2300, "Start jobq_server\n"); if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat)); return NULL; } jq->num_workers++; @@ -374,7 +390,7 @@ void *jobq_server(void *arg) struct timeval tv; struct timezone tz; - Dmsg0(300, "Top of for loop\n"); + Dmsg0(2300, "Top of for loop\n"); if (!work && !jq->quit) { gettimeofday(&tv, &tz); timeout.tv_nsec = 0; @@ -384,33 +400,33 @@ void *jobq_server(void *arg) /* * Wait 4 seconds, then if no more work, exit */ - Dmsg0(300, "pthread_cond_timedwait()\n"); + Dmsg0(2300, "pthread_cond_timedwait()\n"); stat = pthread_cond_timedwait(&jq->work, &jq->mutex, &timeout); if (stat == ETIMEDOUT) { - Dmsg0(300, "timedwait timedout.\n"); + Dmsg0(2300, "timedwait timedout.\n"); timedout = true; break; } else if (stat != 0) { /* This shouldn't happen */ - Dmsg0(300, "This shouldn't happen\n"); + Dmsg0(2300, "This shouldn't happen\n"); jq->num_workers--; pthread_mutex_unlock(&jq->mutex); return NULL; } break; - } + } } - /* + /* * If anything is in the ready queue, run it */ - Dmsg0(300, "Checking ready queue.\n"); + Dmsg0(2300, "Checking ready queue.\n"); while (!jq->ready_jobs->empty() && !jq->quit) { JCR *jcr; - je = (jobq_item_t *)jq->ready_jobs->first(); + je = (jobq_item_t *)jq->ready_jobs->first(); jcr = je->jcr; jq->ready_jobs->remove(je); if (!jq->ready_jobs->empty()) { - Dmsg0(300, "ready queue not empty start server\n"); + Dmsg0(2300, "ready queue not empty start server\n"); if (start_server(jq) != 0) { jq->num_workers--; pthread_mutex_unlock(&jq->mutex); @@ -418,40 +434,28 @@ void *jobq_server(void *arg) } } jq->running_jobs->append(je); - Dmsg1(300, "Took jobid=%d from ready and appended to run\n", jcr->JobId); + Dmsg1(2300, "Took jobid=%d from ready and appended to run\n", jcr->JobId); /* Release job queue lock */ - if ((stat = pthread_mutex_unlock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", strerror(stat)); - jq->num_workers--; - return NULL; - } + V(jq->mutex); /* Call user's routine here */ - Dmsg1(300, "Calling user engine for jobid=%d\n", jcr->JobId); + Dmsg1(2300, "Calling user engine for jobid=%d\n", jcr->JobId); jq->engine(je->jcr); - Dmsg1(300, "Back from user engine jobid=%d.\n", jcr->JobId); + Dmsg1(2300, "Back from user engine jobid=%d.\n", jcr->JobId); /* Reacquire job queue lock */ - if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", strerror(stat)); - jq->num_workers--; - free(je); /* release job entry */ - return NULL; - } + P(jq->mutex); Dmsg0(200, "Done lock mutex after running job. Release locks.\n"); jq->running_jobs->remove(je); - /* + /* * Release locks if acquired. Note, they will not have * been acquired for jobs canceled before they were * put into the ready queue. */ if (jcr->acquired_resource_locks) { jcr->store->NumConcurrentJobs--; - if (jcr->JobType == JT_RESTORE || jcr->JobType == JT_VERIFY) { - jcr->store->MaxConcurrentJobs = jcr->saveMaxConcurrentJobs; - } jcr->client->NumConcurrentJobs--; jcr->job->NumConcurrentJobs--; } @@ -459,10 +463,10 @@ void *jobq_server(void *arg) /* * Reschedule the job if necessary and requested */ - if (jcr->job->RescheduleOnError && + if (jcr->job->RescheduleOnError && jcr->JobStatus != JS_Terminated && - jcr->JobStatus != JS_Canceled && - jcr->job->RescheduleTimes > 0 && + jcr->JobStatus != JS_Canceled && + jcr->job->RescheduleTimes > 0 && jcr->reschedule_count < jcr->job->RescheduleTimes) { char dt[50]; @@ -472,16 +476,16 @@ void *jobq_server(void *arg) */ jcr->reschedule_count++; jcr->sched_time = time(NULL) + jcr->job->RescheduleInterval; - Dmsg2(300, "Rescheduled Job %s to re-run in %d seconds.\n", jcr->Job, + Dmsg2(2300, "Rescheduled Job %s to re-run in %d seconds.\n", jcr->Job, (int)jcr->job->RescheduleInterval); bstrftime(dt, sizeof(dt), time(NULL)); Jmsg(jcr, M_INFO, 0, _("Rescheduled Job %s at %s to re-run in %d seconds.\n"), jcr->Job, dt, (int)jcr->job->RescheduleInterval); - dird_free_jcr(jcr); /* partial cleanup old stuff */ + dird_free_jcr_pointers(jcr); /* partial cleanup old stuff */ jcr->JobStatus = JS_WaitStartTime; jcr->SDJobStatus = 0; if (jcr->JobBytes == 0) { - Dmsg1(300, "Requeue job=%d\n", jcr->JobId); + Dmsg1(2300, "Requeue job=%d\n", jcr->JobId); jcr->JobStatus = JS_WaitStartTime; V(jq->mutex); jobq_add(jq, jcr); /* queue the job to run again */ @@ -489,7 +493,7 @@ void *jobq_server(void *arg) free(je); /* free the job entry */ continue; /* look for another job to run */ } - /* + /* * Something was actually backed up, so we cannot reuse * the old JobId or there will be database record * conflicts. We now create a new job, copying the @@ -502,19 +506,19 @@ void *jobq_server(void *arg) njcr->JobStatus = jcr->JobStatus; copy_storage(njcr, jcr); njcr->messages = jcr->messages; - Dmsg0(300, "Call to run new job\n"); + Dmsg0(2300, "Call to run new job\n"); V(jq->mutex); run_job(njcr); /* This creates a "new" job */ free_jcr(njcr); /* release "new" jcr */ P(jq->mutex); - Dmsg0(300, "Back from running new job.\n"); + Dmsg0(2300, "Back from running new job.\n"); } /* Clean up and release old jcr */ if (jcr->db) { db_close_database(jcr, jcr->db); jcr->db = NULL; } - Dmsg2(300, "====== Termination job=%d use_cnt=%d\n", jcr->JobId, jcr->use_count); + Dmsg2(2300, "====== Termination job=%d use_cnt=%d\n", jcr->JobId, jcr->use_count); jcr->SDJobStatus = 0; V(jq->mutex); /* release internal lock */ free_jcr(jcr); @@ -525,17 +529,17 @@ void *jobq_server(void *arg) * If any job in the wait queue can be run, * move it to the ready queue */ - Dmsg0(300, "Done check ready, now check wait queue.\n"); + Dmsg0(2300, "Done check ready, now check wait queue.\n"); while (!jq->waiting_jobs->empty() && !jq->quit) { int Priority; - je = (jobq_item_t *)jq->waiting_jobs->first(); + je = (jobq_item_t *)jq->waiting_jobs->first(); jobq_item_t *re = (jobq_item_t *)jq->running_jobs->first(); if (re) { Priority = re->jcr->JobPriority; - Dmsg2(300, "JobId %d is running. Look for pri=%d\n", re->jcr->JobId, Priority); + Dmsg2(2300, "JobId %d is running. Look for pri=%d\n", re->jcr->JobId, Priority); } else { Priority = je->jcr->JobPriority; - Dmsg1(300, "No job running. Look for Job pri=%d\n", Priority); + Dmsg1(2300, "No job running. Look for Job pri=%d\n", Priority); } /* * Walk down the list of waiting jobs and attempt @@ -544,8 +548,9 @@ void *jobq_server(void *arg) for ( ; je; ) { /* je is current job item on the queue, jn is the next one */ JCR *jcr = je->jcr; + bool skip_this_jcr = false; jobq_item_t *jn = (jobq_item_t *)jq->waiting_jobs->next(je); - Dmsg3(300, "Examining Job=%d JobPri=%d want Pri=%d\n", + Dmsg3(2300, "Examining Job=%d JobPri=%d want Pri=%d\n", jcr->JobId, jcr->JobPriority, Priority); /* Take only jobs of correct Priority */ if (jcr->JobPriority != Priority) { @@ -555,19 +560,45 @@ void *jobq_server(void *arg) if (jcr->JobType == JT_RESTORE || jcr->JobType == JT_VERIFY) { /* Let only one Restore/verify job run at a time regardless of MaxConcurrentJobs */ if (jcr->store->NumConcurrentJobs == 0) { - jcr->store->NumConcurrentJobs++; - jcr->saveMaxConcurrentJobs = jcr->store->MaxConcurrentJobs; - jcr->store->MaxConcurrentJobs = 1; + jcr->store->NumConcurrentJobs = 1; } else { set_jcr_job_status(jcr, JS_WaitStoreRes); - je = jn; + je = jn; /* point to next waiting job */ continue; } + /* We are not doing a Restore or Verify */ + } else if (jcr->store->NumConcurrentJobs == 0 && + jcr->store->NumConcurrentJobs < jcr->store->MaxConcurrentJobs) { + /* Simple case, first job */ + jcr->store->NumConcurrentJobs = 1; } else if (jcr->store->NumConcurrentJobs < jcr->store->MaxConcurrentJobs) { - jcr->store->NumConcurrentJobs++; + /* + * At this point, we already have at least one Job running + * for this Storage daemon, so we must ensure that there + * is no Volume conflict. In general, it should be OK, if + * all Jobs pull from the same Pool, so we check the Pools. + */ + JCR *njcr; + lock_jcr_chain(); + for (njcr=jobs; njcr; njcr=njcr->next) { + if (njcr->JobId == 0 || njcr == jcr) { + continue; + } + if (njcr->store == jcr->store && njcr->pool != jcr->pool) { + skip_this_jcr = true; + break; + } + } + unlock_jcr_chain(); + if (!skip_this_jcr) { + jcr->store->NumConcurrentJobs++; + } } else { + skip_this_jcr = true; + } + if (skip_this_jcr) { set_jcr_job_status(jcr, JS_WaitStoreRes); - je = jn; + je = jn; /* point to next waiting job */ continue; } @@ -576,11 +607,8 @@ void *jobq_server(void *arg) } else { /* Back out previous locks */ jcr->store->NumConcurrentJobs--; - if (jcr->JobType == JT_RESTORE || jcr->JobType == JT_VERIFY) { - jcr->store->MaxConcurrentJobs = jcr->saveMaxConcurrentJobs; - } set_jcr_job_status(jcr, JS_WaitClientRes); - je = jn; + je = jn; /* point to next waiting job */ continue; } if (jcr->job->NumConcurrentJobs < jcr->job->MaxConcurrentJobs) { @@ -588,79 +616,79 @@ void *jobq_server(void *arg) } else { /* Back out previous locks */ jcr->store->NumConcurrentJobs--; - if (jcr->JobType == JT_RESTORE || jcr->JobType == JT_VERIFY) { - jcr->store->MaxConcurrentJobs = jcr->saveMaxConcurrentJobs; - } jcr->client->NumConcurrentJobs--; set_jcr_job_status(jcr, JS_WaitJobRes); - je = jn; + je = jn; /* Point to next waiting job */ continue; } /* Got all locks, now remove it from wait queue and append it - * to the ready queue + * to the ready queue */ jcr->acquired_resource_locks = true; jq->waiting_jobs->remove(je); jq->ready_jobs->append(je); - Dmsg1(300, "moved JobId=%d from wait to ready queue\n", je->jcr->JobId); - je = jn; + Dmsg1(2300, "moved JobId=%d from wait to ready queue\n", je->jcr->JobId); + je = jn; /* Point to next waiting job */ } /* end for loop */ break; } /* end while loop */ - Dmsg0(300, "Done checking wait queue.\n"); + Dmsg0(2300, "Done checking wait queue.\n"); /* * If no more ready work and we are asked to quit, then do it */ if (jq->ready_jobs->empty() && jq->quit) { jq->num_workers--; if (jq->num_workers == 0) { - Dmsg0(300, "Wake up destroy routine\n"); + Dmsg0(2300, "Wake up destroy routine\n"); /* Wake up destroy routine if he is waiting */ pthread_cond_broadcast(&jq->work); } break; } - Dmsg0(300, "Check for work request\n"); - /* + Dmsg0(2300, "Check for work request\n"); + /* * If no more work requests, and we waited long enough, quit */ - Dmsg2(300, "timedout=%d read empty=%d\n", timedout, + Dmsg2(2300, "timedout=%d read empty=%d\n", timedout, jq->ready_jobs->empty()); if (jq->ready_jobs->empty() && timedout) { - Dmsg0(300, "break big loop\n"); + Dmsg0(2300, "break big loop\n"); jq->num_workers--; break; } work = !jq->ready_jobs->empty() || !jq->waiting_jobs->empty(); if (work) { - /* + /* * If a job is waiting on a Resource, don't consume all * the CPU time looping looking for work, and even more * important, release the lock so that a job that has * terminated can give us the resource. */ if ((stat = pthread_mutex_unlock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", be.strerror(stat)); jq->num_workers--; return NULL; } bmicrosleep(2, 0); /* pause for 2 seconds */ if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat)); jq->num_workers--; return NULL; } /* Recompute work as something may have changed in last 2 secs */ work = !jq->ready_jobs->empty() || !jq->waiting_jobs->empty(); } - Dmsg1(300, "Loop again. work=%d\n", work); + Dmsg1(2300, "Loop again. work=%d\n", work); } /* end of big for loop */ Dmsg0(200, "unlock mutex\n"); if ((stat = pthread_mutex_unlock(&jq->mutex)) != 0) { - Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", strerror(stat)); + berrno be; + Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", be.strerror(stat)); } - Dmsg0(300, "End jobq_server\n"); + Dmsg0(2300, "End jobq_server\n"); return NULL; } diff --git a/bacula/src/dird/msgchan.c b/bacula/src/dird/msgchan.c index 9733f0f6eb..4c20b96196 100644 --- a/bacula/src/dird/msgchan.c +++ b/bacula/src/dird/msgchan.c @@ -16,7 +16,7 @@ * Version $Id$ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2004 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -64,10 +64,13 @@ bool connect_to_storage_daemon(JCR *jcr, int retry_interval, int max_retry_time, int verbose) { BSOCK *sd; - STORE *store = jcr->store; - if (!store) { - jcr->store = store = (STORE *)jcr->storage[0]->first(); + STORE *store; + + if (!jcr->storage[0]) { + Jmsg(jcr, M_FATAL, 0, _("Attempt to contact the Storage daemon with no Storage resource.\n")); + return false; } + store = (STORE *)jcr->storage[0]->first(); /* * Open message channel with the Storage daemon @@ -94,13 +97,13 @@ bool connect_to_storage_daemon(JCR *jcr, int retry_interval, */ int start_storage_daemon_job(JCR *jcr) { - int status; + int status = 0; STORE *storage; BSOCK *sd; char auth_key[100]; POOL_MEM device_name, pool_name, pool_type, media_type; + int i; - storage = jcr->store; sd = jcr->store_bsock; /* * Now send JobId and permissions, and get back the authorization key. @@ -139,23 +142,29 @@ int start_storage_daemon_job(JCR *jcr) /* * Send use device = xxx media = yyy pool = zzz */ - pm_strcpy(device_name, storage->dev_name); - pm_strcpy(media_type, storage->media_type); - pm_strcpy(pool_type, jcr->pool->pool_type); - pm_strcpy(pool_name, jcr->pool->hdr.name); - bash_spaces(device_name); - bash_spaces(media_type); - bash_spaces(pool_type); - bash_spaces(pool_name); - bnet_fsend(sd, use_device, device_name.c_str(), - media_type.c_str(), pool_name.c_str(), pool_type.c_str()); - Dmsg1(110, ">stored: %s", sd->msg); - status = response(jcr, sd, OK_device, "Use Device", NO_DISPLAY); - if (!status) { - pm_strcpy(pool_type, sd->msg); /* save message */ - Jmsg(jcr, M_FATAL, 0, _("\n" - " Storage daemon didn't accept Device \"%s\" because:\n %s"), - device_name.c_str(), pool_type.c_str()/* sd->msg */); + + for (i=0; i < MAX_STORE; i++) { + if (jcr->storage[i]) { + storage = (STORE *)jcr->storage[i]->first(); + pm_strcpy(device_name, storage->dev_name); + pm_strcpy(media_type, storage->media_type); + pm_strcpy(pool_type, jcr->pool->pool_type); + pm_strcpy(pool_name, jcr->pool->hdr.name); + bash_spaces(device_name); + bash_spaces(media_type); + bash_spaces(pool_type); + bash_spaces(pool_name); + bnet_fsend(sd, use_device, device_name.c_str(), + media_type.c_str(), pool_name.c_str(), pool_type.c_str()); + Dmsg1(110, ">stored: %s", sd->msg); + status = response(jcr, sd, OK_device, "Use Device", NO_DISPLAY); + if (!status) { + pm_strcpy(pool_type, sd->msg); /* save message */ + Jmsg(jcr, M_FATAL, 0, _("\n" + " Storage daemon didn't accept Device \"%s\" because:\n %s"), + device_name.c_str(), pool_type.c_str()/* sd->msg */); + } + } } return status; } diff --git a/bacula/src/dird/protos.h b/bacula/src/dird/protos.h index 711c97c99a..c0891d1b13 100644 --- a/bacula/src/dird/protos.h +++ b/bacula/src/dird/protos.h @@ -62,7 +62,7 @@ int variable_expansion(JCR *jcr, char *inp, POOLMEM **exp); /* fd_cmds.c */ extern int connect_to_file_daemon(JCR *jcr, int retry_interval, - int max_retry_time, int verbose); + int max_retry_time, int verbose); extern int send_include_list(JCR *jcr); extern int send_exclude_list(JCR *jcr); extern int send_bootstrap_file(JCR *jcr); @@ -70,7 +70,7 @@ extern int send_level_command(JCR *jcr); extern int get_attributes_and_put_in_catalog(JCR *jcr); extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId); extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname, - char *link, char *attr, int stream); + char *link, char *attr, int stream); extern void get_level_since_time(JCR *jcr, char *since, int since_len); extern int send_run_before_and_after_commands(JCR *jcr); @@ -91,13 +91,14 @@ extern JobId_t run_job(JCR *jcr); extern int cancel_job(UAContext *ua, JCR *jcr); extern void init_jcr_job_record(JCR *jcr); extern void copy_storage(JCR *new_jcr, JCR *old_jcr); +extern void set_storage(JCR *jcr, STORE *store); /* mountreq.c */ extern void mount_request(JCR *jcr, BSOCK *bs, char *buf); /* msgchan.c */ extern bool connect_to_storage_daemon(JCR *jcr, int retry_interval, - int max_retry_time, int verbose); + int max_retry_time, int verbose); extern int start_storage_daemon_job(JCR *jcr); extern int start_storage_daemon_message_thread(JCR *jcr); extern int bget_dirmsg(BSOCK *bs); @@ -149,28 +150,28 @@ JCR *new_control_jcr(const char *base_name, int job_type); void free_ua_context(UAContext *ua); /* ua_select.c */ -STORE *select_storage_resource(UAContext *ua); -JOB *select_job_resource(UAContext *ua); -JOB *select_restore_job_resource(UAContext *ua); -CLIENT *select_client_resource(UAContext *ua); +STORE *select_storage_resource(UAContext *ua); +JOB *select_job_resource(UAContext *ua); +JOB *select_restore_job_resource(UAContext *ua); +CLIENT *select_client_resource(UAContext *ua); FILESET *select_fileset_resource(UAContext *ua); -int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); -int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); -bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); -int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); - -void start_prompt(UAContext *ua, const char *msg); -void add_prompt(UAContext *ua, const char *prompt); -int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt); -CAT *get_catalog_resource(UAContext *ua); +int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); +int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); +bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); +int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); + +void start_prompt(UAContext *ua, const char *msg); +void add_prompt(UAContext *ua, const char *prompt); +int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt); +CAT *get_catalog_resource(UAContext *ua); STORE *get_storage_resource(UAContext *ua, int use_default); -int get_media_type(UAContext *ua, char *MediaType, int max_media); -bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); -int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); +int get_media_type(UAContext *ua, char *MediaType, int max_media); +bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); +int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); POOL *get_pool_resource(UAContext *ua); POOL *select_pool_resource(UAContext *ua); CLIENT *get_client_resource(UAContext *ua); -int get_job_dbr(UAContext *ua, JOB_DBR *jr); +int get_job_dbr(UAContext *ua, JOB_DBR *jr); int find_arg_keyword(UAContext *ua, const char **list); int find_arg(UAContext *ua, const char *keyword); @@ -190,3 +191,6 @@ int prune_volume(UAContext *ua, MEDIA_DBR *mr); /* ua_purge.c */ int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr); + +/* ua_run.c */ +extern int run_cmd(UAContext *ua, const char *cmd); diff --git a/bacula/src/dird/query.sql b/bacula/src/dird/query.sql index e763d9d893..443cf8f867 100644 --- a/bacula/src/dird/query.sql +++ b/bacula/src/dird/query.sql @@ -6,7 +6,7 @@ SELECT count(*) AS Jobs,sum(JobFiles) AS Files, SELECT max(JobId) AS Jobs,sum(JobFiles) AS Files,sum(JobBytes) As Bytes FROM Job; # 2 -:List where a File is saved regardless of the directory: +:List up to 20 places where a File is saved regardless of the directory: *Enter Filename (no path): SELECT DISTINCT Job.JobId as JobId, Client.Name as Client, Path.Path,Filename.Name,StartTime,Level,JobFiles,JobBytes diff --git a/bacula/src/dird/recycle.c b/bacula/src/dird/recycle.c index 84a39a9dc4..bb6c7987f9 100644 --- a/bacula/src/dird/recycle.c +++ b/bacula/src/dird/recycle.c @@ -70,19 +70,21 @@ int find_recycled_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr) int recycle_oldest_purged_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr) { struct s_oldest_ctx oldest; + char ed1[50]; POOLMEM *query = get_pool_memory(PM_EMSG); const char *select = "SELECT MediaId,LastWritten FROM Media " - "WHERE PoolId=%u AND Recycle=1 AND VolStatus='Purged' " + "WHERE PoolId=%s AND Recycle=1 AND VolStatus='Purged' " "AND MediaType='%s' %s" "ORDER BY LastWritten ASC,MediaId LIMIT 1"; Dmsg0(100, "Enter recycle_oldest_purged_volume\n"); oldest.MediaId = 0; if (InChanger) { - Mmsg(query, select, mr->PoolId, mr->MediaType, "AND InChanger=1 "); + Mmsg(query, select, edit_int64(mr->PoolId, ed1), mr->MediaType, + "AND InChanger=1 "); } else { - Mmsg(query, select, mr->PoolId, mr->MediaType, ""); + Mmsg(query, select, edit_int64(mr->PoolId, ed1), mr->MediaType, ""); } if (!db_sql_query(jcr->db, query, oldest_handler, (void *)&oldest)) { @@ -105,7 +107,7 @@ int recycle_oldest_purged_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr) Jmsg(jcr, M_ERROR, 0, "%s", db_strerror(jcr->db)); } Dmsg0(100, "return 0 recycle_oldest_purged_volume end\n"); - return 0; + return 0; } /* diff --git a/bacula/src/dird/scheduler.c b/bacula/src/dird/scheduler.c index f32a633179..80182c2612 100644 --- a/bacula/src/dird/scheduler.c +++ b/bacula/src/dird/scheduler.c @@ -10,7 +10,7 @@ * Version $Id$ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2004 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -157,7 +157,7 @@ JCR *wait_for_next_job(char *one_shot_job_to_run) jcr->dif_pool = run->dif_pool; /* override dif pool */ } if (run->storage) { - jcr->store = run->storage; /* override storage */ + set_storage(jcr, run->storage); /* override storage */ } if (run->msgs) { jcr->messages = run->msgs; /* override messages */ diff --git a/bacula/src/dird/sql_cmds.c b/bacula/src/dird/sql_cmds.c index f664722120..1de8b8bc3e 100644 --- a/bacula/src/dird/sql_cmds.c +++ b/bacula/src/dird/sql_cmds.c @@ -147,7 +147,7 @@ const char *select_verify_del = const char *select_restore_del = "SELECT DISTINCT DelCandidates.JobId " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND delCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " "(Job.JobTDate>%s " "AND Job.ClientId=%u " "AND Job.Type='R')"; @@ -158,7 +158,7 @@ const char *select_restore_del = const char *select_admin_del = "SELECT DISTINCT DelCandidates.JobId " "FROM Job,DelCandidates " - "WHERE (Job.JobTdate<%s AND delCandidates.JobStatus!='T') OR " + "WHERE (Job.JobTdate<%s AND DelCandidates.JobStatus!='T') OR " "(Job.JobTDate>%s " "AND Job.ClientId=%u " "AND Job.Type='D')"; diff --git a/bacula/src/dird/ua.h b/bacula/src/dird/ua.h index 82818f9a47..ac3b02dbea 100644 --- a/bacula/src/dird/ua.h +++ b/bacula/src/dird/ua.h @@ -48,6 +48,7 @@ struct UAContext { bool automount; /* if set, mount after label */ bool quit; /* if set, quit */ bool verbose; /* set for normal UA verbosity */ + bool batch; /* set for non-interactive mode */ uint32_t pint32_val; /* positive integer */ int32_t int32_val; /* positive/negative */ }; diff --git a/bacula/src/dird/ua_acl.c b/bacula/src/dird/ua_acl.c index cb184a0a88..dcfc0e468a 100644 --- a/bacula/src/dird/ua_acl.c +++ b/bacula/src/dird/ua_acl.c @@ -2,13 +2,13 @@ * * Bacula Director -- User Agent Access Control List (ACL) handling * - * Kern Sibbald, January MMIV + * Kern Sibbald, January MMIV * * Version $Id$ */ /* - Copyright (C) 2004 Kern Sibbald and John Walker + Copyright (C) 2004-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -30,8 +30,8 @@ #include "bacula.h" #include "dird.h" -/* - * Check if access is permitted to item in acl +/* + * Check if access is permitted to item in acl */ bool acl_access_ok(UAContext *ua, int acl, char *item) { @@ -39,12 +39,13 @@ bool acl_access_ok(UAContext *ua, int acl, char *item) } +/* This version expects the length of the item which we must check. */ bool acl_access_ok(UAContext *ua, int acl, char *item, int len) { /* If no console resource => default console and all is permitted */ if (!ua->cons) { - Dmsg0(400, "Root cons access OK.\n"); + Dmsg0(1400, "Root cons access OK.\n"); return true; /* No cons resource -> root console OK for everything */ } @@ -60,8 +61,8 @@ bool acl_access_ok(UAContext *ua, int acl, char *item, int len) /* Search list for item */ for (int i=0; isize(); i++) { - if (strncasecmp(item, (char *)list->get(i), len) == 0) { - Dmsg3(400, "Found %s in %d %s\n", item, acl, (char *)list->get(i)); + if (strcasecmp(item, (char *)list->get(i)) == 0) { + Dmsg3(1400, "ACL found %s in %d %s\n", item, acl, (char *)list->get(i)); return true; } } diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index 2090b43a99..9dc590185c 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -8,7 +8,7 @@ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -52,7 +52,6 @@ extern int autodisplay_cmd(UAContext *ua, const char *cmd); extern int gui_cmd(UAContext *ua, const char *cmd); extern int sqlquerycmd(UAContext *ua, const char *cmd); extern int querycmd(UAContext *ua, const char *cmd); -extern int run_cmd(UAContext *ua, const char *cmd); extern int retentioncmd(UAContext *ua, const char *cmd); extern int prunecmd(UAContext *ua, const char *cmd); extern int purgecmd(UAContext *ua, const char *cmd); @@ -97,16 +96,16 @@ int quit_cmd(UAContext *ua, const char *cmd); struct cmdstruct { const char *key; int (*func)(UAContext *ua, const char *cmd); const char *help; }; static struct cmdstruct commands[] = { { N_("add"), add_cmd, _("add media to a pool")}, - { N_("autodisplay"), autodisplay_cmd, _("autodisplay [on/off] -- console messages")}, - { N_("automount"), automount_cmd, _("automount [on/off] -- after label")}, - { N_("cancel"), cancel_cmd, _("cancel job=nnn -- cancel a job")}, + { N_("autodisplay"), autodisplay_cmd, _("autodisplay [on|off] -- console messages")}, + { N_("automount"), automount_cmd, _("automount [on|off] -- after label")}, + { N_("cancel"), cancel_cmd, _("cancel -- cancel a job")}, { N_("create"), create_cmd, _("create DB Pool from resource")}, { N_("delete"), delete_cmd, _("delete [pool= | media volume=]")}, { N_("estimate"), estimate_cmd, _("performs FileSet estimate, listing gives full listing")}, { N_("exit"), quit_cmd, _("exit = quit")}, - { N_("gui"), gui_cmd, _("gui [on/off] -- non-interactive gui mode")}, + { N_("gui"), gui_cmd, _("gui [on|off] -- non-interactive gui mode")}, { N_("help"), help_cmd, _("print this command")}, - { N_("list"), list_cmd, _("list [pools | jobs | jobtotals | media | files jobid=]; from catalog")}, + { N_("list"), list_cmd, _("list [pools | jobs | jobtotals | media | files ]; from catalog")}, { N_("label"), label_cmd, _("label a tape")}, { N_("llist"), llist_cmd, _("full or long list like list command")}, { N_("messages"), messagescmd, _("messages")}, @@ -1195,7 +1194,7 @@ static void do_storage_setdebug(UAContext *ua, STORE *store, int level, int trac BSOCK *sd; JCR *jcr = ua->jcr; - jcr->store = store; + set_storage(jcr, store); /* Try connecting for up to 15 seconds */ bsendmsg(ua, _("Connecting to Storage daemon %s at %s:%d\n"), store->hdr.name, store->address, store->SDport); @@ -1254,8 +1253,10 @@ static void do_all_setdebug(UAContext *ua, int level, int trace_flag) /* Count Storage items */ LockRes(); store = NULL; - for (i=0; (store = (STORE *)GetNextRes(R_STORAGE, (RES *)store)); i++) - { } + i = 0; + foreach_res(store, R_STORAGE) { + i++; + } unique_store = (STORE **) malloc(i * sizeof(STORE)); /* Find Unique Storage address/port */ store = (STORE *)GetNextRes(R_STORAGE, NULL); @@ -1286,8 +1287,10 @@ static void do_all_setdebug(UAContext *ua, int level, int trace_flag) /* Count Client items */ LockRes(); client = NULL; - for (i=0; (client = (CLIENT *)GetNextRes(R_CLIENT, (RES *)client)); i++) - { } + i = 0; + foreach_res(client, R_CLIENT) { + i++; + } unique_client = (CLIENT **) malloc(i * sizeof(CLIENT)); /* Find Unique Client address/port */ client = (CLIENT *)GetNextRes(R_CLIENT, NULL); @@ -1841,7 +1844,7 @@ static void do_mount_cmd(UAContext *ua, const char *command) Dmsg2(120, "Found storage, MediaType=%s DevName=%s\n", store->media_type, store->dev_name); - jcr->store = store; + set_storage(jcr, store); if (!connect_to_storage_daemon(jcr, 10, SDConnectTimeout, 1)) { bsendmsg(ua, _("Failed to connect to Storage daemon.\n")); return; diff --git a/bacula/src/dird/ua_label.c b/bacula/src/dird/ua_label.c index 588ac1acbd..bd260da887 100644 --- a/bacula/src/dird/ua_label.c +++ b/bacula/src/dird/ua_label.c @@ -8,7 +8,7 @@ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2004 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -170,7 +170,7 @@ int update_slots(UAContext *ua) if (!store) { return 1; } - ua->jcr->store = store; + set_storage(ua->jcr, store); scan = find_arg(ua, _("scan")) >= 0; @@ -296,7 +296,7 @@ static int do_label(UAContext *ua, const char *cmd, int relabel) if (!store) { return 1; } - ua->jcr->store = store; + set_storage(ua->jcr, store); if (!relabel && find_arg_keyword(ua, barcode_keyword) >= 0) { label_from_barcodes(ua); diff --git a/bacula/src/dird/ua_query.c b/bacula/src/dird/ua_query.c index 5cf84260a3..8c22b60204 100644 --- a/bacula/src/dird/ua_query.c +++ b/bacula/src/dird/ua_query.c @@ -32,7 +32,7 @@ extern DIRRES *director; -static POOLMEM *substitute_prompts(UAContext *ua, +static POOLMEM *substitute_prompts(UAContext *ua, POOLMEM *query, char **prompt, int nprompt); /* @@ -57,7 +57,7 @@ int querycmd(UAContext *ua, const char *cmd) char *prompt[9]; int nprompt = 0;; char *query_file = director->query_file; - + if (!open_db(ua)) { goto bail_out; } @@ -113,7 +113,7 @@ int querycmd(UAContext *ua, const char *cmd) prompt[nprompt++] = bstrdup(line+1); continue; } - } + } if (*query != 0) { pm_strcat(query, " "); } @@ -155,7 +155,7 @@ bail_out: return 1; } -static POOLMEM *substitute_prompts(UAContext *ua, +static POOLMEM *substitute_prompts(UAContext *ua, POOLMEM *query, char **prompt, int nprompt) { char *p, *q, *o; @@ -255,9 +255,9 @@ int sqlquerycmd(UAContext *ua, const char *cmd) } *query = 0; - bsendmsg(ua, _("Entering SQL query mode.\n\ -Terminate each query with a semicolon.\n\ -Terminate query mode with a blank line.\n")); + bsendmsg(ua, _("Entering SQL query mode.\n" +"Terminate each query with a semicolon.\n" +"Terminate query mode with a blank line.\n")); msg = "Enter SQL query: "; while (get_cmd(ua, msg)) { len = strlen(ua->cmd); @@ -267,9 +267,9 @@ Terminate query mode with a blank line.\n")); } query = check_pool_memory_size(query, len + 1); if (*query != 0) { - strcat(query, " "); + pm_strcat(query, " "); } - strcat(query, ua->cmd); + pm_strcat(query, ua->cmd); if (ua->cmd[len-1] == ';') { ua->cmd[len-1] = 0; /* zap ; */ /* Submit query */ @@ -282,5 +282,5 @@ Terminate query mode with a blank line.\n")); } free_pool_memory(query); bsendmsg(ua, _("End query mode.\n")); - return 1; + return 1; } diff --git a/bacula/src/dird/ua_restore.c b/bacula/src/dird/ua_restore.c index 9f06fd33f7..d4ca3b1b2a 100644 --- a/bacula/src/dird/ua_restore.c +++ b/bacula/src/dird/ua_restore.c @@ -14,7 +14,7 @@ */ /* - Copyright (C) 2002-2004 Kern Sibbald and John Walker + Copyright (C) 2002-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -38,7 +38,6 @@ /* Imported functions */ -extern int run_cmd(UAContext *ua, const char *cmd); extern void print_bsr(UAContext *ua, RBSR *bsr); /* Imported variables */ @@ -155,7 +154,7 @@ int restore_cmd(UAContext *ua, const char *cmd) goto bail_out; } - /* + /* * Request user to select JobIds or files by various different methods * last 20 jobs, where File saved, most recent backup, ... * In the end, a list of files are pumped into @@ -206,13 +205,13 @@ int restore_cmd(UAContext *ua, const char *cmd) /* Build run command */ if (rx.where) { - Mmsg(ua->cmd, + Mmsg(ua->cmd, "run job=\"%s\" client=\"%s\" storage=\"%s\" bootstrap=\"%s/restore.bsr\"" " where=\"%s\" files=%d catalog=\"%s\"", job->hdr.name, rx.ClientName, rx.store?rx.store->hdr.name:"", working_directory, rx.where, rx.selected_files, ua->catalog->hdr.name); } else { - Mmsg(ua->cmd, + Mmsg(ua->cmd, "run job=\"%s\" client=\"%s\" storage=\"%s\" bootstrap=\"%s/restore.bsr\"" " files=%d catalog=\"%s\"", job->hdr.name, rx.ClientName, rx.store?rx.store->hdr.name:"", @@ -233,7 +232,7 @@ bail_out: } -static void free_rx(RESTORE_CTX *rx) +static void free_rx(RESTORE_CTX *rx) { free_bsr(rx->bsr); rx->bsr = NULL; @@ -277,7 +276,7 @@ static int get_client_name(UAContext *ua, RESTORE_CTX *rx) } /* - * The first step in the restore process is for the user to + * The first step in the restore process is for the user to * select a list of JobIds from which he will subsequently * select which files are to be restored. */ @@ -290,11 +289,11 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) JOB_DBR jr; bool done = false; int i, j; - const char *list[] = { + const char *list[] = { "List last 20 Jobs run", "List Jobs where a given File is saved", "Enter list of comma separated JobIds to select", - "Enter SQL list command", + "Enter SQL list command", "Select the most recent backup for a client", "Select backup for a client before a specified time", "Enter a list of files to restore", @@ -393,7 +392,7 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) case 6: /* all specified */ rx->all = true; break; - /* + /* * All keywords 7 or greater are ignored or handled by a select prompt */ default: @@ -403,7 +402,7 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) if (rx->name_list.num_ids) { return 2; /* filename list made */ } - + if (!done) { bsendmsg(ua, _("\nFirst you select one or more JobIds that contain files\n" "to be restored. You will be presented several methods\n" @@ -482,7 +481,7 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) if (!get_client_name(ua, rx)) { return 0; } - bsendmsg(ua, _("Enter file names with paths, or < to enter a filename\n" + bsendmsg(ua, _("Enter file names with paths, or < to enter a filename\n" "containg a list of file names with paths, and terminate\n" "them with a blank line.\n")); for ( ;; ) { @@ -507,7 +506,7 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) if (!get_client_name(ua, rx)) { return 0; } - bsendmsg(ua, _("Enter file names with paths, or < to enter a filename\n" + bsendmsg(ua, _("Enter file names with paths, or < to enter a filename\n" "containg a list of file names with paths, and terminate\n" "them with a blank line.\n")); for ( ;; ) { @@ -526,7 +525,7 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) } return 2; - + case 8: /* Cancel or quit */ return 0; } @@ -536,7 +535,7 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) bsendmsg(ua, _("No Jobs selected.\n")); return 0; } - bsendmsg(ua, _("You have selected the following JobId%s: %s\n"), + bsendmsg(ua, _("You have selected the following JobId%s: %s\n"), strchr(rx->JobIds,',')?"s":"",rx->JobIds); memset(&jr, 0, sizeof(JOB_DBR)); @@ -556,21 +555,21 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) } jr.JobId = JobId; if (!db_get_job_record(ua->jcr, ua->db, &jr)) { - bsendmsg(ua, _("Unable to get Job record for JobId=%u: ERR=%s\n"), + bsendmsg(ua, _("Unable to get Job record for JobId=%u: ERR=%s\n"), JobId, db_strerror(ua->db)); return 0; } if (!acl_access_ok(ua, Job_ACL, jr.Name)) { - bsendmsg(ua, _("No authorization. Job \"%s\" not selected.\n"), + bsendmsg(ua, _("No authorization. Job \"%s\" not selected.\n"), jr.Name); - continue; + continue; } rx->TotalFiles += jr.JobFiles; } return 1; } -/* +/* * Get date from user */ static int get_date(UAContext *ua, char *date, int date_len) @@ -585,13 +584,13 @@ static int get_date(UAContext *ua, char *date, int date_len) break; } bsendmsg(ua, _("Improper date format.\n")); - } + } bstrncpy(date, ua->cmd, date_len); return 1; } /* - * Insert a single file, or read a list of files from a file + * Insert a single file, or read a list of files from a file */ static void insert_one_file(UAContext *ua, RESTORE_CTX *rx, char *date) { @@ -599,13 +598,14 @@ static void insert_one_file(UAContext *ua, RESTORE_CTX *rx, char *date) char file[5000]; char *p = ua->cmd; int line = 0; - + switch (*p) { case '<': p++; if ((ffd = fopen(p, "r")) == NULL) { + berrno be; bsendmsg(ua, _("Cannot open file %s: ERR=%s\n"), - p, strerror(errno)); + p, be.strerror()); break; } while (fgets(file, sizeof(file), ffd)) { @@ -627,7 +627,7 @@ static void insert_one_file(UAContext *ua, RESTORE_CTX *rx, char *date) * lookup the most recent backup in the catalog to get the JobId * and FileIndex, then insert them into the findex list. */ -static int insert_file_into_findex_list(UAContext *ua, RESTORE_CTX *rx, char *file, +static int insert_file_into_findex_list(UAContext *ua, RESTORE_CTX *rx, char *file, char *date) { strip_trailing_junk(file); @@ -635,13 +635,13 @@ static int insert_file_into_findex_list(UAContext *ua, RESTORE_CTX *rx, char *fi if (*rx->JobIds == 0) { Mmsg(rx->query, uar_jobid_fileindex, date, rx->path, rx->fname, rx->ClientName); } else { - Mmsg(rx->query, uar_jobids_fileindex, rx->JobIds, date, + Mmsg(rx->query, uar_jobids_fileindex, rx->JobIds, date, rx->path, rx->fname, rx->ClientName); } rx->found = false; /* Find and insert jobid and File Index */ if (!db_sql_query(ua->db, rx->query, jobid_fileindex_handler, (void *)rx)) { - bsendmsg(ua, _("Query failed: %s. ERR=%s\n"), + bsendmsg(ua, _("Query failed: %s. ERR=%s\n"), rx->query, db_strerror(ua->db)); } if (!rx->found) { @@ -664,7 +664,7 @@ static void split_path_and_filename(RESTORE_CTX *rx, char *name) { char *p, *f; - /* Find path without the filename. + /* Find path without the filename. * I.e. everything after the last / is a "filename". * OK, maybe it is a directory name, but we treat it like * a filename. If we don't find a / then the whole name @@ -682,7 +682,7 @@ static void split_path_and_filename(RESTORE_CTX *rx, char *name) } /* If filename doesn't exist (i.e. root directory), we - * simply create a blank name consisting of a single + * simply create a blank name consisting of a single * space. This makes handling zero length filenames * easier. */ @@ -696,7 +696,7 @@ static void split_path_and_filename(RESTORE_CTX *rx, char *name) rx->fnl = 0; } - rx->pnl = f - name; + rx->pnl = f - name; if (rx->pnl > 0) { rx->path = check_pool_memory_size(rx->path, rx->pnl+1); memcpy(rx->path, name, rx->pnl); @@ -717,7 +717,7 @@ static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx) bool OK = true; memset(&tree, 0, sizeof(TREE_CTX)); - /* + /* * Build the directory tree containing JobIds user selected */ tree.root = new_tree(rx->TotalFiles); @@ -745,7 +745,7 @@ static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx) } for (p=rx->JobIds; get_next_jobid_from_list(&p, &JobId) > 0; ) { - if (JobId == last_JobId) { + if (JobId == last_JobId) { continue; /* eliminate duplicate JobIds */ } last_JobId = JobId; @@ -767,7 +767,7 @@ static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx) } } char ec1[50]; - bsendmsg(ua, "\n%d Job%s, %s files inserted into the tree%s.\n", + bsendmsg(ua, "\n%d Job%s, %s files inserted into the tree%s.\n", items, items==1?"":"s", edit_uint64_with_commas(tree.FileCount, ec1), tree.all?" and marked for extraction":""); @@ -780,7 +780,7 @@ static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx) } /* - * Walk down through the tree finding all files marked to be + * Walk down through the tree finding all files marked to be * extracted making a bootstrap file. */ if (OK) { @@ -835,14 +835,14 @@ static int select_backups_before_date(UAContext *ua, RESTORE_CTX *rx, char *date bstrncpy(rx->ClientName, cr.Name, sizeof(rx->ClientName)); /* - * Get FileSet + * Get FileSet */ memset(&fsr, 0, sizeof(fsr)); - i = find_arg_with_value(ua, "FileSet"); + i = find_arg_with_value(ua, "FileSet"); if (i >= 0) { bstrncpy(fsr.FileSet, ua->argv[i], sizeof(fsr.FileSet)); if (!db_get_fileset_record(ua->jcr, ua->db, &fsr)) { - bsendmsg(ua, _("Error getting FileSet \"%s\": ERR=%s\n"), fsr.FileSet, + bsendmsg(ua, _("Error getting FileSet \"%s\": ERR=%s\n"), fsr.FileSet, db_strerror(ua->db)); i = -1; } @@ -853,7 +853,7 @@ static int select_backups_before_date(UAContext *ua, RESTORE_CTX *rx, char *date if (!db_sql_query(ua->db, rx->query, fileset_handler, (void *)ua)) { bsendmsg(ua, "%s\n", db_strerror(ua->db)); } - if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), + if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), fileset_name, sizeof(fileset_name)) < 0) { goto bail_out; } @@ -938,11 +938,11 @@ static int select_backups_before_date(UAContext *ua, RESTORE_CTX *rx, char *date /* Display a list of Jobs selected for this restore */ db_list_sql_query(ua->jcr, ua->db, uar_list_temp, prtit, ua, 1, HORZ_LIST); } else { - bsendmsg(ua, _("No jobs found.\n")); + bsendmsg(ua, _("No jobs found.\n")); } stat = 1; - + bail_out: db_sql_query(ua->db, uar_del_temp, NULL, NULL); db_sql_query(ua->db, uar_del_temp1, NULL, NULL); @@ -969,14 +969,14 @@ static int get_next_jobid_from_list(char **p, uint32_t *JobId) return 0; } *p = q; - *JobId = strtoul(jobid, NULL, 10); + *JobId = str_to_int64(jobid); return 1; } static int count_handler(void *ctx, int num_fields, char **row) { RESTORE_CTX *rx = (RESTORE_CTX *)ctx; - rx->JobId = atoi(row[0]); + rx->JobId = str_to_int64(row[0]); rx->found = true; return 0; } @@ -987,8 +987,8 @@ static int count_handler(void *ctx, int num_fields, char **row) static int jobid_fileindex_handler(void *ctx, int num_fields, char **row) { RESTORE_CTX *rx = (RESTORE_CTX *)ctx; - rx->JobId = atoi(row[0]); - add_findex(rx->bsr, rx->JobId, atoi(row[1])); + rx->JobId = str_to_int64(row[0]); + add_findex(rx->bsr, rx->JobId, str_to_int64(row[1])); rx->found = true; return 0; } @@ -1000,7 +1000,7 @@ static int jobid_handler(void *ctx, int num_fields, char **row) { RESTORE_CTX *rx = (RESTORE_CTX *)ctx; - if (strcmp(rx->last_jobid, row[0]) == 0) { + if (strcmp(rx->last_jobid, row[0]) == 0) { return 0; /* duplicate id */ } bstrncpy(rx->last_jobid, row[0], sizeof(rx->last_jobid)); @@ -1019,7 +1019,7 @@ static int last_full_handler(void *ctx, int num_fields, char **row) { RESTORE_CTX *rx = (RESTORE_CTX *)ctx; - rx->JobTDate = str_to_int64(row[1]); + rx->JobTDate = str_to_int64(row[1]); return 0; } @@ -1045,7 +1045,7 @@ static int unique_name_list_handler(void *ctx, int num_fields, char **row) { NAME_LIST *name = (NAME_LIST *)ctx; - if (name->num_ids == MAX_ID_LIST_LEN) { + if (name->num_ids == MAX_ID_LIST_LEN) { return 1; } if (name->num_ids == name->max_ids) { @@ -1072,7 +1072,7 @@ static int unique_name_list_handler(void *ctx, int num_fields, char **row) * Print names in the list */ static void print_name_list(UAContext *ua, NAME_LIST *name_list) -{ +{ for (int i=0; i < name_list->num_ids; i++) { bsendmsg(ua, "%s\n", name_list->name[i]); } @@ -1083,7 +1083,7 @@ static void print_name_list(UAContext *ua, NAME_LIST *name_list) * Free names in the list */ static void free_name_list(NAME_LIST *name_list) -{ +{ for (int i=0; i < name_list->num_ids; i++) { free(name_list->name[i]); } @@ -1116,7 +1116,7 @@ static void get_storage_from_mediatype(UAContext *ua, NAME_LIST *name_list, REST return; } /* - * We have a single MediaType, look it up in our Storage resource + * We have a single MediaType, look it up in our Storage resource */ LockRes(); foreach_res(store, R_STORAGE) { @@ -1132,7 +1132,7 @@ static void get_storage_from_mediatype(UAContext *ua, NAME_LIST *name_list, REST if (rx->store) { /* Check if an explicit storage resource is given */ store = NULL; - int i = find_arg_with_value(ua, "storage"); + int i = find_arg_with_value(ua, "storage"); if (i > 0) { store = (STORE *)GetResWithName(R_STORAGE, ua->argv[i]); if (store && !acl_access_ok(ua, Storage_ACL, store->hdr.name)) { @@ -1154,6 +1154,6 @@ static void get_storage_from_mediatype(UAContext *ua, NAME_LIST *name_list, REST bsendmsg(ua, _("\nWarning. Unable to find Storage resource for\n" "MediaType \"%s\", needed by the Jobs you selected.\n" "You will be allowed to select a Storage device later.\n"), - name_list->name[0]); + name_list->name[0]); } } diff --git a/bacula/src/dird/ua_run.c b/bacula/src/dird/ua_run.c index 52aeff5a55..25b81bddaf 100644 --- a/bacula/src/dird/ua_run.c +++ b/bacula/src/dird/ua_run.c @@ -8,7 +8,7 @@ */ /* - Copyright (C) 2001-2004 Kern Sibbald and John Walker + Copyright (C) 2001-2004 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -42,6 +42,12 @@ extern struct s_kw ReplaceOptions[]; * For Restore Jobs * run jobid=nn * + * Returns: 0 on error + * JobId if OK + * + * Returns: 0 on error + * JobId if OK + * */ int run_cmd(UAContext *ua, const char *cmd) { @@ -101,7 +107,7 @@ int run_cmd(UAContext *ua, const char *cmd) catalog_name = NULL; for (i=1; iargc; i++) { - Dmsg2(200, "Doing arg %d = %s\n", i, ua->argk[i]); + Dmsg2(800, "Doing arg %d = %s\n", i, ua->argk[i]); kw_ok = false; /* Keep looking until we find a good keyword */ for (j=0; !kw_ok && kw[j]; j++) { @@ -111,12 +117,12 @@ int run_cmd(UAContext *ua, const char *cmd) bsendmsg(ua, _("Value missing for keyword %s\n"), ua->argk[i]); return 1; } - Dmsg1(200, "Got keyword=%s\n", kw[j]); + Dmsg1(800, "Got keyword=%s\n", kw[j]); switch (j) { case 0: /* job */ if (job_name) { bsendmsg(ua, _("Job name specified twice.\n")); - return 1; + return 0; } job_name = ua->argv[i]; kw_ok = true; @@ -124,7 +130,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 1: /* JobId */ if (jid) { bsendmsg(ua, _("JobId specified twice.\n")); - return 1; + return 0; } jid = ua->argv[i]; kw_ok = true; @@ -133,7 +139,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 3: /* fd */ if (client_name) { bsendmsg(ua, _("Client specified twice.\n")); - return 1; + return 0; } client_name = ua->argv[i]; kw_ok = true; @@ -141,7 +147,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 4: /* fileset */ if (fileset_name) { bsendmsg(ua, _("FileSet specified twice.\n")); - return 1; + return 0; } fileset_name = ua->argv[i]; kw_ok = true; @@ -149,7 +155,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 5: /* level */ if (level_name) { bsendmsg(ua, _("Level specified twice.\n")); - return 1; + return 0; } level_name = ua->argv[i]; kw_ok = true; @@ -158,7 +164,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 7: /* sd */ if (store_name) { bsendmsg(ua, _("Storage specified twice.\n")); - return 1; + return 0; } store_name = ua->argv[i]; kw_ok = true; @@ -166,7 +172,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 8: /* pool */ if (pool_name) { bsendmsg(ua, _("Pool specified twice.\n")); - return 1; + return 0; } pool_name = ua->argv[i]; kw_ok = true; @@ -174,7 +180,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 9: /* where */ if (where) { bsendmsg(ua, _("Where specified twice.\n")); - return 1; + return 0; } where = ua->argv[i]; kw_ok = true; @@ -182,7 +188,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 10: /* bootstrap */ if (bootstrap) { bsendmsg(ua, _("Bootstrap specified twice.\n")); - return 1; + return 0; } bootstrap = ua->argv[i]; kw_ok = true; @@ -190,7 +196,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 11: /* replace */ if (replace) { bsendmsg(ua, _("Replace specified twice.\n")); - return 1; + return 0; } replace = ua->argv[i]; kw_ok = true; @@ -198,7 +204,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 12: /* When */ if (when) { bsendmsg(ua, _("When specified twice.\n")); - return 1; + return 0; } when = ua->argv[i]; kw_ok = true; @@ -206,7 +212,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 13: /* Priority */ if (Priority) { bsendmsg(ua, _("Priority specified twice.\n")); - return 1; + return 0; } Priority = atoi(ua->argv[i]); if (Priority <= 0) { @@ -221,7 +227,7 @@ int run_cmd(UAContext *ua, const char *cmd) case 15: /* Verify Job */ if (verify_job_name) { bsendmsg(ua, _("Verify Job specified twice.\n")); - return 1; + return 0; } verify_job_name = ua->argv[i]; kw_ok = true; @@ -255,21 +261,22 @@ int run_cmd(UAContext *ua, const char *cmd) Dmsg1(200, "Set jobname=%s\n", job_name); } else { bsendmsg(ua, _("Invalid keyword: %s\n"), ua->argk[i]); - return 1; + return 0; } } } /* end argc loop */ - Dmsg0(200, "Done scan.\n"); + Dmsg0(800, "Done scan.\n"); CAT *catalog = NULL; if (catalog_name != NULL) { catalog = (CAT *)GetResWithName(R_CATALOG, catalog_name); if (catalog == NULL) { bsendmsg(ua, _("Catalog \"%s\" not found\n"), catalog_name); - return 1; + return 0; } } + Dmsg1(200, "Using catalog=%s\n", catalog_name); if (job_name) { /* Find Job */ @@ -287,11 +294,11 @@ int run_cmd(UAContext *ua, const char *cmd) job = select_job_resource(ua); } if (!job) { - return 1; + return 0; } else if (!acl_access_ok(ua, Job_ACL, job->hdr.name)) { bsendmsg(ua, _("No authorization. Job \"%s\".\n"), job->hdr.name); - return 1; + return 0; } if (store_name) { @@ -310,8 +317,9 @@ int run_cmd(UAContext *ua, const char *cmd) } else if (!acl_access_ok(ua, Storage_ACL, store->hdr.name)) { bsendmsg(ua, _("No authorization. Storage \"%s\".\n"), store->hdr.name); - return 1; + return 0; } + Dmsg1(200, "Using storage=%s\n", store->hdr.name); if (pool_name) { pool = (POOL *)GetResWithName(R_POOL, pool_name); @@ -325,12 +333,13 @@ int run_cmd(UAContext *ua, const char *cmd) pool = job->pool; /* use default */ } if (!pool) { - return 1; - } else if (!acl_access_ok(ua, Pool_ACL, store->hdr.name)) { + return 0; + } else if (!acl_access_ok(ua, Pool_ACL, pool->hdr.name)) { bsendmsg(ua, _("No authorization. Pool \"%s\".\n"), pool->hdr.name); - return 1; + return 0; } + Dmsg1(200, "Using pool\n", pool->hdr.name); if (client_name) { client = (CLIENT *)GetResWithName(R_CLIENT, client_name); @@ -344,12 +353,13 @@ int run_cmd(UAContext *ua, const char *cmd) client = job->client; /* use default */ } if (!client) { - return 1; - } else if (!acl_access_ok(ua, Client_ACL, store->hdr.name)) { + return 0; + } else if (!acl_access_ok(ua, Client_ACL, client->hdr.name)) { bsendmsg(ua, _("No authorization. Client \"%s\".\n"), client->hdr.name); - return 1; + return 0; } + Dmsg1(200, "Using client=%s\n", client->hdr.name); if (fileset_name) { fileset = (FILESET *)GetResWithName(R_FILESET, fileset_name); @@ -361,11 +371,11 @@ int run_cmd(UAContext *ua, const char *cmd) fileset = job->fileset; /* use default */ } if (!fileset) { - return 1; - } else if (!acl_access_ok(ua, FileSet_ACL, store->hdr.name)) { + return 0; + } else if (!acl_access_ok(ua, FileSet_ACL, fileset->hdr.name)) { bsendmsg(ua, _("No authorization. FileSet \"%s\".\n"), fileset->hdr.name); - return 1; + return 0; } if (verify_job_name) { @@ -386,7 +396,7 @@ int run_cmd(UAContext *ua, const char *cmd) set_jcr_defaults(jcr, job); jcr->verify_job = verify_job; - jcr->store = store; + set_storage(jcr, store); jcr->client = client; jcr->fileset = fileset; jcr->pool = pool; @@ -460,7 +470,7 @@ try_again: } /* Run without prompting? */ - if (find_arg(ua, _("yes")) > 0) { + if (ua->batch || find_arg(ua, _("yes")) > 0) { goto start_job; } @@ -701,7 +711,7 @@ Priority: %d\n"), /* Storage */ store = select_storage_resource(ua); if (store) { - jcr->store = store; + set_storage(jcr, store); goto try_again; } break; @@ -847,7 +857,7 @@ start_job: } else { bsendmsg(ua, _("Job started. JobId=%u\n"), JobId); } - return 1; + return JobId; } bail_out: diff --git a/bacula/src/dird/ua_server.c b/bacula/src/dird/ua_server.c index afd32d6b6c..4b70ba82a8 100644 --- a/bacula/src/dird/ua_server.c +++ b/bacula/src/dird/ua_server.c @@ -8,7 +8,7 @@ */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -30,8 +30,6 @@ #include "bacula.h" #include "dird.h" -/* Imported subroutines */ - /* Imported variables */ extern int r_first; extern int r_last; @@ -39,17 +37,9 @@ extern struct s_res resources[]; extern int console_msg_pending; extern char my_name[]; -/* Static variables */ - -/* Exported variables */ -int quit_cmd_thread = 0; - -/* Imported functions */ /* Forward referenced functions */ - extern "C" void *connect_thread(void *arg); - static void *handle_UA_client_request(void *arg); @@ -74,19 +64,18 @@ void start_UA_server(dlist *addrs) if ((status=pthread_create(&thid, NULL, connect_thread, (void *)myaddrs)) != 0) { berrno be; - be.set_errno(status); - Emsg1(M_ABORT, 0, _("Cannot create UA thread: %s\n"), be.strerror()); + Emsg1(M_ABORT, 0, _("Cannot create UA thread: %s\n"), be.strerror(status)); } started = TRUE; return; } -extern "C" +extern "C" void *connect_thread(void *arg) { pthread_detach(pthread_self()); - /* ****FIXME**** put # 10 (timeout) on config parameter */ + /* Permit 10 console connections */ bnet_thread_server((dlist*)arg, 10, &ua_workq, handle_UA_client_request); return NULL; } @@ -99,6 +88,15 @@ JCR *new_control_jcr(const char *base_name, int job_type) { JCR *jcr; jcr = new_jcr(sizeof(JCR), dird_free_jcr); + /* + * The job and defaults are not really used, but + * we set them up to ensure that everything is correctly + * initialized. + */ + LockRes(); + jcr->job = (JOB *)GetNextRes(R_JOB, NULL); + set_jcr_defaults(jcr, jcr->job); + UnlockRes(); jcr->sd_auth_key = bstrdup("dummy"); /* dummy Storage daemon key */ create_unique_job_name(jcr, base_name); jcr->sched_time = jcr->start_time; @@ -106,25 +104,11 @@ JCR *new_control_jcr(const char *base_name, int job_type) jcr->JobLevel = L_NONE; jcr->JobStatus = JS_Running; jcr->JobId = 0; - /* - * None of these are really defined for control JCRs, so we - * simply take the first of each one. This ensures that there - * will be no null pointer references. - */ - LockRes(); - jcr->job = (JOB *)GetNextRes(R_JOB, NULL); - jcr->messages = (MSGS *)GetNextRes(R_MSGS, NULL); - jcr->client = (CLIENT *)GetNextRes(R_CLIENT, NULL); - jcr->pool = (POOL *)GetNextRes(R_POOL, NULL); - jcr->catalog = (CAT *)GetNextRes(R_CATALOG, NULL); - jcr->store = (STORE *)GetNextRes(R_STORAGE, NULL); - jcr->fileset = (FILESET *)GetNextRes(R_FILESET, NULL); - UnlockRes(); return jcr; } /* - * Handle Director User Agent commands + * Handle Director User Agent commands * */ static void *handle_UA_client_request(void *arg) @@ -132,14 +116,13 @@ static void *handle_UA_client_request(void *arg) int stat; UAContext *ua; JCR *jcr; - BSOCK *UA_sock = (BSOCK *)arg; pthread_detach(pthread_self()); jcr = new_control_jcr("*Console*", JT_CONSOLE); ua = new_ua_context(jcr); - ua->UA_sock = UA_sock; + ua->UA_sock = (BSOCK *)arg; bnet_recv(ua->UA_sock); /* Get first message */ if (!authenticate_user_agent(ua)) { @@ -158,7 +141,7 @@ static void *handle_UA_client_request(void *arg) } if (!ua->quit) { if (ua->auto_display_messages) { - strcpy(ua->cmd, "messages"); + pm_strcpy(ua->cmd, "messages"); qmessagescmd(ua, ua->cmd); ua->user_notified_msg_pending = FALSE; } else if (!ua->user_notified_msg_pending && console_msg_pending) { @@ -184,7 +167,7 @@ getout: /* * Create a UAContext for a Job that is running so that - * it can the User Agent routines and + * it can the User Agent routines and * to ensure that the Job gets the proper output. * This is a sort of mini-kludge, and should be * unified at some point. @@ -218,18 +201,18 @@ void free_ua_context(UAContext *ua) if (ua->UA_sock) { bnet_close(ua->UA_sock); + ua->UA_sock = NULL; } free(ua); } /* - * Called from main Bacula thread + * Called from main Bacula thread */ void term_ua_server() { if (!started) { return; } - quit_cmd_thread = TRUE; } diff --git a/bacula/src/dird/ua_status.c b/bacula/src/dird/ua_status.c index d7ef5b6416..a176995ba2 100644 --- a/bacula/src/dird/ua_status.c +++ b/bacula/src/dird/ua_status.c @@ -282,7 +282,7 @@ static void do_storage_status(UAContext *ua, STORE *store) { BSOCK *sd; - ua->jcr->store = store; + set_storage(ua->jcr, store); /* Try connecting for up to 15 seconds */ bsendmsg(ua, _("Connecting to Storage daemon %s at %s:%d\n"), store->hdr.name, store->address, store->SDport); @@ -665,6 +665,19 @@ static void list_terminated_jobs(UAContext *ua) char JobName[MAX_NAME_LENGTH]; const char *termstat; + bstrncpy(JobName, je->Job, sizeof(JobName)); + /* There are three periods after the Job name */ + char *p; + for (int i=0; i<3; i++) { + if ((p=strrchr(JobName, '.')) != NULL) { + *p = 0; + } + } + + if (!acl_access_ok(ua, Job_ACL, JobName)) { + continue; + } + bstrftime_nc(dt, sizeof(dt), je->end_time); switch (je->JobType) { case JT_ADMIN: @@ -697,14 +710,6 @@ static void list_terminated_jobs(UAContext *ua) termstat = "Other"; break; } - bstrncpy(JobName, je->Job, sizeof(JobName)); - /* There are three periods after the Job name */ - char *p; - for (int i=0; i<3; i++) { - if ((p=strrchr(JobName, '.')) != NULL) { - *p = 0; - } - } bsendmsg(ua, _("%6d %-6s %8s %14s %-7s %-8s %s\n"), je->JobId, level, diff --git a/bacula/src/dird/ua_tree.c b/bacula/src/dird/ua_tree.c index 517ccf767d..5023002e54 100644 --- a/bacula/src/dird/ua_tree.c +++ b/bacula/src/dird/ua_tree.c @@ -10,7 +10,7 @@ */ /* - Copyright (C) 2002-2004 Kern Sibbald and John Walker + Copyright (C) 2002-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -31,7 +31,11 @@ #include "bacula.h" #include "dird.h" +#ifdef HAVE_FNMATCH #include +#else +#include "lib/fnmatch.h" +#endif #include "findlib/find.h" @@ -54,25 +58,25 @@ static int quitcmd(UAContext *ua, TREE_CTX *tree); static int donecmd(UAContext *ua, TREE_CTX *tree); -struct cmdstruct { const char *key; int (*func)(UAContext *ua, TREE_CTX *tree); const char *help; }; +struct cmdstruct { const char *key; int (*func)(UAContext *ua, TREE_CTX *tree); const char *help; }; static struct cmdstruct commands[] = { { N_("cd"), cdcmd, _("change current directory")}, { N_("count"), countcmd, _("count marked files in and below the cd")}, - { N_("dir"), dircmd, _("list current directory")}, + { N_("dir"), dircmd, _("list current directory")}, { N_("done"), donecmd, _("leave file selection mode")}, { N_("estimate"), estimatecmd, _("estimate restore size")}, { N_("exit"), donecmd, _("exit = done")}, { N_("find"), findcmd, _("find files -- wildcards allowed")}, { N_("help"), helpcmd, _("print help")}, - { N_("ls"), lscmd, _("list current directory -- wildcards allowed")}, - { N_("lsmark"), lsmarkcmd, _("list the marked files in and below the cd")}, + { N_("ls"), lscmd, _("list current directory -- wildcards allowed")}, + { N_("lsmark"), lsmarkcmd, _("list the marked files in and below the cd")}, { N_("mark"), markcmd, _("mark dir/file to be restored -- recursively in dirs")}, { N_("markdir"), markdircmd, _("mark directory name to be restored (no files)")}, { N_("pwd"), pwdcmd, _("print current working directory")}, { N_("unmark"), unmarkcmd, _("unmark dir/file to be restored -- recursively in dir")}, { N_("unmarkdir"), unmarkdircmd, _("unmark directory name only -- no recursion")}, { N_("quit"), quitcmd, _("quit")}, - { N_("?"), helpcmd, _("print help")}, + { N_("?"), helpcmd, _("print help")}, }; #define comsize (sizeof(commands)/sizeof(struct cmdstruct)) @@ -90,7 +94,7 @@ bool user_select_files_from_tree(TREE_CTX *tree) UAContext *ua = new_ua_context(tree->ua->jcr); ua->UA_sock = tree->ua->UA_sock; /* patch in UA socket */ - bsendmsg(tree->ua, _( + bsendmsg(tree->ua, _( "\nYou are now entering file selection mode where you add (mark) and\n" "remove (unmark) files to be restored. No files are initially added, unless\n" "you used the \"all\" keyword on the command line.\n" @@ -102,7 +106,7 @@ bool user_select_files_from_tree(TREE_CTX *tree) tree->node = (TREE_NODE *)tree->root; tree_getpath(tree->node, cwd, sizeof(cwd)); bsendmsg(tree->ua, _("cwd is: %s\n"), cwd); - for ( ;; ) { + for ( ;; ) { int found, len, i; if (!get_cmd(ua, "$ ")) { break; @@ -215,7 +219,7 @@ int insert_tree_handler(void *ctx, int num_fields, char **row) /* * Set extract to value passed. We recursively walk - * down the tree setting all children if the + * down the tree setting all children if the * node is a directory. */ static int set_extract(UAContext *ua, TREE_NODE *node, TREE_CTX *tree, bool extract) @@ -283,7 +287,7 @@ static int set_extract(UAContext *ua, TREE_NODE *node, TREE_CTX *tree, bool extr } /* - * Recursively mark the current directory to be restored as + * Recursively mark the current directory to be restored as * well as all directories and files below it. */ static int markcmd(UAContext *ua, TREE_CTX *tree) @@ -306,7 +310,7 @@ static int markcmd(UAContext *ua, TREE_CTX *tree) if (count == 0) { bsendmsg(ua, _("No files marked.\n")); } else { - bsendmsg(ua, _("%s file%s marked.\n"), + bsendmsg(ua, _("%s file%s marked.\n"), edit_uint64_with_commas(count, ec1), count==0?"":"s"); } return 1; @@ -335,7 +339,7 @@ static int markdircmd(UAContext *ua, TREE_CTX *tree) if (count == 0) { bsendmsg(ua, _("No directories marked.\n")); } else { - bsendmsg(ua, _("%s director%s marked.\n"), + bsendmsg(ua, _("%s director%s marked.\n"), edit_uint64_with_commas(count, ec1), count==1?"y":"ies"); } return 1; @@ -356,8 +360,8 @@ static int countcmd(UAContext *ua, TREE_CTX *tree) } } } - bsendmsg(ua, "%s total files/dirs. %s marked to be restored.\n", - edit_uint64_with_commas(total, ec1), + bsendmsg(ua, "%s total files/dirs. %s marked to be restored.\n", + edit_uint64_with_commas(total, ec1), edit_uint64_with_commas(num_extract, ec2)); return 1; } @@ -370,7 +374,7 @@ static int findcmd(UAContext *ua, TREE_CTX *tree) bsendmsg(ua, _("No file specification given.\n")); return 0; } - + for (int i=1; i < ua->argc; i++) { for (TREE_NODE *node=first_tree_node(tree->root); node; node=next_tree_node(node)) { if (fnmatch(ua->argk[i], node->fname, 0) == 0) { @@ -396,7 +400,7 @@ static int lscmd(UAContext *ua, TREE_CTX *tree) { TREE_NODE *node; - if (!tree_node_has_child(tree->node)) { + if (!tree_node_has_child(tree->node)) { return 1; } foreach_child(node, tree->node) { @@ -418,10 +422,10 @@ static int lscmd(UAContext *ua, TREE_CTX *tree) /* * Ls command that lists only the marked files */ -static void rlsmark(UAContext *ua, TREE_NODE *tnode) +static void rlsmark(UAContext *ua, TREE_NODE *tnode) { TREE_NODE *node; - if (!tree_node_has_child(tnode)) { + if (!tree_node_has_child(tnode)) { return; } foreach_child(node, tnode) { @@ -494,7 +498,7 @@ static int dircmd(UAContext *ua, TREE_CTX *tree) char buf[1100]; char cwd[1100], *pcwd; - if (!tree_node_has_child(tree->node)) { + if (!tree_node_has_child(tree->node)) { bsendmsg(ua, "Node %s has no children.\n", tree->node->fname); return 1; } @@ -576,14 +580,14 @@ static int estimatecmd(UAContext *ua, TREE_CTX *tree) } } } - bsendmsg(ua, "%d total files; %d marked to be restored; %s bytes.\n", + bsendmsg(ua, "%d total files; %d marked to be restored; %s bytes.\n", total, num_extract, edit_uint64_with_commas(total_bytes, ec1)); return 1; } -static int helpcmd(UAContext *ua, TREE_CTX *tree) +static int helpcmd(UAContext *ua, TREE_CTX *tree) { unsigned int i; @@ -601,7 +605,7 @@ static int helpcmd(UAContext *ua, TREE_CTX *tree) * we assume it is a Win32 absolute cd rather than relative and * try a second time with /x: ... Win32 kludge. */ -static int cdcmd(UAContext *ua, TREE_CTX *tree) +static int cdcmd(UAContext *ua, TREE_CTX *tree) { TREE_NODE *node; char cwd[2000]; @@ -630,7 +634,7 @@ static int cdcmd(UAContext *ua, TREE_CTX *tree) return 1; } -static int pwdcmd(UAContext *ua, TREE_CTX *tree) +static int pwdcmd(UAContext *ua, TREE_CTX *tree) { char cwd[2000]; tree_getpath(tree->node, cwd, sizeof(cwd)); @@ -644,7 +648,7 @@ static int unmarkcmd(UAContext *ua, TREE_CTX *tree) TREE_NODE *node; int count = 0; - if (ua->argc < 2 || !tree_node_has_child(tree->node)) { + if (ua->argc < 2 || !tree_node_has_child(tree->node)) { bsendmsg(ua, _("No files unmarked.\n")); return 1; } @@ -693,12 +697,12 @@ static int unmarkdircmd(UAContext *ua, TREE_CTX *tree) } -static int donecmd(UAContext *ua, TREE_CTX *tree) +static int donecmd(UAContext *ua, TREE_CTX *tree) { return 0; } -static int quitcmd(UAContext *ua, TREE_CTX *tree) +static int quitcmd(UAContext *ua, TREE_CTX *tree) { ua->quit = true; return 0; diff --git a/bacula/src/dird/verify.c b/bacula/src/dird/verify.c index 5e02da4219..858264f459 100644 --- a/bacula/src/dird/verify.c +++ b/bacula/src/dird/verify.c @@ -64,16 +64,14 @@ static int missing_handler(void *ctx, int num_fields, char **row); */ bool do_verify(JCR *jcr) { + JOB_DBR jr; const char *level, *Name; BSOCK *fd; - JOB_DBR jr, verify_jr; JobId_t verify_jobid = 0; int stat; - memset(&verify_jr, 0, sizeof(verify_jr)); - if (!jcr->verify_jr) { - jcr->verify_jr = &verify_jr; - } + memset(&jcr->verify_jr, 0, sizeof(jcr->verify_jr)); + if (!get_or_create_client_record(jcr)) { goto bail_out; } @@ -134,19 +132,19 @@ bool do_verify(JCR *jcr) if (jcr->JobLevel == L_VERIFY_CATALOG || jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG || jcr->JobLevel == L_VERIFY_DISK_TO_CATALOG) { - verify_jr.JobId = verify_jobid; - if (!db_get_job_record(jcr, jcr->db, &verify_jr)) { + jcr->verify_jr.JobId = verify_jobid; + if (!db_get_job_record(jcr, jcr->db, &jcr->verify_jr)) { Jmsg(jcr, M_FATAL, 0, _("Could not get job record for previous Job. ERR=%s"), db_strerror(jcr->db)); goto bail_out; } - if (verify_jr.JobStatus != 'T') { + if (jcr->verify_jr.JobStatus != 'T') { Jmsg(jcr, M_FATAL, 0, _("Last Job %d did not terminate normally. JobStatus=%c\n"), - verify_jobid, verify_jr.JobStatus); + verify_jobid, jcr->verify_jr.JobStatus); goto bail_out; } Jmsg(jcr, M_INFO, 0, _("Verifying against JobId=%d Job=%s\n"), - verify_jr.JobId, verify_jr.Job); + jcr->verify_jr.JobId, jcr->verify_jr.Job); } /* @@ -158,12 +156,12 @@ bool do_verify(JCR *jcr) if (jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG) { RBSR *bsr = new_bsr(); UAContext *ua; - bsr->JobId = verify_jr.JobId; + bsr->JobId = jcr->verify_jr.JobId; ua = new_ua_context(jcr); complete_bsr(ua, bsr); bsr->fi = new_findex(); bsr->fi->findex = 1; - bsr->fi->findex2 = verify_jr.JobFiles; + bsr->fi->findex2 = jcr->verify_jr.JobFiles; jcr->ExpectedFiles = write_bsr_file(ua, bsr); if (jcr->ExpectedFiles == 0) { free_ua_context(ua); @@ -207,7 +205,7 @@ bool do_verify(JCR *jcr) if (jcr->JobLevel == L_VERIFY_DISK_TO_CATALOG && jcr->verify_job) { jcr->fileset = jcr->verify_job->fileset; } - Dmsg2(100, "ClientId=%u JobLevel=%c\n", verify_jr.ClientId, jcr->JobLevel); + Dmsg2(100, "ClientId=%u JobLevel=%c\n", jcr->verify_jr.ClientId, jcr->JobLevel); /* * OK, now connect to the File daemon @@ -440,7 +438,7 @@ static void verify_cleanup(JCR *jcr, int TermCode) jcr->fileset->hdr.name, level_to_str(jcr->JobLevel), jcr->client->hdr.name, - jcr->verify_jr->JobId, + jcr->verify_jr.JobId, Name, sdt, edt, @@ -471,7 +469,7 @@ static void verify_cleanup(JCR *jcr, int TermCode) jcr->fileset->hdr.name, level_to_str(jcr->JobLevel), jcr->client->hdr.name, - jcr->verify_jr->JobId, + jcr->verify_jr.JobId, Name, sdt, edt, @@ -572,7 +570,7 @@ int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId) */ fdbr.FileId = 0; if (!db_get_file_attributes_record(jcr, jcr->db, jcr->fname, - jcr->verify_jr, &fdbr)) { + &jcr->verify_jr, &fdbr)) { Jmsg(jcr, M_INFO, 0, _("New file: %s\n"), jcr->fname); Dmsg1(020, _("File not in catalog: %s\n"), jcr->fname); stat = JS_Differences; diff --git a/bacula/src/filed/backup.c b/bacula/src/filed/backup.c index 88fed3b615..b543be4b15 100644 --- a/bacula/src/filed/backup.c +++ b/bacula/src/filed/backup.c @@ -37,6 +37,11 @@ static int save_file(FF_PKT *ff_pkt, void *pkt); +/*** FIXME ***/ +#ifdef HAVE_ACL +static int read_send_acl(JCR *jcr, BSOCK *sd, int acltype, int stream); +#endif + /* * Find all the requested files and send them * to the Storage daemon. @@ -501,76 +506,25 @@ static int save_file(FF_PKT *ff_pkt, void *vjcr) } #ifdef HAVE_ACL - /* ACL stream */ - if (ff_pkt->flags & FO_ACL) { - char *acl_text; - /* Read ACLs for files, dirs and links */ - if (ff_pkt->type == FT_DIREND) { - /* Directory: Try for default ACL*/ - acl_t myAcl = acl_get_file(ff_pkt->fname, ACL_TYPE_DEFAULT); - if (!myAcl) { - Dmsg1(200, "No default ACL defined for directory: %s!\n", ff_pkt->fname); - /* If there is no default ACL get standard ACL */ - myAcl = acl_get_file(ff_pkt->fname, ACL_TYPE_ACCESS); - if (!myAcl) { - Jmsg1(jcr, M_WARNING, 0, "Error while trying to get ACL of directory: %s!\n", ff_pkt->fname); - } - } - acl_text = acl_to_any_text(myAcl, NULL, ',', TEXT_ABBREVIATE); - /* Free memory */ - acl_free(myAcl); + /*** FIXME ***/ + if (ff_pkt->flags & FO_ACL) { + /* Storing of ACLs for Links is not needed, because: ACL of link == ACL of original */ + if(ff_pkt->type != FT_LNK) { + /* Read access ACLs for files, dirs and links */ + if (!read_send_acl(jcr, sd, ACL_TYPE_ACCESS, STREAM_UNIX_ATTRIBUTES_ACCESS_ACL)) { + return 0; + } + /* Directories can have also default ACLs*/ + if (ff_pkt->type == FT_DIREND) { + if (!read_send_acl(jcr, sd, ACL_TYPE_DEFAULT, STREAM_UNIX_ATTRIBUTES_DEFAULT_ACL)) { + return 0; + } + } } else { - /* Files or links */ - acl_t myAcl = acl_get_file(ff_pkt->fname, ACL_TYPE_ACCESS); - if (!myAcl) { - Jmsg1(jcr, M_WARNING, 0, "Error while trying to get ACL of file: %s!\n", ff_pkt->fname); - acl_free(myAcl); - } - acl_text = acl_to_any_text(myAcl, NULL, ',', TEXT_ABBREVIATE); - acl_free(myAcl); - } - - /* If there is an ACL, send it to the Storage daemon */ - if (acl_text) { - sd = jcr->store_bsock; - pm_strcpy(&jcr->last_fname, ff_pkt->fname); - - /* - * Send ACL header - * - */ - if (!bnet_fsend(sd, "%ld %d 0", jcr->JobFiles, STREAM_UNIX_ATTRIBUTES_ACL)) { - berrno be; - Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), - bnet_strerror(sd)); - return 0; - } - - /* Send the buffer to the storage deamon */ - msgsave = sd->msg; - sd->msg = acl_text; - sd->msglen = strlen(acl_text) + 1; - if (!bnet_send(sd)) { - berrno be; - sd->msg = msgsave; - sd->msglen = 0; - bclose(&ff_pkt->bfd); - Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), - bnet_strerror(sd)); - } else { - jcr->JobBytes += sd->msglen; - sd->msg = msgsave; - bclose(&ff_pkt->bfd); - if (!bnet_sig(sd, BNET_EOD)) { - berrno be; - Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), - bnet_strerror(sd)); - } else { - Dmsg1(200, "ACL of file: %s successfully backed up!\n", ff_pkt->fname); - } - } + Dmsg1(200, "No need to store ACLs from Links!\n", jcr->last_fname); } } + #endif /* Terminate any MD5 signature and send it to Storage daemon and the Director */ @@ -597,3 +551,74 @@ static int save_file(FF_PKT *ff_pkt, void *vjcr) } return 1; } + +#ifdef HAVE_ACL +/* +* Read and send an ACL for the last encountered file. +*/ +int read_send_acl(JCR *jcr, BSOCK *sd, int acltype, int stream) +{ + POOLMEM *msgsave; + char *acl_text = NULL; + acl_t acl; + + /* Read access ACLs for files, dirs and links */ + acl = acl_get_file(jcr->last_fname, acltype); + if (!acl) { + Jmsg1(jcr, M_WARNING, 0, "Error while trying to get ACL of %s!\n", jcr->last_fname); + return 0; + } + + acl_text = acl_to_any_text(acl, NULL, ',', TEXT_ABBREVIATE); + + /* Check if ACL is valid */ + if ((acl_valid(acl) != 0) && (acltype != ACL_TYPE_DEFAULT)) { + Jmsg1(jcr, M_WARNING, 0, "Failure in the ACL of %s! FD is not able to back it up!\n", jcr->last_fname); + Dmsg1(200, "ACL of file/dir: %s is not valid!\n", jcr->last_fname); + Dmsg1(200, "ACL value=%s\n", acl_text); + } else if (acl_valid(acl) == 0) { + Dmsg1(200, "ACL of file/dir: %s is valid!\n", jcr->last_fname); + Dmsg1(200, "ACL value=%s\n", acl_text); + } else { + Dmsg1(200, "Directory: %s has no Default ACL, there is nothing to do from here!\n", jcr->last_fname); + acl_free(acl); + return 0; + } + acl_free(acl); + + if (acl_text == NULL) { + /* ***FIXME*** Can this happen? */ + Jmsg1(jcr, M_WARNING, 0, "Error decoding ACL of %s!\n", jcr->last_fname); + return 0; + } + + if (!bnet_fsend(sd, "%ld %d 0", jcr->JobFiles, stream)) { + berrno be; + Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), bnet_strerror(sd)); + return 0; + } + + /* Send the buffer to the storage deamon */ + msgsave = sd->msg; + sd->msg = acl_text; + sd->msglen = strlen(acl_text) + 1; + if (!bnet_send(sd)) { + berrno be; + sd->msg = msgsave; + sd->msglen = 0; + Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), bnet_strerror(sd)); + return 0; + } + + jcr->JobBytes += sd->msglen; + sd->msg = msgsave; + if (!bnet_sig(sd, BNET_EOD)) { + berrno be; + Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), bnet_strerror(sd)); + return 0; + } + + Dmsg1(200, "ACL of file: %s successfully backed up!\n", jcr->last_fname); + return 1; + } +#endif diff --git a/bacula/src/filed/estimate.c b/bacula/src/filed/estimate.c index bee59417ea..56ff5e736c 100644 --- a/bacula/src/filed/estimate.c +++ b/bacula/src/filed/estimate.c @@ -1,5 +1,5 @@ /* - * Bacula File Daemon estimate.c + * Bacula File Daemon estimate.c * Make and estimate of the number of files and size to be saved. * * Kern Sibbald, September MMI @@ -32,7 +32,7 @@ static int tally_file(FF_PKT *ff_pkt, void *pkt); -/* +/* * Find all the requested files and count them. */ int make_estimate(JCR *jcr) @@ -45,9 +45,9 @@ int make_estimate(JCR *jcr) stat = find_files(jcr, (FF_PKT *)jcr->ff, tally_file, (void *)jcr); return stat; -} +} -/* +/* * Called here by find() for each file included. * */ @@ -64,6 +64,9 @@ static int tally_file(FF_PKT *ff_pkt, void *ijcr) case FT_REGE: case FT_REG: case FT_LNK: + case FT_NORECURSE: + case FT_NOFSCHG: + case FT_INVALIDFS: case FT_DIREND: case FT_SPEC: case FT_RAW: @@ -76,16 +79,23 @@ static int tally_file(FF_PKT *ff_pkt, void *ijcr) case FT_DIRNOCHG: case FT_NOCHG: case FT_ISARCH: - case FT_NORECURSE: - case FT_NOFSCHG: case FT_NOOPEN: default: return 1; } - if (ff_pkt->type != FT_LNKSAVED && S_ISREG(ff_pkt->statp.st_mode) && - ff_pkt->statp.st_size > 0) { - jcr->JobBytes += ff_pkt->statp.st_size; + if (ff_pkt->type != FT_LNKSAVED && S_ISREG(ff_pkt->statp.st_mode)) { + if (ff_pkt->statp.st_size > 0) { + jcr->JobBytes += ff_pkt->statp.st_size; + } +#ifdef HAVE_DARWIN_OS + if (ff_pkt->flags & FO_HFSPLUS) { + if (ff_pkt->hfsinfo.rsrclength > 0) { + jcr->JobBytes += ff_pkt->hfsinfo.rsrclength; + } + jcr->JobBytes += 32; /* Finder info */ + } +#endif } jcr->num_files_examined++; jcr->JobFiles++; /* increment number of files seen */ diff --git a/bacula/src/filed/filed.c b/bacula/src/filed/filed.c index 7e0b61effc..37a1d3547c 100644 --- a/bacula/src/filed/filed.c +++ b/bacula/src/filed/filed.c @@ -7,7 +7,7 @@ * */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -62,10 +62,10 @@ static pthread_t server_tid; static void usage() { - fprintf(stderr, _( -"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n" + Pmsg0(-1, _( +"Copyright (C) 2000-2005 Kern Sibbald\n" "\nVersion: " VERSION " (" BDATE ")\n\n" -"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" " -c use as configuration file\n" " -dnn set debug level to nn\n" " -f run in foreground (for debugging)\n" @@ -76,14 +76,14 @@ static void usage() " -u userid\n" " -v verbose user messages\n" " -? print this message.\n" -"\n")); +"\n")); exit(1); } -/********************************************************************* +/********************************************************************* * - * Main Bacula Unix Client Program + * Main Bacula Unix Client Program * */ #if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) @@ -116,7 +116,7 @@ int main (int argc, char *argv[]) case 'd': /* debug level */ debug_level = atoi(optarg); if (debug_level <= 0) { - debug_level = 1; + debug_level = 1; } break; @@ -151,7 +151,7 @@ int main (int argc, char *argv[]) default: usage(); - } + } } argc -= optind; argv += optind; @@ -160,7 +160,7 @@ int main (int argc, char *argv[]) if (configfile != NULL) free(configfile); configfile = bstrdup(*argv); - argc--; + argc--; argv++; } if (argc) { @@ -193,8 +193,8 @@ int main (int argc, char *argv[]) me = (CLIENT *)GetNextRes(R_CLIENT, NULL); UnlockRes(); if (!me) { - Emsg1(M_ABORT, 0, _("No File daemon resource defined in %s\n\ -Without that I don't know who I am :-(\n"), configfile); + Emsg1(M_ABORT, 0, _("No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n"), configfile); } else { my_name_is(0, NULL, me->hdr.name); if (!me->messages) { @@ -239,7 +239,7 @@ Without that I don't know who I am :-(\n"), configfile); server_tid = pthread_self(); if (inetd_request) { - /* Socket is on fd 0 */ + /* Socket is on fd 0 */ struct sockaddr client_addr; int port = -1; socklen_t client_addr_len = sizeof(client_addr); @@ -271,7 +271,7 @@ void terminate_filed(int sig) free(configfile); } if (debug_level > 5) { - print_memory_pool_stats(); + print_memory_pool_stats(); } free_config_resources(); term_msg(); diff --git a/bacula/src/filed/job.c b/bacula/src/filed/job.c index 9733e0b537..418c0e1f91 100644 --- a/bacula/src/filed/job.c +++ b/bacula/src/filed/job.c @@ -7,7 +7,7 @@ * */ /* - Copyright (C) 2000-2004 Kern Sibbald and John Walker + Copyright (C) 2000-2005 Kern Sibbald This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -31,7 +31,7 @@ extern char my_name[]; extern CLIENT *me; /* our client resource */ - + /* Imported functions */ extern int status_cmd(JCR *jcr); extern int qstatus_cmd(JCR *jcr); @@ -58,7 +58,7 @@ static int open_sd_read_session(JCR *jcr); static int send_bootstrap_file(JCR *jcr); static int runbefore_cmd(JCR *jcr); static int runafter_cmd(JCR *jcr); -static int run_cmd(JCR *jcr, char *cmd, const char *name); +static bool run_cmd(JCR *jcr, char *cmd, const char *name); static void set_options(findFOPTS *fo, const char *opts); @@ -70,8 +70,8 @@ struct s_cmds { int monitoraccess; /* specify if monitors have access to this function */ }; -/* - * The following are the recognized commands from the Director. +/* + * The following are the recognized commands from the Director. */ static struct s_cmds cmds[] = { {"backup", backup_cmd, 0}, @@ -146,7 +146,7 @@ static char read_open[] = "read open session = %s %ld %ld %ld %ld %ld %ld\n"; static char read_data[] = "read data %d\n"; static char read_close[] = "read close session %d\n"; -/* +/* * Accept requests from a Director * * NOTE! We are running as a separate thread @@ -165,7 +165,7 @@ static char read_close[] = "read close session %d\n"; */ void *handle_client_request(void *dirp) { - int i; + int i; bool found, quit; JCR *jcr; BSOCK *dir = (BSOCK *)dirp; @@ -208,7 +208,7 @@ void *handle_client_request(void *dirp) } Dmsg1(100, "Executing %s command.\n", cmds[i].cmd); if (!cmds[i].func(jcr)) { /* do command */ - quit = true; /* error or fully terminated, get out */ + quit = true; /* error or fully terminated, get out */ Dmsg0(20, "Quit command loop due to command error or Job done.\n"); } break; @@ -248,8 +248,13 @@ void *handle_client_request(void *dirp) regfree((regex_t *)fo->regex.get(k)); } fo->regex.destroy(); + fo->regexdir.destroy(); + fo->regexfile.destroy(); fo->wild.destroy(); + fo->wilddir.destroy(); + fo->wildfile.destroy(); fo->base.destroy(); + fo->fstype.destroy(); if (fo->reader) { free(fo->reader); } @@ -268,8 +273,13 @@ void *handle_client_request(void *dirp) for (j=0; jopts_list.size(); j++) { findFOPTS *fo = (findFOPTS *)incexe->opts_list.get(j); fo->regex.destroy(); + fo->regexdir.destroy(); + fo->regexfile.destroy(); fo->wild.destroy(); + fo->wilddir.destroy(); + fo->wildfile.destroy(); fo->base.destroy(); + fo->fstype.destroy(); } incexe->opts_list.destroy(); incexe->name_list.destroy(); @@ -286,7 +296,7 @@ void *handle_client_request(void *dirp) } /* - * Hello from Director he must identify himself and provide his + * Hello from Director he must identify himself and provide his * password. */ static int hello_cmd(JCR *jcr) @@ -317,7 +327,7 @@ static int cancel_cmd(JCR *jcr) P(cjcr->mutex); cjcr->store_bsock->timed_out = 1; cjcr->store_bsock->terminated = 1; -/* +/* * #if !defined(HAVE_CYGWIN) && !defined(HAVE_WIN32) */ #if !defined(HAVE_CYGWIN) @@ -350,7 +360,7 @@ static int setdebug_cmd(JCR *jcr) if (sscanf(dir->msg, "setdebug=%d trace=%d", &level, &trace_flag) != 2 || level < 0) { pm_strcpy(jcr->errmsg, dir->msg); bnet_fsend(dir, "2991 Bad setdebug command: %s\n", jcr->errmsg); - return 0; + return 0; } debug_level = level; set_trace(trace_flag); @@ -370,7 +380,7 @@ static int estimate_cmd(JCR *jcr) return 0; } make_estimate(jcr); - bnet_fsend(dir, OKest, jcr->num_files_examined, + bnet_fsend(dir, OKest, jcr->num_files_examined, edit_uint64_with_commas(jcr->JobBytes, ed2)); bnet_sig(dir, BNET_EOD); return 1; @@ -385,7 +395,7 @@ static int job_cmd(JCR *jcr) POOLMEM *sd_auth_key; sd_auth_key = get_memory(dir->msglen); - if (sscanf(dir->msg, jobcmd, &jcr->JobId, jcr->Job, + if (sscanf(dir->msg, jobcmd, &jcr->JobId, jcr->Job, &jcr->VolSessionId, &jcr->VolSessionTime, sd_auth_key) != 5) { pm_strcpy(jcr->errmsg, dir->msg); @@ -402,7 +412,7 @@ static int job_cmd(JCR *jcr) static int runbefore_cmd(JCR *jcr) { - int stat; + bool ok; BSOCK *dir = jcr->dir_bsock; POOLMEM *cmd = get_memory(dir->msglen+1); @@ -417,9 +427,9 @@ static int runbefore_cmd(JCR *jcr) unbash_spaces(cmd); /* Run the command now */ - stat = run_cmd(jcr, cmd, "ClientRunBeforeJob"); + ok = run_cmd(jcr, cmd, "ClientRunBeforeJob"); free_memory(cmd); - if (stat) { + if (ok) { bnet_fsend(dir, OKRunBefore); return 1; } else { @@ -451,32 +461,37 @@ static int runafter_cmd(JCR *jcr) return bnet_fsend(dir, OKRunAfter); } -static int run_cmd(JCR *jcr, char *cmd, const char *name) +static bool run_cmd(JCR *jcr, char *cmd, const char *name) { POOLMEM *ecmd = get_pool_memory(PM_FNAME); int status; BPIPE *bpipe; char line[MAXSTRING]; - + ecmd = edit_job_codes(jcr, ecmd, cmd, ""); bpipe = open_bpipe(ecmd, 0, "r"); free_pool_memory(ecmd); if (bpipe == NULL) { - Jmsg(jcr, M_FATAL, 0, _("%s could not execute\n"), name); - set_jcr_job_status(jcr, JS_FatalError); - return 0; + berrno be; + Jmsg(jcr, M_FATAL, 0, _("%s could not execute. ERR=%s\n"), name, + be.strerror()); + return false; } while (fgets(line, sizeof(line), bpipe->rfd)) { - Jmsg(jcr, M_INFO, 0, _("%s: %s"), name, line); + int len = strlen(line); + if (len > 0 && line[len-1] == '\n') { + line[len-1] = 0; + } + Jmsg(jcr, M_INFO, 0, _("%s: %s\n"), name, line); } status = close_bpipe(bpipe); if (status != 0) { - Jmsg(jcr, M_FATAL, 0, _("%s returned non-zero status=%d\n"), name, - status); - set_jcr_job_status(jcr, JS_FatalError); - return 0; + berrno be; + Jmsg(jcr, M_FATAL, 0, _("%s returned non-zero status=%d. ERR=%s\n"), name, + status, be.strerror(status)); + return false; } - return 1; + return true; } @@ -518,8 +533,8 @@ static void add_fname_to_list(JCR *jcr, char *fname, int list) /* Copy File options */ if (list == INC_LIST) { *q = 0; /* terminate options */ - strcpy(buf, fname); - strcat(buf, " "); + bstrncpy(buf, fname, sizeof(buf)); + bstrncat(buf, " ", sizeof(buf)); optlen = strlen(buf); } else { optlen = 0; @@ -549,8 +564,8 @@ static void add_fname_to_list(JCR *jcr, char *fname, int list) /* Copy File options */ if (list == INC_LIST) { *q = 0; /* terminate options */ - strcpy(buf, fname); - strcat(buf, " "); + bstrncpy(buf, fname, sizeof(buf)); + bstrncat(buf, " ", sizeof(buf)); optlen = strlen(buf); } else { optlen = 0; @@ -575,8 +590,8 @@ static void add_fname_to_list(JCR *jcr, char *fname, int list) } } -/* - * +/* + * * Get list of files/directories to include from Director * */ @@ -594,12 +609,12 @@ static int include_cmd(JCR *jcr) return bnet_fsend(dir, OKinc); } -static bool init_fileset(JCR *jcr) +static bool init_fileset(JCR *jcr) { FF_PKT *ff; findFILESET *fileset; - if (!jcr->ff) { + if (!jcr->ff) { return false; } ff = (FF_PKT *)jcr->ff; @@ -625,8 +640,13 @@ static findFOPTS *start_options(FF_PKT *ff) findFOPTS *fo = (findFOPTS *)malloc(sizeof(findFOPTS)); memset(fo, 0, sizeof(findFOPTS)); fo->regex.init(1, true); + fo->regexdir.init(1, true); + fo->regexfile.init(1, true); fo->wild.init(1, true); + fo->wilddir.init(1, true); + fo->wildfile.init(1, true); fo->base.init(1, true); + fo->fstype.init(1, true); incexe->current_opts = fo; incexe->opts_list.append(fo); } @@ -671,6 +691,7 @@ static void add_file_to_fileset(JCR *jcr, const char *fname, findFILESET *filese } break; case '<': + Dmsg0(100, "Doing < include on client.\n"); p++; /* skip over < */ if ((ffd = fopen(p, "r")) == NULL) { berrno be; @@ -680,6 +701,7 @@ static void add_file_to_fileset(JCR *jcr, const char *fname, findFILESET *filese } while (fgets(buf, sizeof(buf), ffd)) { strip_trailing_junk(buf); + Dmsg1(100, "%s\n", buf); fileset->incexe->name_list.append(bstrdup(buf)); } fclose(ffd); @@ -690,7 +712,7 @@ static void add_file_to_fileset(JCR *jcr, const char *fname, findFILESET *filese } } - + static void add_fileset(JCR *jcr, const char *item) { FF_PKT *ff = (FF_PKT *)jcr->ff; @@ -698,15 +720,35 @@ static void add_fileset(JCR *jcr, const char *item) int state = fileset->state; findFOPTS *current_opts; + /* Get code, optional subcode, and position item past the dividing space */ Dmsg1(100, "%s\n", item); int code = item[0]; - if (item[1] == ' ') { /* If string follows */ - item += 2; /* point to string */ + if (code != '\0') { + ++item; + } + int subcode = ' '; /* A space is always a valid subcode */ + if (item[0] != '\0' && item[0] != ' ') { + subcode = item[0]; + ++item; + } + if (*item == ' ') { + ++item; } + /* Skip all lines we receive after an error */ if (state == state_error) { return; } + + /* + * The switch tests the code for validity. + * The subcode is always good if it is a space, otherwise we must confirm. + * We set state to state_error first assuming the subcode is invalid, + * requiring state to be set in cases below that handle subcodes. + */ + if (subcode != ' ') { + state = state_error; + } switch (code) { case 'I': /* New include */ @@ -738,7 +780,11 @@ static void add_fileset(JCR *jcr, const char *item) int rc; char prbuf[500]; preg = (regex_t *)malloc(sizeof(regex_t)); - rc = regcomp(preg, item, REG_EXTENDED); + if (current_opts->flags & FO_IGNORECASE) { + rc = regcomp(preg, item, REG_EXTENDED|REG_ICASE); + } else { + rc = regcomp(preg, item, REG_EXTENDED); + } if (rc != 0) { regerror(rc, preg, prbuf, sizeof(prbuf)); regfree(preg); @@ -747,20 +793,41 @@ static void add_fileset(JCR *jcr, const char *item) state = state_error; break; } - current_opts->regex.append(preg); state = state_options; + if (subcode == ' ') { + current_opts->regex.append(preg); + } else if (subcode == 'D') { + current_opts->regexdir.append(preg); + } else if (subcode == 'F') { + current_opts->regexfile.append(preg); + } else { + state = state_error; + } break; case 'B': current_opts = start_options(ff); current_opts->base.append(bstrdup(item)); state = state_options; break; + case 'X': + current_opts = start_options(ff); + current_opts->fstype.append(bstrdup(item)); + state = state_options; + break; case 'W': current_opts = start_options(ff); - current_opts->wild.append(bstrdup(item)); state = state_options; + if (subcode == ' ') { + current_opts->wild.append(bstrdup(item)); + } else if (subcode == 'D') { + current_opts->wilddir.append(bstrdup(item)); + } else if (subcode == 'F') { + current_opts->wildfile.append(bstrdup(item)); + } else { + state = state_error; + } break; - case 'O': + case 'O': current_opts = start_options(ff); set_options(current_opts, item); state = state_options; @@ -797,12 +864,27 @@ static bool term_fileset(JCR *jcr) for (k=0; kregex.size(); k++) { Dmsg1(400, "R %s\n", (char *)fo->regex.get(k)); } + for (k=0; kregexdir.size(); k++) { + Dmsg1(400, "RD %s\n", (char *)fo->regexdir.get(k)); + } + for (k=0; kregexfile.size(); k++) { + Dmsg1(400, "RF %s\n", (char *)fo->regexfile.get(k)); + } for (k=0; kwild.size(); k++) { Dmsg1(400, "W %s\n", (char *)fo->wild.get(k)); } + for (k=0; kwilddir.size(); k++) { + Dmsg1(400, "WD %s\n", (char *)fo->wilddir.get(k)); + } + for (k=0; kwildfile.size(); k++) { + Dmsg1(400, "WF %s\n", (char *)fo->wildfile.get(k)); + } for (k=0; kbase.size(); k++) { Dmsg1(400, "B %s\n", (char *)fo->base.get(k)); } + for (k=0; kfstype.size(); k++) { + Dmsg1(400, "X %s\n", (char *)fo->fstype.get(k)); + } if (fo->reader) { Dmsg1(400, "D %s\n", fo->reader); } @@ -822,12 +904,27 @@ static bool term_fileset(JCR *jcr) for (k=0; kregex.size(); k++) { Dmsg1(400, "R %s\n", (char *)fo->regex.get(k)); } + for (k=0; kregexdir.size(); k++) { + Dmsg1(400, "RD %s\n", (char *)fo->regexdir.get(k)); + } + for (k=0; kregexfile.size(); k++) { + Dmsg1(400, "RF %s\n", (char *)fo->regexfile.get(k)); + } for (k=0; kwild.size(); k++) { Dmsg1(400, "W %s\n", (char *)fo->wild.get(k)); } + for (k=0; kwilddir.size(); k++) { + Dmsg1(400, "WD %s\n", (char *)fo->wilddir.get(k)); + } + for (k=0; kwildfile.size(); k++) { + Dmsg1(400, "WF %s\n", (char *)fo->wildfile.get(k)); + } for (k=0; kbase.size(); k++) { Dmsg1(400, "B %s\n", (char *)fo->base.get(k)); } + for (k=0; kfstype.size(); k++) { + Dmsg1(400, "X %s\n", (char *)fo->fstype.get(k)); + } } for (j=0; jname_list.size(); j++) { Dmsg1(400, "F %s\n", (char *)incexe->name_list.get(j)); @@ -861,6 +958,12 @@ static void set_options(findFOPTS *fo, const char *opts) case 'h': /* no recursion */ fo->flags |= FO_NO_RECURSION; break; + case 'H': /* no hard link handling */ + fo->flags |= FO_NO_HARDLINK; + break; + case 'i': + fo->flags |= FO_IGNORECASE; + break; case 'M': /* MD5 */ fo->flags |= FO_MD5; break; @@ -870,6 +973,8 @@ static void set_options(findFOPTS *fo, const char *opts) case 'p': /* use portable data format */ fo->flags |= FO_PORTABLE; break; + case 'R': /* Resource forks and Finder Info */ + fo->flags |= FO_HFSPLUS; case 'r': /* read fifo */ fo->flags |= FO_READFIFO; break; @@ -911,11 +1016,11 @@ static void set_options(findFOPTS *fo, const char *opts) break; } } -} +} /* - * Director is passing his Fileset + * Director is passing his Fileset */ static int fileset_cmd(JCR *jcr) { @@ -972,7 +1077,7 @@ static int bootstrap_cmd(JCR *jcr) bs = fopen(fname, "a+"); /* create file */ if (!bs) { berrno be; - /* + /* * Suck up what he is sending to us so that he will then * read our error message. */ @@ -1005,8 +1110,6 @@ static int level_cmd(JCR *jcr) { BSOCK *dir = jcr->dir_bsock; POOLMEM *level, *buf = NULL; - struct tm tm; - time_t mtime; int mtime_only; level = get_memory(dir->msglen+1); @@ -1017,29 +1120,17 @@ static int level_cmd(JCR *jcr) /* Base backup requested? */ if (strcmp(level, "base") == 0) { jcr->JobLevel = L_BASE; - /* Full backup requested? */ + /* Full backup requested? */ } else if (strcmp(level, "full") == 0) { jcr->JobLevel = L_FULL; - /* - * Backup requested since