Недавно состоялся релиз GNU patch 2.8, долгожданного обновления, вышедшего через двенадцать лет после появления ветки 2.7. Утилита, написанная на C и лицензированная под GPLv3+, помогает применять патчи, содержащие списки изменений, созданные с помощью diff.
В этой версии полностью решена проблема 2038 года – программа теперь корректно обрабатывает временные данные файлов, созданных после этого года, даже в 32-разрядных системах. Опция "--follow-symlinks" теперь действует не только на входные, но и на создаваемые файлы.
В согласии с стандартом POSIX.1-2024 запрещено использование символов перевода строки в именах файлов. Также запрещено применение нулевых байтов ('\0') в директивах diff. Утилита теперь допускает пробелы и табуляцию вокруг строковых значений.
Осуществлены улучшения в области исключения некорректного поведения в нестандартных ситуациях, таких как огромные данные, ошибки ввода-вывода, нехватка памяти, проблемы многопоточности и некорректное управление сигналами.
Был удалён старый код "Plan B", оставшийся от систем с 16-разрядными указателями. Обновлены требования к компилятору – теперь необходима поддержка стандарта C99. Также добавлена поддержка новых версий GCC, Autoconf и Gnulib. Эти изменения делают GNU patch более надёжным и современным инструментом в вашей работе.