[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