From: Alan W. I. <Ala...@gm...> - 2020-12-03 20:00:59
|
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 __________________________ |