From fe3d2116cb34a0d53731a11169d988e205a4a603 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 23 Aug 2024 11:25:16 +0100 Subject: sys-boot/rpi-imager : new package --- sys-boot/rpi-imager/Manifest | 1 + ...IVELIST_FILTER_SYSTEM_DRIVES-to-cmake-arg.patch | 37 ++++++++ ...8.5-expose-DRIVELIST_FILTER_SYSTEM_DRIVES.patch | 50 ++++++++++ sys-boot/rpi-imager/rpi-imager-1.8.5.ebuild | 101 +++++++++++++++++++++ 4 files changed, 189 insertions(+) create mode 100644 sys-boot/rpi-imager/Manifest create mode 100644 sys-boot/rpi-imager/files/1.7.3-move-DRIVELIST_FILTER_SYSTEM_DRIVES-to-cmake-arg.patch create mode 100644 sys-boot/rpi-imager/files/rpi-imager-1.8.5-expose-DRIVELIST_FILTER_SYSTEM_DRIVES.patch create mode 100644 sys-boot/rpi-imager/rpi-imager-1.8.5.ebuild (limited to 'sys-boot') diff --git a/sys-boot/rpi-imager/Manifest b/sys-boot/rpi-imager/Manifest new file mode 100644 index 00000000..5b7690b7 --- /dev/null +++ b/sys-boot/rpi-imager/Manifest @@ -0,0 +1 @@ +DIST rpi-imager-1.8.5.tar.gz 22455707 BLAKE2B a3268674a9d8345c23b765beef041404185eb31a25cefc2adee0d6de7910aa526c1b1f0073e4fd959ae3aa04764c9890355835295dab40149d07e37b0869a890 SHA512 574d4310234344be7502ecb6e01802f658455bc329a8080c88173c020c3e291478f5145b45c9ed68136ff1dafbaf8b842de2f8f086888cab806e931660f1d3b8 diff --git a/sys-boot/rpi-imager/files/1.7.3-move-DRIVELIST_FILTER_SYSTEM_DRIVES-to-cmake-arg.patch b/sys-boot/rpi-imager/files/1.7.3-move-DRIVELIST_FILTER_SYSTEM_DRIVES-to-cmake-arg.patch new file mode 100644 index 00000000..d7e151bd --- /dev/null +++ b/sys-boot/rpi-imager/files/1.7.3-move-DRIVELIST_FILTER_SYSTEM_DRIVES-to-cmake-arg.patch @@ -0,0 +1,37 @@ +# Expose drivelist filtering as cmake variable + +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -134,6 +134,17 @@ else() + add_definitions(-DTELEMETRY_ENABLED_DEFAULT=false) + endif() + ++if(DEFINED DRIVELIST_FILTER_SYSTEM_DRIVES) ++ if(DRIVELIST_FILTER_SYSTEM_DRIVES) ++ # Hide system drives from list ++ add_definitions(-DDRIVELIST_FILTER_SYSTEM_DRIVES=true) ++ else() ++ add_definitions(-DDRIVELIST_FILTER_SYSTEM_DRIVES=false) ++ endif() ++else() ++ add_definitions(-DDRIVELIST_FILTER_SYSTEM_DRIVES=true) ++endif() ++ + if(ENABLE_CHECK_VERSION) + add_definitions(-DCHECK_VERSION_DEFAULT=true) + else() +--- a/src/config.h ++++ b/src/config.h +@@ -19,9 +19,6 @@ + /* Hash algorithm for verifying (uncompressed image) checksum */ + #define OSLIST_HASH_ALGORITHM QCryptographicHash::Sha256 + +-/* Hide system drives from list */ +-#define DRIVELIST_FILTER_SYSTEM_DRIVES true +- + /* Update progressbar every 0.1 second */ + #define PROGRESS_UPDATE_INTERVAL 100 + +-- +2.38.2 + diff --git a/sys-boot/rpi-imager/files/rpi-imager-1.8.5-expose-DRIVELIST_FILTER_SYSTEM_DRIVES.patch b/sys-boot/rpi-imager/files/rpi-imager-1.8.5-expose-DRIVELIST_FILTER_SYSTEM_DRIVES.patch new file mode 100644 index 00000000..0935599f --- /dev/null +++ b/sys-boot/rpi-imager/files/rpi-imager-1.8.5-expose-DRIVELIST_FILTER_SYSTEM_DRIVES.patch @@ -0,0 +1,50 @@ +https://github.com/raspberrypi/rpi-imager/commit/a44b9ae85601a0bf9317c8717813fd0e6ac14d3e +https://github.com/raspberrypi/rpi-imager/pull/816 +https://github.com/raspberrypi/rpi-imager/issues/534 +https://gitlab.com/src_prepare/src_prepare-overlay/-/merge_requests/343 + +From a44b9ae85601a0bf9317c8717813fd0e6ac14d3e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?MrSm=C3=B6r?= <66489839+MrSmoer@users.noreply.github.com> +Date: Fri, 9 Feb 2024 11:08:00 +0100 +Subject: [PATCH] Exposing 'DRIVELIST_FILTER_SYSTEM_DRIVES' as a cmake variable + +Makes the filtering-behaviour userconfigureable during compile-time. +This way its easier to configure the imager for flashing SATA or NVME +Drives installed in your system (because of lack of adapters), +or if the drives are (accidentally) labled as systemdrives by drivelist. +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -4,6 +4,7 @@ + cmake_minimum_required(VERSION 3.9.4) + OPTION (ENABLE_CHECK_VERSION "Check for version updates" ON) + OPTION (ENABLE_TELEMETRY "Enable sending telemetry" ON) ++OPTION (DRIVELIST_FILTER_SYSTEM_DRIVES "Filter System drives from displayed drives" ON) + + project(rpi-imager LANGUAGES CXX C) + set(IMAGER_VERSION_MAJOR 1) +@@ -164,6 +165,13 @@ else() + add_definitions(-DCHECK_VERSION_DEFAULT=false) + endif() + ++if(DRIVELIST_FILTER_SYSTEM_DRIVES) ++ # Hide system drives from list ++ add_definitions(-DDRIVELIST_FILTER_SYSTEM_DRIVES=true) ++else() ++ add_definitions(-DDRIVELIST_FILTER_SYSTEM_DRIVES=false) ++endif() ++ + # Because dependencies are typically not available by default on Windows, build bundled code + if (WIN32) + # Target Windows 7 (needed for drivelist module) +--- a/src/config.h ++++ b/src/config.h +@@ -19,9 +19,6 @@ + /* Hash algorithm for verifying (uncompressed image) checksum */ + #define OSLIST_HASH_ALGORITHM QCryptographicHash::Sha256 + +-/* Hide system drives from list */ +-#define DRIVELIST_FILTER_SYSTEM_DRIVES true +- + /* Update progressbar every 0.1 second */ + #define PROGRESS_UPDATE_INTERVAL 100 + diff --git a/sys-boot/rpi-imager/rpi-imager-1.8.5.ebuild b/sys-boot/rpi-imager/rpi-imager-1.8.5.ebuild new file mode 100644 index 00000000..86c25ee0 --- /dev/null +++ b/sys-boot/rpi-imager/rpi-imager-1.8.5.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit cmake optfeature python-any-r1 xdg + +DESCRIPTION="Raspberry Pi Imaging Utility" +HOMEPAGE="https://github.com/raspberrypi/rpi-imager" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/raspberrypi/rpi-imager.git" +else + SRC_URI="https://github.com/raspberrypi/rpi-imager/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="qt6 +filter-drivelist test" +RESTRICT="test !test? ( test )" # requires network and extra permissions to write + +RDEPEND=" + app-arch/libarchive:= + app-arch/xz-utils + net-libs/gnutls:= + net-misc/curl + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtquickcontrols2:5 + dev-qt/qtwidgets:5 + ) + qt6? ( + dev-qt/qtbase:6[dbus,gui,network,widgets] + dev-qt/qtdeclarative:6 + ) +" +DEPEND=" + ${RDEPEND} + !qt6? ( + dev-qt/qtsvg:5 + ) + qt6? ( + dev-qt/qtsvg:6 + ) +" +BDEPEND=" + !qt6? ( dev-qt/linguist-tools ) + test? ( + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/jsonschema[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/urllib3[${PYTHON_USEDEP}] + ') + ) +" + +PATCHES=( + #https://github.com/raspberrypi/rpi-imager/pull/816 + "${FILESDIR}/rpi-imager-1.8.5-expose-DRIVELIST_FILTER_SYSTEM_DRIVES.patch" +) + +CMAKE_USE_DIR="${S}/src" + +python_check_deps() { + python_has_version "dev-python/jsonschema[${PYTHON_USEDEP}]" \ + && python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" \ + && python_has_version "dev-python/urllib3[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DENABLE_CHECK_VERSION=OFF + -DENABLE_TELEMETRY=OFF + -DDRIVELIST_FILTER_SYSTEM_DRIVES=$(usex filter-drivelist) + $(cmake_use_find_package !qt6 Qt5) + ) + + cmake_src_configure +} + +src_test() { + epytest tests +} + +pkg_postinst() { + xdg_pkg_postinst + optfeature "writing to disk as non-root user" sys-fs/udisks:2 +} -- cgit v1.2.3