xpra icon
Bug tracker and wiki

Opened 8 months ago

Last modified 7 days ago

#1883 assigned task

packaging for mingw64 / MSYS2

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 2.5
Component: packaging Version: 2.3.x
Keywords: Cc:

Description

We should be able to submit this as a package to MSYS2: https://github.com/msys2/msys2/wiki/Creating-Packages.

Change History (26)

comment:1 Changed 8 months ago by Antoine Martin

Owner: changed from Antoine Martin to Smo
Summary: packaging for mingwpackaging for mingw64 / MSYS2

Python build changes mostly completed in r19684.
We can now install xpra locally from an MSYS2 shell with:

rm -fr dist/*
python ./setup.py clean
python ./setup.py install --prefix=./dist --share=share/xpra --with-scripts
rsync -rplogt dist/* ${MINGW_PREFIX}/

Still TODO:

  • install both python2 and python3 builds?
  • figure out the dependencies we want to declare (ie: not opencv..)
  • create some packages for the most important python dependencies (those should be easy): rencode, lz4, PyOpenGL + PyOpenGL_accelerate, cryptography
  • fix audio subprocess command failures

@smo: can you help with any of this?

comment:2 Changed 7 months ago by Antoine Martin

Update from the transition to python 3.7 (#1878) done by msys2:

comment:3 Changed 7 months ago by Antoine Martin

Last edited 7 months ago by Antoine Martin (previous) (diff)

comment:4 Changed 7 months ago by totaamwin32

  • r20022: use mingw packages for some python dependencies
  • for python-lzo see ticket:1044#comment:9
  • would be very useful to have libyuv (as per ticket:678#comment:40 - much easier now that libyuv builds the DLL by default and without errors) - every other installation step is now fully automated, see wiki/Building/MSWindows
  • pyopengl_accelerate can be built from source against python 3.7 (with a recent enough version of Cython), but only from a git copy (source here: https://github.com/mcfletch/pyopengl) and after removing the ".c" file to ensure they get re-generated - since the pyopengl version should match, build that from the same source tree (just remove the SGIX directories as those contain the "async" keyword which is now illegal - we don't need those anyway)
  • lz4 is crucial, we need the workaround from r20171 (ticket:1929#comment:1) so it gets packaged properly (I'm not blaming cx_Freeze for this particular breakage)
Last edited 6 months ago by Antoine Martin (previous) (diff)

comment:5 Changed 6 months ago by totaamwin32

python-zeroconf (original feature ticket: #1644) dropped support for python2 in version 0.20 (see TypeError: unsupported operand type(s) for &: 'str' and 'int' and python2-zeroconf: updated to 0.20.0, but 0.20.0 dropped python2 support), but something is not right and using easy_install will pickup the latest (broken) version, so we have to be specific about it: r20193. No such problems with python3.

Last edited 6 months ago by Antoine Martin (previous) (diff)

comment:6 Changed 6 months ago by Antoine Martin

Work in progress lives here: github thesmo MINGW-packages

comment:7 Changed 4 months ago by Antoine Martin

Milestone: 2.42.5

comment:8 Changed 4 months ago by Antoine Martin

Here's a slightly more tricky one: pygtkglext as per ticket:678#comment:27 (2 patches and a workaround for the install step), it was MIA from my 64-bit build VM, fortunately the new "native" backend was working OK so I didn't notice!

comment:9 Changed 4 months ago by Antoine Martin

Minor update: rencode 1.0.6, see r20754

comment:10 Changed 3 months ago by Antoine Martin

@smo: see ticket:2004#comment:3 for libyuv.

comment:12 Changed 3 months ago by Antoine Martin

Can you update what has been merged and replace easy_install with pacman in the setup and update scripts?

comment:13 Changed 3 months ago by Antoine Martin

Found that paramiko, comtypes, netifaces and rencode are available in MSYS2 now, so r21147 switches to that.

comment:14 Changed 5 weeks ago by Smo

Here is a link to all the closed merge requests.

https://github.com/Alexpux/MINGW-packages/pulls?q=is%3Apr+author%3Athesmo+is%3Aclosed

nvidia-ml-py seems to be the only open one still

comment:15 Changed 4 weeks ago by Antoine Martin

Useful link: thesmo pull requests

r21483 switches to MSYS2 packages for: websocket-client, setproctitle, pyu2f, ldap, ldap3, bcrypt and pynacl. Also zeroconf, but only for python3 (see below, comment:5).

Important libraries left to package / fix:

Last edited 3 weeks ago by totaamwin32 (previous) (diff)

comment:16 Changed 3 weeks ago by totaamwin32

With the two build files above, I can generate a working installation of xpra.

Still TODO:

  • apply fixes from comment:15
  • merge those two packages
  • provide a better way of generating the /etc and /share/xpra directories, without doing a fake build (even if it is a minimal one, doing the cx_Freeze step is expensive and unnecessary - also requires cx_Freeze which we don't really need for anything)
  • is there a way to make a truly generic noarch package? the contents of the mingw-w64-x86_64-xpra-common are not architecture dependent at all, we want a mingw-w64-xpra-common instead
Last edited 3 weeks ago by totaamwin32 (previous) (diff)

comment:17 Changed 3 weeks ago by Antoine Martin

comment:18 Changed 3 weeks ago by Antoine Martin

Owner: changed from Smo to Antoine Martin
Status: newassigned

The pull request has been merged, I have made a new one for python-nvidia-ml - the one above was broken for python3.

Since 2.5 will drop websockify (#2121) and make "native" the default opengl backend (r21382), there aren't many important packages left to fix / add from comment:15:

Last edited 3 weeks ago by Antoine Martin (previous) (diff)

comment:19 Changed 3 weeks ago by Antoine Martin

pull request for python-zeroconf: https://github.com/Alexpux/MINGW-packages/pull/4941 with one build file for each python version.

comment:20 Changed 2 weeks ago by Antoine Martin

As of r21532 + r21533 + r21534, minimal builds don't include anything at all, not even any python bits. Adding --with-data we get just the extra bits we need for packaging "xpra-common".

comment:21 Changed 2 weeks ago by Antoine Martin

comment:22 Changed 2 weeks ago by Antoine Martin

Pull request for fixing pyopengl: https://github.com/Alexpux/MINGW-packages/pull/4949

comment:23 Changed 2 weeks ago by Antoine Martin

Merged upstream:

comment:24 Changed 13 days ago by Antoine Martin

pyopengl-accelerate pull request (added to pyopengl): https://github.com/Alexpux/MINGW-packages/pull/4954

comment:25 Changed 12 days ago by Antoine Martin

Merged upstream:

Updated setup and removed python update script: r21590.

Only things left for this ticket:

  • libyuv upstream merge (comment:21)
  • submit xpra package merge request
Last edited 11 days ago by Antoine Martin (previous) (diff)

comment:26 Changed 7 days ago by Antoine Martin

The install changes caused a regression: ticket:2144#comment:1.

Note: See TracTickets for help on using tickets.