
Eric Blake <eblake@redhat.com> wrote on 03/12/2010 01:33:06:
From: Eric Blake <eblake@redhat.com> To: Kenneth Nagin/Haifa/IBM@IBMIL Cc: Justin Clift <jclift@redhat.com>, list libvirt <libvir- list@redhat.com>, bug-gnulib <bug-gnulib@gnu.org> Date: 03/12/2010 01:33 Subject: Re: [libvirt] make syntax-check -> make: *** [sc_check_author_list] Error 1 on libvirt-0.8.5
[adding bug-gnulib, thanks to some issues with 'make syntax-check' in gnulib-provided files]
On 12/02/2010 02:25 AM, Kenneth Nagin wrote:
I am receiving syntax error when compiling libvirt-0.8.5. However, make without syntax-check completes successfully.
check_author_list %aE maint.mk: committer(s) not listed in AUTHORS That means your version of git is too old to support the specific log formatting directive that we are using. What version of git are you using, and is it worth us fixing that syntax check to skip if git is too old?
And ultimately, failure of 'make syntax-check' is non-fatal; it is not a prerequisite for building working binaries, so much as a way to try and enforce consistent style within the code base.
I decided that it made more sense to simply work with 0.8.6 (rather than 0.8.5). But now I am getting another error, i.e "Failed to determine type of version control used in /home/nagin/LIBVIRT/libvirt-0.8.6". It prints it a lot of times and then hangs. make without syntax-check works fine. Here are the error messages:
You still haven't told me what 'git --version' outputs on your system. That may be the clue to solving all of this.
git version 1.5.6.5
nagin@croton:~/LIBVIRT/libvirt-0.8.6$ make syntax-check GFDL_version ./build-aux/vc-list-files: Failed to determine type of version control
used
in /home/nagin/LIBVIRT/libvirt-0.8.6
Also caused if git is too old or missing. What does this output?
sh -vx build-aux/vc-list-files m4
#!/bin/sh # List version-controlled file names. # Print a version string. scriptversion=2010-04-23.22; # UTC + scriptversion=2010-04-23.22 # Copyright (C) 2006-2010 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/>. # List the specified version-controlled files. # With no argument, list them all. With a single DIRECTORY argument, # list the version-controlled files in that directory. # If there's an argument, it must be a single, "."-relative directory name. # cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/ postprocess= + postprocess= case $1 in --help) cat <<EOF Usage: $0 [-C SRCDIR] [DIR] Output a list of version-controlled files in DIR (default .), relative to SRCDIR (default .). SRCDIR must be the top directory of a checkout. Options: --help print this help, then exit --version print version number, then exit -C SRCDIR change directory to SRCDIR before generating list Report bugs and patches to <bug-gnulib@gnu.org>. EOF exit ;; --version) year=`echo "$scriptversion" | sed 's/[^0-9].*//'` cat <<EOF vc-list-files $scriptversion Copyright (C) $year Free Software Foundation, Inc, License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit ;; -C) test "$2" = . || postprocess="| sed 's|^|$2/|'" cd "$2" || exit 1 shift; shift ;; esac + case $1 in dir= + dir= case $# in 0) ;; 1) dir=$1 ;; *) echo "$0: too many arguments" 1>&2 echo "Usage: $0 [-C srcdir] [DIR]" 1>&2; exit 1;; esac + case $# in + dir=m4 test "x$dir" = x && dir=. + test xm4 = x if test -d .git; then test "x$dir" = x. \ && dir= sed_esc= \ || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } # Ignore git symlinks - either they point into the tree, in which case # we don't need to visit the target twice, or they point somewhere # else (often into a submodule), in which case the content does not # belong to this package. eval exec git ls-tree -r 'HEAD:"$dir"' \ \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" eval exec bzr ls -R --versioned '"$dir"' $postprocess elif test -d CVS; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" if test -x build-aux/cvsu; then eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess elif (cvsu --help) >/dev/null 2>&1; then eval cvsu --find --types=AFGM '"$dir"' $postprocess else eval awk -F/ \''{ \ if (!$1 && $3 !~ /^-/) { \ f=FILENAME; \ if (f ~ /CVS\/Entries$/) \ f = substr(f, 1, length(f)-11); \ print f $2; \ }}'\'' \ `find "$dir" -name Entries -print` /dev/null' $postprocess fi elif test -d .svn; then eval exec svn list -R '"$dir"' $postprocess else echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 exit 1 fi + test -d .git + test xm4 = x. + dir=m4/ echo "$dir"|env sed 's,\([\/]\),\\\1,g' ++ echo m4/ ++ env sed 's,\([\/]\),\\\1,g' + sed_esc='m4\/' + eval exec git ls-tree -r 'HEAD:"$dir"' '|' sed -n '"s/^100 [^ ]*./$sed_esc/p"' exec git ls-tree -r HEAD:"$dir" | sed -n "s/^100[^ ]*./$sed_esc/p" ++ exec git ls-tree -r HEAD:m4/ ++ sed -n 's/^100[^ ]*./m4\//p' m4/compiler-flags.m4 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: I also thought this might be useful: nagin@croton:~/LIBVIRT/libvirt-0.8.6-git$ make syntax-check GFDL_version 0.15 GFDL_version TAB_in_indentation 0.04 TAB_in_indentation Wundef_boolean 0.02 Wundef_boolean avoid_ctype_macros 0.18 avoid_ctype_macros avoid_if_before_free 9.73 avoid_if_before_free avoid_write 0.04 avoid_write bindtextdomain 0.04 bindtextdomain cast_of_argument_to_free 0.17 cast_of_argument_to_free cast_of_x_alloc_return_value 0.16 cast_of_x_alloc_return_value changelog 0.02 changelog check_author_list %aE maint.mk: committer(s) not listed in AUTHORS make: *** [sc_check_author_list] Error 1
That will help me figure out whether vc-list-files needs to be patched, and or maint.mk taught to skip tests that require vc-list-files when run from a tarball rather than from a git checkout. Ultimately, 'make syntax-check' is intended for developers working from the latest development repository, and isn't really needed for end users working from a tarball.
-- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
[attachment "signature.asc" deleted by Kenneth Nagin/Haifa/IBM]