We originally used libcurl for both downloading images from
Internet and reading local files to have the same code path for both.
It doesn't work that well in practice, as Qt and libcurl are not
on the same page how special characters such as Chinese characters
are represented in a local file URL.
So create a new class to handle local files.
Closes#76
- Allow static build
- Use .svg icons
- Linux Embedded lacks normal "open file dialog". So simply scan
files in root folder of USB stick and return list.
- Change QProcess::execute(command) calls to
QProcess::execute(command, args) calls to silence Qt 5.15.0
depreciation warning.
Modern CPUs have special instructions to accelerate computing
SHA hashes.
The Qt QCryptographicHash code is standard C, so not taking
advantage of those though.
Outsource the hashing to OpenSSL that does.
Shaves off some seconds during verification stage.
The default Info.plist template provided by CMake doesn't have this key, and
CMake only has minimal support for settingstypically found in this file.
In order to specify NSPrincipalClass, we need to provide the whole Info.plist instead.
Info.plist is also specified as a dependancy to the application so that it will
appear in the project explorer, and changes to this file will trigger a rebuild.
The software requires at least:
- libcurl 7.32.0 (released Aug 12 2013!)
- libarchive 3.2.0 (released Apr 30 2016)
- util-linux 2.27 (released Sep 7 2015)
While technically we could build libcurl and libarchive statically
(like we do for Mac and Windows) if the system has older libs,
it's likely that running the software on systems that old may
give other problems as well (e.g. does lsblk --json (util-linux)
and udisks2 work correctly?), so do not bother.
Closes#16
- We are only using zlib indirectly through libarchive
(For Windows/Mac OS X we do keep requiring zlib headers, as we
need them to build the bundled libarchive on these platforms)