mirror of https://gitee.com/openkylin/libvirt.git
build: import gnulib's syntax-check make rules
We're going to be eliminating autotools and gnulib, but we still wish to have the 'make syntax-check' functionality. This imports the minimal set of gnulib files required to keep this working. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
8e4aa7c560
commit
56bd0665c7
|
@ -37,12 +37,15 @@
|
||||||
.sc-start-sc_*
|
.sc-start-sc_*
|
||||||
.ycm_extra_conf.py
|
.ycm_extra_conf.py
|
||||||
/AUTHORS
|
/AUTHORS
|
||||||
/GNUmakefile
|
|
||||||
/INSTALL
|
/INSTALL
|
||||||
/NEWS
|
/NEWS
|
||||||
/aclocal.m4
|
/aclocal.m4
|
||||||
/autom4te.cache
|
/autom4te.cache
|
||||||
/build-aux/*
|
/build-aux/.gitignore
|
||||||
|
/build-aux/compile
|
||||||
|
/build-aux/depcomp
|
||||||
|
/build-aux/missing
|
||||||
|
/build-aux/test-driver
|
||||||
/build/
|
/build/
|
||||||
/ci/scratch/
|
/ci/scratch/
|
||||||
/confdefs.h
|
/confdefs.h
|
||||||
|
@ -95,7 +98,6 @@
|
||||||
/ltconfig
|
/ltconfig
|
||||||
/ltmain.sh
|
/ltmain.sh
|
||||||
/m4/*
|
/m4/*
|
||||||
/maint.mk
|
|
||||||
/mingw-libvirt.spec
|
/mingw-libvirt.spec
|
||||||
/mkinstalldirs
|
/mkinstalldirs
|
||||||
/po/*gmo
|
/po/*gmo
|
||||||
|
@ -264,7 +266,6 @@ stamp-h
|
||||||
stamp-h.in
|
stamp-h.in
|
||||||
stamp-h1
|
stamp-h1
|
||||||
tags
|
tags
|
||||||
!/build-aux/*.pl
|
|
||||||
!/gnulib/lib/Makefile.am
|
!/gnulib/lib/Makefile.am
|
||||||
!/gnulib/tests/Makefile.am
|
!/gnulib/tests/Makefile.am
|
||||||
!/m4/virt-*.m4
|
!/m4/virt-*.m4
|
||||||
|
|
|
@ -0,0 +1,127 @@
|
||||||
|
# Having a separate GNUmakefile lets me 'include' the dynamically
|
||||||
|
# generated rules created via cfg.mk (package-local configuration)
|
||||||
|
# as well as maint.mk (generic maintainer rules).
|
||||||
|
# This makefile is used only if you run GNU Make.
|
||||||
|
# It is necessary if you want to build targets usually of interest
|
||||||
|
# only to the maintainer.
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2006-2019 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 <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# If the user runs GNU make but has not yet run ./configure,
|
||||||
|
# give them a diagnostic.
|
||||||
|
_gl-Makefile := $(wildcard [M]akefile)
|
||||||
|
ifneq ($(_gl-Makefile),)
|
||||||
|
|
||||||
|
# Make tar archive easier to reproduce.
|
||||||
|
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
|
||||||
|
|
||||||
|
# Allow the user to add to this in the Makefile.
|
||||||
|
ALL_RECURSIVE_TARGETS =
|
||||||
|
|
||||||
|
include Makefile
|
||||||
|
|
||||||
|
# Some projects override e.g., _autoreconf here.
|
||||||
|
-include $(srcdir)/cfg.mk
|
||||||
|
|
||||||
|
# Allow cfg.mk to override these.
|
||||||
|
_build-aux ?= build-aux
|
||||||
|
_autoreconf ?= autoreconf -v
|
||||||
|
|
||||||
|
include $(srcdir)/maint.mk
|
||||||
|
|
||||||
|
# Ensure that $(VERSION) is up to date for dist-related targets, but not
|
||||||
|
# for others: rerunning autoreconf and recompiling everything isn't cheap.
|
||||||
|
_have-git-version-gen := \
|
||||||
|
$(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
|
||||||
|
ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
|
||||||
|
_is-dist-target ?= $(filter-out %clean, \
|
||||||
|
$(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS)))
|
||||||
|
_is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS)))
|
||||||
|
ifneq (,$(_is-dist-target)$(_is-install-target))
|
||||||
|
_curr-ver := $(shell cd $(srcdir) \
|
||||||
|
&& $(_build-aux)/git-version-gen \
|
||||||
|
.tarball-version \
|
||||||
|
$(git-version-gen-tag-sed-script))
|
||||||
|
ifneq ($(_curr-ver),$(VERSION))
|
||||||
|
ifeq ($(_curr-ver),UNKNOWN)
|
||||||
|
$(info WARNING: unable to verify if $(VERSION) is the correct version)
|
||||||
|
else
|
||||||
|
ifneq (,$(_is-install-target))
|
||||||
|
# GNU Coding Standards state that 'make install' should not cause
|
||||||
|
# recompilation after 'make all'. But as long as changing the version
|
||||||
|
# string alters config.h, the cost of having 'make all' always have an
|
||||||
|
# up-to-date version is prohibitive. So, as a compromise, we merely
|
||||||
|
# warn when installing a version string that is out of date; the user
|
||||||
|
# should run 'autoreconf' (or something like 'make distcheck') to
|
||||||
|
# fix the version, 'make all' to propagate it, then 'make install'.
|
||||||
|
$(info WARNING: version string $(VERSION) is out of date;)
|
||||||
|
$(info run '$(MAKE) _version' to fix it)
|
||||||
|
else
|
||||||
|
$(info INFO: running autoreconf for new version string: $(_curr-ver))
|
||||||
|
GNUmakefile: _version
|
||||||
|
touch GNUmakefile
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: _version
|
||||||
|
_version:
|
||||||
|
cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) Makefile
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
.DEFAULT_GOAL := abort-due-to-no-makefile
|
||||||
|
srcdir = .
|
||||||
|
|
||||||
|
# The package can override .DEFAULT_GOAL to run actions like autoreconf.
|
||||||
|
-include ./cfg.mk
|
||||||
|
|
||||||
|
# Allow cfg.mk to override these.
|
||||||
|
_build-aux ?= build-aux
|
||||||
|
_autoreconf ?= autoreconf -v
|
||||||
|
|
||||||
|
include ./maint.mk
|
||||||
|
|
||||||
|
ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
|
||||||
|
$(MAKECMDGOALS): abort-due-to-no-makefile
|
||||||
|
endif
|
||||||
|
|
||||||
|
abort-due-to-no-makefile:
|
||||||
|
@echo There seems to be no Makefile in this directory. 1>&2
|
||||||
|
@echo "You must run ./configure before running 'make'." 1>&2
|
||||||
|
@exit 1
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Tell version 3.79 and up of GNU make to not build goals in this
|
||||||
|
# directory in parallel, in case someone tries to build multiple
|
||||||
|
# targets, and one of them can cause a recursive target to be invoked.
|
||||||
|
|
||||||
|
# Only set this if Automake doesn't provide it.
|
||||||
|
AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \
|
||||||
|
$(RECURSIVE_CLEAN_TARGETS:-recursive=) \
|
||||||
|
dist distcheck tags ctags
|
||||||
|
|
||||||
|
ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS)
|
||||||
|
|
||||||
|
ifneq ($(word 2, $(MAKECMDGOALS)), )
|
||||||
|
ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), )
|
||||||
|
.NOTPARALLEL:
|
||||||
|
endif
|
||||||
|
endif
|
|
@ -42,6 +42,8 @@ EXTRA_DIST = \
|
||||||
Makefile.nonreentrant \
|
Makefile.nonreentrant \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
cfg.mk \
|
cfg.mk \
|
||||||
|
GNUmakefile \
|
||||||
|
maint.mk \
|
||||||
run.in \
|
run.in \
|
||||||
README.md \
|
README.md \
|
||||||
AUTHORS.in \
|
AUTHORS.in \
|
||||||
|
@ -108,6 +110,10 @@ clean-cov:
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = .git-module-status
|
MAINTAINERCLEANFILES = .git-module-status
|
||||||
|
|
||||||
|
distclean-local: clean-GNUmakefile
|
||||||
|
clean-GNUmakefile:
|
||||||
|
test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile
|
||||||
|
|
||||||
dist-hook: gen-AUTHORS
|
dist-hook: gen-AUTHORS
|
||||||
|
|
||||||
.PHONY: gen-AUTHORS
|
.PHONY: gen-AUTHORS
|
||||||
|
|
|
@ -49,13 +49,11 @@ getpass
|
||||||
getpeername
|
getpeername
|
||||||
getsockname
|
getsockname
|
||||||
gettimeofday
|
gettimeofday
|
||||||
gnumakefile
|
|
||||||
intprops
|
intprops
|
||||||
ioctl
|
ioctl
|
||||||
largefile
|
largefile
|
||||||
listen
|
listen
|
||||||
localeconv
|
localeconv
|
||||||
maintainer-makefile
|
|
||||||
manywarnings
|
manywarnings
|
||||||
mgetgroups
|
mgetgroups
|
||||||
mkdtemp
|
mkdtemp
|
||||||
|
@ -98,11 +96,9 @@ timegm
|
||||||
ttyname_r
|
ttyname_r
|
||||||
uname
|
uname
|
||||||
unsetenv
|
unsetenv
|
||||||
useless-if-before-free
|
|
||||||
usleep
|
usleep
|
||||||
vasprintf
|
vasprintf
|
||||||
verify
|
verify
|
||||||
vc-list-files
|
|
||||||
vsnprintf
|
vsnprintf
|
||||||
waitpid
|
waitpid
|
||||||
warnings
|
warnings
|
||||||
|
|
|
@ -0,0 +1,226 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#! -*-perl-*-
|
||||||
|
|
||||||
|
# Detect instances of "if (p) free (p);".
|
||||||
|
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
|
||||||
|
|
||||||
|
# Copyright (C) 2008-2019 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 <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Written by Jim Meyering
|
||||||
|
|
||||||
|
# This is a prologue that allows to run a perl script as an executable
|
||||||
|
# on systems that are compliant to a POSIX version before POSIX:2017.
|
||||||
|
# On such systems, the usual invocation of an executable through execlp()
|
||||||
|
# or execvp() fails with ENOEXEC if it is a script that does not start
|
||||||
|
# with a #! line. The script interpreter mentioned in the #! line has
|
||||||
|
# to be /bin/sh, because on GuixSD systems that is the only program that
|
||||||
|
# has a fixed file name. The second line is essential for perl and is
|
||||||
|
# also useful for editing this file in Emacs. The next two lines below
|
||||||
|
# are valid code in both sh and perl. When executed by sh, they re-execute
|
||||||
|
# the script through the perl program found in $PATH. The '-x' option
|
||||||
|
# is essential as well; without it, perl would re-execute the script
|
||||||
|
# through /bin/sh. When executed by perl, the next two lines are a no-op.
|
||||||
|
eval 'exec perl -wSx "$0" "$@"'
|
||||||
|
if 0;
|
||||||
|
|
||||||
|
my $VERSION = '2018-03-07 03:47'; # 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.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Getopt::Long;
|
||||||
|
|
||||||
|
(my $ME = $0) =~ s|.*/||;
|
||||||
|
|
||||||
|
# use File::Coda; # https://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] FILE...
|
||||||
|
|
||||||
|
Detect any instance in FILE of a useless "if" test before a free call, e.g.,
|
||||||
|
"if (p) free (p);". Any such test may be safely removed without affecting
|
||||||
|
the semantics of the C code in FILE. Use --name=FOO --name=BAR to also
|
||||||
|
detect free-like functions named FOO and BAR.
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
|
||||||
|
--list print only the name of each matching FILE (\\0-terminated)
|
||||||
|
--name=N add name N to the list of \'free\'-like functions to detect;
|
||||||
|
may be repeated
|
||||||
|
|
||||||
|
--help display this help and exit
|
||||||
|
--version output version information and exit
|
||||||
|
|
||||||
|
Exit status:
|
||||||
|
|
||||||
|
0 one or more matches
|
||||||
|
1 no match
|
||||||
|
2 an error
|
||||||
|
|
||||||
|
EXAMPLE:
|
||||||
|
|
||||||
|
For example, this command prints all removable "if" tests before "free"
|
||||||
|
and "kfree" calls in the linux kernel sources:
|
||||||
|
|
||||||
|
git ls-files -z |xargs -0 $ME --name=kfree
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
exit $exit_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub is_NULL ($)
|
||||||
|
{
|
||||||
|
my ($expr) = @_;
|
||||||
|
return ($expr eq 'NULL' || $expr eq '0');
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
sub EXIT_MATCH {0}
|
||||||
|
sub EXIT_NO_MATCH {1}
|
||||||
|
sub EXIT_ERROR {2}
|
||||||
|
my $err = EXIT_NO_MATCH;
|
||||||
|
|
||||||
|
my $list;
|
||||||
|
my @name = qw(free);
|
||||||
|
GetOptions
|
||||||
|
(
|
||||||
|
help => sub { usage 0 },
|
||||||
|
version => sub { print "$ME version $VERSION\n"; exit },
|
||||||
|
list => \$list,
|
||||||
|
'name=s@' => \@name,
|
||||||
|
) or usage 1;
|
||||||
|
|
||||||
|
# Make sure we have the right number of non-option arguments.
|
||||||
|
# Always tell the user why we fail.
|
||||||
|
@ARGV < 1
|
||||||
|
and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR;
|
||||||
|
|
||||||
|
my $or = join '|', @name;
|
||||||
|
my $regexp = qr/(?:$or)/;
|
||||||
|
|
||||||
|
# Set the input record separator.
|
||||||
|
# Note: this makes it impractical to print line numbers.
|
||||||
|
$/ = '"';
|
||||||
|
|
||||||
|
my $found_match = 0;
|
||||||
|
FILE:
|
||||||
|
foreach my $file (@ARGV)
|
||||||
|
{
|
||||||
|
open FH, '<', $file
|
||||||
|
or (warn "$ME: can't open '$file' for reading: $!\n"),
|
||||||
|
$err = EXIT_ERROR, next;
|
||||||
|
while (defined (my $line = <FH>))
|
||||||
|
{
|
||||||
|
# Skip non-matching lines early to save time
|
||||||
|
$line =~ /\bif\b/
|
||||||
|
or next;
|
||||||
|
while ($line =~
|
||||||
|
/\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\)
|
||||||
|
# 1 2 3
|
||||||
|
(?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;|
|
||||||
|
\s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg)
|
||||||
|
{
|
||||||
|
my $all = $1;
|
||||||
|
my ($lhs, $rhs) = ($2, $3);
|
||||||
|
my ($free_opnd, $braced_free_opnd) = ($4, $5);
|
||||||
|
my $non_NULL;
|
||||||
|
if (!defined $rhs) { $non_NULL = $lhs }
|
||||||
|
elsif (is_NULL $rhs) { $non_NULL = $lhs }
|
||||||
|
elsif (is_NULL $lhs) { $non_NULL = $rhs }
|
||||||
|
else { next }
|
||||||
|
|
||||||
|
# Compare the non-NULL part of the "if" expression and the
|
||||||
|
# free'd expression, without regard to white space.
|
||||||
|
$non_NULL =~ tr/ \t//d;
|
||||||
|
my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd;
|
||||||
|
$e2 =~ tr/ \t//d;
|
||||||
|
if ($non_NULL eq $e2)
|
||||||
|
{
|
||||||
|
$found_match = 1;
|
||||||
|
$list
|
||||||
|
and (print "$file\0"), next FILE;
|
||||||
|
print "$file: $all\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
{
|
||||||
|
close FH;
|
||||||
|
}
|
||||||
|
|
||||||
|
$found_match && $err == EXIT_NO_MATCH
|
||||||
|
and $err = EXIT_MATCH;
|
||||||
|
|
||||||
|
exit $err;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $foo = <<'EOF';
|
||||||
|
# The above is to *find* them.
|
||||||
|
# This adjusts them, removing the unnecessary "if (p)" part.
|
||||||
|
|
||||||
|
# FIXME: do something like this as an option (doesn't do braces):
|
||||||
|
free=xfree
|
||||||
|
git grep -l -z "$free *(" \
|
||||||
|
| xargs -0 useless-if-before-free -l --name="$free" \
|
||||||
|
| xargs -0 perl -0x3b -pi -e \
|
||||||
|
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s'
|
||||||
|
|
||||||
|
# Use the following to remove redundant uses of kfree inside braces.
|
||||||
|
# Note that -0777 puts perl in slurp-whole-file mode;
|
||||||
|
# but we have plenty of memory, these days...
|
||||||
|
free=kfree
|
||||||
|
git grep -l -z "$free *(" \
|
||||||
|
| xargs -0 useless-if-before-free -l --name="$free" \
|
||||||
|
| xargs -0 perl -0777 -pi -e \
|
||||||
|
's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms'
|
||||||
|
|
||||||
|
Be careful that the result of the above transformation is valid.
|
||||||
|
If the matched string is followed by "else", then obviously, it won't be.
|
||||||
|
|
||||||
|
When modifying files, refuse to process anything other than a regular file.
|
||||||
|
EOF
|
||||||
|
|
||||||
|
## Local Variables:
|
||||||
|
## mode: perl
|
||||||
|
## indent-tabs-mode: nil
|
||||||
|
## eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
## time-stamp-line-limit: 50
|
||||||
|
## time-stamp-start: "my $VERSION = '"
|
||||||
|
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
||||||
|
## time-stamp-time-zone: "UTC0"
|
||||||
|
## time-stamp-end: "'; # UTC"
|
||||||
|
## End:
|
|
@ -0,0 +1,113 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# List version-controlled file names.
|
||||||
|
|
||||||
|
# Print a version string.
|
||||||
|
scriptversion=2018-03-07.03; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 2006-2019 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 <https://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=
|
||||||
|
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 <https://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
|
||||||
|
|
||||||
|
test $# = 0 && set .
|
||||||
|
|
||||||
|
for dir
|
||||||
|
do
|
||||||
|
if test -d .git || test -f .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
|
||||||
|
done
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC0"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
17
cfg.mk
17
cfg.mk
|
@ -1209,7 +1209,7 @@ exclude_file_name_regexp--sc_copyright_format = \
|
||||||
^cfg\.mk$$
|
^cfg\.mk$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_copyright_usage = \
|
exclude_file_name_regexp--sc_copyright_usage = \
|
||||||
^COPYING(|\.LESSER)$$
|
^(COPYING(|\.LESSER))|maint\.mk$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_flags_usage = \
|
exclude_file_name_regexp--sc_flags_usage = \
|
||||||
^(cfg\.mk|docs/|src/util/virnetdevtap\.c$$|tests/((vir(cgroup|pci|test|usb)|nss|qemuxml2argv|qemusecurity)mock|virfilewrapper)\.c$$)
|
^(cfg\.mk|docs/|src/util/virnetdevtap\.c$$|tests/((vir(cgroup|pci|test|usb)|nss|qemuxml2argv|qemusecurity)mock|virfilewrapper)\.c$$)
|
||||||
|
@ -1222,8 +1222,14 @@ exclude_file_name_regexp--sc_po_check = ^(docs/|src/rpc/gendispatch\.pl$$)
|
||||||
exclude_file_name_regexp--sc_prohibit_VIR_ERR_NO_MEMORY = \
|
exclude_file_name_regexp--sc_prohibit_VIR_ERR_NO_MEMORY = \
|
||||||
^(cfg\.mk|include/libvirt/virterror\.h|src/remote/remote_daemon_dispatch\.c|src/util/virerror\.c|docs/internals/oomtesting\.html\.in)$$
|
^(cfg\.mk|include/libvirt/virterror\.h|src/remote/remote_daemon_dispatch\.c|src/util/virerror\.c|docs/internals/oomtesting\.html\.in)$$
|
||||||
|
|
||||||
|
exclude_file_name_regexp--sc_makefile_TAB_only_indentation = \
|
||||||
|
^maint\.mk$$
|
||||||
|
|
||||||
|
exclude_file_name_regexp--sc_makefile_at_at_check = \
|
||||||
|
^maint\.mk$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_PATH_MAX = \
|
exclude_file_name_regexp--sc_prohibit_PATH_MAX = \
|
||||||
^cfg\.mk$$
|
^(maint|cfg)\.mk$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_access_xok = \
|
exclude_file_name_regexp--sc_prohibit_access_xok = \
|
||||||
^(cfg\.mk|src/util/virutil\.c)$$
|
^(cfg\.mk|src/util/virutil\.c)$$
|
||||||
|
@ -1265,7 +1271,7 @@ exclude_file_name_regexp--sc_prohibit_canonicalize_file_name = \
|
||||||
^(cfg\.mk|tests/virfilemock\.c)$$
|
^(cfg\.mk|tests/virfilemock\.c)$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
|
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
|
||||||
^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock|commandhelper)\.c|tools/wireshark/src/packet-libvirt\.c|tools/nss/libvirt_nss(_leases|_macs)?\.c)$$
|
^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock|commandhelper)\.c|tools/wireshark/src/packet-libvirt\.c|tools/nss/libvirt_nss(_leases|_macs)?\.c|build-aux/useless-if-before-free)$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_readlink = \
|
exclude_file_name_regexp--sc_prohibit_readlink = \
|
||||||
^src/(util/virutil|lxc/lxc_container)\.c$$
|
^src/(util/virutil|lxc/lxc_container)\.c$$
|
||||||
|
@ -1283,7 +1289,7 @@ exclude_file_name_regexp--sc_prohibit_xmlGetProp = ^src/util/virxml\.c$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_xmlURI = ^src/util/viruri\.c$$
|
exclude_file_name_regexp--sc_prohibit_xmlURI = ^src/util/viruri\.c$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_return_as_function = \.py$$
|
exclude_file_name_regexp--sc_prohibit_return_as_function = \.py|build-aux/useless-if-before-free$$
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_require_config_h = \
|
exclude_file_name_regexp--sc_require_config_h = \
|
||||||
^(examples/|tools/virsh-edit\.c$$|tests/virmockstathelpers.c)
|
^(examples/|tools/virsh-edit\.c$$|tests/virmockstathelpers.c)
|
||||||
|
@ -1354,3 +1360,6 @@ exclude_file_name_regexp--sc_prohibit_dirent_d_type = \
|
||||||
|
|
||||||
exclude_file_name_regexp--sc_prohibit_strcmp = \
|
exclude_file_name_regexp--sc_prohibit_strcmp = \
|
||||||
^(tools/nss/libvirt_nss.*\.c|tools/virt-login-shell\.c)
|
^(tools/nss/libvirt_nss.*\.c|tools/virt-login-shell\.c)
|
||||||
|
|
||||||
|
exclude_file_name_regexp--sc_prohibit_backslash_alignment = \
|
||||||
|
^maint\.mk$$
|
||||||
|
|
|
@ -915,6 +915,12 @@ AC_DEFINE_UNQUOTED([isbase64],[libvirt_gl_isbase64],[Hack to avoid symbol clash]
|
||||||
AC_DEFINE_UNQUOTED([base64_encode],[libvirt_gl_base64_encode],[Hack to avoid symbol clash])
|
AC_DEFINE_UNQUOTED([base64_encode],[libvirt_gl_base64_encode],[Hack to avoid symbol clash])
|
||||||
AC_DEFINE_UNQUOTED([base64_encode_alloc],[libvirt_gl_base64_encode_alloc],[Hack to avoid symbol clash])
|
AC_DEFINE_UNQUOTED([base64_encode_alloc],[libvirt_gl_base64_encode_alloc],[Hack to avoid symbol clash])
|
||||||
|
|
||||||
|
GNUmakefile=GNUmakefile
|
||||||
|
m4_if(m4_version_compare([2.61a.100],
|
||||||
|
m4_defn([m4_PACKAGE_VERSION])), [1], [],
|
||||||
|
[AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
|
||||||
|
[GNUmakefile=$GNUmakefile])])
|
||||||
|
|
||||||
AC_CONFIG_FILES([run],
|
AC_CONFIG_FILES([run],
|
||||||
[chmod +x,-w run])
|
[chmod +x,-w run])
|
||||||
AC_CONFIG_FILES([\
|
AC_CONFIG_FILES([\
|
||||||
|
|
Loading…
Reference in New Issue