From 12c0a5cab96c3e9eb31d65bce3191ee012ba2462 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sun, 19 Nov 2023 23:27:20 -0300 Subject: [PATCH 1/4] libgpiod_1: restore 1.6.4 version Signed-off-by: Otavio Salvador --- ...LOC-and-_REALLOC-and-check-for-them-.patch | 31 +++++++++++++ pkgs/by-name/li/libgpiod_1/package.nix | 45 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 pkgs/by-name/li/libgpiod_1/0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch create mode 100644 pkgs/by-name/li/libgpiod_1/package.nix diff --git a/pkgs/by-name/li/libgpiod_1/0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch b/pkgs/by-name/li/libgpiod_1/0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch new file mode 100644 index 000000000000..f2ee8e8d3d73 --- /dev/null +++ b/pkgs/by-name/li/libgpiod_1/0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch @@ -0,0 +1,31 @@ +From 2cc80dc06ea42087788cf27b31821ffa99a22f89 Mon Sep 17 00:00:00 2001 +From: Johannes Lode +Date: Thu, 14 Nov 2019 10:44:00 +0100 +Subject: [PATCH] Drop AC_FUNC_MALLOC and _REALLOC and check for them as + regular functions. + +While cross-compiling there occurred "undefined reference to +`rpl_malloc'", the suggested change fixes the problem. + +Tested for native X86_64 and armv7a-unknown-linux-gnueabihf. +--- + configure.ac | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 008499d..b492dc4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -81,7 +81,8 @@ AC_DEFUN([HEADER_NOT_FOUND_CXX], + + # This is always checked (library needs this) + AC_HEADER_STDC +-AC_FUNC_MALLOC ++# AC_FUNC_MALLOC -- does not work while cross-compiling ++AC_CHECK_FUNC([malloc realloc]) + AC_CHECK_FUNC([ioctl], [], [FUNC_NOT_FOUND_LIB([ioctl])]) + AC_CHECK_FUNC([asprintf], [], [FUNC_NOT_FOUND_LIB([asprintf])]) + AC_CHECK_FUNC([scandir], [], [FUNC_NOT_FOUND_LIB([scandir])]) +-- +2.25.1 + diff --git a/pkgs/by-name/li/libgpiod_1/package.nix b/pkgs/by-name/li/libgpiod_1/package.nix new file mode 100644 index 000000000000..ce5a4ac2833d --- /dev/null +++ b/pkgs/by-name/li/libgpiod_1/package.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchurl, autoreconfHook, autoconf-archive, pkg-config, kmod +, enable-tools ? true +, enablePython ? false, python3, ncurses }: + +stdenv.mkDerivation rec { + pname = "libgpiod"; + version = "1.6.4"; + + src = fetchurl { + url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz"; + sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo="; + }; + + patches = [ + # cross compiling fix + # https://github.com/brgl/libgpiod/pull/45 + ./0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch + ]; + + buildInputs = [ kmod ] ++ lib.optionals enablePython [ python3 ncurses ]; + nativeBuildInputs = [ + autoconf-archive + pkg-config + autoreconfHook + ]; + + configureFlags = [ + "--enable-tools=${if enable-tools then "yes" else "no"}" + "--enable-bindings-cxx" + "--prefix=${placeholder "out"}" + ] ++ lib.optional enablePython "--enable-bindings-python"; + + meta = with lib; { + description = "C library and tools for interacting with the linux GPIO character device"; + longDescription = '' + Since linux 4.8 the GPIO sysfs interface is deprecated. User space should use + the character device instead. This library encapsulates the ioctl calls and + data structures behind a straightforward API. + ''; + homepage = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/"; + license = licenses.lgpl2; + maintainers = [ maintainers.expipiplus1 ]; + platforms = platforms.linux; + }; +} From 20414d1a402e36c14e1dd4498e48e2e6153acecd Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sun, 19 Nov 2023 23:33:01 -0300 Subject: [PATCH 2/4] openocd: use libgpiod_1 instead of duplicated expressions Signed-off-by: Otavio Salvador --- pkgs/development/embedded/openocd/default.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pkgs/development/embedded/openocd/default.nix b/pkgs/development/embedded/openocd/default.nix index 954f043a2ade..39e9edc67722 100644 --- a/pkgs/development/embedded/openocd/default.nix +++ b/pkgs/development/embedded/openocd/default.nix @@ -6,7 +6,7 @@ , jimtcl , libjaylink , libusb1 -, libgpiod +, libgpiod_1 , enableFtdi ? true, libftdi1 @@ -27,13 +27,7 @@ stdenv.mkDerivation rec { buildInputs = [ hidapi jimtcl libftdi1 libjaylink libusb1 ] ++ # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/ - lib.optional stdenv.isLinux (libgpiod.overrideAttrs (old: rec { - version = "1.6.4"; - src = fetchurl { - url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz"; - sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo="; - }; - })); + lib.optional stdenv.isLinux libgpiod_1; configureFlags = [ "--disable-werror" From ca81640aaf73ac4aa6250e1ff7532e8a9111479e Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sun, 19 Nov 2023 23:33:46 -0300 Subject: [PATCH 3/4] openocd-rp2040: use libgpiod_1 instead of duplicated expressions Signed-off-by: Otavio Salvador --- pkgs/development/embedded/openocd-rp2040/default.nix | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/pkgs/development/embedded/openocd-rp2040/default.nix b/pkgs/development/embedded/openocd-rp2040/default.nix index a7e2bb65953c..688d83ac27e8 100644 --- a/pkgs/development/embedded/openocd-rp2040/default.nix +++ b/pkgs/development/embedded/openocd-rp2040/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchgit -, fetchurl , pkg-config , hidapi , libftdi1 @@ -12,7 +11,7 @@ , automake , texinfo , git -, libgpiod +, libgpiod_1 }: stdenv.mkDerivation { @@ -42,13 +41,7 @@ stdenv.mkDerivation { ] ++ # tracking issue for v2 api changes https://sourceforge.net/p/openocd/tickets/306/ - lib.optional stdenv.isLinux (libgpiod.overrideAttrs (old: rec { - version = "1.6.4"; - src = fetchurl { - url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz"; - sha256 = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo="; - }; - })); + lib.optional stdenv.isLinux libgpiod_1; configurePhase = '' SKIP_SUBMODULE=1 ./bootstrap From 0d2085b1626f9e6f313a4e63e822a08f3914a163 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sun, 19 Nov 2023 18:07:28 -0300 Subject: [PATCH 4/4] flashrom-stable: fix build due to incompatibility with libgpiod v2 API ZHF: #265948 Signed-off-by: Otavio Salvador --- pkgs/tools/misc/flashrom-stable/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/flashrom-stable/default.nix b/pkgs/tools/misc/flashrom-stable/default.nix index b943c22d25be..0ad2c533fd96 100644 --- a/pkgs/tools/misc/flashrom-stable/default.nix +++ b/pkgs/tools/misc/flashrom-stable/default.nix @@ -2,7 +2,7 @@ , installShellFiles , lib , libftdi1 -, libgpiod +, libgpiod_1 , libjaylink , libusb1 , pciutils @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { libjaylink libusb1 ] ++ lib.optionals (!stdenv.isDarwin) [ - libgpiod + libgpiod_1 pciutils ];