[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