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](https://travis-ci.org/hasboeuf/cuteci.svg?branch=master)](https://travis-ci.org/hasboeuf/cuteci)

CuteCI is a simple tool allowing you to install Qt 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` has been tested with Qt installer `5.9.7` `5.10.1` `5.11.3` `5.12.2`.

## 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.

### List packages

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

Will output:

```bash
===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

```bash
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:

```bash
FROM ubuntu:18.04

RUN apt-get update && apt-get install -y --no-install-recommends \
libdbus-1-3 \
xvfb \
libfontconfig \
python3 \
python3-pip

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.2.0.tar.gz (6.0 kB view hashes)

Uploaded Source

Built Distribution

cuteci-1.2.0-py3-none-any.whl (9.0 kB view hashes)

Uploaded Python 3

Supported by

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