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
This commit is contained in:
parent
6b6886a8e5
commit
9945a9027b
@ -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 <pppd/pppd.h>
|
|
||||||
+
|
|
||||||
+#ifndef PPPD_VERSION
|
|
||||||
+#define PPPD_VERSION VERSION
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#include <pppd/fsm.h>
|
|
||||||
+#include <pppd/ccp.h>
|
|
||||||
+#include <pppd/eui64.h>
|
|
||||||
+#include <pppd/ipcp.h>
|
|
||||||
+#include <pppd/ipv6cp.h>
|
|
||||||
+#include <pppd/eap.h>
|
|
||||||
+#include <pppd/upap.h>
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_PPPD_CHAP_H
|
|
||||||
+#include <pppd/chap.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_PPPD_CHAP_NEW_H
|
|
||||||
+#include <pppd/chap-new.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_PPPD_CHAP_MS_H
|
|
||||||
+#include <pppd/chap_ms.h>
|
|
||||||
+#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__ */
|
|
@ -62,18 +62,14 @@ assert lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftable
|
|||||||
assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ];
|
assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ];
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "connman";
|
pname = "connman";
|
||||||
version = "1.42";
|
version = "1.43";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://kernel/linux/network/connman/connman-${finalAttrs.version}.tar.xz";
|
url = "mirror://kernel/linux/network/connman/connman-${finalAttrs.version}.tar.xz";
|
||||||
hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo=";
|
hash = "sha256-ElfOvjJ+eQC34rhMD7MwqpCBXkVYmM0vlB9DCO0r47w=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = optionals stdenv.hostPlatform.isMusl [
|
||||||
# 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 [
|
|
||||||
# Fix Musl build by avoiding a Glibc-only API.
|
# Fix Musl build by avoiding a Glibc-only API.
|
||||||
(fetchurl {
|
(fetchurl {
|
||||||
url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";
|
url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";
|
||||||
|
Loading…
Reference in New Issue
Block a user