Merge pull request #268584 from otavio/fix-flashrom-stable

flashrom-stable: fix build due to incompatibility with libgpiod v2 API

authored by

Thiago Kenji Okada and committed by
GitHub
25dfdc28 ae03901e

+82 -19
+31
pkgs/by-name/li/libgpiod_1/0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch
··· 1 + From 2cc80dc06ea42087788cf27b31821ffa99a22f89 Mon Sep 17 00:00:00 2001 2 + From: Johannes Lode <johannes.lode@dynainstruments.com> 3 + Date: Thu, 14 Nov 2019 10:44:00 +0100 4 + Subject: [PATCH] Drop AC_FUNC_MALLOC and _REALLOC and check for them as 5 + regular functions. 6 + 7 + While cross-compiling there occurred "undefined reference to 8 + `rpl_malloc'", the suggested change fixes the problem. 9 + 10 + Tested for native X86_64 and armv7a-unknown-linux-gnueabihf. 11 + --- 12 + configure.ac | 3 ++- 13 + 1 file changed, 2 insertions(+), 1 deletion(-) 14 + 15 + diff --git a/configure.ac b/configure.ac 16 + index 008499d..b492dc4 100644 17 + --- a/configure.ac 18 + +++ b/configure.ac 19 + @@ -81,7 +81,8 @@ AC_DEFUN([HEADER_NOT_FOUND_CXX], 20 + 21 + # This is always checked (library needs this) 22 + AC_HEADER_STDC 23 + -AC_FUNC_MALLOC 24 + +# AC_FUNC_MALLOC -- does not work while cross-compiling 25 + +AC_CHECK_FUNC([malloc realloc]) 26 + AC_CHECK_FUNC([ioctl], [], [FUNC_NOT_FOUND_LIB([ioctl])]) 27 + AC_CHECK_FUNC([asprintf], [], [FUNC_NOT_FOUND_LIB([asprintf])]) 28 + AC_CHECK_FUNC([scandir], [], [FUNC_NOT_FOUND_LIB([scandir])]) 29 + -- 30 + 2.25.1 31 +
+45
pkgs/by-name/li/libgpiod_1/package.nix
··· 1 + { lib, stdenv, fetchurl, autoreconfHook, autoconf-archive, pkg-config, kmod 2 + , enable-tools ? true 3 + , enablePython ? false, python3, ncurses }: 4 + 5 + stdenv.mkDerivation rec { 6 + pname = "libgpiod"; 7 + version = "1.6.4"; 8 + 9 + src = fetchurl { 10 + url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz"; 11 + sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo="; 12 + }; 13 + 14 + patches = [ 15 + # cross compiling fix 16 + # https://github.com/brgl/libgpiod/pull/45 17 + ./0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch 18 + ]; 19 + 20 + buildInputs = [ kmod ] ++ lib.optionals enablePython [ python3 ncurses ]; 21 + nativeBuildInputs = [ 22 + autoconf-archive 23 + pkg-config 24 + autoreconfHook 25 + ]; 26 + 27 + configureFlags = [ 28 + "--enable-tools=${if enable-tools then "yes" else "no"}" 29 + "--enable-bindings-cxx" 30 + "--prefix=${placeholder "out"}" 31 + ] ++ lib.optional enablePython "--enable-bindings-python"; 32 + 33 + meta = with lib; { 34 + description = "C library and tools for interacting with the linux GPIO character device"; 35 + longDescription = '' 36 + Since linux 4.8 the GPIO sysfs interface is deprecated. User space should use 37 + the character device instead. This library encapsulates the ioctl calls and 38 + data structures behind a straightforward API. 39 + ''; 40 + homepage = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/"; 41 + license = licenses.lgpl2; 42 + maintainers = [ maintainers.expipiplus1 ]; 43 + platforms = platforms.linux; 44 + }; 45 + }
+2 -9
pkgs/development/embedded/openocd-rp2040/default.nix
··· 1 1 { lib 2 2 , stdenv 3 3 , fetchgit 4 - , fetchurl 5 4 , pkg-config 6 5 , hidapi 7 6 , libftdi1 ··· 12 11 , automake 13 12 , texinfo 14 13 , git 15 - , libgpiod 14 + , libgpiod_1 16 15 }: 17 16 18 17 stdenv.mkDerivation { ··· 42 41 ] 43 42 ++ 44 43 # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/ 45 - lib.optional stdenv.isLinux (libgpiod.overrideAttrs (old: rec { 46 - version = "1.6.4"; 47 - src = fetchurl { 48 - url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz"; 49 - sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo="; 50 - }; 51 - })); 44 + lib.optional stdenv.isLinux libgpiod_1; 52 45 53 46 configurePhase = '' 54 47 SKIP_SUBMODULE=1 ./bootstrap
+2 -8
pkgs/development/embedded/openocd/default.nix
··· 6 6 , jimtcl 7 7 , libjaylink 8 8 , libusb1 9 - , libgpiod 9 + , libgpiod_1 10 10 11 11 , enableFtdi ? true, libftdi1 12 12 ··· 27 27 buildInputs = [ hidapi jimtcl libftdi1 libjaylink libusb1 ] 28 28 ++ 29 29 # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/ 30 - lib.optional stdenv.isLinux (libgpiod.overrideAttrs (old: rec { 31 - version = "1.6.4"; 32 - src = fetchurl { 33 - url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz"; 34 - sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo="; 35 - }; 36 - })); 30 + lib.optional stdenv.isLinux libgpiod_1; 37 31 38 32 configureFlags = [ 39 33 "--disable-werror"
+2 -2
pkgs/tools/misc/flashrom-stable/default.nix
··· 2 2 , installShellFiles 3 3 , lib 4 4 , libftdi1 5 - , libgpiod 5 + , libgpiod_1 6 6 , libjaylink 7 7 , libusb1 8 8 , pciutils ··· 30 30 libjaylink 31 31 libusb1 32 32 ] ++ lib.optionals (!stdenv.isDarwin) [ 33 - libgpiod 33 + libgpiod_1 34 34 pciutils 35 35 ]; 36 36