Qt-5-Binary-Installers: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(Convert ExpressionEngine section headers)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Re-creating Qt5 binary installers==
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


Following describes current process of creating binary installers out of Qt5. Currently binary installers are created by Jenkins CI in http://builds.qt.io ''[builds.qt.io]'' and published in http://releases.qt.io/qt5.0/beta-snapshots/ ''[releases.qt.io]''. The binary installer is create din three steps: src packages, qt5 build and finally creating the installers.
== Re-creating Qt5 binary installers ==
Following describes current process of creating binary installers out of Qt5. Currently binary installers are created by Jenkins CI in [http://builds.qt.io http://builds.qt.io] and published in [http://releases.qt.io/qt5.0/beta-snapshots/ http://releases.qt.io/qt5.0/beta-snapshots/]. The binary installer is create din three steps: src packages, qt5 build and finally creating the installers.


===<span class="caps">SRC</span> packages===
=== SRC packages ===


Source packages are created with qt-5.0-src-snapshot job, which is the kicking the remaining steps. It creates the src packages with the [https://qt.gitorious.org/qtsdk/qtsdk/blobs/master/release-tools/mksrc.sh mksrc.sh] ''[qt.gitorious.org]'' script (can be found from [https://qt.gitorious.org/qtsdk/qtsdk qtsdk] ''[qt.gitorious.org]'') and publishes those to http://releases.qt.io/qt5.0/beta-snapshots/ ''[releases.qt.io]''. Job also publishes the 7z and zip packages as build artifacts locally as well as ci_info.txt file. The src job is started by git commit in qt5 repo, changes are checked twice per day (at 7 am and pm).
Source packages are created with qt-5.0-src-snapshot job, which is the kicking the remaining steps. It creates the src packages with the [https://qt.gitorious.org/qtsdk/qtsdk/blobs/master/release-tools/mksrc.sh mksrc.sh] script (can be found from [https://qt.gitorious.org/qtsdk/qtsdk qtsdk]) and publishes those to [http://releases.qt.io/qt5.0/beta-snapshots/ http://releases.qt.io/qt5.0/beta-snapshots/]. Job also publishes the 7z and zip packages as build artifacts locally as well as ci_info.txt file. The src job is started by git commit in qt5 repo, changes are checked twice per day (at 7 am and pm).


===Build loops===
=== Build loops ===


Once the src job finishes successfully, it will start following build loops:<br /> qt5-beta-bin-osx ( Clang on top Lion)<br /> qt5-beta-bin-ubuntu1110-32<br /> qt5-beta-bin-ubuntu1110-64<br /> qt5-beta-bin-ubuntu1204-32<br /> qt5-beta-bin-ubuntu1204-64<br /> qt5-beta-bin-win7 ( MSVC2010)
Once the src job finishes successfully, it will start following build loops:
qt5-beta-bin-osx ( Clang on top Lion)
qt5-beta-bin-ubuntu1110-32
qt5-beta-bin-ubuntu1110-64
qt5-beta-bin-ubuntu1204-32
qt5-beta-bin-ubuntu1204-64
qt5-beta-bin-win7 ( MSVC2010)


All of those builds the locally published qt5 source package and copies the created bins with ci_info.txt from previous step to 7z file, which is then again pushed to releases.qt.io (http://releases.qt.io/qt5.0-beta-snapshots/ ''[releases.qt.io]''). Each 7z is stored to platform specific dir:<br /> linux_32_release/<br /> linux_64_release/<br /> mac_64_release/<br /> win_release/<br /> This is to match the configurations in the final step.
All of those builds the locally published qt5 source package and copies the created bins with ci_info.txt from previous step to 7z file, which is then again pushed to releases.qt.io ([http://releases.qt.io/qt5.0-beta-snapshots/ http://releases.qt.io/qt5.0-beta-snapshots/]). Each 7z is stored to platform specific dir:
linux_32_release/
linux_64_release/
mac_64_release/
win_release/
This is to match the configurations in the final step.


The mac and linux are built with simple builds scripts ( scripts are in [https://qt.gitorious.org/qtsdk/qtsdk/trees/master/release-tools qtsdk/release-tools] ''[qt.gitorious.org]''). Linux is built as shadow build, each module separately (make and make install). Mac is built as in-src each module separately. At the moment the configuration is such, that if one submodule fails the build keeps going. After the build, binaries and all installed artifacts are copied to 7z which is uploaded to release.qt.io.
The mac and linux are built with simple builds scripts ( scripts are in [https://qt.gitorious.org/qtsdk/qtsdk/trees/master/release-tools qtsdk/release-tools]). Linux is built as shadow build, each module separately (make and make install). Mac is built as in-src each module separately. At the moment the configuration is such, that if one submodule fails the build keeps going. After the build, binaries and all installed artifacts are copied to 7z which is uploaded to release.qt.io.


===Binary installers===
=== Binary installers ===


Once the bin loops finishes successfully, it will initiate the final loop. At the moment each build loop has its counterpart as installer loop:<br /> qt5-beta-bin-installer-ubuntu1110-32<br /> qt5-beta-bin-installer-ubuntu1110-64<br /> qt5-beta-bin-installer-ubuntu1204-32<br /> qt5-beta-bin-installer-ubuntu1204-64<br /> qt5-beta-bin-installer-win7-msvc2010<br /> qt5-beta-bin-installer-mac
Once the bin loops finishes successfully, it will initiate the final loop. At the moment each build loop has its counterpart as installer loop:
qt5-beta-bin-installer-ubuntu1110-32
qt5-beta-bin-installer-ubuntu1110-64
qt5-beta-bin-installer-ubuntu1204-32
qt5-beta-bin-installer-ubuntu1204-64
qt5-beta-bin-installer-win7-msvc2010
qt5-beta-bin-installer-mac


Each one of those will get the binary 7z file from the [http://releases.qt.io/qt5.0-beta-snapshots/<os_bit>_release http://releases.qt.io/qt5.0-beta-snapshots/&lt;os_bit&gt;_release] dir and src zip from the http://releases.qt.io/qt5.0/beta-snapshots ''[releases.qt.io]''. The location is configured in <span class="caps">SDK</span> creation scripts.
Each one of those will get the binary 7z file from the http://releases.qt.io/qt5.0-beta-snapshots/<os_bit>_release dir and src zip from the [http://releases.qt.io/qt5.0/beta-snapshots http://releases.qt.io/qt5.0/beta-snapshots]. The location is configured in SDK creation scripts.


The jobs above are currently relying on pre-built installer framework binaries (http://releases.qt.io/utils/bin_tools/pre_sdk_ifw/ ''[releases.qt.io]'') and binary installer python scripts which are in [https://qt.gitorious.org/qtsdk/qtsdk/trees/master/release-tools qtsdk/release-tools/] ''[qt.gitorious.org]''.
The jobs above are currently relying on pre-built installer framework binaries ([http://releases.qt.io/utils/bin_tools/pre_sdk_ifw/ http://releases.qt.io/utils/bin_tools/pre_sdk_ifw/]) and binary installer python scripts which are in [https://qt.gitorious.org/qtsdk/qtsdk/trees/master/release-tools qtsdk/release-tools/].


As a final step, we read the ci_info.txt from the downloaded bin package and upload the installer into same dir with the matching src packages.
As a final step, we read the ci_info.txt from the downloaded bin package and upload the installer into same dir with the matching src packages.

Latest revision as of 16:12, 5 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Re-creating Qt5 binary installers

Following describes current process of creating binary installers out of Qt5. Currently binary installers are created by Jenkins CI in http://builds.qt.io and published in http://releases.qt.io/qt5.0/beta-snapshots/. The binary installer is create din three steps: src packages, qt5 build and finally creating the installers.

SRC packages

Source packages are created with qt-5.0-src-snapshot job, which is the kicking the remaining steps. It creates the src packages with the mksrc.sh script (can be found from qtsdk) and publishes those to http://releases.qt.io/qt5.0/beta-snapshots/. Job also publishes the 7z and zip packages as build artifacts locally as well as ci_info.txt file. The src job is started by git commit in qt5 repo, changes are checked twice per day (at 7 am and pm).

Build loops

Once the src job finishes successfully, it will start following build loops: qt5-beta-bin-osx ( Clang on top Lion) qt5-beta-bin-ubuntu1110-32 qt5-beta-bin-ubuntu1110-64 qt5-beta-bin-ubuntu1204-32 qt5-beta-bin-ubuntu1204-64 qt5-beta-bin-win7 ( MSVC2010)

All of those builds the locally published qt5 source package and copies the created bins with ci_info.txt from previous step to 7z file, which is then again pushed to releases.qt.io (http://releases.qt.io/qt5.0-beta-snapshots/). Each 7z is stored to platform specific dir: linux_32_release/ linux_64_release/ mac_64_release/ win_release/ This is to match the configurations in the final step.

The mac and linux are built with simple builds scripts ( scripts are in qtsdk/release-tools). Linux is built as shadow build, each module separately (make and make install). Mac is built as in-src each module separately. At the moment the configuration is such, that if one submodule fails the build keeps going. After the build, binaries and all installed artifacts are copied to 7z which is uploaded to release.qt.io.

Binary installers

Once the bin loops finishes successfully, it will initiate the final loop. At the moment each build loop has its counterpart as installer loop: qt5-beta-bin-installer-ubuntu1110-32 qt5-beta-bin-installer-ubuntu1110-64 qt5-beta-bin-installer-ubuntu1204-32 qt5-beta-bin-installer-ubuntu1204-64 qt5-beta-bin-installer-win7-msvc2010 qt5-beta-bin-installer-mac

Each one of those will get the binary 7z file from the http://releases.qt.io/qt5.0-beta-snapshots/<os_bit>_release dir and src zip from the http://releases.qt.io/qt5.0/beta-snapshots. The location is configured in SDK creation scripts.

The jobs above are currently relying on pre-built installer framework binaries (http://releases.qt.io/utils/bin_tools/pre_sdk_ifw/) and binary installer python scripts which are in qtsdk/release-tools/.

As a final step, we read the ci_info.txt from the downloaded bin package and upload the installer into same dir with the matching src packages.