diff options
Diffstat (limited to 'pkgs/tools/networking/connman/connman')
-rw-r--r-- | pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch | 132 | ||||
-rw-r--r-- | pkgs/tools/networking/connman/connman/default.nix | 190 |
2 files changed, 0 insertions, 322 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 deleted file mode 100644 index dde8a174ca2..00000000000 --- a/pkgs/tools/networking/connman/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 <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 deleted file mode 100644 index 7697a8efad8..00000000000 --- a/pkgs/tools/networking/connman/connman/default.nix +++ /dev/null @@ -1,190 +0,0 @@ -{ lib -, nixosTests -, stdenv -, fetchurl -, fetchpatch -, pkg-config -, autoreconfHook -, file -, glib -# always required runtime dependencies -, dbus -, libmnl -, gnutls -, readline -# configurable options -, firewallType ? "iptables" # or "nftables" -, iptables ? null -, libnftnl ? null # for nftables -, dnsType ? "internal" # or "systemd-resolved" -# optional features which are turned *on* by default -, enableOpenconnect ? true -, openconnect ? null -, enableOpenvpn ? true -, openvpn ? null -, enableVpnc ? true -, vpnc ? true -, enablePolkit ? true -, polkit ? null -, enablePptp ? true -, pptp ? null -, ppp ? null -, enableLoopback ? true -, enableEthernet ? true -, enableWireguard ? true -, enableGadget ? true -, enableWifi ? true -, enableBluetooth ? true -, enableOfono ? true -, enableDundee ? true -, enablePacrunner ? true -, enableNeard ? true -, enableWispr ? true -, enableTools ? true -, enableStats ? true -, enableClient ? true -, enableDatafiles ? true -# optional features which are turned *off* by default -, enableNetworkManager ? false -, enableHh2serialGps ? false -, enableL2tp ? false -, enableIospm ? false -, enableTist ? false -}: - -assert lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ]; -assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; - -let inherit (lib) optionals; in - -stdenv.mkDerivation rec { - pname = "connman"; - version = "1.42"; - src = fetchurl { - url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; - hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo="; - }; - - 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 [ - # Fix Musl build by avoiding a Glibc-only API. - (fetchurl { - url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e"; - hash = "sha256-7Q1bp8rD/gGVYUqnIXqjr9vypR8jlC926p3KYWl9kLw="; - }) - ]; - - buildInputs = [ - glib - dbus - libmnl - gnutls - readline - ] ++ optionals (enableOpenconnect) [ openconnect ] - ++ optionals (firewallType == "iptables") [ iptables ] - ++ optionals (firewallType == "nftables") [ libnftnl ] - ++ optionals (enablePolkit) [ polkit ] - ++ optionals (enablePptp) [ pptp ppp ] - ; - - nativeBuildInputs = [ - pkg-config - file - autoreconfHook # as long as we're patching configure.ac - ]; - - # fix invalid path to 'file' - postPatch = '' - sed -i "s/\/usr\/bin\/file/file/g" ./configure - ''; - - configureFlags = [ - # directories flags - "--sysconfdir=/etc" - "--localstatedir=/var" - "--with-dbusconfdir=${placeholder "out"}/share" - "--with-dbusdatadir=${placeholder "out"}/share" - "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" - "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system" - "--with-dns-backend=${dnsType}" - "--with-firewall=${firewallType}" - # production build flags - "--disable-maintainer-mode" - "--enable-session-policy-local=builtin" - # for building and running tests - # "--enable-tests" # installs the tests, we don't want that - "--enable-tools" - ] - ++ optionals (!enableLoopback) [ "--disable-loopback" ] - ++ optionals (!enableEthernet) [ "--disable-ethernet" ] - ++ optionals (!enableWireguard) [ "--disable-wireguard" ] - ++ optionals (!enableGadget) [ "--disable-gadget" ] - ++ optionals (!enableWifi) [ "--disable-wifi" ] - # enable IWD support for wifi as it doesn't require any new dependencies - # and it's easier for the NixOS module to use only one connman package when - # IWD is requested - ++ optionals (enableWifi) [ "--enable-iwd" ] - ++ optionals (!enableBluetooth) [ "--disable-bluetooth" ] - ++ optionals (!enableOfono) [ "--disable-ofono" ] - ++ optionals (!enableDundee) [ "--disable-dundee" ] - ++ optionals (!enablePacrunner) [ "--disable-pacrunner" ] - ++ optionals (!enableNeard) [ "--disable-neard" ] - ++ optionals (!enableWispr) [ "--disable-wispr" ] - ++ optionals (!enableTools) [ "--disable-tools" ] - ++ optionals (!enableStats) [ "--disable-stats" ] - ++ optionals (!enableClient) [ "--disable-client" ] - ++ optionals (!enableDatafiles) [ "--disable-datafiles" ] - ++ optionals (enableOpenconnect) [ - "--enable-openconnect=builtin" - "--with-openconnect=${openconnect}/sbin/openconnect" - ] - ++ optionals (enableOpenvpn) [ - "--enable-openvpn=builtin" - "--with-openvpn=${openvpn}/sbin/openvpn" - ] - ++ optionals (enableVpnc) [ - "--enable-vpnc=builtin" - "--with-vpnc=${vpnc}/sbin/vpnc" - ] - ++ optionals (enablePolkit) [ - "--enable-polkit" - ] - ++ optionals (enablePptp) [ - "--enable-pptp" - "--with-pptp=${pptp}/sbin/pptp" - ] - ++ optionals (!enableWireguard) [ - "--disable-wireguard" - ] - ++ optionals (enableNetworkManager) [ - "--enable-nmcompat" - ] - ++ optionals (enableHh2serialGps) [ - "--enable-hh2serial-gps" - ] - ++ optionals (enableL2tp) [ - "--enable-l2tp" - ] - ++ optionals (enableIospm) [ - "--enable-iospm" - ] - ++ optionals (enableTist) [ - "--enable-tist" - ] - ; - - doCheck = true; - - passthru.tests.connman = nixosTests.connman; - - meta = with lib; { - description = "A daemon for managing internet connections"; - homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/"; - maintainers = with maintainers; [ eclairevoyant ]; - platforms = platforms.linux; - license = licenses.gpl2Only; - }; -} |