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 { lib 2 , stdenv 3 , fetchgit 4 - , fetchurl 5 , pkg-config 6 , hidapi 7 , libftdi1 ··· 12 , automake 13 , texinfo 14 , git 15 - , libgpiod 16 }: 17 18 stdenv.mkDerivation { ··· 42 ] 43 ++ 44 # 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 - })); 52 53 configurePhase = '' 54 SKIP_SUBMODULE=1 ./bootstrap
··· 1 { lib 2 , stdenv 3 , fetchgit 4 , pkg-config 5 , hidapi 6 , libftdi1 ··· 11 , automake 12 , texinfo 13 , git 14 + , libgpiod_1 15 }: 16 17 stdenv.mkDerivation { ··· 41 ] 42 ++ 43 # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/ 44 + lib.optional stdenv.isLinux libgpiod_1; 45 46 configurePhase = '' 47 SKIP_SUBMODULE=1 ./bootstrap
+2 -8
pkgs/development/embedded/openocd/default.nix
··· 6 , jimtcl 7 , libjaylink 8 , libusb1 9 - , libgpiod 10 11 , enableFtdi ? true, libftdi1 12 ··· 27 buildInputs = [ hidapi jimtcl libftdi1 libjaylink libusb1 ] 28 ++ 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 - })); 37 38 configureFlags = [ 39 "--disable-werror"
··· 6 , jimtcl 7 , libjaylink 8 , libusb1 9 + , libgpiod_1 10 11 , enableFtdi ? true, libftdi1 12 ··· 27 buildInputs = [ hidapi jimtcl libftdi1 libjaylink libusb1 ] 28 ++ 29 # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/ 30 + lib.optional stdenv.isLinux libgpiod_1; 31 32 configureFlags = [ 33 "--disable-werror"
+2 -2
pkgs/tools/misc/flashrom-stable/default.nix
··· 2 , installShellFiles 3 , lib 4 , libftdi1 5 - , libgpiod 6 , libjaylink 7 , libusb1 8 , pciutils ··· 30 libjaylink 31 libusb1 32 ] ++ lib.optionals (!stdenv.isDarwin) [ 33 - libgpiod 34 pciutils 35 ]; 36
··· 2 , installShellFiles 3 , lib 4 , libftdi1 5 + , libgpiod_1 6 , libjaylink 7 , libusb1 8 , pciutils ··· 30 libjaylink 31 libusb1 32 ] ++ lib.optionals (!stdenv.isDarwin) [ 33 + libgpiod_1 34 pciutils 35 ]; 36