Состоялся официальный выпуск 9.10 GNU Coreutils — фактического стандартного набора основных утилит в системах Linux и некоторых других платформах. К числу существенных изменений относятся:
Модифицирован процесс генерации man-страниц. Опции командной строки, описанные в man-странице, возможно сделать гиперссылками.
timeout теперь перехватывает все сигналы, приводящие к завершению процесса, и гарантированно завершает дочернюю команду перед собственным завершением.
В paste(1) исправлена работа с многобайтовыми символами.
Исправлен бесконечный цикл в cp, install и mv при копировании разрежённых файлов с помощью SEEK_HOLE.
stat и tail теперь распознают тип файловой системы guest-memfd.
tail теперь поддерживает опцию --debug для отладки.
cksum, du и wc теперь выводят запрос на завершение работы при получении сообщения об ошибке записи, что значительно экономит время при обработке большого количества входных файлов.
du теперь может обрабатывать каталоги с 10000 и более записей в 9 раз быстрее при использовании файловой системы Lustre.
Разработчики GNU/Hurd сообщили о значительном прогрессе в развитии операционной системы. По словам Самюэля Тибо, одного из основных разработчиков проекта, GNU/Hurd удалось добиться существенного улучшения в поддержке драйверов устройств благодаря интеграции с NetBSD’s rump layer.
Кроме того, была улучшена поддержка SMP (Symmetric Multi-Processing), что позволит системе более эффективно использовать возможности современных многоядерных процессоров. Порт для x86_64 практически завершен, и есть надежда на поддержку AArch64.
На основе GNU/Hurd уже создано несколько дистрибутивов, включая Debian GNU/Hurd, Guix/Hurd и Alpine/Hurd.
По данным разработчиков, около 75% пакетов Debian уже собирается для GNU/Hurd, что свидетельствует о высокой степени готовности системы.
Также была добавлена поддержка в экосистему Rust, что стало необходимостью из-за растущего числа программ, требующих эту поддержку.
Фонд свободного ПО отпраздновал своё сорокалетие. В 1985 году, спустя год после основания проекта GNU, Ричард Столлман учредил организацию Free Software Foundation. Организация была создана с целью защиты от компаний с сомнительной репутацией, уличённых в присвоении кода и пытающихся продавать некоторые из первых инструментов проекта GNU, разработанных Столлманом и его товарищами. Спустя три года после основания организации, Столлманом была подготовлена первая версия лицензии GPL, определившая юридические рамки модели распространения свободного программного обеспечения.
На посвящённом сорокалетию мероприятии Зои Койман (Zoë Kooyman), исполнительный директор Фонда СПО, представила новый проект – LibrePhone, нацеленный на предоставление полной свободы вычислений в мобильных устройствах. Подробности об инициативе пока не приводятся, упоминается только то, что она позволит донести до пользователей мобильных устройств базовые понятия свободы ПО, такие как право запускать, копировать, распространять, изучать, изменять и улучшать программное обеспечение. Проект курирует Роб Савой (профиль на GitHub), обладатель премии за продвижение и развитие свободного ПО, создатель свободного Flash-плеера Gnash, участник разработки GCC, Debian, GDB, DejaGnu, Newlib, Cygwin, One Laptop Per Child и Expect.
Состоялся релиз GNU libunistring 1.4 — библиотеки, которая позволяет работать с Unicode-строками в программах на C, а также со строками C в соответствии со стандартом Unicode.
Изменения в этом выпуске:
Алгоритмы и таблицы с данными обновлены до стандарта Unicode 17.0.
Исправлены проблемы с работой функций u*_grapheme_next и u*_grapheme_prev для символов Indic, Emoji и индикаторов региона.
Проект поддерживает UTF-8, UTF-16 и UTF-32. Распространяется на условиях LGPL 2.1.
4 октября на официальном сайте Фонда Свободного программного обеспечения (Free Software Foundation) было опубликовано обращение, связанное с тридцатидевятилетием организации, занимающейся популяризацией свободных программ, сопровождением лицензий GNU GPL (gnu.org), AGPL и LGPL, а также судебной защитой разработчиков проекта GNU.
FSF исполняется 39! Празднуйте почти сорокалетие борьбы за свободу программного обеспечения вместе с нами
Сегодня мы отмечаем свое тридцатидевятилетие, «кружевной год», приуроченный к укреплению наших отношений с сообществом СПО. Мы не добились бы этого без вашего участия, и мы весьма благодарны каждому, кто встал на нашу сторону, выступая за мир, где полная свобода пользователя — обыденность, а не исключение. Пока мы отмечаем годовщину и вспоминаем прошедшие тридцать девять лет, нас вдохновляет то, чего мы достигли, не только как движение, но и как организация, и пройденные нами перемены. Хотя впереди нас неизбежно ждут трудности, мы набираемся смелости и решимости встретить их, зная, что вы будете там, вместе с нами, трудясь ради свободного будущего для каждого. Еще немало лет борьбы за свободу пользователей предстоит нам!
Инженер из Intel, Ноах Голдштейн, оптимизировал функцию memset() в библиотеке glibc. Данная оптимизация даёт прирост в производительности порядка 7.5% на десктопных версиях процессоров архитектур Skylake-X и Ice Lake. У серверных версий прирост в производительности немного ниже, прежде всего из-за более низкой общей производительности одиночного ядра.
В прежней реализации функции memset() использовалась ассемблерная инструкция rep stosb. До недавнего времени эта инструкция работала достаточно быстро, за счёт внутрипроцессорной оптимизации zero-over-zero writeback. Однако в этой оптимизации была найдена потенциальная уязвимость, которая может привести к атаке по побочному каналу. В результате оптимизация zero-over-zero writeback была отменена, что и привело к ухудшению производительности rep stosb. В новой версии memset() инструкция rep stosb всё ещё используется, но при выполнении более строгих условий.
Что именно изменилось, можно понять по изменению следующего комментария в коде, который описывает подробности реализации memset()
Прежняя версия описания:
/* memset is implemented as:
1. Use overlapping store to avoid branch.
2. If size is less than VEC, use integer register stores.
3. If size is from VEC_SIZE to 2 * VEC_SIZE, use 2 VEC stores.
4. If size is from 2 * VEC_SIZE to 4 * VEC_SIZE, use 4 VEC stores.
5. On machines ERMS feature, if size is greater or equal than
__x86_rep_stosb_threshold then REP STOSB will be used.
6. If size is more to 4 * VEC_SIZE, align to 4 * VEC_SIZE with
4 VEC stores and store 4 * VEC at a time until done. */
Новая версия описания:
/* memset is implemented as:
1. Use overlapping store to avoid branch.
2. If size is less than VEC, use integer register stores.
3. If size is from VEC_SIZE to 2 * VEC_SIZE, use 2 VEC stores.
4. If size is from 2 * VEC_SIZE to 4 * VEC_SIZE, use 4 VEC stores.
5. If size is more to 4 * VEC_SIZE, align to 1 * VEC_SIZE with
4 VEC stores and store 4 * VEC at a time until done.
6. On machines ERMS feature, if size is range
[__x86_rep_stosb_threshold, __x86_memset_non_temporal_threshold)
then REP STOSB will be used.
7. If size >= __x86_memset_non_temporal_threshold, use a
non-temporal stores. */
Проект GNU выпустил новую версию классического текстового редактора ed, который стал первым стандартным текстовым редактором ОС UNIX. Новая версия получила номер 1.20.1.
Проект GNU внёс в IETF предложение RFC 9498 — очередной замены DNS: децентрализованной, повсеместно шифрованной, обеспечивающей приватность пользователей и неподделываемость записей системы доменных имён GNS. Учитываются недостатки прежних попыток «санации» DNS: DNSSEC, dnscrypt, DoT, DoH.
Предложение было разработано силами и на средства голландского фонда NLnet, а также с привлечением энтузиастов из проекта GNUnet, в котором уже содержится реализация GNS.
У Ричарда Столлмана обнаружена злокачественная опухоль. Выступая на конференции, посвященной 40-летию GNU, Ричард Столлман заявил, что ему приходится бороться с наихудшей из проблем — у него выявили раковую опухоль. У Cтоллмана одна из разновидностей лимфом, подлежащая лечению (Столлман упомянул «к счастью, с этим можно справиться»).
Состоялся первый и долгожданный стабильный релиз Emacs из 29 ветки.
В этой версии интегрирована знаменитая ветка Pure GTK (PGTK), реализующая графический интерфейс на базе GTK3 без привязки к X11. Таким образом, это первый официальный релиз с нативной поддержкой Wayland.
Отдельно стоит отметить интеграцию модуля подсветки синтаксиса tree-sitter как альтернативу встроенной системе font-lock. Парсеры tree-sitter вместо регулярных выражений используют более точную GLR-грамматику и подгружаются из нативных библиотек, не привязанных к редактору. Среди конкурентов, активно развивающих tree-sitter, стоит отметить NeoVim.
Другие изменения:
Интегрирован Language Server клиент Eglot.
Интегрирован популярный модуль use-package.
Для X задействован XInput 2 и улучшен drag-n-drop.
Лия Роу (Leah Rowe), основной разработчик и основатель дистрибутива Libreboot, представила первый выпуск новой загрузочной прошивки GNU Boot, представляющей собой форк Libreboot, адаптированный для соответствия требованиям Фонда СПО к полностью свободным дистрибутивам. GNU Boot планируют развивать в составе проекта GNU в качестве свободного системного окружения, которое можно использовать вместо проприетарных прошивок, обеспечивающих загрузку (полностью свободный дистрибутив CoreBoot). Сопровождение GNU Boot, как и Libreboot, будет обеспечивать Лия Роу.
27 сентября проекту GNU исполняется 40 лет! На странице юбилея опубликован календарь праздничных мероприятий, которые пройдут в швейцарском Биле (Biel/Bienne).
GNU — свободная операционная система, основанная Ричардом Столлманом, использующая в качестве ядра Linux, Libre-Linux, ядро GNU/Hurd (не доделано). Существует также проект Debian GNU/kFreeBSD с использованием ядра ОС FreeBSD.
GNU Health — это свободная медицинская информационная система (МИС), предоставляющая возможности электронных медицинских записей, информационных систем больниц и здравоохранения. Она разработана с упором на мультиплатформенность и работает на различных операционных системах (GNU/Linux, FreeBSD, MS Windows) и с различными СУБД. Она написана на Python и использует фреймворк Tryton.
gzip — популярная программа сжатия из состава проекта GNU.
Изменения в поведении
gzip -l теперь корректно выводит размеры файлов от 4 ГиБ и более. Предыдущее поведение — выводить 32-разрядное значение из заголовка gzip, являющееся остатком от деления на 2³². Теперь gzip -l честно разжимает данные и считает получившиеся байты; хоть это и требует намного большего времени корректность всё же важнее производительности.
zless больше не устанавливается на платформах, где недоступен less.
Исправления ошибок
Вызов zgrep с именем файла, содержащим два и более переноса строки, больше не переписывает другие файлы (ошибка присутствует с версии 1.3.10).
При ошибках zgrep теперь корректно выводит имя входного файла, а не обзывает его (standard input), если grep поддерживает опции GNU -H и --label.
zdiff -C 5 более не воспринимает 5 как имя файла (ошибка присутствует с самого начала).
Теперь на этапе конфигурирования работают опции типа --program-prefix.
Gnuastro — официальный пакет GNU, содержащий различные программы и библиотеки функций для манипуляции и анализа астрономических данных. Все программы предоставляют единый интерфейс командной строки, аналогичный GNU Coreutils.
Спасибо 4 мужчинам и 4 женщинам, непосредственно внёсшим вклад в исходные коды Gnuastro, а также 20 людям, подававшим идеи.