Package: release.debian.org Severity: normal Tags: jessie User: release.debian....@packages.debian.org Usertags: pu
Hi, I am requesting permission to fix a functional regression in cproto with an upload to proposed-updates-new for jessie. This may or may not meet the criteria of a "truly critical functionality problem", but I thought it was worth asking anyway. In April of 2013 (version 4.7j-7), I converted cproto to debhelper 7. In the process, I accidentally lost the only option I was passing to configure (--enable-llib). As a result, I disabled the -X command-line option. This means there is a functional regression between wheezy (version 4.7j-5) and jessie (version 4.7l-3). The manpage is also wrong. See bug #784719. A few minutes ago, I uploaded version 4.7l-4 to unstable. The diff vs. 4.7l-3 (in jessie) is attached as debian.diff. The only change is to pass the missing --enable-llib configure option. The changes between upstream versions 4.7j and 4.7l are minor and do not involve the functionality controlled by --enable-llib. So, the -X behavior in 4.7l-4 (proposed for jessie) should be the same as we saw in 4.7j-5 (which was in wheezy). As a result, I believe this to be a low-risk change. A diff of the relevant files in the two upstream releases is attached as cproto-4.7j-4.7l.diff. Thank you for the help, KEN -- System Information: Debian Release: 8.0 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 3.16.0-4-686-pae (SMP w/1 CPU core) Locale: LANG=en, LC_CTYPE=en_US (charmap=ISO-8859-1) (ignored: LC_ALL set to en_US) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) -- Kenneth J. Pronovici <prono...@debian.org>
Index: debian/changelog =================================================================== --- debian/changelog (.../4.7l-3) (revision 753) +++ debian/changelog (.../4.7l-4) (revision 753) @@ -1,3 +1,13 @@ +cproto (4.7l-4) unstable; urgency=medium + + * Fix functional regression vs. 4.7j-5 in wheezy (closes: #784719). + - Modify debian/rules to put back --enable-llib configure option, by adding + override_dh_auto_configure. This option was accidentally lost in version + 4.7j-7 while converting to debhelper 7. This disabled the -X command + line option in the cproto program, a regression vs. wheezy. + + -- Kenneth J. Pronovici <prono...@debian.org> Fri, 08 May 2015 21:23:58 +0000 + cproto (4.7l-3) unstable; urgency=medium * Fix various minor Lintian warnings in debian/copyright. Index: debian/rules =================================================================== --- debian/rules (.../4.7l-3) (revision 753) +++ debian/rules (.../4.7l-4) (revision 753) @@ -9,3 +9,6 @@ override_dh_installdocs: dh_installdocs README +override_dh_auto_configure: + dh_auto_configure -- --enable-llib +
diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/CHANGES cproto-4.7l/CHANGES --- cproto-4.7j/CHANGES 2011-01-02 19:40:35.000000000 +0000 +++ cproto-4.7l/CHANGES 2014-01-01 15:46:55.000000000 +0000 @@ -1,4 +1,19 @@ --- $Id: CHANGES,v 4.34 2011/01/02 19:40:35 tom Exp $ +-- $Id: CHANGES,v 4.41 2014/01/01 15:46:55 tom Exp $ + +2014/01/01 (4.7l) +- add "docs" rule to makefile. +- correct configure check for yyname vs yytname, broken by 4.7i changes +- update config.guess + +2013/10/25 (4.7k) +- modify configure script, etc., to support cross-compiles, e.g., to MinGW. +- updated configure macros + - support --datarootdir option + - various portability fixes for CF_XOPEN_SOURCE + - add checks for clang + - improve macros for checking for standard C compiler + - modified macros to support third parameter of AC_DEFINE used by autoheader +- update config.guess, config.sub 2011/01/02 (4.7j) - amend a check for function name to allow cases such as this: @@ -25,15 +40,15 @@ contributor's information using a script. - update config.guess, config.sub -2009/09/3 (4.7h) +2009/09/03 (4.7h) - updated configure macros CF_ADD_CFLAGS CF_GCC_ATTRIBUTES CF_GCC_WARNINGS CF_XOPEN_SOURCE - update config.guess, config.sub 2008/11/19 (4.7g) - modify cpp command to redirect stderr to /dev/null if -q option is given, - for consistency with the non-cpp mode (report by Nicolas Limare). - https://bugs.launchpad.net/ubuntu/+source/cproto/+bug/275248 + for consistency with the non-cpp mode (report by Nicolas Limare, + Ubuntu #275248). - add configure --disable-leaks option. - use configure macro CF_XOPEN_SOURCE macro to make mkstemp() prototyped on Linux. @@ -41,7 +56,7 @@ - code cleanup, to remove K&R relics. - update config.guess, config.sub -2008/01/1 (4.7f) +2008/01/01 (4.7f) - add symbol for __gnuc_va_list - add some data for c99 syntax to test-cases, e.g., long long. - review/fix some additional places where need_temp() call is needed. @@ -52,7 +67,7 @@ - update config.guess, config.sub - rename install.sh to install-sh -2005/12/8 (4.7e) +2005/12/08 (4.7e) - eliminate some fixed limits on buffer sizes (prompted by FreeBSD port). - eliminate fixed limit on include nesting. - use configure check for mkstemp(), use that function in preference to @@ -88,13 +103,13 @@ - updated configure script, using autoconf 2.52 + patch, along with macros from vile/lynx/etc. -2004/03/9 (4.7b) +2004/03/09 (4.7b) - added new -X option to limit the levels of include-files from which an extern can come (Debian #235824). - added new -i option to support inline function prototypes (Debian #228801, patch by Kenneth Pronovici). -2003/04/5 (4.7a) +2003/04/05 (4.7a) - add definition of YYFLAG, to enable the error-reporting code with bison 1.875 - add definition of YYSTYPE, to allow this to build with recent (aka "broken") @@ -121,7 +136,7 @@ - remove makefile rules to make shar files (comp.sources.misc is long gone). - stop using changequote(), workaround for bugs in autoconf 2.5x -2000/11/9 (4.7) +2000/11/09 (4.7) - Report source file and line number in error messages in gcc-style format. 2000/08/10 (4.6d) @@ -132,7 +147,7 @@ independently of $(prefix) and $(exec_prefix) (patch by Carsten Leonhardt <l...@debian.org>). -2000/07/8 (4.6c) +2000/07/08 (4.6c) - add a clause to handle "__extension__" before extern declarations. (report by Bob van der Poel <bvdp...@uniserve.com>) diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/configure.in cproto-4.7l/configure.in --- cproto-4.7j/configure.in 2010-07-12 00:49:23.000000000 +0000 +++ cproto-4.7l/configure.in 2014-01-01 15:48:47.000000000 +0000 @@ -1,12 +1,12 @@ dnl Process this file with 'autoconf' to produce a 'configure' script -dnl $Id: configure.in,v 4.13 2010/07/12 00:49:23 tom Exp $ -AC_REVISION($Revision: 4.13 $) +dnl $Id: configure.in,v 4.16 2014/01/01 15:48:47 tom Exp $ +AC_REVISION($Revision: 4.16 $) AC_PREREQ(2.52.20030208) AC_INIT(cproto.c) AC_CONFIG_HEADER(config.h:config_h.in) CF_CHECK_CACHE -AC_PROG_CC +CF_PROG_CC AC_PROG_CPP AC_PROG_LEX AC_PROG_MAKE_SET @@ -15,9 +15,6 @@ CF_MAKE_TAGS CF_PROG_LINT -CF_PROG_EXT - -CF_ANSI_CC_REQD CF_XOPEN_SOURCE CF_WITH_WARNINGS @@ -47,7 +44,19 @@ AC_HAVE_HEADERS(stdlib.h unistd.h) AC_HAVE_HEADERS(getopt.h string.h memory.h) -AC_HAVE_FUNCS(strstr tmpfile link unlink) +AC_HAVE_FUNCS(getopt popen strstr tmpfile link unlink) + +if test "x$ac_cv_func_getopt" = xno +then + CPPFLAGS="$CPPFLAGS -I\$(srcdir)/porting" + EXTRA_OBJS="$EXTRA_OBJS getopt.o" +fi + +if test "x$ac_cv_func_popen" = xno +then + CPPFLAGS="$CPPFLAGS -I\$(srcdir)/porting" + EXTRA_OBJS="$EXTRA_OBJS popen.o" +fi ### special configuration tests CF_MKSTEMP @@ -69,3 +78,4 @@ ### output makefile and config.h AC_OUTPUT(Makefile,,,cat) +CF_MAKE_DOCS(cproto,1) diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/cproto.c cproto-4.7l/cproto.c --- cproto-4.7j/cproto.c 2011-01-02 19:24:03.000000000 +0000 +++ cproto-4.7l/cproto.c 2014-01-01 15:30:44.000000000 +0000 @@ -1,8 +1,8 @@ -/* $Id: cproto.c,v 4.33 2011/01/02 19:24:03 tom Exp $ +/* $Id: cproto.c,v 4.36 2014/01/01 15:30:44 tom Exp $ * * C function prototype generator and function definition converter */ -#define VERSION "4.7j" +#define VERSION "4.7l" #include <cproto.h> @@ -104,8 +104,8 @@ #ifdef CPP # if !HAVE_POPEN_PROTOTYPE extern FILE *popen(const char *c, const char *m); -# endif extern int pclose(FILE *p); +# endif static size_t cpp_len; static const char *cpp = CPP; static char *cpp_opt; diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/cproto.h cproto-4.7l/cproto.h --- cproto-4.7j/cproto.h 2011-01-02 19:30:39.000000000 +0000 +++ cproto-4.7l/cproto.h 2013-10-25 20:28:26.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id: cproto.h,v 4.17 2011/01/02 19:30:39 tom Exp $ +/* $Id: cproto.h,v 4.18 2013/10/25 20:28:26 tom Exp $ * * Declarations for C function prototype generator */ @@ -25,6 +25,10 @@ #define YACC_HAS_YYTOKS_2 0 #endif +#ifndef HAVE_LINK +#define HAVE_LINK 0 +#endif + #ifndef HAVE_POPEN_PROTOTYPE #define HAVE_POPEN_PROTOTYPE 0 #endif diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/lex.l cproto-4.7l/lex.l --- cproto-4.7j/lex.l 2011-01-02 18:31:53.000000000 +0000 +++ cproto-4.7l/lex.l 2014-01-01 16:01:46.000000000 +0000 @@ -2,7 +2,7 @@ %{ -/* $Id: lex.l,v 4.22 2011/01/02 18:31:53 tom Exp $ +/* $Id: lex.l,v 4.23 2014/01/01 16:01:46 tom Exp $ * * Lexical analyzer for C function prototype generator * @@ -994,7 +994,7 @@ } else { return; } - s = strchr(file_spec + 1, match); + s = (strchr) (file_spec + 1, match); n = (s != NULL) ? (unsigned) (s - file_spec - 1) : 0; file = xstrdup(file_spec + 1); file[n] = '\0'; diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/Makefile.in cproto-4.7l/Makefile.in --- cproto-4.7j/Makefile.in 2010-07-12 00:43:24.000000000 +0000 +++ cproto-4.7l/Makefile.in 2014-01-01 15:57:41.000000000 +0000 @@ -1,9 +1,9 @@ -# $Id: Makefile.in,v 4.16 2010/07/12 00:43:24 tom Exp $ +# $Id: Makefile.in,v 4.21 2014/01/01 15:57:41 tom Exp $ # # UNIX template-makefile for C prototype generator THIS = cproto -RELEASE = 4_7g +RELEASE = 4_7l #### Start of system configuration section. #### @@ -29,6 +29,7 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ bindir = @bindir@ mandir = @mandir@ @@ -113,22 +114,19 @@ lex.yy.c : lex.l $(LEX) $(srcdir)/lex.l -$(THIS).man : $(THIS).1 - - nroff -man $(srcdir)/$(THIS).1 >$@ +mostlyclean :: + - rm -f core .nfs* *$o *.bak *.BAK *.out $(JUNK) default.h -mostlyclean : - - rm -f core .nfs* *$o *.bak *.BAK *.man *.out $(JUNK) default.h - -clean : mostlyclean +clean :: mostlyclean - rm -f $(PROG) - cd $(srcdir)/testing && $(MAKE) $@ -distclean : clean +distclean :: clean - rm -f config.log config.cache config.status config.h Makefile - rm -f .version .fname - cd $(srcdir)/testing && $(MAKE) $@ -realclean: distclean +realclean :: distclean - rm -f tags - cd $(srcdir)/testing && $(MAKE) $@ @@ -160,6 +158,12 @@ default.h: $(C_FILES) lex.yy.c ./$(PROG) -e -v -m -M ARGS -d $(DEFINES) $(C_FILES) grammar.y >$@ +getopt.o : $(srcdir)/porting/getopt.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/porting/getopt.c + +popen.o : $(srcdir)/porting/popen.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/porting/popen.c + lint: $(C_FILES) $(JUNK) $(LINT) $(CPPFLAGS) $(C_FILES) y.tab.c >$@.out diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/MANIFEST cproto-4.7l/MANIFEST --- cproto-4.7j/MANIFEST 2011-01-02 19:45:34.000000000 +0000 +++ cproto-4.7l/MANIFEST 2014-01-01 15:30:30.000000000 +0000 @@ -1,4 +1,4 @@ -MANIFEST for cproto-4.7j, version v4_7j +MANIFEST for cproto-4.7l, version v4_7l -------------------------------------------------------------------------------- MANIFEST this file AUTHORS authors diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/package/cproto.spec cproto-4.7l/package/cproto.spec --- cproto-4.7j/package/cproto.spec 2011-01-02 19:42:57.000000000 +0000 +++ cproto-4.7l/package/cproto.spec 2014-01-01 15:30:54.000000000 +0000 @@ -1,7 +1,7 @@ Summary: cproto - generate C function prototypes and convert function definitions %define AppProgram cproto -%define AppVersion 4.7j -# $XTermId: cproto.spec,v 1.3 2011/01/02 19:42:57 tom Exp $ +%define AppVersion 4.7l +# $XTermId: cproto.spec,v 1.5 2014/01/01 15:30:54 tom Exp $ Name: %{AppProgram} Version: %{AppVersion} Release: 1 diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/package/debian/changelog cproto-4.7l/package/debian/changelog --- cproto-4.7j/package/debian/changelog 2011-01-02 19:34:24.000000000 +0000 +++ cproto-4.7l/package/debian/changelog 2014-01-01 15:31:46.000000000 +0000 @@ -1,3 +1,15 @@ +cproto (4.7l) unstable; urgency=low + + * correct configure-check for yyname vs yytname + + -- Thomas E. Dickey <dic...@invisible-island.net> Wed, 01 Jan 2014 10:31:44 -0500 + +cproto (4.7k) unstable; urgency=low + + * update configure scripts + + -- Thomas E. Dickey <dic...@invisible-island.net> Fri, 25 Oct 2013 04:28:30 -0400 + cproto (4.7j) unstable; urgency=low * minor fix to lint-library check for function vs function-pointer. diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/package/debian/copyright cproto-4.7l/package/debian/copyright --- cproto-4.7j/package/debian/copyright 2011-01-02 19:41:59.000000000 +0000 +++ cproto-4.7l/package/debian/copyright 2014-01-01 15:58:27.000000000 +0000 @@ -11,7 +11,7 @@ Files: aclocal.m4 Licence: other-BSD -Copyright: 1994-2010,2011 by Thomas E. Dickey +Copyright: 1994-2013,2014 by Thomas E. Dickey Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -72,7 +72,7 @@ shared with many OS's install programs. Files: debian/* -Copyright: 2010 Thomas E. Dickey +Copyright: 2010-2013,2014 Thomas E. Dickey Licence: other-BSD Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/porting/getopt.c cproto-4.7l/porting/getopt.c --- cproto-4.7j/porting/getopt.c 1994-10-12 13:00:00.000000000 +0000 +++ cproto-4.7l/porting/getopt.c 2013-10-25 22:08:08.000000000 +0000 @@ -1,7 +1,12 @@ +/* $Id: getopt.c,v 4.2 2013/10/25 22:08:08 tom Exp $ */ + /* ::[[ @(#) getopt.c 1.5 89/03/11 05:40:23 ]]:: */ + +/* #ifndef LINT static char sccsid[]="::[[ @(#) getopt.c 1.5 89/03/11 05:40:23 ]]::"; #endif +*/ /* * Here's something you've all been waiting for: the AT&T public domain @@ -23,33 +28,25 @@ * However, I am not about to post a copy of anything licensed by AT&T. */ -#ifdef ANSIPROTO -int strcmp (char *, char *); -char *strchr (char *, char); -#endif - #include <stdio.h> +#include <string.h> +#include <getopt.h> #define ERR(szz,czz) if(opterr){fprintf(stderr,"%s%s%c\n",argv[0],szz,czz);} -extern int strcmp(); -extern char *strchr(); - int opterr = 1; int optind = 1; int optopt; char *optarg; int -getopt(argc, argv, opts) -int argc; -char **argv, *opts; +getopt(int argc, char **argv, const char *opts) { static int sp = 1; register int c; register char *cp; - if(sp == 1) + if(sp == 1) { if(optind >= argc || argv[optind][0] != '-' || argv[optind][1] == '\0') return(EOF); @@ -57,7 +54,8 @@ optind++; return(EOF); } - optopt = c = argv[optind][sp]; + } + optopt = (c = argv[optind][sp]); if(c == ':' || (cp=strchr(opts, c)) == NULL) { ERR(": illegal option -- ", c); if(argv[optind][++sp] == '\0') { diff '--exclude=configure' '--exclude=config.guess' '--exclude=config.sub' '--exclude=aclocal.m4' -Naur cproto-4.7j/porting/getopt.h cproto-4.7l/porting/getopt.h --- cproto-4.7j/porting/getopt.h 1994-10-12 13:00:00.000000000 +0000 +++ cproto-4.7l/porting/getopt.h 2013-10-25 22:08:17.000000000 +0000 @@ -1,8 +1,10 @@ +/* $Id: getopt.h,v 4.3 2013/10/25 22:08:17 tom Exp $ */ + +#ifndef OLD_GETOPT_H +#define OLD_GETOPT_H 1 + extern char *optarg; extern int optind, opterr; +extern int getopt (int argc, char **argv, const char *options); -#if defined(__STDC__) -int getopt (int argc, char **argv, const char *options); -#else -int getopt (); -#endif +#endif /* OLD_GETOPT_H */