Xpra: Ticket #2268: How to build Xpra

Nice to meet you, my name is Matsuzaki

Today, I would like to know how to build a Windows version of Xpra, and I registered a ticket.

The Xpra build method "https://xpra.org/trac/wiki/Building/MSWindows" described on your home page has been successfully set up for all the items in this link.

However, when I execute MINGW_BUILD.sh, the following error occurs and I can not build.

$ bash win32 / MINGW_BUILD.sh
Python 2.7.16
Python 2 version
Xpra 2.5-r22124M (64-bit)
* Cleaning ./dist output directory
* Building CUDA kernels
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
* Building Python 2 Cython modules
* Running unit tests
* Generating installation directory
ERROR: build failed, see win32 / cx_freeze-install.log:
    self.run_command (cmd)
  File "C: /msys64/mingw64/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/dist.py", line 305, in run
    self.run_command ('build_exe')
  File "C: /msys64/mingw64/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command (command)
  File "C: /msys64/mingw64/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/dist.py", line 219, in run
    freezer.Freeze ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/freezer.py", line 621, in Freeze
    self.finder = self._GetModuleFinder ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/freezer.py", line 340, in _GetModuleFinder
    finder.IncludeModule (name)
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/finder.py", line 651, in IncludeModule
    namespace = namespace)
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/finder.py", line 351, in _ImportModule
    raise ImportError ("No module named% r"% name)
ImportError: No module named 'pkg_resources._vendor.packaging'

Please tell me how to build Xpra for Windows.

Target OS: Windows 10 Why I want to build: I want to use Xpra 2.5, but on Windows I get the following error

2019-03-18 19: 42: 24,317 get_interface_info ({2970669E-9B18-4AF5-B3FC-05651DBEA9E2}) = {'adapter-type': 'Ethernet 802.3', 'caption': '[00000001] Intel (R) Ethernet] Connection (4) I219-V ',' description ':' Intel (R) Ethernet Connection (4) I219-V ',' id ': 1,' GUID ':' {2970669E-9B18-4AF5-B3FC-05651DBEA9E2} ',' index ': 1,' name ':' Intel (R) Ethernet Connection (4) I219-V ',' product-name ':' Intel (R) Ethernet Connection (4) I219-V ',' speed ': 1000000000}
2019-03-18 19: 42: 24,317 error preparing connection: local variable 'jitter' referenced before assignment
Traceback (most recent call last):
  File "E: \ Xpra \ trunk \ src / xpra / client / client_base.py", line 360, in send_hello
  File "E: \ Xpra \ trunk \ src / xpra / client / gtk_base / gtk_client_base.py", line 679, in make_hello
  File "E: \ Xpra \ trunk \ src / xpra / client / ui_client_base.py", line 353, in make_hello
  File "E: \ Xpra \ trunk \ src / xpra / client / mixins / network_state.py", line 96, in get_caps
UnboundLocalError: local variable 'jitter' referenced before assignment

This error seems to occur when the adapter name of Win32_NetworkAdapter contains Japanese. Because it can not be used with this, I would like to use Japanese-language support and build the built-in Xpra.

Sorry to trouble you, but please check



Wed, 10 Apr 2019 02:13:41 GMT - Antoine Martin: owner, description changed

Regarding ImportError: No module named 'pkg_resources._vendor.packaging', this is a bug in the MSYS2 distribution of setuptools: This error message is caused by a missing/broken Python setuptools package. (from No module named pkg_resources) You may want to re-install the package using pip as per ticket:678#comment:61. See also Msys2-users: pip3: ModuleNotFoundError: No module named 'pkg_resources'

As for UnboundLocalError: local variable 'jitter' referenced before assignment. This bug was corrected in r22109 and was included in the 2.5 release. Are you sure that you are using up-to-date packages? What is the exact package version? (ie: run xpra_cmd.exe --version)


Wed, 10 Apr 2019 02:13:53 GMT - Antoine Martin: component changed


Wed, 10 Apr 2019 04:18:16 GMT - ymatsuzaki:

Thank you for your reply. We are aware of the MSYS2 distribution bug. Also, regarding the log mentioned above, the version of Xpra at that time will be Xpra 2.5-r22124M (64-bit)

The latest update information has been obtained through SVN. The current version is Xpra 2.5.1-r22369M (64-bit)

I tried to execute MINGW_BUILD.sh again after this version is finished with the following error

Once I clean up Windows and executewiki/Building/MSWindows again, will it be possible to BUILD?

ymatsuzaki @ DESKTOP-C8I8FRJ MINGW64 /C/Users/black/Documents/Xpra/tags/v2.5.x/src
$ bash win32 / MINGW_BUILD.sh
Python 2.7.16
Python 2 version
Xpra 2.5.1-r22369M (64-bit)
* Cleaning ./dist output directory
* Building CUDA kernels
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
* Building Python 2 Cython modules
* Running unit tests
* Generating installation directory
ERROR: build failed, see win32 / cx_freeze-install.log:
    self.run_command (cmd)
  File "C: /msys64/mingw64/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/dist.py", line 305, in run
    self.run_command ('build_exe')
  File "C: /msys64/mingw64/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command (command)
  File "C: /msys64/mingw64/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/dist.py", line 219, in run
    freezer.Freeze ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/freezer.py", line 621, in Freeze
    self.finder = self._GetModuleFinder ()
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/freezer.py", line 340, in _GetModuleFinder
    finder.IncludeModule (name)
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/finder.py", line 651, in IncludeModule
    namespace = namespace)
  File "C: /msys64/mingw64/lib/python2.7/site-packages/cx_Freeze/finder.py", line 351, in _ImportModule
    raise ImportError ("No module named% r"% name)
ImportError: No module named 'pkg_resources._vendor.packaging'

Wed, 10 Apr 2019 04:28:41 GMT - Antoine Martin:

We are aware of the MSYS2 distribution bug.

Then why aren't you fixing it as per the instructions I gave you?

Also, regarding the log mentioned above, the version of Xpra at that time will be "Xpra 2.5-r22124M (64-bit)"

You should be using the current stable version of xpra from the download area, which is newer than that and does not have the bug that you are having problems with.

(..) I tried to execute MINGW_BUILD.sh again after this version is finished with the following error ImportError?: No module named 'pkg_resources._vendor.packaging'

That same error again. See comment:1 and fix setuptools then things will build just fine.


Wed, 10 Apr 2019 06:02:03 GMT - ymatsuzaki:

We are aware of the MSYS2 distribution bug.

Perhaps the content you want to convey is not well translated. English may be strange because it uses Google translation, but please forgive me

I tried to execute MINGW_BUILD.sh again after this version is finished with the following error ImportError ?: No module named 'pkg_resources._vendor.packaging'

About this, but in detail, is this ticket? → #2033 I applied now and tried.

As a result of the adaptation error content changes, it becomes below What's missing from there?

We apologize for any inconvenience but thank you in advance.

ymatsuzaki @ DESKTOP-C8I8FRJ MINGW64 /C/Users/black/Documents/Xpra/tags/v2.5.x/src
$ bash win32 / MINGW_BUILD.sh
Python 2.7.16
Python 2 version
Xpra 2.5.1-r22369M (64-bit)
* Cleaning ./dist output directory
* Building CUDA kernels
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
The system can not find the path specified.
* Building Python 2 Cython modules
* Running unit tests
* Generating installation directory
mv: can not stat 'lib / nacl / libsodium * dll': No such file or directory
* Generating gdk pixbuf loaders.cache
* Generating HTML Manual Page
* Adding TortoisePlink
* Adding OpenSSH
cp: can not stat '/usr/bin/msys-hcrypto*.dll': No such file or directory
* Creating the installer using InnoSetup
InnoSetup error-see win32 / innosetup.log:
Copyright (C) 1997-2018 Jordan Russell. All rights reserved.
Portions Copyright (C) 2000-2018 Martijn Laan
Compiler engine version: Inno Setup 5.6.1 (a)
Parsing [Setup] section, line 2
Parsing [Setup] section, line 3
Parsing [Setup] section, line 4
Parsing [Setup] section, line 5
Parsing [Setup] section, line 6
Parsing [Setup] section, line 7
Parsing [Setup] section, line 8
Parsing [Setup] section, line 9
Parsing [Setup] section, line 10
Parsing [Setup] section, line 11
Parsing [Setup] section, line 12
Parsing [Setup] section, line 13
Parsing [Setup] section, line 14
Error on line 14 in C: \ Users \ black \ Documents \ Xpra \ tags \ v2.5.x \ src \ xpra.iss: Unrecognized [Setup] section directive "// Compression"
Compile aborted.

Wed, 10 Apr 2019 07:09:54 GMT - Antoine Martin:

mv: can not stat 'lib / nacl / libsodium * dll': No such file or directory

libsodium should have been installed as a dependency of paramiko, I've added it to the setup script in r22370, you should install it by hand.

cp: can not stat '/usr/bin/msys-hcrypto*.dll': No such file or directory

Same for openssh: heimdal-libs should have been installed, also added in r22370, you can install it by hand.

Error on line 14 in C: \ Users \ black \ Documents \ Xpra \ tags \ v2.5.x \ src \ xpra.iss: Unrecognized [Setup] section directive "// Compression"

Please build trunk revision r22371 or later (this change prevents the src\xpra.iss file from being removed so we can inspect it) and attach the src\xpra.iss file to this ticket. There must be some kind of a syntax error in that file, it is generated during the build. (and this works fine on all my build systems).


Thu, 11 Apr 2019 01:04:57 GMT - ymatsuzaki:

mv: can not stat 'lib / nacl / libsodium * dll': No such file or directory

libsodium should have been installed as a dependency of paramiko, I've added it to the setup script in r22370, you should install it by hand.

cp: can not stat '/usr/bin/msys-hcrypto*.dll': No such file or directory

Same for openssh: heimdal-libs should have been installed, also added in r22370, you can install it by hand.

Regarding the above two points, the error no longer occurs when installing "Xpra_Setup_2.5-r22135.exe" to the work directory

Error on line 14 in C: \ Users \ black \ Documents \ Xpra \ tags \ v2.5.x \ src \ xpra.iss: Unrecognized [Setup] section directive " Compression"

Please build trunk revision r22371 or later (this change prevents the src\xpra.iss file from being removed so we can inspect it) and attach the src\xpra.iss file to this ticket. There must be some kind of a syntax error in that file, it is generated during the build. (and this works fine on all my build systems).

I understand. "Xpra.iss" file is attached

By the way, if you execute "MINGW_BUILD.sh" again in the current environment, it will be the following

# bash win32/MINGW_BUILD.sh
Python 2.7.16
Python2 version
Xpra 2.5.1-runknownM (64-bit)
* Cleaning ./dist output directory
* Building CUDA kernels
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
* Building Python 2 Cython modules
* Running unit tests
* Generating installation directory
* Generating gdk pixbuf loaders.cache
* Generating HTML Manual Page
* Adding TortoisePlink
* Adding OpenSSH
* Creating the installer using InnoSetup
InnoSetup error - see win32/innosetup.log:
Copyright (C) 1997-2018 Jordan Russell. All rights reserved.
Portions Copyright (C) 2000-2018 Martijn Laan
Compiler engine version: Inno Setup 5.6.1 (a)
Parsing [Setup] section, line 2
Parsing [Setup] section, line 3
Parsing [Setup] section, line 4
Parsing [Setup] section, line 5
Parsing [Setup] section, line 6
Parsing [Setup] section, line 7
Parsing [Setup] section, line 8
Parsing [Setup] section, line 9
Parsing [Setup] section, line 10
Parsing [Setup] section, line 11
Parsing [Setup] section, line 12
Parsing [Setup] section, line 13
Parsing [Setup] section, line 14
Error on line 14 in C:\Users\black\Documents\Xpra\tags\v2.5.x-Copy\src\xpra.iss: Unrecognized [Setup] section directive "//Compression"
Compile aborted.

Thu, 11 Apr 2019 01:05:58 GMT - ymatsuzaki: attachment set

"Xpra.iss" when BUILD fails


Thu, 11 Apr 2019 02:35:19 GMT - Antoine Martin:

The file looks just fine. Maybe newer versions of innosetup don't like finding comments starting with //. You can try removing all the comments starting with // in the original file found in win32\xpra.iss. Does that help?


Thu, 11 Apr 2019 06:33:23 GMT - ymatsuzaki:

Removed all comments out // of "xpra.iss" and executed "MINGW_BUILD.sh" and proceeded! However, if you install using the installer created at this time, you will get an error like attached file

Are there any missing places after that?

ymatsuzaki@DESKTOP-C8I8FRJ MINGW64 /C/Users/black/Documents/Xpra/tags/v2.5.x-Copy/src
# bash win32/MINGW_BUILD.sh
Python 2.7.16
Python2 version
Xpra 2.5.1-runknownM (64-bit)
* Cleaning ./dist output directory
* Building CUDA kernels
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
* Building Python 2 Cython modules
* Running unit tests
* Generating installation directory
* Generating gdk pixbuf loaders.cache
* Generating HTML Manual Page
* Adding TortoisePlink
* Adding OpenSSH
* Creating the installer using InnoSetup
* Signing EXE
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
signtool command failed, see win32/signtool.log:
-rwxr-xr-x 1 ymatsuzaki なし 50347962 Apr 11 14:34 Xpra-x86_64_Setup_2.5.1-runknownM.exe
* Finished - running the new installer

Thu, 11 Apr 2019 06:34:12 GMT - ymatsuzaki: attachment set


Thu, 11 Apr 2019 07:02:37 GMT - Antoine Martin:

However, if you install using the installer created at this time, you will get an error like attached file

Try r22373. This crypto lib is only used by openssh, if we don't bundle it (BUNDLE_OPENSSH=0 set by the patch) then it should not be installed and the error should go away.


Thu, 11 Apr 2019 08:14:13 GMT - ymatsuzaki:

After executing "r22373", the installer created when executed with MINGW_SETUP.sh was successfully installed! thank you very much


Thu, 11 Apr 2019 10:05:09 GMT - Antoine Martin: status changed; resolution set

Backport to v2.5 in r22374.


Fri, 12 Apr 2019 15:34:08 GMT - totaamwin32:

This was causing problems on my build system, so r22379 reverts some of those changes.


Sat, 23 Jan 2021 05:46:40 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2268