[devel] I: duplicate pkgconfig() provides

Dmitry V. Levin ldv на altlinux.org
Сб Ноя 14 17:59:11 MSK 2020


Hi,

У нас в репозитории обнаружилось 29 дубликатов pkgconfig provides.

Несмотря на то, что все эти provides версионированы, такое дублирование
вредно: provides с дубликатами невозможно нормально использовать в
сборочных зависимостях, поскольку приходится добавлять версии и/или
имена devel-пакетов вручную.

Даже в версионированных pkgconfig requires, сгенерированных из .pc-файлов
автоматически, указанного диапазона версий может быть недостаточно для
выбора правильного варианта pkgconfig provides из нескольких кандидатов.

$ pkglist-query '[%{PROVIDENAME} %{NAME} %{PROVIDEFLAGS:depflags}%{PROVIDEVERSION}\n]' Sisyphus/{x86_64,noarch}/base.bloat/pkglist.classic |sed -rn -e 's/ \+$//' -e 's/^(pkgconfig\([^ ]+) ([^ ]+) ([^ ]*)$/=\3 \2 \1/p' |sort -k3 |uniq -D -f2 |sed -rn -e 's/^([^ ]+) ([^ ]+) ([^ ]+)$/\2 \3 \1/p' |sort -k2 |column -t -N 'Package:,Provide Name:,Provide Version:'
Package:                          Provide Name:               Provide Version:
ilmbase24-devel                   pkgconfig(IlmBase)          ==2.3.0
ilmbase-devel                     pkgconfig(IlmBase)          ==2.5.3
openexr24-devel                   pkgconfig(OpenEXR)          ==2.3.0
openexr-devel                     pkgconfig(OpenEXR)          ==2.5.3
python-module-pycxx-devel         pkgconfig(PyCXX)            ==7.1.4
python3-module-pycxx-devel        pkgconfig(PyCXX)            ==7.1.4
libbullet-devel                   pkgconfig(bullet)           ==2.82
libbullet3-devel                  pkgconfig(bullet)           ==2.88
python-module-caja-devel          pkgconfig(caja-python)      ==1.20.0
python3-module-caja-devel         pkgconfig(caja-python)      ==1.24.0
dataquay-devel                    pkgconfig(dataquay)         ==0.9
dataquay-minefeld-devel           pkgconfig(dataquay)         ==0.9
libglusterfs7-api-devel           pkgconfig(glusterfs-api)    ==7.7.8
libglusterfs8-api-devel           pkgconfig(glusterfs-api)    ==7.8.2
libilbc1-devel                    pkgconfig(ilbc)             ==0.0.2
ilbc-devel                        pkgconfig(ilbc)             ==1.1.1
libdivecomputer-devel             pkgconfig(libdivecomputer)  ==0.6.0
libdivecomputer-subsurface-devel  pkgconfig(libdivecomputer)  ==4.9.6
libglusterfs7-devel               pkgconfig(libgfchangelog)   ==0.0.1
libglusterfs8-devel               pkgconfig(libgfchangelog)   ==0.0.1
libeudev-devel                    pkgconfig(libudev)          ==243
libudev-devel                     pkgconfig(libudev)          ==246
liblua5.1-compat-devel            pkgconfig(lua)              ==5.1.5
liblua5.3-devel                   pkgconfig(lua)              ==5.3.0
libminizip-devel                  pkgconfig(minizip)          ==1.2.11
libminizip2-devel                 pkgconfig(minizip)          ==2.10.2
libnetcdf-mpi-devel               pkgconfig(netcdf)           ==4.4.1.1-alt2
libnetcdf-devel                   pkgconfig(netcdf)           ==4.4.1.1-alt3
openh264-devel                    pkgconfig(openh264)         ==2.1.0
libopenh264-devel                 pkgconfig(openh264)         ==2.1.1
libortp0.7-devel                  pkgconfig(ortp)             ==0.7.1
libortp-devel                     pkgconfig(ortp)             ==1.0.1
python3-module-pygobject-devel    pkgconfig(pygobject-2.0)    ==2.28.6
python-module-pygobject-devel     pkgconfig(pygobject-2.0)    ==2.28.7
python-module-pygobject3-devel    pkgconfig(pygobject-3.0)    ==3.36.1
python3-module-pygobject3-devel   pkgconfig(pygobject-3.0)    ==3.38.0
libpyside-qt4-devel               pkgconfig(pyside)           ==1.2.2
libpyside-qt4-py3-devel           pkgconfig(pyside)           ==1.2.2
python-module-PySide2-devel       pkgconfig(pyside2)          ==5.15.0
python3-module-PySide2-devel      pkgconfig(pyside2)          ==5.15.0
libqimageblitz-devel              pkgconfig(qimageblitz)      ==4.0.0
qimageblitz5-devel                pkgconfig(qimageblitz)      ==5.0.0
qoauth-devel                      pkgconfig(qoauth)           ==1.0.1
qoauth-qt5-devel                  pkgconfig(qoauth)           ==2.0.0
libshiboken-devel                 pkgconfig(shiboken)         ==1.2.2
libshiboken-py3-devel             pkgconfig(shiboken)         ==1.2.2
python-module-shiboken2-devel     pkgconfig(shiboken2)        ==5.15.0
python3-module-shiboken2-devel    pkgconfig(shiboken2)        ==5.15.0
libspandsp-devel                  pkgconfig(spandsp)          ==0.0.6
libspandsp3-devel                 pkgconfig(spandsp)          ==3.0.0
libticables-devel                 pkgconfig(ticables2)        ==1.3.4
libticables2-devel                pkgconfig(ticables2)        ==1.3.5
libvpx5-devel                     pkgconfig(vpx)              ==1.7.0
libvpx-devel                      pkgconfig(vpx)              ==1.9.0
libwxGTK3.1-sqlite3-devel         pkgconfig(wxsqlite3)        ==4.0.2
libwxGTK3.0-sqlite3-devel         pkgconfig(wxsqlite3)        ==4.5.1
libxerces-c28-devel               pkgconfig(xerces-c)         ==2.8.0
libxerces-c-devel                 pkgconfig(xerces-c)         ==3.2.3

Обратите внимание на часть этой таблицы:
Package:                        Provide Name:              Provide Version:
python-module-pycxx-devel       pkgconfig(PyCXX)           =7.1.4
python3-module-pycxx-devel      pkgconfig(PyCXX)           =7.1.4
dataquay-devel                  pkgconfig(dataquay)        =0.9
dataquay-minefeld-devel         pkgconfig(dataquay)        =0.9
libglusterfs7-devel             pkgconfig(libgfchangelog)  =0.0.1
libglusterfs8-devel             pkgconfig(libgfchangelog)  =0.0.1
libpyside-qt4-devel             pkgconfig(pyside)          =1.2.2
libpyside-qt4-py3-devel         pkgconfig(pyside)          =1.2.2
python-module-PySide2-devel     pkgconfig(pyside2)         =5.15.0
python3-module-PySide2-devel    pkgconfig(pyside2)         =5.15.0
libshiboken-devel               pkgconfig(shiboken)        =1.2.2
libshiboken-py3-devel           pkgconfig(shiboken)        =1.2.2
python-module-shiboken2-devel   pkgconfig(shiboken2)       =5.15.0
python3-module-shiboken2-devel  pkgconfig(shiboken2)       =5.15.0

Я не вижу другого выхода, кроме как запретить дублирование pkgconfig provides.


-- 
ldv


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