From patchwork Sun May 14 19:55:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Petr Gotthard X-Patchwork-Id: 23926 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 172C6C77B7D for ; Sun, 14 May 2023 19:55:18 +0000 (UTC) Received: from APC01-TYZ-obe.outbound.protection.outlook.com (APC01-TYZ-obe.outbound.protection.outlook.com [40.107.117.77]) by mx.groups.io with SMTP id smtpd.web11.73373.1684094111828998874 for ; Sun, 14 May 2023 12:55:14 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@advantech.cz header.s=selector1 header.b=dvHoOBog; spf=pass (domain: advantech.cz, ip: 40.107.117.77, mailfrom: petr.gotthard@advantech.cz) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lH7HiloRTJwJKnY/rkPHwr8lfnV/qmwVtG7By06krkXQdnJrMBvzXwOFRtn92w2JRsHcob52djXnJHCG0BqV8XTjEOIbPflJUTRD9CJ+ll0Evu4tv7z0wr2kzEEXxvwrCGsepADNhR3vTxBakpfz1FLI1NtoAfrzFHj7+/WNmJQc1coOWpa0xgzIUC6tcwD2AKfwBRZ9O45CVPLYmBRFMdA8ti4fMBGD3lKsTIBMy5KGc8kkph5eis16tC7O0LSbt1M6/fyK2lQ3fS0DxwFWoVV7tM2oDiK4kfTylJQYSkheSx+IkKA8ud88ssIFWtGNLZbIxdOBKR1cIa10qAJtKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YK1Qy7QP0Zd/EZZNfGmr81P0Ak4ROjX8Jm0oNRY2Xj8=; b=Wp+JdJ5iECA7MoZQGdFJHIiArzibMiDpGk0QMAiRRGwDH+AaHkUdr4T9lINDJOENpww08n/I7oXFFzz6S8ZP1tflxK68KZPH2+GisOZiIJS9ZeAWIF44pBWYRy/zk19hXC6bcfXWq+xOYTPU2lZYJsY3Va2DbsoDcRkkSV3MrvePhLQZRjzn+tvA5r/dxysIOratoWKy5iDUx/Xgm2YXbUwazEYCpBmac5Y5S2HuH8JTyJBktJFdt4lVzficiUoUMHQMj7XA+swdRiNF/dnkkz0m6B83xP77G55af+/k6GVxNqDABDiqopTVgvYhk3ED6xDWjt9dJUVLS7eot0/YJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=advantech.cz; dmarc=pass action=none header.from=advantech.cz; dkim=pass header.d=advantech.cz; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=advantech.cz; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YK1Qy7QP0Zd/EZZNfGmr81P0Ak4ROjX8Jm0oNRY2Xj8=; b=dvHoOBoguL1jgAmFYTrm2Mx2zEka+nXfWs8+CesmdCiEfRxK7thAnoEqCbnwUEOY07MRe69jJLqgtrwUQiaEn6oJN7nxRSFgHEuEDHbVXGHQJvii/6cwRUByzb276G6IpDFUA6rNWZeMR5F8erPivA8E6TsU0KpfgrxUWwNvTKJuO1QgzWovGvY0QIzf38+ptrmHpqYgnFyYWl4spJPaPud0FQiSGv9EBQMTvVoxqPhKECRVaOfvx0QsopLPJLkE/tzd8avR8sy0JB4qYvDSDvcTU0tTs7zScge5U/35DZghVU3v24DyLKBQjPgIImrCbPifxmvFQQzR9SZbBMjo9g== Received: from TY2PR02MB3678.apcprd02.prod.outlook.com (2603:1096:404:b7::12) by KL1PR02MB4849.apcprd02.prod.outlook.com (2603:1096:820:55::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.14; Sun, 14 May 2023 19:55:06 +0000 Received: from TY2PR02MB3678.apcprd02.prod.outlook.com ([fe80::3e74:b6f0:fad1:4598]) by TY2PR02MB3678.apcprd02.prod.outlook.com ([fe80::3e74:b6f0:fad1:4598%5]) with mapi id 15.20.6411.014; Sun, 14 May 2023 19:55:06 +0000 From: Petr Gotthard To: OpenEmbedded Devel List Subject: [meta-networking][PATCH v2] networkmanager-fortisslvpn: add new recipe Thread-Topic: [meta-networking][PATCH v2] networkmanager-fortisslvpn: add new recipe Thread-Index: AdmGisXHKUgnFTtjT/maEq/7G8pnCw== Date: Sun, 14 May 2023 19:55:05 +0000 Message-ID: Accept-Language: en-US Content-Language: cs-CZ X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=advantech.cz; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TY2PR02MB3678:EE_|KL1PR02MB4849:EE_ x-ms-office365-filtering-correlation-id: 38306858-aa14-49e6-26c7-08db54b51ce2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ELWWD9DEfI/S8FzOcp6DirB5YEwog8UYEemN0h044w0pTAbW53PHT8uPuU9CRIkyrpa8BH2GDSTgIM/G2B5b0ky3sD5Hpd38CK+na4+I8TdUrNUFIpjqB0WNTpN5BPxMHYOt0WD7hFaSYhGXwW2R3v7zXArkjR5TN+BolVstp3g+SAvrcBT2sSMpoOtiGxumAenx5w8LKTWfgQLBaznNgtPg5VyyX56DURMi0m3fDuRPDWBGQT99XVBkUidyrPR6t0KxTxkYt7cPex9kg4DCyGyEBPc8ivhg1ejFAX6poHN8Fol26JWAUEG8JFXtqux4TIplSTPmNr1hXLTvOXpACdUPiI3OZ9rlV5km7/hGFvb5LF8Nn4HVz9Kq8FjMTAHlzlEOEgi/2Qkt0qlCK2fWt31E06NOcHe1+kGtxyo3ZR9J9g1O5X/RuGDpFlU73XF+zJu/MukYlCJ5aemvjOWlqGAwyEcMQfgXCG3j5v9j/kF9FOjJ5R0FqEUkKgeepOO3NmpQcVMDZ2gCDQ4vPZ8beGFsZH7Horqw5Oy/3WEbViVAFhu+vqs+UVKFi5Dk3qzOyrnNIV2wF7wdZgyPrdl6bk4qLVtpGDsAiYEateDDPmayArM4vdjGye6rxfIMFFW1 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR02MB3678.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(366004)(376002)(346002)(136003)(396003)(39850400004)(451199021)(71200400001)(122000001)(55016003)(38100700002)(66574015)(186003)(6506007)(26005)(83380400001)(53546011)(9686003)(33656002)(2906002)(30864003)(5660300002)(41300700001)(8676002)(8936002)(44832011)(52536014)(478600001)(38070700005)(966005)(7696005)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(316002)(6916009)(86362001)(2004002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?P+W1uEHhcNIHJNN2MHTNgRR+qWa9?= =?utf-8?q?vc24nlNQQW5D0I4RuAu/+ux76DN2RK4iSn5OBkKjcijoq2TfOaqsl1YcCC2W9yymG?= =?utf-8?q?0+VvAkbOBV+odFnpdZ9u2q2Tf5plSuBPABeC5t7NE/iP+3z0acxZXXDR9MsluRaA+?= =?utf-8?q?cnfm4hOSMF4+J6uDtJCwL6GB/HDzAUfkWblptUIj0UJghhnIvId3QQmHKDaOYzIj5?= =?utf-8?q?VLV1KFcij4/9Sj8GKkNg75bZpo0F9nSaKuaRT7kqleLRFNEDuALBALkAns7PJyECA?= =?utf-8?q?t46uyEddM8khW8QCPQXyjbaIrP1ZeDyMTVi9cGKzkUFCSuII6o6Rh7CFPhoZ+cDgv?= =?utf-8?q?tVJndYJz/qlaguG3EwGcVu39u/IRmkA2fdKlsEtKWr1M/NjV9GlV+weWQ2pcpW5Ls?= =?utf-8?q?b5gqhmx7YZsGBlK4DIUt5/cEwicwImNDMbAlp0fdmf6paazTwrLQO2pkPbBkpa8dU?= =?utf-8?q?XOH6pqr6oRqQffqoUJ5L6sKd84kGcGTNX0mbLfeM46z+z/atnODEuf/8TXZM8DFx8?= =?utf-8?q?4qNWwHltuWWsNqapLWDvxwCAyjjY8XTRUEzQVkBYWzyq6ZdDeiaRKFMxhrVf9QPdQ?= =?utf-8?q?xaenxu7Dr8Mpc68mfnATvIpL0nkPbxx7Qvj9L1YvibueIwgyOP4VsD8wGZjSLbo5c?= =?utf-8?q?yTJY3okYqU62Pi2Bf8Ci7Mz6p2Mhj8BiN7Epcq9f1dareh1aBHWifre4hCKvS4Qer?= =?utf-8?q?mAsfe6s0tM0S9W9me2URg18mks4Yd8lKhmbIjtWyeYP6jpcLTdf9F68UQ4yuDFIBO?= =?utf-8?q?la/Voa/3B/gJFRiEEFO9s3+E2MvmGI+rJR9pXHLQ/nOKsSfwnBvCCbPb01o3G7XPh?= =?utf-8?q?r6wMa9HaSkvMVvqoO42DlyGaLY0U216G7W50wIP59t/gl/5EeOVY6JbymiP+lLQtJ?= =?utf-8?q?SuNmdyevY2NwIZIk3UpSPbwjQizHKEx9nLPdcT43UtOo8Ky4LjWRYJ6HhBdGJspJX?= =?utf-8?q?EuV2PJK6GQu5DOCa1YOSZHqUd9ghHbsSo07n58TiGW0jm31L/YmWdpXmpZmVl2RGF?= =?utf-8?q?TmORHKcdK347Gy9L9zpuM7An3JkJvKBUkVEb0A2pxtarbcklYSxKaCDWR0CK3QAeH?= =?utf-8?q?Gj/0NYXL2XJ0a3SmM8qVvHwyTgq//BsAlOcUAhRCMN0ZEEym8kc1HkI6tVgl3ZosR?= =?utf-8?q?jYxS74XoaABVnsjfHwIKopV+VNeTkmOVnjc0UpQcIAWxxGr7FATwuj4Uv9NT1mHqm?= =?utf-8?q?ps4StR9mEfduaBk4L4/oiCGtx0gVpMbu6WWQw2mpYAaYvM3KVI9YRhOF6MRMjtkHP?= =?utf-8?q?cxXQh+sDkmTzIwslheHF1NsgIMjEg+fyQ/+57/yvWmuyOxsTBC3caRk3XHQ9jm19L?= =?utf-8?q?wgeiQX8guoS8IEZYtasJO4ZVh/fuG8hPWnRpeVA9uMHg+MyEJP/U+SMWpvhiFjsDf?= =?utf-8?q?Xk1nw7ZvIBpO0grgtX4rtLgTUW+XOmyKylWDKkRe5aVgu7uPNGyNCKcsDC3n14zth?= =?utf-8?q?oT2AoXy2F+8JBtkXTcohIk8dg0rqPoloe/M1vwsOHBdfTuqU9TjDRGf/+HYBuDwYp?= =?utf-8?q?V9Axy+2Xd94k3yqaoKpUjDGOkbapwFeHxQ=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: advantech.cz X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR02MB3678.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38306858-aa14-49e6-26c7-08db54b51ce2 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2023 19:55:05.3034 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a77d40d9-dcba-4dda-b571-5f18e6da853f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0pY3ODg1kiXGOaxrHLV2toM1mcv5TsGS8k2tS09Z8l0X4+RL2mmf01ifswxfVXLIINdxKWGWgZxhpb7Nbt8EW52XztJEqP1KX9ntwvR/aN8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR02MB4849 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 14 May 2023 19:55:18 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/102586 From 68272a685f63bfac7453c1fe4c35e202fae153fd Mon Sep 17 00:00:00 2001 From: Petr Gotthard Date: Thu, 11 May 2023 17:36:36 +0200 Subject: [meta-networking][PATCH] networkmanager-fortisslvpn: add new recipe Fortinet SSLVPN support for NetworkManager https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn Signed-off-by: Petr Gotthard --- .../0001-fix-ppp-2.5.0-build.patch | 306 ++++++++++++++++++ .../0002-fix-ppp-2.5.0-build.patch | 34 ++ .../networkmanager-fortisslvpn_1.4.0.bb | 70 ++++ 3 files changed, 410 insertions(+) create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch create mode 100644 meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb -- 2.34.1 diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch new file mode 100644 index 0000000000..0a568fa23c --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch @@ -0,0 +1,306 @@ +From 084ef529c5fb816927ca54866f66b340265aa9f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eivind=20N=C3=A6ss?= +Date: Sat, 4 Mar 2023 21:20:43 +0000 +Subject: [PATCH] Adding support for compiling against pppd-2.5.0 (or master + branch) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Accepted +Signed-off-by: Eivind Næss +--- + Makefile.am | 5 +- + configure.ac | 37 +++++++- + src/nm-fortisslvpn-pppd-compat.h | 93 +++++++++++++++++++ + src/nm-fortisslvpn-pppd-plugin.c | 24 ++--- + ...-status.h => nm-fortisslvpn-pppd-status.h} | 0 + src/nm-fortisslvpn-service.c | 2 +- + 6 files changed, 145 insertions(+), 16 deletions(-) + create mode 100644 src/nm-fortisslvpn-pppd-compat.h + rename src/{nm-ppp-status.h => nm-fortisslvpn-pppd-status.h} (100%) + +diff --git a/Makefile.am b/Makefile.am +index b2e5533..e1e5ec9 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -81,7 +81,7 @@ libexec_PROGRAMS += src/nm-fortisslvpn-service + src_nm_fortisslvpn_service_SOURCES = \ + shared/nm-utils/nm-shared-utils.c \ + shared/nm-utils/nm-shared-utils.h \ +- src/nm-ppp-status.h \ ++ src/nm-fortisslvpn-pppd-status.h \ + src/nm-fortisslvpn-service.h \ + src/nm-fortisslvpn-service.c \ + shared/nm-fortissl-properties.c \ +@@ -106,7 +106,8 @@ src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \ + shared/nm-utils/nm-shared-utils.c \ + shared/nm-utils/nm-shared-utils.h \ + src/nm-fortisslvpn-pppd-plugin.c \ +- src/nm-ppp-status.h ++ src/nm-fortisslvpn-pppd-compat.h \ ++ src/nm-fortisslvpn-pppd-status.h + nodist_src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \ + src/nm-fortisslvpn-pppd-service-dbus.h + src_nm_fortisslvpn_pppd_plugin_la_CPPFLAGS = $(src_cppflags) +diff --git a/configure.ac b/configure.ac +index a998707..877493e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,7 +19,10 @@ AC_PROG_CC + AM_PROG_CC_C_O + AC_PROG_INSTALL + AC_PROG_LIBTOOL ++AC_PROG_CPP ++AC_PROG_EGREP + AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources) ++PKG_PROG_PKG_CONFIG() + + AC_GNU_SOURCE + +@@ -37,20 +40,50 @@ dnl + dnl Required headers + dnl + AC_HEADER_STDC +-AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h) ++AC_CHECK_HEADERS(fcntl.h paths.h stdarg.h stdbool.h sys/ioctl.h sys/time.h syslog.h unistd.h) + + AC_CHECK_HEADERS(pppd/pppd.h,, + AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.)) + ++dnl ++dnl Check the presense of other pppd/*.h files ++AC_CHECK_HEADERS([ ++ pppd/chap.h ++ pppd/chap-new.h ++ pppd/chap_ms.h ++ ]) ++ ++dnl ++dnl Versions >= 2.5.0 will have pkg-config support ++PKG_CHECK_EXISTS([pppd], ++ [AS_VAR_SET([pppd_pkgconfig_support],[yes])]) ++ ++dnl ++dnl Get the version of pppd using pkg-config, assume 2.4.9 if not present ++PPPD_VERSION=2.4.5 ++if test x"$pppd_pkgconfig_support" = xyes; then ++ PPPD_VERSION=`$PKG_CONFIG --modversion pppd` ++fi ++ ++ + AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory])) + + if test -n "$with_pppd_plugin_dir" ; then + PPPD_PLUGIN_DIR="$with_pppd_plugin_dir" + else +- PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5" ++ PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION" + fi + AC_SUBST(PPPD_PLUGIN_DIR) + ++dnl The version of pppd dictates what code can be included, i.e. enable use of ++dnl #if WITH_PPP_VERSION >= PPP_VERSION(2,5,0) in the code ++AC_DEFINE_UNQUOTED([PPP_VERSION(x,y,z)], ++ [((x & 0xFF) << 16 | (y & 0xFF) << 8 | (z & 0xFF) << 0)], ++ [Macro to help determine the particular version of pppd]) ++PPP_VERSION=$(echo $PPPD_VERSION | sed -e "s/\./\,/g") ++AC_DEFINE_UNQUOTED(WITH_PPP_VERSION, PPP_VERSION($PPP_VERSION), ++ [The real version of pppd represented as an int]) ++ + dnl + dnl Checks for typedefs, structures, and compiler characteristics. + dnl +diff --git a/src/nm-fortisslvpn-pppd-compat.h b/src/nm-fortisslvpn-pppd-compat.h +new file mode 100644 +index 0000000..9a02908 +--- /dev/null ++++ b/src/nm-fortisslvpn-pppd-compat.h +@@ -0,0 +1,93 @@ ++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ ++/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager ++ * ++ * Copyright (C) Eivind Næss, eivnaes@yahoo.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#ifndef __NM_FORTISSLVPN_PPPD_COMPAT_H__ ++#define __NM_FORTISSLVPN_PPPD_COMPAT_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); ++} ++ ++#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) ++#endif // #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__ +diff --git a/src/nm-fortisslvpn-pppd-plugin.c b/src/nm-fortisslvpn-pppd-plugin.c +index f2ad262..c2efb9a 100644 +--- a/src/nm-fortisslvpn-pppd-plugin.c ++++ b/src/nm-fortisslvpn-pppd-plugin.c +@@ -23,12 +23,6 @@ + #define ___CONFIG_H__ + #include + +-#include +-#include +-#include +- +-#include "nm-default.h" +- + #include + #include + #include +@@ -42,10 +36,12 @@ + #include + #include + ++#include "nm-fortisslvpn-pppd-status.h" ++#include "nm-fortisslvpn-pppd-compat.h" + #include "nm-fortisslvpn-pppd-service-dbus.h" +-#include "nm-fortisslvpn-service.h" +-#include "nm-ppp-status.h" + ++#include "nm-default.h" ++#include "nm-fortisslvpn-service.h" + #include "nm-utils/nm-shared-utils.h" + #include "nm-utils/nm-vpn-plugin-macros.h" + +@@ -80,7 +76,7 @@ static struct { + + int plugin_init (void); + +-char pppd_version[] = VERSION; ++char pppd_version[] = PPPD_VERSION; + + static void + chroot_sandbox (void) +@@ -296,7 +292,7 @@ get_ip4_routes (in_addr_t ouraddr) + static void + nm_ip_up (void *data, int arg) + { +- guint32 pppd_made_up_address = htonl (0x0a404040 + ifunit); ++ guint32 pppd_made_up_address = htonl (0x0a404040 + ppp_ifunit()); + ipcp_options opts = ipcp_gotoptions[0]; + ipcp_options peer_opts = ipcp_hisoptions[0]; + GVariantBuilder builder; +@@ -317,7 +313,7 @@ nm_ip_up (void *data, int arg) + + g_variant_builder_add (&builder, "{sv}", + NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV, +- g_variant_new_string (ifname)); ++ g_variant_new_string (ppp_ifname())); + + str = g_getenv ("VPN_GATEWAY"); + if (str) { +@@ -442,8 +438,14 @@ plugin_init (void) + return -1; + } + ++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0) + add_notifier (&phasechange, nm_phasechange, NULL); + add_notifier (&ip_up_notifier, nm_ip_up, NULL); + add_notifier (&exitnotify, nm_exit_notify, NULL); ++#else ++ ppp_add_notify (NF_PHASE_CHANGE, nm_phasechange, NULL); ++ ppp_add_notify (NF_IP_UP, nm_ip_up, NULL); ++ ppp_add_notify (NF_EXIT, nm_exit_notify, NULL); ++#endif + return 0; + } +diff --git a/src/nm-ppp-status.h b/src/nm-fortisslvpn-pppd-status.h +similarity index 100% +rename from src/nm-ppp-status.h +rename to src/nm-fortisslvpn-pppd-status.h +diff --git a/src/nm-fortisslvpn-service.c b/src/nm-fortisslvpn-service.c +index 6c340d0..a8483c2 100644 +--- a/src/nm-fortisslvpn-service.c ++++ b/src/nm-fortisslvpn-service.c +@@ -40,7 +40,7 @@ + #include + + #include "nm-fortissl-properties.h" +-#include "nm-ppp-status.h" ++#include "nm-fortisslvpn-pppd-status.h" + #include "nm-fortisslvpn-pppd-service-dbus.h" + #include "nm-utils/nm-shared-utils.h" + #include "nm-utils/nm-vpn-plugin-macros.h" +-- +GitLab + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch new file mode 100644 index 0000000000..798a57b0da --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch @@ -0,0 +1,34 @@ +From 8773f772d39f8eee6edc1fd2e5437c754ed41e1e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eivind=20N=C3=A6ss?= +Date: Sat, 4 Mar 2023 21:29:54 +0000 +Subject: [PATCH] Fixing configure.ac from previous change +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Accepted +Signed-off-by: Eivind Næss +--- + configure.ac | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 877493e..a5b4abb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -47,11 +47,7 @@ AC_CHECK_HEADERS(pppd/pppd.h,, + + dnl + dnl Check the presense of other pppd/*.h files +-AC_CHECK_HEADERS([ +- pppd/chap.h +- pppd/chap-new.h +- pppd/chap_ms.h +- ]) ++AC_CHECK_HEADERS(pppd/chap.h pppd/chap-new.h pppd/chap_ms.h) + + dnl + dnl Versions >= 2.5.0 will have pkg-config support +-- +GitLab + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb new file mode 100644 index 0000000000..a251e8bf3d --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb @@ -0,0 +1,70 @@ +SUMMARY = "Fortinet SSLVPN support for NetworkManager" +SECTION = "net/misc" + +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "glib-2.0-native libxml2-native networkmanager ppp" + +inherit gnomebase gettext useradd + +SRC_URI = " \ + ${GNOME_MIRROR}/NetworkManager-fortisslvpn/${@gnome_verdir("${PV}")}/NetworkManager-fortisslvpn-${PV}.tar.xz \ + file://0001-fix-ppp-2.5.0-build.patch \ + file://0002-fix-ppp-2.5.0-build.patch \ +" +SRC_URI[sha256sum] = "b055e26349b516b23585798ab3ef57b436b014800e92a8ac732cfc8e76c5dafa" + +S = "${WORKDIR}/NetworkManager-fortisslvpn-${PV}" + +# meta-gnome in layers is required using gnome: +PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome,gtk+3 libnma libsecret," +PACKAGECONFIG[gtk4] = "--with-gtk4,--without-gtk4,gtk4," + +EXTRA_OECONF = "--with-pppd-plugin-dir=${libdir}/pppd/${@get_ppp_version(d)}" + +def get_ppp_version(d): + import re + + pppd_plugin = d.expand('${STAGING_LIBDIR}/pppd') + if not os.path.isdir(pppd_plugin): + return None + + bb.debug(1, "pppd plugin dir %s" % pppd_plugin) + r = re.compile(r"\d*\.\d*\.\d*") + for f in os.listdir(pppd_plugin): + if os.path.isdir(os.path.join(pppd_plugin, f)): + ma = r.match(f) + if ma: + bb.debug(1, "pppd version dir %s" % f) + return f + else: + bb.debug(1, "under pppd plugin dir %s" % f) + + return None + +# gdbus-codegen requires target directories to exist +do_configure:append() { + mkdir -p ${B}/properties + mkdir -p ${B}/src +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "--system nm-fortisslvpn" + +FILES:${PN} += " \ + ${libdir}/NetworkManager/*.so \ + ${libdir}/pppd/*/*.so \ + ${nonarch_libdir}/NetworkManager/VPN/nm-fortisslvpn-service.name \ +" + +FILES:${PN}-staticdev += " \ + ${libdir}/NetworkManager/*.a \ + ${libdir}/pppd/*/*.a \ +" + +RDEPENDS:${PN} = " \ + networkmanager \ + openfortivpn \ + ppp \ +"