From 9945a9027ba88c33c86f04b817daf38451e8946f Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 19 Oct 2024 17:48:49 +0200 Subject: [PATCH] connman: 1.42 -> 1.43 Fixes a segfault on musl due to misuse of basename[1]. [1]: https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=8bd6504f449f368b008b68cd37521817d6d8bf5a --- .../co/connman/create-libppp-compat.h.patch | 132 ------------------ pkgs/by-name/co/connman/package.nix | 10 +- 2 files changed, 3 insertions(+), 139 deletions(-) delete mode 100644 pkgs/by-name/co/connman/create-libppp-compat.h.patch diff --git a/pkgs/by-name/co/connman/create-libppp-compat.h.patch b/pkgs/by-name/co/connman/create-libppp-compat.h.patch deleted file mode 100644 index dde8a174ca2a..000000000000 --- a/pkgs/by-name/co/connman/create-libppp-compat.h.patch +++ /dev/null @@ -1,132 +0,0 @@ -new file mode 100644 -index 000000000..eee1d09d6 ---- /dev/null -+++ b/scripts/libppp-compat.h -@@ -0,0 +1,127 @@ -+/* Copyright (C) Eivind Naess, eivnaes@yahoo.com */ -+/* SPDX-License-Identifier: GPL-2.0-or-later */ -+ -+#ifndef __LIBPPP_COMPAT_H__ -+#define __LIBPPP_COMPAT_H__ -+ -+/* Define USE_EAPTLS compile with EAP TLS support against older pppd headers, -+ * pppd >= 2.5.0 use PPP_WITH_EAPTLS and is defined in pppdconf.h */ -+#define USE_EAPTLS 1 -+ -+/* Define INET6 to compile with IPv6 support against older pppd headers, -+ * pppd >= 2.5.0 use PPP_WITH_IPV6CP and is defined in pppdconf.h */ -+#define INET6 1 -+ -+/* PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define. -+ * this silly macro magic is to work around that. */ -+#undef VERSION -+#include -+ -+#ifndef PPPD_VERSION -+#define PPPD_VERSION VERSION -+#endif -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef HAVE_PPPD_CHAP_H -+#include -+#endif -+ -+#ifdef HAVE_PPPD_CHAP_NEW_H -+#include -+#endif -+ -+#ifdef HAVE_PPPD_CHAP_MS_H -+#include -+#endif -+ -+#ifndef PPP_PROTO_CHAP -+#define PPP_PROTO_CHAP 0xc223 -+#endif -+ -+#ifndef PPP_PROTO_EAP -+#define PPP_PROTO_EAP 0xc227 -+#endif -+ -+ -+#if WITH_PPP_VERSION < PPP_VERSION(2,5,0) -+ -+static inline bool -+debug_on (void) -+{ -+ return debug; -+} -+ -+static inline const char -+*ppp_ipparam (void) -+{ -+ return ipparam; -+} -+ -+static inline int -+ppp_ifunit (void) -+{ -+ return ifunit; -+} -+ -+static inline const char * -+ppp_ifname (void) -+{ -+ return ifname; -+} -+ -+static inline int -+ppp_get_mtu (int idx) -+{ -+ return netif_get_mtu(idx); -+} -+ -+typedef enum ppp_notify -+{ -+ NF_PID_CHANGE, -+ NF_PHASE_CHANGE, -+ NF_EXIT, -+ NF_SIGNALED, -+ NF_IP_UP, -+ NF_IP_DOWN, -+ NF_IPV6_UP, -+ NF_IPV6_DOWN, -+ NF_AUTH_UP, -+ NF_LINK_DOWN, -+ NF_FORK, -+ NF_MAX_NOTIFY -+} ppp_notify_t; -+ -+typedef void (ppp_notify_fn) (void *ctx, int arg); -+ -+static inline void -+ppp_add_notify (ppp_notify_t type, ppp_notify_fn *func, void *ctx) -+{ -+ struct notifier **list[NF_MAX_NOTIFY] = { -+ [NF_PID_CHANGE ] = &pidchange, -+ [NF_PHASE_CHANGE] = &phasechange, -+ [NF_EXIT ] = &exitnotify, -+ [NF_SIGNALED ] = &sigreceived, -+ [NF_IP_UP ] = &ip_up_notifier, -+ [NF_IP_DOWN ] = &ip_down_notifier, -+ [NF_IPV6_UP ] = &ipv6_up_notifier, -+ [NF_IPV6_DOWN ] = &ipv6_down_notifier, -+ [NF_AUTH_UP ] = &auth_up_notifier, -+ [NF_LINK_DOWN ] = &link_down_notifier, -+ [NF_FORK ] = &fork_notifier, -+ }; -+ -+ struct notifier **notify = list[type]; -+ if (notify) { -+ add_notifier(notify, func, ctx); -+ } -+} -+ -+#endif /* #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) */ -+#endif /* #if__LIBPPP_COMPAT_H__ */ diff --git a/pkgs/by-name/co/connman/package.nix b/pkgs/by-name/co/connman/package.nix index b7906fd72c6c..17c54f8906eb 100644 --- a/pkgs/by-name/co/connman/package.nix +++ b/pkgs/by-name/co/connman/package.nix @@ -62,18 +62,14 @@ assert lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftable assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; stdenv.mkDerivation (finalAttrs: { pname = "connman"; - version = "1.42"; + version = "1.43"; src = fetchurl { url = "mirror://kernel/linux/network/connman/connman-${finalAttrs.version}.tar.xz"; - hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo="; + hash = "sha256-ElfOvjJ+eQC34rhMD7MwqpCBXkVYmM0vlB9DCO0r47w="; }; - patches = [ - # simply the middle section of upstream commit a48864a2e5d2a725dfc6eef567108bc13b43857f - # dist tarball is broken, hence this patch as a workaround - ./create-libppp-compat.h.patch - ] ++ optionals stdenv.hostPlatform.isMusl [ + patches = optionals stdenv.hostPlatform.isMusl [ # Fix Musl build by avoiding a Glibc-only API. (fetchurl { url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";