Re: Python - plan & execution
On Fri, 2020-04-10 at 14:52 +0200, Marco Atzeri via Cygwin-apps wrote: > Am 26.03.2020 um 08:19 schrieb Yaakov Selkowitz: > > On Thu, 2020-03-26 at 06:54 +0100, Marco Atzeri via Cygwin-apps wrote: > > > Am 20.03.2020 um 04:47 schrieb Yaakov Selkowitz: > > I would suggest the following: > > > > * python2-2.7.z continues to provide all '2' symlinks. > > > > * python38 be updated to 3.8.2, and 3.8 be designated the next default > > 'python3' version (with the '3' symlinks continued to be kept > > separate), and adjust python-wheel.cygclass accordingly. > > > > * Similarly, a separate package (in Fedora it's called 'python- > > unversioned-command') provide unversioned symlinks, pointing to 2.7 for > > now (for compatibility). > > > > * Anything currently dependent on 'python' or 'python2' should either > > be dropped if no longer needed, switched to 3 is possible, otherwise > > rebuilt. > > > > * Drop 2.7 from the "default" version set in python-wheel.cygclass, and > > only build those modules that are actually needed by other things by > > specifying "all". > > > > * Once that's done, look at what's still depending on /usr/bin/python > > ('python-unversioned-command'), and based on that decide when that can > > be changed to point to python3. > > first steps done: > - updated 3.8 to 3.8.2 > - updated 3.7 to 3.7.7 > - updated also their python doc > - upload of all of them is in progress Didn't think of it earlier, but how about updating python3 (the major- version symlinks) to 3.8 as a test: release now? That should help maintainers start the move without breaking the world for everybody else. Posted this to a branch to help: https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/python3.git;a=commitdiff;h=772172be59111366ece38aebb1ea876322bfdd2f > next steps: > - I assume we can drop 3.5 Your call, it's still supported upstream for almost 5 more months. I wouldn't build anything python35-* except for setuptools/pip/wheel/virtualenv. > - for the time being no need to update 2.7 and 3.6 >(we are just one version behind) There's now a 2.7.18, we should probably pick that up, as it has the final upstream fixes. After that, it's time to start moving to 3.8 en masse. > - verify which python packages we need to build/rebuild > > currently we have > > 119 *python27* These are fine as is, but they also don't need to be rebuilt or updated any more. > 114 *python36* > 115 *python37* > 10 *python38* We don't need to _obsolete or remove python3[67]-* packages, we just need to track how many don't have python38-* equivalents yet. Obviously that's still the vast majority, since 3.8 just got updated to a stable version. Jon Turney, if a python-foo source package was previously building e.g. python27-foo, python36-foo, and python37-foo, and now starts building only python37-foo and python38-foo, is calm going to complain? > and ~ 225 other *python* packages (plus 10 for python35) There are a lot of _obsolete python-*, python2-*, and python3-* "packages" which we don't need to count. How many of those names are NOT _obsolete? > - verify the fedora python-unversioned-command This is the last step. -- Yaakov
Re: [ITA] python2-wx and related packages for wxPython and wxwidgets
On Thu, 2020-04-23 at 18:09 +0100, Hamish McIntyre-Bhatty wrote: > On 23/04/2020 17:08, Yaakov Selkowitz wrote: > > Please keep all discussion on list. > > > My apologies, I thought I'd sent the reply to the list. > > Most of that has already been figured out in our python-wx package. > > Looking at Fedora, it looks like we just need to add their wxPython- > > 3.0.2.0-suppress-version-mismatch-warning.patch and wxPython-3.0.2.0- > > fix-wxcairo.patch and we'll be in sync. > > > Okay, I'll add those patches. I think I've gotten confused somehow, > because my cygport and files are based on the source package for > python-wx at > http://mirrors.kernel.org/sourceware/cygwin/x86_64/release/python-wx/, > but the cygport in that archive also builds all of the other packages, > and doesn't use the system wxWidgets headers, hence me hacking in the > wxWidgets 3.0.4 files and having to build everything together. The work to split them out is already published: https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/wxWidgets3.0.git https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/python-wx.git I suppose I just never needed to actually rebuild python-wx after that, but the work was done in preparation. > wxPython 3.0.2 itself is shipped with wxWidgets 3.0.2 in the tarball > from wxpython.org, and seems to insist upon building its own copy of > wxwidgets. Maybe by default, but it is buildable without. > > No, that's just bound to cause problems. > > > This is confusing me because it seems to be what the existing packages do. That's what they *used* to do. I moved away from that for the reasons outlined. > > Look forward to the follow up. > > > > BTW, did you have any plans to figure out wxPython4? > > Good to hear. I do, I just haven't had the time yet and I figured it'd > be best to get wxPython 3 in really good shape (and get some practice > with packaging!) before sorting that one out. Fair enough. python-sip will need to be updated for that as well, which requires also updating python-pyqt5* in sync therewith, so this will need to be coordinated. -- Yaakov
Re: [ITA] python2-wx and related packages for wxPython and wxwidgets
On 23/04/2020 17:08, Yaakov Selkowitz wrote: > Please keep all discussion on list. > My apologies, I thought I'd sent the reply to the list. > Most of that has already been figured out in our python-wx package. > Looking at Fedora, it looks like we just need to add their wxPython- > 3.0.2.0-suppress-version-mismatch-warning.patch and wxPython-3.0.2.0- > fix-wxcairo.patch and we'll be in sync. > Okay, I'll add those patches. I think I've gotten confused somehow, because my cygport and files are based on the source package for python-wx at http://mirrors.kernel.org/sourceware/cygwin/x86_64/release/python-wx/, but the cygport in that archive also builds all of the other packages, and doesn't use the system wxWidgets headers, hence me hacking in the wxWidgets 3.0.4 files and having to build everything together. wxPython 3.0.2 itself is shipped with wxWidgets 3.0.2 in the tarball from wxpython.org, and seems to insist upon building its own copy of wxwidgets. > No, that's just bound to cause problems. > This is confusing me because it seems to be what the existing packages do. > Look forward to the follow up. > > BTW, did you have any plans to figure out wxPython4? Good to hear. I do, I just haven't had the time yet and I figured it'd be best to get wxPython 3 in really good shape (and get some practice with packaging!) before sorting that one out. Hamish 0x87B761FE07F548D6.asc Description: application/pgp-keys signature.asc Description: OpenPGP digital signature
Re: [ITA] python2-wx and related packages for wxPython and wxwidgets
On Thu, 2020-04-23 at 16:16 +0100, Hamish McIntyre-Bhatty wrote: > Thanks for your feedback. I wasn't expecting this to be accepted, it's > only my first try after all :) Please keep all discussion on list. > > I do not recommend building both the C++ libraries and Python bindings > > from the same source package, for several reasons: > > > > * Python bindings need to be updated/rebuilt with each new version of > > Python, which occurs much more frequently than updated versions of > > wxWidgets. Keeping them separate minimizes the rebuild times. > > > > * wxPython and wxWidgets versions don't always match, as you mentioned > > above. Building them separately avoids jumping through those sort of > > hoops. > > > > * wxPython 3 is obsolete anyway, with current support only for version > > 4 (which is still for wxWidgets 3), so this scheme won't carry forward > > anyway. > > > > Since the standalone wxWidgets3.0 package is already at 3.0.4, all you > > may want to do is revbump and rebuild python-wx. > > This is fair enough. However, I was unable to build wxPython against the > already-installed system version of wxWidgets, as that isn't how it was > intended to be compiled, and it would require large changes to the > pre-existing packaging. Most of that has already been figured out in our python-wx package. Looking at Fedora, it looks like we just need to add their wxPython- 3.0.2.0-suppress-version-mismatch-warning.patch and wxPython-3.0.2.0- fix-wxcairo.patch and we'll be in sync. > How about I instead ignore the wxwidgets packages built this way? This > will result in long build times as per the pre-existing packaging, but > there will probably not be much need to re-build this. No, that's just bound to cause problems. > > Do NOT drop this patch. You might be aligned now, but as soon as > > gcc/libstdc++ get updated, the mismatch will reoccur, and programs will > > unnecessarily fail again. > Okay, I shall re-instate it and re-build. > > > The few remaining wxGTK* patches: > > > - No longer apply without error and don't seem to be needed with the > > > newer wxwidgets version. > > Patches were added for a reason; if you don't understand what they do > > and why they're there, then you should be asking why rather than > > dismissing them. In the case of Gentoo's collision patch, this is > > needed to support parallel installations of X.Y versions of wxWidgets. > > The updated patch is named wxGTK-3.0.5-collision.patch. > > > Good to know, I will attempt to find updated patches. Is there an online > repository where they are held? I will go back through the other patches > which did not apply and attempt to find replacements/ask what they do. Look forward to the follow up. BTW, did you have any plans to figure out wxPython4? -- Yaakov
Re: [ITA] python2-wx and related packages for wxPython and wxwidgets
On Thu, 2020-04-23 at 15:02 +0100, Hamish McIntyre-Bhatty wrote: > I've gotten a more stable build of wxPython 3.0.2 and wxWidgets 3.0.4 to > build now. wxPython is now also built against the version of wxWidgets > that is installed on the system, avoiding ABI mismatch warnings and > strange behaviour/freezes hat I was experiencing before. I'm going to recommend nacking this in its current form. > The test packages can be downloaded from > https://hamishmb.com/files/cygwin-temp/. > > I say "various other packages", because building wxPython also builds > the following packages: > > libwx_baseu3.0_0, libwx_gtk3u3.0-devel, python-wxversion, > libwx_baseu3.0-devel, python2-wx, libwx_gtk2u3.0_0, python2-wxversion, > libwx_gtk2u3.0-devel, python-wx3.0, wxWidgets3.0-debuginfo, > libwx_gtk3u3.0_0, python-wx-tools > > The build process is a bit strange because wxPython 3.0.2 ships with > wxWidgets 3.0.2 instead of the system version (3.0.4), so my build > script downloads and re-patches the wxWidgets source before proceeding > with the build. As a result of using wxWidgets 3.0.4 instead of 3.0.2, > many patches are no longer needed as they were included upstream. > Removed patches and the reason for removal are listed at the end of this > email. I've probably got some of this wrong, but it does seem to work > well at least :) I do not recommend building both the C++ libraries and Python bindings from the same source package, for several reasons: * Python bindings need to be updated/rebuilt with each new version of Python, which occurs much more frequently than updated versions of wxWidgets. Keeping them separate minimizes the rebuild times. * wxPython and wxWidgets versions don't always match, as you mentioned above. Building them separately avoids jumping through those sort of hoops. * wxPython 3 is obsolete anyway, with current support only for version 4 (which is still for wxWidgets 3), so this scheme won't carry forward anyway. Since the standalone wxWidgets3.0 package is already at 3.0.4, all you may want to do is revbump and rebuild python-wx. > Patches removed and the reasons why: > > http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-abicheck.patch > - No longer needed as we're now using the same ABI for runtime and build > versions. Do NOT drop this patch. You might be aligned now, but as soon as gcc/libstdc++ get updated, the mismatch will reoccur, and programs will unnecessarily fail again. [snip] > The few remaining wxGTK* patches: > - No longer apply without error and don't seem to be needed with the > newer wxwidgets version. Patches were added for a reason; if you don't understand what they do and why they're there, then you should be asking why rather than dismissing them. In the case of Gentoo's collision patch, this is needed to support parallel installations of X.Y versions of wxWidgets. The updated patch is named wxGTK-3.0.5-collision.patch. -- Yaakov
[ITA] python2-wx and related packages for wxPython and wxwidgets
Hi all, I've gotten a more stable build of wxPython 3.0.2 and wxWidgets 3.0.4 to build now. wxPython is now also built against the version of wxWidgets that is installed on the system, avoiding ABI mismatch warnings and strange behaviour/freezes hat I was experiencing before. The test packages can be downloaded from https://hamishmb.com/files/cygwin-temp/. I say "various other packages", because building wxPython also builds the following packages: libwx_baseu3.0_0, libwx_gtk3u3.0-devel, python-wxversion, libwx_baseu3.0-devel, python2-wx, libwx_gtk2u3.0_0, python2-wxversion, libwx_gtk2u3.0-devel, python-wx3.0, wxWidgets3.0-debuginfo, libwx_gtk3u3.0_0, python-wx-tools The build process is a bit strange because wxPython 3.0.2 ships with wxWidgets 3.0.2 instead of the system version (3.0.4), so my build script downloads and re-patches the wxWidgets source before proceeding with the build. As a result of using wxWidgets 3.0.4 instead of 3.0.2, many patches are no longer needed as they were included upstream. Removed patches and the reason for removal are listed at the end of this email. I've probably got some of this wrong, but it does seem to work well at least :) I eagerly await feedback - I'm sure there's some stuff I could improve in this packaging, and I'm excited to soon be maintaining some Cygwin packages. Patches removed and the reasons why: http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-abicheck.patch - No longer needed as we're now using the same ABI for runtime and build versions. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-upstreamfixes.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-getbestsize.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-media-docs.patch?h=f25 - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-size-alloc-fix.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-font-enumerator-stop.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-init-from-font.patch: - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-gtk-show-uri1.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-draw-elliptic-arc-crash.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-fix-percent-dnd2.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-scrolwin-sizing-loop.patch - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-background-color.patch?h=f25 - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-paint-clipping-region.patch?h=f25 - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-wxpgchoicesdata-protected-destructor.patch?h=f25 - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-check-radio-button-rendering.patch?h=f25 - No longer needed in new wxwidgets source - already applied. http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-blank-menubar-toolbar.patch?h=f25 - No longer needed in new wxwidgets source - already applied. The few remaining wxGTK* patches: - No longer apply without error and don't seem to be needed with the newer wxwidgets version. Hamish McIntyre-Bhatty 0x87B761FE07F548D6.asc Description: application/pgp-keys signature.asc Description: OpenPGP digital signature