Qt-5-Binary-Installers: Difference between revisions
No edit summary |
AutoSpider (talk | contribs) (Convert ExpressionEngine section headers) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{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 | == 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. | |||
=== SRC 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 | 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 === | ||
Line 17: | Line 18: | ||
qt5-beta-bin-win7 ( MSVC2010) | 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 ( | 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_32_release/ | ||
linux_64_release/ | linux_64_release/ | ||
Line 24: | Line 25: | ||
This is to match the configurations in the final step. | This is to match the configurations in the final step. | ||
The mac and linux are built with simple builds scripts ( scripts are in | 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 === | ||
Line 36: | Line 37: | ||
qt5-beta-bin-installer-mac | 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 | 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 ( | 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.