Bug 251776

Summary: Duplicate ports: devel/py-sip and devel/py-qt5-sip
Product: Ports & Packages Reporter: Yuri Victorovich <yuri>
Component: Individual Port(s)Assignee: freebsd-kde (Team) <kde>
Status: Closed FIXED    
Severity: Affects Only Me CC: lbartoletti, rhurlin, yuri
Priority: --- Flags: bugzilla: maintainer-feedback? (kde)
Version: Latest   
Hardware: Any   
OS: Any   

Description Yuri Victorovich freebsd_committer 2020-12-12 06:57:09 UTC
Both have the same COMMENT "Python to C and C++ bindings generator".
Both install /usr/local/lib/python3.7/site-packages/PyQt5/sip.so:
> Checking integrity... done (1 conflicting)
>   - py37-sip-4.19.24,1 conflicts with py37-qt5-sip-12.8.0 on /usr/local/lib/python3.7/site-packages/PyQt5/sip.so

Could you please remove one of them?

Thank you,
Comment 1 Rainer Hurling freebsd_committer 2020-12-12 08:23:42 UTC
(In reply to Yuri Victorovich from comment #0)
Hi Yuri,

As far as I understand, the both ports do not install the same. There is only a conflict with older installations.

#pkg info -l py37-sip-5.4.0,1 | grep qt

#pkg info -l py37-qt5-sip-12.8.0 | grep qt

I assume you try to install via portmaster or something similar, not via pkg?

Could you please try in this order

portmaster -o devel/py-sip py37-sip-4.19.24,1
portmaster devel/py-qt5-sip
Comment 2 Yuri Victorovich freebsd_committer 2020-12-12 08:35:30 UTC
I use pkg:
> [yuri@yv /usr/ports/science/py-veusz]$ pkg info | grep sip
> py37-qt5-sip-12.8.0            Python to C and C++ bindings generator
> [yuri@yv /usr/ports/science/py-veusz]$ sudo pkg install -A py37-sip
> Updating FreeBSD repository catalogue...
> FreeBSD repository is up to date.
> All repositories are up to date.
> Checking integrity... done (1 conflicting)
>   - py37-sip-4.19.24,1 conflicts with py37-qt5-sip-12.8.0 on /usr/local/lib/python3.7/site-packages/PyQt5/sip.so
> Checking integrity... done (0 conflicting)
> The following 2 package(s) will be affected (of 0 checked):
> Installed packages to be REMOVED:
> 	py37-qt5-sip: 12.8.0
> New packages to be INSTALLED:
> 	py37-sip: 4.19.24,1
> Number of packages to be removed: 1
> Number of packages to be installed: 1
> The process will require 3 MiB more space.
> Proceed with this action? [y/N]: y
> [1/2] Deinstalling py37-qt5-sip-12.8.0...
> [1/2] Deleting files for py37-qt5-sip-12.8.0: 100%
> [2/2] Installing py37-sip-4.19.24,1...
> [2/2] Extracting py37-sip-4.19.24,1: 100%
Comment 3 Rainer Hurling freebsd_committer 2020-12-12 14:13:00 UTC
(In reply to Yuri Victorovich from comment #2)

As far as I can say, devel/py-sip has to be reinstalled *before* devel/py-qt5-sip ...
Comment 4 Yuri Victorovich freebsd_committer 2020-12-12 16:25:48 UTC
(In reply to Rainer Hurling from comment #3)

But they are in conflict, so this can't be done?
Comment 5 Rainer Hurling freebsd_committer 2020-12-12 16:54:56 UTC
(In reply to Yuri Victorovich from comment #4)
> But they are in conflict, so this can't be done?

Hmm, isn't devel/py-qt5-sip in conflict with devel/py-sip in comment #0?

I'm talking about first upgrading devel/py-sip on its own. Only when that has succeeded, continue with upgrading devel/py-qt5-sip and the rest ...

With portmaster, it works fine in this order. Don't know, how to solve with pkg, sorry. Perhaps something like 'pkg upgrade devek/py-sip'?
Comment 6 Yuri Victorovich freebsd_committer 2020-12-12 16:58:00 UTC
(In reply to Rainer Hurling from comment #5)

Once two ports install the same file the order in which they are installed doesn't matter. pkg would still fail with the same conflict.

portmaster can't make a difference, because it is secondary to pkg.
Comment 7 Rainer Hurling freebsd_committer 2020-12-12 17:18:12 UTC
(In reply to Yuri Victorovich from comment #6)

I think in principle you are right. But this is probably the misunderstanding between us.

The upgraded devel/py-sip v5.4.0 (in the changed behaviour of the SIP framework) does not install a /usr/local/lib/python3.7/site-packages/PyQt5/sip.so anymore. This is how the conflict disappears.
Comment 8 Loïc Bartoletti freebsd_committer 2020-12-13 06:10:29 UTC
Hi Yuri,

Rainer is right, these are not duplicates. Indeed, the description can lead to confusion.

- devel/py-sip, is a set of tools to generate python binding from C and C++.
- devel/py-qt5-sip, is a (sip) python module for PyQt5. All PyQt5 modules depend on it.

I will improve the description of devel/py-q5-sip.

With sip5 there have been some important changes that I have listed in my commit. Notably where py-sip (and sip binding) will install its files.

For your problem, I notice that there is a conflict between sip4 and py-qt5-sip, I think this is normal. In my commit for devel/py-qt5-sip, I said not to play with it yet, you have to wait for sip5 to land. It is present in the ports but not yet in the packages.

So, py-qt5-sip and py-sip are two separate ports, but py-qt5-sip should only be used with py-sip >= 5
Comment 9 Yuri Victorovich freebsd_committer 2020-12-13 07:49:09 UTC
There's something wrong with sip, py37-qt5-core-5.15.1 fails to build in poudriere and locally:

> ===>  Configuring for py37-qt5-core-5.15.1
> /usr/bin/sed -i.bak -e "s/sip-module/sip-module-3.7/" /wrkdirs/usr/ports/devel/py-qt5-core/work-py37/PyQt5-5.15.1/configure.py
cd /wrkdirs/usr/ports/devel/py-qt5-core/work-py37/PyQt5-5.15.1 && /usr/bin/env PYTHON="/usr/local/bin/python3.7" QT_SELECT=qt5 QMAKEMODULES="/wrkdirs/usr/ports/devel/py-qt5-core/work-py37/PyQt5-5.15.1/mkspecs/modules:/usr/local/lib/qt5/mkspecs/modules" XDG_DATA_HOME=/wrkdirs/usr/ports/devel/py-qt5-core/work-py37  XDG_CONFIG_HOME=/wrkdirs/usr/ports/devel/py-qt5-core/work-py37  HOME=/wrkdirs/usr/ports/devel/py-qt5-core/work-py37 TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/devel/py-qt5-core/work-py37/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/nonexistent/bin SHELL=/bin/sh CONFIG_SHELL=/bin/sh  /usr/local/bin/python3.7 configure.py   --enable=QtCore "--sip=/usr/local/bin/sip-3.7" --qsci-api --qsci-api-destdir=/usr/local/share/PyQt5/3.7/qsci -b /usr/local/bin  -d /usr/local/lib/python3.7/site-packages  -q /usr/local/lib/qt5/bin/qmake  --confirm-license  --sip /usr/local/bin/sip5-3.7  --sipdir /usr/local/lib/python3.7/site-packages/PyQt5/bindings --qml-plugindir /usr/local/lib/qt5/qml/PyQt5/3.7  --designer-plugindir /usr/local/lib/qt5/plugins/designer/PyQt5/3.7 --no-dist-info
> Usage: python configure.py [opts] [name=value] [name+=value]
> configure.py: error: '/usr/local/bin/sip-3.7' is not an executable
> *** Error code 2

This is happening after the recent ports update.
Comment 10 Loïc Bartoletti freebsd_committer 2021-02-07 10:58:07 UTC
Hi Yuri,

Is your problem solved after r558168?
Comment 11 Yuri Victorovich freebsd_committer 2021-02-07 21:35:25 UTC
(In reply to Loïc Bartoletti from comment #10)