ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Dmitry V. Levin" <ldv@altlinux.org>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: [devel] I: duplicate pkgconfig() provides
Date: Sat, 14 Nov 2020 17:59:11 +0300
Message-ID: <20201114145911.GA23820@altlinux.org> (raw)

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


             reply	other threads:[~2020-11-14 14:59 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-14 14:59 Dmitry V. Levin [this message]
2020-11-14 15:51 ` Yuri Sedunov
2020-11-14 16:29   ` Dmitry V. Levin
2020-11-14 17:02     ` Yuri Sedunov
2020-11-14 19:04       ` Dmitry V. Levin
2020-11-14 20:22         ` Yuri Sedunov
2020-11-14 22:09           ` Dmitry V. Levin
2020-11-15 13:14             ` Yuri Sedunov
2020-11-15 14:52               ` Dmitry V. Levin
2020-11-16  9:33 ` Vitaly Lipatov
2020-12-03  9:54     ` Aleksei Nikiforov
2020-12-03 11:52         ` Dmitry V. Levin
2020-12-03 12:54             ` Aleksei Nikiforov
2020-12-03 13:14               ` Dmitry V. Levin
2020-12-04  9:59       ` Vladislav Zavjalov
2020-12-04 10:40         ` Andrey Savchenko
2020-12-04 11:05           ` Vladislav Zavjalov
2020-12-04 11:39             ` Sergey V Turchin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201114145911.GA23820@altlinux.org \
    --to=ldv@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git