Bug 42574 - Паковать плагин libffmpeg.so отдельно
Summary: Паковать плагин libffmpeg.so отдельно
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ffmpeg-plugin-browser (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-04-25 15:37 MSK by Sergey V Turchin
Modified: 2022-08-16 19:12 MSK (History)
6 users (show)

See Also:


Attachments
Файлы упакечивания из Ubuntu (2.26 MB, application/x-xz)
2022-04-25 15:41 MSK, Sergey V Turchin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2022-04-25 15:37:20 MSK
Яндекс.Браузер любит использовать сторонний libffmpeg.so, поэтому, чтобы уму не качать бигари из Ubuntu в %post-скриптах, прошу собирать libffmpeg.so отдельным пакетом, как это делает Ubuntu, например.
Comment 1 Sergey V Turchin 2022-04-25 15:41:26 MSK
Created attachment 10653 [details]
Файлы упакечивания из Ubuntu

Видно, что в отдельном подпакете chromium-codecs-ffmpeg-extra следующее содержимое:
/usr/lib/chromium-browser/libffmpeg.so
/usr/share/doc/chromium-codecs-ffmpeg-extra/changelog.Debian.gz
/usr/share/doc/chromium-codecs-ffmpeg-extra/copyright
/usr/share/lintian/overrides/chromium-codecs-ffmpeg-extra
Comment 2 Alexey Gladkov 2022-04-25 16:25:40 MSK
Я из описания ничего не понял.

$ rpmquery -l chromium |grep -ic ffmpeg
0

и, простите, причём тут хромиум если речь в описании про какой-то Яндекс.Браузер ?

В каталог /usr/lib*/chromium пакуются _только_ файлы chromium. Их не должны использовать другие пакеты. Если это где-то не так, то это ошибка в пакете.
Comment 3 Sergey V Turchin 2022-04-25 16:36:53 MSK
(Ответ для Alexey Gladkov на комментарий #2)
> Я из описания ничего не понял.
Нужен libffmpeg.so из пакета chromium упакованный отдельно.
Не хочется отдельно городить ещё один src-пакет.


> $ rpmquery -l chromium |grep -ic ffmpeg
> 0
В Ubuntu в 100-м chromium есть. Я исхожу из этого.

> и, простите, причём тут хромиум
В Ubuntu chromium пакуют так.

> если речь в описании про какой-то Яндекс.Браузер ?
Не суть. Может ещё для кого-то пригодится.

> В каталог /usr/lib*/chromium пакуются _только_ файлы chromium.
Я хочу именно это.

> Их не должны использовать другие пакеты.
Но это не запрещено.

> Если это где-то не так, то это ошибка в пакете.
Мантейнеры этого пакета уже наверняка читают тут. Но, это не тема этого обсуждения.
Comment 4 Alexey Gladkov 2022-04-25 16:49:33 MSK
В нашем пакете ffmpeg собирается внутренний и не предоставляется в виде отдельного компонента в том числе, чтобы не было соблазна его использовать где-то ещё. Я не хочу поддерживать API/ABI библиотеки, которую правят разработчики chromium под свои нужды.
Comment 5 Alexey Gladkov 2022-04-25 16:51:25 MSK
Если cas@ захочет, то пусть и реализовывает, но и поддерживать будет только он. Я считаю это неправильным подходом.
Comment 6 Alexey Gladkov 2022-04-25 16:53:17 MSK
(Ответ для Sergey V Turchin на комментарий #3)
> > Их не должны использовать другие пакеты.
> Но это не запрещено.

А пакету не запрещено не собирать отдельно свои внутренние компоненты.
Comment 7 Sergey V Turchin 2022-04-25 16:56:30 MSK
(Ответ для Alexey Gladkov на комментарий #4)
> В нашем пакете ffmpeg собирается внутренний и не предоставляется в виде
> отдельного компонента в том числе, чтобы не было соблазна его использовать
> где-то ещё.
На Ubuntu это не распространяется, поэтому происходит соблазн стащить его оттуда.

> Я не хочу поддерживать API/ABI библиотеки, которую правят
> разработчики chromium под свои нужды.
Уверен, с этим проблем не будет.
Comment 8 Sergey V Turchin 2022-04-25 16:58:12 MSK
(Ответ для Alexey Gladkov на комментарий #6)
> А пакету не запрещено не собирать отдельно свои внутренние компоненты.
Вопрос только в том, что не хотелось делать ещё один отдельный src-пакет.
Comment 9 Alexey Gladkov 2022-04-25 17:24:30 MSK
(Ответ для Sergey V Turchin на комментарий #7)
> (Ответ для Alexey Gladkov на комментарий #4)
> > В нашем пакете ffmpeg собирается внутренний и не предоставляется в виде
> > отдельного компонента в том числе, чтобы не было соблазна его использовать
> > где-то ещё.
> На Ubuntu это не распространяется, поэтому происходит соблазн стащить его
> оттуда.

Я не могу отвечать за других. Может быть там царит слабоумие и отвага, Может быть им пофиг. Кто знает.

Но это внутренняя библиотека и нельзя гарантировать даже её наличие т.к. возможно завтра разработчики решат собираться с системным ffmpeg.

Также это предложение ограничивает меня в действиях. Этот пакет одно время собирался с системной ffmpeg. Я был вынужден выключить это из-за того, что разработчики стали использовать символы, которые были только в их форке. Но это не значит, что хромиум будет собираться со своим ffmpeg всегда. Я не хочу всегда собирать их внутренний форк, потому что его кто-то использует.

Если тебе нужен их ffmpeg, то собирай:

https://chromium.googlesource.com/chromium/third_party/ffmpeg.git

> > Я не хочу поддерживать API/ABI библиотеки, которую правят
> > разработчики chromium под свои нужды.
> Уверен, с этим проблем не будет.

https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+/refs/heads/master/chromium/patches/README

Они постоянно добавляют что-то и потом убирают или апстримят. С таким подходом я уверен будут проблемы.
Comment 10 Sergey V Turchin 2022-04-25 17:29:58 MSK
(Ответ для Alexey Gladkov на комментарий #9)
> Но это внутренняя библиотека и нельзя гарантировать даже её наличие т.к.
> возможно завтра разработчики решат собираться с системным ffmpeg.
Значит, завтра у кого-то настанет момент что-то обдумать.

> Также это предложение ограничивает меня в действиях. Этот пакет одно время
> собирался с системной ffmpeg. Я был вынужден выключить это из-за того, что
> разработчики стали использовать символы, которые были только в их форке. Но
> это не значит, что хромиум будет собираться со своим ffmpeg всегда. Я не
> хочу всегда собирать их внутренний форк, потому что его кто-то использует.
В моём chromium/ffmpeg из qtwebengine я ещё ни разу не натыкался на эту проблему.

> https://chromium.googlesource.com/chromium/third_party/ffmpeg.git
Да, я знаю.
Comment 11 Alexey Gladkov 2022-04-25 17:55:44 MSK
(Ответ для Sergey V Turchin на комментарий #10)
> > Также это предложение ограничивает меня в действиях. Этот пакет одно время
> > собирался с системной ffmpeg. Я был вынужден выключить это из-за того, что
> > разработчики стали использовать символы, которые были только в их форке. Но
> > это не значит, что хромиум будет собираться со своим ffmpeg всегда. Я не
> > хочу всегда собирать их внутренний форк, потому что его кто-то использует.
> В моём chromium/ffmpeg из qtwebengine я ещё ни разу не натыкался на эту
> проблему.
> 
> > https://chromium.googlesource.com/chromium/third_party/ffmpeg.git
> Да, я знаю.

Если ты знаешь этот урл, то ты видел, что они используют свой форк как песочницу. В такой ситуации в принципе нельзя ничего обещать.

Некому Яндекс.Браузеру нужно носить свою версию, потому что разные версии хромиума используют разные символы и если посмотреть по истории они то добавляются, то удаляются [1][2]. Мне лень сравнивать какие из этих символов были уникальными для форка в тот момент.

[1] https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+/refs/heads/master/chromium/ffmpeg.sigs
[2] https://git.altlinux.org/gears/c/chromium.git?p=chromium.git;a=history;f=third_party/ffmpeg/chromium/ffmpeg.sigs;h=83c90539b18b848aeae528d33b5d0cbec55c4fe4;hb=d3ecbfb94843fcb1ba432aa11a365257ba39ef25
Comment 12 Andrey Cherepanov 2022-04-25 18:57:02 MSK
(Ответ для Alexey Gladkov на комментарий #5)
> Если cas@ захочет, то пусть и реализовывает, но и поддерживать будет только
> он. Я считаю это неправильным подходом.

Я не хочу заниматься этим. Вопрос сборки нужного для работы Яндекс Браузера пакета -- исключительно проблема собирающих Яндекс Браузер.
Comment 13 Alexey Gladkov 2022-04-25 19:12:07 MSK
Кроме того, кто бы не хотел использовать эту внутреннюю библиотеку он должен быть синхронизирован по версии самого хромиума. Сейчас форк и использующий его код обновляются синхронно. У нас в репозитории libavcodecXX накручены не просто так.
Comment 14 Sergey V Turchin 2022-04-26 09:47:53 MSK
Ну, что ж. Значит, я соберу.
Comment 16 Sergey V Turchin 2022-05-26 11:41:27 MSK
Да, действительно, мало смысла было даже в ffmpeg-chromium, т.к. жёсткая привязка на версию.
Придётся собирать ffmpeg-yandex-browser.
Comment 17 Vitaly Lipatov 2022-08-15 05:42:24 MSK
(Ответ для Sergey V Turchin на комментарий #16)
> Да, действительно, мало смысла было даже в ffmpeg-chromium, т.к. жёсткая
> привязка на версию.
> Придётся собирать ffmpeg-yandex-browser.

yandex-browser-stable-22.7.3.817-alt1

$ yandex-browser-stable 
Found ffmpeg: /usr/lib64/ffmpeg-plugin-browser/libffmpeg.so
	avcodec: 3871844
	avformat: 3871077
	avutil: 3740260
FFmpeg version is too old. Need:
	avcodec: 3873124
	avformat: 3871844
	avutil: 3741796
find_ffmpeg failed, using the integrated library.
Comment 18 Sergey V Turchin 2022-08-15 14:18:31 MSK
(Ответ для Vitaly Lipatov на комментарий #17)
> find_ffmpeg failed, using the integrated library.
https://git.altlinux.org/tasks/archive/done/_298/305287/
В будущем планируется избежать расхождений.
Comment 19 Anton Farygin 2022-08-16 19:12:43 MSK
перевешу на новый пакет, что бы не триггериться на ffmpeg.