Sync from SUSE:SLFO:Main autogen revision 7acf074dd35f803c7f566f08dcdc65c9

This commit is contained in:
Adrian Schröter 2024-05-03 11:13:37 +02:00
commit f7563a7759
11 changed files with 1129 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

BIN
autogen-5.18.16.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,101 @@
From 65163ab8c318a501f019c64490aea188e258b954 Mon Sep 17 00:00:00 2001
From: Bruce Korb <bruce.korb+GIT@gmail.com>
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

View File

@ -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`

View File

@ -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);

595
autogen.changes Normal file
View File

@ -0,0 +1,595 @@
-------------------------------------------------------------------
Tue Apr 19 19:22:33 UTC 2022 - Martin Liška <mliska@suse.cz>
- 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 <bwiedemann@suse.com>
- Set MAN_PAGE_DATE to normalize man page date (boo#1047218)
-------------------------------------------------------------------
Mon May 11 16:28:29 UTC 2020 - Andreas Schwab <schwab@suse.de>
- Increase default timeout
- Run testsuite in verbose mode
-------------------------------------------------------------------
Mon Mar 23 15:10:17 UTC 2020 - Andreas Schwab <schwab@suse.de>
- guile-version.patch: Allow all patchlevel versions of guile 3.0
-------------------------------------------------------------------
Tue Jan 21 10:41:18 UTC 2020 - Andreas Schwab <schwab@suse.de>
- guile-version.patch: Allow building with guile 3.0
-------------------------------------------------------------------
Mon Mar 25 08:32:40 UTC 2019 - Martin Liška <mliska@suse.cz>
- 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 - <jbrielmaier@suse.de>
- 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 <foo>''.
* 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.

147
autogen.spec Normal file
View File

@ -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

50
gcc9-fix-wrestrict.patch Normal file
View File

@ -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;
}

39
guile-version.patch Normal file
View File

@ -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

View File

@ -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 <http://www.gnu.org/licenses/>.
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

26
sprintf-overflow.patch Normal file
View File

@ -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;