rpi-imager: 1.9.4 -> 1.9.6 (#432698)

Sandro 1f7d0b60 f1b7148c

Changed files
+115 -601
pkgs
+21 -26
pkgs/by-name/rp/rpi-imager/package.nix
···
qt6,
wrapGAppsHook4,
testers,
-
util-linux,
xz,
gnutls,
zstd,
···
stdenv.mkDerivation (finalAttrs: {
pname = "rpi-imager";
-
version = "1.9.4";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "rpi-imager";
tag = "v${finalAttrs.version}";
-
hash = "sha256-Ih7FeAKTKSvuwsrMgKQ0VEUYHHT6L99shxfAIjAzErk=";
};
-
sourceRoot = "${finalAttrs.src.name}/src";
-
-
# By default, the builder checks for JSON support in lsblk by running "lsblk --json",
-
# but that throws an error, as /sys/dev doesn't exist in the sandbox.
-
# This patch removes the check.
-
# remove-vendoring.patch from
-
# https://gitlab.archlinux.org/archlinux/packaging/packages/rpi-imager/-/raw/main/remove-vendoring.patch
-
patches = [ ./remove-vendoring-and-lsblk-check.patch ];
postPatch = ''
-
substituteInPlace ../debian/org.raspberrypi.rpi-imager.desktop \
--replace-fail "/usr/bin/" ""
'';
nativeBuildInputs = [
cmake
pkg-config
qt6.wrapQtAppsHook
wrapGAppsHook4
-
util-linux
];
buildInputs = [
···
qt6.qtwayland
];
-
cmakeFlags =
-
# Disable vendoring
-
[
-
(lib.cmakeBool "ENABLE_VENDORING" false)
-
]
-
# Disable telemetry and update check.
-
++ lib.optionals (!enableTelemetry) [
-
(lib.cmakeBool "ENABLE_CHECK_VERSION" false)
-
(lib.cmakeBool "ENABLE_TELEMETRY" false)
-
];
qtWrapperArgs = [
"--unset QT_QPA_PLATFORMTHEME"
···
ymarkus
anthonyroussel
];
-
platforms = lib.platforms.all;
-
# does not build on darwin
-
broken = stdenv.hostPlatform.isDarwin;
};
})
···
qt6,
wrapGAppsHook4,
testers,
+
writeShellScriptBin,
xz,
gnutls,
zstd,
···
stdenv.mkDerivation (finalAttrs: {
pname = "rpi-imager";
+
version = "1.9.6";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "rpi-imager";
tag = "v${finalAttrs.version}";
+
hash = "sha256-HJLl0FOseZgW3DMi8M3SqIN/UHBDkIc09vKcenhSnO8=";
};
+
patches = [ ./remove-vendoring.patch ];
postPatch = ''
+
substituteInPlace debian/org.raspberrypi.rpi-imager.desktop \
--replace-fail "/usr/bin/" ""
'';
+
preConfigure = ''
+
cd src
+
'';
+
nativeBuildInputs = [
cmake
pkg-config
qt6.wrapQtAppsHook
wrapGAppsHook4
+
# Fool upstream's cmake lsblk check a bit
+
(writeShellScriptBin "lsblk" ''
+
echo "our lsblk has --json support but it doesn't work in our sandbox"
+
'')
];
buildInputs = [
···
qt6.qtwayland
];
+
cmakeFlags = [
+
# Isn't relevant for Nix
+
(lib.cmakeBool "ENABLE_CHECK_VERSION" false)
+
(lib.cmakeBool "ENABLE_TELEMETRY" enableTelemetry)
+
];
qtWrapperArgs = [
"--unset QT_QPA_PLATFORMTHEME"
···
ymarkus
anthonyroussel
];
+
platforms = lib.platforms.linux ++ lib.platforms.darwin;
+
# could not find xz
+
badPlatforms = lib.platforms.darwin;
};
})
-575
pkgs/by-name/rp/rpi-imager/remove-vendoring-and-lsblk-check.patch
···
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -4,6 +4,7 @@
-
cmake_minimum_required(VERSION 3.22)
-
OPTION (ENABLE_CHECK_VERSION "Check for version updates" ON)
-
OPTION (ENABLE_TELEMETRY "Enable sending telemetry" ON)
-
+OPTION (ENABLE_VENDORING "Use vendored dependencies" ON)
-
-
# We use FetchContent_Populate() instead of FetchContent_MakeAvailable() to allow EXCLUDE_FROM_ALL
-
# This prevents the dependencies from being built by default, which is our desired behavior
-
@@ -58,410 +59,156 @@ if (APPLE)
-
endforeach()
-
endif(APPLE)
-
-
+## Preferentially build the bundled code. Full vendoring is to follow in a later version.
-
+
-
# Bundled code will occasionally use identical options - eg, BUILD_TESTING.
-
set(BUILD_TESTING OFF)
-
set(BUILD_STATIC_LIBS ON)
-
set(BUILD_SHARED_LIBS OFF)
-
-
-include(FetchContent)
-
-
-
-# Bundled liblzma
-
-set(LIBLZMA_VERSION "5.8.1")
-
-FetchContent_Declare(xz
-
- GIT_REPOSITORY https://github.com/tukaani-project/xz.git
-
- GIT_TAG v${LIBLZMA_VERSION}
-
- ${USE_OVERRIDE_FIND_PACKAGE}
-
-)
-
-set(XZ_MICROLZMA_DECODER OFF CACHE BOOL "" FORCE)
-
-set(XZ_MICROLZMA_ENCODER OFF CACHE BOOL "" FORCE)
-
-set(XZ_LZIP_DECODER OFF CACHE BOOL "" FORCE)
-
-set(XZ_ENABLE_SANDBOX OFF CACHE BOOL "" FORCE)
-
-set(XZ_BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
-
-set(XZ_ENABLE_DOXYGEN OFF CACHE BOOL "" FORCE)
-
-set(XZ_DECODERS
-
- lzma1
-
- lzma2
-
- delta
-
-)
-
-set(XZ_ENCODERS
-
- lzma1
-
- lzma2
-
- delta
-
-)
-
-set(CREATE_LZMA_SYMLINKS OFF CACHE BOOL "" FORCE)
-
-set(CREATE_XZ_SYMLINKS OFF CACHE BOOL "" FORCE)
-
-FetchContent_GetProperties(xz)
-
-if(NOT xz_POPULATED)
-
- FetchContent_Populate(xz)
-
- add_subdirectory(${xz_SOURCE_DIR} ${xz_BINARY_DIR} EXCLUDE_FROM_ALL)
-
-endif()
-
-unset(XZ_MICROLZMA_DECODER)
-
-unset(XZ_MICROLZMA_ENCODER)
-
-unset(XZ_LZIP_DECODER)
-
-unset(XZ_ENABLE_SANDBOX)
-
-unset(XZ_BUILD_SHARED_LIBS)
-
-unset(XZ_ENABLE_DOXYGEN)
-
-unset(CREATE_LZMA_SYMLINKS)
-
-unset(CREATE_XZ_SYMLINKS)
-
-set(LIBLZMA_FOUND true CACHE BOOL "" FORCE)
-
-set(LIBLZMA_INCLUDE_DIR ${xz_SOURCE_DIR}/src/liblzma/api CACHE PATH "" FORCE)
-
-set(LIBLZMA_INCLUDE_DIRS ${xz_SOURCE_DIR}/src/liblzma/api CACHE PATH "" FORCE)
-
-set(LIBLZMA_LIBRARY liblzma CACHE FILEPATH "" FORCE)
-
-set(LIBLZMA_LIBRARIES ${xz_BINARY_DIR}/liblzma.a CACHE FILEPATH "" FORCE)
-
-set(LIBLZMA_HAS_AUTO_DECODER true CACHE BOOL "" FORCE)
-
-set(LIBLZMA_HAS_EASY_ENCODER true CACHE BOOL "" FORCE)
-
-set(LIBLZMA_HAS_LZMA_PRESET true CACHE BOOL "" FORCE)
-
-
-
-# Bundled zstd
-
-set(ZSTD_VERSION "1.5.7")
-
-FetchContent_Declare(zstd
-
- GIT_REPOSITORY https://github.com/facebook/zstd.git
-
- GIT_TAG v${ZSTD_VERSION}
-
- SOURCE_SUBDIR build/cmake
-
- ${USE_OVERRIDE_FIND_PACKAGE}
-
-)
-
-set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE)
-
-set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE)
-
-set(ZSTD_BUILD_STATIC ON CACHE BOOL "" FORCE)
-
-set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-
-set(ZSTD_BUILD_DICTBUILDER OFF CACHE BOOL "" FORCE)
-
-FetchContent_GetProperties(zstd)
-
-if(NOT zstd_POPULATED)
-
- FetchContent_Populate(zstd)
-
- add_subdirectory(${zstd_SOURCE_DIR}/build/cmake ${zstd_BINARY_DIR} EXCLUDE_FROM_ALL)
-
-endif()
-
-unset(ZSTD_BUILD_PROGRAMS)
-
-unset(ZSTD_BUILD_SHARED)
-
-unset(ZSTD_BUILD_STATIC)
-
-unset(ZSTD_BUILD_TESTS)
-
-unset(ZSTD_BUILD_DICTBUILDER)
-
-set(ZSTD_FOUND true CACHE BOOL "" FORCE)
-
-set(Zstd_VERSION ${ZSTD_VERSION} CACHE STRING "" FORCE)
-
-set(Zstd_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-src/lib CACHE PATH "" FORCE)
-
-set(ZSTD_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-src/lib CACHE PATH "" FORCE)
-
-set(Zstd_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-src/lib CACHE PATH "" FORCE)
-
-set(ZSTD_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-src/lib CACHE PATH "" FORCE)
-
-set(Zstd_LIBRARIES libzstd_static CACHE FILEPATH "" FORCE)
-
-set(ZSTD_LIBRARIES libzstd_static CACHE FILEPATH "" FORCE)
-
-set(ZSTD_LIBRARY ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-build/lib/libzstd.a CACHE FILEPATH "" FORCE)
-
-
-
-# Remote nghttp2
-
-set(NGHTTP2_VERSION "1.65.0")
-
-FetchContent_Declare(nghttp2
-
- GIT_REPOSITORY https://github.com/nghttp2/nghttp2.git
-
- GIT_TAG v${NGHTTP2_VERSION}
-
- ${USE_OVERRIDE_FIND_PACKAGE}
-
-)
-
-set(BUILD_EXAMPLES OFF)
-
-set(ENABLE_LIB_ONLY ON)
-
-set(ENABLE_FAILMALLOC OFF)
-
-FetchContent_GetProperties(nghttp2)
-
-if(NOT nghttp2_POPULATED)
-
- FetchContent_Populate(nghttp2)
-
- add_subdirectory(${nghttp2_SOURCE_DIR} ${nghttp2_BINARY_DIR} EXCLUDE_FROM_ALL)
-
-endif()
-
-unset(ENABLE_LIB_ONLY)
-
-unset(ENABLE_FAILMALLOC)
-
-unset(BUILD_EXAMPLES)
-
-set(NGHTTP2_LIBRARIES nghttp2_static CACHE FILEPATH "" FORCE)
-
-set(NGHTTP2_LIBRARY nghttp2_static CACHE FILEPATH "" FORCE)
-
-set(NGHTTP2_INCLUDE_DIR ${nghttp2_SOURCE_DIR}/lib CACHE PATH "" FORCE)
-
-set(NGHTTP2_INCLUDE_DIRS ${nghttp2_SOURCE_DIR}/lib CACHE PATH "" FORCE)
-
-set(NGHTTP2_FOUND true CACHE BOOL "" FORCE)
-
-
-
-
-
-# Bundled zlib
-
-set(ZLIB_VERSION "1.4.1.1")
-
-set(ZLIB_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
-
-set(ZLIB_BUILD_SHARED OFF CACHE BOOL "" FORCE)
-
-set(ZLIB_BUILD_STATIC ON CACHE BOOL "" FORCE)
-
-set(ZLIB_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-
-set(SKIP_INSTALL_ALL ON CACHE BOOL "" FORCE)
-
-FetchContent_Declare(zlib
-
- GIT_REPOSITORY https://github.com/madler/zlib.git
-
- GIT_TAG 5a82f71ed1dfc0bec044d9702463dbdf84ea3b71 # v1.4.1.1, as of 27/05/2025
-
- ${USE_OVERRIDE_FIND_PACKAGE}
-
-)
-
-FetchContent_GetProperties(zlib)
-
-if(NOT zlib_POPULATED)
-
- FetchContent_Populate(zlib)
-
- add_subdirectory(${zlib_SOURCE_DIR} ${zlib_BINARY_DIR} EXCLUDE_FROM_ALL)
-
-endif()
-
-unset(ZLIB_BUILD_EXAMPLES)
-
-unset(ZLIB_BUILD_SHARED)
-
-unset(ZLIB_BUILD_STATIC)
-
-unset(ZLIB_BUILD_TESTS)
-
-unset(SKIP_INSTALL_ALL)
-
-# Set zlib variables that libarchive's CMake will use
-
-set(ZLIB_USE_STATIC_LIBS ON CACHE BOOL "" FORCE) # This is to help FindZlib.cmake find the static library over the shared one
-
-set(ZLIB_ROOT ${zlib_SOURCE_DIR} CACHE PATH "" FORCE)
-
-
-
-# On Windows with MinGW, zlib builds with .a extension, not .lib
-
-# Set the correct library path before find_package
-
-if (WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
-
- set(ZLIB_LIBRARY ${zlib_BINARY_DIR}/libzlibstatic.a CACHE FILEPATH "" FORCE)
-
- set(ZLIB_LIBRARIES ${zlib_BINARY_DIR}/libzlibstatic.a CACHE STRING "" FORCE)
-
-else()
-
- set(ZLIB_LIBRARY ${zlib_BINARY_DIR}/libz.a CACHE FILEPATH "" FORCE)
-
- set(ZLIB_LIBRARIES ${zlib_BINARY_DIR}/libz.a CACHE STRING "" FORCE)
-
-endif()
-
-
-
-# Since we're building zlib ourselves with EXCLUDE_FROM_ALL, we don't need find_package
-
-# Instead, we'll create the ZLIB::ZLIB target manually and set all required variables
-
-set(ZLIB_INCLUDE_DIR ${zlib_SOURCE_DIR} CACHE PATH "" FORCE)
-
-set(ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} CACHE PATH "" FORCE)
-
-
-
-# Create ZLIB::ZLIB target manually since we're not using find_package
-
-# Set zlib variables that other packages expect
-
-set(ZLIB_FOUND TRUE CACHE BOOL "" FORCE)
-
-add_library(ZLIB::ZLIB STATIC IMPORTED)
-
-if (WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
-
- set_target_properties(ZLIB::ZLIB PROPERTIES
-
- IMPORTED_LOCATION "${zlib_BINARY_DIR}/libzlibstatic.a"
-
- INTERFACE_INCLUDE_DIRECTORIES "${zlib_SOURCE_DIR};${zlib_BINARY_DIR}"
-
- )
-
- add_dependencies(ZLIB::ZLIB zlibstatic)
-
-else()
-
- set_target_properties(ZLIB::ZLIB PROPERTIES
-
- IMPORTED_LOCATION "${zlib_BINARY_DIR}/libz.a"
-
- INTERFACE_INCLUDE_DIRECTORIES "${zlib_SOURCE_DIR};${zlib_BINARY_DIR}"
-
+if(ENABLE_VENDORING)
-
+ # Bundled liblzma
-
+ set(XZ_MICROLZMA_DECODER OFF)
-
+ set(XZ_MICROLZMA_ENCODER OFF)
-
+ set(XZ_LZIP_DECODER OFF)
-
+ set(XZ_ENABLE_SANDBOX OFF)
-
+ set(XZ_BUILD_SHARED_LIBS OFF)
-
+ set(XZ_ENABLE_DOXYGEN OFF)
-
+ set(XZ_DECODERS
-
+ lzma1
-
+ lzma2
-
+ delta
-
)
-
- add_dependencies(ZLIB::ZLIB zlibstatic)
-
-endif()
-
-
-
-# Debug output
-
-message(STATUS "ZLIB_LIBRARY set to: ${ZLIB_LIBRARY}")
-
-message(STATUS "ZLIB_LIBRARIES set to: ${ZLIB_LIBRARIES}")
-
-message(STATUS "ZLIB_INCLUDE_DIRS set to: ${ZLIB_INCLUDE_DIRS}")
-
-
-
-# Bundled libarchive
-
-
-
-set(ENABLE_WERROR OFF CACHE BOOL "")
-
-set(ENABLE_INSTALL OFF CACHE BOOL "")
-
-set(ENABLE_TEST OFF CACHE BOOL "")
-
-set(ENABLE_CNG OFF CACHE BOOL "")
-
-set(ENABLE_MBEDTLS OFF CACHE BOOL "")
-
-set(ENABLE_NETTLE OFF CACHE BOOL "")
-
-set(ENABLE_OPENSSL OFF CACHE BOOL "")
-
-# Configure libarchive with explicit zlib support
-
-set(ENABLE_ZLIB ON CACHE BOOL "")
-
-set(ENABLE_BZip2 OFF CACHE BOOL "")
-
-set(ENABLE_LZ4 OFF CACHE BOOL "")
-
-set(ENABLE_LZO OFF CACHE BOOL "")
-
-set(ENABLE_LIBB2 OFF CACHE BOOL "")
-
-set(ENABLE_LIBXML2 OFF CACHE BOOL "")
-
-set(ENABLE_EXPAT OFF CACHE BOOL "")
-
-set(ENABLE_PCREPOSIX OFF CACHE BOOL "")
-
-set(ENABLE_PCRE2POSIX OFF CACHE BOOL "")
-
-set(ENABLE_LIBGCC OFF CACHE BOOL "")
-
-set(ENABLE_TAR OFF CACHE BOOL "")
-
-set(ENABLE_CPIO OFF CACHE BOOL "")
-
-set(ENABLE_CAT OFF CACHE BOOL "")
-
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "")
-
-set(ARCHIVE_BUILD_STATIC_LIBS ON CACHE BOOL "")
-
-set(ARCHIVE_BUILD_EXAMPLES OFF CACHE BOOL "")
-
-set(ENABLE_ZSTD ON CACHE BOOL "")
-
-set(POSIX_REGEX_LIB "libc" CACHE STRING "" FORCE)
-
-set(LIBARCHIVE_VERSION "3.8.0")
-
-
-
-# Create a patch script to fix ZSTD detection in libarchive
-
-set(LIBARCHIVE_PATCH_FILE "${CMAKE_CURRENT_BINARY_DIR}/libarchive_zstd_patch.cmake")
-
-file(WRITE ${LIBARCHIVE_PATCH_FILE} "
-
-# Read the original CMakeLists.txt
-
-file(READ \"\${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt\" CONTENT)
-
-
-
-# Find the start and end of the ZSTD section
-
-string(FIND \"\${CONTENT}\" \"IF(ZSTD_FOUND)\" ZSTD_START)
-
-string(FIND \"\${CONTENT}\" \"MARK_AS_ADVANCED(CLEAR ZSTD_INCLUDE_DIR)\" ZSTD_END)
-
-
-
-if(ZSTD_START GREATER -1 AND ZSTD_END GREATER -1)
-
- # Calculate positions
-
- math(EXPR ZSTD_END \"\${ZSTD_END} + 40\") # Length of \"MARK_AS_ADVANCED(CLEAR ZSTD_INCLUDE_DIR)\"
-
-
-
- # Extract parts before and after the ZSTD section
-
- string(SUBSTRING \"\${CONTENT}\" 0 \${ZSTD_START} BEFORE_ZSTD)
-
- string(SUBSTRING \"\${CONTENT}\" \${ZSTD_END} -1 AFTER_ZSTD)
-
-
-
- # Create the new ZSTD section
-
- set(NEW_ZSTD_SECTION \"IF(ZSTD_FOUND)
-
- SET(HAVE_ZSTD_H 1)
-
- INCLUDE_DIRECTORIES(\\\${ZSTD_INCLUDE_DIR})
-
- LIST(APPEND ADDITIONAL_LIBS \\\${ZSTD_LIBRARY})
-
-
-
- # Check if ZSTD variables were provided externally (indicating static build)
-
- get_property(ZSTD_LIB_IS_CACHE CACHE ZSTD_LIBRARY PROPERTY TYPE)
-
- get_property(ZSTD_INC_IS_CACHE CACHE ZSTD_INCLUDE_DIR PROPERTY TYPE)
-
- if(ZSTD_LIB_IS_CACHE AND ZSTD_INC_IS_CACHE)
-
- # Skip function checks for static builds and assume all functions are available
-
- message(STATUS \\\"Using provided ZSTD library: \\\${ZSTD_LIBRARY}\\\")
-
- SET(HAVE_LIBZSTD 1)
-
- SET(HAVE_ZSTD_compressStream 1)
-
- SET(HAVE_ZSTD_minCLevel 1)
-
- else()
-
- # Original function checks for dynamic builds
-
- CMAKE_PUSH_CHECK_STATE()
-
- SET(CMAKE_REQUIRED_LIBRARIES \\\${ZSTD_LIBRARY})
-
- SET(CMAKE_REQUIRED_INCLUDES \\\${ZSTD_INCLUDE_DIR})
-
- CHECK_FUNCTION_EXISTS(ZSTD_decompressStream HAVE_LIBZSTD)
-
- CHECK_FUNCTION_EXISTS(ZSTD_compressStream HAVE_ZSTD_compressStream)
-
- CHECK_FUNCTION_EXISTS(ZSTD_minCLevel HAVE_ZSTD_minCLevel)
-
- CMAKE_POP_CHECK_STATE()
-
- endif()
-
-ENDIF(ZSTD_FOUND)
-
-MARK_AS_ADVANCED(CLEAR ZSTD_INCLUDE_DIR)\")
-
-
-
- # Combine the parts
-
- set(NEW_CONTENT \"\${BEFORE_ZSTD}\${NEW_ZSTD_SECTION}\")
-
-
-
- # Write the modified content back
-
- file(WRITE \"\${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt\" \"\${NEW_CONTENT}\${AFTER_ZSTD}\")
-
- message(STATUS \"Patched libarchive CMakeLists.txt for static ZSTD support\")
-
-else()
-
- message(WARNING \"Could not find ZSTD section in libarchive CMakeLists.txt\")
-
-endif()
-
-")
-
-
-
-FetchContent_Declare(libarchive
-
- GIT_REPOSITORY https://github.com/libarchive/libarchive.git
-
- GIT_TAG v${LIBARCHIVE_VERSION}
-
- PATCH_COMMAND ${CMAKE_COMMAND} -P ${LIBARCHIVE_PATCH_FILE}
-
- ${USE_OVERRIDE_FIND_PACKAGE}
-
-)
-
-FetchContent_GetProperties(libarchive)
-
-if(NOT libarchive_POPULATED)
-
- FetchContent_Populate(libarchive)
-
- add_subdirectory(${libarchive_SOURCE_DIR} ${libarchive_BINARY_DIR} EXCLUDE_FROM_ALL)
-
-endif()
-
-
-
-# Ensure libarchive is built after zlib
-
-if (TARGET archive_static AND TARGET ZLIB::ZLIB)
-
- add_dependencies(archive_static ZLIB::ZLIB)
-
-endif()
-
-
-
-unset(POSIX_REGEX_LIB)
-
-unset(ENABLE_WERROR)
-
-unset(ENABLE_INSTALL)
-
-unset(ENABLE_TEST)
-
-unset(ENABLE_CNG)
-
-unset(ENABLE_MBEDTLS)
-
-unset(ENABLE_NETTLE)
-
-unset(ENABLE_OPENSSL)
-
-unset(ENABLE_ZLIB)
-
-unset(ENABLE_BZip2)
-
-unset(ENABLE_LZ4)
-
-unset(ENABLE_LZO)
-
-unset(ENABLE_LIBB2)
-
-unset(ENABLE_LIBXML2)
-
-unset(ENABLE_EXPAT)
-
-unset(ENABLE_PCREPOSIX)
-
-unset(ENABLE_PCRE2POSIX)
-
-unset(ENABLE_LIBGCC)
-
-unset(ENABLE_TAR)
-
-unset(ENABLE_CPIO)
-
-unset(ENABLE_CAT)
-
-unset(ARCHIVE_BUILD_SHARED_LIBS)
-
-unset(ENABLE_ZSTD)
-
-set(LibArchive_FOUND true CACHE BOOL "" FORCE)
-
-set(LibArchive_LIBRARIES archive_static CACHE FILEPATH "" FORCE)
-
-set(LibArchive_INCLUDE_DIR ${libarchive_SOURCE_DIR}/libarchive CACHE PATH "" FORCE)
-
-set(LibArchive_INCLUDE_DIRS ${libarchive_SOURCE_DIR}/libarchive CACHE PATH "" FORCE)
-
-
-
-# Bundled libcurl
-
-set(CURL_VERSION "8.13.0")
-
-string(REPLACE "." "_" CURL_TAG ${CURL_VERSION})
-
-FetchContent_Declare(curl
-
- GIT_REPOSITORY https://github.com/curl/curl.git
-
- GIT_TAG curl-${CURL_TAG}
-
- ${USE_OVERRIDE_FIND_PACKAGE}
-
-)
-
-set(BUILD_CURL_EXE OFF CACHE BOOL "" FORCE)
-
-set(BUILD_LIBCURL_DOCS OFF CACHE BOOL "" FORCE)
-
-set(BUILD_MISC_DOCS OFF CACHE BOOL "" FORCE)
-
-set(ENABLE_CURL_MANUAL OFF CACHE BOOL "" FORCE)
-
-set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
-
-set(CURL_USE_LIBPSL OFF CACHE BOOL "" FORCE)
-
-set(CURL_USE_LIBSSH2 OFF CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_ALTSVC ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_KERBEROS_AUTH ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_DICT ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_DISABLE_FORM_API ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_FTP ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_GOPHER ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_IMAP ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_LDAP ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_LDAPS ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_MQTT ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_NETRC ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_POP3 ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_RTSP ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_SMTP ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_TELNET ON CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_TFTP ON CACHE BOOL "" FORCE)
-
-set(CURL_ZSTD ON)
-
-set(CURL_ENABLE_EXPORT_TARGET OFF CACHE BOOL "" FORCE)
-
-set(CURL_DISABLE_INSTALL ON)
-
-if (APPLE)
-
- # TODO: SecureTransport is a deprecated API in macOS, supporting
-
- # only up to TLS v1.2. cURL has not implemented the replacement,
-
- # Network.framework, and so we will need to select an alternative.
-
- # Best recommendation: Libressl, as used by Apple in the curl binary
-
- # on macOS.
-
- set(CURL_USE_SECTRANSP ON)
-
- set(CURL_DEFAULT_SSL_BACKEND "secure-transport")
-
- set(USE_APPLE_IDN ON)
-
-else()
-
- if (WIN32)
-
- set(CURL_USE_SCHANNEL ON)
-
- set(CURL_DEFAULT_SSL_BACKEND "schannel")
-
- else ()
-
- set(CURL_USE_GNUTLS ON)
-
- set(CURL_DEFAULT_SSL_BACKEND "gnutls")
-
- endif(WIN32)
-
-endif(APPLE)
-
-
-
-FetchContent_GetProperties(curl)
-
-if(NOT curl_POPULATED)
-
- FetchContent_Populate(curl)
-
- add_subdirectory(${curl_SOURCE_DIR} ${curl_BINARY_DIR} EXCLUDE_FROM_ALL)
-
+ set(XZ_ENCODERS "")
-
+ set(CREATE_LZMA_SYMLINKS OFF)
-
+ set(CREATE_XZ_SYMLINKS OFF)
-
+ add_subdirectory(dependencies/xz-5.8.1)
-
+ set(LIBLZMA_FOUND true)
-
+ set(LIBLZMA_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/xz-5.8.1/src/liblzma/api FORCE)
-
+ set(LIBLZMA_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/xz-5.8.1/src/liblzma/api FORCE)
-
+ set(LIBLZMA_LIBRARY liblzma)
-
+ set(LIBLZMA_LIBRARIES liblzma)
-
+
-
+ # Bundled zstd
-
+ set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE)
-
+ set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE)
-
+ set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-
+ set(ZSTD_BUILD_DICTBUILDER OFF CACHE BOOL "" FORCE)
-
+ add_subdirectory(dependencies/zstd-1.5.7/build/cmake)
-
+ set(Zstd_FOUND true)
-
+ set(ZSTD_FOUND true)
-
+ set(Zstd_VERSION "1.5.7")
-
+ set(ZSTD_VERSION "1.5.7")
-
+ set(Zstd_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.7/lib)
-
+ set(ZSTD_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.7/lib)
-
+ set(Zstd_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.7/lib)
-
+ set(ZSTD_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/zstd-1.5.7/lib)
-
+ set(Zstd_LIBRARIES libzstd_static)
-
+ set(ZSTD_LIBRARIES libzstd_static)
-
+ set(ZSTD_LIBRARY libzstd_static)
-
+
-
+ # Bundled zlib
-
+ set(ZLIB_BUILD_EXAMPLES OFF)
-
+ set(SKIP_INSTALL_ALL ON)
-
+ add_subdirectory(dependencies/zlib-1.4.1.1)
-
+ set(ZLIB_FOUND TRUE)
-
+ set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/zlib-1.4.1.1 CACHE PATH "zlib include dir")
-
+ set(ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/zlib-1.4.1.1 CACHE PATH "zlib include dir")
-
+ set(ZLIB_LIBRARY zlibstatic)
-
+ set(ZLIB_LIBRARIES zlibstatic)
-
+
-
+ # Bundled libarchive
-
+ set(ARCHIVE_ENABLE_WERROR OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_INSTALL OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_TEST OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_CNG OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_MBEDTLS OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_NETTLE OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_OPENSSL OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_BZip2 OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_LZ4 OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_LZO OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_LIBB2 OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_LIBXML2 OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_EXPAT OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_PCREPOSIX OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_PCRE2POSIX OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_LIBGCC OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_TAR OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_CPIO OFF CACHE BOOL "")
-
+ set(ARCHIVE_ENABLE_CAT OFF CACHE BOOL "")
-
+ set(ARCHIVE_BUILD_SHARED_LIBS OFF CACHE BOOL "")
-
+ add_subdirectory(dependencies/libarchive-3.7.7)
-
+ set(LibArchive_FOUND true)
-
+ set(LibArchive_LIBRARIES archive_static)
-
+ set(LibArchive_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/libarchive-3.7.8/libarchive)
-
+
-
+ # Bundled libcurl
-
+ set(CMAKE_CURL_INCLUDES)
-
+ set(BUILD_CURL_EXE OFF CACHE BOOL "" FORCE)
-
+ set(BUILD_LIBCURL_DOCS OFF CACHE BOOL "" FORCE)
-
+ set(ENABLE_CURL_MANUAL OFF CACHE BOOL "" FORCE)
-
+ set(CURL_USE_LIBPSL OFF)
-
+ set(CURL_USE_LIBSSH2 OFF)
-
+ set(CURL_DISABLE_ALTSVC ON)
-
+ set(CURL_DISABLE_KERBEROS_AUTH ON)
-
+ set(CURL_DISABLE_DICT ON)
-
+ set(CURL_DISABLE_DISABLE_FORM_API ON)
-
+ set(CURL_DISABLE_FTP ON)
-
+ set(CURL_DISABLE_GOPHER ON)
-
+ set(CURL_DISABLE_IMAP ON)
-
+ set(CURL_DISABLE_LDAP ON)
-
+ set(CURL_DISABLE_LDAPS ON)
-
+ set(CURL_DISABLE_MQTT ON)
-
+ set(CURL_DISABLE_NETRC ON)
-
+ set(CURL_DISABLE_POP3 ON)
-
+ set(CURL_DISABLE_RTSP ON)
-
+ set(CURL_DISABLE_SMTP ON)
-
+ set(CURL_DISABLE_TELNET ON)
-
+ set(CURL_DISABLE_TFTP ON)
-
+ set(CURL_ZSTD ON)
-
+ set(CURL_ENABLE_EXPORT_TARGET OFF CACHE BOOL "" FORCE)
-
+ set(CURL_DISABLE_INSTALL ON)
-
+ if (APPLE)
-
+ # TODO: SecureTransport is a deprecated API in macOS, supporting
-
+ # only up to TLS v1.2. cURL has not implemented the replacement,
-
+ # Network.framework, and so we will need to select an alternative.
-
+ # Best recommendation: Libressl, as used by Apple in the curl binary
-
+ # on macOS.
-
+ set(CURL_USE_SECTRANSP ON)
-
+ set(CURL_DEFAULT_SSL_BACKEND "secure-transport")
-
+ set(USE_APPLE_IDN ON)
-
+ else()
-
+ if (WIN32)
-
+ set(CURL_USE_SCHANNEL ON)
-
+ set(CURL_DEFAULT_SSL_BACKEND "schannel")
-
+ else ()
-
+ set(CURL_USE_GNUTLS ON)
-
+ set(CURL_DEFAULT_SSL_BACKEND "gnutls")
-
+ endif(WIN32)
-
+ endif(APPLE)
-
+
-
+ add_subdirectory(dependencies/curl-8.13.0)
-
+ set(CURL_FOUND true)
-
+ set(CURL_LIBRARIES libcurl_static)
-
+ set(CURL_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/dependencies/curl-8.13.0/include)
-
+ set(CURL_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/dependencies/curl-8.13.0/include)
-
+
-
+elseif (NOT ENABLE_VENDORING AND UNIX)
-
+ # Find the libraries that were subject to vendoring in the system instead,
-
+ # To keep the possibility of delivery via Linux distro packages
-
+ find_package(ZLIB)
-
+ if(ZLIB_FOUND)
-
+ set(EXTRALIBS ${EXTRALIBS} ZLIB::ZLIB)
-
+ endif()
-
+ find_package(LibLZMA)
-
+ if(LIBLZMA_FOUND)
-
+ set(EXTRALIBS ${EXTRALIBS} LibLZMA::LibLZMA)
-
+ endif()
-
+ find_package(CURL 8.13.0 REQUIRED)
-
+ find_package(LibArchive 3.7.8 REQUIRED)
-
endif()
-
-
-unset(BUILD_CURL_EXE)
-
-unset(BUILD_LIBCURL_DOCS)
-
-unset(BUILD_MISC_DOCS)
-
-unset(ENABLE_CURL_MANUAL)
-
-unset(BUILD_EXAMPLES)
-
-unset(CURL_USE_LIBPSL)
-
-unset(CURL_USE_LIBSSH2)
-
-unset(CURL_DISABLE_ALTSVC)
-
-unset(CURL_DISABLE_KERBEROS_AUTH)
-
-unset(CURL_DISABLE_DICT)
-
-unset(CURL_DISABLE_DISABLE_FORM_API)
-
-unset(CURL_DISABLE_FTP)
-
-unset(CURL_DISABLE_GOPHER)
-
-unset(CURL_DISABLE_IMAP)
-
-unset(CURL_DISABLE_LDAP)
-
-unset(CURL_DISABLE_LDAPS)
-
-unset(CURL_DISABLE_MQTT)
-
-unset(CURL_DISABLE_NETRC)
-
-unset(CURL_DISABLE_POP3)
-
-unset(CURL_DISABLE_RTSP)
-
-unset(CURL_DISABLE_SMTP)
-
-unset(CURL_DISABLE_TELNET)
-
-unset(CURL_DISABLE_TFTP)
-
-unset(CURL_ZSTD)
-
-unset(CURL_ENABLE_EXPORT_TARGET)
-
-unset(CURL_DISABLE_INSTALL)
-
-unset(CURL_USE_SECTRANSP)
-
-unset(CURL_DEFAULT_SSL_BACKEND)
-
-unset(USE_APPLE_IDN)
-
-unset(CURL_USE_SCHANNEL)
-
-unset(CURL_USE_GNUTLS)
-
-
-
-set(CURL_FOUND true CACHE BOOL "" FORCE)
-
-set(CURL_LIBRARIES libcurl_static CACHE FILEPATH "" FORCE)
-
-set(CURL_INCLUDE_DIR ${curl_SOURCE_DIR}/include CACHE PATH "" FORCE)
-
-set(CURL_INCLUDE_DIRS ${curl_SOURCE_DIR}/include CACHE PATH "" FORCE)
-
-
-
# Adding headers explicity so they are displayed in Qt Creator
-
set(HEADERS config.h imagewriter.h networkaccessmanagerfactory.h nan.h drivelistitem.h drivelistmodel.h drivelistmodelpollthread.h driveformatthread.h powersaveblocker.h cli.h
-
devicewrapper.h devicewrapperblockcacheentry.h devicewrapperpartition.h devicewrapperstructs.h devicewrapperfatpartition.h wlancredentials.h
-
@@ -928,11 +675,6 @@ else()
-
if (NOT LSBLK)
-
message(FATAL_ERROR "Unable to locate lsblk (used for disk enumeration)")
-
endif()
-
-
-
- execute_process(COMMAND "${LSBLK}" "--json" OUTPUT_QUIET RESULT_VARIABLE ret)
-
- if (ret EQUAL "1")
-
- message(FATAL_ERROR "util-linux package too old. lsblk does not support --json (used for disk enumeration)")
-
- endif()
-
endif()
-
-
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
···
+94
pkgs/by-name/rp/rpi-imager/remove-vendoring.patch
···
···
+
diff --git c/src/CMakeLists.txt w/src/CMakeLists.txt
+
index f9e020ce..c5f71914 100644
+
--- c/src/CMakeLists.txt
+
+++ w/src/CMakeLists.txt
+
@@ -68,6 +68,10 @@ set(BUILD_SHARED_LIBS OFF)
+
+
include(FetchContent)
+
+
+find_package(LibLZMA)
+
+if(LIBLZMA_FOUND)
+
+ set(EXTRALIBS ${EXTRALIBS} LibLZMA::LibLZMA)
+
+else()
+
# Bundled liblzma
+
set(LIBLZMA_VERSION "5.8.1")
+
FetchContent_Declare(xz
+
@@ -114,7 +118,10 @@ set(LIBLZMA_LIBRARIES ${xz_BINARY_DIR}/liblzma.a CACHE FILEPATH "" FORCE)
+
set(LIBLZMA_HAS_AUTO_DECODER true CACHE BOOL "" FORCE)
+
set(LIBLZMA_HAS_EASY_ENCODER true CACHE BOOL "" FORCE)
+
set(LIBLZMA_HAS_LZMA_PRESET true CACHE BOOL "" FORCE)
+
+endif()
+
+
+find_package(zstd ${ZSTD_VERSION})
+
+if(NOT zstd_FOUND)
+
# Bundled zstd
+
set(ZSTD_VERSION "1.5.7")
+
FetchContent_Declare(zstd
+
@@ -147,32 +154,12 @@ set(ZSTD_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-src/lib CACHE PATH
+
set(Zstd_LIBRARIES libzstd_static CACHE FILEPATH "" FORCE)
+
set(ZSTD_LIBRARIES libzstd_static CACHE FILEPATH "" FORCE)
+
set(ZSTD_LIBRARY ${CMAKE_CURRENT_BINARY_DIR}/_deps/zstd-build/lib/libzstd.a CACHE FILEPATH "" FORCE)
+
-
+
-# Remote nghttp2
+
-set(NGHTTP2_VERSION "1.66.0")
+
-FetchContent_Declare(nghttp2
+
- GIT_REPOSITORY https://github.com/nghttp2/nghttp2.git
+
- GIT_TAG v${NGHTTP2_VERSION}
+
- ${USE_OVERRIDE_FIND_PACKAGE}
+
-)
+
-set(BUILD_EXAMPLES OFF)
+
-set(ENABLE_LIB_ONLY ON)
+
-set(ENABLE_FAILMALLOC OFF)
+
-FetchContent_GetProperties(nghttp2)
+
-if(NOT nghttp2_POPULATED)
+
- FetchContent_Populate(nghttp2)
+
- add_subdirectory(${nghttp2_SOURCE_DIR} ${nghttp2_BINARY_DIR} EXCLUDE_FROM_ALL)
+
endif()
+
-unset(ENABLE_LIB_ONLY)
+
-unset(ENABLE_FAILMALLOC)
+
-unset(BUILD_EXAMPLES)
+
-set(NGHTTP2_LIBRARIES nghttp2_static CACHE FILEPATH "" FORCE)
+
-set(NGHTTP2_LIBRARY nghttp2_static CACHE FILEPATH "" FORCE)
+
-set(NGHTTP2_INCLUDE_DIR ${nghttp2_SOURCE_DIR}/lib CACHE PATH "" FORCE)
+
-set(NGHTTP2_INCLUDE_DIRS ${nghttp2_SOURCE_DIR}/lib CACHE PATH "" FORCE)
+
-set(NGHTTP2_FOUND true CACHE BOOL "" FORCE)
+
-
+
+
+find_package(ZLIB)
+
+if(ZLIB_FOUND)
+
+ set(EXTRALIBS ${EXTRALIBS} ZLIB::ZLIB)
+
+else()
+
# Bundled zlib
+
set(ZLIB_VERSION "1.4.1.1")
+
set(ZLIB_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
+
@@ -236,7 +223,10 @@ endif()
+
message(STATUS "ZLIB_LIBRARY set to: ${ZLIB_LIBRARY}")
+
message(STATUS "ZLIB_LIBRARIES set to: ${ZLIB_LIBRARIES}")
+
message(STATUS "ZLIB_INCLUDE_DIRS set to: ${ZLIB_INCLUDE_DIRS}")
+
+endif()
+
+
+find_package(LibArchive)
+
+if(NOT LibArchive_FOUND)
+
# Bundled libarchive
+
+
set(ENABLE_WERROR OFF CACHE BOOL "")
+
@@ -368,8 +358,11 @@ set(LibArchive_FOUND true CACHE BOOL "" FORCE)
+
set(LibArchive_LIBRARIES archive_static CACHE FILEPATH "" FORCE)
+
set(LibArchive_INCLUDE_DIR ${libarchive_SOURCE_DIR}/libarchive CACHE PATH "" FORCE)
+
set(LibArchive_INCLUDE_DIRS ${libarchive_SOURCE_DIR}/libarchive CACHE PATH "" FORCE)
+
+endif()
+
+
# Bundled libcurl
+
+find_package(CURL)
+
+if(NOT CURL_FOUND)
+
set(CURL_VERSION "8.14.1")
+
string(REPLACE "." "_" CURL_TAG ${CURL_VERSION})
+
FetchContent_Declare(curl
+
@@ -516,6 +509,7 @@ set(CURL_FOUND true CACHE BOOL "" FORCE)
+
set(CURL_LIBRARIES libcurl_static CACHE FILEPATH "" FORCE)
+
set(CURL_INCLUDE_DIR ${curl_SOURCE_DIR}/include CACHE PATH "" FORCE)
+
set(CURL_INCLUDE_DIRS ${curl_SOURCE_DIR}/include CACHE PATH "" FORCE)
+
+endif()
+
+
# Adding headers explicity so they are displayed in Qt Creator
+
set(HEADERS config.h imagewriter.h networkaccessmanagerfactory.h nan.h drivelistitem.h drivelistmodel.h drivelistmodelpollthread.h driveformatthread.h powersaveblocker.h cli.h