Re: Python - plan & execution

2020-04-23 Thread Yaakov Selkowitz
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

2020-04-23 Thread Yaakov Selkowitz
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

2020-04-23 Thread Hamish McIntyre-Bhatty via Cygwin-apps
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

2020-04-23 Thread Yaakov Selkowitz
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

2020-04-23 Thread Yaakov Selkowitz
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

2020-04-23 Thread Hamish McIntyre-Bhatty via Cygwin-apps
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