Opened 7 months ago

Last modified 4 weeks ago

#3201 new feature-request

GTK3 Windows build

Reported by: Cas Owned by:
Priority: major Milestone: 2.0.0
Component: Packaging Version: develop (git)
Keywords: Cc:

Description (last modified by Cas)

With the move to a GTK3 UI we need a way to easily create the Windows package.

I am not sure what the best route is going to be but we need something that can always get the latest versions of GTK3 as we had to use outdated PyGTK versions as no other builds existed.

It would be good to drop the usage of MSVC and go with msys2 but there are hurdles to doing that with regards to Twisted and pywin32 (see #3181). These are the steps for another GTK3 project building with msys2:

https://www.gramps-project.org/wiki/index.php/Gramps_for_Windows_with_MSYS2

Alternatively we continue with MSVC and roll our own GTK3 builds:

https://github.com/wingtk/gvsbuild

We will also need to move from bbfreeze to most likely pyinstaller but that is further down the road: Freezing comparison

Help or suggestions with this would be appreciated as primary development is on Ubuntu.

Change History (6)

comment:1 Changed 7 months ago by Cas

  • Description modified (diff)

comment:2 Changed 7 months ago by Cas

  • Description modified (diff)

comment:3 Changed 7 months ago by Doadin

Not sure if it will make a difference but back when I was first starting to make GTK3 changes to deluge I did some work updating bbfreeze to have better module finding and python 3 support. I got all of the python code to python 3 but the python c api portion I could not fix.(it doesnt need much) The code is on my github under ccfreeze if you want to try it out.

comment:4 Changed 7 months ago by Cas

Yeah thanks, I remember I was impressed you got that working. However bbfreeze is a dead project now and doesn't officially support Python 3 or GTK3 so we need to move on, despite it serving us well.

Last edited 7 months ago by Cas (previous) (diff)

comment:5 Changed 6 months ago by Cas

So I have had some success testing out building with gvsbuild scripts and I have created a fork of gvsbuild so the job artifacts can be downloaded from appveyor:

https://ci.appveyor.com/project/cas--/gvsbuild

Currently there are a few windows specific issues with the deluge code:

  • Remove py2-ipaddress lines from setup.py and requirements.txt.
  • Comment out the entire last try..except in deluge.common.set_env_variable.

Extract the gvsbuild tarball and add to path. From console in deluge source dir:

set PATH=C:\gvsbuild\release;%PATH%
pip install C:\gvsbuild\release\python\pycairo-1.17.1-cp36-cp36m-win_amd64.whl
pip install C:\gvsbuild\release\python\PyGObject-3.28.3-py3.6-win-amd64.whl
pip install -r requirements.txt
pip install -e .

lt RC_1_1: https://ci.appveyor.com/project/cas--/libtorrent/builds/20516558/artifacts

Last edited 4 weeks ago by Cas (previous) (diff)

comment:6 Changed 6 months ago by Cas

To get a nicer theme create a file: C:\gvsbuild\release\etc\gtk-3.0\settings.ini with the following:

[Settings]
gtk-theme-name=win32
Note: See TracTickets for help on using tickets.