From 288b05ec10f2df5db64cdda2a8280ff847fad324 Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Wed, 30 Dec 2015 16:56:36 +0800 Subject: [PATCH] - update to official version 6.2 source plus add bug fixes for the internal NFSv3 server. --- .gitignore | 1 + ...debug-log-trace-to-NFSv3-readdirplus.patch | 25 + ...uto-generated-macros-in-aclinlude_m4.patch | 805 ++---------------- ...d-return-on-non-existent-mount-point.patch | 32 + ...v3-lookup-dir-attribute-return-value.patch | 76 ++ ...eaddir-post_op_dir-attributes-return.patch | 53 ++ ..._or_rmdir3-post_op-attributes-return.patch | 62 ++ am-utils-6.2.0-1.git.bb13dea6-ylwrap.patch | 36 - am-utils.spec | 45 +- sources | 2 +- 10 files changed, 365 insertions(+), 772 deletions(-) create mode 100644 am-utils-6.2-add-debug-log-trace-to-NFSv3-readdirplus.patch rename am-utils-6.2.0-1.git.bb13dea6-dont-include-auto-generated-macros-in-aclinlude_m4.patch => am-utils-6.2-dont-include-auto-generated-macros-in-aclinlude_m4.patch (91%) create mode 100644 am-utils-6.2-fix-NFSv3-access-method-return-on-non-existent-mount-point.patch create mode 100644 am-utils-6.2-fix-NFSv3-lookup-dir-attribute-return-value.patch create mode 100644 am-utils-6.2-fix-NFSv3-readdir-post_op_dir-attributes-return.patch create mode 100644 am-utils-6.2-fix-NFSv3-unlink3_or_rmdir3-post_op-attributes-return.patch delete mode 100644 am-utils-6.2.0-1.git.bb13dea6-ylwrap.patch diff --git a/.gitignore b/.gitignore index 9ee960c..6d683a2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ am-utils-6.1.5.tar.gz *.log *.rpm /am-utils-6.2.0-1.git.bb13dea6.tar.gz +/am-utils-6.2.tar.gz diff --git a/am-utils-6.2-add-debug-log-trace-to-NFSv3-readdirplus.patch b/am-utils-6.2-add-debug-log-trace-to-NFSv3-readdirplus.patch new file mode 100644 index 0000000..41e23e3 --- /dev/null +++ b/am-utils-6.2-add-debug-log-trace-to-NFSv3-readdirplus.patch @@ -0,0 +1,25 @@ +am-utils-6.2 - add debug log trace to NFSv3 readdirplus + +From: Ian Kent + +Add log trace print to NFSv3 readdirplus for debuging purposes. + +Signed-off-by: Ian Kent +--- + amd/nfs_subr.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/amd/nfs_subr.c b/amd/nfs_subr.c +index 30effba..ef07a4a 100644 +--- a/amd/nfs_subr.c ++++ b/amd/nfs_subr.c +@@ -1642,6 +1642,9 @@ am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *argp, struct svc_req *rqstp) + am_node *mp; + int retry; + ++ if (amuDebug(D_TRACE)) ++ plog(XLOG_DEBUG, "readdirplus_3:"); ++ + mp = fh3_to_mp3(dir, &retry, VLOOK_CREATE); + if (mp == NULL) { + if (retry < 0) { diff --git a/am-utils-6.2.0-1.git.bb13dea6-dont-include-auto-generated-macros-in-aclinlude_m4.patch b/am-utils-6.2-dont-include-auto-generated-macros-in-aclinlude_m4.patch similarity index 91% rename from am-utils-6.2.0-1.git.bb13dea6-dont-include-auto-generated-macros-in-aclinlude_m4.patch rename to am-utils-6.2-dont-include-auto-generated-macros-in-aclinlude_m4.patch index 1c68146..fef63f9 100644 --- a/am-utils-6.2.0-1.git.bb13dea6-dont-include-auto-generated-macros-in-aclinlude_m4.patch +++ b/am-utils-6.2-dont-include-auto-generated-macros-in-aclinlude_m4.patch @@ -1,35 +1,33 @@ -am-utils-6.2.0-1.git.bb13dea6 - dont include auto generated macros in aclinluder.m4 +Move libtool macro functions from m4/macros to m4 and delete -From: Ian Kent +From: Christos Zoulas -am-utils-6.2 - dont include auto generated macros in aclinlude.m4 - -libtool-2.4.4 causes the am-utils build to not produce a working install. - -To fix this (for future libtool rebases) put system macros into -$(top_srcdir)/m4 and maintainer-defined macros into $(top_srcdir)/m4/macros. - -Then, bootstrap script generates acinclude.m4 only from maintainer-defined -macros. - -Signed-off-by: Ian Kent +the repository copies. Makes am-utils work with libtool-2.4.4 +and fixes the serial number warnings (raven at themaw.net) --- - Makefile.am | 2 - configure.ac | 2 - m4/macros/libtool.m4 | 7982 ---------------------------------------------- - m4/macros/ltoptions.m4 | 384 -- - m4/macros/ltsugar.m4 | 123 - - m4/macros/ltversion.m4 | 23 - m4/macros/lt~obsolete.m4 | 98 - - 7 files changed, 2 insertions(+), 8612 deletions(-) + ChangeLog | 6 + Makefile.am | 2 + configure.ac | 2 + m4/macros/libtool.m4 | 7997 -------------------------------------------------- + 4 files changed, 8 insertions(+), 7999 deletions(-) delete mode 100644 m4/macros/libtool.m4 - delete mode 100644 m4/macros/ltoptions.m4 - delete mode 100644 m4/macros/ltsugar.m4 - delete mode 100644 m4/macros/ltversion.m4 - delete mode 100644 m4/macros/lt~obsolete.m4 +diff --git a/ChangeLog b/ChangeLog +index d996f8e..fd05087 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2015-01-17 Christos Zoulas ++ ++ * Move libtool macro functions from m4/macros to m4 and delete ++ the repository copies. Makes am-utils work with libtool-2.4.4 ++ and fixes the serial number warnings (raven at themaw.net) ++ + 2014-10-28 Christos Zoulas + + ******************************************************************* diff --git a/Makefile.am b/Makefile.am -index 01700f8..f9345c1 100644 +index 7e7082d..bae4615 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,7 +6,7 @@ @@ -56,10 +54,10 @@ index 3d1bb00..ce61925 100644 /* diff --git a/m4/macros/libtool.m4 b/m4/macros/libtool.m4 deleted file mode 100644 -index dfb036f..0000000 +index d7c043f..0000000 --- a/m4/macros/libtool.m4 +++ /dev/null -@@ -1,7982 +0,0 @@ +@@ -1,7997 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, @@ -996,7 +994,7 @@ index dfb036f..0000000 -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` --$RM -r conftest* +-$RM conftest* -])# _LT_COMPILER_BOILERPLATE - - @@ -1374,7 +1372,7 @@ index dfb036f..0000000 - rm -rf conftest* - ;; - --x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext @@ -1386,9 +1384,19 @@ index dfb036f..0000000 - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) -- LD="${LD-ld} -m elf_i386" +- case `/usr/bin/file conftest.o` in +- *x86-64*) +- LD="${LD-ld} -m elf32_x86_64" +- ;; +- *) +- LD="${LD-ld} -m elf_i386" +- ;; +- esac - ;; -- ppc64-*linux*|powerpc64-*linux*) +- powerpc64le-*) +- LD="${LD-ld} -m elf32lppclinux" +- ;; +- powerpc64-*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) @@ -1407,7 +1415,10 @@ index dfb036f..0000000 - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) +- powerpcle-*) +- LD="${LD-ld} -m elf64lppc" +- ;; +- powerpc-*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) @@ -1592,7 +1603,7 @@ index dfb036f..0000000 - $2=yes - fi - fi -- $RM -r conftest* +- $RM conftest* -]) - -if test x"[$]$2" = xyes; then @@ -1750,7 +1761,8 @@ index dfb036f..0000000 - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` -- if test -n "$lt_cv_sys_max_cmd_len"; then +- if test -n "$lt_cv_sys_max_cmd_len" && \ +- test undefined != "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else @@ -2067,14 +2079,14 @@ index dfb036f..0000000 - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD -- $RM -r conftest* +- $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest -- $RM -r conftest* +- $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) @@ -2094,7 +2106,7 @@ index dfb036f..0000000 - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes -- $RM -r conftest* +- $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no @@ -2574,17 +2586,6 @@ index dfb036f..0000000 - esac - ;; - --gnu*) -- version_type=linux # correct to gnu/linux during the next big refactor -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no @@ -2701,7 +2702,7 @@ index dfb036f..0000000 - ;; - -# This must be glibc/ELF. --linux* | k*bsd*-gnu | kopensolaris*-gnu) +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no @@ -2746,6 +2747,18 @@ index dfb036f..0000000 - dynamic_linker='GNU/Linux ld.so' - ;; - +-netbsdelf*-gnu) +- version_type=linux +- need_lib_prefix=no +- need_version=no +- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' +- soname_spec='${libname}${release}${shared_ext}$major' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- hardcode_into_libs=yes +- dynamic_linker='NetBSD ld.elf_so' +- ;; +- -netbsd*) - version_type=sunos - need_lib_prefix=no @@ -3305,10 +3318,6 @@ index dfb036f..0000000 - fi - ;; - --gnu*) -- lt_cv_deplibs_check_method=pass_all -- ;; -- -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; @@ -3347,11 +3356,11 @@ index dfb036f..0000000 - ;; - -# This must be glibc/ELF. --linux* | k*bsd*-gnu | kopensolaris*-gnu) +-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - --netbsd*) +-netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else @@ -3544,7 +3553,7 @@ index dfb036f..0000000 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi -- rm -rf conftest*]) +- rm -f conftest*]) -])# LT_PATH_NM - -# Old names: @@ -3608,7 +3617,7 @@ index dfb036f..0000000 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi -- rm -rf conftest*]) +- rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi @@ -3784,7 +3793,7 @@ index dfb036f..0000000 - # Check to see that the pipe works correctly. - pipe_works=no - -- rm -rf conftest* +- rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { @@ -4099,7 +4108,7 @@ index dfb036f..0000000 - ;; - esac - ;; -- linux* | k*bsd*-gnu | kopensolaris*-gnu) +- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # KAI C++ Compiler @@ -4163,7 +4172,7 @@ index dfb036f..0000000 - ;; - esac - ;; -- netbsd*) +- netbsd* | netbsdelf*-gnu) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4398,7 +4407,7 @@ index dfb036f..0000000 - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - -- linux* | k*bsd*-gnu | kopensolaris*-gnu) +- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) @@ -4640,6 +4649,9 @@ index dfb036f..0000000 - ;; - esac - ;; +- linux* | k*bsd*-gnu | gnu*) +- _LT_TAGVAR(link_all_deplibs, $1)=no +- ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; @@ -4702,6 +4714,9 @@ index dfb036f..0000000 - openbsd*) - with_gnu_ld=no - ;; +- linux* | k*bsd*-gnu | gnu*) +- _LT_TAGVAR(link_all_deplibs, $1)=no +- ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes @@ -4923,7 +4938,7 @@ index dfb036f..0000000 - fi - ;; - -- netbsd*) +- netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= @@ -5100,6 +5115,7 @@ index dfb036f..0000000 - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi +- _LT_TAGVAR(link_all_deplibs, $1)=no - else - # not using gcc - if test "$host_cpu" = ia64; then @@ -5404,7 +5420,7 @@ index dfb036f..0000000 - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - -- netbsd*) +- netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else @@ -5676,7 +5692,7 @@ index dfb036f..0000000 - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), -- [$RM -r conftest* +- [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then @@ -5703,7 +5719,7 @@ index dfb036f..0000000 - else - cat conftest.err 1>&5 - fi -- $RM -r conftest* +- $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; @@ -6284,9 +6300,6 @@ index dfb036f..0000000 - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - -- gnu*) -- ;; -- - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -6448,7 +6461,7 @@ index dfb036f..0000000 - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; - -- linux* | k*bsd*-gnu | kopensolaris*-gnu) +- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler @@ -8042,655 +8055,3 @@ index dfb036f..0000000 -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS -diff --git a/m4/macros/ltoptions.m4 b/m4/macros/ltoptions.m4 -deleted file mode 100644 -index 5d9acd8..0000000 ---- a/m4/macros/ltoptions.m4 -+++ /dev/null -@@ -1,384 +0,0 @@ --# Helper functions for option handling. -*- Autoconf -*- --# --# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, --# Inc. --# Written by Gary V. Vaughan, 2004 --# --# This file is free software; the Free Software Foundation gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. -- --# serial 7 ltoptions.m4 -- --# This is to help aclocal find these macros, as it can't see m4_define. --AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) -- -- --# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) --# ------------------------------------------ --m4_define([_LT_MANGLE_OPTION], --[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) -- -- --# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) --# --------------------------------------- --# Set option OPTION-NAME for macro MACRO-NAME, and if there is a --# matching handler defined, dispatch to it. Other OPTION-NAMEs are --# saved as a flag. --m4_define([_LT_SET_OPTION], --[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl --m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), -- _LT_MANGLE_DEFUN([$1], [$2]), -- [m4_warning([Unknown $1 option `$2'])])[]dnl --]) -- -- --# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) --# ------------------------------------------------------------ --# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. --m4_define([_LT_IF_OPTION], --[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) -- -- --# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) --# ------------------------------------------------------- --# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME --# are set. --m4_define([_LT_UNLESS_OPTIONS], --[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), -- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), -- [m4_define([$0_found])])])[]dnl --m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 --])[]dnl --]) -- -- --# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) --# ---------------------------------------- --# OPTION-LIST is a space-separated list of Libtool options associated --# with MACRO-NAME. If any OPTION has a matching handler declared with --# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about --# the unknown option and exit. --m4_defun([_LT_SET_OPTIONS], --[# Set options --m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), -- [_LT_SET_OPTION([$1], _LT_Option)]) -- --m4_if([$1],[LT_INIT],[ -- dnl -- dnl Simply set some default values (i.e off) if boolean options were not -- dnl specified: -- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no -- ]) -- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no -- ]) -- dnl -- dnl If no reference was made to various pairs of opposing options, then -- dnl we run the default mode handler for the pair. For example, if neither -- dnl `shared' nor `disable-shared' was passed, we enable building of shared -- dnl archives by default: -- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) -- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) -- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) -- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], -- [_LT_ENABLE_FAST_INSTALL]) -- ]) --])# _LT_SET_OPTIONS -- -- --## --------------------------------- ## --## Macros to handle LT_INIT options. ## --## --------------------------------- ## -- --# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) --# ----------------------------------------- --m4_define([_LT_MANGLE_DEFUN], --[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) -- -- --# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) --# ----------------------------------------------- --m4_define([LT_OPTION_DEFINE], --[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl --])# LT_OPTION_DEFINE -- -- --# dlopen --# ------ --LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes --]) -- --AU_DEFUN([AC_LIBTOOL_DLOPEN], --[_LT_SET_OPTION([LT_INIT], [dlopen]) --AC_DIAGNOSE([obsolete], --[$0: Remove this warning and the call to _LT_SET_OPTION when you --put the `dlopen' option into LT_INIT's first parameter.]) --]) -- --dnl aclocal-1.4 backwards compatibility: --dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) -- -- --# win32-dll --# --------- --# Declare package support for building win32 dll's. --LT_OPTION_DEFINE([LT_INIT], [win32-dll], --[enable_win32_dll=yes -- --case $host in --*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) -- AC_CHECK_TOOL(AS, as, false) -- AC_CHECK_TOOL(DLLTOOL, dlltool, false) -- AC_CHECK_TOOL(OBJDUMP, objdump, false) -- ;; --esac -- --test -z "$AS" && AS=as --_LT_DECL([], [AS], [1], [Assembler program])dnl -- --test -z "$DLLTOOL" && DLLTOOL=dlltool --_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl -- --test -z "$OBJDUMP" && OBJDUMP=objdump --_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl --])# win32-dll -- --AU_DEFUN([AC_LIBTOOL_WIN32_DLL], --[AC_REQUIRE([AC_CANONICAL_HOST])dnl --_LT_SET_OPTION([LT_INIT], [win32-dll]) --AC_DIAGNOSE([obsolete], --[$0: Remove this warning and the call to _LT_SET_OPTION when you --put the `win32-dll' option into LT_INIT's first parameter.]) --]) -- --dnl aclocal-1.4 backwards compatibility: --dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) -- -- --# _LT_ENABLE_SHARED([DEFAULT]) --# ---------------------------- --# implement the --enable-shared flag, and supports the `shared' and --# `disable-shared' LT_INIT options. --# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. --m4_define([_LT_ENABLE_SHARED], --[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl --AC_ARG_ENABLE([shared], -- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], -- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], -- [p=${PACKAGE-default} -- case $enableval in -- yes) enable_shared=yes ;; -- no) enable_shared=no ;; -- *) -- enable_shared=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_shared=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) -- -- _LT_DECL([build_libtool_libs], [enable_shared], [0], -- [Whether or not to build shared libraries]) --])# _LT_ENABLE_SHARED -- --LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) --LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) -- --# Old names: --AC_DEFUN([AC_ENABLE_SHARED], --[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) --]) -- --AC_DEFUN([AC_DISABLE_SHARED], --[_LT_SET_OPTION([LT_INIT], [disable-shared]) --]) -- --AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) --AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -- --dnl aclocal-1.4 backwards compatibility: --dnl AC_DEFUN([AM_ENABLE_SHARED], []) --dnl AC_DEFUN([AM_DISABLE_SHARED], []) -- -- -- --# _LT_ENABLE_STATIC([DEFAULT]) --# ---------------------------- --# implement the --enable-static flag, and support the `static' and --# `disable-static' LT_INIT options. --# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. --m4_define([_LT_ENABLE_STATIC], --[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl --AC_ARG_ENABLE([static], -- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], -- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], -- [p=${PACKAGE-default} -- case $enableval in -- yes) enable_static=yes ;; -- no) enable_static=no ;; -- *) -- enable_static=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_static=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [enable_static=]_LT_ENABLE_STATIC_DEFAULT) -- -- _LT_DECL([build_old_libs], [enable_static], [0], -- [Whether or not to build static libraries]) --])# _LT_ENABLE_STATIC -- --LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) --LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) -- --# Old names: --AC_DEFUN([AC_ENABLE_STATIC], --[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) --]) -- --AC_DEFUN([AC_DISABLE_STATIC], --[_LT_SET_OPTION([LT_INIT], [disable-static]) --]) -- --AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) --AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -- --dnl aclocal-1.4 backwards compatibility: --dnl AC_DEFUN([AM_ENABLE_STATIC], []) --dnl AC_DEFUN([AM_DISABLE_STATIC], []) -- -- -- --# _LT_ENABLE_FAST_INSTALL([DEFAULT]) --# ---------------------------------- --# implement the --enable-fast-install flag, and support the `fast-install' --# and `disable-fast-install' LT_INIT options. --# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. --m4_define([_LT_ENABLE_FAST_INSTALL], --[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl --AC_ARG_ENABLE([fast-install], -- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], -- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], -- [p=${PACKAGE-default} -- case $enableval in -- yes) enable_fast_install=yes ;; -- no) enable_fast_install=no ;; -- *) -- enable_fast_install=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_fast_install=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) -- --_LT_DECL([fast_install], [enable_fast_install], [0], -- [Whether or not to optimize for fast installation])dnl --])# _LT_ENABLE_FAST_INSTALL -- --LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) --LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) -- --# Old names: --AU_DEFUN([AC_ENABLE_FAST_INSTALL], --[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) --AC_DIAGNOSE([obsolete], --[$0: Remove this warning and the call to _LT_SET_OPTION when you put --the `fast-install' option into LT_INIT's first parameter.]) --]) -- --AU_DEFUN([AC_DISABLE_FAST_INSTALL], --[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) --AC_DIAGNOSE([obsolete], --[$0: Remove this warning and the call to _LT_SET_OPTION when you put --the `disable-fast-install' option into LT_INIT's first parameter.]) --]) -- --dnl aclocal-1.4 backwards compatibility: --dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) --dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) -- -- --# _LT_WITH_PIC([MODE]) --# -------------------- --# implement the --with-pic flag, and support the `pic-only' and `no-pic' --# LT_INIT options. --# MODE is either `yes' or `no'. If omitted, it defaults to `both'. --m4_define([_LT_WITH_PIC], --[AC_ARG_WITH([pic], -- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], -- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], -- [lt_p=${PACKAGE-default} -- case $withval in -- yes|no) pic_mode=$withval ;; -- *) -- pic_mode=default -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for lt_pkg in $withval; do -- IFS="$lt_save_ifs" -- if test "X$lt_pkg" = "X$lt_p"; then -- pic_mode=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [pic_mode=default]) -- --test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) -- --_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl --])# _LT_WITH_PIC -- --LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) --LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) -- --# Old name: --AU_DEFUN([AC_LIBTOOL_PICMODE], --[_LT_SET_OPTION([LT_INIT], [pic-only]) --AC_DIAGNOSE([obsolete], --[$0: Remove this warning and the call to _LT_SET_OPTION when you --put the `pic-only' option into LT_INIT's first parameter.]) --]) -- --dnl aclocal-1.4 backwards compatibility: --dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) -- --## ----------------- ## --## LTDL_INIT Options ## --## ----------------- ## -- --m4_define([_LTDL_MODE], []) --LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], -- [m4_define([_LTDL_MODE], [nonrecursive])]) --LT_OPTION_DEFINE([LTDL_INIT], [recursive], -- [m4_define([_LTDL_MODE], [recursive])]) --LT_OPTION_DEFINE([LTDL_INIT], [subproject], -- [m4_define([_LTDL_MODE], [subproject])]) -- --m4_define([_LTDL_TYPE], []) --LT_OPTION_DEFINE([LTDL_INIT], [installable], -- [m4_define([_LTDL_TYPE], [installable])]) --LT_OPTION_DEFINE([LTDL_INIT], [convenience], -- [m4_define([_LTDL_TYPE], [convenience])]) -diff --git a/m4/macros/ltsugar.m4 b/m4/macros/ltsugar.m4 -deleted file mode 100644 -index 9000a05..0000000 ---- a/m4/macros/ltsugar.m4 -+++ /dev/null -@@ -1,123 +0,0 @@ --# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- --# --# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. --# Written by Gary V. Vaughan, 2004 --# --# This file is free software; the Free Software Foundation gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. -- --# serial 6 ltsugar.m4 -- --# This is to help aclocal find these macros, as it can't see m4_define. --AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) -- -- --# lt_join(SEP, ARG1, [ARG2...]) --# ----------------------------- --# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their --# associated separator. --# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier --# versions in m4sugar had bugs. --m4_define([lt_join], --[m4_if([$#], [1], [], -- [$#], [2], [[$2]], -- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) --m4_define([_lt_join], --[m4_if([$#$2], [2], [], -- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) -- -- --# lt_car(LIST) --# lt_cdr(LIST) --# ------------ --# Manipulate m4 lists. --# These macros are necessary as long as will still need to support --# Autoconf-2.59 which quotes differently. --m4_define([lt_car], [[$1]]) --m4_define([lt_cdr], --[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], -- [$#], 1, [], -- [m4_dquote(m4_shift($@))])]) --m4_define([lt_unquote], $1) -- -- --# lt_append(MACRO-NAME, STRING, [SEPARATOR]) --# ------------------------------------------ --# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. --# Note that neither SEPARATOR nor STRING are expanded; they are appended --# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). --# No SEPARATOR is output if MACRO-NAME was previously undefined (different --# than defined and empty). --# --# This macro is needed until we can rely on Autoconf 2.62, since earlier --# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. --m4_define([lt_append], --[m4_define([$1], -- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) -- -- -- --# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) --# ---------------------------------------------------------- --# Produce a SEP delimited list of all paired combinations of elements of --# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list --# has the form PREFIXmINFIXSUFFIXn. --# Needed until we can rely on m4_combine added in Autoconf 2.62. --m4_define([lt_combine], --[m4_if(m4_eval([$# > 3]), [1], -- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl --[[m4_foreach([_Lt_prefix], [$2], -- [m4_foreach([_Lt_suffix], -- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, -- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) -- -- --# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) --# ----------------------------------------------------------------------- --# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited --# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. --m4_define([lt_if_append_uniq], --[m4_ifdef([$1], -- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], -- [lt_append([$1], [$2], [$3])$4], -- [$5])], -- [lt_append([$1], [$2], [$3])$4])]) -- -- --# lt_dict_add(DICT, KEY, VALUE) --# ----------------------------- --m4_define([lt_dict_add], --[m4_define([$1($2)], [$3])]) -- -- --# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) --# -------------------------------------------- --m4_define([lt_dict_add_subkey], --[m4_define([$1($2:$3)], [$4])]) -- -- --# lt_dict_fetch(DICT, KEY, [SUBKEY]) --# ---------------------------------- --m4_define([lt_dict_fetch], --[m4_ifval([$3], -- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), -- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) -- -- --# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) --# ----------------------------------------------------------------- --m4_define([lt_if_dict_fetch], --[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], -- [$5], -- [$6])]) -- -- --# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) --# -------------------------------------------------------------- --m4_define([lt_dict_filter], --[m4_if([$5], [], [], -- [lt_join(m4_quote(m4_default([$4], [[, ]])), -- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), -- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl --]) -diff --git a/m4/macros/ltversion.m4 b/m4/macros/ltversion.m4 -deleted file mode 100644 -index 07a8602..0000000 ---- a/m4/macros/ltversion.m4 -+++ /dev/null -@@ -1,23 +0,0 @@ --# ltversion.m4 -- version numbers -*- Autoconf -*- --# --# Copyright (C) 2004 Free Software Foundation, Inc. --# Written by Scott James Remnant, 2004 --# --# This file is free software; the Free Software Foundation gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. -- --# @configure_input@ -- --# serial 3337 ltversion.m4 --# This file is part of GNU Libtool -- --m4_define([LT_PACKAGE_VERSION], [2.4.2]) --m4_define([LT_PACKAGE_REVISION], [1.3337]) -- --AC_DEFUN([LTVERSION_VERSION], --[macro_version='2.4.2' --macro_revision='1.3337' --_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) --_LT_DECL(, macro_revision, 0) --]) -diff --git a/m4/macros/lt~obsolete.m4 b/m4/macros/lt~obsolete.m4 -deleted file mode 100644 -index c573da9..0000000 ---- a/m4/macros/lt~obsolete.m4 -+++ /dev/null -@@ -1,98 +0,0 @@ --# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- --# --# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. --# Written by Scott James Remnant, 2004. --# --# This file is free software; the Free Software Foundation gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. -- --# serial 5 lt~obsolete.m4 -- --# These exist entirely to fool aclocal when bootstrapping libtool. --# --# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) --# which have later been changed to m4_define as they aren't part of the --# exported API, or moved to Autoconf or Automake where they belong. --# --# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN --# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us --# using a macro with the same name in our local m4/libtool.m4 it'll --# pull the old libtool.m4 in (it doesn't see our shiny new m4_define --# and doesn't know about Autoconf macros at all.) --# --# So we provide this file, which has a silly filename so it's always --# included after everything else. This provides aclocal with the --# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything --# because those macros already exist, or will be overwritten later. --# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. --# --# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. --# Yes, that means every name once taken will need to remain here until --# we give up compatibility with versions before 1.7, at which point --# we need to keep only those names which we still refer to. -- --# This is to help aclocal find these macros, as it can't see m4_define. --AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) -- --m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) --m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) --m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) --m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) --m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) --m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) --m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) --m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) --m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) --m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) --m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) --m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) --m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) --m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) --m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) --m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) --m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) --m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) --m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) --m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) --m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) --m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) --m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) --m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) --m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) --m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) --m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) --m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) --m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) --m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) --m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) --m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) --m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) --m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) --m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) --m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) --m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) --m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) --m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) --m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) --m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) --m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) --m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) --m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) --m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) --m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) --m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) --m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) --m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) --m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) --m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) --m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) --m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) --m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) --m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) --m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) --m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) --m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) --m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) --m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) --m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/am-utils-6.2-fix-NFSv3-access-method-return-on-non-existent-mount-point.patch b/am-utils-6.2-fix-NFSv3-access-method-return-on-non-existent-mount-point.patch new file mode 100644 index 0000000..85dcf79 --- /dev/null +++ b/am-utils-6.2-fix-NFSv3-access-method-return-on-non-existent-mount-point.patch @@ -0,0 +1,32 @@ +am-utils-6.2 - fix NFSv3 access method return on non-existent mount point + +From: Ian Kent + +When the NFS v3 access method is called and there is no mount point +corresponding to the path ESTALE needs to be returned the kernel NFS +client so an NFS lookup will be done and the mount point re-mounted. + +If there is no map entry to mount the NFS v3 lookup method can then +return the failure. + +Signed-off-by: Ian Kent +--- + amd/nfs_subr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/amd/nfs_subr.c b/amd/nfs_subr.c +index ef07a4a..85cf98c 100644 +--- a/amd/nfs_subr.c ++++ b/amd/nfs_subr.c +@@ -1239,9 +1239,9 @@ am_nfs3_access_3_svc(am_ACCESS3args *argp, struct svc_req *rqstp) + if (!mp) { + post_op_obj = &result.res_u.fail.obj_attributes; + post_op_obj->attributes_follow = 0; +- result.status = nfs_error(ENOENT); ++ result.status = nfs_error(ESTALE); + if (amuDebug(D_TRACE)) +- plog(XLOG_DEBUG, "access_3: ENOENT"); ++ plog(XLOG_DEBUG, "access_3: ESTALE"); + } else { + nfsfattr *fattr = &mp->am_fattr; + am_fattr3 *fattr3; diff --git a/am-utils-6.2-fix-NFSv3-lookup-dir-attribute-return-value.patch b/am-utils-6.2-fix-NFSv3-lookup-dir-attribute-return-value.patch new file mode 100644 index 0000000..85b1801 --- /dev/null +++ b/am-utils-6.2-fix-NFSv3-lookup-dir-attribute-return-value.patch @@ -0,0 +1,76 @@ +am-utils-6.2 - fix NFSv3 lookup dir attribute return value + +From: Ian Kent + +The NFS v3 lookup method, which returns attributes for the directory +containing the object to be looked up, used incorrect mount point +attributes which was causing unusual file system object visibility +problems. + +Signed-off-by: Ian Kent +--- + amd/nfs_subr.c | 29 +++++++++++++++++++++++++++-- + 1 file changed, 27 insertions(+), 2 deletions(-) + +diff --git a/amd/nfs_subr.c b/amd/nfs_subr.c +index 85cf98c..6a1b717 100644 +--- a/amd/nfs_subr.c ++++ b/amd/nfs_subr.c +@@ -978,6 +978,29 @@ static void fattr_to_wcc_attr(nfsfattr *fattr, am_wcc_attr *wcc_attr) + nfstime_to_am_nfstime3(&fattr->na_ctime, &wcc_attr->ctime); + } + ++static nfsfattr *get_parent_fattr(am_node *mp) ++{ ++ nfsfattr *fattr; ++ ++ /* Set attributes to those of the parent only if this ++ * isn't topvol otherwise just use the mp attributes. ++ */ ++ fattr = &mp->am_fattr; ++ if (mp->am_parent && mp->am_parent->am_parent && ++ !(mp->am_parent->am_parent->am_flags & AMF_ROOT)) ++ fattr = &mp->am_parent->am_fattr; ++ ++ return fattr; ++} ++ ++static void parent_fattr_to_fattr3(am_node *mp, am_fattr3 *fattr3) ++{ ++ nfsfattr *fattr; ++ ++ fattr = get_parent_fattr(mp); ++ fattr_to_fattr3(fattr, fattr3); ++} ++ + static am_nfsstat3 return_estale_or_rofs(am_nfs_fh3 *fh, + am_pre_op_attr *pre_op, + am_post_op_attr *post_op) +@@ -1177,9 +1200,7 @@ am_nfs3_lookup_3_svc(am_LOOKUP3args *argp, struct svc_req *rqstp) + + /* dir attributes */ + post_op_dir->attributes_follow = 1; +- fattr = &mp->am_fattr; + fattr3 = &post_op_dir->am_post_op_attr_u.attributes; +- fattr_to_fattr3(fattr, fattr3); + + post_op_obj->attributes_follow = 0; + +@@ -1196,6 +1217,7 @@ am_nfs3_lookup_3_svc(am_LOOKUP3args *argp, struct svc_req *rqstp) + amd_stats.d_drops++; + return 0; + } ++ parent_fattr_to_fattr3(mp, fattr3); + result.status = nfs_error(error); + } else { + /* +@@ -1206,6 +1228,9 @@ am_nfs3_lookup_3_svc(am_LOOKUP3args *argp, struct svc_req *rqstp) + if (ap->am_ttl < mp->am_ttl) + ap->am_ttl = mp->am_ttl; + ++ /* dir attrs, update after mount */ ++ parent_fattr_to_fattr3(mp, fattr3); ++ + mp_to_fh3(ap, &result.res_u.ok.object); + + /* mount attributes */ diff --git a/am-utils-6.2-fix-NFSv3-readdir-post_op_dir-attributes-return.patch b/am-utils-6.2-fix-NFSv3-readdir-post_op_dir-attributes-return.patch new file mode 100644 index 0000000..8260cbf --- /dev/null +++ b/am-utils-6.2-fix-NFSv3-readdir-post_op_dir-attributes-return.patch @@ -0,0 +1,53 @@ +am-utils-6.2 - fix NFSv3 readdir post_op_dir attributes return + +From: Ian Kent + +The NFS v3 readdir method is expected to return the attributes of +the directory being read for both success and fail cases. + +Signed-off-by: Ian Kent +--- + amd/nfs_subr.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/amd/nfs_subr.c b/amd/nfs_subr.c +index 6a1b717..00a1dc0 100644 +--- a/amd/nfs_subr.c ++++ b/amd/nfs_subr.c +@@ -1627,28 +1627,29 @@ am_nfs3_readdir_3_svc(am_READDIR3args *argp, struct svc_req *rqstp) + result.status = nfs_error(retry); + } else { + am_dirlist3 *list = &result.res_u.ok.reply; ++ nfsfattr *fattr; ++ am_fattr3 *fattr3; + am_nfsstat3 status; + + if (amuDebug(D_TRACE)) + plog(XLOG_DEBUG, "\treaddir_3(%s)", mp->am_path); + ++ fattr = &mp->am_fattr; ++ + status = mp->am_al->al_mnt->mf_ops->readdir(mp, + (voidp)&cookie, list, entries, count); + if (status == 0) { + post_op_dir = &result.res_u.ok.dir_attributes; +- nfsfattr *fattr; +- am_fattr3 *fattr3; +- +- fattr = &mp->am_fattr; +- fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + post_op_dir->attributes_follow = 1; +- fattr_to_fattr3(fattr, fattr3); ++ fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + result.status = AM_NFS3_OK; + } else { + post_op_dir = &result.res_u.fail.dir_attributes; +- post_op_dir->attributes_follow = 0; ++ post_op_dir->attributes_follow = 1; ++ fattr3 = &post_op_dir->am_post_op_attr_u.attributes; + result.status = nfs_error(status); + } ++ fattr_to_fattr3(fattr, fattr3); + + mp->am_stats.s_readdir++; + } diff --git a/am-utils-6.2-fix-NFSv3-unlink3_or_rmdir3-post_op-attributes-return.patch b/am-utils-6.2-fix-NFSv3-unlink3_or_rmdir3-post_op-attributes-return.patch new file mode 100644 index 0000000..93b7c35 --- /dev/null +++ b/am-utils-6.2-fix-NFSv3-unlink3_or_rmdir3-post_op-attributes-return.patch @@ -0,0 +1,62 @@ +am-utils-6.2 - fix NFSv3 unlink3_or_rmdir3() post_op attributes return + +From: Ian Kent + +The function unlink3_or_rmdir3() is called by both NFS v3 remove and +rmdir methods. Both of these methods require post op wcc attributes +to be returned but unlink3_or_rmdir3() was returning only the pre op +wcc attributes. + +Signed-off-by: Ian Kent +--- + amd/nfs_subr.c | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/amd/nfs_subr.c b/amd/nfs_subr.c +index 00a1dc0..0a43b98 100644 +--- a/amd/nfs_subr.c ++++ b/amd/nfs_subr.c +@@ -1033,7 +1033,7 @@ static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp, + am_pre_op_attr *pre_op_dir = &wcc_data->before; + am_post_op_attr *post_op_dir = &wcc_data->after; + nfsfattr *fattr; +- am_wcc_attr *wcc_attr; ++ am_wcc_attr *pre_op_wcc_attr, *post_op_wcc_attr; + am_node *mp, *ap; + int retry; + +@@ -1050,12 +1050,17 @@ static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp, + goto out; + } + ++ post_op_dir->attributes_follow = 1; ++ post_op_wcc_attr = &post_op_dir->am_post_op_attr_u.attributes; ++ + pre_op_dir->attributes_follow = 1; ++ pre_op_wcc_attr = &pre_op_dir->am_pre_op_attr_u.attributes; ++ + fattr = &mp->am_fattr; +- wcc_attr = &pre_op_dir->am_pre_op_attr_u.attributes; +- fattr_to_wcc_attr(fattr, wcc_attr); ++ fattr_to_wcc_attr(fattr, pre_op_wcc_attr); + + if (mp->am_fattr.na_type != NFDIR) { ++ fattr_to_wcc_attr(fattr, post_op_wcc_attr); + res = nfs_error(ENOTDIR); + goto out; + } +@@ -1075,9 +1080,14 @@ static am_nfsstat3 unlink3_or_rmdir3(am_diropargs3 *argp, + */ + else if (retry == ENOENT) + retry = 0; ++ fattr_to_wcc_attr(fattr, post_op_wcc_attr); + res = nfs_error(retry); + } else { + forcibly_timeout_mp(mp); ++ /* we can't wait for the expire so use the attributes as ++ * they are now for the post op wcc attributes. ++ */ ++ fattr_to_wcc_attr(fattr, post_op_wcc_attr); + res = AM_NFS3_OK; + } + diff --git a/am-utils-6.2.0-1.git.bb13dea6-ylwrap.patch b/am-utils-6.2.0-1.git.bb13dea6-ylwrap.patch deleted file mode 100644 index 641822d..0000000 --- a/am-utils-6.2.0-1.git.bb13dea6-ylwrap.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up am-utils-6.2.0-1.git.bb13dea6/bootstrap.orig am-utils-6.2.0-1.git.bb13dea6/bootstrap ---- am-utils-6.2.0-1.git.bb13dea6/bootstrap.orig 2014-10-21 05:42:37.128509523 -0400 -+++ am-utils-6.2.0-1.git.bb13dea6/bootstrap 2014-10-21 05:51:38.044996707 -0400 -@@ -59,13 +59,13 @@ fi - - echo "AMU: Fixing ylwrap..." - patch << \EOF ----- ylwrap.orig 2014-05-08 21:18:30.000000000 -0400 --+++ ylwrap 2014-05-09 22:25:54.900240000 -0400 --@@ -153,6 +153,22 @@ -- *[\\/]*) prog="`pwd`/$prog" ;; -+--- ylwrap.orig 2014-10-21 05:38:42.210204684 -0400 -++++ ylwrap 2014-10-21 05:44:45.602138698 -0400 -+@@ -161,6 +161,22 @@ -+ *[\\/]*) prog=`pwd`/$prog ;; - esac - --+prefix=`echo $input | sed \ -++prefix=`echo $input | sed \ - + -e 's,^.*/,,g' \ - + -e 's/_gram.[yl]$/_/g' \ - + -e 's/_lex.[yl]$/_/g' \ -@@ -81,10 +81,10 @@ patch << \EOF - + flags="-p $prefix";; - +esac - + -- # FIXME: add hostname here for parallel makes that run commands on -- # other machines. But that might take us over the 14-char limit. - dirname=ylwrap$$ --@@ -166,10 +182,13 @@ -+ do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' -+ trap "ret=129; $do_exit" 1 -+@@ -172,10 +188,13 @@ - cd $dirname - - case $# in diff --git a/am-utils.spec b/am-utils.spec index 54dceab..cb1388c 100644 --- a/am-utils.spec +++ b/am-utils.spec @@ -1,17 +1,14 @@ Summary: Automount utilities including an updated version of Amd Name: am-utils Version: 6.2.0 -%define githash bb13dea6d0bf378f38a2a009a9802577f5399673 -%define shorthash %(echo "%{githash}" | cut -c -8) -%define gitdate 20140906 -%define revision 1 -Release: 4.%{gitdate}git%{shorthash}%{?dist} +%define upstream_version 6.2 +Release: 5%{?dist} License: BSD Epoch: 5 Group: System Environment/Daemons URL: http://am-utils.org # Git repository git://git.fsl.cs.sunysb.edu/am-utils-6.2.git -Source: am-utils-%{version}-%{revision}.git.%{shorthash}.tar.gz +Source: ftp://ftp.am-utils.org/pub/am-utils/am-utils-%{upstream_version}.tar.gz Source1: amd.service Source2: am-utils.conf Source3: am-utils.sysconf @@ -28,7 +25,6 @@ BuildRequires: flex BuildRequires: tcp_wrappers-devel BuildRequires: systemd-units BuildRequires: texinfo -BuildRequires: perl-Unicode-EastAsianWidth BuildRequires: gcc BuildRequires: m4 @@ -45,11 +41,14 @@ Requires(preun): systemd-units Requires(postun): systemd-units Requires(preun): /sbin/install-info -# automake ylwrap has changed, fix inline patch in bootstrap. -Patch1: am-utils-6.2.0-1.git.bb13dea6-ylwrap.patch - # Fix problems with possible future libtool rebases (#1181698) -Patch2: am-utils-6.2.0-1.git.bb13dea6-dont-include-auto-generated-macros-in-aclinlude_m4.patch +Patch1: am-utils-6.2-dont-include-auto-generated-macros-in-aclinlude_m4.patch + +Patch2: am-utils-6.2-add-debug-log-trace-to-NFSv3-readdirplus.patch +Patch3: am-utils-6.2-fix-NFSv3-access-method-return-on-non-existent-mount-point.patch +Patch4: am-utils-6.2-fix-NFSv3-lookup-dir-attribute-return-value.patch +Patch5: am-utils-6.2-fix-NFSv3-readdir-post_op_dir-attributes-return.patch +Patch6: am-utils-6.2-fix-NFSv3-unlink3_or_rmdir3-post_op-attributes-return.patch # Not needed since autoreconf/libtool appear to do this automatically # Leaving it set doesn't appear to be a problem so leave it set in @@ -72,10 +71,14 @@ You should install am-utils if you need a program for automatically mounting and unmounting filesystems. %prep -%setup -q -n %{name}-%{version}-%{revision}.git.%{shorthash} +%setup -q -n %{name}-%{upstream_version} %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 ./bootstrap @@ -87,7 +90,8 @@ chmod +x find-requires %configure \ --enable-shared \ --enable-am-cflags="-DHAVE_LINUX_NFS_MOUNT_H" \ - --enable-libs="-lnsl -lresolv" + --enable-libs="-lnsl -lresolv" \ + --enable-debug sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool @@ -186,6 +190,21 @@ fi %{_libdir}/libamu.so* %changelog +* Thu Dec 17 2015 Fedora Release Engineering - 5:6.2.0-5 +- update to upstream source release 6.2. +- use starting revision 5 to ensure package will update from previous package. +- add configure option enable-debug so we can get logs of any problems with + the new amd NFS v3 service. +- remove BuildRequires: perl-Unicode-EastAsianWidth. +- move libtool macro functions from m4/macros to m4 and delete. +- add debug log trace to NFSv3 readdirplus +- fix NFSv3 access method return on non-existent mount point. +- fix NFSv3 lookup dir attribute return value. +- fix NFSv3 readdir post_op_dir attributes return. +- fix NFSv3 unlink3_or_rmdir3() post_op attributes return. + +- fix mtime update on NFSv3 lookup. + * Tue Jun 16 2015 Fedora Release Engineering - 5:6.2.0-4.20140906gitbb13dea6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index ebfe662..8907255 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6f631a68f7d98eca36feb5d675ff2296 am-utils-6.2.0-1.git.bb13dea6.tar.gz +4b2ada9cadd24f8a231601274d6fb036 am-utils-6.2.tar.gz