Skip to content

Commit 57a28a2

Browse files
committed
README: Update build instructions
1 parent 377c0b7 commit 57a28a2

File tree

1 file changed

+23
-32
lines changed

1 file changed

+23
-32
lines changed

README.md

+23-32
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ Please see our [official documentation](https://www.raspberrypi.com/documentatio
1313

1414
## Contributing
1515

16-
### Raspberry Pi OS/Debian/Ubuntu Linux
16+
### Linux
1717

1818
#### Get dependencies
1919

20-
- Install the build dependencies:
20+
- Install the build dependencies (Debian used as an example):
2121

2222
```
2323
sudo apt install --no-install-recommends build-essential cmake git libgnutls28-dev
@@ -32,36 +32,36 @@ sudo apt install --no-install-recommends build-essential cmake git libgnutls28-d
3232
git clone --depth 1 https://github.com/raspberrypi/rpi-imager
3333
```
3434

35-
#### Build the Debian package
35+
#### Build the AppImage
36+
37+
Modify appimagecraft.yml:
38+
39+
- First, you _must_ set Qt6_ROOT (as a extra_variables item under build/cmake) to the root of your Qt6 installation
40+
- Second, you _must_ set QMAKE (as a raw_environment variable of the linuxdeploy plugin) to the full path of qmake inside that Qt6 installation.
3641

3742
```
3843
cd rpi-imager
39-
debuild -uc -us
44+
export LD_LIBRARY_PATH=${your_Qt6_install_path}/lib
45+
./${your_platform_appimagecraft_AppImage_name}
4046
```
4147

42-
debuild will compile everything, create a .deb package and put it in the parent directory.
43-
Can install it with apt:
48+
Now mark the AppImage as executable, and run it:
4449

4550
```
46-
cd ..
47-
sudo apt install ./rpi-imager*.deb
51+
chmod +x ./Raspberry_Pi_Imager-*.AppImage
52+
./Raspberry_Pi_Imager-*.AppImage
4853
```
4954

50-
It should create an icon in the start menu under "Utilities" or "Accessories".
51-
The imaging utility will normally be run as regular user, and will call udisks2 over DBus to perform privileged operations like opening the disk device for writing.
52-
If udisks2 is not functional on your Linux distribution, you can alternatively start it as "root" with sudo and similar tools.
53-
5455
### Windows
5556

5657
#### Get dependencies
5758

5859
- Get the Qt online installer from: https://www.qt.io/download-open-source
59-
During installation, choose Qt 6.7 with Mingw32 32-bit toolchain, CMake and Qt Creator.
60+
During installation, choose Qt 6.7 with Mingw64 64-bit toolchain, CMake and Qt Creator.
6061

6162
- For building the installer, get Nullsoft scriptable install system: https://nsis.sourceforge.io/Download
6263

63-
- It is assumed you already have a proper code signing certificate, and signtool.exe from the Windows SDK installed.
64-
If NOT and are you only compiling for your own personal use, comment out all lines mentioning signtool from CMakelists.txt and the .nsi installer script.
64+
- It is assumed you already have a valid code signing certificate, and the Windows 10 Kit (SDK) installed.
6565

6666
#### Building
6767

@@ -80,28 +80,19 @@ Building Raspberry Pi Imager on Windows is best done with the Qt Creator GUI.
8080

8181
- Get the Qt online installer from: https://www.qt.io/download-open-source
8282
During installation, choose Qt 6.7, CMake and Qt Creator.
83-
- For creating a .DMG for distribution you can use an utility like: https://github.com/sindresorhus/create-dmg
84-
- It is assumed you have an Apple developer subscription, and already have a "Developer ID" code signing certificate for distribution outside the Mac Store. (Privileged apps are not allowed in the Mac store)
83+
- It is assumed you have an Apple developer subscription, and already have a "Developer ID" code signing certificate for distribution outside the Mac Store.
8584

8685
#### Building
8786

8887
- Download source .zip from github and extract it to a folder on disk
89-
- Start Qt Creator (may need to start "finder" navigate to home folder using the "Go" menu, and find Qt folder to start it manually as it may not have created icon in Applications), and open src/CMakeLists.txt
88+
- Start Qt Creator and open src/CMakeLists.txt
9089
- Menu "Build" -> "Build all"
9190
- Result will be in build_rpi-imager_someversion
92-
- For distribution to others: code sign the .app, create a DMG, code sign the DMG, submit it for notarization to Apple and staple the notarization ticket to the DMG.
93-
94-
E.g.:
95-
96-
```
97-
cd build-rpi-imager-Desktop_Qt_6_7_2_clang_64bit-Release/
98-
codesign --deep --force --verify --verbose --sign "YOUR KEYID" --options runtime rpi-imager.app
99-
mv rpi-imager.app "Raspberry Pi Imager.app"
100-
create-dmg Raspberry\ Pi\ Imager.app
101-
mv Raspberry\ Pi\ Imager\ .dmg imager.dmg
102-
xcrun altool --notarize-app -t osx -f imager.dmg --primary-bundle-id="org.raspberrypi.imagingutility" -u YOUR-EMAIL-ADDRESS -p YOUR-APP-SPECIFIC-APPLE-PASSWORD -itc_provider TEAM-ID-IF-APPLICABLE
103-
xcrun stapler staple imager.dmg
104-
```
91+
- For distribution to others:
92+
- Use the IMAGER_SIGNED_APP flag to enable Application signing
93+
- Use the IMAGER_SIGNING_IDENTITY string to specify the Developer ID certificate Common Name
94+
- Use the IMAGER_NOTARIZE_APP flag to enable notarization as part of the build
95+
- Use the IMAGER_NOTARIZE_KEYCHAIN_PROFILE string to specify the name of the keychain item containing your Apple ID credentials for notarizing.
10596

10697
### Linux embedded (netboot) build
10798

@@ -158,4 +149,4 @@ defaults write org.raspberrypi.Imager.plist telemetry -bool NO
158149

159150
The main code of the Imaging Utility is made available under the terms of the Apache license.
160151
See license.txt and files in "src/dependencies" folder for more information about the various open source licenses that apply to the third-party dependencies used such as Qt, libarchive, drivelist, mountutils and libcurl.
161-
For the embedded (netboot) build see also "embedded/legal-info" for more information about the extra system software included in that.
152+
For the embedded (netboot) build see also "embedded/legal-info" for more information about the extra system software included in that.

0 commit comments

Comments
 (0)