From 6653549e3b1605abe86d17dc91316b32c310e6cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Mon, 31 Jul 2023 13:28:35 +0200 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 autogen revision 7acf074dd35f803c7f566f08dcdc65c9 --- .gitattributes | 23 + autogen-5.18.16.tar.xz | 3 + autogen-avoid-GCC-code-analysis-bug.patch | 101 ++++ autogen-build_ldpath.patch | 22 + autogen-catch-race-error.patch | 31 ++ autogen.changes | 595 ++++++++++++++++++++++ autogen.spec | 147 ++++++ gcc9-fix-wrestrict.patch | 50 ++ guile-version.patch | 39 ++ installable-programs.patch | 92 ++++ sprintf-overflow.patch | 26 + 11 files changed, 1129 insertions(+) create mode 100644 .gitattributes create mode 100644 autogen-5.18.16.tar.xz create mode 100644 autogen-avoid-GCC-code-analysis-bug.patch create mode 100644 autogen-build_ldpath.patch create mode 100644 autogen-catch-race-error.patch create mode 100644 autogen.changes create mode 100644 autogen.spec create mode 100644 gcc9-fix-wrestrict.patch create mode 100644 guile-version.patch create mode 100644 installable-programs.patch create mode 100644 sprintf-overflow.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/autogen-5.18.16.tar.xz b/autogen-5.18.16.tar.xz new file mode 100644 index 0000000..b7a894a --- /dev/null +++ b/autogen-5.18.16.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8a13466b48faa3ba99fe17a069e71c9ab006d9b1cfabe699f8c60a47d5bb49a +size 1046276 diff --git a/autogen-avoid-GCC-code-analysis-bug.patch b/autogen-avoid-GCC-code-analysis-bug.patch new file mode 100644 index 0000000..09da589 --- /dev/null +++ b/autogen-avoid-GCC-code-analysis-bug.patch @@ -0,0 +1,101 @@ +From 65163ab8c318a501f019c64490aea188e258b954 Mon Sep 17 00:00:00 2001 +From: Bruce Korb +Date: Tue, 19 Apr 2022 09:10:37 -0700 +Subject: [PATCH] avoid GCC code analysis bug + +--- + agen5/defLoad.c | 47 ++++++++++++++++++++++++++--------------------- + 1 file changed, 26 insertions(+), 21 deletions(-) + +diff --git a/agen5/defLoad.c b/agen5/defLoad.c +index e40f2e80..99258cd6 100644 +--- a/agen5/defLoad.c ++++ b/agen5/defLoad.c +@@ -453,17 +453,28 @@ read_defs(void) + FILE * fp; + def_input_mode_t in_mode = ready_def_input(&def_fname, &data_sz); + ++ /* ++ * "ready_def_input" has a lot of side effects. It's possible that ++ * there are no definitions, so "in_mode" is set to DONE and there's ++ * nothing to do. ++ */ + if (in_mode == INPUT_DONE) + return; + + /* + * Allocate the space we need for our definitions. ++ * "data_sz" was set by read_def_input to the size of the ++ * definitions file (or 4096 if we're reading from a fifo file). ++ * In that alternate case, we'll start the input size at 4096 bytes. ++ * The allocation includes space for context and a NUL byte or two + */ +- rem_sz = data_sz+4+sizeof(*base_ctx); +- base_ctx = (scan_ctx_t *)AGALOC(rem_sz, "file buf"); +- memset(VOIDP(base_ctx), 0, rem_sz); ++ { ++ size_t sz = data_sz + sizeof(long) + sizeof(*base_ctx); ++ base_ctx = (scan_ctx_t *)AGALOC(sz, "file buf"); ++ memset(VOIDP(base_ctx), 0, sz); ++ } + base_ctx->scx_line = 1; +- rem_sz = data_sz; ++ rem_sz = data_sz; // size available for storing def text + + /* + * Our base context will have its currency pointer set to this +@@ -487,6 +498,9 @@ read_defs(void) + if (fp == NULL) + AG_CANT(READ_DEF_OPEN, def_fname); + ++ /* ++ * If we're emitting dependency information, then do so. ++ */ + if (dep_fp != NULL) + add_source_file(def_fname); + } +@@ -521,8 +535,7 @@ read_defs(void) + * See if there is any space left + */ + if (rem_sz == 0) { +- scan_ctx_t * p; +- off_t dataOff; ++ off_t scan_off; + + /* + * IF it is a regular file, then we are done +@@ -532,24 +545,16 @@ read_defs(void) + + /* + * We have more data and we are out of space. +- * Try to reallocate our input buffer. ++ * AGREALOC will succeed or not return. + */ + data_sz += (rem_sz = 0x1000); +- dataOff = data - base_ctx->scx_data; +- p = AGREALOC(VOIDP(base_ctx), data_sz + 4 + sizeof(*base_ctx), +- "expand f buf"); ++ scan_off = data - base_ctx->scx_data; ++ base_ctx = AGREALOC(VOIDP(base_ctx), data_sz + 4 + sizeof(*base_ctx), ++ "expand f buf"); + +- /* +- * The buffer may have moved. Set the data pointer at an +- * offset within the new buffer and make sure our base pointer +- * has been corrected as well. +- */ +- if (p != base_ctx) { +- p->scx_scan = \ +- p->scx_data = (char *)(p + 1); +- data = p->scx_data + dataOff; +- base_ctx = p; +- } ++ base_ctx->scx_scan = \ ++ base_ctx->scx_data = (char *)(base_ctx + 1); ++ data = base_ctx->scx_data + scan_off; + } + } + +-- +2.35.3 + diff --git a/autogen-build_ldpath.patch b/autogen-build_ldpath.patch new file mode 100644 index 0000000..2f23303 --- /dev/null +++ b/autogen-build_ldpath.patch @@ -0,0 +1,22 @@ +--- + autoopts/Makefile.am | 2 +- + doc/mk-agen-texi.sh | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +Index: autogen-5.18.16/doc/mk-agen-texi.sh +=================================================================== +--- autogen-5.18.16.orig/doc/mk-agen-texi.sh ++++ autogen-5.18.16/doc/mk-agen-texi.sh +@@ -98,9 +98,9 @@ setup_exports() + + PATH=${top_builddir}/columns:${PATH} + timer=`expr ${AG_TIMEOUT} '*' 5` +- d=`find ${top_builddir}/autoopts -type f -name libopts.a -print` +- test -f "$d" || die "Cannot locate libopts.a" +- LIBS="$d ${LIBS}" ++ d=`find ${top_builddir}/autoopts -type f -name libopts.a -o -name libopts.so | head -n 1` ++ LIBS="-L$(dirname "$d") -lopts ${LIBS}" ++ LD_LIBRARY_PATH="$(dirname "$d"):$LD_LIBRARY_PATH" + + eval `${EGREP} '^AG_[A-Z_]*' ${top_srcdir}/VERSION` + diff --git a/autogen-catch-race-error.patch b/autogen-catch-race-error.patch new file mode 100644 index 0000000..4855862 --- /dev/null +++ b/autogen-catch-race-error.patch @@ -0,0 +1,31 @@ +This would have made the racy build fail +instead of producing missing and incorrect files + +https://bugzilla.opensuse.org/show_bug.cgi?id=1021353 + +Index: autogen-5.18.16/agen5/agDep.c +=================================================================== +--- autogen-5.18.16.orig/agen5/agDep.c ++++ autogen-5.18.16/agen5/agDep.c +@@ -308,7 +308,7 @@ tidy_dep_file(void) + pzn[len] = NUL; + + unlink(pzn); +- rename(dep_file, pzn); ++ if (rename(dep_file, pzn)) { exit(95); } + AGFREE(dep_file); + dep_file = pzn; + } while (false); +Index: autogen-5.18.16/agen5/expOutput.c +=================================================================== +--- autogen-5.18.16.orig/agen5/expOutput.c ++++ autogen-5.18.16/agen5/expOutput.c +@@ -251,7 +251,7 @@ ag_scm_out_move(SCM new_file) + + if (strcmp(pz, cur_fpstack->stk_fname) != 0) { + +- rename(cur_fpstack->stk_fname, pz); ++ if (rename(cur_fpstack->stk_fname, pz)) { exit(94); } + + if (dep_fp != NULL) { + rm_target_file(cur_fpstack->stk_fname); diff --git a/autogen.changes b/autogen.changes new file mode 100644 index 0000000..bef7a42 --- /dev/null +++ b/autogen.changes @@ -0,0 +1,595 @@ +------------------------------------------------------------------- +Tue Apr 19 19:22:33 UTC 2022 - Martin Liška + +- Add upstream patch autogen-avoid-GCC-code-analysis-bug.patch + in order to support -D_FORTIFY_SOURCE=3 with GCC 12. +- Use autosetup. + +------------------------------------------------------------------- +Wed Jun 10 11:53:58 UTC 2020 - Bernhard Wiedemann + +- Set MAN_PAGE_DATE to normalize man page date (boo#1047218) + +------------------------------------------------------------------- +Mon May 11 16:28:29 UTC 2020 - Andreas Schwab + +- Increase default timeout +- Run testsuite in verbose mode + +------------------------------------------------------------------- +Mon Mar 23 15:10:17 UTC 2020 - Andreas Schwab + +- guile-version.patch: Allow all patchlevel versions of guile 3.0 + +------------------------------------------------------------------- +Tue Jan 21 10:41:18 UTC 2020 - Andreas Schwab + +- guile-version.patch: Allow building with guile 3.0 + +------------------------------------------------------------------- +Mon Mar 25 08:32:40 UTC 2019 - Martin Liška + +- Add gcc9-fix-wrestrict.patch in order to fix + bsc#1125772. + +------------------------------------------------------------------- +Thu Nov 22 11:01:48 UTC 2018 - schwab@suse.de + +- Remove invalid signature file and keyring + +------------------------------------------------------------------- +Wed Nov 21 15:58:24 UTC 2018 - + +- BuildRequire guile-devel to make transistion to Guile 2.2 smooth + +------------------------------------------------------------------- +Tue Oct 16 07:41:12 UTC 2018 - schwab@suse.de + +- Update to version 5.8.16 + - Enable compiling with Guile 2.2 +- autogen-guile-2.2.patch: removed +- installable-programs.patch: don't make programs uninstallable +- Rediff remaining patches + +------------------------------------------------------------------- +Tue Jul 31 08:50:01 UTC 2018 - schwab@suse.de + +- Don't require libopts-devel from autogen +- Rename libopts-devel to autoopts +- Move all autoopts related files to autoopts +- Don't run autoreconf +- Don't remove -Werror +- sprintf-overflow.patch: Fix sprintf overflow +- autogen-guile-2.2.patch: properly add support for guile 2.2 +- autogen-constant-timeout.patch: remove, use --enable-timeout + instead + +------------------------------------------------------------------- +Fri Jul 20 08:28:31 UTC 2018 - mpluskal@suse.com + +- Update to version 5.8.14: + * several configury fixes to enable cross platform building. + * fompletion of a change in "char-mapper" to enable bootstrapping + * Guile 1.8 support was removed + * Replace AG_SCM_STR02SCM with scm_from_latin1_string this breaks + Guile 1.8. + * adaptations for cross compiling + * no more generating autoconf macros + * fix internal implementation of forking off autogen in xml2ag + * when calling abort() causes problems, exit() can now be called + (via an option) instead. + * add support for nanosecond precision in file times + * suppress dumb warnings about embedded NUL bytes in formats. +- Refresh patches +- Drop not applying autogen-reproducible-tar.patch + +------------------------------------------------------------------- +Tue Mar 27 12:16:08 UTC 2018 - dimstar@opensuse.org + +- Explicitly call autoreconf: various patches touch the build + system, which results in an implicit call. That in turn only + works as long as the automake/autconf version is the same as used + when originally bootrapping the tarball. + +------------------------------------------------------------------- +Wed Aug 23 15:03:54 UTC 2017 - bwiedemann@suse.com + +- Add autogen-reproducible-tar.patch to make .tar.gz build reproducible + ( https://sourceforge.net/p/autogen/bugs/182/ ) +- Add autogen-constant-timeout.patch to make build reproducible (boo#1041534) +- Set MAN_PAGE_DATE to not include build date into man pages (boo#1047218) + +------------------------------------------------------------------- +Tue Jul 4 08:45:03 UTC 2017 - tchvatal@suse.com + +- Add patch to build with guile 2.2: + * autogen-guile-2.2.patch + +------------------------------------------------------------------- +Wed Feb 22 14:28:17 UTC 2017 - bwiedemann@suse.com + +- Add autogen-catch-race-error.patch (boo#1021353) + +------------------------------------------------------------------- +Sun Jan 8 07:20:11 UTC 2017 - mpluskal@suse.com + +- Update to version 5.8.12: + * several configury fixes to enable cross platform building. + * fompletion of a change in "char-mapper" to enable bootstrapping + +------------------------------------------------------------------- +Mon Jun 27 18:38:22 UTC 2016 - astieger@suse.com + +- GNU autogen 5.18.10: + * NUL terminate CGI definitions text +- GNU autogen 5.18.9: + * When parsing CGI, do not allow spaces to be lost + * In producing usage text, check more rigorously that + option "values" are really not flag characters. +- GNU autogen 5.18.8: + * Ensure testing vars start as unset for testing + * happy new year & de-uglifications +- update download URL and usptream signing key + +------------------------------------------------------------------- +Thu May 5 07:10:15 UTC 2016 - mpluskal@suse.com + +- Rename devel package to libopts-devel +- Add corresponding obsoletion + +------------------------------------------------------------------- +Tue May 3 15:34:42 UTC 2016 - mpluskal@suse.com + +- Fix typo in preun script + +------------------------------------------------------------------- +Tue Apr 19 08:38:13 UTC 2016 - mpluskal@suse.com + +- Split shared libraries (boo#976068) +- Move info handling to preun section +- Do not ship .la file + +------------------------------------------------------------------- +Mon Dec 7 10:48:12 UTC 2015 - mpluskal@suse.com + +- Update to 5.18.7 + * {AG,CL,GD}exe environment variables may be set to force + bootstrapping with a particular release. + * MAN_PAGE_DATE can be used with various man page docs to + override the current date default. + * project may now be bootstrapped and built in the source + directory with no ill effect. + * AutoGen as a daemon will never happen. Last vestiges gone. + * templates may now obtain the most recent source modification + time with "(max-file-time)" + +------------------------------------------------------------------- +Wed Sep 16 13:15:32 UTC 2015 - mpluskal@suse.com + +- Update to 5.18.6 + * {AG,CL,GD}exe environment variables may be set to force + bootstrapping with a particular release. + * MAN_PAGE_DATE can be used with various man page docs to + override the current date default. + * project may now be bootstrapped and built in the source + directory with no ill effect. + * AutoGen as a daemon will never happen. Last vestiges gone. + * templates may now obtain the most recent source modification + time with "(max-file-time)" + +------------------------------------------------------------------- +Thu May 21 15:05:12 UTC 2015 - schwab@suse.de + +- No longer call autoreconf + +------------------------------------------------------------------- +Thu May 21 13:47:09 UTC 2015 - mpluskal@suse.com + +- Update info files dependencies +- Refresh partially upstreamed autogen-build_ldpath.patch +- Update to 5.18.5 + * Guile 1.6 is now obsolete. 1.7/8 or newer from now on. + Fixed issues with Guile managed locale string processing. + (It keeps getting better and better all the time and I + must keep adjusting over and over all the time.) + * more Guile-config somersaults + config/misc.def: sometimes, "pkg-config --cflags-only-I" yields + multiple directories for Guile and that incantation is the only + way to find libguile/version.h and that header is the only way + to determine the micro version and the micro version is the best + way to check for certain types of breakage. (Testing is too + convoluted.) + * for-each handler functions may now be able to free (or not) + the file text via the "handler-frees" attribute. + +------------------------------------------------------------------- +Mon Mar 2 15:38:31 UTC 2015 - mpluskal@suse.com + +- Remove upsteamed patch: + * autoopts-remove-stupid-set-e.patch + * agen5-testsuite.patch +- Cleanup spec file with spec-cleaner +- Use url for source +- Add gpg signature +- Update to 5.18.4 + * Do Not Edit (dne) warning: the default of printing a date in + the warning has now changed to not doing so. The "-d" option + to suppress the date is now deprecated (ignored). A new + option, "-D" will cause the date to be included. The + environment variable, "AUTOGEN_DNE_DATE" overrides everything. + * The RETURN function was not completely implemented and only + partially worked. It is working now. + * optionPrintVersionAndReturn() is a new function for applications + that wish to extend the behavior of the "--version" option. + * mdoc and man pages have been greatly improved. + * libopts tear-off library used stdnoreturn.h and now includes + infrastructure for systems deficient in that area + * new function: insert-file It will simply insert the contents + of a file (or list of files) into the output stream. + +------------------------------------------------------------------- +Fri Jul 4 12:03:09 UTC 2014 - schwab@suse.de + +- agen5-testsuite.patch: fix spurious testsuite failure + +------------------------------------------------------------------- +Thu Jul 3 08:43:05 UTC 2014 - schwab@suse.de + +- Update to 5.18.3 + * ATTRIBUTE_FORMAT_ARG is a configured attribute that wraps + __attribute__((__format_arg__(n))) procedure declaration attributes. + To configure it, the ag_macros.m4 has a new macroo, + AG_COMPILE_FORMAT_ARG (which is a compile only test probe). + + * Auto-edit Guile headers that depend upon configure values + most especially: noreturn + but check for "ptrdiff_t" in our configure too, so that Guile does + not create its own duplicate definition. + + * Abort from the failing function so that stack traces are useful + * The libopts m4 configure code must configure the libopts/Makefile + * Happy 2014 New Year + * make sure library option handling code does nothing when the + library is just trying to get information about an option. + * Only apply texi2mdoc when it is needed. + * The aoGetsText() emitted i18n helper function needs its argument + to have the "format_arg" attribute. + * documentation clarifications + * properly create generated main procedures from user supplied code. + * ChangeLog files have been removed from GIT sources + (though still obtainable with tagged checkouts). + * LIBGUILE_PATH is not needed and its derivation is wrong on + where binaries and libraries have different prefixes. + * fixed char casting issue that shows in UTF-8 files + * fixed installation error for str2init + * fixed failure handling in the usage template + * fix broken flag values for auto-supported options + * various tweaks to make Coverity happy. + * allow the fatal error message functions to be tagged "noreturn" + and incorporate sysnoreturn.h technology into AutoGen. + * --save-opts documentation cleanup + * optionMemberList() will return an allocated string containing + the names of the bits set in the option. + * tab stripped "here strings" include stripping the backslash + escape character when it precedes any whitespace character. +- autoopts-remove-stupid-set-e.patch: remove stupid use of set -e +- autogen-setfilename.patch: remove +- autogen-build_ldpath.patch: regenerate +- run testsuite + +------------------------------------------------------------------- +Tue Apr 16 11:24:00 CEST 2013 - pth@suse.de + +- Update to 5.16.2: + * Coverity cleanups + * evade Guile issue on BSD platform. + * avoid emitting non-error messages to stderr +- Adapt autogen-build_ldpath.patch to the changed sources. + +------------------------------------------------------------------- +Sat Mar 2 12:05:34 UTC 2013 - seife+obs@b1-systems.com + +- fix build with automake-1.13.1 +- add explicit makeinfo buildrequires, it is required to build + +------------------------------------------------------------------- +Sat Jul 14 17:28:10 UTC 2012 - crrodriguez@opensuse.org + +- Fix source URL, this update must reach 12.2 because + autogen was generating broken C code that segfaults + with fortify source. + +------------------------------------------------------------------- +Tue May 22 03:55:25 UTC 2012 - crrodriguez@opensuse.org + +- Update to version 5.16 +* Changes, many see http://autogen.sourceforge.net/announce.html. + + +------------------------------------------------------------------- +Fri Sep 30 20:07:43 UTC 2011 - coolo@suse.com + +- add libtool as buildrequire to make the spec file more reliable + +------------------------------------------------------------------- +Sat Sep 17 13:44:14 UTC 2011 - jengelh@medozas.de + +- Remove redundant tags/sections from specfile +- Use %_smp_mflags for parallel build + +------------------------------------------------------------------- +Tue Aug 2 07:43:41 UTC 2011 - aj@suse.de + +- Remove download source service. + +------------------------------------------------------------------- +Mon Jul 25 12:41:16 UTC 2011 - pgajdos@novell.com + +- require pkg-config for build to detect guile-2.0 + +------------------------------------------------------------------- +Wed Mar 9 13:14:16 UTC 2011 - coolo@novell.com + +- update to 5.11.8: + * many, many changes - see NEWS and ChangeLog + +------------------------------------------------------------------- +Mon Sep 13 12:01:49 CEST 2010 - pth@suse.de + +- Add patch from dnh@opensuse.org to fix building the documentation + with an uninstalled libopts. + +------------------------------------------------------------------- +Thu Sep 9 13:06:20 CEST 2010 - pth@suse.de + +- Update to 5.11.1: + * Fix (kill) orphaned shell program + * add file-next-line functions to facilitate #line "C" directives + * simplify some snprintfv code + * implement dependency generation in autogen output. + * fix up fmemopen() + * Fixes for unusual shell programs + * Remove guile option code + +------------------------------------------------------------------- +Wed Apr 1 15:14:32 CEST 2009 - crrodriguez@suse.de + +- disable static libraries but keep "la" files, package uses + libltdl + +------------------------------------------------------------------- +Mon Jan 12 16:19:10 CET 2009 - schwab@suse.de + +- Update to autogen 5.9.7. + * several cleanups. + * "more-help" is only supported with libopts is in use at run time. + Allow for it to be expunged from the documentation. + * Add a #define for the configured shell to config.h + * add --used-defines to autogen. You can now find out all the names + that autogen looked up during processing. That will include computed + names and values passed to macros by name and it won't include names + only referenced in sections of a template that were not processed. + But it helps in documenting a template anyway. + +------------------------------------------------------------------- +Mon Nov 17 10:09:53 CET 2008 - schwab@suse.de + +- Update to autogen 5.9.6. + * Hierarchically valued options can now be stored with ``--save-opt'' option + * option state may now be "reset". This is indistinguishable from the + compiled state. If option state is "saved" later, such an option will + not appear in the save file. + * there is a new option argument type: time. Its argument string + represents years (?!), months, weeks, days, hours, minutes and seconds. + The value seen by the program is an integer number of seconds. + (This is not a date/time.) The duration of a year is always 365 days + and the duration of a month is always 30 days. + * various obscure cleanups. + +------------------------------------------------------------------- +Mon Jan 7 14:02:19 CET 2008 - schwab@suse.de + +- Update to autogen 5.9.5. + * integer number arguments may now have their values suffixed with + one of the letters k/K/m/M/g/G/t/T to signify scaling by powers + of 1000 (lower case) or 1024 (upper case). Specify, "scaled". + * AutoOpts "arg-type" may now be set to "file". Existence of the directory + portion of the name will be checked. The existence (or not) of the actual + file may also be checked. Finally, the file may be pre-opened with either + "fopen(3C)" or "open(2)". + * The "columns" program now accepts a "--fill" option to cause it to fill + text instead of filling columns. + * The tests should no longer indirectly reference installed versions of + the binaries. They should all work out of the build directories. + +------------------------------------------------------------------- +Mon Oct 8 11:55:33 CEST 2007 - schwab@suse.de + +- Update to autogen 5.9.3. + * libopts requires strsignal, so the config test has been moved. + * fixed ``--save'' option bug + * programs may now choose to have config files kept in cannonical form + ("C" locale), even if long option names are translated. The option + definition file must contain ``no-xlate = opt-cfg;'' or + ``no-xlate = opt;'' See the documentation for details. + +------------------------------------------------------------------- +Mon Jul 30 14:19:31 CEST 2007 - schwab@suse.de + +- Update to autogen 5.9.2. + * GNU GPL v3 is now emitted with the "gpl" and "lgpl" functions. + * usage.tpl template has been added. + * getopt.tpl uses this template for constructing its usage string. + * if "short-usage" or "full-usage" can be used to specify the form + of the usage text: + * not supplied -> compute it at run time + * supplied, but empty -> use "usage.tpl" to compute it + * is a variable name -> insert into option structure + * is text -> emit the text and point to it from option structure + +------------------------------------------------------------------- +Mon May 7 14:51:30 CEST 2007 - schwab@suse.de + +- Update to autogen 5.9.1. + * getopt.tpl template is fixed to not require the internal header + autoopts/autoopts.h. + * MAXPATHLEN will use _MAX_PATH on Windows platforms + * new libopts configuration option: --disable-optional-args This will #define + NO_OPTIONAL_OPT_ARGS in config.h and cause the built library to ignore the + OPTST_ARG_OPTIONAL bit in an option descriptor. autoopts generated code + compiled with NO_OPTIONAL_OPT_ARGS #defined will never have that bit set in + the option descriptors either. If libopts has been so configured, then the + installed options.h header will contain: #define NO_OPTIONAL_OPT_ARGS 1 so + that client code will generally be compiled with that flag set. + The OPTST_ARG_OPTIONAL bit is ignored regardless. + * Fixed up --load-opts environment variable processing. You can + now correctly suppress config file loading with either: + PROGRAM_LOAD_OPTS=no + PROGRAM=--no-load-opts + * added new auto-supported option, --usage. It is incorporated + by specifying ``usage-opt;'' in the option definitions file. + * libopts now uses several exit codes from sysexits.h: + EX_NOINPUT (66) - a specified config file cannot be found + EX_SOFTWARE (70) - libopts error - please file a bug report + EX_CONFIG (78) - a NULL option descriptor was passed in - user bug + +------------------------------------------------------------------- +Sun Feb 18 10:10:24 CET 2007 - schwab@suse.de + +- Update to autogen 5.9. + * a script for producing Debian packages is included + * including of templates and definitions now works more like + ``#include "foo"'' instead of ``#include ''. + * fixed sizeof(int) != sizeof(size_t) bug. + * fixed incorrect argument number format string + +------------------------------------------------------------------- +Mon Jan 29 11:37:57 CET 2007 - schwab@suse.de + +- Update to autogen 5.8.9. + * GREP is now a configurable. (Sheesh!) + * options with hierarchical structure (nested values) had some + bugs in the config file parsing code. Fixed. + * Since YACC is not used any more, it is no longer required. :) + +------------------------------------------------------------------- +Sun Oct 15 10:21:32 CEST 2006 - schwab@suse.de + +- Update to autogen 5.8.7. + * Tweaks for Windows' compat/windows-config.h + * new string-table convenience functions: string-table-add-ref and + string-table-size + * fixed a value referencing bug in enumeration arg handling + (seen on platforms where sizeof(int) != sizeof(void*)). + +------------------------------------------------------------------- +Fri Oct 13 14:12:12 CEST 2006 - aj@suse.de + +- add guile-devel buildrequires. + +------------------------------------------------------------------- +Thu Oct 12 20:29:46 CEST 2006 - ro@suse.de + +- added gmp-devel to buildrequires (guile) + +------------------------------------------------------------------- +Mon Oct 9 14:10:30 CEST 2006 - schwab@suse.de + +- Update to autogen 5.8.6. + * AutoOpts code presumed that there were no #defines for the option + names. You can now force aside such conflicts. + * AutoOpts generated code unconditionally #includes limits.h and stdint.h. + * aliased pointer cleanups should allow higher optimization of code. + * The installation of the tear-off libopt library is now optional + to the installers of client projects. + +------------------------------------------------------------------- +Mon May 15 15:31:27 CEST 2006 - schwab@suse.de + +- Update to autogen 5.8.5. + * ag-fprintf will now allow you to emit text into a suspended output stream. + * string tables have been implemented as a scheme function. This makes it + very easy to produce an array of characters containing NUL termintaed + strings and have these string offsets (indexes) available for indexing into + the string arrays. + * The libopts code will omit Windows-unfriendly code if the compile defines + _WIN32 and does not define __CYGWIN__. + * suffix specifications in the pseudo macro may now construct an output + file name format string using scheme code, a la: + [= autogen5 template + h=(string-append (getenv "TMPDIR") "/%s-hdr.h") =] + The "%s" will still be replaced by the base name. + * the scheme function "version-compare" will allow you to compare + two dotted version numbers. These can be your own versions or + that of autogen. The scheme variable ``autogen-version'' has been + around for a long time and may be used as one of the arguments. + * #assert is now active in definition files. If the text begins + with a back quote, it is handed off to the shell for processing. + If an open parenthesis, it is handed off to Guile. If it is + anything else, it is ignored. + +------------------------------------------------------------------- +Wed Jan 25 21:29:57 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sun Jan 15 15:04:28 CET 2006 - schwab@suse.de + +- Run %install_info. + +------------------------------------------------------------------- +Sat Jan 14 00:43:11 CET 2006 - schwab@suse.de + +- Update to autogen 5.8.1. + +------------------------------------------------------------------- +Wed Jan 11 00:47:59 CET 2006 - schwab@suse.de + +- Run ldconfig in %post. + +------------------------------------------------------------------- +Mon Jan 9 17:48:06 CET 2006 - schwab@suse.de + +- Update to autogen 5.8. + +------------------------------------------------------------------- +Fri Oct 14 15:08:08 CEST 2005 - schwab@suse.de + +- Fix strict-aliasing bugs. + +------------------------------------------------------------------- +Tue Oct 11 11:58:53 CEST 2005 - schwab@suse.de + +- Update to autogen 5.7.3. + +------------------------------------------------------------------- +Tue Aug 2 17:40:09 CEST 2005 - schwab@suse.de + +- Update to autogen 5.7.2. + +------------------------------------------------------------------- +Fri Apr 29 16:59:11 CEST 2005 - schwab@suse.de + +- Update to autogen 5.7. + +------------------------------------------------------------------- +Tue Mar 29 21:51:56 CEST 2005 - schwab@suse.de + +- Update to autogen 5.6.6. + +------------------------------------------------------------------- +Mon Jan 10 15:41:28 CET 2005 - schwab@suse.de + +- Update to autogen 5.6.5. + +------------------------------------------------------------------- +Thu Nov 11 12:45:47 CET 2004 - ro@suse.de + +- fixed file list + +------------------------------------------------------------------- +Sat Nov 6 19:35:15 CET 2004 - schwab@suse.de + +- Initial version 5.6.4. + diff --git a/autogen.spec b/autogen.spec new file mode 100644 index 0000000..5fb3090 --- /dev/null +++ b/autogen.spec @@ -0,0 +1,147 @@ +# +# spec file for package autogen +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define libname libopts25 +Name: autogen +Version: 5.18.16 +Release: 0 +Summary: Automated Text File Generator +License: GPL-3.0-or-later +Group: Development/Tools/Building +URL: https://www.gnu.org/software/autogen/ +Source0: https://ftp.gnu.org/gnu/autogen/rel%{version}/%{name}-%{version}.tar.xz +Patch1: autogen-build_ldpath.patch +# PATCH-FIX-UPSTREAM -- https://savannah.gnu.org/support/index.php?109234 boo#1021353 +Patch2: autogen-catch-race-error.patch +# PATCH-FIX-UPSTREAM don't make programs uninstallable +Patch3: installable-programs.patch +# PATCH-FIX-UPSTREAM +Patch4: sprintf-overflow.patch +# PATCH-FIX-UPSTREAM -- https://sourceforge.net/p/autogen/bugs/193/#5844 +Patch5: gcc9-fix-wrestrict.patch +# PATCH-FIX-UPSTREAM Allow building with guile 3.0 +Patch6: guile-version.patch +Patch7: autogen-avoid-GCC-code-analysis-bug.patch +BuildRequires: fdupes +BuildRequires: guile-devel +BuildRequires: makeinfo +BuildRequires: pkgconfig >= 0.9.0 +BuildRequires: pkgconfig(libxml-2.0) +Requires(post): %{install_info_prereq} +Requires(preun):%{install_info_prereq} + +%description +AutoGen is a tool designed for generating program files that contain +repetitive text with varied substitutions. Its goal is to simplify the +maintenance of programs that contain large amounts of repetitious text. +This is especially valuable if there are several blocks of such text that +must be kept synchronized in parallel tables. + +%package -n %{libname} +Summary: Shared library libopts +Group: System/Libraries + +%description -n %{libname} +AutoOpts is a tool that virtually eliminates the hassle of processing +options and keeping man pages, info docs and usage text up to date. This +package allows you to specify several program attributes, thousands of +option types and many option attributes. From this, it then produces all +the code necessary to parse and handle the command line and configuration +file options, and the documentation that should go with your program as +well. + +This package contains shared library libopts + +%package -n autoopts +Summary: Automated Option Processing +Group: Development/Languages/C and C++ +Requires: %{libname} = %{version}-%{release} +Requires: autogen +Obsoletes: %{libname}-devel < %{version}-%{release} +Provides: autogen:/usr/bin/autoopts-config +Provides: libopts-devel + +%description -n autoopts +AutoOpts is a tool that virtually eliminates the hassle of processing +options and keeping man pages, info docs and usage text up to date. This +package allows you to specify several program attributes, thousands of +option types and many option attributes. From this, it then produces all +the code necessary to parse and handle the command line and configuration +file options, and the documentation that should go with your program as +well. + +%prep +%autosetup -p1 +touch aclocal.m4 configure Makefile.in config-h.in + +%build +%configure \ + --enable-timeout=70 \ + --disable-static \ + --with-pic +make %{?_smp_mflags} + +%install +export MAN_PAGE_DATE=$(date -u -d @${SOURCE_DATE_EPOCH:-$(date +%s)} -I) +%make_install +find %{buildroot} -type f -name "*.la" -delete -print +%fdupes -s %{buildroot}%{_datadir} + +%check +make %{?_smp_mflags} check VERBOSE=1 + +%post +%install_info --info-dir=%{_infodir} %{_infodir}/autogen.info%{ext_info} + +%preun +%install_info_delete --info-dir=%{_infodir} %{_infodir}/autogen.info%{ext_info} + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%files +%doc NEWS +%license COPYING +%{_bindir}/autogen +%{_bindir}/columns +%{_bindir}/getdefs +%{_bindir}/xml2ag +%{_mandir}/man1/*%{ext_man} +%exclude %{_mandir}/man1/autoopts-config.1%{ext_man} +%{_infodir}/*%{ext_info} +%dir %{_datadir}/autogen +%{_datadir}/autogen/fsm-trans.tlib +%{_datadir}/autogen/fsm-macro.tlib + +%files -n %{libname} +%{_libdir}/libopts.so.* + +%files -n autoopts +%{_bindir}/autoopts-config +%{_libdir}/libopts.so +%{_includedir}/* +%{_mandir}/man1/autoopts-config.1%{ext_man} +%{_mandir}/man3/*%{ext_man} +%{_libdir}/autogen +%{_datadir}/aclocal/* +%{_datadir}/autogen +%exclude %{_datadir}/autogen/fsm-trans.tlib +%exclude %{_datadir}/autogen/fsm-macro.tlib +%{_libdir}/pkgconfig/*.pc + +%changelog diff --git a/gcc9-fix-wrestrict.patch b/gcc9-fix-wrestrict.patch new file mode 100644 index 0000000..3301d3a --- /dev/null +++ b/gcc9-fix-wrestrict.patch @@ -0,0 +1,50 @@ +diff --git a/compat/pathfind.c b/compat/pathfind.c +index 5c477ca..6a4eeb5 100644 +--- a/compat/pathfind.c ++++ b/compat/pathfind.c +@@ -136,6 +136,18 @@ make_absolute( char const * string, char const * dot_path ) + return result; + } + ++/* ++ * Proccess strcpy for overlapping memory locations. ++ */ ++static char* ++strcpy_overlapping ( char *d, const char *s) ++{ ++ unsigned n = strlen ( s ); ++ memmove ( d, s, n + 1 ); ++ return d; ++} ++ ++ + /* + * Canonicalize PATH, and return a new path. The new path differs from + * PATH in that: +@@ -182,7 +194,7 @@ canonicalize_pathname( char *path ) + if ((start + 1) != i && (start != 0 || i != 2)) + #endif /* apollo */ + { +- strcpy( result + start + 1, result + i ); ++ strcpy_overlapping( result + start + 1, result + i ); + i = start + 1; + } + +@@ -201,7 +213,7 @@ canonicalize_pathname( char *path ) + if (result[i] == '.') { + /* Handle `./'. */ + if (result[i + 1] == '/') { +- strcpy( result + i, result + i + 1 ); ++ strcpy_overlapping( result + i, result + i + 1 ); + i = (start < 0) ? 0 : start; + continue; + } +@@ -211,7 +223,7 @@ canonicalize_pathname( char *path ) + (result[i + 2] == '/' || !result[i + 2])) { + while (--start > -1 && result[start] != '/') + ; +- strcpy( result + start + 1, result + i + 2 ); ++ strcpy_overlapping( result + start + 1, result + i + 2 ); + i = (start < 0) ? 0 : start; + continue; + } diff --git a/guile-version.patch b/guile-version.patch new file mode 100644 index 0000000..82fda40 --- /dev/null +++ b/guile-version.patch @@ -0,0 +1,39 @@ +Index: autogen-5.18.16/agen5/guile-iface.h +=================================================================== +--- autogen-5.18.16.orig/agen5/guile-iface.h ++++ autogen-5.18.16/agen5/guile-iface.h +@@ -9,7 +9,7 @@ + # error AutoGen does not work with this version of Guile + choke me. + +-#elif GUILE_VERSION < 203000 ++#elif GUILE_VERSION < 301000 + # define AG_SCM_IS_PROC(_p) scm_is_true( scm_procedure_p(_p)) + # define AG_SCM_LIST_P(_l) scm_is_true( scm_list_p(_l)) + # define AG_SCM_PAIR_P(_p) scm_is_true( scm_pair_p(_p)) +Index: autogen-5.18.16/config/guile.m4 +=================================================================== +--- autogen-5.18.16.orig/config/guile.m4 ++++ autogen-5.18.16/config/guile.m4 +@@ -61,7 +61,7 @@ + # + AC_DEFUN([GUILE_PKG], + [PKG_PROG_PKG_CONFIG +- _guile_versions_to_search="m4_default([$1], [2.2 2.0 1.8])" ++ _guile_versions_to_search="m4_default([$1], [3.0 2.2 2.0 1.8])" + if test -n "$GUILE_EFFECTIVE_VERSION"; then + _guile_tmp="" + for v in $_guile_versions_to_search; do +Index: autogen-5.18.16/configure +=================================================================== +--- autogen-5.18.16.orig/configure ++++ autogen-5.18.16/configure +@@ -14799,7 +14799,7 @@ $as_echo "no" >&6; } + PKG_CONFIG="" + fi + fi +- _guile_versions_to_search="2.2 2.0 1.8" ++ _guile_versions_to_search="3.0 2.2 2.0 1.8" + if test -n "$GUILE_EFFECTIVE_VERSION"; then + _guile_tmp="" + for v in $_guile_versions_to_search; do diff --git a/installable-programs.patch b/installable-programs.patch new file mode 100644 index 0000000..e85b7bd --- /dev/null +++ b/installable-programs.patch @@ -0,0 +1,92 @@ +Index: autogen-5.18.16/agen5/Makefile.am +=================================================================== +--- autogen-5.18.16.orig/agen5/Makefile.am ++++ autogen-5.18.16/agen5/Makefile.am +@@ -63,7 +63,7 @@ SNV_LIB = $(top_builddir)/snprin + nodist_autogen_SOURCES = ag.c + autogen_SOURCES = $(gen_csrc) + autogen_LDADD = $(LO_LIB) $(SNV_LIB) $(GUILE_LIBS) +-autogen_LDFLAGS = $(DYNAMIC_AG) $(AG_STATIC_AUTOGEN) -no-install ++autogen_LDFLAGS = $(DYNAMIC_AG) $(AG_STATIC_AUTOGEN) + autogen_CFLAGS = $(GUILE_CFLAGS) + stamp_script = $(srcdir)/mk-stamps.sh + +Index: autogen-5.18.16/agen5/Makefile.in +=================================================================== +--- autogen-5.18.16.orig/agen5/Makefile.in ++++ autogen-5.18.16/agen5/Makefile.in +@@ -482,7 +482,7 @@ SNV_LIB = $(top_builddir)/snprintfv/libs + nodist_autogen_SOURCES = ag.c + autogen_SOURCES = $(gen_csrc) + autogen_LDADD = $(LO_LIB) $(SNV_LIB) $(GUILE_LIBS) +-autogen_LDFLAGS = $(DYNAMIC_AG) $(AG_STATIC_AUTOGEN) -no-install ++autogen_LDFLAGS = $(DYNAMIC_AG) $(AG_STATIC_AUTOGEN) + autogen_CFLAGS = $(GUILE_CFLAGS) + stamp_script = $(srcdir)/mk-stamps.sh + AM_YFLAGS = -d +Index: autogen-5.18.16/columns/Makefile.am +=================================================================== +--- autogen-5.18.16.orig/columns/Makefile.am ++++ autogen-5.18.16/columns/Makefile.am +@@ -20,7 +20,6 @@ + ## with this program. If not, see . + + bin_PROGRAMS = columns +-columns_LDFLAGS = -no-install + csrc = opts.h columns.c opts.c + nodist_columns_SOURCES = cols.c + +Index: autogen-5.18.16/columns/Makefile.in +=================================================================== +--- autogen-5.18.16.orig/columns/Makefile.in ++++ autogen-5.18.16/columns/Makefile.in +@@ -128,7 +128,7 @@ am__v_lt_0 = --silent + am__v_lt_1 = + columns_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +- $(columns_LDFLAGS) $(LDFLAGS) -o $@ ++ $(LDFLAGS) -o $@ + AM_V_P = $(am__v_P_@AM_V@) + am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) + am__v_P_0 = false +@@ -389,7 +389,6 @@ target_vendor = @target_vendor@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-columns_LDFLAGS = -no-install + csrc = opts.h columns.c opts.c + nodist_columns_SOURCES = cols.c + LO_LIB = $(top_builddir)/autoopts/libopts.la +Index: autogen-5.18.16/getdefs/Makefile.am +=================================================================== +--- autogen-5.18.16.orig/getdefs/Makefile.am ++++ autogen-5.18.16/getdefs/Makefile.am +@@ -23,7 +23,6 @@ + TARG = getdefs + + bin_PROGRAMS = getdefs +-getdefs_LDFLAGS = -no-install + gdsrcs = getdefs.h proto.h gdemit.c gdinit.c getdefs.c + getdefs_SOURCES = proto.h + BUILT_SOURCES = gd.c +Index: autogen-5.18.16/getdefs/Makefile.in +=================================================================== +--- autogen-5.18.16.orig/getdefs/Makefile.in ++++ autogen-5.18.16/getdefs/Makefile.in +@@ -130,7 +130,7 @@ am__v_lt_0 = --silent + am__v_lt_1 = + getdefs_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +- $(getdefs_LDFLAGS) $(LDFLAGS) -o $@ ++ $(LDFLAGS) -o $@ + AM_V_P = $(am__v_P_@AM_V@) + am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) + am__v_P_0 = false +@@ -434,7 +434,6 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + TARG = getdefs +-getdefs_LDFLAGS = -no-install + gdsrcs = getdefs.h proto.h gdemit.c gdinit.c getdefs.c + getdefs_SOURCES = proto.h + BUILT_SOURCES = gd.c diff --git a/sprintf-overflow.patch b/sprintf-overflow.patch new file mode 100644 index 0000000..6c243dc --- /dev/null +++ b/sprintf-overflow.patch @@ -0,0 +1,26 @@ +Index: autogen-5.18.16/autoopts/usage.c +=================================================================== +--- autogen-5.18.16.orig/autoopts/usage.c ++++ autogen-5.18.16/autoopts/usage.c +@@ -711,7 +711,7 @@ prt_vendor_opts(tOptions * opts, char co + OPTST_NO_USAGE_MASK | OPTST_DOCUMENT; + + static char const vfmtfmt[] = "%%-%us %%s\n"; +- char vfmt[sizeof(vfmtfmt)]; ++ char vfmt[sizeof(vfmtfmt) + 9]; + + /* + * Only handle client specified options. The "vendor option" follows +Index: autogen-5.18.16/getdefs/getdefs.c +=================================================================== +--- autogen-5.18.16.orig/getdefs/getdefs.c ++++ autogen-5.18.16/getdefs/getdefs.c +@@ -374,7 +374,7 @@ buildPreamble(char ** ppzDef, char ** pp + char * pzDef = *ppzDef; + char * pzOut = *ppzOut; + +- char def_bf[ MAXNAMELEN ]; ++ char def_bf[ 2 * MAXNAMELEN + 4 ]; + char name_bf[ MAXNAMELEN ]; + char * def_str = def_bf; + char * pzIfText = NULL;