I'll push these later today.
>From 33322c1811340ca041374e1657dacd1860037f37 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email protected]>
Date: Thu, 8 Jan 2009 13:05:23 +0100
Subject: [PATCH 1/3] parted/ui.c: Include <config.h> before everything else
---
parted/ui.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/parted/ui.c b/parted/ui.c
index 3a9c10d..f294ee0 100644
--- a/parted/ui.c
+++ b/parted/ui.c
@@ -1,6 +1,6 @@
/*
parted - a frontend to libparted
- Copyright (C) 1999, 2000, 2001, 2002, 2006, 2007, 2008
+ Copyright (C) 1999, 2000, 2001, 2002, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -16,6 +16,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <config.h>
#include <parted/parted.h>
#include <parted/debug.h>
@@ -27,7 +28,6 @@
#include <unistd.h>
#include <setjmp.h>
-#include <config.h>
#include "command.h"
#include "strlist.h"
#include "ui.h"
--
1.6.1.141.gfe98e
>From 3d3014159b283863ed79f3d4d5343e2dc434e209 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email protected]>
Date: Thu, 8 Jan 2009 13:11:36 +0100
Subject: [PATCH 2/3] better m4-quoting for autoconf macros
* configure.ac: Add quotes.
* m4/parted.m4: Likewise.
All changed were automatically induced via this command:
(git ls-files | grep '\.m4$'; echo configure.ac) | xargs perl -pi \
-e 's/(AC_[A-Z_]+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_[A-Z_]+\((?:\[[^,]+?\], ){1})([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_[A-Z_]+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_[A-Z_]+\((?:\[[^,]+?\], ){3})([^,[()]+?)([,)])/$1\[$2]$3/g'
---
configure.ac | 126 +++++++++++++++++++++++++++++-----------------------------
m4/parted.m4 | 24 ++++++------
2 files changed, 75 insertions(+), 75 deletions(-)
diff --git a/configure.ac b/configure.ac
index 996e96a..65ddedc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,17 +3,17 @@ dnl Copyright (C) 1998-2002, 2005-2008 Free Software
Foundation, Inc.
dnl
dnl This file may be modified and/or distributed without restriction.
-AC_PREREQ(2.61)
+AC_PREREQ([2.61])
AC_INIT([GNU parted], m4_esyscmd([build-aux/git-version-gen .version]),
[[email protected]])
# When the most recent signed tag is v1.8.8.1,
# the above might set e.g., PACKAGE_VERSION='1.8.8.1.1-0bfc'
-AC_CONFIG_SRCDIR(include/parted/parted.h)
+AC_CONFIG_SRCDIR([include/parted/parted.h])
AC_CONFIG_HEADERS([lib/config.h:lib/config.h.in])
-AC_CONFIG_AUX_DIR(build-aux)
+AC_CONFIG_AUX_DIR([build-aux])
dnl Versioning
dnl Shamelessly pulled straight from glib's configure.in ...
@@ -47,10 +47,10 @@ LT_RELEASE=$PED_MAJOR_VERSION.$PED_MINOR_VERSION
LT_CURRENT=`expr $PED_MICRO_VERSION - $PED_INTERFACE_AGE`
LT_REVISION=$PED_INTERFACE_AGE
LT_AGE=`expr $PED_BINARY_AGE - $PED_INTERFACE_AGE`
-AC_SUBST(LT_RELEASE)
-AC_SUBST(LT_CURRENT)
-AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
+AC_SUBST([LT_RELEASE])
+AC_SUBST([LT_CURRENT])
+AC_SUBST([LT_REVISION])
+AC_SUBST([LT_AGE])
AM_INIT_AUTOMAKE([1.10 dist-bzip2])
@@ -61,20 +61,20 @@ case "$host_os" in
beos*) OS=beos ;;
*) AC_MSG_ERROR([Unknown or unsupported OS "$host_os". Only
"linux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
esac
-AC_SUBST(OS)
+AC_SUBST([OS])
dnl Command-line options
-AC_ARG_WITH(readline,
+AC_ARG_WITH([readline],
[ --with-readline support fancy command line editing], ,
with_readline=yes
)
-AC_ARG_ENABLE(mtrace,
+AC_ARG_ENABLE([mtrace],
[ --enable-mtrace enable malloc() debugging], ,
enable_mtrace=no
)
if test "$enable_mtrace" = yes; then
- AC_DEFINE(ENABLE_MTRACE, 1, [Mtrace malloc() debugging])
+ AC_DEFINE([ENABLE_MTRACE], [1], [Mtrace malloc() debugging])
fi
AC_SUBST([ENABLE_DEVICE_MAPPER])
@@ -87,21 +87,21 @@ if test $ENABLE_DEVICE_MAPPER = yes; then
1, [device mapper (libdevmapper) support])
fi
-AC_ARG_ENABLE(selinux,
+AC_ARG_ENABLE([selinux],
[ --enable-selinux enable SELinux support [default=no]], ,
enable_selinux=no
)
-AC_ARG_ENABLE(discover-only,
+AC_ARG_ENABLE([discover-only],
[ --enable-discover-only support only reading/probing [default=no]], ,
enable_discover_only=no
)
if test "$enable_discover_only" = yes; then
- AC_DEFINE(DISCOVER_ONLY, 1, [Probing functionality only])
+ AC_DEFINE([DISCOVER_ONLY], [1], [Probing functionality only])
fi
PARTED_LIBS=""
-AC_ARG_ENABLE(dynamic-loading,
+AC_ARG_ENABLE([dynamic-loading],
[ --enable-dynamic-loading support dynamic fs libraries [default=yes]], ,
if test "$enable_discover_only" = yes; then
enable_dynamic_loading=no
@@ -115,57 +115,57 @@ if test "$enable_discover_only" = yes -a
"$enable_dynamic_loading" = yes; then
)
fi
-AC_ARG_ENABLE(fs,
+AC_ARG_ENABLE([fs],
[ --enable-fs include filesystem support [default=yes]], ,
enable_fs=yes
)
if test "$enable_fs" = yes; then
- AC_DEFINE(ENABLE_FS, 1,
+ AC_DEFINE([ENABLE_FS], [1],
[Include file system support. i.e. libparted/fs_...])
fi
-AC_ARG_ENABLE(debug,
+AC_ARG_ENABLE([debug],
[ --enable-debug compile in assertions [default=yes]], ,
enable_debug=yes
)
if test "$enable_debug" = yes; then
- AC_DEFINE(DEBUG, 1, [Enable assertions, etc.])
+ AC_DEFINE([DEBUG], [1], [Enable assertions, etc.])
fi
-AC_ARG_ENABLE(read-only,
+AC_ARG_ENABLE([read-only],
[ --enable-read-only disable writing (for debugging) [default=no]]
, ,
enable_read_only=no
)
if test "$enable_read_only" = yes; then
- AC_DEFINE(READ_ONLY, 1, [Disable all writing code])
+ AC_DEFINE([READ_ONLY], [1], [Disable all writing code])
fi
PARTEDLDFLAGS=
-AC_SUBST(PARTEDLDFLAGS)
+AC_SUBST([PARTEDLDFLAGS])
-AC_ARG_ENABLE(pc98,
+AC_ARG_ENABLE([pc98],
[ --enable-pc98 build with pc98 support [default=yes]], ,
enable_pc98=yes
)
if test "$enable_pc98" = yes; then
- AC_DEFINE(ENABLE_PC98, 1,
+ AC_DEFINE([ENABLE_PC98], [1],
[Include PC98 partition tables. (Sometimes excluded to avoid
collisions with msdos partition tables])
fi
-AC_ARG_ENABLE(Werror,
+AC_ARG_ENABLE([Werror],
[ --enable-Werror build with gcc -Werror [default=yes]], ,
enable_Werror=yes
)
-AC_ARG_ENABLE(hfs-extract-fs,
+AC_ARG_ENABLE([hfs-extract-fs],
[ --enable-hfs-extract-fs Extract special HFS files for debugging
[default=no]], ,
enable_hfs_extract_fs=no
)
if test "$enable_hfs_extract_fs" = yes; then
- AC_DEFINE(HFS_EXTRACT_FS, 1,
+ AC_DEFINE([HFS_EXTRACT_FS], [1],
[Extract low level special HFS(+) files for debugging purposes
when using the "check" command (NOT FOR PACKAGING)])
fi
@@ -190,7 +190,7 @@ AC_SYS_LARGEFILE
gl_INIT
-AC_CHECK_SIZEOF(off_t, 64, [
+AC_CHECK_SIZEOF([off_t], [64], [
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
@@ -225,20 +225,20 @@ fi
dnl Check for libdl, if we are doing dynamic loading
DL_LIBS=""
if test "$enable_dynamic_loading" = yes; then
- AC_CHECK_LIB(dl, dlopen,
+ AC_CHECK_LIB([dl], [dlopen],
DL_LIBS="-ldl"
PARTED_LIBS="$PARTED_LIBS -ldl"
- AC_DEFINE(DYNAMIC_LOADING, 1, [Lazy linking to fs libs]),
+ AC_DEFINE([DYNAMIC_LOADING], [1], [Lazy linking to fs libs]),
AC_MSG_ERROR(
[-ldl not found! Try using --disable-dynamic-loading]
)
)
fi
-AC_SUBST(DL_LIBS)
+AC_SUBST([DL_LIBS])
dnl Check for libuuid
UUID_LIBS=""
-AC_CHECK_LIB(uuid, uuid_generate, UUID_LIBS="-luuid",
+AC_CHECK_LIB([uuid], [uuid_generate], [UUID_LIBS="-luuid"],
AC_MSG_ERROR(
GNU Parted requires libuuid - a part of the e2fsprogs package (but
sometimes distributed separately in uuid-devel or similar)
@@ -250,7 +250,7 @@ If you compile e2fsprogs yourself then you need to do 'make
install' and
'make install-libs'.
)
)
-AC_SUBST(UUID_LIBS)
+AC_SUBST([UUID_LIBS])
dnl Check for libdevmapper
DM_LIBS=
@@ -260,38 +260,38 @@ if test $ENABLE_DEVICE_MAPPER = yes; then
[AC_MSG_ERROR([libdevmapper not found! Try using --disable-device-mapper])
])
fi
-AC_SUBST(DM_LIBS)
+AC_SUBST([DM_LIBS])
dnl Check for SELinux
SELINUX_LIBS=""
if test "$enable_selinux" = yes; then
SELINUX_LIBS="-lselinux -lsepol"
fi
-AC_SUBST(SELINUX_LIBS)
+AC_SUBST([SELINUX_LIBS])
dnl Check for libreiserfs
REISER_LIBS=""
if test "$enable_dynamic_loading" = no -a "$enable_discover_only" = no; then
OLD_LIBS="$LIBS"
- AC_CHECK_LIB(dal, dal_equals,
+ AC_CHECK_LIB([dal], [dal_equals],
LIBS="-ldal"
- AC_CHECK_LIB(reiserfs, reiserfs_fs_probe,
+ AC_CHECK_LIB([reiserfs], [reiserfs_fs_probe],
REISER_LIBS="-ldal -lreiserfs"
- AC_DEFINE(HAVE_LIBREISERFS, 1, [Have libreiserfs])
+ AC_DEFINE([HAVE_LIBREISERFS], [1], [Have libreiserfs])
)
- AC_CHECK_LIB(reiserfs, reiserfs_fs_check,
- AC_DEFINE(HAVE_REISERFS_FS_CHECK, 1, [Have
reiserfs_fs_check()])
+ AC_CHECK_LIB([reiserfs], [reiserfs_fs_check],
+ AC_DEFINE([HAVE_REISERFS_FS_CHECK], [1], [Have
reiserfs_fs_check()])
)
)
LIBS="$OLD_LIBS"
fi
-AC_SUBST(REISER_LIBS)
+AC_SUBST([REISER_LIBS])
dnl Check for termcap
if test "$with_readline" = yes; then
OLD_LIBS="$LIBS"
LIBS=""
- AC_SEARCH_LIBS(tgetent, tinfo ncurses curses termcap termlib,
+ AC_SEARCH_LIBS([tgetent], [tinfo ncurses curses termcap termlib],
PARTED_LIBS="$PARTED_LIBS $LIBS",
AC_MSG_ERROR(
termcap could not be found which is required for the
@@ -315,7 +315,7 @@ if test "$with_readline" = yes; then
OLD_LIBS="$LIBS"
LIBS="$LIBS $PARTED_LIBS"
found_working_libreadline=no
- AC_CHECK_LIB(readline, readline,
+ AC_CHECK_LIB([readline], [readline],
found_working_libreadline=yes,
AC_MSG_ERROR(
GNU Readline could not be found which is required for the
@@ -360,19 +360,19 @@ Consider upgrading to version 5.2 or newer.)
if test $found_working_libreadline = yes; then
PARTED_LIBS="-lreadline $PARTED_LIBS"
- AC_DEFINE(HAVE_LIBREADLINE, 1, [have readline])
+ AC_DEFINE([HAVE_LIBREADLINE], [1], [have readline])
fi
LIBS="$OLD_LIBS"
fi
-AC_SUBST(PARTED_LIBS)
+AC_SUBST([PARTED_LIBS])
dnl Check for OS specific libraries
dnl GNU/Hurd:
if test "$OS" = gnu; then
dnl libshouldbeinlibc
- AC_CHECK_LIB(shouldbeinlibc, vm_deallocate,
+ AC_CHECK_LIB([shouldbeinlibc], [vm_deallocate],
OS_LIBS="$OS_LIBS -lshouldbeinlibc",
AC_MSG_ERROR(
GNU Parted requires libshouldbeinlibc when running on
@@ -385,10 +385,10 @@ dnl Aren't circular dependencies wonderful?
OLD_LIBS="$LIBS"
LIBS=
- AC_CHECK_LIB(parted, ped_device_read)
+ AC_CHECK_LIB([parted], [ped_device_read])
dnl libstore
- AC_CHECK_LIB(store, store_open,
+ AC_CHECK_LIB([store], [store_open],
OS_LIBS="$OS_LIBS -lstore",
AC_MSG_ERROR(
GNU Parted requires libstore when running on GNU/Hurd
@@ -408,17 +408,17 @@ if test "$OS" = beos; then
OS_LIBS="$OS_LIBS -lsocket"
fi
-AC_SUBST(OS_LIBS)
+AC_SUBST([OS_LIBS])
dnl One day, gettext might support libtool...
dnl if test "$USE_INCLUDED_LIBINTL" = "yes"; then
dnl INTLINCS='-I$(top_srcdir)/intl'
dnl fi
-AC_SUBST(INTLINCS)
+AC_SUBST([INTLINCS])
dnl Checks for header files.
-AC_CHECK_HEADER(uuid/uuid.h, ,
+AC_CHECK_HEADER([uuid/uuid.h], ,
AC_MSG_ERROR(
GNU Parted requires libuuid - a part of the e2fsprogs package.
You seem to have the library installed but not the headers. These are usually
@@ -428,15 +428,15 @@ If you can't find one try:
)
)
-AC_CHECK_HEADERS(getopt.h)
+AC_CHECK_HEADERS([getopt.h])
dnl required for libparted/llseek.c (TODO: make linux-x86 only)
if test "$OS" = linux; then
- AC_CHECK_HEADER(linux/unistd.h)
+ AC_CHECK_HEADER([linux/unistd.h])
fi
if test "$with_readline" = yes; then
- AC_CHECK_HEADERS(readline/readline.h readline/history.h, ,
+ AC_CHECK_HEADERS([readline/readline.h readline/history.h], ,
AC_MSG_ERROR(
The headers for GNU Readline could not be found which
are required for the --with-readline option. You seem to have the GNU readline
@@ -449,10 +449,10 @@ Alternatively you can disable readline support with
--without-readline
)
fi
-AC_CHECK_HEADERS(termcap.h)
+AC_CHECK_HEADERS([termcap.h])
if test "$USE_NLS" = yes; then
- AC_CHECK_HEADERS(wctype.h, ,
+ AC_CHECK_HEADERS([wctype.h], ,
AC_MSG_ERROR(
One or more of the header files that are required for
native language support (wctype.h) could not be found. Either get a newer
@@ -464,8 +464,8 @@ Or disable native language support with the --disable-nls
option
fi
AC_CHECK_HEADER([execinfo.h], [
- AC_CHECK_LIB(c, backtrace, [
- AC_DEFINE(HAVE_BACKTRACE, 1, [Has backtrace support])
+ AC_CHECK_LIB([c], [backtrace], [
+ AC_DEFINE([HAVE_BACKTRACE], [1], [Has backtrace support])
LDFLAGS="$LDFLAGS -rdynamic"
])
])
@@ -488,8 +488,8 @@ AC_C_CONST
AC_C_RESTRICT
dnl Checks for library functions.
-AC_CHECK_FUNCS(sigaction)
-AC_CHECK_FUNCS(getuid)
+AC_CHECK_FUNCS([sigaction])
+AC_CHECK_FUNCS([getuid])
dnl NOTE: We need to remove the gl_cv_ignore_unused_libraries flag if we
dnl detected one earlier. libreadline on some platforms (e.g., RHEL and
@@ -497,11 +497,11 @@ dnl Fedora) is left with
if test "$with_readline" = yes; then
OLD_LIBS="$LIBS"
LIBS="$LIBS $PARTED_LIBS -lreadline"
- AC_CHECK_FUNCS(rl_completion_matches)
+ AC_CHECK_FUNCS([rl_completion_matches])
LIBS="$OLD_LIBS"
fi
-AC_CHECK_FUNCS(canonicalize_file_name)
+AC_CHECK_FUNCS([canonicalize_file_name])
# CFLAGS="$CFLAGS -W -Wall -Wno-unused -Wno-switch -Wno-format"
@@ -513,7 +513,7 @@ DATE=$(date '+%d %b %Y %H:%M')
USER=$(whoami)
HOST=$(hostname)
BUILDINFO="$u...@$host, $DATE"
-AC_SUBST(BUILDINFO)
+AC_SUBST([BUILDINFO])
AC_OUTPUT([
Makefile
diff --git a/m4/parted.m4 b/m4/parted.m4
index 9f1e81d..81b52c4 100644
--- a/m4/parted.m4
+++ b/m4/parted.m4
@@ -9,7 +9,7 @@ dnl Example:
dnl PARTED_CHECK_LIBPARTED(1.2.8, , [AC_MSG_ERROR([*** libparted >= 1.2.8 not
installed - please install first ***])])
dnl
dnl Adds the required libraries to $PARTED_LIBS and does an
-dnl AC_SUBST(PARTED_LIBS)
+dnl AC_SUBST([PARTED_LIBS])
dnl
@@ -21,13 +21,13 @@ dnl save LIBS
saved_LIBS="$LIBS"
dnl Check for headers and library
-AC_CHECK_HEADER(parted/parted.h, ,
+AC_CHECK_HEADER([parted/parted.h], ,
[AC_MSG_ERROR([<parted/parted.h> not found; install
GNU/Parted])]
$3)
-AC_CHECK_LIB(uuid, uuid_generate, ,
+AC_CHECK_LIB([uuid], [uuid_generate], ,
[AC_MSG_ERROR([libuuid not found; install e2fsprogs available at
http://web.mit.edu/tytso/www/linux/e2fsprogs.html])]
$3)
-AC_CHECK_LIB(parted,ped_device_read, ,
+AC_CHECK_LIB([parted],ped_device_read, ,
[AC_MSG_ERROR([libparted not found; install GNU/Parted available
at http://www.gnu.org/software/parted/parted.html])]
$3)
@@ -36,21 +36,21 @@ case "$host_os" in
# with very generic names, which is why we special
# case these tests.
- AC_CHECK_LIB(shouldbeinlibc,lcm, ,
+ AC_CHECK_LIB([shouldbeinlibc],lcm, ,
[AC_MSG_ERROR([libshouldbeinlibc not found; install the
Hurd development libraries.])]
$3)
- AC_CHECK_LIB(store,store_open, ,
+ AC_CHECK_LIB([store],store_open, ,
[AC_MSG_ERROR([libstore not found; install the Hurd
development libraries.])]
$3)
;;
*) ;;
esac
-AC_MSG_CHECKING(for libparted - version >= $1)
+AC_MSG_CHECKING([for libparted - version >= $1])
-AC_TRY_LINK_FUNC(ped_get_version,,
- AC_MSG_RESULT(failed)
+AC_TRY_LINK_FUNC([ped_get_version],,
+ AC_MSG_RESULT([failed])
AC_MSG_ERROR([*** libparted < 1.2.8 or == 1.3.0 can't execute
test ***]))
dnl Get major, minor, and micro version from arg MINIMUM-VERSION
@@ -95,14 +95,14 @@ int main ()
}
}
],
- AC_MSG_RESULT(yes),
- AC_MSG_RESULT(no) ; $3,
+ AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no]) ; $3,
[echo $ac_n "cross compiling; assumed OK... $ac_c"])
dnl restore orignial LIBS and set @PARTED_LIBS@
PARTED_LIBS="$LIBS"
LIBS="$saved_LIBS"
-AC_SUBST(PARTED_LIBS)
+AC_SUBST([PARTED_LIBS])
dnl Execute ACTION-IF-FOUND
$2
--
1.6.1.141.gfe98e
>From 81580fb08b0d44b72229d5f53cfb38f936892a01 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email protected]>
Date: Thu, 8 Jan 2009 11:40:45 +0100
Subject: [PATCH 3/3] maint.mk: sync from coreutils
---
maint.mk | 334 ++++++++++++++++++++++----------------------------------------
1 files changed, 120 insertions(+), 214 deletions(-)
diff --git a/maint.mk b/maint.mk
index 64e8deb..9c6bc68 100644
--- a/maint.mk
+++ b/maint.mk
@@ -2,7 +2,7 @@
# This Makefile fragment tries to be general-purpose enough to be
# used by at least coreutils, idutils, CPPI, Bison, and Autoconf.
-## Copyright (C) 2001-2008 Free Software Foundation, Inc.
+## Copyright (C) 2001-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
@@ -31,7 +31,7 @@ GIT = git
VC = $(GIT)
VC-tag = git tag -s -m '$(VERSION)'
-VC_LIST = build-aux/vc-list-files
+VC_LIST = $(srcdir)/build-aux/vc-list-files
VC_LIST_EXCEPT = \
$(VC_LIST) | if test -f .x-$@; then grep -vEf .x-$@; else grep -v ChangeLog;
fi
@@ -70,13 +70,11 @@ export LC_ALL = C
# Collect the names of rules starting with `sc_'.
syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
- $(srcdir)/$(ME))
+ $(srcdir)/$(ME) $(srcdir)/cfg.mk)
.PHONY: $(syntax-check-rules)
local-checks-available = \
- po-check copyright-check m4-check author_mark_check \
- patch-check strftime-check $(syntax-check-rules) \
- makefile_path_separator_check \
+ patch-check $(syntax-check-rules) \
makefile-check check-AUTHORS
.PHONY: $(local-checks-available)
@@ -94,6 +92,17 @@ syntax-check: $(local-check)
# exit 1; } || :
# FIXME: don't allow `#include .strings\.h' anywhere
+# There are many rules below that prohibit constructs in this package.
+# If the offending construct can be matched with a grep-E-style regexp,
+# use this macro. The shell variables "re" and "msg" must be defined.
+define _prohibit_regexp
+ dummy=; : so we do not need a semicolon before each use \
+ test "x$$re" != x || { echo '$(ME): re not defined' 1>&2; exit 1; }; \
+ test "x$$msg" != x || { echo '$(ME): msg not defined' 1>&2; exit 1; };\
+ grep -nE "$$re" $$($(VC_LIST_EXCEPT)) && \
+ { echo '$(ME): '"$$msg" 1>&2; exit 1; } || :
+endef
+
sc_avoid_if_before_free:
@$(srcdir)/build-aux/useless-if-before-free \
$(useless_free_options) \
@@ -102,37 +111,35 @@ sc_avoid_if_before_free:
exit 1; } || :
sc_cast_of_argument_to_free:
- @grep -nE '\<free *\( *\(' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): don'\''t cast free argument' 1>&2; \
- exit 1; } || :
+ @re='\<free *\( *\(' msg='don'\''t cast free argument' \
+ $(_prohibit_regexp)
sc_cast_of_x_alloc_return_value:
- @grep -nE '\*\) *x(m|c|re)alloc\>' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \
- exit 1; } || :
+ @re='\*\) *x(m|c|re)alloc\>' \
+ msg='don'\''t cast x*alloc return value' \
+ $(_prohibit_regexp)
sc_cast_of_alloca_return_value:
- @grep -nE '\*\) *alloca\>' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): don'\''t cast alloca return value' 1>&2; \
- exit 1; } || :
+ @re='\*\) *alloca\>' msg='don'\''t cast alloca return value' \
+ $(_prohibit_regexp)
sc_space_tab:
- @grep -n '[ ] ' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \
- 1>&2; exit 1; } || :
+ @re='[ ] ' msg='found SPACE-TAB sequence; remove the SPACE' \
+ $(_prohibit_regexp)
# Don't use *scanf or the old ato* functions in `real' code.
# They provide no error checking mechanism.
# Instead, use strto* functions.
sc_prohibit_atoi_atof:
- @grep -nE '\<([fs]?scanf|ato([filq]|ll))\>' $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): do not use *scan''f, ato''f, ato''i, ato''l, ato''ll,
ato''q, or ss''canf' \
- 1>&2; exit 1; } || :
+ @re='\<([fs]?scanf|ato([filq]|ll))\>' \
+ msg='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \
+ $(_prohibit_regexp)
# Use STREQ rather than comparing strcmp == 0, or != 0.
sc_prohibit_strcmp:
@grep -nE '! *str''cmp *\(|\<str''cmp *\([^)]+\) *==' \
- $$($(VC_LIST_EXCEPT)) && \
+ $$($(VC_LIST_EXCEPT)) \
+ | grep -vE ':# *define STREQ\(' && \
{ echo '$(ME): use STREQ in place of the above uses of str''cmp' \
1>&2; exit 1; } || :
@@ -190,6 +197,25 @@ sc_require_config_h:
else :; \
fi
+# You must include <config.h> before including any other header file.
+sc_require_config_h_first:
+ @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \
+ fail=0; \
+ for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \
+ grep '^# *include\>' $$i | sed 1q \
+ | grep '^# *include <config\.h>' > /dev/null \
+ || { echo $$i; fail=1; }; \
+ done; \
+ test $$fail = 1 && \
+ { echo '$(ME): the above files include some other header' \
+ 'before <config.h>' 1>&2; exit 1; } || :; \
+ else :; \
+ fi
+
+sc_prohibit_HAVE_MBRTOWC:
+ @re='\bHAVE_MBRTOWC\b' msg="do not use $$re; it is always defined" \
+ $(_prohibit_regexp)
+
# To use this "command" macro, you must first define two shell variables:
# h: the header, enclosed in <> or ""
# re: a regular expression that matches IFF something provided by $h is used.
@@ -265,105 +291,6 @@ sc_changelog:
{ echo '$(ME): found unexpected prefix in a ChangeLog' 1>&2; \
exit 1; } || :
-# Ensure that dd's definition of LONGEST_SYMBOL stays in sync
-# with the strings from the two affected variables.
-dd_c = $(srcdir)/src/dd.c
-sc_dd_max_sym_length:
-ifneq ($(wildcard $(dd_c)),)
- @len=$$( (sed -n '/conversions\[\] =$$/,/^};/p' $(dd_c);\
- sed -n '/flags\[\] =$$/,/^};/p' $(dd_c) ) \
- |sed -n '/"/s/^[^"]*"\([^"]*\)".*/\1/p' \
- | wc --max-line-length); \
- max=$$(sed -n '/^#define LONGEST_SYMBOL /s///p' $(dd_c) \
- |tr -d '"' | wc --max-line-length); \
- if test "$$len" = "$$max"; then :; else \
- echo 'dd.c: LONGEST_SYMBOL is not longest' 1>&2; \
- exit 1; \
- fi
-endif
-
-# Many m4 macros names once began with `jm_'.
-# On 2004-04-13, they were all changed to start with gl_ instead.
-# Make sure that none are inadvertently reintroduced.
-sc_prohibit_jm_in_m4:
- @grep -nE 'jm_[A-Z]' \
- $$($(VC_LIST) m4 |grep '\.m4$$'; echo /dev/null) && \
- { echo '$(ME): do not use jm_ in m4 macro names' \
- 1>&2; exit 1; } || :
-
-# Ensure that each root-requiring test is run via the "check-root" rule.
-sc_root_tests:
- @if test -d tests \
- && grep check-root tests/Makefile.am>/dev/null 2>&1; then \
- t1=sc-root.expected; t2=sc-root.actual; \
- grep -nl '^require_root_$$' \
- $$($(VC_LIST) tests) |sed s,tests/,, |sort > $$t1; \
- sed -n '/^root_tests =[ ]*\\$$/,/[^\]$$/p' \
- $(srcdir)/tests/Makefile.am \
- | sed 's/^ *//;/^root_tests =/d' \
- | tr -s '\012\\' ' ' | fmt -1 | sort > $$t2; \
- diff -u $$t1 $$t2 || diff=1; \
- rm -f $$t1 $$t2; \
- test "$$diff" \
- && { echo 'tests/Makefile.am: missing check-root action'>&2; \
- exit 1; } || :; \
- fi
-
-headers_with_interesting_macro_defs = \
- exit.h \
- fcntl_.h \
- fnmatch_.h \
- intprops.h \
- inttypes_.h \
- lchown.h \
- openat.h \
- stat-macros.h \
- stdint_.h
-
-# Create a list of regular expressions matching the names
-# of macros that are guaranteed by parts of gnulib to be defined.
-.re-defmac:
- @(cd $(srcdir)/lib; \
- for f in $(headers_with_interesting_macro_defs); do \
- test -f $$f && \
- sed -n '/^# *define \([^_ (][^ (]*\)[ (].*/s//\1/p' $$f; \
- done; \
- ) | sort -u \
- | grep -Ev 'ATTRIBUTE_NORETURN|SIZE_MAX' \
- | sed 's/^/^# *define /' \
- > $...@-t
- @mv $...@-t $@
-
-# Don't define macros that we already get from gnulib header files.
-sc_always_defined_macros: .re-defmac
- @if test -f $(srcdir)/src/system.h; then \
- trap 'rc=$$?; rm -f .re-defmac; exit $$rc' 0 1 2 3 15; \
- grep -f .re-defmac $$($(VC_LIST)) \
- && { echo '$(ME): define the above via some gnulib .h file' \
- 1>&2; exit 1; } || :; \
- fi
-
-# Create a list of regular expressions matching the names
-# of files included from system.h. Exclude a couple.
-.re-list:
- @sed -n '/^# *include /s///p' $(srcdir)/src/system.h \
- | grep -Ev 'sys/(param|file)\.h' \
- | sed 's/ .*//;;s/^["<]/^# *include [<"]/;s/\.h[">]$$/\\.h[">]/' \
- > $...@-t
- @mv $...@-t $@
-
-# Files in src/ should not include directly any of
-# the headers already included via system.h.
-sc_system_h_headers: .re-list
- @if test -f $(srcdir)/src/system.h; then \
- trap 'rc=$$?; rm -f .re-list; exit $$rc' 0 1 2 3 15; \
- grep -nE -f .re-list \
- $$($(VC_LIST) src | \
- grep -Ev '((copy|system)\.h|parse-gram\.c)$$') \
- && { echo '$(ME): the above are already included via system.h'\
- 1>&2; exit 1; } || :; \
- fi
-
# Ensure that each .c file containing a "main" function also
# calls set_program_name.
sc_program_name:
@@ -377,36 +304,26 @@ sc_program_name:
fi
# Require that the final line of each test-lib.sh-using test be this one:
-# (exit $fail); exit $fail
+# Exit $fail
# Note: this test requires GNU grep's --label= option.
sc_require_test_exit_idiom:
@if test -f $(srcdir)/tests/test-lib.sh; then \
die=0; \
for i in $$(grep -l -F /../test-lib.sh $$($(VC_LIST) tests)); do \
- tail -n1 $$i | grep '^(exit \$$fail); exit \$$fail$$' > /dev/null \
+ tail -n1 $$i | grep '^Exit \$$fail$$' > /dev/null \
&& : || { die=1; echo $$i; } \
done; \
test $$die = 1 && \
{ echo 1>&2 '$(ME): the final line in each of the above is not:'; \
- echo 1>&2 '(exit $$fail); exit $$fail'; \
+ echo 1>&2 'Exit $$fail'; \
exit 1; } || :; \
fi
-sc_sun_os_names:
- @grep -nEi \
- 'solaris[^[:alnum:]]*2\.(7|8|9|[1-9][0-9])|sunos[^[:alnum:]][6-9]' \
- $$($(VC_LIST_EXCEPT)) && \
- { echo '$(ME): found misuse of Sun OS version numbers' 1>&2; \
- exit 1; } || :
-
sc_the_the:
@grep -ni '\<the ''the\>' $$($(VC_LIST_EXCEPT)) && \
{ echo '$(ME): found use of "the ''the";' 1>&2; \
exit 1; } || :
-sc_tight_scope:
- $(MAKE) -C src $@
-
sc_trailing_blank:
@grep -n '[ ]$$' $$($(VC_LIST_EXCEPT)) && \
{ echo '$(ME): found trailing blank(s)' \
@@ -420,7 +337,7 @@ sc_two_space_separator_in_usage:
@grep -nE '^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
$$($(VC_LIST_EXCEPT)) && \
{ echo "$(ME): help2man requires at least two spaces between"; \
- echo "$(ME): an option and its description"; \
+ echo "$(ME): an option and its description"; \
1>&2; exit 1; } || :
# Look for diagnostics that aren't marked for translation.
@@ -444,27 +361,19 @@ sc_GPL_version:
@grep -n 'either ''version [^3]' $$($(VC_LIST_EXCEPT)) && \
{ echo '$(ME): GPL vN, N!=3' 1>&2; exit 1; } || :
-# Perl-based tests used to exec perl from a #!/bin/sh script.
-# Now they all start with #!/usr/bin/perl and the portability
-# infrastructure is in tests/Makefile.am. Make sure no old-style
-# script sneaks back in.
-sc_no_exec_perl_coreutils:
- @if test -f $(srcdir)/tests/Coreutils.pm; then \
- grep '^exec *\$$PERL.*MCoreutils' $$($(VC_LIST) tests) && \
- { echo 1>&2 '$(ME): found anachronistic Perl-based tests'; \
- exit 1; } || :; \
- fi
+# Make sure we don't use st_blocks. Use ST_NBLOCKS instead.
+# This is a bit of a kludge, since it prevents use of the string
+# even in comments, but for now it does the job with no false positives.
+sc_prohibit_stat_st_blocks:
+ @re='[.>]st_blocks' msg='do not use st_blocks; use ST_NBLOCKS' \
+ $(_prohibit_regexp)
-NEWS_hash = \
- $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \
- $(srcdir)/NEWS | md5sum -)
-
-# Ensure that we don't accidentally insert an entry into an old NEWS block.
-sc_immutable_NEWS:
- @if test -f $(srcdir)/NEWS; then \
- test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \
- { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \
- fi
+# Make sure we don't define any S_IS* macros in src/*.c files.
+# They're already defined via gnulib's sys/stat.h replacement.
+sc_prohibit_S_IS_definition:
+ @re='^ *# *define *S_IS' \
+ msg='do not define S_IS* macros; include <sys/stat.h>' \
+ $(_prohibit_regexp)
# Each program that uses proper_name_utf8 must link with
# one of the ICONV libraries.
@@ -497,6 +406,17 @@ sc_const_long_option:
echo 1>&2 '$(ME): add "const" to the above declarations'; \
exit 1; } || :
+NEWS_hash = \
+ $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \
+ $(srcdir)/NEWS | md5sum -)
+
+# Ensure that we don't accidentally insert an entry into an old NEWS block.
+sc_immutable_NEWS:
+ @if test -f $(srcdir)/NEWS; then \
+ test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \
+ { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \
+ fi
+
# Update the hash stored above. Do this after each release and
# for any corrections to old entries.
update-NEWS-hash: NEWS
@@ -507,11 +427,16 @@ epoch_date = 1970-01-01 00:00:00.000000000 +0000
# Ensure that the c99-to-c89 patch applies cleanly.
patch-check:
rm -rf src-c89 [email protected] [email protected]
- cp -a src src-c89
- (cd src-c89; patch -p1 -V never --fuzz=0) < src/c99-to-c89.diff \
+ cp -a $(srcdir)/src src-c89
+ if test "x$(srcdir)" != x.; then \
+ cp -a src/* src-c89; \
+ dotfiles=`ls src/.[!.]* 2>/dev/null`; \
+ test -z "$$dotfiles" || cp -a src/.[!.]* src-c89; \
+ fi
+ (cd src-c89; patch -p1 -V never --fuzz=0) <
$(srcdir)/src/c99-to-c89.diff \
> [email protected] 2>&1
if test "$(REGEN_PATCH)" = yes; then \
- diff -upr src src-c89 | sed 's,src-c89/,src/,' \
+ diff -upr $(srcdir)/src src-c89 | sed 's,$(srcdir)/src-c89/,src/,'
\
| grep -vE '^(Only in|File )' \
| perl -pe 's/^((?:\+\+\+|---) \S+\t).*/$${1}$(epoch_date)/;' \
-e 's/^ $$//' \
@@ -524,29 +449,18 @@ patch-check:
test "$$msg" = ok && rm -rf src-c89 [email protected] [email protected] || echo "$$msg"
1>&2; \
test "$$msg" = ok
-# Ensure that date's --help output stays in sync with the info
-# documentation for GNU strftime. The only exception is %N,
-# which date accepts but GNU strftime does not.
-extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
-strftime-check:
- if test -f $(srcdir)/src/date.c; then \
- grep '^ %. ' $(srcdir)/src/date.c | sort \
- | $(extract_char) > $...@-src;
\
- { echo N; \
- info libc date calendar format | grep '^ `%.'\' \
- | $(extract_char); } | sort > $...@-info; \
- diff -u $...@-src $...@-info || exit 1;
\
- rm -f $...@-src $...@-info;
\
- fi
-
check-AUTHORS:
$(MAKE) -C src $@
# Ensure that we use only the standard $(VAR) notation,
# not @...@ in Makefile.am, now that we can rely on automake
# to emit a definition for each substituted variable.
+# We use perl rather than "grep -nE ..." to exempt a single
+# use of an @....@-delimited variable name in src/Makefile.am.
makefile-check:
- @grep -nE '@[A-Z_0-9]+@' `find . -name Makefile.am` \
+ @perl -ne '/\...@[a-z_0-9]+\@/ && !/^cu_install_program =/' \
+ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \
+ $$($(VC_LIST_EXCEPT) | grep -E '(^|/)Makefile\.am$$') \
&& { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
news-date-check: NEWS
@@ -568,15 +482,21 @@ changelog-check:
exit 1; \
fi
-m4-check:
- @grep -n 'AC_DEFUN([^[]' m4/*.m4 \
- && { echo '$(ME): quote the first arg to AC_DEFUN' 1>&2; \
+sc_m4_quote_check:
+ @grep -nE '(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \
+ $$($(VC_LIST_EXCEPT) | grep -E '(^configure\.ac|\.m4)$$') \
+ && { echo '$(ME): quote the first arg to AC_DEF*' 1>&2; \
exit 1; } || :
+fix_po_file_diag = \
+'you have changed the set of files with translatable diagnostics;\n\
+apply the above patch\n'
+
# Verify that all source files using _() are listed in po/POTFILES.in.
-po-check:
- @if test -f po/POTFILES.in; then \
- grep -E -v '^(#|$$)' po/POTFILES.in \
+po_file = po/POTFILES.in
+sc_po_check:
+ @if test -f $(po_file); then \
+ grep -E -v '^(#|$$)' $(po_file) \
| grep -v '^src/false\.c$$' | sort > $...@-1;
\
files=; \
for file in $$($(VC_LIST_EXCEPT)) lib/*.[ch]; do \
@@ -593,18 +513,11 @@ po-check:
done; \
grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files \
| sort -u > $...@-2;
\
- diff -u $...@-1 $...@-2 || exit 1;
\
+ diff -u -L $(po_file) -L $(po_file) $...@-1 $...@-2
\
+ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \
rm -f $...@-1 $...@-2;
\
fi
-# In a definition of #define AUTHORS "... and ..." where the RHS contains
-# the English word `and', the string must be marked with `N_ (...)' so that
-# gettext recognizes it as a string requiring translation.
-author_mark_check:
- @grep -n '^# *define AUTHORS "[^"]* and ' src/*.c |grep -v ' N_ (' && \
- { echo '$(ME): enclose the above strings in N_ (...)' 1>&2; \
- exit 1; } || :
-
# Sometimes it is useful to change the PATH environment variable
# in Makefiles. When doing so, it's better not to use the Unix-centric
# path separator of `:', but rather the automake-provided
`...@path_separator@'.
@@ -612,7 +525,7 @@ author_mark_check:
# and there probably aren't many projects with so many Makefile.am files
# that we'd have to worry about limits on command line length.
msg = '$(ME): Do not use `:'\'' above; use @PATH_SEPARATOR@ instead'
-makefile_path_separator_check:
+sc_makefile_path_separator_check:
@grep -n 'PATH=.*:' `find $(srcdir) -name Makefile.am` \
&& { echo $(msg) 1>&2; exit 1; } || :
@@ -633,24 +546,24 @@ sample-test = tests/sample-test
texi = doc/$(PACKAGE).texi
# Make sure that the copyright date in $(v_etc_file) is up to date.
# Do the same for the $(sample-test) and the main doc/.texi file.
-copyright-check:
- @if test -f $(v_etc_file); then \
+sc_copyright_check:
+ @if test -f $(v_etc_file); then \
grep 'enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' $(v_etc_file) \
- >/dev/null \
+ >/dev/null \
|| { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \
- exit 1; }; \
+ exit 1; }; \
fi
- @if test -f $(sample-test); then \
- grep '# Copyright (C) '$$(date +%Y)' Free' $(sample-test) \
- >/dev/null \
+ @if test -f $(sample-test); then \
+ grep '# Copyright (C) '$$(date +%Y)' Free' $(sample-test) \
+ >/dev/null \
|| { echo 'out of date copyright in $(sample-test); update it' 1>&2; \
- exit 1; }; \
+ exit 1; }; \
fi
- @if test -f $(texi); then \
- grep 'Copyright @copyright{} .*'$$(date +%Y)' Free' $(texi) \
- >/dev/null \
- || { echo 'out of date copyright in $(texi); update it' 1>&2; \
- exit 1; }; \
+ @if test -f $(texi); then \
+ grep 'Copyright @copyright{} .*'$$(date +%Y)' Free' $(texi) \
+ >/dev/null \
+ || { echo 'out of date copyright in $(texi); update it' 1>&2; \
+ exit 1; }; \
fi
vc-diff-check:
@@ -730,9 +643,9 @@ taint-distcheck: $(DIST_ARCHIVES)
# Verify that a twisted use of --program-transform-name=PROGRAM works.
define install-transform-check
- echo running install-transform-check \
- && rm -rf $(pfx) \
- && $(MAKE) program_transform_name='s/.*/zyx/' \
+ echo running install-transform-check; \
+ rm -rf $(pfx); \
+ $(MAKE) program_transform_name='s/.*/zyx/' \
prefix=$(pfx) install \
&& test "$$(echo $(pfx)/sbin/*)" = "$(pfx)/sbin/zyx" \
&& test "$$(echo $(pfx)/share/man/man1/*)" = \
@@ -803,13 +716,6 @@ my-distcheck: $(DIST_ARCHIVES) $(local-check)
(cd $(t) && mv $(distdir) $(distdir).old \
&& $(AMTAR) -zxf - ) < $(distdir).tar.gz
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
- if test -f $(srcdir)/src/c99-to-c89.diff; then \
- cd $(t)/$(distdir) \
- && (cd src && patch -V never --fuzz=0 <c99-to-c89.diff) \
- && ./configure --disable-largefile \
- CFLAGS='-Werror -ansi -Wno-long-long' \
- && $(MAKE); \
- fi
-rm -rf $(t)
@echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \
@@ -889,4 +795,4 @@ alpha beta major: $(local-check) writable-files
$(MAKE) update-NEWS-hash
perl -pi -e '$$. == 3 and print "$(noteworthy)\n\n\n"' NEWS
$(emit-commit-log) > .ci-msg
- $(VC) commit -F .ci-msg
+ $(VC) commit -F .ci-msg -a
--
1.6.1.141.gfe98e
_______________________________________________
parted-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/parted-devel