[devel] Сборка ffmpeg в p8

Alexey V. Vissarionov gremlin на altlinux.org
Пн Июл 24 10:41:33 MSK 2017


On 24-Jul-2017 10:14:51 +0300, Hihin Ruslan wrote:

 > > Чтобы не просто не заметили, а даже случайно не наткнулись,
 > > подобные библиотеки полагается либо вкомпилячивать статически,
 > > либо делать общесистемными.
 > Как это в общесистемные не наткнутся. Не понял ваши мысли.

Если динамические библиотеки бывают только общесистемными - все
пакеты будут использовать именно их. Единственная альтернатива,
позволяющая собрать один-два пакета с какой-нибудь экзотикой -
livexotics-devel-static.

 > А если делать отдельный статический пакет, да ещё если ое будет
 > провайдить динамический (т.е. вводить мантейнера других пакетов
 > в заблуждение), то такая чехарда начнётся ...

Так... Кто сказал, что %name-devel - это обязательно динамические
библиотеки? И что мешает, например, собрать

%package devel-shared
Provides: %name-devel = %version
Conflicts: %name-devel-static

%package devel-static
Provides: %name-devel = %version
Conflicts: %name-devel-shared

А еще есть вариант, когда %name-devel требует %name-devel-headers
и %name-devel-libs, а %name-devel-libs обеспечивается либо пакетом
%name-devel-libs-shared, либо %name-devel-libs-static - это чуть
более трудоемко при сборке (многабукф в .spec), но сильно упрощает
жизнь людям, которые потом будут использовать библиотеку:

Requires: example-devel, example-devel-libs-shared

 > А так. допустим пакет N-libs.rpm таскает в себе динамические
 > библиотеки ffmpeg для пакета N (вариант N-libs и N один и
 > тот-же пакет), которые лежат в /usr/libs/N-libs/ffmpeg, да ещё
 > файлы *.so лежат в N-libs-devel и N-libs никак не провайдит
 > ffmpeg. Что в этом страшного, кроме избыточности?

Простейший пример: в том же ffmpeg обнаруживается очередная дыра,
причем такая, что User Otus Vulgaris (усер ушастый обыкновенный)
перепугался и решил проверить, не затрагивает ли это его:

% rpm -q ffmpeg
ffmpeg-X.Y-...

Ура, он свежий! А смотреть, что там в N-libs, никто не будет, и в
результате у того усера останется дырявая софтина.

 > Продолжаем. Про удаление избыточности:
 > Если пакеты K, L и М хотят использовать ffmpeg из N-libs, а не
 > использовать libav, то не является-ли достаточным условием, что
 > в них стоял запрет на линковку с libav.

А почему именно из N-libs, а не просто ffmpeg-devel?

 > Осталось понять как этот запрет можно реализовать в рамках
 > существующей сборочной реальности.
 > Пальцем в небо:
 > Типа антидота-пустышки, который отвергал линковку с реальным
 > libav. - я думаю нереализуемо.
 > Какие-то сборочные зависимости - если есть N-lib, то в сборочнице
 > не должен находится ffmpeg.

Теоретически можно разрулить на уровне зависимостей. А на практике
проще и правильнее будет просто избегать помойки.


-- 
Alexey V. Vissarionov
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 836 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20170724/3fea1964/attachment.bin>


Подробная информация о списке рассылки Devel