LINUX.ORG.RU

Сообщения anarquista

 

GNU Grep 2.21

Новости — GNU's Not Unix
Группа 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
()

Какие есть аналоги Lenovo x201

Форум — Talks

Привет!

Хочу купить небольшой старенький ноутбук, Lenovo x201 подходит идеально, можно купить довольно дешево, при этом этим еще можно пользоваться, размеры и вес, опять-таки.

Я не очень сильно в этом разбираюсь, в нотубуках, а какие есть ему аналоги? Чтобы до 15 тыр и около 1,5 кг и не сразу не выброс?

 

anarquista
()

Отбрасываются udp-пакеты, что покрутить?

Форум — Admin

У меня отбрасываются udp-пакеты, это видно и потому, что приложение их не получает, и по последнему полю в /proc/net/udp.

Вопрос, что можно покрутить, чтобы уменьшить эту величину? Хм. Я попробовал увеличить net.ipv4.udp_rmem_min, не помогло.

Складывается впечатление, что этот входной буфер всего на 70 пакетов. Но нигде в /proc такого ограничения пока не нашел

 

anarquista
()

GNU Coreutils 8.23

Новости — GNU's Not Unix
Группа 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
()

«Проброс» удалённого USB-устройства с помощью USBIP и USB OTG

Форум — Linux-hardware

Захотелось странного: сетевой usb-удлиннитель на основе Linux. Допустим, у меня есть два маленьких компьютера с Linux, соединенных по сети, к одному из них я подключаю некое usb-устройство (не важно какое, сканер, принтер, флешку, мышку), с помощью usbip прокидываю его по сети на второй маленький компьютер.

А теперь я хочу, чтобы с помощью usb otg, я, подключив маленький комьютер к большому, увидел это удалённое USB-устройство, так, словно я подключил не маленький компьютер, а именно это устройство.

Возможно ли такое?

 ,

anarquista
()

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

Новости — GNU's Not Unix
Группа 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
Группа 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
Группа 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
()

Нормальный менеджер паролей

Форум — General

Есть ли менеджер паролей с:

  • удобной синхронизацией между разными устройствами;
  • без привязки к чужим «облакам»;
  • с интерграцией с браузерами и т.п.;
  • не костыльный (не связка vim + gpg + git).
  • уважающий свободу пользователя (GNU GPL или что-то подобное).

Посмотрел я на эти gnome-keyring, keepass, keepassx и что-то ничего это не годится.

anarquista
()

Как прогрессивно управлять сетями и монтированием удалённых ФС

Форум — General

Вот есть NetworkManager, самый простой и удобны есть autofs (которые уже частично дублируют друг друга), и обе никак не связаны с systemd (а могли бы).

Может быть, я что-то пропустил, и уже есть что-то новое и прогрессивное, что заменит собой и autofs, и NetworkManager, и (возможно) будет плотно интегрированно с systemd.

 , ,

anarquista
()

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

Новости — GNU's Not Unix
Группа GNU's Not Unix

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

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

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

 ,

anarquista
()

Автоматизация работы с браузером

Форум — Web-development

Есть сайт для отправки писем http://fsin-pismo.ru. Я хочу как-то автоматизировать работу с ним в браузере, например, заполнять форму отправки письма javascript'ом

Например, у мнея браузер Firefox с аддоном Remote Control.

Я могу выбрать учреждение примерно следующими командами:

echo 'var ev = document.createEvent ("MouseEvents");ev.initEvent ("click", true, true);document.getElementById("CreateLetter.RegionComboBox").getElementsByTagName("img")[0].dispatchEvent (ev);' | nc localhost 32000
sleep 1
echo 'var d = document.getElementById("x-auto-10").getElementsByTagName("div");for (var i = 0; i < d.length; i++) {if (d[i].innerHTML == '"'"$REGION"'"') {var ev = document.createEvent("MouseEvents");ev.initEvent("click",true,true);d[i].dispatchEvent(ev);break;};};' | nc localhost 32000
echo 'var ev = document.createEvent ("MouseEvents");ev.initEvent ("click", true, true);document.getElementById("CreateLetter.DepartmentComboBox").getElementsByTagName("img")[0].dispatchEvent (ev);' | nc localhost 32000
sleep 1
echo 'var d = document.getElementById("x-auto-12").getElementsByTagName("div");for (var i = 0; i < d.length; i++) {if (d[i].innerHTML == '"'"$DEPARTMENT"'"') {var ev = document.createEvent("MouseEvents");ev.initEvent("click",true,true);d[i].dispatchEvent(ev);break;};};' | nc localhost 32000

Дальше я заполняю остальные поля примерно так:
echo 'document.getElementById("CreateLetter.PisonerLastNameTextField").value = "'"$LASTNAME"'";' | nc localhost 32000

И вот когда я всё заполнил и вручную в окне браузера нажимаю кнопку «Отправить», письмо не отправляется, появляется ошибка: «Null properties». При этом в окне браузера всё выглядит правильно.

Я подозреваю, что правильно не заполняются именно поля input. В чём тогда для сайта разница, заполняю ли я это руками или прописываю в скрипте value = string? Есть ли какой-нибудь другой способ заполнить поля, чтобы более точно симулировать пользовательский ввод?

Конечно, можно вообще зайти издалека и применить что-нибудь в роде xdotool, да уж больно не хочется.

 ,

anarquista
()

GNU Core Utilities 8.22

Новости — GNU's Not Unix
Группа GNU's Not Unix

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

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

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

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

 ,

anarquista
()

Внезапо перестали работать SOCK_RAW-сокеты

Форум — Development
from socket import *
s = socket (PF_PACKET, SOCK_RAW)
s.bind (("eth0", 0))
s.send (b"Hello, World!")

Вот долго-долго пользовался этим кодом, а сегодня внезапно:

OSError: [Errno 6] No such device or address

Ну и что это может быть? Что может быть причиной?

 

anarquista
()

Как работает libpcap/tcpdump?

Форум — Development

Не посоветуете краткий обзор, как работает tcpdump и libpcap?

Примерно понятно, что вот вот делается какой-то специальный сокет, к которому еще и добавляется фильтр: setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_FILTER, &Filter, sizeof(Filter));

А временные метки кто ставит? ядро?

anarquista
()

YouCompleteMe и русский язык

Форум — General

У меня почему-то ниработает: не дополняет русские слова, а английские — дополняет. В обычном VIM, без YouCompleteMe, такой проблемы нет. Никакой опции ycm_language_blacklist = russian я не нашел, значит, должно работать?

 

anarquista
()

GNU Grep 2.15

Новости — GNU's Not Unix
Группа 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
()

Диапазон 0xA000.0000 – BFFF.FFFF и кэш инструкций

Форум — Development

Привет! Вот этот диапазон памяти не кэшируется, это касается только кэша данных или кэша инструкций тоже?

 

anarquista
()

Что покрутитть, чтобы уменьшить число dropped by kernel

Форум — General
              packets ``dropped by kernel'' (this is the number of packets that were dropped, due to a lack of  buf‐
              fer  space,  by  the packet capture mechanism in the OS on which tcpdump is running, if the OS reports
              that information to applications; if not, it will be reported as 0).

Можно ли что-то покрутить, чтобы размер этих буферов увеличился, и количество dropped by kernel чтобы уменьшилось?

 , ,

anarquista
()

Необычная настройка двух сетевых интерфейсов

Форум — Admin

Есть две сетевые карты, пусть они называются eth0, eth1. eth0 подключена к внешней сети, eth1 подключена к «волшебной коробке». Я хочу, чтобы все ethernet-фреймы (именно на уровне ethernet, не IP), перед отправкой во внешнюю сеть проходили через волшебную коробку, и, наоборот, после приема из внешней сети, тоже проходил через волшебную коробку.

То есть, нужно, чтобы было примерно так:

Прикладная программа <--> eth1 <--> Волшебная коробка <--> eth1 <--> eth0 <--> Внешняя сеть.

У волшебной коробки, например, нет ни IP-адреса, ни даже MAC-адреса.

Возможно ли такое? Можно ли добиться такого поведения, например, объединив eth1 и eth0 в бридж и покрутив ebtables?

anarquista
()

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