| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Upgrade pylint package version in Pipfile to be compatible with 3.11.
Fix or ignore checks that no longer pass as result of this change.
Change-Id: I1b311a54d817e4f20879a32cf85de6e406817ce4
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When logging script output with pipe, also return with the original
exit code to avoid failing silently. The release_repo_updater.py script
should not continue if this happens.
Fixes: QTBUG-106022
Change-Id: I291ef04762680dd7bda7cb3f0c3addf6726fa6d4
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Move SFTP functionality sign_windows_installer -> read_remote_config
-Remove old functions for getting the remote .ini from an URL
-Add more generic functions to transfer files and read .ini configs
-Add command line options for new functionality
-Add unit tests for new functionality
-Avoid writing decrypted private key to file system
-Catch the new exception type PackagingError where relevant
Change-Id: I4b2c4341c2fc1795847fa0c193bcbc47869c61ad
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
| |
Log the output from the codesign tool.
Change verbosity level to 2 (3 made no difference).
Change-Id: Id1f26adc2884a004a0e795bc8ff2a13eeae0988b
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Fix regressions:
-Fix appending correct translation <locale>.qm file name
-Remove only </Package> or </Translations> tags from the line.
Log it when locales are skipped (Korean, Chinese, untranslated).
Change-Id: Ia2616c437e505908789dba1f3d5ff649c30bb92f
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
| |
The current script relied on realpath tool not available out of the
box on macOS and Windows. Since we need to run repository builds on
at least macOS in the future, it is better to have a Python script.
Change-Id: I3cfe3789b16cb4635e18bd20e0beaace8fafff8a
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
- make sign_windows_installer able to recurse directories
- pass the signing command to the Qt Creator build script
Task-number: QTCREATORBUG-25740
Task-number: QTCREATORBUG-28909
Change-Id: Idd2e96de36623833fc794cf5bee717b43b673efd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Python's macholib library did not recognize all types of Mach-O headers
Use 'file' utility to check for the file type instead.
There is also 'python-magic' library but it relies on 'libmagic' which
is not installed on macOS by default.
Change-Id: Ib300590969415a65c187f096a7b6c80e9e8f8715
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
| |
The signature seems to get lost for some items when using
the copy command from shutil.
Use ditto to preserve extended file attrs and signatures.
Change-Id: Ie220675fba56f59270054467c964a118da42a8cb
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
| |
Broken symlinks in content fail to resolve
Change-Id: I271ce6e3127835ed0c29a06a9cc5e5ed8077efec
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove unreliable file suffix checks, For example, ".so" files can
contain non-native code, so they don't have to be always signed.
Non-Mach-O executables and libraries seem to be treated as other data
by macOS code signing and notarization systems so we should ignore
those.
Change-Id: Ib203a25ab7fd321e182033f4eb5e97b0656dddbd
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
| |
Change-Id: Id3fe65e26c8abe14b7ff02f0010a8ff7b627bdd9
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
release_repo_updater.py (offline installers):
Previously, only the app bundle was signed prior notarization on macOS.
Codesign also the outer container (in this case, the .dmg disk image)
sign_installer.py (applies to online installers):
Accept any file types for signing (not just .app bundles).
Add CLI option to skip .dmg generation (--skip-dmg).
If .dmg creation is enabled, also sign the output .dmg container.
Task-number: QTBUG-112476
Change-Id: I26ef613d5eeb02da9115d6092631e107aec5784a
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
| |
Debug files are already stripped and processed during an
export. We don't need this functionality in packaging
anymore.
Change-Id: I7ce5aabdc7813ad01711ddf77e2aece946449d6d
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
| |
Change-Id: I89f76221c7752e13313c6e4eb37d2e4a7bec717d
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
| |
Allow parse_config to specify multiple task types e.g. IFW and QBSP.
Then tasks excluded by the filters get printed out only once.
Change-Id: I9b310227c1579425ae1edacdfb3809df2727058c
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Offline installer/Online repo content should be notarized
to avoid Gatekeeper issues on latest versions of macOS.
Before compressing the final payload component archives,
(re-)sign, notarize, and finally staple the relevant types of
nested install content before distribution. Steps will be
performed if '--notarize-payload' argument is passed onto
create_installer.py script or when 'notarize_payload' is
specified and set to yes|true|1 in the IFW task config.
Change-Id: Icb5c482674af9421fa08e58f4e27043a6766e5c7
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: I2f63521785625e39ac6ed65b9d09311de2cac168
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
| |
Allow specifying download uri for the lrelease tool binary from CLI.
Then we don't need to have this in the environment.
Change-Id: Ia95dbc49667b70f590a76ecdd90c66ee530e6d51
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add missing 'default' / 'required' options for arguments.
Fix error when generating help:
- ValueError: unsupported format character 'V' (0x56) at index 16
Set long path check for Windows systems only
Change-Id: If944735b0cc8df89ec11a7ac0d2723ddf46204e7
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify RPATH/RUNPATH patching functionality.
Make calculate_relpath() use pathlib.
Remove unreliable length check, chrpath fails with the error msg.
Improve unit tests, add some test ELF binaries.
Fix certain input not producing correct relative output paths.
Task-number: QTBUG-106027
Change-Id: I33f89f934215d456b428713471db1fe5d89abbd8
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: Id4ca869c36b68336429b7c2c8abc4e6a8dcfcbb8
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set HAVE_CLANG_REPL_SUPPORT to OFF, which fixes a linking error
with Visual C++ due to the high number of symbols (>65k)
Qt 6.4 has a different naming scheme.
Use ClangCodeModel plugin tests for the PGO training, which use
clangd.
Change-Id: I9c823d8bcdeaa8d7ce638624f6de285fc3fbf9c5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
|
|
| |
Enable additional passing checks: R0911, R0916
Fix too-many-nested-blocks and enable: R1702
Change-Id: If6853425a2b3a62409f6512cea585fca4d88eb03
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
| |
Generate and log the CLI arguments required to reproduce the task for
the create_installer.py script. This helps with testing builds locally.
Change-Id: If789516756524f47381811b08dfba0948a05436a
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a possibility to create an online repositories from QBSP files.
The QBSP file is basically a compressed repository. Utilize the
contents from the archive.
Introduce a "BuildStrategy" base class that defines an interface
to execute the "repository build". The existing functionality
maps to IFWRepoBuildStrategy i.e. when building the whole
repository from scratch. The QBSPRepoBuildStrategy defines a
new way to "build" the repository from an existing .qbsp file.
Adapt the release_task_reader.py to understand job configurations
for QBSP based repo contents.
Task-number: QTQAINFRA-5294
Change-Id: I0544ac21251d8f6eb80b4f6eac2f49af0a401919
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
- Switch os.path style paths -> pathlib.Path
- Switch move function: move_tree -> shutil.move
- Add missing unit tests
- Improve logging, error messages
- Add docstring
Change-Id: Ie8c0abe3af0163127dbfe2a016b0471bf9705b0a
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove unnecessary shutil.move for non-extractable payload,
download directly to install or data directory depending on the payload.
Add sanity check + test for duplicate archive names in a component.
We still need to use temporary directory with extractable payload, as
the source payload archives can have identical names.
Change-Id: Ia9b74d2ef6d718ae89266580b2d326a6ccf5b9e4
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
| |
Change minimum Python requirement to 3.6.2 reflecting the
current state of the repository. Make sure linter hook passes
on this version and fix some errors.
Change-Id: I4f569cbda286a2fc878f8d8e5de5d61890a7b301
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the debian_repo_release.py implements a client wrapper
for basic Debian repo operations we need a way to use these
opertions in a meaningful way to actually manage releases.
The first version of release_repo_updater_deb.py implements
a transaction to:
- create a repository
- populate the repository with content
- create snapshot
- publish the snapshot i.e. make it visible
The transaction is implemented as a command pattern so that
if any of the steps should fail an undo can be performed for
the executed steps in correct order.
Implement a function to crawl URL paths recursively to scan
for .deb package content in a concurrent way.
Implement a function to download given files concurrently
in chunks to minimize memory usage.
Add a test to create and publish a repo with test content
into filesystem endpoint using local Aptly server instance.
Task-number: QTIFW-2813
Change-Id: I6d5bf8ea0c066c35e7c0cfe407c81234327d5c8
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
| |
Offline tasks settings do not include 'repo_path'.
Change-Id: Icb8154cbc16ac5f254f1d2fbb4389baed920da2c
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When running release_repo_updater.py and create_installer.py scripts,
capture a summary of sdkcomponent validation errors during a dry run.
Task-number: QTBUG-110633
Change-Id: I5ce637f84bcae580717a9b106cb6ce802ddc6dae
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Raise 'ReleaseTaskError' if 'repo_path:' or 'config_file:'
is not found for ifw tasks.
Check that 'repo_path:' exists for debian tasks.
Add and update unit tests for task parsing.
Change-Id: I57ec9e5031f44aad7be8d04f3e3c4546e9574a90
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
| |
"values" -> "choices"
Change-Id: I3349d16119c5937b0128d9d280d5d9c9b645fddd
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor the ReleaseTask class as a base class for two specialized
cases:
- IFWReleaseTask for tasks that use Qt Installer Framework to
produce installers or repositories
- DebReleaseTask for tasks that produce Debian repositories
Support key-value substitution also in the configuration files
that are parsed by ReleaseTask classes.
Remove unused functionality from ReleaseTask class and change the
various getter methods as @property getters: better data hiding and
more Pythonic access to container attributes.
Construct the task types via an factory: ReleaseTaskFactory
To make the task parsing more type specific and straightforward
introduce a breaking change in the task specification syntax:
[task.foo.bar.abc...]
->
[task.ifw.foo.bar.abc...]
or
[task.deb.foo.bar.abc...]
Use "ifw" specifier for tasks that should use Qt Installer Framework.
Use "deb" specifier for tasks that should produce Debian repositories.
The release configuration files need to be updated at the same time
of this change.
Task-number: QTIFW-2813
Change-Id: I5c12ae3705a9e89a16b536ceef5382130860e0b0
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
-When path limit disabled in Windows VMs, short pathnames no longer needed
-Changes in create_installer.py, release_repo_updater.py:
-Log warning in InstallerTask when running with path limit enabled
-Force long path support when calling via the CLI interface
-Add CLI option --disable-path-limit-check to bypass the check
Change-Id: Ifed8f491ca4cdcb5b166365faccff8782059cecd
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: I30bc1675f66b3f11c2291c705cb48ef98f5c9271
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Using pathlib changed the pathes from / to \
on Windows so the replace did not work anymore.
Change-Id: Ia4a69aa3a167b868cc675683fd57b111bfba6d4c
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
| |
Change-Id: I584a6de83729174c66bf73f330fd4db9ed3662ba
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
| |
Change-Id: Ie72f6555f99eeb8e499011d43d3035424ed9647f
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
| |
Change-Id: Idcf807ffbb785066cfa5086efde2c755c0ad19fe
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
| |
os.path.split and os.path.splitext to pathlib equivalents
adjust bldinstallercommon.calculate_relpath unit tests
Change-Id: Ieb49864ed4f804cfdff61492edfb622ce1c4a9dc
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change behavior when using pattern match in payload uri:
- Do not support extract operation with pattern matching
- Compress all matching content to a single payload archive
- Include source directory structure in the final archive to avoid name
conflicts
- Require to declare "archive_name" in configs if using patterns
- Adjust create_installer, unit tests
Change-Id: I7b89010d1d872f8b3bff8e1d496147675a9a6df1
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add tar, tar.bz2, tar.gz, tar.xz and zip to supported archive formats.
Rename s3 sync function:
old: sync_production_7z_to_s3
new: sync_production_payload_to_s3
Change-Id: I172635ffc77f8cc677d9006ead0773cfddd50354
Reviewed-by: Patrik Teivonen <patrik.teivonen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
| |
Get basename of a path using pathlib.Path.name.
Enable PL119 in flake8.
Update copyright year for changed files.
Change-Id: Ice7cd7e9246950dd39321b108bb68c9466f62189
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
| |
Use pathlib to change file system permissions.
Enable PL101 in flake8
Change-Id: Ibaadea6d0768d89770ef0c05ca5f1c3ac9cb0133
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Previous change a0abcb9311c7bb02263bc51ef0189648dbdeec24 made
upload_ifw_to_remote() return a relative path.
Update unit test assertion with correct path and make unit tests pass.
Change-Id: I9ea6aa68a926a5f30a8d3d68057b1b3a4c1038db
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable PL111 check in flake8-pathlib.
Replace os.path.expanduser with Path.home()
Remove remote_server_home argument from upload_ifw_to_remote() as rsync uses
paths relative to the (remote server's) home directory by default. If the
remote server's home directory is different from the local one, it will fail.
Change-Id: I31a8dee61889c749b240aa6af9c440e9371acebf
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement an adapter wrapping the aptly-api-client Python interface
for easier access to the functionality.
Add basic support to:
- create repository
- add files to the repository
- create a snapshot
- publish and sign the snapshot to given endpoint and prefix
- list operations for the resources
- delete operations for the resources
Also add an command line interface for testing purposes.
Tests are enabled if 'aptly' is found from PATH.
Task-number: QTIFW-2813
Change-Id: I062e0967ec025f532a93e3466cae829bdd9e63c8
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to sign the Qt Creator app that we install with the online and
Qt offline installers, to avoid an issue with access permissions on M1
Macs.
For that the installer may no longer write into the app bundle. The last
remaining thing that the installer wrote, was the optional plugins.
Instead, add a relative plugin path (expanding to "<Qt>/Tools/QtCreator
<version>/PlugIns") to the install settings of Qt Creator, and sign that
bundle. The installer has to install the optional plugins there, instead
of into the bundle. For consistency, do the same with the commercial Qt
Creator offline installers.
Task-number: QTCREATORBUG-26705
Change-Id: I728ebf28b658b23743afb563ccc5cdf96639fa7e
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
|