* Add authentication flags for list-qt-commercial, add tests for coverage
* Add dry run
* Make tests really use auth since secrets have been added, fix some indents
* Fix auth issue, rename user 'email, and password 'pw'
* Fix modules param type
* Update commands names
* Add install-qt-commercial feature and tests
* Make the auto-answers parameters, fix linter issues
* Fork and execv instead of using subprocess
* Return to simpler process execution method version
* Fix test
* Move commercial installer into its own file
* Fix shadowing of symbol platform causing errors
* Adapt test_cli for argparse format changes on py 3.13+
* Fix some errors, monkeypatch install test
* Add --override super command
* Properly handle --override and grab all the remaining commands when no quotes are given
* Fix tests
* Add base for modules, some niche features are not yet entirely implemented, and there are no updates to the testsuite
* Fix some mistakes
* Fix errors made with the monkeypatch, update Settings to make sure its init
* Tests commercial (#20)
* Full support of installation of all modules and addons
* Add auto setup of cache folder for each OS, add unattended parameter
* Fix settings folders
* Add graceful error message for overwrite case
* Fix windows issue
* Hidden summon works
* Remove both subprocess direct calls
* Dipose of temp folder
* Fix path issue
* Add list-qt-commercial command
* Fix help info
* Make no params valid for list-qt-commercial
* Fix lint errors, and param overflow when no args are passed to list
* Fix search
* Add tests for coverage, fix lint
* Test for overwriting, and for cache usage coverage
* Return to clean exec, ignoring CI fail to preserve code clarity
* Fix parsing of subprocess.run output for some python versions
* Make output more readable in console for list-qt-commercial
* Forward email and password to list request for users without a qtaccount.ini
* Change default settings
* Fix lint errors
* Fix check error
* Settings: add an option to skip checksum verification on Updates.xml
This allows aqt to work even when the server download.qt.io is
unreachable.
Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
* Update settings.ini
* Correct option to skip checksum verification
* Rename ignore_hash option to INSECURE_NOT_FOR_PRODUCTION_ignore_hash
* Update doc about INSECURE_NOT_FOR_PRODUCTION_ignore_hash
* Add hash_algorithm option
* Unofficial mirrors might not provide any hash for Updates.xml
* docs: update configuration.rst
express default value of hash_algorithm
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
* fix: hashlib constructor with usedforsecurity=False
- Python 3.9 and later introduce a keyword argument ``usedforsecurity``
- Set to False because we use hash to check file integrity not for password hash.
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
* Attempt to fix parameter type inconsistency in downloadBinaryFile
---------
Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
Co-authored-by: Alberto Mardegan <mardy@users.sourceforge.net>
Co-authored-by: Hiroshi Miura <miurahr@linux.com>
Some of the currently listed mirrors are no longer part of the official
mirror list by qt.io, some return 404, some don't fully mirror the
tree.
The list has been generated via the following one-liner:
blacklist=$(sed -rne '/blacklist:/,/fallbacks:/p ' aqt/settings.ini); for mirror in $(curl -s https://download.qt.io/static/mirrorlist/ | grep -oP 'href="\K(http.*)(?=">HTTP</a>)' | sed -re 's|^http:|https:|; s|([^/])$|\1/|'); do grep -qF "$(sed -re 's|^https?://([^/]+).*$|\1|' <<<"${mirror}")" <<<"$blacklist" && continue; code=$(curl -I "${mirror}online/qtsdkrepository/windows_x86/desktop/qt6_623/qt.qt6.623.win64_msvc2019_64/6.2.3-0-202201260729qtbase-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z" --write-out '%{response_code}' --silent -o /dev/null); [[ $code == 200 ]] && echo " ${mirror}"; done
This prevents `list-*` from printing any module whose uncompressed size
is 40 bytes or less.
I have found a couple of modules that are exactly 40 bytes, and they
include no files, only empty directories. If any user tries to install
these modules, they will think that aqt failed to install the module
without printing any error message. I prefer to avoid this issue
by preventing `aqt list-*` from printing them.
`aqt install-*` is unaffected by this change, and it can still install
modules that contain no files. It is likely that we will need to print
a warning when this occurs.
If any user disagrees with the threshold value of 40 bytes, they are
free to adjust that value to their liking in `settings.ini`.
This allows a user to turn on `--keep` every time they run the program,
and to set the default archive destination when `--keep` is turned on.
Using `--archive-dest` overrides the archive destination in setting.ini.
I noticed a non-TLS mirror in our list of fallback mirrors. I checked the site, and an HTTPS version exists: https://ftp1.nluug.nl/languages/qt/
Since this is a security issue, I think we should backport this change to aqt v1.2 as well.
This change deprecates the `max_retries` option in settings.ini,
replacing it with `max_retries_on_connection_error`, in order to
differentiate it from `max_retries_on_checksum_error`.
It apply KDE patch collection to Qt 5.15.2 source
`aqt src 5.15.2 linux desktop --kde`
Patch collection is based on Qt 5.15.2, so only the version can be patched.
Ref #231
Signed-off-by: Hiroshi Miura <miurahr@linux.com>