The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск системного менеджера systemd 247, opennews (ok), 28-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


154. "Выпуск системного менеджера systemd 247"  +/
Сообщение от mikhailnov (ok), 28-Ноя-20, 22:14 
> Библиотеки libqrencode, libpcre2, libidn/libidn2, libpwquality и libcryptsetup теперь загружаются динамически с использованием dlopen()

Классно, теперь вручную зависимости от правильного soname прописывать в пакетах вместо авторезолвера?

UPD. https://github.com/systemd/systemd/issues/17769

Ответить | Правка | Наверх | Cообщить модератору

191. "Выпуск системного менеджера systemd 247"  +/
Сообщение от n00by (ok), 29-Ноя-20, 09:51 
>> Библиотеки libqrencode, libpcre2, libidn/libidn2, libpwquality и libcryptsetup теперь загружаются динамически с использованием dlopen()
> Классно, теперь вручную зависимости от правильного soname прописывать в пакетах вместо
> авторезолвера?

А что, другие компоненты не используют dlopen()? Используют. Значит теперь настало время узнать, что это частный случай общей задачи, которая решается доработкой "авторезолвера". Кстати, когда я писал "переход с rpm5 на rpm4 - вопрос жизни и смерти для Rosa Tresh", я в том числе это и имел ввиду. Но исключительно автономные разработчики, как всегда, всё сделали наоборот, точнее, кто-то за них сделал. ;)

Ответить | Правка | Наверх | Cообщить модератору

200. "Выпуск системного менеджера systemd 247"  –1 +/
Сообщение от mikhailnov (ok), 29-Ноя-20, 12:19 
> А что, другие компоненты не используют dlopen()?

Используют, но в данном случае это создание лишней непредсказуемости.

Ответить | Правка | Наверх | Cообщить модератору

203. "Выпуск системного менеджера systemd 247"  +/
Сообщение от mikhailnov (ok), 29-Ноя-20, 12:46 
> Значит теперь настало время узнать, что это частный случай общей задачи, которая решается доработкой "авторезолвера"

Авторезолвер, безусловно, было бы неплохо доработать для таких случаев, но сначала его надо доработать, а затем в одном из ключевых компонентов системы можно будет перейти на dlopen(). Сейчас это создает непредсказуемость из-за отсутствия инструментария для контроля целостности ABI и соответствия soname в источнике и потребителе.

В апстриме пытаются придумать systemd-специфичные вставки в ELF-файлы, чтобы можно было распарсить зависимости (https://github.com/systemd/systemd/pull/17416), это почти не имеет отношения к доработке авторезолвера, т.к. не является универсальным решением.

Сейчас в systemd:
1. soname записан прямо в коде, а не определяется на этапе сборки (это очень плохо! пакет соберется, а никто и не заметит, что он изначально собрался так, что этот функционал никогда работать не будет, если soname подгружаемой библиотеки окажется другим)
https://github.com/systemd/systemd/blob/bb2d0a24f39ac391a603...
2. Вызывается функция из libdl с передачей имен символов
https://github.com/systemd/systemd/blob/bb2d0a24f39ac391a603...
https://github.com/systemd/systemd/blob/bb2d0a24f39ac391a603...

Получается, что единственный способ составить список зависимостей по символам (в Росе по символам зависимости не строятся, а вот в ALT Linux строятся) - это прибегнуть к чтению исходного кода какими-либо методами, тут даже не поможет запуск авторезолвера на непострипанный бинарник, т.к. нет прямых вызовов с символами в качестве аргументов, только soname можно вытащить).

Это настолько много проблем создает, что решаемые переходом на dlopen проблемы кажутся мелочью и недостойными такой расплаты за их решением.

Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

207. "Выпуск системного менеджера systemd 247"  –1 +/
Сообщение от n00by (ok), 29-Ноя-20, 14:48 
> Получается, что единственный способ составить список зависимостей по символам (в Росе по
> символам зависимости не строятся, а вот в ALT Linux строятся) -
> это прибегнуть к чтению исходного кода какими-либо методами, тут даже не
> поможет запуск авторезолвера на непострипанный бинарник, т.к. нет прямых вызовов с
> символами в качестве аргументов, только soname можно вытащить).

Забыл к "единственный" добавить "мне известный".

> Это настолько много проблем создает, что решаемые переходом на dlopen проблемы кажутся
> мелочью и недостойными такой расплаты за их решением.

Какие проблемы? Книжку почитать? Или понять, что если ты заявляешь на всю страну об "автономности всех процессов", то придётся сталкиваться лбом с объективной реальностью, пока не огорошит мысль "пора отвечать за свои слова"?

Ответить | Правка | Наверх | Cообщить модератору

208. "Выпуск системного менеджера systemd 247"  –2 +/
Сообщение от mikhailnov (ok), 29-Ноя-20, 14:57 
Лучше бы вместо бесполезных текстов написал свои идеи, как сделать авторезолв зависимостей в данном случае без запуска исполняемых файлов.
Ответить | Правка | Наверх | Cообщить модератору

221. "Выпуск системного менеджера systemd 247"  –1 +/
Сообщение от n00by (ok), 30-Ноя-20, 10:57 
"Автономность" в переводе буквально "само-стоятельность". То есть именно ты тот человек, который должен все эти идеи сам знать и здесь нам рассказывать. Де-юре. Де-факто, почему то ты постоянно спрашиваешь о вещах, для понимания которых у тебя банально нет теоретической базы (о чём ты написал, цитирую: "чтению исходного кода какими-либо методами"). Я уж не говорю о том, что заменить мои решения, которые вы незаконно продаёте, у тебя не хватило ума.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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