Between, what is the difference between NOTICE and COPYING?
On Thu, Dec 12, 2013 at 11:27 AM, Gurucharan Shetty <shet...@nicira.com> wrote: > On Wed, Dec 11, 2013 at 3:04 PM, Ben Pfaff <b...@nicira.com> wrote: >> This will be used for the #include_next in string.h in the following >> commit. >> >> Signed-off-by: Ben Pfaff <b...@nicira.com> >> --- >> NOTICE | 5 +- >> build-aux/.gitignore | 2 + >> debian/copyright.in | 10 ++- >> m4/absolute-header.m4 | 102 ++++++++++++++++++++++ >> m4/include_next.m4 | 223 >> +++++++++++++++++++++++++++++++++++++++++++++++++ >> m4/openvswitch.m4 | 5 ++ >> 6 files changed, 345 insertions(+), 2 deletions(-) >> create mode 100644 m4/absolute-header.m4 >> create mode 100644 m4/include_next.m4 > I get the following error after a 'make': > The distribution is missing the following files: > m4/absolute-header.m4 > m4/include_next.m4 > make[2]: *** [dist-hook-git] Error 1 > make[2]: Leaving directory `/root/git/test' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/root/git/test' > make: *** [all] Error 2 > > The above problem goes away after adding the second patch though. > > I did not review the included files from external sources, otherwise looks > good. >> >> diff --git a/NOTICE b/NOTICE >> index dafd25f..7a3d660 100644 >> --- a/NOTICE >> +++ b/NOTICE >> @@ -2,7 +2,7 @@ This file is included in compliance with the Apache 2.0 >> license, >> available at http://www.apache.org/licenses/LICENSE-2.0.html >> >> Open vSwitch >> -Copyright (c) 2007, 2008, 2009, 2010, 2011 Nicira, Inc. >> +Copyright (c) 2007, 2008, 2009, 2010, 2011, 2013 Nicira, Inc. >> >> Open vSwitch BSD port >> Copyright (c) 2011 Gaetano Catalli >> @@ -19,3 +19,6 @@ Illinois at Urbana-Champaign. >> >> lib/ovs.tmac includes troff macros written by Eric S. Raymond >> and Werner Lemberg. >> + >> +m4/include_next.m4 and m4/absolute-header.m4 >> +Copyright (C) 2006-2013 Free Software Foundation, Inc. >> diff --git a/build-aux/.gitignore b/build-aux/.gitignore >> index 999eae2..3cb4071 100644 >> --- a/build-aux/.gitignore >> +++ b/build-aux/.gitignore >> @@ -1,4 +1,6 @@ >> /compile >> +/config.guess >> +/config.sub >> /depcomp >> /install-sh >> /missing >> diff --git a/debian/copyright.in b/debian/copyright.in >> index 986f7a1..0676387 100644 >> --- a/debian/copyright.in >> +++ b/debian/copyright.in >> @@ -8,7 +8,7 @@ Upstream Authors (from AUTHORS): >> >> Upstream Copyright Holders: >> >> - Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012 Nicira, Inc. >> + Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc. >> Copyright (c) 2010 Jean Tourrilhes - HP-Labs. >> Copyright (c) 2008,2009,2010 Citrix Systems, Inc. >> and authors listed above. >> @@ -182,6 +182,14 @@ License: >> .\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc. >> .\" You may freely use, modify and/or distribute this file. >> >> +* m4/absolute-header.m4, by Derek Price, and m4/include_next.m4, by >> + Paul Eggert and Derek Price bear the following notices: >> + >> + Copyright (C) 2006-2013 Free Software Foundation, Inc. >> + This file is free software; the Free Software Foundation >> + gives unlimited permission to copy and/or distribute it, >> + with or without modifications, as long as this notice is preserved. >> + >> * All other components of this package are licensed under >> The Apache License Version 2.0. >> >> diff --git a/m4/absolute-header.m4 b/m4/absolute-header.m4 >> new file mode 100644 >> index 0000000..89ff5be >> --- /dev/null >> +++ b/m4/absolute-header.m4 >> @@ -0,0 +1,102 @@ >> +# absolute-header.m4 serial 16 >> +dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. >> +dnl This file is free software; the Free Software Foundation >> +dnl gives unlimited permission to copy and/or distribute it, >> +dnl with or without modifications, as long as this notice is preserved. >> + >> +dnl From Derek Price. >> + >> +# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) >> +# --------------------------------------- >> +# Find the absolute name of a header file, testing first if the header >> exists. >> +# If the header were sys/inttypes.h, this macro would define >> +# ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h >> +# in config.h >> +# (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). >> +# The three "///" are to pacify Sun C 5.8, which otherwise would say >> +# "warning: #include of /usr/include/... may be non-portable". >> +# Use '""', not '<>', so that the /// cannot be confused with a C99 comment. >> +# Note: This macro assumes that the header file is not empty after >> +# preprocessing, i.e. it does not only define preprocessor macros but also >> +# provides some type/enum definitions or function/variable declarations. >> +AC_DEFUN([gl_ABSOLUTE_HEADER], >> +[AC_REQUIRE([AC_CANONICAL_HOST]) >> +AC_LANG_PREPROC_REQUIRE()dnl >> +dnl FIXME: gl_absolute_header and ac_header_exists must be used unquoted >> +dnl until we can assume autoconf 2.64 or newer. >> +m4_foreach_w([gl_HEADER_NAME], [$1], >> + [AS_VAR_PUSHDEF([gl_absolute_header], >> + [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl >> + AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], >> + m4_defn([gl_absolute_header]), >> + [AS_VAR_PUSHDEF([ac_header_exists], >> + [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl >> + AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl >> + if test AS_VAR_GET(ac_header_exists) = yes; then >> + gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) >> + fi >> + AS_VAR_POPDEF([ac_header_exists])dnl >> + ])dnl >> + AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), >> + ["AS_VAR_GET(gl_absolute_header)"], >> + [Define this to an absolute name of >> <]m4_defn([gl_HEADER_NAME])[>.]) >> + AS_VAR_POPDEF([gl_absolute_header])dnl >> +])dnl >> +])# gl_ABSOLUTE_HEADER >> + >> +# gl_ABSOLUTE_HEADER_ONE(HEADER) >> +# ------------------------------ >> +# Like gl_ABSOLUTE_HEADER, except that: >> +# - it assumes that the header exists, >> +# - it uses the current CPPFLAGS, >> +# - it does not cache the result, >> +# - it is silent. >> +AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], >> +[ >> + AC_REQUIRE([AC_CANONICAL_HOST]) >> + AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) >> + dnl AIX "xlc -E" and "cc -E" omit #line directives for header files >> + dnl that contain only a #include of other header files and no >> + dnl non-comment tokens of their own. This leads to a failure to >> + dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h> >> + dnl and others. The workaround is to force preservation of comments >> + dnl through option -C. This ensures all necessary #line directives >> + dnl are present. GCC supports option -C as well. >> + case "$host_os" in >> + aix*) gl_absname_cpp="$ac_cpp -C" ;; >> + *) gl_absname_cpp="$ac_cpp" ;; >> + esac >> +changequote(,) >> + case "$host_os" in >> + mingw*) >> + dnl For the sake of native Windows compilers (excluding gcc), >> + dnl treat backslash as a directory separator, like /. >> + dnl Actually, these compilers use a double-backslash as >> + dnl directory separator, inside the >> + dnl # line "filename" >> + dnl directives. >> + gl_dirsep_regex='[/\\]' >> + ;; >> + *) >> + gl_dirsep_regex='\/' >> + ;; >> + esac >> + dnl A sed expression that turns a string into a basic regular >> + dnl expression, for use within "/.../". >> + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' >> + gl_header_literal_regex=`echo '$1' \ >> + | sed -e "$gl_make_literal_regex_sed"` >> + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ >> + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ >> + s|^/[^/]|//&| >> + p >> + q >> + }' >> +changequote([,]) >> + dnl eval is necessary to expand gl_absname_cpp. >> + dnl Ultrix and Pyramid sh refuse to redirect output of eval, >> + dnl so use subshell. >> + AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), >> +[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | >> + sed -n "$gl_absolute_header_sed"`]) >> +]) >> diff --git a/m4/include_next.m4 b/m4/include_next.m4 >> new file mode 100644 >> index 0000000..f09dbe6 >> --- /dev/null >> +++ b/m4/include_next.m4 >> @@ -0,0 +1,223 @@ >> +# include_next.m4 serial 23 >> +dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. >> +dnl This file is free software; the Free Software Foundation >> +dnl gives unlimited permission to copy and/or distribute it, >> +dnl with or without modifications, as long as this notice is preserved. >> + >> +dnl From Paul Eggert and Derek Price. >> + >> +dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER. >> +dnl >> +dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or >> to >> +dnl 'include' otherwise. >> +dnl >> +dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the >> compiler >> +dnl supports it in the special case that it is the first include directive >> in >> +dnl the given file, or to 'include' otherwise. >> +dnl >> +dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, >> +dnl so as to avoid GCC warnings when the gcc option -pedantic is used. >> +dnl '#pragma GCC system_header' has the same effect as if the file was found >> +dnl through the include search path specified with '-isystem' options (as >> +dnl opposed to the search path specified with '-I' options). Namely, gcc >> +dnl does not warn about some things, and on some systems (Solaris and >> Interix) >> +dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side >> +dnl effect; we are therefore careful to use 'defined __STDC__' or '1' >> instead >> +dnl of plain '__STDC__'. >> +dnl >> +dnl PRAGMA_COLUMNS can be used in files that override system header files, >> so >> +dnl as to avoid compilation errors on HP NonStop systems when the gnulib >> file >> +dnl is included by a system header file that does a "#pragma COLUMNS 80" >> (which >> +dnl has the effect of truncating the lines of that file and all files that >> it >> +dnl includes to 80 columns) and the gnulib file has lines longer than 80 >> +dnl columns. >> + >> +AC_DEFUN([gl_INCLUDE_NEXT], >> +[ >> + AC_LANG_PREPROC_REQUIRE() >> + AC_CACHE_CHECK([whether the preprocessor supports include_next], >> + [gl_cv_have_include_next], >> + [rm -rf conftestd1a conftestd1b conftestd2 >> + mkdir conftestd1a conftestd1b conftestd2 >> + dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) >> on >> + dnl AIX 6.1 support include_next when used as first preprocessor >> directive >> + dnl in a file, but not when preceded by another include directive. >> Check >> + dnl for this bug by including <stdio.h>. >> + dnl Additionally, with this same compiler, include_next is a no-op when >> + dnl used in a header file that was included by specifying its absolute >> + dnl file name. Despite these two bugs, include_next is used in the >> + dnl compiler's <math.h>. By virtue of the second bug, we need to use >> + dnl include_next as well in this case. >> + cat <<EOF > conftestd1a/conftest.h >> +#define DEFINED_IN_CONFTESTD1 >> +#include_next <conftest.h> >> +#ifdef DEFINED_IN_CONFTESTD2 >> +int foo; >> +#else >> +#error "include_next doesn't work" >> +#endif >> +EOF >> + cat <<EOF > conftestd1b/conftest.h >> +#define DEFINED_IN_CONFTESTD1 >> +#include <stdio.h> >> +#include_next <conftest.h> >> +#ifdef DEFINED_IN_CONFTESTD2 >> +int foo; >> +#else >> +#error "include_next doesn't work" >> +#endif >> +EOF >> + cat <<EOF > conftestd2/conftest.h >> +#ifndef DEFINED_IN_CONFTESTD1 >> +#error "include_next test doesn't work" >> +#endif >> +#define DEFINED_IN_CONFTESTD2 >> +EOF >> + gl_save_CPPFLAGS="$CPPFLAGS" >> + CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" >> +dnl We intentionally avoid using AC_LANG_SOURCE here. >> + AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], >> + [gl_cv_have_include_next=yes], >> + [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" >> + AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], >> + [gl_cv_have_include_next=buggy], >> + [gl_cv_have_include_next=no]) >> + ]) >> + CPPFLAGS="$gl_save_CPPFLAGS" >> + rm -rf conftestd1a conftestd1b conftestd2 >> + ]) >> + PRAGMA_SYSTEM_HEADER= >> + if test $gl_cv_have_include_next = yes; then >> + INCLUDE_NEXT=include_next >> + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next >> + if test -n "$GCC"; then >> + PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' >> + fi >> + else >> + if test $gl_cv_have_include_next = buggy; then >> + INCLUDE_NEXT=include >> + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next >> + else >> + INCLUDE_NEXT=include >> + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include >> + fi >> + fi >> + AC_SUBST([INCLUDE_NEXT]) >> + AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) >> + AC_SUBST([PRAGMA_SYSTEM_HEADER]) >> + AC_CACHE_CHECK([whether system header files limit the line length], >> + [gl_cv_pragma_columns], >> + [dnl HP NonStop systems, which define __TANDEM, have this misfeature. >> + AC_EGREP_CPP([choke me], >> + [ >> +#ifdef __TANDEM >> +choke me >> +#endif >> + ], >> + [gl_cv_pragma_columns=yes], >> + [gl_cv_pragma_columns=no]) >> + ]) >> + if test $gl_cv_pragma_columns = yes; then >> + PRAGMA_COLUMNS="#pragma COLUMNS 10000" >> + else >> + PRAGMA_COLUMNS= >> + fi >> + AC_SUBST([PRAGMA_COLUMNS]) >> +]) >> + >> +# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) >> +# ------------------------------------------ >> +# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be >> +# '<foo.h>'; otherwise define it to be >> +# '"///usr/include/foo.h"', or whatever other absolute file name is >> suitable. >> +# Also, if #include_next works as first preprocessing directive in a file, >> +# define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be '<foo.h>'; otherwise define it >> to >> +# be >> +# '"///usr/include/foo.h"', or whatever other absolute file name is >> suitable. >> +# That way, a header file with the following line: >> +# #@INCLUDE_NEXT@ @NEXT_FOO_H@ >> +# or >> +# #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ >> +# behaves (after sed substitution) as if it contained >> +# #include_next <foo.h> >> +# even if the compiler does not support include_next. >> +# The three "///" are to pacify Sun C 5.8, which otherwise would say >> +# "warning: #include of /usr/include/... may be non-portable". >> +# Use '""', not '<>', so that the /// cannot be confused with a C99 comment. >> +# Note: This macro assumes that the header file is not empty after >> +# preprocessing, i.e. it does not only define preprocessor macros but also >> +# provides some type/enum definitions or function/variable declarations. >> +# >> +# This macro also checks whether each header exists, by invoking >> +# AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. >> +AC_DEFUN([gl_CHECK_NEXT_HEADERS], >> +[ >> + gl_NEXT_HEADERS_INTERNAL([$1], [check]) >> +]) >> + >> +# gl_NEXT_HEADERS(HEADER1 HEADER2 ...) >> +# ------------------------------------ >> +# Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. >> +# This is suitable for headers like <stddef.h> that are standardized by C89 >> +# and therefore can be assumed to exist. >> +AC_DEFUN([gl_NEXT_HEADERS], >> +[ >> + gl_NEXT_HEADERS_INTERNAL([$1], [assume]) >> +]) >> + >> +# The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. >> +AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], >> +[ >> + AC_REQUIRE([gl_INCLUDE_NEXT]) >> + AC_REQUIRE([AC_CANONICAL_HOST]) >> + >> + m4_if([$2], [check], >> + [AC_CHECK_HEADERS_ONCE([$1]) >> + ]) >> + >> +dnl FIXME: gl_next_header and gl_header_exists must be used unquoted >> +dnl until we can assume autoconf 2.64 or newer. >> + m4_foreach_w([gl_HEADER_NAME], [$1], >> + [AS_VAR_PUSHDEF([gl_next_header], >> + [gl_cv_next_]m4_defn([gl_HEADER_NAME])) >> + if test $gl_cv_have_include_next = yes; then >> + AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) >> + else >> + AC_CACHE_CHECK( >> + [absolute name of <]m4_defn([gl_HEADER_NAME])[>], >> + m4_defn([gl_next_header]), >> + [m4_if([$2], [check], >> + [AS_VAR_PUSHDEF([gl_header_exists], >> + [ac_cv_header_]m4_defn([gl_HEADER_NAME])) >> + if test AS_VAR_GET(gl_header_exists) = yes; then >> + AS_VAR_POPDEF([gl_header_exists]) >> + ]) >> + gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) >> + AS_VAR_COPY([gl_header], >> [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) >> + AS_VAR_SET(gl_next_header, ['"'$gl_header'"']) >> + m4_if([$2], [check], >> + [else >> + AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) >> + fi >> + ]) >> + ]) >> + fi >> + AC_SUBST( >> + AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), >> + [AS_VAR_GET(gl_next_header)]) >> + if test $gl_cv_have_include_next = yes || test >> $gl_cv_have_include_next = buggy; then >> + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' >> + gl_next_as_first_directive='<'gl_HEADER_NAME'>' >> + else >> + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' >> + gl_next_as_first_directive=AS_VAR_GET(gl_next_header) >> + fi >> + AC_SUBST( >> + AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), >> + [$gl_next_as_first_directive]) >> + AS_VAR_POPDEF([gl_next_header])]) >> +]) >> + >> +# Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; >> +# this fallback is safe for all earlier autoconf versions. >> +m4_define_default([AC_LANG_DEFINES_PROVIDED]) >> diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 >> index e7281ad..02d473e 100644 >> --- a/m4/openvswitch.m4 >> +++ b/m4/openvswitch.m4 >> @@ -535,3 +535,8 @@ dnl OVS_CHECK_POSIX_AIO >> AC_DEFUN([OVS_CHECK_POSIX_AIO], >> [AC_SEARCH_LIBS([aio_write], [rt]) >> AM_CONDITIONAL([HAVE_POSIX_AIO], [test "$ac_cv_search_aio_write" != >> no])]) >> + >> +dnl OVS_CHECK_INCLUDE_NEXT >> +AC_DEFUN([OVS_CHECK_INCLUDE_NEXT], >> + [AC_REQUIRE([gl_CHECK_NEXT_HEADERS]) >> + gl_CHECK_NEXT_HEADERS([$1])]) >> -- >> 1.7.10.4 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev