March 15

Что токое Qt Framework

Если вы занимались разработкой на C++ то точно знаете что такое Qt Framework. С недавних пор компания которая им владеет заблокировала доступ ко всем своим продуктам и обновлениям c территории РФ. Рассказываю что делать с мнением этой замечательной компании, куда его надеть и в какую сторону вращать.

Невозможный скриншот, по мнению компании QT (Trolltech)

Чуханские страсти

Сей недружественный шаг создал проблемы в основном лишь простым смертным разработчикам и мелким студиям, поскольку фреймворк Qt успел стать стандартом «де-факто» для небольших проектов на C++ за последние 10 лет, заменив собой знаменитый Delphi.

Фриланс, аутсорс, заказная разработка — вот это все.

Разумеется крупные компании в РФ тоже его использовали и используют, но имея куда более серьезные ресурсы, они развернули локальную сборку Qt и всего инструментария из исходников, встроив этот процесс в свою инфраструктуру.

Да, если вы еще не поняли — «Qt Framework» это опенсорс, исходный код открыт, налетай собирай на здоровье.

Если у вас есть достаточный ресурс, то именно так и стоит поступить в нынешних реалиях — собирать из исходников весь проект Qt целиком. Особенно если речь про крупный или государственный проект.

Но к сожалению для небольшого домашнего проекта (а их невероятно много на этом фреймворке) затраты на сборку всего этого цирка c конями Qt вместе с модулями и средой разработки «QtCreator» слишком высоки, поэтому придется ставить готовую сборку.

Linux/BSD

Все описанное ниже актуально в первую очередь для разработки на Windows, поскольку для Linux/BSD и фреймворк Qt и его средства разработки собираются и поддерживаются силами ментейнеров дистрибутивов, без участия компании «Qt Company» (Trolltech) и ее #банутого мнения по поводу санкционной политики.

Нормальные герои всегда идут в обход

Думаю стоит показать как выглядит блокировка, для осознания всей глубины падения этой замечательной некогда компании.

Если вы откроете сайт компании QT с территории РФ, увидите примерно такое:

Видите ссылки на скачивание? Или хотя-бы предупреждение для РФ? Или официалное объявление? Ничего нет, просто тихий бан.

А вот так сайт выглядит через европейский или американский прокси:

Вот такое западло.

При всем этом у Qt было и есть очень большое русскоязычное коммьюнити и множество контрибьюторов из РФ, годами вносивших правки и доработки в фреймворк.

Но как видите долбо#бизм неизлечим:

Напоминаю, компания QT Company (Trolltech) — не государственная, не имеет отношения к политике и точно не того масштаба чтобы подвергаться каким-либо гонениям со стороны общества за контакты с РФ.

Это не Фейсбук/Мета а просто небольшая ИТ-компания (по меркам отрасли), выстроенная вокруг одного проекта.

Поэтому все их действия — их личная инициатива.

Another Qt installer(aqt)

Разумеется что я такой не один и уже написаны подробные руководства для обхода всех этих «чуханских недосанкций», откуда и было взято несколько идей. Лучшим вариантом для небольших частных проектов по моему скромному мнению является использование утилиты aqtinstall:

This is a utility alternative to the official graphical Qt installer, for using in CI environment where an interactive UI is not usable, or just on command line. It can automatically download prebuilt Qt binaries, documents and sources for target specified, when the versions are on Qt download mirror sites.

Если кратко и по-русски, то с помощью этой штуки осуществляется автоматическое развертывание сред разработки Qt в виртуализированных средах (Docker ага), но мы ее будем использовать для более коварных целей.

Установка

Утилита aqt написана на Python, поэтому для работы на Windows его (Python) еще нужно будет установить. Хотя это действие не представляет каких-либо проблем:

просто скачиваете с официального сайта инсталлятор и запускаете.

Проверьте только что Python доступен из окружения:

Дальше с помощью пакетного менеджера pip (он присутствует в официальных сборках Python для Windows по-умолчанию) устанавливаете саму aqt:

pip install aqtinstall

После установки должна быть доступна команда aqt из консоли:

Следующим шагом является настройка альтернативных зеркал с пакетами Qt, поскольку официальные зеркала тоже заблокированы с территории РФ.

Создаете файл aqt.cfg с вот таким содержанием:

[aqt]
baseurl: https://qt-mirror.dannhauer.de/

[requests]
max_retries_on_checksum_error: 1
max_retries_to_retrieve_hash: 1
INSECURE_NOT_FOR_PRODUCTION_ignore_hash: True

[mirrors]
fallbacks:
    https://mirrors.ocf.berkeley.edu/qt
    https://qt.mirror.constant.com/
    https://ftp.acc.umu.se/mirror/qt.io/qtproject/
    https://qtproject.mirror.liquidtelecom.com/
    https://ftp.jaist.ac.jp/pub/qtproject
    http://ftp1.nluug.nl/languages/qt
    https://mirrors.dotsrc.org/qtproject
    https://mirror.yandex.ru/mirrors