Am So., 3. Nov. 2024 um 16:18 Uhr schrieb Jim Meyering <[email protected]>: > We're approaching a release, so please give this snapshot a spin: > > GNU patch snapshot: > https://meyering.net/patch/patch-ss.tar.xz 884 KB > https://meyering.net/patch/patch-ss.tar.xz.sig > https://meyering.net/patch/patch-2.7.6.200-be8b.tar.xz
A new alpha release is available here: https://alpha.gnu.org/gnu/patch/patch-2.7.6.211-86ac.tar.gz https://alpha.gnu.org/gnu/patch/patch-2.7.6.211-86ac.tar.bz2 https://alpha.gnu.org/gnu/patch/patch-2.7.6.211-86ac.tar.xz Major changes since Jim's snapshot: * Reject newlines when creating new files, but not when accessing existing files. * Some test suite compatibility fixes. Pending any last-minute glitches, this should be the final pre-release snapshot. Thanks for all your help! Andreas > NEWS since v2.7.6 (2018-02-03): > > * The --follow-symlinks option now applies to output files as well as input. > * 'patch' now supports file timestamps after 2038 even on traditional > GNU/Linux platforms where time_t defaults to 32 bits. > * 'patch' no longer creates files with names containing newlines, > as encouraged by POSIX.1-2024. > * Patches can no longer contain NUL ('\0') bytes in diff directive lines. > These bytes would otherwise cause unpredictable behavior. > * Patches can now contain sequences of spaces and tabs around line numbers > and in other places where POSIX requires support for these sequences. > * --enable-gcc-warnings no longer uses expensive static checking. > Use --enable-gcc-warnings=expensive if you still want it. > * Fix undefined or ill-defined behavior in unusual cases, such as very > large sizes, possible stack overflow, I/O errors, memory exhaustion, > races with other processes, and signals arriving at inopportune moments. > * Remove old "Plan B" code, designed for machines with 16-bit pointers. > * Assume C99 or later; previously it assumed C89 or later. > * Port to current GCC, Autoconf, Gnulib, etc. > > Changes in GNU patch since v2.7.6: > > Andreas Gruenbacher (30): > Avoid set_file_attributes sign conversion warnings > Test suite compatibility fixes > Test suite: fix Korn shell incompatibility > Fix segfault with mangled rename patch > Allow input files to be missing for ed-style patches > Fix arbitrary command execution in ed-style patches (CVE-2018-1000156) > Invoke ed directly instead of using the shell > Use gnulib execute module > Minor cleanups in do_ed_script > Make the (debug & 2) output more useful > Fix swapping fake lines in pch_swap > Improve support for memory leak detection > Skip "ed" test when the ed utility is not installed > Abort when cleaning up fails > Don't crash when RLIMIT_NOFILE is set to RLIM_INFINITY > Don't follow symlinks unless --follow-symlinks is given > Avoid invalid memory access in context format diffs > Fix failed assertion 'outstate->after_newline' > Add missing-section tests to context-format test case > gnulib: update to latest > build: update gnulib submodule to latest > Update old copyright notices > Update more old copyright notices > Prefer angle bracket headers > Remove double semicolon > Spelling fixes > Remove obsolete require_gnu_diff function > Revert "Remove obsolete require_gnu_diff function" > Add announce-gen module for "make release" > Disable release-prep > > Bruno Haible (3): > Fix check of return value of fwrite(). > Fix 'ed-style' test failure. > Request 'alloca' module from gnulib. > > Collin Funk (2): > build: update gnulib submodule to latest > build: Enable the 'subdir-objects' Automake option. > > Eli Schwartz (1): > Fix "make release" to handle alpha releases > > Jean Delvare (2): > Don't leak temporary file on failed ed-style patch > Don't leak temporary file on failed multi-file ed-style patch > > Jim Meyering (1): > maint: avoid warnings from GCC8 > > Kerin Millar (1): > Fix test for presence of BASH_LINENO[0] > > Paul Eggert (159): > maint: modernize README-{hacking,prereq} > build: update gnulib submodule to latest > maint: simplify .gitignore > maint: omit obsolete macro calls > maint: spruce up our .m4 files a bit > maint: assume STDC_HEADERS > maint: port _FORTIFY_SOURCE to Ubuntu > maint: pacify gcc -Winline > maint: pacify gcc -Wmissing-variable-declarations > maint: work around GCC bug 109839 > maint: pacify -Wanalyzer-null-argument > maint: pacify gcc 14 -Wcast-align > Prefer extern inline to static inline for list.h > Remove pch_timestamp function > Move skip_spaces > Remove pch_sha1 > Recommend 64-bit time_t on 32-bit platforms > Stop including stdbool.h > Rename vars to pacify gcc -Wshadow > Port to non-VLA C compilers > Pacify -Wsuggest-attribute=format in util.c > Pacify -Wstrict-overflow in pch.c > Pacify clang, which dislikes n + "y" > Change manywarnings usage to be more like coreutils > Spelling fixes > Don’t say empty backups are unreadable > Port better to GNU/Hurd > Clean up cleanup > Avoid unnecessary freeing in output_files > Simplify by using Gnulib sigaction > Refactor temp names into struct > Use struct outfile * in function args > Update main locals more consistently > Rely on Gnulib inttypes module > maint: remove generated file lib/Makefile.am > Adjust to new Gnulib bootstrap post imports > Allow nested block/unblock of signals > Pacify clang re obsolete O_CREAT test > Omit goto in try_safe_open > Don’t attempt to remove files we didn’t create > Fix some races involving signals > Update copyright notices > Update man page a bit. > Reject output file names containing '\n' > Avoid sprintf INT_MAX overflow > Avoid fprintf INT_MAX overflow when merging > Don’t assume string sizes fit in int when printing > More fixing of printing of very long strings > Prefer nullptr to NULL > A bit more long-string fixing > Prefer strerror to perror > Improve ‘git diff’ output if desired > Pacify gcc -Wno-unused-parameter > Prefer ATTRIBUTE_* to _GL_ATTRIBUTE_* > Simplify warning configuration > Switch from ctype.h to c-ctype.h > Replace __attribute__ with attribute.h > Omit _Noreturn when easy > Update NEWS, README-prereq > build: update gnulib submodule to latest > Add signal comment > Avoid syscall when nested signal block > Don’t assume O_RDONLY == 0 > maint: stop using alloca > Pacify gcc -Wunused-parameter when !USE_XATTR > Pacify gcc -Wunused-parameter when !USE_XATTR > Remove unnecessary char * casts in inp.c > Avoid some memory allocation by not using ‘const’ > Promote minmax.h to common.h > Fix unlikely integer overflows in inp.c > Fix unlikely integer overflows in pch.c > Fix unlikely integer overflows in patch.c > Don’t limit strip counts etc. to INT_MAX > build: update gnulib submodule to latest > Prefer idx_t in inp.c > Prefer idx_t in list.h > Prefer idx_t in patch.c > Prefer idx_t in pch.c > Prefer idx_t in util.c > Avoid casts in patch.c > Simplify get_sha1 > Avoid ‘unsigned’ in safe.c > Cache cwd_is_root dev, ino > Use char for char in plan_a > Fix unlikely int overflow in hunk counts > pch_swap return type cleanup > Fix compatibility issue with blanks in patches > Prefer idx_t, ptrdiff_t to lin > Detect unlikely integer overflow in size calcs > Prefer other types to ‘int’ > Simplify EOF testing > Report input error right away > Check for output errors more systematically > Port to narrow unsigned uid_t > Let set_file_attributes use fds not names > X == -1 → X < 0 > Be more careful about (time_t) -1 > Use fds to copy attrs in create_backup_copy > Fix unlikely glitch with ed diffs > Use STDOUT_FILENO etc > Don’t assume Linux-like S_IFREG > Use outfd when setting file attributes > Do not attempt huge I/Os > Refactor ifetch API > Prefer ximemdup0 to xmemdup0 > Drop Plan B > Fix "with multiple words" line number > Remove format_linenum > Check for ftello failures > Simplify timestamp epoch checking > Copy input to output attributes via fd if possible > Don’t assume AT_FDCWD != -1 > Access checks should use effective, not real > Fix implausible overflow when reading symlinks > Stop using Gnulib dirname module > Simplify traverse_another_path via last_component > Fix signal race when renaming file > Improve logic for when rename removes source > Fix --set-utc TZ setting > Fix some signal handling races > Prefer EXIT_SUCCESS etc. to literal integers > Preinitialize fatal_act.sa_hander > Use bigger buffer size by default > Allocate first patchbuf statically > Trade a bit of space for time in parse_c_string > Rename block_signals > Make sigs, NUM_SIGS local > Move defer_signals up > Stop using Gnulib ‘execute’ module > Defend against closed stdin/stdout/stderr > output_file_later avoid a malloc+free pair > Defer signals by hand with sigatomic_t > Shrink critical sections > Simplify critical section code in util fns > Remove “support” for nested critical sections > Pacify clang -Wbitwise-conditional-parentheses > Adjust libs to match recent Gnulib > Use “Gruenbacher” in international contexts > Update POSIX citations > Update NEWS as per recent changes > Remove some dependencies no longer needed > build: update gnulib submodule to latest > Fix gl_gcc_warnings typo in ‘configure’ > Port fflush usage to OpenBSD 7.5 > Report patch read errors more immediately > Simplify memory allocation of files to delete > Pacify -Wunterminated-string-initialization > In previous patch, make w_q static > Port to quasi-GNU diff > Don’t be fooled by "\000" in file name > Don’t be fooled by NUL bytes in diff directives > Port other reject-format test to non-GNU diff > Spelling fixes > savebuf can return a null pointer > Omit needless get_some_switches code > Refactor argc+argv processing > Port to clang address sanitizer > Fix memory leak when malformed unidiff patch > Pacify gcc -fsanitize=address > > Takashi Iwai (1): > Pass the correct stat to backup files > > > Changes in gnulib since v2.7.6: > > * gnulib e017871121...e3a81ab6e1 (6564): > [eliding 6564 one-line commit titles] >
