Skip to content
Snippets Groups Projects
  • Amin Bandali's avatar
    c26393df
    build: Update for Qt 6, add --no-webengine switch, add Parabola. · c26393df
    Amin Bandali authored
    * build.py (QT5_VERSION):
    (write_qt_conf): Remove (vestigial and not used anymore).
    (PACMAN_BASED_DISTROS): Add parabola.
    (ZYPPER_DEPENDENCIES):
    (ZYPPER_CLIENT_QT_DEPENDENCIES):
    (DNF_DEPENDENCIES):
    (DNF_CLIENT_QT_DEPENDENCIES):
    (APT_DEPENDENCIES):
    (APT_CLIENT_QT_DEPENDENCIES):
    (PACMAN_DEPENDENCIES):
    (PACMAN_CLIENT_QT_DEPENDENCIES):
    (OSX_DEPENDENCIES):
    (OSX_DEPENDENCIES_UNLINK): Update dependency list for Qt 6, and move
    lrc dependencies into client dependency lists.
    (ZYPPER_QT_WEBENGINE):
    (DNF_QT_WEBENGINE):
    (APT_QT_WEBENGINE):
    (PACMAN_QT_WEBENGINE): Move Qt WebEngine pacakge(s) into separate
    list, so that they can be conditionally included or excluded.
    (run_dependencies): Install daemon dependencies earlier than and
    separately from lrc and client dependencies, mainly so that the
    installation of daemon dependencies could still succeed on distros
    that don't currently have Qt 6 packaged.
    (run_dependencies):
    (run_install):
    (run_uninstall):
    (run_run):
    (main)
    (parse_args): Add new --gnome switch, only use client-gnome when
    this switch is given.  Add new --macos switch, only use client-macos
    when this switch is given.  Otherwise, default to using client-qt.
    Add new --no-webengine switch, disable using Qt WebEngine when this
    switch is given.  Remove vestigial --qtver switch not used anymore.
    Also, replace a few mentions of "Ring" with "Jami" in strings.
    (validate_args): Test for minimum version of Windows 10 and do not
    require an exact match/equality.
    
    * scripts/build-windows.py (build_lrc):
    (build_client):
    (parsed_args): Remove vestigial and unneeded --qtver switch and its
    corresponding variable.  Both make-lrc.py and make-client.py scripts
    in their corresponding repositories have an up-to-date default Qt
    version number, and specifying the version from this script is both
    unnecessary and defeats their purpose.
    
    * scripts/install.sh (QT6_MIN_VER): Rename to QT_MIN_VER.
    (qt6ver): Remove, not used anymore.
    (qt6path): Rename to qtpath.
    (sys_qt6ver): Rename to sys_qtver.
    (installed_qt6ver): Rename to installed_qtver.
    (required_qt6ver): Rename to required_qtver.
    (enable_webengine): New variable for tracking whether or not to use
    Qt WebEngine.  Defaults to true.
    (getopts): Add w option; when given, set enable_webengine to false.
    (client_cmake_flags): Set -DWITH_WEBENGINE="${enable_webengine}".
    
    Note: as of the time of this commit, QLibraryInfo from the qt6-base
    package in Debian (and Ubuntu) currently has path issues and returns
    wrong paths, stemming from '/lib' being a symlink.  This leads to
    "Qt WebEngine resources not found" errors as the WebEngine tries to
    find its needed resources at a wrong location '/share/qt6/resources'.
    The issue has already been reported by others and a proposed patch to
    fix it by disabling Qt's relocatable feature is pending review:
    https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/1970057
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010575
    In the mean time, using './build.py --install --no-webengine' to build
    Jami without Qt WebEngine works.  Alternatively, using a custom build
    of Qt (such as our libqt-jami) that does not suffer from this issue
    would also work, using './build.py --install --qt=/usr/lib/libqt-jami'
    where '/usr/lib/libqt-jami' should be the prefix directory where the
    custom Qt build is installed.
    
    GitLab: #1434
    Change-Id: Ie053522de19b33871a1082ce46f3d36380a8b5aa
    c26393df
    History
    build: Update for Qt 6, add --no-webengine switch, add Parabola.
    Amin Bandali authored
    * build.py (QT5_VERSION):
    (write_qt_conf): Remove (vestigial and not used anymore).
    (PACMAN_BASED_DISTROS): Add parabola.
    (ZYPPER_DEPENDENCIES):
    (ZYPPER_CLIENT_QT_DEPENDENCIES):
    (DNF_DEPENDENCIES):
    (DNF_CLIENT_QT_DEPENDENCIES):
    (APT_DEPENDENCIES):
    (APT_CLIENT_QT_DEPENDENCIES):
    (PACMAN_DEPENDENCIES):
    (PACMAN_CLIENT_QT_DEPENDENCIES):
    (OSX_DEPENDENCIES):
    (OSX_DEPENDENCIES_UNLINK): Update dependency list for Qt 6, and move
    lrc dependencies into client dependency lists.
    (ZYPPER_QT_WEBENGINE):
    (DNF_QT_WEBENGINE):
    (APT_QT_WEBENGINE):
    (PACMAN_QT_WEBENGINE): Move Qt WebEngine pacakge(s) into separate
    list, so that they can be conditionally included or excluded.
    (run_dependencies): Install daemon dependencies earlier than and
    separately from lrc and client dependencies, mainly so that the
    installation of daemon dependencies could still succeed on distros
    that don't currently have Qt 6 packaged.
    (run_dependencies):
    (run_install):
    (run_uninstall):
    (run_run):
    (main)
    (parse_args): Add new --gnome switch, only use client-gnome when
    this switch is given.  Add new --macos switch, only use client-macos
    when this switch is given.  Otherwise, default to using client-qt.
    Add new --no-webengine switch, disable using Qt WebEngine when this
    switch is given.  Remove vestigial --qtver switch not used anymore.
    Also, replace a few mentions of "Ring" with "Jami" in strings.
    (validate_args): Test for minimum version of Windows 10 and do not
    require an exact match/equality.
    
    * scripts/build-windows.py (build_lrc):
    (build_client):
    (parsed_args): Remove vestigial and unneeded --qtver switch and its
    corresponding variable.  Both make-lrc.py and make-client.py scripts
    in their corresponding repositories have an up-to-date default Qt
    version number, and specifying the version from this script is both
    unnecessary and defeats their purpose.
    
    * scripts/install.sh (QT6_MIN_VER): Rename to QT_MIN_VER.
    (qt6ver): Remove, not used anymore.
    (qt6path): Rename to qtpath.
    (sys_qt6ver): Rename to sys_qtver.
    (installed_qt6ver): Rename to installed_qtver.
    (required_qt6ver): Rename to required_qtver.
    (enable_webengine): New variable for tracking whether or not to use
    Qt WebEngine.  Defaults to true.
    (getopts): Add w option; when given, set enable_webengine to false.
    (client_cmake_flags): Set -DWITH_WEBENGINE="${enable_webengine}".
    
    Note: as of the time of this commit, QLibraryInfo from the qt6-base
    package in Debian (and Ubuntu) currently has path issues and returns
    wrong paths, stemming from '/lib' being a symlink.  This leads to
    "Qt WebEngine resources not found" errors as the WebEngine tries to
    find its needed resources at a wrong location '/share/qt6/resources'.
    The issue has already been reported by others and a proposed patch to
    fix it by disabling Qt's relocatable feature is pending review:
    https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/1970057
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010575
    In the mean time, using './build.py --install --no-webengine' to build
    Jami without Qt WebEngine works.  Alternatively, using a custom build
    of Qt (such as our libqt-jami) that does not suffer from this issue
    would also work, using './build.py --install --qt=/usr/lib/libqt-jami'
    where '/usr/lib/libqt-jami' should be the prefix directory where the
    custom Qt build is installed.
    
    GitLab: #1434
    Change-Id: Ie053522de19b33871a1082ce46f3d36380a8b5aa
Code owners
Assign users and groups as approvers for specific file changes. Learn more.