From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 14 Nov 2020 17:59:11 +0300 From: "Dmitry V. Levin" To: ALT Devel discussion list Message-ID: <20201114145911.GA23820@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [devel] I: duplicate pkgconfig() provides X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Nov 2020 14:59:12 -0000 Archived-At: List-Archive: List-Post: 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