Jim Meyering
2009-Aug-03 11:04 UTC
[Libguestfs] use gnulib, and begin to pass its "make syntax-check" tests
Here's a patch series to make libguestfs use gnulib via a git submodule. The first thing I did was to look at the failures from "make syntax-check" and fix the config.h-related ones below. The others are now temporarily disabled via a variable in cfg.mk. I fixed the config-h problems and moved those change sets to precede the test-adding one, so that bisection still works, even if you use the new "syntax-check" rule as your metric. As I fix others, I'll remove the rule name from the disabled-tests list.>From 3d13b4e3062a3b06d9ed3acadb4cb55fb41a05c8 Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Mon, 3 Aug 2009 06:58:16 -0400 Subject: [PATCH 1/4] build: add -I option to get config.h. * ocaml/Makefile.am (AM_CPPFLAGS): Define. (guestfs_c.o, guestfs_c_actions.o): Use it. --- ocaml/Makefile.am | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am index 12522f2..1aa0cb6 100644 --- a/ocaml/Makefile.am +++ b/ocaml/Makefile.am @@ -28,6 +28,9 @@ SUBDIRS = examples CLEANFILES = *.cmi *.cmo *.cmx *.cma *.cmxa *.o *.a *.so CLEANFILES += t/*.cmi t/*.cmo t/*.cmx t/*.o t/*.a t/*.so +AM_CPPFLAGS = -I$(top_builddir) -I$(OCAMLLIB) -I$(top_srcdir)/ocaml \ + -I$(top_srcdir)/src -I$(top_builddir)/src + if HAVE_OCAML noinst_DATA = mlguestfs.cma mlguestfs.cmxa META @@ -39,10 +42,10 @@ mlguestfs.cmxa: guestfs_c.o guestfs_c_actions.o guestfs.cmx $(OCAMLMKLIB) -o mlguestfs $^ -L$(top_builddir)/src/.libs -lguestfs guestfs_c.o: guestfs_c.c - $(CC) $(CFLAGS) -I$(OCAMLLIB) -I$(top_srcdir)/ocaml -I$(top_srcdir)/src -I$(top_builddir)/src -fPIC -Wall -c $< + $(CC) $(AM_CPPFLAGS) $(CFLAGS) -fPIC -Wall -c $< guestfs_c_actions.o: guestfs_c_actions.c - $(CC) $(CFLAGS) -I$(OCAMLLIB) -I$(top_srcdir)/ocaml -I$(top_srcdir)/src -I$(top_builddir)/src -fPIC -Wall -c $< + $(CC) $(AM_CPPFLAGS) $(CFLAGS) -fPIC -Wall -c $< TESTS_ENVIRONMENT = \ LD_LIBRARY_PATH=$(top_builddir)/src/.libs \ -- 1.6.3.3>From 48ff4073b5317da2076de4633779965eb1bda726 Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Mon, 3 Aug 2009 05:33:35 -0400 Subject: [PATCH 2/4] always include <config.h> * ocaml/guestfs_c.c: Include <config.h>. * examples/to-xml.c: Likewise. * examples/hello.c: Likewise. --- capitests/test-command.c | 1 + examples/hello.c | 1 + examples/to-xml.c | 1 + ocaml/guestfs_c.c | 1 + 4 files changed, 4 insertions(+), 0 deletions(-) diff --git a/capitests/test-command.c b/capitests/test-command.c index 1e29ee9..d451ebe 100644 --- a/capitests/test-command.c +++ b/capitests/test-command.c @@ -20,6 +20,7 @@ * guestfs_command and guestfs_command_lines functions. */ +#include <config.h> #include <stdio.h> #include <stdlib.h> #include <string.h> diff --git a/examples/hello.c b/examples/hello.c index a4cc43d..a8649f3 100644 --- a/examples/hello.c +++ b/examples/hello.c @@ -4,6 +4,7 @@ * hello guest.img /dev/VolGroup00/LogVol00 */ +#include <config.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> diff --git a/examples/to-xml.c b/examples/to-xml.c index d6422e0..5b75244 100644 --- a/examples/to-xml.c +++ b/examples/to-xml.c @@ -7,6 +7,7 @@ * to-xml guest.img [guest.img ...] */ +#include <config.h> #include <stdio.h> #include <stdlib.h> #include <string.h> diff --git a/ocaml/guestfs_c.c b/ocaml/guestfs_c.c index 43a85b8..f983696 100644 --- a/ocaml/guestfs_c.c +++ b/ocaml/guestfs_c.c @@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include <config.h> #include <stdio.h> #include <stdlib.h> #include <string.h> -- 1.6.3.3>From e0c33625431f7533ed5ae928032353017ebd27fa Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Mon, 3 Aug 2009 05:18:10 -0400 Subject: [PATCH 3/4] maint: use a git submodule for gnulib * .gitmodules: New file, to track gnulib. * .gnulib: Submodule directory. * Makefile.am (EXTRA_DIST): Don't list config.rpath or gitlog-to-changelog. * autogen.sh: Adapt to use the new submodule. * cfg.mk: New file. (SUBDIRS): Add gnulib/lib and gnulib/tests. (dist-hook): Reflect new location of getlog-to-changelog. * configure.ac: Set build-aux/ as AUX_DIR. Invoke gl_EARLY and gl_INIT. (AC_CONFIG_FILES): Add gnulib/lib/Makefile and gnulib/tests/Makefile. --- .gitignore | 5 + .gitmodules | 3 + .gnulib | 1 + Makefile.am | 8 +- autogen.sh | 11 + bootstrap | 82 ++++++++ cfg.mk | 240 ++++++++++++++++++++++ config.rpath | 548 --------------------------------------------------- configure.ac | 6 + gitlog-to-changelog | 175 ---------------- mkinstalldirs | 111 ----------- 11 files changed, 351 insertions(+), 839 deletions(-) create mode 100644 .gitmodules create mode 160000 .gnulib create mode 100755 bootstrap create mode 100644 cfg.mk delete mode 100755 config.rpath delete mode 100755 gitlog-to-changelog delete mode 100755 mkinstalldirs diff --git a/.gitignore b/.gitignore index a3b365f..147e1cb 100644 --- a/.gitignore +++ b/.gitignore @@ -179,3 +179,8 @@ test-tool/libguestfs-test-tool.1 test-tool/libguestfs-test-tool test-tool/libguestfs-test-tool-helper v2v/virt-v2v.1 +/GNUmakefile +/maint.mk +/build-aux +/gnulib +.git-module-status diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..7acb1ea --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "gnulib"] + path = .gnulib + url = git://git.sv.gnu.org/gnulib.git diff --git a/.gnulib b/.gnulib new file mode 160000 index 0000000..7560950 --- /dev/null +++ b/.gnulib @@ -0,0 +1 @@ +Subproject commit 7560950d6efd9e209b8d7188e1a95ceb53035889 diff --git a/Makefile.am b/Makefile.am index 3cba8bc..e5ca43c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,8 +17,8 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src daemon appliance fish po examples images \ - capitests regressions test-tool +SUBDIRS = gnulib/lib src daemon appliance fish po examples images \ + gnulib/tests capitests regressions test-tool if HAVE_OCAML SUBDIRS += ocaml @@ -52,13 +52,11 @@ SUBDIRS += cat endif EXTRA_DIST = \ - config.rpath \ guestfs.pod guestfs-actions.pod guestfs-structs.pod \ guestfish.pod guestfish-actions.pod \ html/pod.css \ HACKING TODO \ libguestfs.pc libguestfs.pc.in \ - gitlog-to-changelog \ recipes/LICENSE \ recipes/README \ recipes/*.html \ @@ -153,7 +151,7 @@ website: $(HTMLFILES) $(TEXTFILES) # Generate the ChangeLog automatically from the gitlog. dist-hook: - ./gitlog-to-changelog > ChangeLog + $(top_srcdir)/build-aux/gitlog-to-changelog > ChangeLog cp ChangeLog $(distdir)/ChangeLog # Update the list of translatable files in po/POTFILES.in. diff --git a/autogen.sh b/autogen.sh index ba4612c..5179623 100755 --- a/autogen.sh +++ b/autogen.sh @@ -21,6 +21,17 @@ set -e set -v +# Ensure that whenever we pull in a gnulib update or otherwise change to a +# different version (i.e., when switching branches), we also rerun ./bootstrap. +curr_status=.git-module-status +t=$(git submodule status) +if test "$t" = "$(cat $curr_status 2>/dev/null)"; then + : # good, it's up to date +else + echo running bootstrap... + ./bootstrap && echo "$t" > $curr_status +fi + mkdir -p daemon/m4 autoreconf -i diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..73a5e04 --- /dev/null +++ b/bootstrap @@ -0,0 +1,82 @@ +#!/bin/sh + +usage() { + echo >&2 "\ +Usage: $0 [OPTION]... +Bootstrap this package from the checked-out sources. + +Options: + --gnulib-srcdir=DIRNAME Specify the local directory where gnulib + sources reside. Use this if you already + have gnulib sources on your machine, and + do not want to waste your bandwidth downloading + them again. + +If the file bootstrap.conf exists in the current working directory, its +contents are read as shell variables to configure the bootstrap. + +Running without arguments will suffice in most cases. +" +} + +for option +do + case $option in + --help) + usage + exit;; + --gnulib-srcdir=*) + GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;; + *) + echo >&2 "$0: $option: unknown option" + exit 1;; + esac +done + +# Get gnulib files. + +case ${GNULIB_SRCDIR--} in +-) + echo "$0: getting gnulib files..." + git submodule init || exit $? + git submodule update || exit $? + GNULIB_SRCDIR=.gnulib + ;; +*) + # Redirect the gnulib submodule to the directory on the command line + # if possible. + if test -d "$GNULIB_SRCDIR"/.git && \ + git config --file .gitmodules submodule.gnulib.url >/dev/null; then + git submodule init + GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd` + git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR + echo "$0: getting gnulib files..." + git submodule update || exit $? + GNULIB_SRCDIR=.gnulib + else + echo >&2 "$0: invalid gnulib srcdir: $GNULIB_SRCDIR" + exit 1 + fi + ;; +esac + +gnulib_tool=$GNULIB_SRCDIR/gnulib-tool +<$gnulib_tool || exit + +modules=' +gitlog-to-changelog +gnu-make +gnumakefile +maintainer-makefile +manywarnings +warnings +vc-list-files +' + +$gnulib_tool \ + --avoid=dummy \ + --with-tests \ + --m4-base=gnulib/m4 \ + --source-base=gnulib/lib \ + --tests-base=gnulib/tests \ + --import $modules diff --git a/cfg.mk b/cfg.mk new file mode 100644 index 0000000..9363d41 --- /dev/null +++ b/cfg.mk @@ -0,0 +1,240 @@ +# Customize Makefile.maint. -*- makefile -*- +# Copyright (C) 2003-2009 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Use alpha.gnu.org for alpha and beta releases. +# Use ftp.gnu.org for major releases. +gnu_ftp_host-alpha = alpha.gnu.org +gnu_ftp_host-beta = alpha.gnu.org +gnu_ftp_host-major = ftp.gnu.org +gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE)) + +url_dir_list = \ + ftp://$(gnu_rel_host)/gnu/coreutils + +# Tests not to run as part of "make distcheck". +local-checks-to-skip = \ + sc_po_check \ + changelog-check \ + check-AUTHORS \ + makefile-check \ + makefile_path_separator_check \ + patch-check \ + sc_GPL_version \ + sc_always_defined_macros \ + sc_cast_of_alloca_return_value \ + sc_dd_max_sym_length \ + sc_error_exit_success \ + sc_file_system \ + sc_immutable_NEWS \ + sc_makefile_path_separator_check \ + sc_obsolete_symbols \ + sc_prohibit_S_IS_definition \ + sc_prohibit_atoi_atof \ + sc_prohibit_jm_in_m4 \ + sc_prohibit_quote_without_use \ + sc_prohibit_quotearg_without_use \ + sc_prohibit_stat_st_blocks \ + sc_prohibit_strcmp_and_strncmp \ + sc_prohibit_strcmp \ + sc_root_tests \ + sc_space_tab \ + sc_sun_os_names \ + sc_system_h_headers \ + sc_tight_scope \ + sc_two_space_separator_in_usage \ + sc_error_message_uppercase \ + sc_program_name \ + sc_require_test_exit_idiom \ + sc_makefile_check \ + sc_useless_cpp_parens + +# Avoid uses of write(2). Either switch to streams (fwrite), or use +# the safewrite wrapper. +sc_avoid_write: + @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ + grep '\<write *(' $$($(VC_LIST_EXCEPT) | grep '\.c$$') && \ + { echo "$(ME): the above files use write;" \ + " consider using the safewrite wrapper instead" \ + 1>&2; exit 1; } || :; \ + else :; \ + fi + +# Use STREQ rather than comparing strcmp == 0, or != 0. +# Similarly, use STREQLEN or STRPREFIX rather than strncmp. +sc_prohibit_strcmp_and_strncmp: + @grep -nE '! *strn?cmp *\(|\<strn?cmp *\([^)]+\) *==' \ + $$($(VC_LIST_EXCEPT)) \ + | grep -vE ':# *define STREQ(LEN)?\(' && \ + { echo '$(ME): use STREQ(LEN) in place of the above uses of strcmp(strncmp)' \ + 1>&2; exit 1; } || : + +# Use virAsprintf rather than a'sprintf since *strp is undefined on error. +sc_prohibit_asprintf: + @re='\<[a]sprintf\>' \ + msg='use virAsprintf, not a'sprintf \ + $(_prohibit_regexp) + +# Prohibit the inclusion of <ctype.h>. +sc_prohibit_ctype_h: + @grep -E '^# *include *<ctype\.h>' $$($(VC_LIST_EXCEPT)) && \ + { echo "$(ME): don't use ctype.h; instead, use c-ctype.h" \ + 1>&2; exit 1; } || : + +# Ensure that no C source file uses TABs for indentation. +# Also match *.h.in files, to get libvirt.h.in. +# Exclude files in gnulib, since they're imported. +sc_TAB_in_indentation: + @grep -lE '^ * ' /dev/null \ + $$($(VC_LIST_EXCEPT) \ + | grep -E '\.[ch](\.in)?$$' \ + | grep -v '^gnulib/') && \ + { echo '$(ME): found TAB(s) used for indentation in C sources;'\ + 'use spaces' 1>&2; exit 1; } || : + +ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\ +|isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper + +sc_avoid_ctype_macros: + @grep -E '\b($(ctype_re)) *\(' /dev/null \ + $$($(VC_LIST_EXCEPT)) && \ + { echo "$(ME): don't use ctype macros (use c-ctype.h)" \ + 1>&2; exit 1; } || : + +sc_prohibit_virBufferAdd_with_string_literal: + @re='\<virBufferAdd *\([^,]+, *"[^"]' \ + msg='use virBufferAddLit, not virBufferAdd, with a string literal' \ + $(_prohibit_regexp) + +# Not only do they fail to deal well with ipv6, but the gethostby* +# functions are also not thread-safe. +sc_prohibit_gethostby: + @re='\<gethostby(addr|name2?) *\(' \ + msg='use getaddrinfo, not gethostby*' \ + $(_prohibit_regexp) + +# Many of the function names below came from this filter: +# git grep -B2 '\<_('|grep -E '\.c- *[[:alpha:]_][[:alnum:]_]* ?\(.*[,;]$' \ +# |sed 's/.*\.c- *//'|perl -pe 's/ ?\(.*//'|sort -u \ +# |grep -vE '^(qsort|if|close|assert|fputc|free|N_|vir.*GetName|.*Unlock|virNodeListDevices|virHashRemoveEntry|freeaddrinfo|.*[fF]ree|xdrmem_create|xmlXPathFreeObject|virUUIDFormat|openvzSetProgramSentinal|polkit_action_unref)$' + +msg_gen_function +msg_gen_function += DEBUG0 +msg_gen_function += DISABLE_fprintf +msg_gen_function += ERROR +msg_gen_function += ERROR0 +msg_gen_function += REMOTE_DEBUG +msg_gen_function += ReportError +msg_gen_function += VIR_FREE +msg_gen_function += VIR_INFO +msg_gen_function += VIR_USE_CPU +msg_gen_function += errorf +msg_gen_function += lxcError +msg_gen_function += networkLog +msg_gen_function += networkReportError +msg_gen_function += oneError +msg_gen_function += openvzError +msg_gen_function += openvzLog +msg_gen_function += qemudDispatchClientFailure +msg_gen_function += qemudLog +msg_gen_function += qemudReportError +msg_gen_function += regerror +msg_gen_function += remoteDispatchFormatError +msg_gen_function += umlLog +msg_gen_function += umlReportError +msg_gen_function += virConfError +msg_gen_function += virDomainReportError +msg_gen_function += virSecurityReportError +msg_gen_function += virHashError +msg_gen_function += virLibConnError +msg_gen_function += virLibDomainError +msg_gen_function += virLog +msg_gen_function += virNetworkReportError +msg_gen_function += virNodeDeviceReportError +msg_gen_function += virProxyError +msg_gen_function += virRaiseError +msg_gen_function += virReportErrorHelper +msg_gen_function += virReportSystemError +msg_gen_function += virSexprError +msg_gen_function += virStorageLog +msg_gen_function += virStorageReportError +msg_gen_function += virXMLError +msg_gen_function += virXenInotifyError +msg_gen_function += virXenStoreError +msg_gen_function += virXendError +msg_gen_function += vshCloseLogFile +msg_gen_function += xenUnifiedError +msg_gen_function += xenXMError + +# Uncomment the following and run "make syntax-check" to see diagnostics +# that are not yet marked for translation, but that need to be rewritten +# so that they are translatable. +# msg_gen_function += error +# msg_gen_function += fprintf +# msg_gen_function += testError +# msg_gen_function += virXenError +# msg_gen_function += vshPrint +# msg_gen_function += vshError + +func_or := $(shell printf '$(msg_gen_function)'|tr -s '[[:space:]]' '|') +func_re := ($(func_or)) + +# Look for diagnostics that aren't marked for translation. +# This won't find any for which error's format string is on a separate line. +# The sed filters eliminate false-positives like these: +# _("...: " +# "%s", _("no storage vol w..." +sc_libvirt_unmarked_diagnostics: + @grep -nE \ + '\<$(func_re) \([^"]*"[^"]*[a-z]{3}' $$($(VC_LIST_EXCEPT)) \ + | grep -v '_''(' && \ + { echo '$(ME): found unmarked diagnostic(s)' 1>&2; \ + exit 1; } || : + @{ grep -nE '\<$(func_re) *\(.*;$$' $$($(VC_LIST_EXCEPT)); \ + grep -A1 -nE '\<$(func_re) *\(.*,$$' $$($(VC_LIST_EXCEPT)); } \ + | sed 's/_("[^"][^"]*"//;s/[ ]"%s"//' \ + | grep '[ ]"' && \ + { echo '$(ME): found unmarked diagnostic(s)' 1>&2; \ + exit 1; } || : + +# Disallow trailing blank lines. +sc_prohibit_trailing_blank_lines: + @$(VC_LIST_EXCEPT) | xargs perl -ln -0777 -e \ + '/\n\n+$$/ and print $$ARGV' > $@-t + @found=0; test -s $@-t && { found=1; cat $@-t 1>&2; \ + echo '$(ME): found trailing blank line(s)' 1>&2; }; \ + rm -f $@-t; \ + test $$found = 0 + +# We don't use this feature of maint.mk. +prev_version_file = /dev/null + +ifeq (0,$(MAKELEVEL)) + _curr_status = .git-module-status + # The sed filter accommodates those who check out on a commit from which + # no tag is reachable. In that case, git submodule status prints a "-" + # in column 1 and does not print a "git describe"-style string after the + # submodule name. Contrast these: + # -b653eda3ac4864de205419d9f41eec267cb89eeb .gnulib + # b653eda3ac4864de205419d9f41eec267cb89eeb .gnulib (v0.0-2286-gb653eda) + _submodule_hash = sed 's/.//;s/ .*//' + _update_required := $(shell \ + actual=$$(git submodule status | $(_submodule_hash)); \ + stamp="$$($(_submodule_hash) $(_curr_status) 2>/dev/null)"; \ + test "$$stamp" = "$$actual"; echo $$?) + ifeq (1,$(_update_required)) + $(error gnulib update required; run ./autogen.sh first) + endif +endif diff --git a/config.rpath b/config.rpath deleted file mode 100755 index 4db13e5..0000000 --- a/config.rpath +++ /dev/null @@ -1,548 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable. -# -# Copyright 1996-2003 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -# should be set by the caller. -# -# The set of defined variables is at the end of this script. - -# Known limitations: -# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -# than 256 bytes, otherwise the compiler driver will dump core. The only -# known workaround is to choose shorter directory names for the build -# directory and/or the installation directory. - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -shrext=.so - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. - -wl-if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix*) - wl='-Wl,' - ;; - mingw* | pw32* | os2*) - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6* | nonstopux*) - wl='-Wl,' - ;; - newsos6) - ;; - linux*) - case $CC in - icc|ecc) - wl='-Wl,' - ;; - ccc) - wl='-Wl,' - ;; - esac - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - sco3.2v5*) - ;; - solaris*) - wl='-Wl,' - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - wl='-Wl,' - ;; - sysv4*MP*) - ;; - uts4*) - ;; - esac -fi - -# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. - -hardcode_libdir_flag_spec-hardcode_libdir_separator-hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - case "$host_os" in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can use - # them. - ld_shlibs=no - ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - netbsd*) - ;; - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - sunos4*) - hardcode_direct=yes - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - esac - if test "$ld_shlibs" = yes; then - # Unlike libtool, we use -rpath here, not --rpath, since the documented - # option of GNU ld is called -rpath, not --rpath. - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - fi -else - case "$host_os" in - aix3*) - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - else - aix_use_runtimelinking=no - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - fi - hardcode_direct=yes - hardcode_libdir_separator=':' - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator- fi - esac - fi - # Begin _LT_AC_SYS_LIBPATH_AIX. - echo 'int main () { return 0; }' > conftest.c - ${CC} ${LDFLAGS} conftest.c -o conftest - aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - fi - if test -z "$aix_libpath"; then - aix_libpath="/usr/lib:/lib" - fi - rm -f conftest.c conftest - # End _LT_AC_SYS_LIBPATH_AIX. - if test "$aix_use_runtimelinking" = yes; then - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - else - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - fi - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - bsdi4*) - ;; - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - libext=lib - ;; - darwin* | rhapsody*) - if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then - hardcode_direct=no - fi - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - freebsd1*) - ld_shlibs=no - ;; - freebsd2.2*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - freebsd2*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - hpux9*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - hpux10* | hpux11*) - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=no - ;; - ia64*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - *) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - irix5* | irix6* | nonstopux*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - netbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - newsos6) - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - openbsd*) - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - osf3*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - osf4* | osf5*) - if test "$GCC" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - # Both cc and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - sco3.2v5*) - ;; - solaris*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - sunos4*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - sysv4) - case $host_vendor in - sni) - hardcode_direct=yes # is this really true??? - ;; - siemens) - hardcode_direct=no - ;; - motorola) - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - ;; - sysv4.3*) - ;; - sysv4*MP*) - if test -d /usr/nec; then - ld_shlibs=yes - fi - ;; - sysv4.2uw2*) - hardcode_direct=yes - hardcode_minus_L=no - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - ;; - sysv5*) - hardcode_libdir_flag_spec- ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. -libname_spec='lib$name' -case "$host_os" in - aix3*) - ;; - aix4* | aix5*) - ;; - amigaos*) - ;; - beos*) - ;; - bsdi4*) - ;; - cygwin* | mingw* | pw32*) - shrext=.dll - ;; - darwin* | rhapsody*) - shrext=.dylib - ;; - dgux*) - ;; - freebsd1*) - ;; - freebsd*) - ;; - gnu*) - ;; - hpux9* | hpux10* | hpux11*) - case "$host_cpu" in - ia64*) - shrext=.so - ;; - hppa*64*) - shrext=.sl - ;; - *) - shrext=.sl - ;; - esac - ;; - irix5* | irix6* | nonstopux*) - case "$host_os" in - irix5* | nonstopux*) - libsuff= shlibsuff- ;; - *) - case $LD in - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; - *) libsuff= shlibsuff= ;; - esac - ;; - esac - ;; - linux*oldld* | linux*aout* | linux*coff*) - ;; - linux*) - ;; - netbsd*) - ;; - newsos6) - ;; - nto-qnx) - ;; - openbsd*) - ;; - os2*) - libname_spec='$name' - shrext=.dll - ;; - osf3* | osf4* | osf5*) - ;; - sco3.2v5*) - ;; - solaris*) - ;; - sunos4*) - ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - ;; - sysv4*MP*) - ;; - uts4*) - ;; -esac - -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -shlibext=`echo "$shrext" | sed -e 's,^\.,,'` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF - -# How to pass a linker flag through the compiler. -wl="$escaped_wl" - -# Static library suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally "so"). -shlibext="$shlibext" - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator="$hardcode_libdir_separator" - -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct="$hardcode_direct" - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L="$hardcode_minus_L" - -EOF diff --git a/configure.ac b/configure.ac index ece7da7..df466fa 100644 --- a/configure.ac +++ b/configure.ac @@ -23,6 +23,7 @@ m4_define([libguestfs_release], [65]) m4_define([libguestfs_extra], []) AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release[]libguestfs_extra) +AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_MACRO_DIR([m4]) @@ -40,6 +41,9 @@ AC_PROG_CC_STDC AC_PROG_INSTALL AC_PROG_CPP +gl_EARLY +gl_INIT + AC_C_PROTOTYPES test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant]) @@ -594,6 +598,8 @@ AC_CONFIG_FILES([Makefile inspector/Makefile v2v/Makefile libguestfs.pc + gnulib/lib/Makefile + gnulib/tests/Makefile ocaml/META perl/Makefile.PL]) AC_OUTPUT diff --git a/gitlog-to-changelog b/gitlog-to-changelog deleted file mode 100755 index 0a94b9e..0000000 --- a/gitlog-to-changelog +++ /dev/null @@ -1,175 +0,0 @@ -#!/usr/bin/perl -# Convert git log output to ChangeLog format. - -my $VERSION = '2008-12-21 12:07'; # UTC -# The definition above must lie within the first 8 lines in order -# for the Emacs time-stamp write hook (at end) to update it. -# If you change this file with Emacs, please let the write hook -# do its job. Otherwise, update this string manually. - -# Copyright (C) 2008 Free Software Foundation, Inc. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# Written by Jim Meyering - -use strict; -use warnings; -use Getopt::Long; -use POSIX qw(strftime); - -(my $ME = $0) =~ s|.*/||; - -# use File::Coda; # http://meyering.net/code/Coda/ -END { - defined fileno STDOUT or return; - close STDOUT and return; - warn "$ME: failed to close standard output: $!\n"; - $? ||= 1; -} - -sub usage ($) -{ - my ($exit_code) = @_; - my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); - if ($exit_code != 0) - { - print $STREAM "Try `$ME --help' for more information.\n"; - } - else - { - print $STREAM <<EOF; -Usage: $ME [OPTIONS] [ARGS] - -Convert git log output to ChangeLog format. If present, any ARGS -are passed to "git log". To avoid ARGS being parsed as options to -$ME, they may be preceded by '--'. - -OPTIONS: - - --since=DATE convert only the logs since DATE; - the default is to convert all log entries. - - --help display this help and exit - --version output version information and exit - -EXAMPLE: - - $ME --since=2008-01-01 > ChangeLog - $ME -- -n 5 foo > last-5-commits-to-branch-foo - -EOF - } - exit $exit_code; -} - -# If the string $S is a well-behaved file name, simply return it. -# If it contains white space, quotes, etc., quote it, and return the new string. -sub shell_quote($) -{ - my ($s) = @_; - if ($s =~ m![^\w+/.,-]!) - { - # Convert each single quote to '\'' - $s =~ s/\'/\'\\\'\'/g; - # Then single quote the string. - $s = "'$s'"; - } - return $s; -} - -sub quoted_cmd(@) -{ - return join (' ', map {shell_quote $_} @_); -} - -{ - my $since_date = '1970-01-01 UTC'; - GetOptions - ( - help => sub { usage 0 }, - version => sub { print "$ME version $VERSION\n"; exit }, - 'since=s' => \$since_date, - ) or usage 1; - - my @cmd = (qw (git log --log-size), "--since=$since_date", - '--pretty=format:%ct %an <%ae>%n%n%s%n%b%n', @ARGV); - open PIPE, '-|', @cmd - or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n" - . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); - - my $prev_date_line = ''; - while (1) - { - defined (my $in = <PIPE>) - or last; - $in =~ /^log size (\d+)$/ - or die "$ME:$.: Invalid line (expected log size):\n$in"; - my $log_nbytes = $1; - - my $log; - my $n_read = read PIPE, $log, $log_nbytes; - $n_read == $log_nbytes - or die "$ME:$.: unexpected EOF\n"; - - my @line = split "\n", $log; - my $author_line = shift @line; - defined $author_line - or die "$ME:$.: unexpected EOF\n"; - $author_line =~ /^(\d+) (.*>)$/ - or die "$ME:$.: Invalid line " - . "(expected date/author/email):\n$author_line\n"; - - my $date_line = sprintf "%s $2\n", strftime ("%F", localtime ($1)); - # If this line would be the same as the previous date/name/email - # line, then arrange not to print it. - if ($date_line ne $prev_date_line) - { - $prev_date_line eq '' - or print "\n"; - print $date_line; - } - $prev_date_line = $date_line; - - # Omit "Signed-off-by..." lines. - @line = grep !/^Signed-off-by: .*>$/, @line; - - # Remove leading and trailing blank lines. - while ($line[0] =~ /^\s*$/) { shift @line; } - while ($line[$#line] =~ /^\s*$/) { pop @line; } - - # Prefix each non-empty line with a TAB. - @line = map { length $_ ? "\t$_" : '' } @line; - - print "\n", join ("\n", @line), "\n"; - - defined ($in = <PIPE>) - or last; - $in ne "\n" - and die "$ME:$.: unexpected line:\n$in"; - } - - close PIPE - or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; - # FIXME-someday: include $PROCESS_STATUS in the diagnostic -} - -# Local Variables: -# indent-tabs-mode: nil -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "my $VERSION = '" -# time-stamp-format: "%:y-%02m-%02d %02H:%02M" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "'; # UTC" -# End: diff --git a/mkinstalldirs b/mkinstalldirs deleted file mode 100755 index d2d5f21..0000000 --- a/mkinstalldirs +++ /dev/null @@ -1,111 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman <friedman at prep.ai.mit.edu> -# Created: 1993-05-16 -# Public domain - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -case $dirmode in - '') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi - ;; - *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi - ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp- for d - do - pathcomp="$pathcomp$d" - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# End: -# mkinstalldirs ends here -- 1.6.3.3>From e832bcedb02699e7327d9f85d12461ae8f78c788 Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Mon, 3 Aug 2009 05:53:26 -0400 Subject: [PATCH 4/4] build: temporarily disable failing "syntax-check" rules * cfg.mk (disable_temporarily): Define. --- cfg.mk | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/cfg.mk b/cfg.mk index 9363d41..61a4db1 100644 --- a/cfg.mk +++ b/cfg.mk @@ -59,8 +59,22 @@ local-checks-to-skip = \ sc_program_name \ sc_require_test_exit_idiom \ sc_makefile_check \ + $(disable_temporarily) \ sc_useless_cpp_parens +disable_temporarily = \ + sc_makefile_TAB_only_indentation \ + sc_unmarked_diagnostics \ + sc_TAB_in_indentation \ + sc_prohibit_ctype_h \ + sc_prohibit_asprintf \ + sc_m4_quote_check \ + sc_prohibit_trailing_blank_lines \ + sc_avoid_ctype_macros \ + sc_const_long_option \ + sc_avoid_write \ + sc_trailing_blank + # Avoid uses of write(2). Either switch to streams (fwrite), or use # the safewrite wrapper. sc_avoid_write: -- 1.6.3.3
Richard W.M. Jones
2009-Aug-03 12:31 UTC
[Libguestfs] use gnulib, and begin to pass its "make syntax-check" tests
On Mon, Aug 03, 2009 at 01:04:38PM +0200, Jim Meyering wrote:> Here's a patch series to make libguestfs use gnulib via a git submodule. > The first thing I did was to look at the failures from "make syntax-check" > and fix the config.h-related ones below. The others are now > temporarily disabled via a variable in cfg.mk.In general, yes we need this, please commit it and 'make it work'. A couple of additional problems noted below:> * examples/to-xml.c: Likewise. > * examples/hello.c: Likewise.I'm dubious about adding <config.h> to these files, since they are supposed to be examples, and therefore should work outside the project. If people were to copy these files somewhere, then they would fail to compile or (perhaps worse) include some random config.h header.> +# |grep -vE '^(qsort|if|close|assert|fputc|free|N_|vir.*GetName|.*Unlock|virNodeListDevices|virHashRemoveEntry|freeaddrinfo|.*[fF]ree|xdrmem_create|xmlXPathFreeObject|virUUIDFormat|openvzSetProgramSentinal|polkit_action_unref)$' > + > +msg_gen_function > +msg_gen_function += DEBUG0 > +msg_gen_function += DISABLE_fprintf > +msg_gen_function += ERROR > +msg_gen_function += ERROR0 > +msg_gen_function += REMOTE_DEBUG > +msg_gen_function += ReportError > +msg_gen_function += VIR_FREE > +msg_gen_function += VIR_INFO > +msg_gen_function += VIR_USE_CPUlibvirt specific? Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top