Linux Software Patches
BusyBox 1.22.1 'vi' undo: add undo support with intermediate queuing: Also posted to the BusyBox mailing list, this patch adds complete 'u' (undo) command support to the 'vi' implementation in BusyBox. One of the most significant features of this patch is the ability to place single-character typing operations into an intermediate queue and store them as a single undo operation when a certain character limit is reached, a cursor key is pressed, or insert mode is exited. The patch can undo almost any editing command and will "chain" together undo operations when a command is preceded by a repetition count; for example, the command 10dd will delete 10 lines of text, generating 10 undo objects that link together like a chain so that one 'u' keypress undoes repeatedly until the same counter is reached (10 undo operations with one keypress, in this example).
GQView 2.1.5: Fix linker and readdir: This patch fixes two issues in GQView caused by the natural evolution of software. (1) Directory listings do not work properly in all cases due to not using -D_FILE_OFFSET_BITS=64 during the build, resulting in (unchecked) EOVERFLOW errors that would prematurely end the directory listing. (2) Newer glibc versions don't seem to link in the math library automatically, but older versions apparently did since GQView used to compile just fine. The exact error message shown is "/usr/bin/ld: dupe.o: undefined reference to symbol 'floor@@GLIBC_2.0'" and this is easily fixed by linking libm.so.6 (adding -lm to LDFLAGS).
GNU m4 1.4.xx, bison 3.0, et al: Fix POSIX spawn in gnulib: While building GNU m4 and Bison, we discovered that /usr/include/spawn.h defines structures differently than m4 wanted, and that gnulib included with m4 tries to define POSIX spawn functions that it shouldn't. This resulted in errors such as
lib/spawn_faction_addclose.c:50:19: error: 'posix_spawn_file_actions_t' has no member named '_used' lib/spawn_faction_addclose.c:50:19: error: 'posix_spawn_file_actions_t' has no member named '_allocated' lib/spawn_faction_addclose.c:50:19: error: 'posix_spawn_file_actions_t' has no member named '_actions' lib/spawn_faction_destroy.c:26:1: error: redefinition of 'posix_spawn_file_actions_destroy' lib/spawnattr_destroy.c:24:1: error: redefinition of 'posix_spawnattr_destroy' lib/spawnattr_setflags.c:35:1: error: redefinition of 'posix_spawnattr_setflags' lib/spawn_faction_init.c:51:1: error: redefinition of 'posix_spawn_file_actions_init' lib/spawnattr_init.c:26:1: error: redefinition of 'posix_spawnattr_init' lib/spawnattr_setsigmask.c:26:1: error: redefinition of 'posix_spawnattr_setsigmask'
The patch fixes the struct member name usage and comments out redefinitions that caused compilation failure (using uClibc snapshot 2013-09-04 in our case). This fix may apply to any application using gnulib for portability. We noticed that glibc-2.18 headers should also be incompatible with this version of gnulib.