def freeze_fedora(extra_pyinstaller_args=None, debug=False): freeze_linux(extra_pyinstaller_args, debug) # Force Fedora to use the system's Gnome libraries. This avoids warnings # when starting the app on the command line. remove_shared_libraries('libgio-2.0.so.*', 'libglib-2.0.so.*') # Fix for Fedora 29: remove_shared_libraries('libfreetype.so.*')
def freeze_arch(): freeze_linux() # Our apps normally ship with eg. libQt5Core.so.5. This loads other .so # files, if present, from /usr/lib. If those libraries are Qt libraries of a # different Qt version, errors occur. # For this reason, on systems with pacman, we don't include Qt. Instead, we # declare it as a dependency and leave it up to pacman to fetch it. remove_shared_libraries('libicudata.so.*', 'libQt*.so.*')
def freeze_fedora(debug=False): freeze_linux(debug) # Force Fedora to use the system's Gnome libraries. This avoids warnings # when starting the app on the command line. remove_shared_libraries('libgio-2.0.so.*', 'libglib-2.0.so.*') # Fixes for Fedora 29: remove_shared_libraries('libfreetype.so.*', 'libssl.so.*') # PyInstaller 3.4 includes the library below when on Python 3.6. # (Interestingly, it does not package it on Python 3.5.) This leads to a lot # of Fontconfig-related errors when starting the frozen app. Further, # starting the app takes ages. Removing the library fixes this: remove_shared_libraries('libfontconfig.so.*')
def freeze_ubuntu(debug=False): freeze_linux(debug) # When we build on Ubuntu on 14.04 and run on 17.10, the app fails to start # with the following error: # # > This application failed to start because it could not find or load the # > Qt platform plugin "xcb" in "". Available platform plugins are: # > eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb. # # Interestingly, the error does not occur when building on Ubuntu 16.04. # The difference between the two build outputs seems to be # libgpg-error.so.0. Removing it fixes the problem: remove_shared_libraries('libgpg-error.so.*') # libgtk-3.so is present on every Ubuntu system. Make sure we don't ship it # to avoid incompatibilities. In particular, running the frozen app with # libgtk-3.so from Ubuntu 14 on Ubuntu 16 produces many Gtk warnings # "Theme parsing error". remove_shared_libraries('libgtk-3.so.*') # We also don't want to ship libgio-2.0.so because it is usually present. # What's more, if we ship libgio without libgtk, then segmentation faults # occur when freezing on Ubuntu 14 and running on Ubuntu 16. The reason for # this is that libgio depends on libgtk. Because we don't ship libgtk, this # loads the user's libgtk, which is incompatible between Ubuntu 14 and 16. remove_shared_libraries('libgio-2.0.so.*')