diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2023-09-08 00:02:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-08 00:02:13 +0000 |
commit | 542aa87231d98d70caeb56bef05028ecdc48a388 (patch) | |
tree | 5bc18e8342f7aa036d1d49f30dd2b0bfa59862f1 /pkgs/tools/networking | |
parent | c528ade384ecd788835ae3388bce1054ed5554b4 (diff) | |
parent | e6aa338820933e16090002fd3a8d029462d70134 (diff) | |
download | nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.tar nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.tar.gz nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.tar.bz2 nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.tar.lz nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.tar.xz nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.tar.zst nixpkgs-542aa87231d98d70caeb56bef05028ecdc48a388.zip |
Merge master into staging-next
Diffstat (limited to 'pkgs/tools/networking')
-rw-r--r-- | pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch | 132 | ||||
-rw-r--r-- | pkgs/tools/networking/connman/connman/default.nix | 23 |
2 files changed, 140 insertions, 15 deletions
diff --git a/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch b/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch new file mode 100644 index 00000000000..dde8a174ca2 --- /dev/null +++ b/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch @@ -0,0 +1,132 @@ +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__ */ diff --git a/pkgs/tools/networking/connman/connman/default.nix b/pkgs/tools/networking/connman/connman/default.nix index 0f4e1aaf5fb..3143818bac3 100644 --- a/pkgs/tools/networking/connman/connman/default.nix +++ b/pkgs/tools/networking/connman/connman/default.nix @@ -59,28 +59,21 @@ let inherit (lib) optionals; in stdenv.mkDerivation rec { pname = "connman"; - version = "1.41"; + version = "1.42"; src = fetchurl { url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; - sha256 = "sha256-eftA9P3VUwxFqo5ZL7Froj02dPOpjPELiaZXbxmN5Yk="; + hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo="; }; patches = [ - (fetchpatch { - name = "pppd-2.5.0-compat.patch"; - url = "https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=a48864a2e5d2a725dfc6eef567108bc13b43857f"; - sha256 = "sha256-jB1qL13mceQ1riv3K+oFWw4VC7ohv/CcH9sjxZPXcG4="; - }) - (fetchpatch { - name = "CVE-2023-28488.patch"; - url = "https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=99e2c16ea1cced34a5dc450d76287a1c3e762138"; - sha256 = "sha256-377CmsECji2w/c4bZXR+TxzTB7Lce0yo7KdK1oWfCVY="; - }) - ] ++ lib.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. (fetchpatch { url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e"; - sha256 = "1kg2nml7pdxc82h5hgsa3npvzdxy4d2jpz2f93pa97if868i8d43"; + hash = "sha256-7Q1bp8rD/gGVYUqnIXqjr9vypR8jlC926p3KYWl9kLw="; }) ]; @@ -190,7 +183,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A daemon for managing internet connections"; homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/"; - maintainers = [ maintainers.matejc ]; + maintainers = with maintainers; [ eclairevoyant ]; platforms = platforms.linux; license = licenses.gpl2Only; }; |