The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск набора утилит GNU findutils 4.10.0 с возобновлением поддержки Си-библиотеки Musl

03.07.2024 11:13

Проект GNU опубликовал выпуск пакета findutils 4.10.0, включающего реализации утилит для организации поиска файлов в системе, таких как find, updatedb и locate. В составе findutils также развивается утилита xargs, предназначенная для построения команд, выполняемых с данными из стандартного ввода, обычно формируемых при помощи утилиты find.

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

  • Возобновлена поддержка Си-библиотеки Musl, распространяемой под лицензией MIT. Изменение позволяет использовать GNU findutils в дистрибутивах Linux, применяющих Musl вместо Glibc, таких как Void Linux, Alpine Linux, postmarketOS, OpenWrt и Static Linux.
  • Решена "проблема 2038 года", приводившая к сбоям на системах с 32-разрядным типом time_t при обработке в утилитах findutils файлов, датированных после 19 января 2038 года. Сбой вызван тем, что 32-разрядный тип time_t не может применяться для обработки времени позднее 19 января 2038 года из-за переполнения 32-разрядного счётчика секунд, ведущего отсчёт с 1 января 1970 года. Для сборки на системах без поддержки времени после 2038 года предусмотрена опция "--disable-year2038".
  • При сборке утилиты find по умолчанию задействован первый уровень оптимизации вместо второго для исключения изменения порядка выполнения операций и обеспечения повторяемого поведения.
  • При выполнении "find -name /" убрано ложное предупреждение о том, что под маску "/" ничего не подпадает, в то время как под неё подпадает корневой каталог.
  • В "find -user" и "find -group" разрешено использовать номера UID и GID, размером больше чем INT_MAX.

Кроме того, несколько дней назад выпущен пакет uutils findutils 0.6.0 с альтернативной реализацией утилит из набора GNU Findutils, написанной на языке Rust и распространяемый под лицензией MIT. Уровень совместимости с GNU findutils оценивается в 65.97% при тестировании в BFS Test Suite и 63.38% при тестировании в GNU Test Suite (успешно выполнено 190 тестов в наборе BFS и 445 тестов в наборе GNU, а 97 и 256 тестов пока завершаются неудачей.

Из улучшений в uutils findutils 0.6.0 можно отметить добавление в утилиту find поддержки опций "-uid", "-gid", "-samefile", "-fstype", "-[no]user", "-[no]group", "-newerXY", "-anewer" и "-cnewer", возможность указания диапазонов в опциях "-amin", "-cmin" и "-mmin", и кэширование информации о файлах, с которыми производится сравнение при использовании таких опции, как "-samefile" и "-newerXY". В утилите xargs реализована опция "--max-lines".

  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Выпуск стандартной Си-библиотеки Musl 1.2.5
  3. OpenNews: Для избавления Glibc от проблемы 2038 года предложено прекратить использование utmp
  4. OpenNews: Выпуск системы инициализации SysVinit 3.09 с поддержкой Си-библиотеки Musl
  5. OpenNews: Релиз минималистичного дистрибутива Alpine Linux 3.20
  6. OpenNews: Новые выпуски вариантов coreutils и findutils, переписанных на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61479-find
Ключевые слова: find, musl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Аноним (4), 11:53, 03/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В таких утилитах раст неуместен.
     
     
  • 2.6, Аноним (-), 11:57, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Конечно, товарищъ майор!
    Так же вам будет сложнее внедрять уязвимости вида "опять вышли за пределы буфера" ну с кем не бывает.
    Это ведь нормально для дыряшки и ее любителей!
     
     
  • 3.75, Аноним (75), 22:20, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вспомните, где появился С/С++.

    Так что не "товарищь майор", а "мистьер дьемократьичьеский капрал (не негр)".

     
  • 2.38, Аноним (-), 12:52, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что реально досадно, они эти утилиты реализовали дидовским методом. Не в виде набора библиотек, к которому утилиты командной строки играют лишь роль транслятора командной строки в вызовы методов. Башпортянки заменять программами на расте всё ещё боль.
     
     
  • 3.52, Аноним (4), 13:25, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати а чего не сделал форк которые сделает библиотеку из программы? Может потому что никому не надо?
     
     
  • 4.73, Ананимус (?), 19:08, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так есть, fd. И он работает ГОРАЗДО быстрее:

    $ time fd src >/dev/null
    fd src > /dev/null  1.07s user 0.70s system 2078% cpu 0.085 total
    $ time find src >/dev/null  
    find src > /dev/null  0.14s user 0.56s system 38% cpu 1.831 total

    Как бы параллельность рулит и педалит .

     
  • 3.53, Аноним (53), 13:31, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    не задумывались о том что если так не сделали до сих пор то это никому не нужно
     
     
  • 4.57, Аноним (-), 13:52, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Задумывался, и поэтому я рылся в issues uutils, и нарыл там обсуждение этой идеи. Это было давно, лет пять(?) наверное назад, и разработчики такие "о, да хорошая идея, но... это ж сколько переписывать надо... жаль что нам не пришло это в голову раньше".
     
     
  • 5.58, Аноним (-), 13:54, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Задумывался, и поэтому я рылся в issues uutils, и нарыл там обсуждение этой идеи. Это было давно, лет пять(?) наверное назад, и разработчики такие "о, да хорошая идея, но... это ж сколько переписывать надо... жаль что нам не пришло это в голову раньше".

    Странно. У них первый релиз был в 2020м.
    По идее это относительное начало проекта.
    Может они хотели поддерживать легаси?


     
     
  • 6.59, Аноним (4), 14:31, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Все проще они не умеют программировать.
     
  • 5.66, noc101 (ok), 16:52, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ну то есть это никому не нужно!)
    Было бы нужно, что то сделали. А так покивали, покивали и дальше пошли.
     
  • 4.74, YetAnotherOnanym (ok), 20:35, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то - нужно. Критически нужно. Архинужно. Только проблема в том, что скриптом@к@ки не осознают, насколько это нужно.
    Выделение отдельно оформленной либы, в которой реализована вся "полезная нагрузка", позволило бы использовать её функциональность в скриптах (на языках, допускающих подключение сторонних .so) без вызова утилиты в дочернем шелле, а это исключило бы целый класс уязвимостей.
     
     
  • 5.79, Аноним (-), 06:55, 04/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Выделение отдельно оформленной либы, в которой реализована вся "полезная нагрузка", позволило бы использовать её функциональность в скриптах (на языках, допускающих подключение сторонних .so) без вызова утилиты в дочернем шелле, а это исключило бы целый класс уязвимостей.

    Экосистема GNU/Linux всегда так работает. С разморозкой тебя.

     
     
  • 6.80, 1 (??), 09:32, 04/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Он про винду ... dll ему не хватат
     
  • 6.82, YetAnotherOnanym (ok), 22:33, 04/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В зкосистеме GNU/Linux я всегда только так умел работать

    Пофиксил


     
  • 5.84, Аноним (84), 18:02, 08/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    написать рекурсивный/не рекурсивный обработчик файлов - 20 мин времени на любом языке, прочитать на гитхабе овервью для парочки альтернатив дольше будет.

    писать универсальную либу - это колхозить какой-то аналог sql или nosql и конечно же find без grep это полумера, в результате получится комбайн для которого надо будет писать огромный туториал, и чего ради?

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

     
     
  • 6.86, YetAnotherOnanym (ok), 15:41, 10/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > и чего ради?

    Ради избавления от некоторого типа уязвимостей.

     

  • 1.18, wd (?), 12:25, 03/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    поиск по xattr бы...
    а если бы еще и индексы по ним...
     
     
  • 2.77, Аноним (77), 04:28, 04/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О, я давно хочу пропатчить slocate на индексирование xattr. Сколько вы готовы заплатить, чтобы я наконец этим занялся?
     

  • 1.27, Соль земли (?), 12:36, 03/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Казалось бы, какое отношение суперполезный xargs имеет к поиску чего-либо? Впрочем find и xargs очень хорошо объединяются, позволяя выполнить команду один раз сразу ко всем найденным файлам.
     
     
  • 2.61, Аноним (53), 14:51, 03/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    может по одному разу к каждому из найденых?
     
  • 2.78, Аноним (77), 04:28, 04/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    find . -exec лучше любого xargs

     
     
  • 3.81, Аноним (81), 15:52, 04/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Только xargs скорее про параллельное исполнение команд для наборов данных, например, find поставляет список интересующих путей/файлов и xargs их одновременно обрабатывает запуская команды с требуемыми условиями и ограничениями (и findutils такой функциональности не предосталяют, насколько мне известно).
     
  • 3.83, Ахз (?), 16:37, 05/07/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ага, сразу видно кексперта.
    Как у тебя выстраивается команда в своей конструкции знаешь ?
    Сначала отработает весь поиск а потом результат пойдет выполнение командой в виде позиционных переменных. И весело получишь too many arguments. Поэтоум единственный правильный вариант вот такой

    -print0 | xargs -0 команда

    Наберут, блин, по объявлению...
    Не, хотя если работать в /home/student_02/, то никогда не столкнешься с подобной проблемой :D

    И вопрос со звездочкой, на 5-ку - угадай почему print0, а не просто print ? :D

     
     
  • 4.85, Аноним (84), 18:05, 08/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >  Ага, сразу видно кексперта.

    find -exec - мне на прошлой недели 6 миллионов файлов обработал из примерно 30, давай расскажи ага

     

  • 1.76, Аноним (76), 02:32, 04/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Поддержка musl это хорошо!

    > GNU Test Suite
    > BFS Test Suite

    Сегодня что-то новое узнал.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру