10 # Search for a GNU 'tar' binary, placing the result in the precious
11 # variable GNUTAR. The discovered binary is tested to ensure it's really
14 # Also handle --with-gnutar
16 AC_DEFUN([AMANDA_PROG_GNUTAR],
18 AC_REQUIRE([AMANDA_INIT_PROGS])
22 AS_HELP_STRING([--with-gnutar=PROG],
23 [use PROG as GNU 'tar']),
27 /*) GNUTAR="$withval";;
30 *) AC_MSG_ERROR([*** You must supply a full pathname to --with-gnutar]);;
36 if test "x$GNUTAR" = "xno"; then
40 for gnutar_name in gtar gnutar tar; do
41 AC_PATH_PROGS(GNUTAR, $gnutar_name, , $LOCSYSPATH)
42 if test -n "$GNUTAR"; then
43 case `"$GNUTAR" --version 2>&1` in
44 *GNU*tar* | *Free*paxutils* )
49 if test -n "$OLD_GNUTAR"; then
50 AMANDA_MSG_WARN([$GNUTAR is not GNU tar, it will be used.])
53 AMANDA_MSG_WARN([$GNUTAR is not GNU tar, so it will not be used.])
54 # reset the cache for GNUTAR so AC_PATH_PROGS will search again
56 unset ac_cv_path_GNUTAR
64 if test "x$GNUTAR" != "x"; then
66 AC_DEFINE_UNQUOTED(GNUTAR, "$GNUTAR", [Location of the GNU 'tar' binary])
68 AC_ARG_VAR(GNUTAR, [Location of the GNU 'tar' binary])
78 # Search for a 'star' binary, placing the result in the precious
79 # variable STAR. The discovered binary is tested to ensure it's really
82 # Also handle --with-star
84 AC_DEFUN([AMANDA_PROG_STAR],
86 AC_REQUIRE([AMANDA_INIT_PROGS])
90 AS_HELP_STRING([--with-star=PROG],
91 [use PROG as 'star']),
98 *) AC_MSG_ERROR([*** You must supply a full pathname to --with-star]);;
104 if test "x$STAR" = "xno"; then
108 AC_PATH_PROGS(STAR, star, , $LOCSYSPATH)
109 if test -n "$STAR"; then
110 case `"$STAR" --version 2>/dev/null` in
116 if test -n "$OLD_STAR"; then
117 AMANDA_MSG_WARN([$STAR is not star, it will be used.])
120 AMANDA_MSG_WARN([$STAR is not star, so it will not be used.])
121 # reset the cache for STAR so AC_PATH_PROGS will search again
123 unset ac_cv_path_STAR
130 if test "x$STAR" != "x"; then
132 AC_DEFINE_UNQUOTED(STAR, "$STAR", [Location of the 'star' binary])
134 AC_ARG_VAR(STAR, [Location of the 'star' binary])
144 # Use the value given with the option --with-suntar= or the value of the
145 # precious variable SUNTAR to define the location of Sun's version of tar.
146 # Otherwise set the value to /usr/sbin/tar. Value is not checked.
148 # Also handle --with-suntar
150 AC_DEFUN([AMANDA_PROG_SUNTAR],
152 AC_REQUIRE([AMANDA_INIT_PROGS])
156 AS_HELP_STRING([--with-suntar=PROG],
157 [use PROG as 'suntar']),
161 /*) SUNTAR="$withval";;
164 *) AC_MSG_ERROR([*** You must supply a full pathname to --with-suntar]);;
169 if test "x$SUNTAR" == "x"; then
170 SUNTAR="/usr/sbin/tar"
175 if test "x$SUNTAR" = "xno"; then
179 if test "x$SUNTAR" != "x"; then
181 AC_DEFINE_UNQUOTED(SUNTAR, "$SUNTAR", [Location of the 'suntar' binary])
183 AC_ARG_VAR(SUNTAR, [Location of the 'suntar' binary])
189 # AMANDA_PROG_SAMBA_CLIENT
193 # Search for a samba client (smbclient) binary, placing the result in
194 # the variable SAMBA_CLIENT. The discovered binary is tested to determine an
195 # internally significant version number, stored in SAMBA_VERSION. The version
196 # serves only to differentiate versions of Samba which Amanada must treat
197 # differently, and has no relation to the actual Samba version number.
199 # Automake conditional 'WANT_SAMBA' is set if a samba client is discovered.
201 # Also handles --with-smbclient and (deprecated) --with-samba-user
203 AC_DEFUN([AMANDA_PROG_SAMBA_CLIENT],
205 AC_REQUIRE([AMANDA_INIT_PROGS])
207 AC_ARG_WITH(smbclient,
208 AS_HELP_STRING([--with-smbclient=PROG],
209 [use PROG as 'smbclient']),
212 /*) SAMBA_CLIENT="$withval";;
214 n|no) SAMBA_CLIENT=no ;;
215 *) AC_MSG_ERROR([*** You must supply a full pathname to --with-smbclient]);;
220 AC_ARG_WITH(samba-user,
221 AS_HELP_STRING([--with-samba-user],
222 [deprecated; place username in 'amandapass']),
223 [ AC_MSG_ERROR([--with-samba-user is no longer supported; place username in 'amandapass']) ]
226 if test "x$SAMBA_CLIENT" != "xno"; then
227 AC_PATH_PROG(SAMBA_CLIENT,smbclient,,$LOCSYSPATH)
229 if test ! -z "$SAMBA_CLIENT"; then
230 case `"$SAMBA_CLIENT" '\\\\nosuchhost.amanda.org\\notashare' -U nosuchuser -N -Tx /dev/null 2>&1` in
234 *"Connection to nosuchhost.amanda.org failed"*)
238 AMANDA_MSG_WARN([$SAMBA_CLIENT does not seem to be smbclient, so it will not be used.])
242 if test -n "$SAMBA_CLIENT"; then
243 AC_DEFINE_UNQUOTED(SAMBA_CLIENT,"$SAMBA_CLIENT",
244 [Define the location of smbclient for backing up Samba PC clients. ])
245 AC_DEFINE_UNQUOTED(SAMBA_VERSION, $smbversion,
246 [Not the actual samba version, just a number that should be increased whenever we start to rely on a new samba feature. ])
251 AM_CONDITIONAL(WANT_SAMBA, test -n "$SAMBA_CLIENT")
256 # AMANDA_PROG_VDUMP_VRESTORE
260 # Search for 'vdump' and 'vrestore', setting and AC_DEFINE-ing VDUMP and
261 # VRESTORE if they are found.
263 AC_DEFUN([AMANDA_PROG_VDUMP_VRESTORE],
265 AC_REQUIRE([AMANDA_INIT_PROGS])
267 AC_PATH_PROG(VDUMP,vdump,,$SYSLOCPATH)
268 AC_PATH_PROG(VRESTORE,vrestore,,$SYSLOCPATH)
269 if test "$VDUMP" -a "$VRESTORE"; then
270 AC_DEFINE_UNQUOTED(VDUMP,"$VDUMP",[Define the location of the vdump program. ])
271 AC_DEFINE_UNQUOTED(VRESTORE,"$VRESTORE",[Define the location of the vrestore program. ])
277 # AMANDA_PROG_VXDUMP_VXRESTORE
281 # Search for 'vxdump' and 'vxrestore', setting and AC_DEFINE-ing VXDUMP
282 # and VXRESTORE if they are found.
284 # In addition to the standard paths, this macro will search in
287 AC_DEFUN([AMANDA_PROG_VXDUMP_VXRESTORE],
289 AC_REQUIRE([AMANDA_INIT_PROGS])
291 AC_PATH_PROG(VXDUMP,vxdump,,$SYSLOCPATH:/usr/lib/fs/vxfs)
292 AC_PATH_PROG(VXRESTORE,vxrestore,,$SYSLOCPATH:/usr/lib/fs/vxfs)
293 if test "$VXDUMP" -a "$VXRESTORE"; then
294 AC_DEFINE_UNQUOTED(VXDUMP,"$VXDUMP",
295 [Define the location of the vxdump program on HPUX and SINIX hosts or on
296 * other hosts where the Veritas filesystem (vxfs) has been installed. ])
297 AC_DEFINE_UNQUOTED(VXRESTORE,"$VXRESTORE",
298 [Define the location of the vxrestore program on HPUX and SINIX hosts or on
299 * other hosts where the Veritas filesystem (vxfs) has been installed. ])
305 # AMANDA_PROG_XFSDUMP_XFSRESTORE
309 # Search for 'xfsdump' and 'xfsrestore', setting and AC_DEFINE-ing XFSDUMP
310 # and XFSRESTORE if they are found.
312 AC_DEFUN([AMANDA_PROG_XFSDUMP_XFSRESTORE],
314 AC_REQUIRE([AMANDA_INIT_PROGS])
316 AC_PATH_PROGS(XFSDUMP,xfsdump,,$SYSLOCPATH)
317 AC_PATH_PROGS(XFSRESTORE,xfsrestore,,$SYSLOCPATH)
318 if test "$XFSDUMP" -a "$XFSRESTORE"; then
319 AC_DEFINE_UNQUOTED(XFSDUMP,"$XFSDUMP",
320 [Define the location of the xfsdump program on Irix hosts. ])
321 AC_DEFINE_UNQUOTED(XFSRESTORE,"$XFSRESTORE",
322 [Define the location of the xfsrestore program on Irix hosts. ])
323 AMANDA_MSG_WARN([[xfsdump causes the setuid-root rundump program to be enabled. To disable it, just #undef XFSDUMP in config/config.h]])
329 # AMANDA_PROG_DUMP_RESTORE
333 # Search for compatible dump and restore binaries. The exact name of
334 # the binaries we search for depends on the target system. If working
335 # binaries are found, DUMP and RESTORE are defined to their full paths.
337 # DUMP_RETURNS_1 is defined and substituted if the system's 'dump'
338 # returns 1 on success.
340 # HAVE_DUMP_ESTIMATE is defined to the dump flag which enables estimates.
342 # The --with-honor-nodump flag is processed, and the result of the test is
343 # positive, then HAVE_HONOR_NODUMP is defined.
345 AC_DEFUN([AMANDA_PROG_DUMP_RESTORE],
347 AC_REQUIRE([AMANDA_INIT_PROGS])
348 AC_REQUIRE([AMANDA_PROG_GREP])
350 # Set the order of dump programs to look for. Finding the proper file
351 # system dumping program is problematic. Some systems, notably HP-UX
352 # and AIX, have both the backup and dump programs. HP-UX can't use the
353 # the backup program while AIX systems can't use the dump program. So
354 # a variable is set up here to specify the order of dump programs to
355 # search for on the system.
356 DUMP_PROGRAMS="ufsdump dump backup"
361 DUMP_PROGRAMS="dump "$DUMP_PROGRAMS
365 DUMP_PROGRAMS="backup "$DUMP_PROGRAMS
367 AC_DEFINE(AIX_BACKUP,1,
368 [Is DUMP the AIX program 'backup'?])
375 if test -n "$DUMP_RETURNS_1"; then
376 AC_DEFINE(DUMP_RETURNS_1,1,
377 [Define this if this system's dump exits with 1 as a success code. ])
380 AC_PATH_PROGS(DUMP,$DUMP_PROGRAMS,,$SYSLOCPATH)
381 AC_PATH_PROGS(RESTORE,ufsrestore restore,,$SYSLOCPATH)
383 # newer versions of GNU tar include a program named 'backup' which
384 # does *not* implement the expected 'dump' interface. Detect that here
385 # and pretend we never saw it.
386 if test -n "$DUMP"; then
387 if test "`basename $DUMP`" = "backup"; then
388 backup_gnutar=`$DUMP --version | $GREP "GNU tar"`
389 if test $? -eq 0; then
395 if test "$DUMP" -a "$RESTORE"; then
396 AC_DEFINE_UNQUOTED(DUMP,"$DUMP",
397 [Define the location of the ufsdump, backup, or dump program. ])
398 AC_DEFINE_UNQUOTED(RESTORE,"$RESTORE",
399 [Define the location of the ufsrestore or restore program. ])
401 # check for an estimate flag
402 if test -x $DUMP; then
404 [whether $DUMP supports -E or -S for estimates],
405 amanda_cv_dump_estimate,
409 AC_TRY_COMMAND($DUMP 9Ef /dev/null /dev/null/invalid/fs 2>&1
412 | $GREP -v Label >conftest.d-E 2>&1)
413 cat conftest.d-E >&AS_MESSAGE_LOG_FD()
414 AC_TRY_COMMAND($DUMP 9Sf /dev/null /dev/null/invalid/fs 2>&1
417 | $GREP -v Label >conftest.d-S 2>&1)
418 cat conftest.d-S >&AS_MESSAGE_LOG_FD()
419 AC_TRY_COMMAND($DUMP 9f /dev/null /dev/null/invalid/fs 2>&1
422 | $GREP -v Label >conftest.d 2>&1)
423 cat conftest.d >&AS_MESSAGE_LOG_FD()
424 if AC_TRY_COMMAND(cmp conftest.d-E conftest.d 1>&2); then
425 amanda_cv_dump_estimate=E
426 elif AC_TRY_COMMAND(cmp conftest.d-S conftest.d 1>&2); then
427 amanda_cv_dump_estimate=S
429 amanda_cv_dump_estimate=no
431 rm -f conftest.d conftest.d-E conftest.d-S
433 *) amanda_cv_dump_estimate=no
438 AMANDA_MSG_WARN([$DUMP is not executable, cannot run -E/-S test])
439 amanda_cv_dump_estimate=no
441 if test "x$amanda_cv_dump_estimate" != xno; then
442 AC_DEFINE_UNQUOTED(HAVE_DUMP_ESTIMATE, "$amanda_cv_dump_estimate",
443 [Define to the string that enables dump estimates. ])
446 AC_ARG_WITH(dump-honor-nodump,
447 AS_HELP_STRING([--with-dump-honor-nodump],
448 [if dump supports -h, use it for level0s too]),
450 if test -x $DUMP; then
452 [whether $DUMP supports -h (honor nodump flag)],
453 amanda_cv_honor_nodump,
457 AC_TRY_COMMAND($DUMP 9hf 0 /dev/null /dev/null/invalid/fs 2>&1
460 | $GREP -v Label >conftest.d-h 2>&1)
461 cat conftest.d-h >&AS_MESSAGE_LOG_FD()
462 AC_TRY_COMMAND($DUMP 9f /dev/null /dev/null/invalid/fs 2>&1
465 | $GREP -v Label >conftest.d 2>&1)
466 cat conftest.d >&AS_MESSAGE_LOG_FD()
467 if AC_TRY_COMMAND(diff conftest.d-h conftest.d 1>&2); then
468 amanda_cv_honor_nodump=yes
470 amanda_cv_honor_nodump=no
472 rm -f conftest.d conftest.d-h
474 *) amanda_cv_honor_nodump=no
479 AMANDA_MSG_WARN([$DUMP is not executable, cannot run -h test])
480 amanda_cv_honor_nodump=no
482 if test "x$amanda_cv_honor_nodump" = xyes; then
483 AC_DEFINE(HAVE_HONOR_NODUMP,1,
484 [Define this if dump accepts -h for honoring nodump. ])
490 AC_SUBST(DUMP_RETURNS_1)
495 # AMANDA_CHECK_USE_RUNDUMP
499 # Decide if the 'rundump' setuid-root wrapper should be used to invoke
500 # dump. If so, USE_RUNDUMP is defined and substituted.
502 AC_DEFUN([AMANDA_CHECK_USE_RUNDUMP], [
505 # some systems require rundump unconditionally
507 *-ultrix*) USE_RUNDUMP=yes ;;
508 *-dg-*) USE_RUNDUMP=yes ;;
512 AS_HELP_STRING([--with-rundump], [use rundump, a setuid-root wrapper, to invoke dump]), [
514 n | no) USE_RUNDUMP=no ;;
515 y | ye | yes) USE_RUNDUMP=yes ;;
516 *) AC_MSG_ERROR([You must not supply an argument to --with-rundump option.]);;
520 if test x"$USE_RUNDUMP" = x"yes"; then
522 AC_DEFINE(USE_RUNDUMP,1,
523 [Define to invoke rundump (setuid-root) instead of DUMP program directly. ])
528 AC_SUBST(USE_RUNDUMP)