[devel] povides двух одинаковых библиотек в разных пакетах
Dmitry V. Levin
ldv на altlinux.org
Пт Ноя 6 16:30:16 MSK 2020
On Fri, Nov 06, 2020 at 04:09:42PM +0300, Vitaly Lipatov wrote:
> Dmitry V. Levin писал 6.11.20 13:17:
> > On Fri, Nov 06, 2020 at 11:52:29AM +0300, Anton Farygin wrote:
> >> On 06.11.2020 11:46, Антон Мидюков wrote:
> >> > Здравствуйте
> >> >
> >> > Обнаружил, что в сборки регулярок aarch64 уже довольно давно вместо
> >> > пакета libGLES устанавливается пакет mali-drv-baikalm. Вытягивает его
> >> > gst-plugins-good1.0 через provides libGLESv2.so.2
> >> >
> >> > В связи с этим у меня возник вопрос насколько это вообще правильно,
> >> > что подобные проприетарные пакеты предоставляют такие provides?
> >> >
> >> Неправильно вообще, что два разных пакета предоставляют одинаковую
> >> библиотеку, которая потом будет выбираться случайным образом при
> >> сборке
> >> дистрибутива или установке пакетов.
> >
> > $ xzcat Sisyphus/x86_64/base/pkglist.classic.xz |\
> > pkglist-query '[%{PROVIDENAME}\n]' /dev/stdin |\
> > grep '^[^/]*()(64bit)$' |sort |uniq -c |awk '$1>1{print $2}'
> > BugpointPasses.so()(64bit)
> > libcgns.so.3.2()(64bit)
> > libhdf5_hl.so.8()(64bit)
> > libhdf5.so.8()(64bit)
> > liblibreofficekitgtk.so()(64bit)
> ...
> > libwine.so.1()(64bit)
> ...
>
> > Можно добавить в обработку сборочных заданий проверку,
> > предотвращающую расширение этого списка.
> Как будет управляться список исключений?
Я пока не вижу, почему из этого списка нужны исключения.
На самом деле, проблема не ограничивается shared libraries:
$ pkglist-query $'[%{PROVIDENAME}\t%|PROVIDEFLAGS?{%{PROVIDEFLAGS:depflags}\t%{PROVIDEVERSION}}:{}|\n]' \
Sisyphus/{noarch,x86_64}/base.bloat/pkglist.classic |\
grep $'^[^/\t]*\t=\tset:' |cut -f1 |sort |uniq -c |awk '$1>1{print}'
2 libcgns.so.3.2()(64bit)
2 libhdf5_hl.so.8()(64bit)
2 libhdf5.so.8()(64bit)
2 liblibreofficekitgtk.so()(64bit)
2 libnetcdf_c++4.so.1()(64bit)
2 libnetcdf_c++.so.4()(64bit)
2 libnetcdff.so.6()(64bit)
2 libnetcdf.so.11()(64bit)
2 libopusfile.so.0()(64bit)
2 libopusurl.so.0()(64bit)
2 libthrift_c_glib.so.0()(64bit)
2 libwine.so.1()(64bit)
2 LLVMgold.so()(64bit)
2 python3(argsupgrade)
2 python3(brickfind)
2 python3(changelog)
2 python3(changelogdata)
2 python3(check)
3 python3(codegen)
4 python3(conf)
3 python3(config)
2 python3(dconf)
2 python3(eventsapiconf)
2 python3(eventtypes)
2 python3(gf_event)
2 python3(gfid_to_path)
2 python3(gfind_py2py3)
2 python3(glustereventsd)
2 python3(gsyncd)
2 python3(gsyncdconfig)
2 python3(gsyncdstatus)
2 python3(gui)
2 python3(handlers)
2 python3(helpers)
2 python3(lib)
2 python3(libcxattr)
4 python3(libgfchangelog)
2 python3(logutils)
3 python3(main)
2 python3(mainloop)
2 python3(manage)
2 python3(master)
3 python3(monitor)
2 python3(nodeagent)
2 python3(py2py3)
2 python3(pythonconsole)
2 python3(pythonconsole.config)
2 python3(pythonconsole.console)
2 python3(rconf)
2 python3(repce)
2 python3(resource)
2 python3(subcmds)
2 python3(syncdaemon)
2 python3(syncdaemon.argsupgrade)
2 python3(syncdaemon.conf)
2 python3(syncdaemon.gsyncd)
2 python3(syncdaemon.gsyncdconfig)
2 python3(syncdaemon.gsyncdstatus)
2 python3(syncdaemon.libcxattr)
2 python3(syncdaemon.libgfchangelog)
2 python3(syncdaemon.logutils)
2 python3(syncdaemon.master)
2 python3(syncdaemon.monitor)
2 python3(syncdaemon.py2py3)
2 python3(syncdaemon.rconf)
2 python3(syncdaemon.repce)
2 python3(syncdaemon.resource)
2 python3(syncdaemon.subcmds)
2 python3(syncdaemon.syncdutils)
2 python3(syncdutils)
2 python3(uds)
8 python3(utils)
--
ldv
Подробная информация о списке рассылки Devel