Skip to content

Latest commit

 

History

History
114 lines (81 loc) · 4.3 KB

File metadata and controls

114 lines (81 loc) · 4.3 KB

Contributing

Linux

Get dependencies

  • Install the build dependencies (Debian used as an example):
sudo apt install --no-install-recommends build-essential cmake git libgnutls28-dev

Get the source

git clone --depth 1 https://github.com/raspberrypi/rpi-imager

Build Qt

sudo ./qt/build-qt.sh

This will build and install the version of Qt preferred for Raspberry Pi Imager into /opt/Qt/. You must use sudo for the installation step to complete.

Build the AppImage

./create-appimage.sh
./Raspberry_Pi_Imager-*.AppImage

Windows

Get dependencies

  • Get the Qt online installer from: https://www.qt.io/download-open-source
    • During installation, choose Qt 6.9 with Mingw64 64-bit toolchain.
  • For building the installer, install Inno Setup scriptable install system: https://jrsoftware.org/isdl.php
  • Install Visual Studio Code (or a derivative) and the Qt Extension Pack.
  • It is assumed you already have a valid code signing certificate, and the Windows 10 Kit (SDK) installed.

Building

Building Raspberry Pi Imager on Windows is best done with Visual Studio Code (or a derivative).

  • Open Visual Studio Code, and select 'Clone repo'. Give it the git url of this project.
  • Open the CMake plugin settings, and set the following Configure Args:
    • -DQt6_ROOT=C:\Qt\6.9.0\mingw_64 - or the equivalent path you installed Qt 6.9 to.
    • -DMINGW64_ROOT=C:\Qt\Tools\mingw1310_64 - or the equivalent path you installed mingw64 to.
    • -DENABLE_INNO_INSTALLER=ON - to enable the Inno Setup installer, rather than the legacy NSIS installer.
    • -DIMAGER_SIGNED_APP=ON - to enable code signing for redistribution.
  • In the CMake plugin tab, ensure you have selected the MinSizeRel variant if you intend to distribute to others.
  • In the CMake plugin tab, select the 'inno_installer' target, and build it
  • Your resultant installer will be located in %WORKSPACE%\build\installer

macOS

Get dependencies

  • Build a minimal Qt from source using our build script:
    ./qt/build-qt-macos.sh
    • This builds only what's needed for rpi-imager, resulting in faster builds and smaller size
    • See qt/README-qt-build-macos.md for detailed instructions
  • Install Visual Studio Code (or a derivative), and the Qt Extension Pack.
  • It is assumed you have an Apple developer subscription, and already have a "Developer ID" code signing certificate for distribution outside the Mac Store.

Building

Building Raspberry Pi Imager on macOS is best done with Visual Studio Code (or a derivative).

  • Open Visual Studio Code, and select 'Clone repo'. Give it the git url of this project.
  • Open the CMake plugin settings, and set the following Configure Args:
    • -DQt6_ROOT=/opt/Qt/6.9.1/macos - or the equivalent path you installed Qt 6.9 to.
    • -DIMAGER_SIGNED_APP=ON - to enable code signing.
    • -DIMAGER_SIGNING_IDENTITY=$cn - to specify the Developer ID Certificate Common Name.
    • -DIMAGER_NOTARIZE_APP=ON - to enable automatic notarization for distribution to others.
    • -DIMAGER_NOTARIZE_KEYCHAIN_PROFILE=notarytool-password - specify the name of the keychain item containing your Apple ID credentials for notarizing.
  • In the CMake plugin tab, ensure you have selected the MinSizeRel variant if you intend to distribute to others.
  • In the CMake plugin tab, select the 'rpi_imager' target, and build it
  • Your resultant DMG will be located at $WORKSPACE/build/Raspberry Pi Imager-$VERSION.dmg

Linux embedded (netboot) build

The Raspberry Pi Network installer (embedded imager) runs inside an operating system created by pi-gen-micro.

To build the entire system, you must first build our customised embedded qt:

./qt/build-qt-embedded.sh

Then build the embedded AppImage:

./create-embedded.sh

Package the appImage for use with pi-gen-micro and other Debian systems:

dpkg-buildpackage -uc -us --profile=embedded

And finally, import your new embedded imager into pi-gen-micro for packaging:

rm ${pi-gen-micro-root}/packages/rpi-imager-embedded*.deb
cp ../rpi-imager-embedded*.deb ${pi-gen-micro-root}/packages/
pushd ${pi-gen-micro-root}/packages/ && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz && popd