Skip to main content

CuteCI is a simple tool allowing you to install Qt with desired packages in headless mode.

Project description

CuteCI

Build Status PyPI version License

CuteCI is a simple tool allowing you to install Qt framework with desired packages in headless mode. Qt installers are using Qt Installer Framework which provides scripting ability, CuteCI takes advantage of this.

Requirements

  • Python3 pip3
  • cuteci is in Python but has only been tested on Ubuntu (+docker).
  • cuteci is tested with latest patch version of Qt 5.9 5.12 5.13, 5.14 (5.10 5.11 are not online anymore).

Installation

pip3 install cuteci

Principle

cuteci does few things:

  • Download Qt installer if you pass an url
  • Make installer executable
  • Install Qt with desired packages in the directory you choose

cuteci can also only lists packages available in the installer.

Usage

Common options:

  • --installer (required): path or url to Qt installer. If url, choose an official one from download.qt.io/official_releases/qt/, this is because md5sums.txt is retrieved implicitely from it.
  • --ui: if set, Qt installer UI is shown (useful for debugging).
  • --rm: if set, Qt installer is removed at the end.
  • --timeout: duration in seconds to wait for the operation to be finished.

List packages

cuteci \
    --installer <path or official url> \
    [--ui] [--rm] \
    list

Will output:

===LIST OF PACKAGES===
qt    Qt
qt.qt5.5122    Qt 5.12.2
qt.tools    Developer and Designer Tools
qt.installer.changelog    Qt Installer Changelog
qt.license.lgpl    Qt License LGPL
qt.license.thirdparty    Qt 3rd Party Licenses
qt.license.python    Python Software Foundation License Version 2
qt.license.gplv3except    License GPL3-EXCEPT
qt.qt5.5122.gcc_64    Desktop gcc 64-bit
qt.qt5.5122.android_x86    Android x86
qt.qt5.5122.android_arm64_v8a    Android ARM64-v8a
qt.qt5.5122.android_armv7    Android ARMv7
...
===END OF PACKAGES===

Install

cuteci \
    --installer <path or official url> \
    [--ui] [--rm] \
    install \
    --destdir /opt/Qt \
    --packages qt.qt5.5122.gcc_64,qt.qt5.5122.android_x86 \
    [--verbose] [--keep-tools]

Notes

  • destdir should not contain a previous Qt installation (unless it has been installed with cuteci), otherwise installer will complain and script does not handle it.
  • If --keep-tools is set, QtCreator, Maintenance Tools, samples and doc will be kept, but you will not be able to install another version of Qt in destdir.

Docker integration

Here is the sample of a minimalist Dockerfile using cuteci to install Qt 5.12.2:

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y --no-install-recommends \
    libdbus-1-3 \
    xvfb \
    libfontconfig \
    python3 \
    python3-pip
    # For some reason Qt installer 5.12 requires:
    libxrender1 \
    libxkbcommon-x11-0

RUN pip3 install cuteci && \
    cuteci \
        --rm \
        --installer http://download.qt.io/official_releases/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run \
        install \
        --destdir /opt/Qt \
        --packages qt.qt5.5122.gcc_64

ENTRYPOINT ["/bin/bash"]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cuteci-1.5.0.tar.gz (7.0 kB view details)

Uploaded Source

File details

Details for the file cuteci-1.5.0.tar.gz.

File metadata

  • Download URL: cuteci-1.5.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/2.7.12

File hashes

Hashes for cuteci-1.5.0.tar.gz
Algorithm Hash digest
SHA256 043933fa74babc4634356ca973979b09b42d2cc31e2c20bc4eb6615fb3244aea
MD5 71fea1313719d550f9f522e49ff89e43
BLAKE2b-256 94eb7fe966de7eab64630d18bae8e7a0174cdf349cb5ee7a8f1d171920304b7e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page