LINUX.ORG.RU

Сообщения anarquista

 

Geeqie-1.7

Группа Мультимедиа

17 января 2022 года была выпущена новая версия просмотрщика изображений Geeqie. Это быстрая и легковесная программа, использующая библиотеку GTK-3 (сохраняется возможность сборки с GTK-2).

В новой верcии:

  • добавлена поддержка формата изображений JPEG XL;
  • добавлена поддержка архивов (например, *.zip);
  • поиск дубликатов изображений сделан многопоточным;
  • в контекстное меню добавлена команда копирования изображения в буфер обмена;
  • добавлена поддержка AppImage;
  • цвет фона теперь берётся из системной темы;
  • множество мелких улучшений и исправлений.

>>> Подробности

 

anarquista
()

GNU Grep 2.21

Группа GNU's Not Unix

Вышла новая стабильная версия программы GNU Grep 2.21. За 25 недель 3 разработчика сделали 94 коммита.

Итогом их работы стали следующие улучшения:

  • значительно увеличена скорость работы с файлами, содержащими пустые области, на тех платформах, где эффективно работает флаг SEEK_DATA системного вызова lseek;
  • более эффективно обрабатываются случаи, когда данные не соответствуют первой части сложного паттерна;
  • увеличена производительность при работе с очень длинными строками в паттернах:
  • если файл содержит некорректные для текущей локали данные, и это удаётся обнаружить до того, как начался вывод, grep рассматривает данный файл как бинарный;
  • grep -P больше не прекращает работу с сообщением об ошибке, если встречает некорректные данные в кодировке UTF-8, теперь эти данные просто считаются не соответствующими шаблону.

Также были внесены исправления ошибок:

  • исправлена работа \w и \W в мнгогобайтовых локалях;
  • исправлен подсчет строк при работе в не-UTF-8 многобайтовых локалях, для проверки предлагается запустить, например, seq 10 | env LC_ALL=zh_CN grep -n .." (ошибка появилась в версии 2.19);
  • grep -F -x -o больше не печатает лишний символ новой строки для каждой «находки» (ошибка тоже появилась в 2.19);
  • исправлена работа grep -F в многобайтовых не-UTF-8 локалях;
  • изменена работа с непарными ')' в grep -E, для совместимости с BusyBox, FreeBSD, Solaris и вообще POSIX. Раньше было так: $ echo ')' | grep -E ')' grep: Unmatched ) or \) а теперь же всё работает;
  • исправлена работа с символическими ссылками в NetBSD.

>>> Подробности

 ,

anarquista
()

GNU Coreutils 8.23

Группа GNU's Not Unix

19 июля вышла новая версия пакета системных утилит GNU Coreutils 8.23. Заметным изменением стала возможность собрать весь пакет в виде одного бинарника для экономии дискового пространства при установке. Для этого появилась новая опция конфигурирования --enable-single-binary. Большинство же других изменений — это исправление ошибок.

Исправленные ошибки:

  • chmod -Rc больше не выдаёт ошибочные предупреждения при обработке файлов с установленными специальными битами (suid и sticky) (ошибка появилась в coreutils-6.0). Ранее, например, работало так:
    mkdir -p a
    touch a/b
    chmod u+s a/b
    chmod -Rc u-w a
    права доступа «a» изменены с 0755 (rwxr-xr-x) на 0555 (r-xr-xr-x)
    chmod: получение новых атрибутов «b»: Нет такого файла или каталога
    
  • cp -a, mv и install --preserve-context вновь правильно устанавливают контекст SELinux для существующих каталогов. Ранее эти команды устанавливали для существующего каталога контекст последнего скопированного потомка (ошибка появилась в версии 8.22);
  • cp -a, mv и install --preserve-context больше не завершаются с ошибкой сегментирования, когда работают с включенным SELinux, а файловая система выдаёт ошибку при попытке прочитать контекст SELinux для файла (ошибка появилась в версии 8.22);
  • cp -a и mv теперь сохраняют расширенные атрибуты символических ссылок при копировании с одной файловой системы на другую (ошибка появилась в версии 7.1 вместе с поддержкой копирования расширенных атрибутов);
  • date больше не падает и не уходит в бесконечный цикл при разборе некорректной опции TZ=«» (ошибка появилась в версии 5.3.0);
  • в dd преобразование ASCII и EBCDIC было несовместимо с обычной практикой и стандартом POSIX (ошибка существовала изначально);
  • в df внесено несколько изменений касающихся нового динамичного представления файловых систем: исключены дубликаты виртуальных файловых систем типа tmpfs. Правильно передаются информация об устройстве, где точек монтирования, куда монтирование осуществлялось несколько раз (эти ошибки были изначально);
  • df вновь правильно отображает точки монтирования с опцией bind. На некоторых системах эти точки ошибочно выбрасывались (ошибка появилась в версии 8.22);
  • df теперь молча игрнорирует циклы каталогов, получившиеся в результате монтирования с опцией bind. Ранее выдавалось предупреждение, и программа завершала работу и возрващала код ошибки (ошибка появилась в версии 8.1);
  • head --bytes=-N и --lines=-N теперь более последовательно работает с устройствами, не игнорируя данные от виртуальных устройств, таких как /dev/zero (ошибка появилась в версии 5.0.1);
  • head --lines=-0 теперь печатает весь ввод, если ввод не содержит символа конца строки '\n'. Ранее не выводилось ничего (ошибка появилась в версии 5.0.1);
  • id, запущенная без указания имени пользователя, теперь правильно выводит id группы, ранее же печатался id по базе паролей, и идентификатор мог не быть ни действительным, ни эффективным (например, если был установлен бит set-GID или если база паролей изменилась вне текущей сессии (ошибка появилась в версии 8.1);
  • ln -sf теперь замещает символические ссылки, чья цель не может существовать. Ранее эта команда выдавала сообщение об ошибки, требовалось специально указывать опецию --no-dereference (ошибка появилась в версии 5.3.0);
  • ln -sr " F больше не сегволится, теперь работает, как и ожидается (ошибка появилась вместе с появлением опции --relative в версии 8.16);
  • nufmt теперь правильно обрабатывает пробельные символы во всех однобайтовых локалях (ошибка появилась в версии 8.21 вместе с появлением самой программы numfmt);
  • seq снова генерирует корректный вывод, когда последовательность начинается или заканцивается значением -0 (ошибка появилась в версии 8.20);
  • shuf --repeat больше не падает, когда вход пустой (ошибка появилась в версии
  • sort теперь избегает неопределенного поведения при дестуркции мьютекса, когда используется несколько нитей, что могло приводить к взаимным блокировкам на некоторых системах ( ошибка появилась в версии 8.6);
  • tail -f теперь использует опрос для VXFS в класерном режиме (ошибка появилась в версии 7.5 вместе с поддержкой inotify)

новые возможности

  • od теперь принимает новую опция --endian=TYPE, чтобы правильно обрабатываеть ввод с разным порядком байтов;
  • configure принимает новую оацию --enable-single-bintry, чтобы собрать все программы в один бинарник «coreutils». Выбранные программы можно запускать с помощью символических ссылок, указывающих на «coreutils», либо с помощью шабангов с опцией --coreuils-prog=, передающейся программе. Поведение выбирается опцией --enable-single-binary=symlinks или --enable-single-binary=shebangs (по умолчанию). С опцией symlink вы не можете сделать еще одну ссылку на программу, потому что тогда coreutils не поймет, какую программу запускать. С шабангами нет этой проблемы, но файл /proc/$pid/cmdline может не обновляться на некоторых платформах. Функциональность программ никак не зависит от того, собраны они в один файл или нет. Но этот большой бинарник будет зависеть от всех динамических библиотек, даже если нужно запустить самую простую программу. Если вы хотите собрать некоторые программы отдельно, вне единого бинарника, вы можете использовать опцию --enable-single-binary-exepctions=PROG_LIST, через запятую указав программы, которые должны быть собраны отдельно. Этот флаг уменьшает размеры получаемого единого бинарника, что может быть актуально для встраиваемых систем.

Изменения в поведении

  • chroot с аргументом «/» больше не изменяет текущую директорию на «/» безусловно, позволяя изменить только учётные данные на время выполнения команды;
  • chroot --userspec теперь использует дополнительные группы, ассоциированные с выбранным юзером, а не с root;
  • cut -d$'\n' снова выводит строки, определённые в списке --fields, чего не происходило 8.21 и 8.22. Имейте ввиду, что использование этой не универсальной функциональности может привести к задержке вывода;
  • ls будет обращать внимание на пустую или неизвестную переменную TERM, если переменные LS_COLORS и COLORTERM не выставлены, и не будет в такой ситуации выводить цвета даже с --color=always.

Улучшения:

  • Улучшена работа stat и tail с HFS+, HFSX, LogFS и ConfigFS.
  • stat -f --format=%T теперь сообщает тип файловой системы
  • tail -f использует inotify,
  • install разрешает использовать опции -D и -t одновременно.

Об остальных улучшениях и исправлениях можно прочитать в анонсе к выпуску.

>>> Анонс

 ,

anarquista
()

GNU Grep 2.20: исправление ошибок

Группа GNU's Not Unix

Вскоре вслед за выходом версии 2.19 выходит новая, в которой исправлено несколько ошибок:

  • grep --max-count=N FILE ранее не прекращало чтение файла после N-го совпадения, вывод был корректным, однако чтение файла продложалось (и могло продолжаться бесконечно), эта ошибка появилась в версии 2.19;
  • Такие команды, как echo aa | grep -E 'a(b$|c$)' могли ошибочно напечатать ввод, как строку, соответствующую паттерну.

Кроме того, эта версия содержит изменение в поведении:

  • grep --exclude-dir='FOO/' теперь действительно исключает директорию FOO, ранее слэш в конце lделал опцию бесполезной.

>>> Подробности

 ,

anarquista
()

GNU Grep 2.19: быстрее от 10 до 200 раз

Группа GNU's Not Unix

Cегодня вышла новая версия программы GNU Grep 2.19. Джим Мейеринг (Jim Meyering) сообщает, что за 13 недель, прошедших со времени выхода прошлой версии, 4 разработчика сделали 152 коммита. Особое спасибо Норихиро Танака (Norihiro Tanaka) и Паулю Эггерту (Paul Eggert).

Улучшения

  • Значительно улучшена производительность, в типичных случаях на 10% и в некоторых случаях в 200 раз. Однако, производительность grep -P (то есть, при работе с регулярными выражениями с стиле Perl) в юникодных локалях стала только хуже. Это связано с исправлениями ошибок, которые могли приводить к падениям (см. ниже).

Исправление ошибок

  • grep больше не ошибается при работе с паттернами вида [a-[.z.]] ([.z.] обозначает collating symbol) Например, раньше в испаноамериканской локали grep работал неверно, а теперь работает правильно:
    echo b | LC_ALL=es_US.UTF-8 grep '[a-[.ch.]]'
    echo $ echo b | LC_ALL=es_US.UTF-8 ../src/grep '[a-[.ch.]]'
    b
    
    Также исправлена ошибка, когда неправильно обрабатывались регулярные выражения типа [^a], где a — collating symbol.
  • grep больше не ошибается с пустыми регулярными выражениями, когда они присутствуют в списке паттернов. Если в списке паттернов присутствует пустая строка, то должны находиться все исходные строки. Например, в 2.18:
    $ pat='hello
    '
    $ echo world | grep -e "$pat"
    world
    $pat='\(\)\1hello
    '
    # ошибка!
    $ echo world | grep -e "$pat"
    $
    
    (эта ошибка появилась в версии 2.5);
  • grep -C NUM педантично печатает разделитель, когда NUM равно 0, аналогично для -A и -B (ошибка присутствовала изначально);
  • grep, grep -F, grep -E теперь обрабатывают ошибки в кодировке паттернов таким же образом, как их обрабатывает движок обработки регулярных выражений GNU, учитывая, может ли ошибка находить части многобайтовых символов в данных (ошибка присутствовала изначально).
  • grep -w теперь правильно работает в многобайтовых локалях. То же касается паттернов '\<', '\>', '\b', '\B':
    # grep 2.18
    $ echo 'Привет, Мир' | grep '\<М'
    $
    # grep 2.19
    $ echo 'Привет, Мир' | grep '\<М'
    Привет, Мир
    $
    
    (ошибка присутствовала изначально);
  • grep -P теперь сообщает об ошибке и выходит, когда на вход поступают некорректные данные в кодировке UTF-8. Раньше программа могла упасть или зациклиться (ошибка появилась в grep-2.16);
  • grep -Pw теперь работает аналогично grep -w, искомая строка должна быть окружена символами, которые не могут быть частью какого-либо слова. Ранее, например, echo a@@a| grep -Pw @@ находила строку, а cho a@@a| grep -w @@ — нет. Теперь работают одинаково и строку не находят.
  • grep -i теперь правильно обрабатывает паттеры, содержащие символы в верхнем регистре. Например, в локали, содержащей символ 'Lj' (U+01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J), 'grep -i Lj' теперь находит и строку 'LJ' (U+01C7 LATIN CAPITAL LETTER LJ), и lj' (U+01C9 LATIN SMALL LETTER LJ).

>>> Подробности

 

anarquista
()

Cryptsetup 1.6.4

Группа Linux General

Cryptsetup — программа для управления шифрованными дисковыми разделами, работающая на основе модуля ядра dm-crypt. Поддерживаются форматы dm-crypt, LUKS, loop-AES и TrueCrypt.

27 февраля 2014 года вышла новая версия — 1.6.4. Изменения включают в себя:

  • Добавлена новая команда luksErase, которая безвозвратно стирает все ключи и делает контейнер LUKS недоступным. Единственный способ расшифровать это устройство — это восстановить заголовок LUKS из бэкапа, если такой был сделан перед стиранием.
  • Добавлена новая внутренняя функция whirpool_gcryptbug hash. Дело в том, что в новой версии gcrypt (1.6.1 и выше) поломали совместимость, так что контейнер LUKS становится недоступным.
  • Можно использовать опции --disable-gcrypt-pbkdf2, чтобы использовалась внутренняя реализация PBKDF2 вместо gcrypt.
  • Теперь реализацию PBKDF2 можно импортировать только из gcrypt 1.6.1 (PBKDF2 в gcrypt 1.6.0 работает слишком медленно).
  • Добавлена опция --keep-key для команды cryptsetup-reencrypt. Это позволяет перешифровать только заголовок, но не данные.
  • По умолчанию новый пароль перепроверяется, когда вызываются команды luksChangeKey и luksAddKey (если ввод осуществляется с терминала).
  • Устранена утечка памяти в бэкенде Nettle.
  • Поддержка опции --tries для устройств TCRYPT.
  • Добавлена поддержка опции --allow-discards для устройств TCRYPT. (Вообще-то, это может повредить скрытые разделы).
  • Исправлены сообщения об ошибках, которые могли вводить в заблуждение, когда определенные алгоритмы не доступны.

>>> Подробности

 ,

anarquista
()

GNU Grep 2.17: десятикратный рост производительности

Группа GNU's Not Unix

Вышла новая версия GNU Grep 2.17. Разработчики заявляют о десятикратном росте производительности, собственно, это и есть главное изменение.

  • grep -i стал работать в 10 раз быстрее в многобайтовых локалях для регулярных выражений, не содержащих \ или [;
  • grep (без -i) стал работать в более чем 7 раз быстрее в многобайтовых локалях, когда обрабатывается много строк с совпадениями;
  • полностью убрана устаревшая опция grep --mmap, которая не используется с января 2012-го года.

>>> Подробности

 ,

anarquista
()

GNU Core Utilities 8.22

Группа GNU's Not Unix

Тихо и незаметно в последнюю 13-ю пятницу уходящего года вышла новая версия GNU coreutils. За десять месяцев, прошедших с прошлого релиза, 32 разработчика сделали 195 коммитов.

Выход версии 8.22 прежде всего связан с исправлением ошибок и улучшением производительности.

( читать дальше... )

>>> Подробности

 ,

anarquista
()

GNU Grep 2.15

Группа GNU's Not Unix

26 октября вышла новая версия программы GNU Grep — 2.15. Выпуск связан главным образом с исправлением ошибок. Прошло 62 недели, за это время 9 человек сделали 57 коммитов.

Были исправлены следующие ошибки:

  • \s и \S неправильно работали с пробельными символами длиной в несколько байт. Например, выражение \s неправильно работало с неразрывным пробелом. Например, вот: printf '\xc2\xa0' | LC_ALL=ru_RU.UTF-8 grep '\s'. Ошибка появилась в версии 2.6;
  • grep -i могла вызывать ошибку сегментирования в системах, использующих wchar_t, основанный на кодировке UTF-16 (например, Cygwin). Ошибка возникала, когда нужно было перевести в нижний регистр входную строку, содержащую определенную 4-байтовую последовательность (ошибка присутствовала с версии 2.6, но проявляться в виде ошибки сегментирования начала только в версии 2.13;
  • grep -E могла завершиться с ошибкой сегментирования при обработе регулярных выражений вида '([^.]*[M]){1,2}', где M — многобайтовый символ. Ошибка появилась в версии 2.6, пропала в версиях 2.7 и 2.8. Все версии, начиная с 2.9, работают с ошибкой;
  • grep -F могла попадать в бесконечный цикл, когда искомая строка содержит некорректную в текущей локали последовательность байтов:
  • grep -P могла работать неправильно с многобайтовыми символами.

Новые улучшения:

  • grep -P теперь использует jit-компиляцию, что значительно ускоряет работу. Это реализовано совершенно прозрачно для пользователя, не нужно устанавливать никаких флагов и т.п. Эта возможность включается на этапе компиляции, если обнаружена подходящая версия библиотеки pcre.

>>> Подробности

 ,

anarquista
()

GNU Diffutils 3.3

Группа GNU's Not Unix

Джим Мейеринг (Jim Meyering) сообщает о выходе новой версии пакета программ diffutils. С выхода прошлой версии прошла 81 неделя, за это время 7 разработчиков сделали 44 коммита. Но значительных изменений всего два:

  • --new-file (-N) и --undirectional-new-file позволяют сравнивать с "-". Если стандартный ввод закрыт, то это воспринимается как несуществующий файл;
  • Имена файлов, содержащие пробелы, кавычки и специальные символы, теперь кодируются в заголовках diff как строка в двойных кавычках в стиле C, с использованием escape-последовательностей \t,\n и т.п.

>>> Подробности

 , ,

anarquista
()

GNU Coreutils 8.21

Группа GNU's Not Unix

14 февраля тихо и незаметно вышла новая версия набора утилит GNU Coreutils.

Новая программа numfmt — программа для изменения формата представления чисел. Понимает строки формата в стиле printf, а также позволяет работать с размерами файлов, представленных в системе Си или IEC, 1K = 1000 или 1K = 1024 и т.п.

Новые особенности

  • У df появилась новая опция --output[=FIELD_LIST], позволяющая задать поля, которые надлежит включить в вывод, или задать вывод всех возможных полей, если параметр опущен. Это дает возможность вывести сведения и о свободных блоках, и о свободных инодах;
  • du --threshosld=SIZE исключает из вывода файлы, чей размер меньше заданного (или больше заданного при отрицательной величине SIZE).

( читать дальше... )

>>> Подробности

 ,

anarquista
()

GNU Coreutils 8.20

Группа GNU's Not Unix

Джим Мейеринг (Jim Meyering) объявил о выходе новой версии GNU Coreutils. Выход этой версии главным образом связан с исправлением ряда ошибок. Хотя были сделаны и некоторые улучшения.

( читать дальше... )

>>> Подробности

 ,

anarquista
()

GNU Coreutils 8.19

Группа GNU's Not Unix

Прошло всего восемь дней, и вот новый стабильный релиз GNU Coreutils. 4 разработчика сделали 13 коммитов.

Исправленные ошибки

  • df теперь прекращает работу, если список примонтированных файловых систем (/etc/mtab) недоступен для чтения, а информация о типе файловых систем необходима для обработки определенных опций (-a, -l, -t, -x). Эта ошибка присутствовала изначально;
  • sort -u в определенных условиях выдавала некорректный результат. Например, следующая конструкция пропускала «1»:
    (yes 7 | head -11; echo 1) | sort --p=1 -S32b -u
    Ошибка появилась в coreutils-8.6;
  • sort -u могла читать освобожденную память (тоже ошибка из coreutils-8.6). Проявляется, например, на такой команде:
    perl -le 'print "a\n"."0"x900'|valgrind sort --p=1 -S32b -u 

Улучшения

  • У команды rm появилась новая опция --dir (-d), которая позволяет удалять пустые каталоги. Это сделано в целях совместимости с Mac OS X и BSD.

>>> Подробности

 ,

anarquista
()

GNU Coreutils 8.18

Группа GNU's Not Unix

Джим Мейеринг (Jim Meyering) сообщает, что за 13 недель разработки был подготовлен новый стабильный релиз GNU Coreutils 8.18.

( читать дальше... )

>>> Подробности

 ,

anarquista
()

Cryptsetup 1.5.0 — с возможностью перешифрования файловых систем

Группа Linux General

Три недели назад тихо и незаметно вышла новая версия cryptsetup, 1.5.0.

В релиз вошло несколько интересный нововведений. Прежде всего, это новая программа cryptsetup-reencrypt, которая позволяет перешифровать существующую зашифрованную файловую систему, используя новый ключ или алгоритм шифрования. Также можно зашифровать и ранее незашифрованную файловую систему на лету без копирования на новый дисковый раздел. Пока что это программа не оттестирована достаточно хорошо и остается экспериментальной.

Новая программа veritysetup, требующая для своей работы ядро Linux версии 3.4 и больше, служит для прозрачной проверки целостности блочных устройств с использованием криптографического API ядра Linux.

Подробнее о veritysetup можно прочитать здесь.

>>> Подробности

 ,

anarquista
()

GNU grep 2.13

Группа GNU's Not Unix

4 июля Джим Мейеринг сообщил о выходе очередной версии GNU grep. За десять недель разработки 4 программиста сделали 24 коммита, отмечает он.

Исправлено две ошибки появившиеся в версии 2.6:

  • grep -i в многобайтовых локалях теперь правильно выводит строки, содержащие буквы, чьё представление в верхнем и нижнем регистре занимает различное число байтов. Это, например, «и-с-точкой» в турецком языке. Прежние версии GNU grep могли либо пропустить часть строки, либо, наоборот, вывести мусор;
  • опции --include и --exclude теперь снова можно совмещать друг с другом. Так, «grep --include='*.[ch]' --exclude='system.h' PATTERN *» читает все файлы *.c и *.h, кроме system.h.

Новые особенности:

  • grep без опции -z теперь считает разреженные файлы бинарными, если можно легко определить, что файл действительно разреженный.

>>> Подробности

 ,

anarquista
()

GNU coreutils 8.17

Группа GNU's Not Unix

В новой версии GNU coreutils изменений немного, и все они выглядят безопасными.

  • Исправленные ошибки
    • id и groups, будучи запущены без аргумента, указывающего имя пользователя, в ряде случаев могли отображать группы, которые не являются ни реальными, ни эффективными. Например, при запуске set-GID или в сессии, когда группа была изменена, но еще не стала эффективной (ошибка появилась в версии coreutils 8.1);
    • команда cp S D избавлена от состояния гонок. Если удалить существующий файл D после того, как команда cp выполнит stat, но до того, как она выполнит open, то ранее cp прекращала работу с непонятным для пользователя сообщением об ошибке «файл D не найден». Теперь же cp пытается просто открыть файл с флагом O_CREATE;
    • split --number=C /dev/null более не приводит к бесконечному циклу в ОС GNU/Hurd (ошибка появилась в coreutils-8.8);
    • stat более не сообщает об отрицательном размере файлов для огромных файлов (ошибка появилась в coreutils-8.8).
  • Новые особенности
    • split и truncate теперь позволяют работать с любым файлом, допускающим произвольный доступ в ситуациях, когда необходимо знать размер файла, теперь это могут быть не только обычные файлы;
    • fmt теперь принимает опцию --goal=ШИРИНА (-g);
    • stat -f распознает новые файловые системы: bdevfs, indefs, qnx6.
  • Изменения в поведении
    • cp,mv,install,cat,split теперь пишут и читают блоками по 64KiB вместо 32KiB в прошлых версиях, это увеличивает производительность на 64-битных системах GNU/Linux;
    • cp --attributes-only больше не обрезает существующий файл, предоставляя более общий способ переноса атрибутов с файла на файл.

>>> Подробности

 

anarquista
()

GNU parted-3.1

Группа GNU's Not Unix

Новая версия GNU Parted это не только исправление ошибок, но и добавление новых возможностей, в том числе и тех, что были исключены в прошлой версии, parted 3.0. Добавлена новая библиотека, libparted-fs-resize, которая обеспечивает изменение размеров файловых систем FAT и HFS/HFS+.

Итак, значительные изменения

  • Новые особенности
    • parted теперь поддерживает до 64 разделов msdos (было всего 16). Таблица разделов не предполагает ограничения, это ведь просто связный список, так что это значение может быть увеличено в будущем;
    • улучшена поддержка разбиения на разделы петлевых устройств;
    • новая библиотека libparted-fs-resize служит для изменения размеров файловых систем FAT и HFS/HFS+; эта библиотека включает всего лишь несколько функций, для её полноценного использования следует подключать и libparted.
  • Исправление ошибок
    • в libparted исправлены ошибки при создании большого количества разделов при использовании таблицы разделов GPT (ошибка появилась в версии parted-1.9.0);
    • исправлена поддержка большого количества разделов в таблице разделов MS-DOS, ранее ядро не всегда информировалось о новых разделах сверх 16;
    • parted теперь возвращает ненулевой код ошибки в ряде ошибочных ситуаций, когда parted и ранее сообщала об ошибке, например: «Error: ...unrecognised disk label»;
    • libparted: функция gpt_disk_duplicate теперь копирует флаги на новый диск, ранее флаги игнорировались;
    • libparted: реализована поддержка новой системы именования версий ядра Linux, такие ядра, как 3.0 и т.п.;
    • libparted: исправлена ошибка, из-за которой таблица разделов порой неправильно идентифицировалась как pc98, а не msdos;
    • parted теперь использует атрибут устройства ext_range, чтобы определить максимально допустимое число разделов. Благодаря этому parted может корректно работать с устройствами MD RAID;
    • libparted: исправлены ошибки при создании новой таблицы разделов на устройстве с существующей таблицей разделов mac;
    • исправлены и некоторые другие ошибки.
  • Изменения в поведении
    • дискеты больше не сканируются в системах с ядром Linux, так как на некоторых машинах с неправильно настроенным BIOS это могло приводить к зависаниям. Теперь дискеты нельзя разбить на разделы с помощью parted;
    • изменилась семантика команды mkpart; если конец раздела задан в таких единицах, как MiB, GiB и т.п., то раздел создаётся на один сектор меньше. Благодаря этому можно создавать разделы 1MiB-2MiB, 2MiB-3MiB и тому подобное в этом же духе;
    • для устройств device-mapper (LVM, dmraid) больше не вставляется дополнительная буква 'p' между базовым именем устройства и номером раздела. Это приводит parted в согласие с ядром Linux, однако, отличается от способа работы dmraid 1.0.0-rc16-3;
    • добавлена возможность установки boot-флага на GP PMBR. Это необходимо для некоторых BIOS, которые иначе отказываются загружаться с GPT. Чтобы установить флаг pmbr_boot, могут использоваться команды disk_set и disk_toogle.
  • Сборка
    • «make dist» больше не создает архивы .tar.gz. xz достаточно хорошо переносим, чтобы использовать только .tar.xz.

Архив с исходниками: http://ftpmirror.gnu.org/parted/parted-3.1.tar.xz

>>> Подробности

 ,

anarquista
()

GNU grep 2.11

Группа GNU's Not Unix

За два с половиной месяца, что прошли после выхода GNU grep 2.10, рассказывает разработчик GNU grep Jim Meyering, произошло больше изменений, чем за 5 месяцев разработки grep 2.10, при этом обнаружилось неожиданно много старых ошибок. Отдельное спасибо Paulo Bonzini и Paul Egger за их патчи.

Заметные изменения

  • Новые особенности
    • Если не задан файловый операнд и задана опция -r или равнозначная ей, grep теперь выполняет поиск в текущей директории. Прежде grep игнорировала опцию -r и работала с входящим потоком. Опция -r в переменной GREP_OPTIONS не даёт такого эффекта;
    • добавлена подсветка цветом совпадений в MS Windows.
  • Исправленные ошибки
    • grep больше не падает, когда длина строк не укладывается в 'int' (длиннее 2 GiB на типичной 64-битной системе). Теперь grep либо отрабатывает, как и ожидалось, либо сообщает об ошибке. Ошибка может происходить, если недостаточно памяти, либо если функции для работы с регулярными выражениями в библиотеке GNU C не поддеживают столь длинные строки [ошибка присутствовала от начала времен];
    • использование опций -m, -A, -B, -C больше не приводит к перемешиванию строк, когда их число не укладывается в 'int'. Кроме того, количество строк, выводимых grep -c, теперь ограничено значением 'intmax_t' (обычно менее 2^63), а не 'int' (обычно менее 2^31);
    • ранее grep «молча» пропускала ошибки, когда вместо ожидаемого текстового файла была задана директория. Теперь же сообщение об ошибке выводится. Например, теперь команда `grep x .' сообщает об ошибке чтения, а не игнорирует её, как раньше [ошибка появилась в версии grep-2.5];
    • grep завершается с кодом ошибки 2, если обнаружено зацикливание директорий. Ранее grep завершалась с кодом ошибки 0 или 1 [ошибка появилась в версии grep-2.3];
    • опция -s теперь подавляет сообщения об ошибках с входным потоком, которые раньше не подавлялись. Сюда относятся ошибки при закрытии потока, при использовании функции lseek или же когда входной и выходной потоки совпадают [ошибка появилась в версии grep-2.4];
    • на системах POSIX, команды вроде «grep < FILE >> FILE» теперь сообщают об ошибке, вместо зацикливания [ошибка присутствовала с самого начала];
    • опции --include, --exclude и --exclude-dir теперь обрабатываются более последовательно. --include и --exclude теперь применяются только к недиректориям, а --exclude-dir — только к директориям. При этом "-" (стандартный вывод) никогда не исключается, так как это не имя файла [ошибка появилась в версии grep-2.5];
    • grep больше не отбрасывает команды «grep -qr . > out», такие, где задана опция -q и файлы ввода и вывода совпадают. В этом нет надобности, опция -q подавляет вывод, и нет опасности зацикливания или состояния гонок. Thus, the use of the following options also disables the input-equals-output failure:
      • --max-count=N (-m) (for N >= 2)
      • --files-with-matches (-l)
      • --files-without-match (-L)
      [ошибка появилась в grep-2.10];
    • grep больше не сообщает об ошибке и завершает работу на MS-Windows, когда запущена с опцией -r;
    • grep больше не ошибается при обработке регулярных выражений, где чередования включают «якоря» (^, $, \<, \>, \b, \B). Например, `grep -E "(^|\B)a" больше не сообщает о совпадении для строки «x a» [ошибка присутствовала с начала разработки grep];
  • Изменения в поведении
    • при использовании опции --mmap выводится предупреждение. Эта опция ни на что не влияет с марта 2010-го года;
    • grep больше не сообщает об ошибках записи повторно; теперь grep завершает работу после обнаружения первой же ошибки. Такое поведение лучше при работе с повисшим туннелем;
    • синтаксические ошибки в GREP_COLORS теперь просто игнорируются, без предупреждений. Такое поведение более согласовано с другими программами, которые, для примера, игнорируют ошибки в termcap.

Исходные коды программы доступны для скачивания: http://ftpmirror.gnu.org/grep/grep-2.11.tar.xz

>>> Подробности

 ,

anarquista
()

GNU Core Utilities 8.15

Группа GNU's Not Unix

12 человек за 12 недель добавили более 120 коммитов. Результатом стала вышедшая 6 января новая версия GNU Coreutils 8.15. Была добавлена новая программа, realpath, а также исправлено несколько ошибок. Хорошо, что эти ошибки, как это и происходит в последнее время, обнаруживаются лишь в «пыльных углах» кода, и лишь немногие из них воспроизводятся достаточно часто.

Существенные изменения

  • Новые программы
    • realpath выводит абсолютные имена файлов.
  • Исправленные ошибки
    • du -x более не подсчитывает корневые каталоги других файловых систем (ошибка появилась в coreutils-5.1.0);
    • команду ls --color <директория с большим количеством файлов> нельзя было прервать слишком долго (ошибка появилась в coreutils-5.2.1);
    • параметр -k команды ls больше не влияет на то, как ls -l отображает размеры файлов, влияет только на отображение общего числа блоков в директории и отображение размеров файлов при использовании параметра -s. Это сделано для совместимости с BSD и соответствия стандарту POSIX 2008. Поскольку опция -k теперь не эквивалентна --block-size\1KiB, добавлена новая опция — --kilobyte;
    • в ls -l понемногу утекала память для каждой непустой директории при использовании SELinux (возможно, ошибка появилась в coreutils-6.0, когда была добавлена поддержка SELinux);
    • rm -rf падала с ошибкой «Device or resource busy» в Cygwin на файловых системах NWFS и NcFsd. Это никак не затрагивает системы с ядрми Linux или Unix (ошибка появилась в coreutils-8.0, когда rm стала использовать fts);
    • split -n 1/2 FILE теперь не падает при обработке растущих файлов или (на некоторых системах) таких необычных файлов, как /dev/zero. Эта команда могла бы выдать: «/dev/zero: No such file or directory» даже если этот файл очевидно существует. То же и для -n l/2. Ошибка появилась в coreutils-8.8 вместе с этими дополнительными опциями;
    • stat -f теперь распознаёт файловые системы FhGFS и PipeFS;
    • tac более не падает при обработке двух и более входных файлов, для которых невозможно выполнить fseek (ошибка появилась в coreutils-5.3.0);
    • tail -f более не пытается использовать inotify в файловых системах GPFS или FhGFS.
  • Изменения в поведении
    • df отображает длинные названия файловых систем с UUID в списке по умолчанию. При использовании достаточно нового ядра и пользовательского окружения такие длинные названия могут использоваться, перенося часть колонок вправо. Если длинное имя указывает на символическую ссылку, а ФС не указаны, df выводит короткое название.
    • tail -f теперь использует polling (не inotify), если какой-то из файлов лежит на файловой системе неизвестного типа. Дополнительно, для каждого такого файла выводится предупреждение, magic number файловой системы и просьба отправить это число по адресу bug-coreutils@gnu.org.

>>> Подробности

 ,

anarquista
()

RSS подписка на новые темы