Re: PyGObject on Windows

"Miess, Philip (TR Tech, Content & Ops)" <[email protected]> Thu, 20 Dec 2018 18:52:36 +0000
Newsgroups gmane.comp.file-systems.zero-install.devel
Message-ID <DM6PR03MB393126C636384B62F75B3ABEE0BF0@DM6PR03MB3931.namprd03.prod.outlook.com>
Bastian,
	Here is another source.
This location https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygtk
Has pygobject 2.28.6 for amd64

The msys2 mingw packages are here http://repo.msys2.org/mingw/x86_64/
And that includes gobject2 2.28.7 as well as gobject 3.20.4

Here is the tree you would need to use gobject2 2.28.7 x86_64
mingw-w64-x86_64-python2-gobject2
	mingw-w64-x86_64-glib2
		mingw-w64-x86_64-gcc-libs
			already packaged
		mingw-w64-x86_64-gettext
			already packaged
		mingw-w64-x86_64-pcre
			mingw-w64-x86_64-gcc-libs
				already packaged
			mingw-w64-x86_64-bzip2
				already packaged
			mingw-w64-x86_64-wineditline
			mingw-w64-x86_64-zlib
				already packaged
		mingw-w64-x86_64-libffi
				 already packaged
		mingw-w64-x86_64-zlib
				 already packaged
		mingw-w64-x86_64-python3
			mingw-w64-x86_64-gcc-libs
				 already packaged
			mingw-w64-x86_64-expat
				 already packaged
			mingw-w64-x86_64-bzip2
				 already packaged
			mingw-w64-x86_64-libffi
				 already packaged
			mingw-w64-x86_64-mpdecimal
				mingw-w64-x86_64-gcc-libs
					already packaged
			mingw-w64-x86_64-ncurses
				 already packaged
			mingw-w64-x86_64-openssl
				mingw-w64-x86_64-ca-certificates
					mingw-w64-x86_64-p11-kit
						mingw-w64-x86_64-libtasn1
							mingw-w64-x86_64-gcc-libs
								already packaged
						mingw-w64-x86_64-libffi
							already packaged
						mingw-w64-x86_64-gettext
							already packaged
				mingw-w64-x86_64-gcc-libs
					already packaged
				mingw-w64-x86_64-zlib
					already packaged
			mingw-w64-x86_64-tcl
				mingw-w64-x86_64-gcc-libs
					already packaged
				mingw-w64-x86_64-zlib
					already packaged
			mingw-w64-x86_64-tk
				mingw-w64-x86_64-tcl>=8.6.9
			mingw-w64-x86_64-zlib
				 already packaged
			mingw-w64-x86_64-xz
				mingw-w64-x86_64-gcc-libs
					already packaged
				mingw-w64-x86_64-gettext
					already packaged
			mingw-w64-x86_64-sqlite3
				mingw-w64-x86_64-gcc-libs
					already packaged
				mingw-w64-x86_64-ncurses
					already packaged
				mingw-w64-x86_64-readline
					mingw-w64-x86_64-gcc-libs
						already packaged
					mingw-w64-x86_64-termcap
						mingw-w64-x86_64-gcc-libs
							already packaged
	mingw-w64-x86_64-libffi
				 already packaged
	mingw-w64-x86_64-gobject-introspection-runtime
		mingw-w64-x86_64-glib2
			...
	mingw-w64-x86_64-pygobject2-devel=2.28.7

We only need to add 12 packages to the ones I have up @ https://gitlab.com/pmiess/0install-feeds/tree/master/public/mingw64
Of course the existing packages may need a version bump and could be incorrect as I haven't used them very much.
FYI the GCC and Perl packages are not quite right.

Phil


-----Original Message-----
From: Bastian Eicher [mailto:[email protected]] 
Sent: Thursday, December 20, 2018 6:13 AM
To: 'The Zero Install system' <[email protected]>
Subject: [Zero-install-devel] PyGObject on Windows

I've been looking for prebuild Windows binaries for the
http://repo.roscidus.com/python/python-gobject feed.

The ones currently listed in the feed are from
http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/. There are only
PyGObject 2 builds for x86 Python 2.x here. There haven't been any updates
since 2011.

The official PyGObject documentation at
https://pygobject.readthedocs.io/en/latest/getting_started.html#windows-gett
ing-started simply suggests to use MSYS2's package manager to acquire python
and python-gobject.

PyGObject for Windows (https://sourceforge.net/projects/pygobjectwin32/)
provides PyGObject 3 builds for Python 2.7 - 3.4 in both x86 and AMD64
variants. The last update is from May 2017.

"gobject" needs to be imported differently when using PyGObject 2 (import
gobject) or PyGObject 3 (from gi.repository import GObject as gobject). This
code in Zero Install takes care of that:
https://github.com/0install/0install/blob/b2.3/zeroinstall/support/tasks.py#
L48
If I'm reading it correctly, the code assumes it will always use PyGObject 2
on Python 2.x and PyGObject 3 on Python 3 or later.
0compile has a fixed assumption of using python-gobject2
(https://github.com/0install/0compile/blob/master/0compile#L11) since its
feed requires Python < 3.

However, the PyGObject for Windows builds I mentioned above are all
PyGObject 3, even for Python 2.7. Can/should we change the code to
detect/support and use PyGObject 3 on Python 2.x?