From fa5e19da3f133a113c52087c5c0288d09253cc3e7d45111256e3e11cb6cfa708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 3 May 2024 16:30:14 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main m4 revision 94fbfa6e223d7a6703cb64dc72c8ac66 --- .gitattributes | 23 ++ gnulib-c-stack.patch | 122 +++++++++ gnulib-libio.patch | 145 +++++++++++ m4-1.4.18.tar.xz | 3 + m4-1.4.18.tar.xz.sig | 11 + m4.changes | 575 +++++++++++++++++++++++++++++++++++++++++++ m4.keyring | Bin 0 -> 44176 bytes m4.spec | 86 +++++++ 8 files changed, 965 insertions(+) create mode 100644 .gitattributes create mode 100644 gnulib-c-stack.patch create mode 100644 gnulib-libio.patch create mode 100644 m4-1.4.18.tar.xz create mode 100644 m4-1.4.18.tar.xz.sig create mode 100644 m4.changes create mode 100644 m4.keyring create mode 100644 m4.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /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/gnulib-c-stack.patch b/gnulib-c-stack.patch new file mode 100644 index 0000000..694578f --- /dev/null +++ b/gnulib-c-stack.patch @@ -0,0 +1,122 @@ +From f9e2b20a12a230efa30f1d479563ae07d276a94b Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Wed, 30 Sep 2020 13:50:36 -0700 +Subject: [PATCH] c-stack: stop using SIGSTKSZ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It’s been proposed to stop making SIGSTKSZ an integer constant: +https://sourceware.org/pipermail/libc-alpha/2020-September/118028.html +Also, using SIGSTKSZ in #if did not conform to current POSIX. +Also, avoiding SIGSTKSZ makes the code simpler and easier to grok. +* lib/c-stack.c (SIGSTKSZ): Remove. +(alternate_signal_stack): Now a 64 KiB array, for simplicity. +All uses changed. +--- + ChangeLog | 9 +++++++++ + lib/c-stack.c | 42 ++++++++++++++++++------------------------ + lib/c-stack.h | 2 +- + 3 files changed, 28 insertions(+), 25 deletions(-) + +Index: m4-1.4.18/lib/c-stack.c +=================================================================== +--- m4-1.4.18.orig/lib/c-stack.c ++++ m4-1.4.18/lib/c-stack.c +@@ -50,15 +50,6 @@ + #if ! HAVE_STACK_T && ! defined stack_t + typedef struct sigaltstack stack_t; + #endif +-#ifndef SIGSTKSZ +-# define SIGSTKSZ 16384 +-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384 +-/* libsigsegv 2.6 through 2.8 have a bug where some architectures use +- more than the Linux default of an 8k alternate stack when deciding +- if a fault was caused by stack overflow. */ +-# undef SIGSTKSZ +-# define SIGSTKSZ 16384 +-#endif + + #include + #include +@@ -89,6 +80,16 @@ typedef struct sigaltstack stack_t; + # endif + #endif + ++/* Storage for the alternate signal stack. ++ 64 KiB is not too large for Gnulib-using apps, and is large enough ++ for all known platforms. Smaller sizes may run into trouble. ++ For example, libsigsegv 2.6 through 2.8 have a bug where some ++ architectures use more than the Linux default of an 8 KiB alternate ++ stack when deciding if a fault was caused by stack overflow. */ ++static max_align_t alternate_signal_stack[(64 * 1024 ++ + sizeof (max_align_t) - 1) ++ / sizeof (max_align_t)]; ++ + /* The user-specified action to take when a SEGV-related program error + or stack overflow occurs. */ + static void (* volatile segv_action) (int); +@@ -128,19 +129,6 @@ die (int signo) + #if (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK \ + && HAVE_STACK_OVERFLOW_HANDLING) || HAVE_LIBSIGSEGV + +-/* Storage for the alternate signal stack. */ +-static union +-{ +- char buffer[SIGSTKSZ]; +- +- /* These other members are for proper alignment. There's no +- standard way to guarantee stack alignment, but this seems enough +- in practice. */ +- long double ld; +- long l; +- void *p; +-} alternate_signal_stack; +- + static void + null_action (int signo __attribute__ ((unused))) + { +@@ -205,8 +193,8 @@ c_stack_action (void (*action) (int)) + + /* Always install the overflow handler. */ + if (stackoverflow_install_handler (overflow_handler, +- alternate_signal_stack.buffer, +- sizeof alternate_signal_stack.buffer)) ++ alternate_signal_stack, ++ sizeof alternate_signal_stack)) + { + errno = ENOTSUP; + return -1; +@@ -279,14 +267,14 @@ c_stack_action (void (*action) (int)) + stack_t st; + struct sigaction act; + st.ss_flags = 0; ++ st.ss_sp = alternate_signal_stack; ++ st.ss_size = sizeof alternate_signal_stack; + # if SIGALTSTACK_SS_REVERSED + /* Irix mistakenly treats ss_sp as the upper bound, rather than + lower bound, of the alternate stack. */ +- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *); +- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *); +-# else +- st.ss_sp = alternate_signal_stack.buffer; +- st.ss_size = sizeof alternate_signal_stack.buffer; ++ st.ss_size -= sizeof (void *); ++ char *ss_sp = st.ss_sp; ++ st.ss_sp = ss_sp + st.ss_size; + # endif + r = sigaltstack (&st, NULL); + if (r != 0) +Index: m4-1.4.18/lib/c-stack.h +=================================================================== +--- m4-1.4.18.orig/lib/c-stack.h ++++ m4-1.4.18/lib/c-stack.h +@@ -34,7 +34,7 @@ + A null ACTION acts like an action that does nothing. + + ACTION must be async-signal-safe. ACTION together with its callees +- must not require more than SIGSTKSZ bytes of stack space. Also, ++ must not require more than 64 KiB of stack space. Also, + ACTION should not call longjmp, because this implementation does + not guarantee that it is safe to return to the original stack. + diff --git a/gnulib-libio.patch b/gnulib-libio.patch new file mode 100644 index 0000000..82acde7 --- /dev/null +++ b/gnulib-libio.patch @@ -0,0 +1,145 @@ +2018-03-05 Paul Eggert + + fflush: adjust to glibc 2.28 libio.h removal + Problem reported by Daniel P. Berrangé in: + https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html + * lib/fbufmode.c (fbufmode): + * lib/fflush.c (clear_ungetc_buffer_preserving_position) + (disable_seek_optimization, rpl_fflush): + * lib/fpending.c (__fpending): + * lib/fpurge.c (fpurge): + * lib/freadable.c (freadable): + * lib/freadahead.c (freadahead): + * lib/freading.c (freading): + * lib/freadptr.c (freadptr): + * lib/freadseek.c (freadptrinc): + * lib/fseeko.c (fseeko): + * lib/fseterr.c (fseterr): + * lib/fwritable.c (fwritable): + * lib/fwriting.c (fwriting): + Check _IO_EOF_SEEN instead of _IO_ftrylockfile. + * lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]: + Define if not already defined. + +Index: m4-1.4.18/lib/fflush.c +=================================================================== +--- m4-1.4.18.orig/lib/fflush.c ++++ m4-1.4.18/lib/fflush.c +@@ -33,7 +33,7 @@ + #undef fflush + + +-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + + /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ + static void +@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp) + + #endif + +-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) ++#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) + + # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT + /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ +@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream) + if (stream == NULL || ! freading (stream)) + return fflush (stream); + +-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + + clear_ungetc_buffer_preserving_position (stream); + +Index: m4-1.4.18/lib/fpending.c +=================================================================== +--- m4-1.4.18.orig/lib/fpending.c ++++ m4-1.4.18/lib/fpending.c +@@ -32,7 +32,7 @@ __fpending (FILE *fp) + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ +-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + return fp->_IO_write_ptr - fp->_IO_write_base; + #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ + /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ +Index: m4-1.4.18/lib/fpurge.c +=================================================================== +--- m4-1.4.18.orig/lib/fpurge.c ++++ m4-1.4.18/lib/fpurge.c +@@ -62,7 +62,7 @@ fpurge (FILE *fp) + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ +-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + fp->_IO_read_end = fp->_IO_read_ptr; + fp->_IO_write_ptr = fp->_IO_write_base; + /* Avoid memory leak when there is an active ungetc buffer. */ +Index: m4-1.4.18/lib/freadahead.c +=================================================================== +--- m4-1.4.18.orig/lib/freadahead.c ++++ m4-1.4.18/lib/freadahead.c +@@ -25,7 +25,7 @@ + size_t + freadahead (FILE *fp) + { +-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + if (fp->_IO_write_ptr > fp->_IO_write_base) + return 0; + return (fp->_IO_read_end - fp->_IO_read_ptr) +Index: m4-1.4.18/lib/freading.c +=================================================================== +--- m4-1.4.18.orig/lib/freading.c ++++ m4-1.4.18/lib/freading.c +@@ -31,7 +31,7 @@ freading (FILE *fp) + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ +-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + return ((fp->_flags & _IO_NO_WRITES) != 0 + || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 + && fp->_IO_read_base != NULL)); +Index: m4-1.4.18/lib/fseeko.c +=================================================================== +--- m4-1.4.18.orig/lib/fseeko.c ++++ m4-1.4.18/lib/fseeko.c +@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int when + #endif + + /* These tests are based on fpurge.c. */ +-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + if (fp->_IO_read_end == fp->_IO_read_ptr + && fp->_IO_write_ptr == fp->_IO_write_base + && fp->_IO_save_base == NULL) +@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int when + return -1; + } + +-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ + fp->_flags &= ~_IO_EOF_SEEN; + fp->_offset = pos; + #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ +Index: m4-1.4.18/lib/stdio-impl.h +=================================================================== +--- m4-1.4.18.orig/lib/stdio-impl.h ++++ m4-1.4.18/lib/stdio-impl.h +@@ -18,6 +18,12 @@ + the same implementation of stdio extension API, except that some fields + have different naming conventions, or their access requires some casts. */ + ++/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this ++ problem by defining it ourselves. FIXME: Do not rely on glibc ++ internals. */ ++#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN ++# define _IO_IN_BACKUP 0x100 ++#endif + + /* BSD stdio derived implementations. */ + diff --git a/m4-1.4.18.tar.xz b/m4-1.4.18.tar.xz new file mode 100644 index 0000000..cc7dd9e --- /dev/null +++ b/m4-1.4.18.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2c1e86ca0a404ff281631bdc8377638992744b175afb806e25871a24a934e07 +size 1207688 diff --git a/m4-1.4.18.tar.xz.sig b/m4-1.4.18.tar.xz.sig new file mode 100644 index 0000000..db7e9ab --- /dev/null +++ b/m4-1.4.18.tar.xz.sig @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- +Comment: Public key at http://people.redhat.com/eblake/eblake.gpg + +iQEcBAABCAAGBQJYaDOKAAoJEKeha0olJ0NqT5oH/jyPC2chKyoCSrBAAmMT/0ac +xbDOiymNbaj6twhoZNunE8m8OzySfBQxANFf0yepZ0dCPf8/SzCWt9eHs12xzTrs +htcrsXBJ0woVdSG1SVaCzeOna8dvQ5fRJUHdWqTCa8sJdEBNk/zh2i72wGzMtpLo +Ord+dXOplvRe+LTUyu7eMAQfccPb5PnL4sh6WgmvQpjUiP4y2BlpbcI7hU1OOPNz +Gq63o3sO8OkwB2LP//M3fyi6Y4CHa7V6mfYz0PDboks1UruNYclbwVuJ8tLMYae+ +YlRMuMCs1hssICNcMyhtks8jdbXlMm7E8Nhk2+Uc6eRnA97zZQ0ADthNjA47/TA= +=TQTI +-----END PGP SIGNATURE----- diff --git a/m4.changes b/m4.changes new file mode 100644 index 0000000..5982b76 --- /dev/null +++ b/m4.changes @@ -0,0 +1,575 @@ +------------------------------------------------------------------- +Sun Jul 31 08:10:20 UTC 2022 - Stephan Kulow + +- Use %make_build macro and make sure we run the profiling run with -j1 + +------------------------------------------------------------------- +Mon Jul 19 12:48:42 UTC 2021 - Andreas Schwab + +- gnulib-c-stack.patch: c-stack: stop using SIGSTKSZ + +------------------------------------------------------------------- +Thu Jan 23 09:25:12 UTC 2020 - Martin Pluskal + +- Enable PGO during build + +------------------------------------------------------------------- +Wed Aug 1 13:58:30 UTC 2018 - schwab@suse.de + +- gnulib-libio.patch: adjust gnulib for libio.h removal +- Use %license for COPYING + +------------------------------------------------------------------- +Thu Oct 19 06:26:27 UTC 2017 - jayvdb@gmail.com + +- Explicitly remove %{_infodir}/dir before creating package to + allow builds on RHEL and derived Linux distributions +- Enable configure option --disable-dependency-tracking to + allow build on Mageia +- Add xz as BuildRequires to unpack source on SLE 11 + +------------------------------------------------------------------- +Thu Feb 9 12:37:26 UTC 2017 - dimstar@opensuse.org + +- Fix de-registration of the info files. + +------------------------------------------------------------------- +Thu Jan 5 14:28:13 UTC 2017 - mpluskal@suse.com + +- Update to version 1.4.18: + * Diagnose --word-regexp as unsupported if it was not configured. + * Preliminary support for OS/2. + * A number of portability improvements inherited from gnulib. +- Some packaging changes: + * Use https url's + * Get keyring from savannah + * Use xs compressed files + * Make building more verbose + +------------------------------------------------------------------- +Sat Oct 3 06:41:27 UTC 2015 - mpluskal@suse.com + +- Update info handling from postun to preun + +------------------------------------------------------------------- +Mon Mar 2 20:37:45 UTC 2015 - mpluskal@suse.com + +- Add gpg signature +- Add prerequires for info pages + +------------------------------------------------------------------- +Wed Nov 13 18:39:38 UTC 2013 - sweet_f_a@gmx.de + +- Update to version 1.4.17: + * Fix compilation with newer glibc headers. + * Fix a failure with diverting large amounts of text on mingw + (does not affect platforms that can rename an open file). + * A number of portability improvements inherited from gnulib. +- remove m4-stdio.in.patch, merged by upstream + +------------------------------------------------------------------- +Tue Jul 9 07:40:14 UTC 2013 - schwab@suse.de + +- Override broken configure checks + +------------------------------------------------------------------- +Tue Jul 17 19:07:25 UTC 2012 - aj@suse.de + +- Fix build with missing gets declaration (glibc 2.16) + +------------------------------------------------------------------- +Wed May 30 21:00:37 UTC 2012 - sweet_f_a@gmx.de + +- remove useless automake dependency + +------------------------------------------------------------------- +Thu Dec 1 11:22:53 UTC 2011 - coolo@suse.com + +- add automake as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Mon Sep 19 15:14:23 UTC 2011 - coolo@suse.com + +- remove fragile _service file + +------------------------------------------------------------------- +Wed Mar 9 13:27:00 UTC 2011 - coolo@novell.com + +- Update to version 1.4.16: + * Fix regressions in the `index' builtin. On glibc platforms, this + avoids false positives from a strstr bug in glibc 2.9 through 2.12; + on many other platforms, it fixes two separate regressions, a false + positive introduced in 1.4.11 and a false negative in 1.4.15. + + * A number of portability improvements inherited from gnulib. + +------------------------------------------------------------------- +Sun Sep 19 09:28:02 CEST 2010 - vuntz@opensuse.org + +- Update to version 1.4.15: + + Fix regression introduced in 1.4.9b where the `format' builtin + could crash on an invalid format string. + + Fix compilation against newer glibc, and on AIX 7.1BETA. + + A number of portability improvements inherited from gnulib. +- Changes from version 1.4.14: + + Fix regression introduced in 1.4.12 where executing with stdout + closed could crash m4 on exit on some platforms. + + Fix regressions introduced in 1.4.13 in the `esyscmd' builtin, + where closed file descriptors could interfere with child + execution, and where a child status of 127 made m4 print a + spurious message to stderr. + + Fix a security hole in 'make dist', present since at least M4 + 1.4, that could affect anybody attempting to redistribute + modified sources (see Automake CVE-2009-4029). + + A number of portability improvements inherited from gnulib. +- Remove hacks from prep changing permissions: they're not needed + anymore. +- Remove lzma BuildRequires as the source is bz2 now. +- Remove AutoReqProv: it's default now. +- Use %configure and %makeinstall macros. +- Drop m4-1.4.13.diff: it doesn't seem to be needed (some parts are + upstream, at least), and it's not documented at all, so let's try + without it. + +------------------------------------------------------------------- +Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Sun Nov 15 10:34:56 CET 2009 - meissner@suse.de + +- refreshed patches with fuzz=0 + +------------------------------------------------------------------- +Wed May 20 18:24:57 CEST 2009 - puzel@suse.cz + +- Update to m4 1.4.13 + ** The manual is now distributed under the terms of FDL 1.3. + ** The `divert' and `undivert' builtins have been made more efficient + when using temporary files for large diversions. + ** The `translit' builtin has been made more efficient when the second + argument is short. + ** The input engine has been optimized for faster processing. + ** The command line option `--debugfile', introduced in 1.4.7, now + treats its argument as optional, in order to allow setting the debug + output back to stderr when used without an argument; and order is now + significant with respect to command line files. You must therefore use + `m4 --debugfile=trace file', not `m4 file --debugfile trace'. This + change does not affect the deprecated `-o'/`--error-output' option. + ** The `syscmd' and `esyscmd' builtins can be configured to use an + alternate shell, via the new `configure' option `--with-syscmd-shell'. + ** A number of portability improvements inherited from gnulib. + +------------------------------------------------------------------- +Sat Oct 11 21:08:03 CEST 2008 - schwab@suse.de + +- Update to m4 1.4.12. + ** Fix regression introduced in 1.4.4b where using `traceon' could delete + a macro. This was most noticeable with `traceon(`traceon')', but + would also happen in cases such as `foo(traceon(`foo'))'. + ** Fix regression introduced in 1.4.7 where `m4 -N9' died with an assertion + failure. + ** Fix regression introduced in 1.4.11 where `defn' died with an assertion + failure on a traced but undefined macro. + ** New `-g'/`--gnu' command-line option overrides `-G'/`--traditional'. + For now, the environment variable POSIXLY_CORRECT has no effect on M4 + behavior; but a future release of M4 will behave as though --traditional + is implied if POSIXLY_CORRECT is set (this future change is necessary, + because in the current release, there is no way to disable GNU + extensions that conflict with POSIX without the use of a non-POSIX + command-line argument). Clients of M4 that want to use GNU extensions, + even when POSIXLY_CORRECT is set, should start using the -g command-line + argument, even though it is currently a no-op if -G did not appear + earlier in the command line, so that the client will not break in the + face of an upgraded m4 and a POSIXLY_CORRECT execution environment. + ** The `-L'/`--nesting-limit' command-line option now defaults to 0 for + unlimited on platforms that can detect and deal with stack overflow. On + systems that lack alternate stack support, such as Cygwin, and on + systems that do not obey the POSIX semantics for distinguishing stack + overflow from other exceptions, such as Linux, you can optionally + install the libsigsegv library (version 2.6 or newer recommended) to + enhance m4's ability to accurately report stack overflow: + http://www.gnu.org/software/libsigsegv/ + ** A number of portability improvements inherited from gnulib. + +------------------------------------------------------------------- +Tue Oct 7 15:50:03 CEST 2008 - lrupp@suse.de + +- disable build check for now + +------------------------------------------------------------------- +Wed Oct 1 14:31:29 CEST 2008 - schwab@suse.de + +- Update to head of branch-1.4. + +------------------------------------------------------------------- +Mon Jun 23 19:19:01 CEST 2008 - dmueller@suse.de + +- documentation shouldn't be executable + +------------------------------------------------------------------- +Thu Apr 3 10:32:47 CEST 2008 - schwab@suse.de + +- Update to m4 1.4.11. + ** Security fixes for the -F option, for bugs present since -F was + introduced in 1.3: Avoid core dump with 'm4 -F file -t undefined', and + avoid arbitrary code execution with certain file names. + ** Fix regression introduced in 1.4.9b in the `divert' builtin when more + than 512 kibibytes are saved in diversions on platforms like NetBSD + or darwin where fopen(name,"a+") seeks to the end of the file. + ** The output of the `maketemp' and `mkstemp' builtins is now quoted if a + file was created. This is a minor security fix, because it was possible + (although rather unlikely) that an unquoted string could match an + existing macro name, such that use of the `mkstemp' output would trigger + inadvertent macro expansion and operate on the wrong file name. + ** Enhance the `defn' builtin to support concatenation of multiple text + arguments, as required by POSIX. However, at this time, it is not + possible to concatenate a builtin macro with anything else; a warning is + now issued if this is attempted, although a future version of M4 may + lift this restriction to match other implementations. + ** Enhance the `format' builtin to parse all C99 floating point numbers, + even on platforms where strtod(3) is buggy, although the replacement + function does have the known issue of rounding errors when parsing + some decimal floating point values. This fixes testsuite failures + introduced in 1.4.9b. + ** Enhance the `index' builtin to guarantee linear behavior, in spite of + the surprisingly large number of systems with a brain-dead quadratic + strstr(3). + ** A number of portability improvements inherited from gnulib. + +------------------------------------------------------------------- +Mon Nov 26 13:24:51 CET 2007 - schwab@suse.de + +- Remove broken tests. + +------------------------------------------------------------------- +Tue Jul 10 13:55:30 CEST 2007 - schwab@suse.de + +- Update to m4 1.4.10. + * Upgrade from GPL version 2 to GPL version 3 or later. + * A number of portability improvements inherited from gnulib. + * Avoid undefined behavior introduced in 1.4.9b in the `format' builtin + when handling %c. However, this area of code has never been documented, + and currently does not match the POSIX behavior of printf(1), so it may + have further changes in the next version. + +------------------------------------------------------------------- +Fri Mar 23 23:31:50 CET 2007 - schwab@suse.de + +- Update to m4 1.4.9. + * Minor documentation and portability cleanups. + +------------------------------------------------------------------- +Mon Dec 4 11:13:03 CET 2006 - schwab@suse.de + +- Update to m4 1.4.8. + * The `divert' macro and `-H'/`--hashsize' command line option no longer + cause a core dump when handed extra large values. Also, `divert' now + uses memory proportional to the number of diversions in use, rather than + to the maximum diversion number encountered, so that large diversion + numbers are less likely to exhaust system memory; and is no longer + limited by the maximum number of file descriptors. + * The `--help' and `--version' command line options now consistently + override all earlier options. For example, `m4 --debugfile=trace + --help' now no longer accidentally creates an empty file `trace'. + * The `-L'/`--nesting-limit' command line option can now be set to 0 + to remove the default limit of 1024. However, it is still possible that + heavily nested input can cause abrupt program termination due to stack + overflow. + * Problems encountered when writing to standard error, such as with the + `errprint' macro, now always cause a non-zero exit status. + * Warnings and errors issued during macro expansion are now consistently + reported at the line where the macro name was detected, rather than + where the close parenthesis resides. Text wrapped by `m4wrap' now + remembers the location that was in effect when m4wrap was invoked, + rather than changing to line 0 and the empty string for a file. The + macros `__line__' and `__file__' now work correctly even as the last + token in an included file. + * The `builtin' and `indir' macros now transparently handle builtin + tokens generated by `defn'. + * When diversions created by the `divert' macro collect enough text that + M4 must use temporary files, the environment variable $TMPDIR is now + consulted, and a better effort is made to clean up those files in the + event of a fatal signal. + * The `mkstemp' builtin is added with the same GNU semantics as `maketemp', + based on the recommendation of POSIX to deprecate the POSIX semantics of + `maketemp' as inherently insecure. In GNU mode (no -G supplied on the + command line), `maketemp' silently retains the secure GNU semantics, but + a future release of M4 will change this to emit a warning. In + traditional mode (m4 -G), `maketemp' now uses the POSIX-mandated insecure + semantics, and issues a warning that you should convert your script to + use `mkstemp' instead. Additionally, `mkstemp' and `maketemp' are now + well-defined even if the template argument does not end in six `X' + characters. + * The manual has been improved, including a new section on a composite + macro `foreach'. + * The `changecom' and `changequote' macros now treat an empty second + argument the same as if it were missing, rather than using the empty + string and making it impossible to end a comment or quote. + * The `translit' macro now operates in linear instead of quadratic time, + and is now eight-bit clean. + * The `-D', `-U', `-s', and `-t' command line options now take effect + after any files encountered earlier on the command line, rather than up + front, as is done in traditional implementations and required by POSIX. + +------------------------------------------------------------------- +Mon Sep 25 15:39:25 CEST 2006 - schwab@suse.de + +- Update to m4 1.4.6. + * Fix regression from 1.4.5 in handling a file that ends in a macro + expansion without arguments instead of a newline. + * The define and pushdef macros now warn when the first argument is not + a string, rather than silently doing nothing. + * Standard input can now be read more than once, as in 'm4 - file -', and + is not closed until all wrapped text is handled. This makes a + difference when stdin is not a regular file, and also fixes bugs when + using the syscmd or esyscmd macros from wrapped text. + * When standard input is a seekable file, the m4exit, syscmd, and esyscmd + macros now restore the current position to the next unread byte rather + than discarding an arbitrary amount of buffered data. + * SysV command-line compatibility is no longer a goal of GNU M4; the + focus will be instead on POSIX compatibility. This release continues to + support previous usage, but adds warnings in areas which will allow a + future version of GNU M4 to use its own extensions without being tied to + the SysV command line interface. + * The no-op compatibility command line options -B, -N, -S, -T, and + --diversions may be withdrawn or assigned new meanings in future + releases, so they now issue a warning if used. + * A new command line option -i replaces the compatibility -e as the + short spelling of --interactive, for consistency with other GNU tools; a + warning is issued if the old spelling is used, and it may be assigned new + meaning in future releases. + * A new command line option --debugfile replaces the options -o and + --error-output as the preferred spelling. The old options were + misleading in their names and inconsistent with other GNU tools; they are + still silently accepted, but no longer documented in --help, and may be + assigned new meanings in future releases. + +------------------------------------------------------------------- +Sat Aug 26 09:20:43 CEST 2006 - schwab@suse.de + +- Update to m4 1.4.6. + * Fix buffer overruns in regexp and patsubst macros when handed a trailing + backslash in the replacement text, or when handling \n substitutions + beyond the number of \(\) groups. + * Fix memory leak in regexp, patsubst, and changeword macros. + * The format macro now understands %F, %g, and %G. + * When loading frozen files, m4 now exits with status 63 if version + mismatch is detected. + * Fix bugs that occurred when invoked with stdout or stderr closed, + and detect write failures to stdout or to the target of the + debugfile macro. In particular, the syscmd and esyscmd macros can + no longer interfere with the debug stream or diversions. + * The m4exit macro now converts values outside the range 0-255 to 1. + * It is now an error if a command-line input file ends in the middle of a + comment, matching the behavior of mid-string and mid-argument + collection. + * The dnl macro now warns if end of file is encountered instead of a + newline. + * The error message when end of file is encountered now uses the file and + line where the dangling construct started, rather than `NONE:0:'. + * The debugmode and __file__ macros, and the -s/--synclines option, now + show what directory a file was found in when the -I/--include option or + M4PATH variable had an effect. + * The changequote and changecom macros now work with 8-bit characters, and + quotes and comments that begin with `(' are properly recognized + following a word. + * The new macro __program__ is added, which allows the input file to issue + an error message that resembles messages from m4. Warning and error + messages have been reformatted to comply with GNU Coding Standards. + * The errprint, m4wrap, and shift macros are now recognized only with + arguments. + * The index, substr, translit, regexp, and patsubst macros now produce + output when given only one argument, but still warn about a missing + second argument. + * The patsubst macro now reliably finds zero-length matches at the end + of a string. + +------------------------------------------------------------------- +Mon Jul 17 13:30:00 CEST 2006 - schwab@suse.de + +- Update to m4 1.4.5. + * Fix sysval on BeOS, OS/2, and other systems that store exit status + in the low-order byte. Additionally, on Unix platforms, if syscmd was + terminated by a signal, sysval now displays the signal number shifted + left by eight bits, to match traditional m4 implementations. + * The maketemp macro is no longer subject to platform limitations (such as + 26 or 32 max files from a given template). + * Frozen files now require that the first directive be V (version), to + better diagnose version mismatch. Additionally, if the F directive + (builtin function) names an unknown builtin that existed in the m4 that + froze the file but not in the current m4 (for example, changeword), the + warning is deferred until an attempt is made to actually use the + builtin. This allows downgrading from beta m4-1.4o to stable m4-1.4.5 + without breaking autoconf. + * The format and indir macros are now recognized only with arguments. + * The eval macro no longer crashes on x86 architectures when dividing the + minimum integer by -1. + * On systems with ecvt and fcvt, format no longer truncates trailing + zeroes on integers printed with %.0f. On systems without these + functions, format is no longer subject to a buffer overflow that + permitted arbitrary code execution. + * On native Windows builds, the macro __windows__ is provided instead of + __unix__. Likewise, on OS/2 builds, the macro __os2__ is provided. This + allows input files to determine when syscmd might behave differently. + * Fix bug in 1.4.3 patch to use \n line-endings that did not work for + cygwin. + * When given the empty string or 0, undivert is now documented as a no-op + rather than closing stdout, warning about a non-existent file, or trying + to read a directory as a file. + * Many documentation improvements. Also, the manual is now distributed + under FDL 1.2, rather than a stricter verbatim-only license. + * Raise the -L (--nesting-limit) command line option limit from 250 to + 1024. + * The decr, incr, divert, m4exit, and substr macros treat an empty number + as 0, issue a warning, and expand as normal; rather than issuing an error + and expanding to the empty string. + * The eval macro now treats an empty radix argument as 10, handles radix 1, + and treats the width argument as number of digits excluding the sign, + for compatibility with other m4 implementations. + * The ifdef, divert, m4exit, substr, and translit macros now correctly + ignore extra arguments. + * The popdef and undefine macros now correctly accept multiple arguments. + * Although changeword is on its last leg, if enabled, it now reverts to the + default (faster) regexp when passed the empty string. + * The regexp and substr macros now warn and ignore a trailing backslash in + the replacement, and warn on \n for n larger than the number of + sub-expressions in the regexp. + * Fix a recursive push_string crashing bug, which affected changequote of + three or more characters on some compilers. + * Use automake to fix build portability issues. + * Fix a recursive m4wrap crashing bug. + * Fix a 1 in 2**32 hash crashing bug. + * Tracing a macro by name is now persistent, even if the macro is + subsequently undefined or redefined. The traceon and traceoff macros no + longer warn about undefined symbols. This solves a crash when using + indir on an undefined macro traced with the -t option, as well as an + incorrect result of ifdef. Furthermore, tracing is no longer transferred + with builtins, solving the bug of "m4 -tm4_eval" failing to give trace + output on the input "define(`m4_eval',defn(`eval'))m4_eval(1)". + * Fix a crash when a macro is undefined while collecting its arguments, by + always using the definition that was in effect before argument + collection. This behavior matches the C pre-processor, and means that + the sequence "define(`f',`1')f(define(`f',`2'))f" is now documented to + result in "12", rather than the previously undocumented "22". + * Update the regex engine to fix several bugs. + * Fix a potential crash on machines where char is signed. + +------------------------------------------------------------------- +Wed Jan 25 21:30:29 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Fri Oct 21 14:38:36 CEST 2005 - schwab@suse.de + +- Update to m4 1.4.4. + +------------------------------------------------------------------- +Tue May 31 22:34:37 CEST 2005 - schwab@suse.de + +- Fix signedness issue when matching comment or quote characters. + +------------------------------------------------------------------- +Thu Mar 31 17:58:01 CEST 2005 - schwab@suse.de + +- Update to m4 1.4.3. + +------------------------------------------------------------------- +Sun Sep 5 17:10:11 CEST 2004 - schwab@suse.de + +- Speed up parsing by inlining out the common part of next_char(). + +------------------------------------------------------------------- +Sat Aug 21 15:53:39 CEST 2004 - schwab@suse.de + +- Update to m4 1.4.2. + +------------------------------------------------------------------- +Mon Jun 14 22:07:39 CEST 2004 - schwab@suse.de + +- Update to m4 1.4.1. + +------------------------------------------------------------------- +Thu Feb 19 10:31:35 CET 2004 - kukuk@suse.de + +- Cleanup neededforbuild + +------------------------------------------------------------------- +Wed Jan 7 17:20:10 CET 2004 - schwab@suse.de + +- Fix quoting for autoconf. +- Use newer version of the gettext macros. + +------------------------------------------------------------------- +Tue May 13 12:03:05 CEST 2003 - schwab@suse.de + +- Add %defattr. +- Fix file list. + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Mon Apr 7 13:12:00 CEST 2003 - schwab@suse.de + +- Only delete info entries when removing last version. + +------------------------------------------------------------------- +Thu Feb 6 17:49:19 CET 2003 - schwab@suse.de + +- Use %install_info. + +------------------------------------------------------------------- +Mon Nov 18 11:40:25 CET 2002 - schwab@suse.de + +- Remove mangling of LIBOBJS. +- Don't clobber po/Makefile. +- Clean up neededforbuild. +- Use AM_GNU_GETTEXT_VERSION. +- Fix some warnings from automake. + +------------------------------------------------------------------- +Sat Mar 30 19:44:58 CET 2002 - schwab@suse.de + +- Fix for new autoconf. + +------------------------------------------------------------------- +Wed Feb 6 10:19:01 CET 2002 - schwab@suse.de + +- Gettextize to work with new gettext. + +------------------------------------------------------------------- +Thu Oct 4 10:44:09 CEST 2001 - schwab@suse.de + +- Fix for automake 1.5. + +------------------------------------------------------------------- +Sat Jul 21 20:54:58 CEST 2001 - schwab@suse.de + +- Run autoconf in libltdl. +- Fix libltdl/configure.in for autoconf 2.50+. + +------------------------------------------------------------------- +Fri Jun 1 16:51:55 CEST 2001 - schwab@suse.de + +- Fix for new configure tools. + +------------------------------------------------------------------- +Thu Mar 22 18:51:02 CET 2001 - ro@suse.de + +- added split-aliases as provides + +------------------------------------------------------------------- +Thu Mar 8 13:01:59 CET 2001 - schwab@suse.de + +- Don't use regex from libc5. + +------------------------------------------------------------------- +Wed Mar 7 18:18:00 CET 2001 - schwab@suse.de + +- Split from base. + diff --git a/m4.keyring b/m4.keyring new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..f935f283ba0e3b7f199e040191b4ef98e3962c0d2e286864e56b4bce6530c4ed GIT binary patch literal 44176 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 hCg6qHwg$)C2+iAdif=(^Vm!Cv{{v6G3ON7( literal 0 HcmV?d00001 diff --git a/m4.spec b/m4.spec new file mode 100644 index 0000000..377f7db --- /dev/null +++ b/m4.spec @@ -0,0 +1,86 @@ +# +# spec file for package m4 +# +# 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/ +# + + +Name: m4 +Version: 1.4.18 +Release: 0 +Summary: GNU m4 +License: GPL-3.0-or-later +Group: Development/Languages/Other +URL: https://www.gnu.org/software/m4/ +Source0: https://ftp.gnu.org/pub/gnu/m4/%{name}-%{version}.tar.xz +Source1: https://ftp.gnu.org/pub/gnu/m4/%{name}-%{version}.tar.xz.sig +Source2: https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=m4&download=1#/%{name}.keyring +Patch1: gnulib-libio.patch +Patch2: gnulib-c-stack.patch +BuildRequires: xz +Requires(post): %{install_info_prereq} +Requires(preun):%{install_info_prereq} +Provides: base:%{_bindir}/m4 + +%description +GNU m4 is an implementation of the traditional Unix macro processor. + +%prep +%setup -q +%patch1 -p1 +%patch2 -p1 + +%build +%configure \ + --without-included-regex \ +%if 0%{?mageia} + --disable-dependency-tracking \ +%endif + gl_cv_func_isnanl_works=yes \ + gl_cv_func_printf_directive_n=yes \ + gl_cv_func_printf_infinite_long_double=yes +%if %{do_profiling} + %make_build CFLAGS="%{optflags} %{cflags_profile_generate}" + # run profiling check sequentially to have it reproducible + %make_build -j1 check CFLAGS="%{optflags} %{cflags_profile_generate}" + %make_build clean + %make_build CFLAGS="%{optflags} %{cflags_profile_feedback}" +%else + %make_build +%endif + +%check +%make_build check + +%install +%make_install +# info's dir file is not auto ignored on some systems +rm -rf %{buildroot}%{_infodir}/dir + +%post +%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} + +%preun +%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} + +%files +%doc README NEWS THANKS TODO ChangeLog +%license COPYING +%{_bindir}/m4 +%{_infodir}/m4.info-1%{ext_info} +%{_infodir}/m4.info-2%{ext_info} +%{_infodir}/m4.info%{?ext_info} +%{_mandir}/man1/m4.1%{?ext_man} + +%changelog