[Interest] strip: Customise Qt intaller, remove *.qt.io

Christian Gagneraud chgans at gmail.com
Sat Sep 30 10:05:41 CEST 2017



Thanks everyone for you answers, after digging into the qtsdk.git
repo, i think i might be better staying away from the custom online
It's complex, and a custom online installer will give me maintenance nightmares.

I think what i need is the QBSP facility (that might be an Enterprise
feature), but basically it seems to be tailored to my needs: Add a BSP
to Qt SDK, automatically registered as a Kit in QtCreator. Once i get
this working to my taste i can move on online repositories.

Here is the BootToQt one [1], based on Yocto (by the Linux Fundation).

QBSP seems to have stem from the need of the typical
foreign/proprietary BSP [2], hence their name. But actually they are
just offline repositories.


The network issues are a separate problem, i have investigated
further, and i'm now sure that the root problem for NZ and AU
customers is that:
1 - They are directed to japanese mirrors
2 - Download from there is initially very very very slow (600ms TCP
round-trip), but can ramp-up to 1.5MiB/s after ca. 30 s
3 - It is not possible to change or *choose* the mirror.
3.1 - the mirror list depends on your license, so you need to login first
4 - The installer starts with 2 online repo, after logging in you end
up with  hundreds of repos. (I think i have 200+ repos)
5 - If you have a dual license (Desktop + Embedded), you have twice
the number of online repositories
6 - Your dual license is actually triple: you implicitly have access
to "OpenSource", tripling your number of online repositories.
7 - The Qt installer has the bad habit of re-dowloading the whole
"meta-data" thing again and again.
8 - "Qt Open Source" mirrors don't mirror "Qt for Device Creation".

As a side note, in this situation (200+ repos), the "Repositories"
setting tab becomes unusable:
- a Filter line edit would be cool, with regexp support! ;)
- maybe filters per "license grant" (see below), I can see a pattern
on my install, all repo names starts with either:
   "Enterprise Linux-x86 Desktop ..." (Qt Enterprise Desktop)
   "Enterprise Linux-x86 Embedded ..." (Qt for Device Creation)
   "Qt Linux-x64 ..." (Qt Open Source)
- dependencies b/w repo doesn't seem to be managed correctly, you can
easily wreak havoc your install, ending with weird fatal dialog saying
"foo.bar.baz depends on ...., bailing out"

Anyway, as suggested by Kai Koehne, i will open a customer support
request and kindly ask for an "Oceania" mirror.
[That would be really cool if i could setup my own local mirror]


As mentioned by someone else (here or on jira), maybe it's all about
hash management:
hash your stash, per "license grant", donwload their hash per "license grant",
if hash matches, your stash is good.
if not, repeat with all stash entry, hash based again.

The Qt Online installer is based on recursive 7z archives, so maybe
the root download should be the hash of the gold root archive object,
Then only if needed, the hash-identified 7z archives that contain the
hash of their's children. This is exactly how git storage works [3]


[1] https://github.com/tmpsantos/meta-boot2qt/tree/tmpsantos-boot2qt_demo/files/qbsp
[2] https://en.wikipedia.org/wiki/Board_support_package
[3] https://gitlab.com/chgans/aucklug-git-september-2017/raw/master/AuckLUG-git-september-2017.pdf

More information about the Interest mailing list