From 9264c19f7698e79bde9ac2285b89a5465f6aa123 Mon Sep 17 00:00:00 2001 From: Tom Dewey Date: Mon, 9 Sep 2024 16:33:45 +0100 Subject: [PATCH] linux: Appimage packaging Move some files around, so that AppImages can be packaged inside a .deb for convenience. --- .gitignore | 2 ++ appimagecraft.yml | 7 +------ debian/changelog | 14 ++++++++++++++ debian/control | 16 ++++++---------- debian/install | 6 ++++++ debian/org.raspberrypi.rpi-imager.desktop | 11 +++++++++++ debian/postinst | 5 +++++ .../rpi-imager.metainfo.xml | 6 +++--- {src/icons => debian}/rpi-imager.png | Bin debian/rules | 10 ++++++++-- src/CMakeLists.txt | 13 ++++--------- src/linux/org.raspberrypi.rpi-imager.desktop | 2 +- 12 files changed, 61 insertions(+), 31 deletions(-) create mode 100644 debian/install create mode 100644 debian/org.raspberrypi.rpi-imager.desktop create mode 100644 debian/postinst rename src/linux/rpi-imager.metainfo.xml.in => debian/rpi-imager.metainfo.xml (94%) rename {src/icons => debian}/rpi-imager.png (100%) diff --git a/.gitignore b/.gitignore index 888bccf..e5bb6b8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,10 @@ debian/files debian/*.substvars debian/debhelper** .DS_Store +*.DS_Store # editor backups *.*swp* # AppImage related *.AppImage* +*.appimagecraft* diff --git a/appimagecraft.yml b/appimagecraft.yml index f158429..dedf7e3 100644 --- a/appimagecraft.yml +++ b/appimagecraft.yml @@ -2,7 +2,7 @@ version: 1 project: name: org.raspberrypi.rpi-imager - version_command: git describe --tags + version: 1.9.0 build: cmake: @@ -13,11 +13,6 @@ build: environment: BUILD_TYPE: MinSizeRel -scripts: - post_build: - - | - sed -i 's|Name=Imager|Name=Raspberry Pi Imager|' AppDir/usr/share/applications/org.raspberrypi.rpi-imager.desktop - appimage: linuxdeploy: plugins: diff --git a/debian/changelog b/debian/changelog index c31bbe9..60d2ef5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +rpi-imager (1.9.0) unstable; urgency=medium + + * ui: Upgrade to Qt6.7, bringing new controls to everything + * packaging: Migrate to AppImage-first distribution + * packaging: Sign with new Raspberry Pi Ltd key + * host deps: Ubuntu 22.04+, macOS 11+, Windows 10+ + * Popups: Removed click-outside closing behaviour + * Selection Windows: Fixed layouts to fill the windows + * build: Dependencies have been vendored for consistency + * build: Require non-package-manager version of Qt + * security: Use platform crypto, SSL libraries where possible + + -- Tom Dewey Wed, 4 Sep 2024 18:57:00 +0000 + rpi-imager (1.8.5) unstable; urgency=medium * Retry downloads on HTTP2 errors. diff --git a/debian/control b/debian/control index 79de610..ad46d2d 100644 --- a/debian/control +++ b/debian/control @@ -1,18 +1,14 @@ Source: rpi-imager Section: admin Priority: optional -Maintainer: Floris Bos -Build-Depends: debhelper (>= 10), cmake, libarchive-dev, liblzma-dev, libcurl4-gnutls-dev | libcurl4-openssl-dev, - qtbase5-dev, qtbase5-dev-tools, qtdeclarative5-dev, libqt5svg5-dev, qttools5-dev, libgnutls28-dev, - qml-module-qtquick2, qml-module-qtquick-controls2, qml-module-qtquick-layouts, qml-module-qtquick-templates2, qml-module-qtquick-window2, qml-module-qtgraphicaleffects +Maintainer: Tom Dewey +Build-Depends: debhelper (>= 10), cmake, libgnutls28-dev Standards-Version: 4.1.2 -Homepage: https://www.raspberrypi.org/ +Homepage: https://www.raspberrypi.com/software Package: rpi-imager Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, - qml-module-qtquick2, qml-module-qtquick-controls2, qml-module-qtquick-layouts, qml-module-qtquick-templates2, qml-module-qtquick-window2, qml-module-qtgraphicaleffects, - dosfstools, fdisk +Depends: ${shlibs:Depends}, ${misc:Depends}, dosfstools, fdisk, fuse Recommends: udisks2 -Description: Raspberry Pi imaging utility - Graphical user-interface to write disk images and format SD cards. +Description: Raspberry Pi Imaging utility + A user-friendly tool for creating bootable media for Raspberry Pi Devices. diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..7c184c8 --- /dev/null +++ b/debian/install @@ -0,0 +1,6 @@ +rpi-imager.AppImage /usr/bin/ + +debian/rpi-imager.png /usr/share/icons/hicolor/128x128/apps/ + +debian/*.desktop /usr/share/applications/ +debian/*.metainfo.xml /usr/share/metainfo/ \ No newline at end of file diff --git a/debian/org.raspberrypi.rpi-imager.desktop b/debian/org.raspberrypi.rpi-imager.desktop new file mode 100644 index 0000000..90c4cc8 --- /dev/null +++ b/debian/org.raspberrypi.rpi-imager.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Version=1.9.0 +Name=Raspberry Pi Imager +Name[zh_CN]=树莓派启动盘制作工具 +Comment=Raspberry Pi Imager +Comment[zh_CN]=树莓派启动盘制作工具 +Icon=rpi-imager +Exec=/usr/bin/rpi-imager.AppImage %F +Categories=Utility +StartupNotify=false diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..835b43c --- /dev/null +++ b/debian/postinst @@ -0,0 +1,5 @@ +#!/bin/sh + +if [ ! -x /usr/bin/rpi-imager.AppImage ]; then + chmod +x /usr/bin/rpi-imager.AppImage +fi \ No newline at end of file diff --git a/src/linux/rpi-imager.metainfo.xml.in b/debian/rpi-imager.metainfo.xml similarity index 94% rename from src/linux/rpi-imager.metainfo.xml.in rename to debian/rpi-imager.metainfo.xml index 2a442f9..4450051 100644 --- a/src/linux/rpi-imager.metainfo.xml.in +++ b/debian/rpi-imager.metainfo.xml @@ -4,7 +4,7 @@ CC0-1.0 Apache-2.0 Raspberry Pi Imager - Raspberry Pi imaging utility + Raspberry Pi Imaging utility

Raspberry Pi Imager downloads a .JSON file from the Raspberry Pi @@ -52,10 +52,10 @@ https://github.com/raspberrypi/rpi-imager - rpi-imager + rpi-imager.AppImage - + moderate diff --git a/src/icons/rpi-imager.png b/debian/rpi-imager.png similarity index 100% rename from src/icons/rpi-imager.png rename to debian/rpi-imager.png diff --git a/debian/rules b/debian/rules index 0c9c7bb..2c5c055 100755 --- a/debian/rules +++ b/debian/rules @@ -1,8 +1,14 @@ #!/usr/bin/make -f # See debhelper(7) (uncomment to enable) # output every command that modifies files on the build system. -#export DH_VERBOSE = 1 +export DH_VERBOSE = 1 %: - dh $@ --sourcedirectory=src + dh $@ +.PHONY: override_dh_usrlocal +override_dh_usrlocal: + +.PHONY: override_dh_strip +override_dh_strip: + dh_strip --exclude=AppImage diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8695706..6973e3c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -457,15 +457,10 @@ else() endif() endif() - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/linux/rpi-imager.metainfo.xml.in" - "${CMAKE_CURRENT_BINARY_DIR}/rpi-imager.metainfo.xml" - @ONLY) - - install(TARGETS rpi-imager DESTINATION bin) - install(FILES icons/rpi-imager.png DESTINATION share/icons/hicolor/128x128/apps) - install(FILES linux/org.raspberrypi.rpi-imager.desktop DESTINATION share/applications) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rpi-imager.metainfo.xml" DESTINATION share/metainfo) + install(TARGETS ${PROJECT_NAME} DESTINATION bin) + install(FILES "${CMAKE_CURRENT_LIST_DIR}/../debian/rpi-imager.png" DESTINATION share/icons/hicolor/128x128/apps) + install(FILES "linux/org.raspberrypi.rpi-imager.desktop" DESTINATION share/applications) + install(FILES "${CMAKE_CURRENT_LIST_DIR}/../debian/rpi-imager.metainfo.xml" DESTINATION share/metainfo) endif() include_directories(${CURL_INCLUDE_DIR} ${LibArchive_INCLUDE_DIR} ${LIBLZMA_INCLUDE_DIRS} ${LIBDRM_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} ${ZSTD_INCLUDE_DIR}) diff --git a/src/linux/org.raspberrypi.rpi-imager.desktop b/src/linux/org.raspberrypi.rpi-imager.desktop index 557b028..5236899 100644 --- a/src/linux/org.raspberrypi.rpi-imager.desktop +++ b/src/linux/org.raspberrypi.rpi-imager.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application Version=1.0 -Name=Imager +Name=Raspberry Pi Imager Name[zh_CN]=树莓派启动盘制作工具 Comment=Raspberry Pi Imager Comment[zh_CN]=树莓派启动盘制作工具