On 2020-12-03 19:28+0300 Dmitry Shachnev wrote:

H Alan!

On Tue, Dec 01, 2020 at 01:34:50PM -0800, Alan W. Irwin wrote:
Hi Dmitry:

From the PLplot bug discussion above, it appears Rafael was unable to
modify PLplot to use sip5 with two different methods which
are (1) to generalize our
present method for generating our pyqt5 binding so that method works for both 
sip4 and sip5 or
(2) adopting the completely new approach of using a sip5-based build system to 
generate our
pyqt5 binding.
I likely will also not be able to convert PLplot to use sip5
because my sip
expertise is not particularly good.  Also note we must
continue to support sip4 because many latest versions of distros
(including (!) Debian Unstable, see <https://packages.debian.org/sid/sip-dev>)
support that version of sip.  If you do provide a patch for this
issue, I would *far* prefer you to use method 1 that was described above.

Let me try to convince you of the opposite.

- SIP 5 was released in October 2019. It's not that much new.
- SIP 5 is what users when they are installing PyQt5 from pypi.org (using pip
 tool). So most people who are not relying on distros' package manager will
 get it.
- The upstream SIP developer writes [1]:
 > SIP v4 has been deprecated for more than a year. *Nobody* should still be
 > using it.
- I am SIP maintainer in Debian. At the moment we support both 4 and 5.
 The reason why I filed these bugs is that I *do* want to abandon SIP 4.
 This won't happen in time for Debian 11 (Bullseye), but it will definitely
 happen in Debian 12 (Bookworm). The same applies to Ubuntu, which gets SIP
 synced from Debian.

So at this point there are few reasons to care about SIP 4. Then, upstream
is going to release SIP 6 soon (maybe in a few months). It will be *not*
co-installable with SIP 5, so distros will probably have to ship either
only SIP 6, or for some time SIP 4 and SIP 6 (but not SIP 5).

If plplot keeps using the old sip/sip5 tool (approach 1), then it will work
with SIP 4 and SIP 5, but will need changes when porting to SIP 6.

If plplot starts using the new buildsystem (approach 2), then it will work
with SIP 5 and SIP 6 without much changes.

So I think approach 2 makes more sense than approach 1.

Hi Dmitry:

Thanks for sharing your knowledge of sip development and version status which I
was sorely lacking.  And armed with that knowledge the points you have made 
with regard to
moving to approach 2 seem pretty good to me.  Therefore,
if/when you send me a patch implementing approach 2, I would
be willing to modify it to keep the present pure sip4 approach as a
(deprecated) alternative until most modern versions of distros support
sip5 (if that is going to be an issue).

I am not promising anything, but when I have time I may look at building
plplot with SIP 5, regardless on what approach we decide on. This codebase
is unknown to me, so it may take a while.

To help encourage that effort, here is what I would recommend for your first 
steps.

# Use the latest git version of PLplot following the directions at
# <https://sourceforge.net/p/plplot/plplot/ci/master/tree/>
git clone git://git.code.sf.net/p/plplot/plplot plplot.git

# Start configuration with a clean build directory that is located
# relative to the plplot.git directory.
cd plplot.git
mkdir ../build_dir
cd ../build_dir

# Configure a minimalist PLplot that still enables the pyqt5 binding
cmake -DDEFAULT_NO_BINDINGS=ON -DDEFAULT_NO_DEVICES=ON -DENABLE_python=ON 
-DENABLE_qt=ON -DENABLE_pyqt5=ON -DPLD_extqt=ON -DBUILD_TEST=ON ../plplot.git 
>& cmake.out)

# Test that configuration by building that binding and running an example that 
uses it.
make test_pyqt5_example

Note we currently also support Qt4 and pyqt4, but those are about to be removed 
so ignore that
part of our build system.

The files and directories within our source tree that are relevant to
our pyqt5 binding and the example that tests it are
cmake/modules/qt.cmake, bindings/qt_gui/pyqt5, examples, and
examples/python.

Good luck, and let me know how the above simple steps work for you to test
our present sip4 pyqt5 binding.

Alan
__________________________
Alan W. Irwin

Research affiliation with the Department of Physics and Astronomy,
University of Victoria, Victoria, BC, Canada.

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.org); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to