Commit graph

36 commits

Author SHA1 Message Date
Floris Bos
1aaf22d7ab Mac: fix double free
Had wrongfully assumed CFStringRef's were reference counted
objects that needed to be CFRelease()'d when we no longer
needed them.

However according to the CFArrayGetValueAtIndex() API docs
( https://developer.apple.com/documentation/corefoundation/1388767-cfarraygetvalueatindex?language=objc )
it follows "get rule" for memory ownership, meaning it is not
ours to release.

Only prefLangs returned by CFLocaleCopyPreferredLanguages()
need to be CFRelease()'d as that does follow "create rule"

Ref #202 (Crash on Mac OS Big Sur)
2021-04-05 16:32:46 +02:00
Floris Bos
a82fe15d54 Change version to 1.6.1 2021-03-27 11:10:26 +01:00
Floris Bos
2bbb8bfba7 Windows: improve file system mounting for customization
- Check if config.txt exists on drive letter before proceeding to
  write changes. Wait up to 3 seconds if not.
- Force drive letter assignment for portable SSDs and other devices
  that pretend to be a fixed drive. (Windows only auto-assigns
  drive letters for removable media).

Ref #171
2021-03-21 16:25:32 +01:00
Floris Bos
86f893388c Shift+Ctrl+X for advanced users that likes to customize the image
- Adds "hidden" shift+ctrl+X shortcut for eXpert image customization
  options.

Allows one to set certain options on RPI OS images, namely:

* disable overscan
* set hostname
* enable ssh and
  - set Pi user password if using password authentication
  OR
  - set authorized_keys
    (if running Imager on Linux/Mac this will
     have contents of ~/.ssh/id_rsa.pub prefilled)
* configure wifi settings
  (if computer running Imager is connected by wifi it will
  prefill wifi SSID and if on Windows also PSK).
* set time zone and keyboard layout

  Related to feature requests/issues:
  Ref #127
  Ref #86
  Ref #102
  Ref #73
  Ref #68
  Ref #25
  Ref #12

- Option Window also allows setting a couple other general settings:

* Adds option for audible notification (beep) when imaging completes.
  Closes #46

* Adds option not to eject media when done.
  Closes #144

- No longer suspends a number of Windows services during Imaging
  (We want Windows to detect the drive and mount it, or we may
   not be able to alter files on FAT partition).
2021-01-17 17:43:17 +01:00
Floris Bos
1d0087929c Windows: show progress in taskbar
Windows: show progress in taskbar
Closes #132

Implemented in ImageWriter class instead of qml for practical
reasons. GUI stuff does not really belong there, but there is no
easy way to have platform specific stuff in qml, lacking #ifdef
2020-12-09 14:23:40 +01:00
Floris Bos
95ce718d41 Enable telemetry
- Phone back home image downloaded for image popularity research.
  Only in case image comes from our repository (NOT for custom images)
2020-12-01 15:50:58 +01:00
maxnet
35d32f2b26
Merge branch 'qml' into qml 2020-11-19 18:20:34 +01:00
bovirus
de0c12bfb2
Update CMakeLists.txt
Update CMakeLists.txt (changes for Italian language)
2020-11-19 14:21:49 +01:00
Jose Riha
a4880fb4be Add Slovak translation 2020-11-18 22:42:47 +01:00
Floris Bos
f703690a74 Merge branch 'qml' of https://github.com/raspberrypi/imagewriter into qml 2020-09-29 19:56:52 +02:00
Floris Bos
a6a4f0fc5b Mac: use system hash functions
May perform better under emulation
2020-09-29 19:56:12 +02:00
maxnet
cbd3355abd
Merge pull request #97 from alkersan/fix_find_package_arguments_order
Fix find_package arguments order.
2020-09-17 19:42:04 +02:00
Aaron Dewes
f433750997
Add German translation 2020-08-07 14:07:00 +02:00
Dmytro Aleksandrov
1749eb7b40 Fix find_package arguments order.
With current argument order cmake's FindCURL module checks for a component named `7.32.0` in the curl package.
According to the find_package reference the version argument follows PackageName and after the REQUIRED keyword an optional list of components is placed.
Resolves #96
2020-08-02 13:31:09 +03:00
Floris Bos
04595d28c6 Add fr/tr to list of translations 2020-07-21 15:25:01 +02:00
Floris Bos
f90739a520 Mac: populate version info in .plist
Closes #88
2020-07-06 00:41:34 +02:00
Floris Bos
755d7dc6ab Enumerate drives in seperate thread
Ref #87
2020-07-02 23:31:20 +02:00
Floris Bos
6069e8f441 Linux: add version number automatically to rpi-imager.metainfo
- Automate putting version number in rpi-imager.metainfo.xml.in
- Remove qt5-default dependency from debian/control
2020-06-30 01:01:36 +02:00
maxnet
12784a0092
Merge pull request #34 from ghisvail/appstream-metadata
Appstream metadata
2020-06-30 00:45:56 +02:00
Floris Bos
855ad53b21 Add dummy English translation
Mac OS X allows one to provide multiple preferred languages instead
of one.
Make sure that if is English is the "main" language, it does not
go for one of the translations.

Closes #81
2020-06-30 00:18:10 +02:00
Floris Bos
fa7637e7dc Do not use libcurl for reading local files
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
2020-06-01 19:43:51 +02:00
Floris Bos
123542a66b Linux embedded: misc improvements
- 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.
2020-06-01 17:45:41 +02:00
Floris Bos
5b072f3196 Build changes
- Add support for embedded Linux without X, dbus, udisks, ntp, etc.
- Misc minor changes
2020-05-25 00:36:16 +02:00
maxnet
3d2c1f2a5a
Merge pull request #49 from mttlmnt/macos-fuzzy-text
Fix for #13 Fuzzy text on macOS Retina Displays
2020-05-23 17:54:58 +02:00
maxnet
528243c050
Merge pull request #52 from ghisvail/patch-1
Install icon under share/icons
2020-05-23 17:54:37 +02:00
Floris Bos
8048b5e47c Use accelerated hashing for verification
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.
2020-05-23 17:50:59 +02:00
Floris Bos
73b9ae764d Add localisation support
- Tested with Dutch and Chinese.
- Chinese translation courtesy of @YuzukiTsuru
2020-05-23 15:57:58 +02:00
Ghislain Vaillant
f8e19f83b8 Install AppStream metadata 2020-05-20 14:53:29 +02:00
Ghislain Antony Vaillant
906340598c
Install icon under share/icons 2020-04-08 18:26:17 +02:00
Matt Lamont
4e46567438 Specify an NSPrincipalClass in Info.plist to enable Retina display support
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.
2020-04-05 17:42:08 +12:00
Floris Bos
bd37916527 Mention version number in title bar 2020-03-10 17:43:48 +01:00
Floris Bos
560759fe0c Mac OS X: disallow being started on 10.12
Qt only supports 10.13/10.14/10.15 in latest Qt version
So mark application as such.

Closes #29
2020-03-09 16:54:33 +01:00
Floris Bos
6081ca441f Linux: test for recent libarchive/libcurl/lsblk
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
2020-03-09 13:06:23 +01:00
Floris Bos
75feb3e73d Rename imagingutility -> rpi-imager 2020-03-05 15:40:38 +01:00
Floris Bos
0244c5f49e Linux: remove dependency on zlib headers
- 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)
2020-03-05 15:23:24 +01:00
Floris Bos
d7b361ba44 Qt/QML edition 2020-03-04 16:55:40 +01:00