From patchwork Thu Jul 12 17:33:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathias Kresin X-Patchwork-Id: 943156 X-Patchwork-Delegate: openwrt@kresin.me Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=kresin.me Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Rc///9PB"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kresin-me.20150623.gappssmtp.com header.i=@kresin-me.20150623.gappssmtp.com header.b="E0wd9bAp"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41RNTf5yTNz9rxs for ; Fri, 13 Jul 2018 03:39:02 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Subject:References: In-Reply-To:Message-Id:Date:To:From:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=ff93mRwZya0lBs1bscNPL1X0AgEkSpVmGixDTQGARRw=; b=Rc///9PBVVXx0QbtkLw0ogyjtr GGlCReUGevRmmnFQTMmz/tUCVL8T9FWE7T+IxB7wAufB/3iAl8HrmZ8/AC2iSSR0abMDcyiC7gtMW Q0/c4SHp22AFRcoudbjyn90mfNRiryMvwxdRn9Bbz6is/HNgenUr5O/9ilAhvw7frwFa5BhzGyHzX +QZEZcPPNJVyrY80OtxrDSopapGZDMgoSSgXN/wlRBDr+cVaBrMCvWP1t20Qz1fYelTF6dVG6JIcS D2dsRe2kTFSpeGARSEfzqOyh45nVOmW4korZeveIOtSFct0JJ1N+BIeesLS7kBE+GyGCoIratQ0cK 4QsrqUEw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1fdfYP-0008Oz-Ev; Thu, 12 Jul 2018 17:38:57 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fdfYA-0007w6-Th for openwrt-devel@lists.openwrt.org; Thu, 12 Jul 2018 17:38:47 +0000 Received: by mail-wr1-x42c.google.com with SMTP id g6-v6so13619919wrp.0 for ; Thu, 12 Jul 2018 10:38:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kresin-me.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=iiuqh74w5LXJB5bLY56LXazJh/IPX23ZZlfCg/VD1ZE=; b=E0wd9bApNSmVvhjPrq1DjF062a5a1Oy3K0YQWEAO/DJPpH4vlgazgFOCH6e68XK9VT ahN3HS96xJkNT/bTUgIZeqxwh4w4oHRV0usrVir0paWVvGvn362dZPcpvjNUZnH5VV+1 P+/TEpyb7/JsmBsaaHq1w0vGxHSU8tpoillfOJ7pR4l44ImmGuqvlCpkb3LGVhUI9Fbk 8EasJOY+kP5bjjEJPqxP+uDeETqC3CzcrH6Ul4QOJK7799DOJZm6wka7uOgcPzUxDkZh j6zu2Vcl8BTW90oykBE/s448BHDytf/trZ4/sjiD0wMGNJricXu4WQGbefprTE0sq7SG UvnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=iiuqh74w5LXJB5bLY56LXazJh/IPX23ZZlfCg/VD1ZE=; b=dwYGG1SyxrXDBwlP+wzom5UJQvcrOR9cp8AiQRZmgjZUaPccRGlQJq0OZeJdZ7jCiN PoTyHRf5cljuPNh7ZunEiFllV9GfOVsn8UbdVsCq3ObHSp9KwjhyaTYz027gQdBElKym YKceaKUG69ZxGqxXB4aJYQU+4GRr4kjqppAL/ny8WGeqzUi6tMNCRia3KP0Y6PRHnwoN XrOgxxHyTZ9dMIwYIOIJWLo/9XWlvsMz51W51dmrj7K1WMyPhOTVcVOIg2bUnDSbdmYL yiksATT0iN6gbFDMyo5ejInDZQmySG7XHMZDIEpnKMd2dB4pO+fiSskrQudxvclXKQ2x LUvw== X-Gm-Message-State: AOUpUlHmeycjBK08Fd+Xt54YPqUcu3Yl9v5Cw+LhG7Gy/A/bhV8tiGQD q3jcG5EFWyS9s0TGf2x2tCbL55Wd X-Google-Smtp-Source: AAOMgpeLG2l7zt8AagO8GL1DVUAoyDOCuHCJRaAI8QDShAcfZGrKLAXuf+PebK8Opg/QuIad3F9JQQ== X-Received: by 2002:adf:d4c4:: with SMTP id w4-v6mr2366751wrk.185.1531417110828; Thu, 12 Jul 2018 10:38:30 -0700 (PDT) Received: from desktop.wvd.kresin.me (p200300EC2BD4B5000D95041527C14A54.dip0.t-ipconnect.de. [2003:ec:2bd4:b500:d95:415:27c1:4a54]) by smtp.gmail.com with ESMTPSA id f6-v6sm11981945wrp.30.2018.07.12.10.38.29 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 12 Jul 2018 10:38:30 -0700 (PDT) From: Mathias Kresin To: openwrt-devel@lists.openwrt.org Date: Thu, 12 Jul 2018 19:33:48 +0200 Message-Id: <1531416828-29071-2-git-send-email-dev@kresin.me> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1531416828-29071-1-git-send-email-dev@kresin.me> References: <1531416828-29071-1-git-send-email-dev@kresin.me> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180712_103843_284332_757B7456 X-CRM114-Status: GOOD ( 10.19 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:42c listed in] [list.dnswl.org] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 T_DKIMWL_WL_MED DKIMwl.org - Whitelisted Medium sender Subject: [OpenWrt-Devel] [PATCH 2/2] hostapd: fix conflicts hell X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Add each variant to the matching PROVIDERS variables after evaluating the respective hostapd*, wpad* and wpa* variant. Each package providing the same feature will automatically conflict with all prior packages providing the same feature. This way we can handle the conflicts automatically without introducing recursive dependencies. Signed-off-by: Mathias Kresin --- package/network/services/hostapd/Makefile | 142 ++++++++++-------------------- 1 file changed, 47 insertions(+), 95 deletions(-) diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 5d53cb0..af92064 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -32,20 +32,10 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_DRIVER_11N_SUPPORT \ CONFIG_DRIVER_11AC_SUPPORT \ -WPAD_PROVIDERS:=wpad-mini wpad wpad-openssl wpad-wolfssl \ - wpad-mesh-openssl wpad-mesh-wolfssl - -SUPPLICANT_ONLY_PROVIDERS:=wpa-supplicant-mini wpa-supplicant-p2p \ - wpa-supplicant wpa-supplicant-openssl wpa-supplicant-wolfssl \ - wpa-supplicant-mesh-openssl wpa-supplicant-mesh-wolfssl - -HOSTAPD_ONLY_PROVIDERS:=hostapd-mini hostapd hostapd-openssl hostapd-wolfssl - EAPOL_TEST_PROVIDERS:=eapol-test eapol-test-openssl eapol-test-wolfssl -SUPPLICANT_PROVIDERS:=$(WPAD_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS) -HOSTAPD_PROVIDERS:=$(WPAD_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS) -ANY_PROVIDERS:=$(WPAD_PROVIDERS) $(SUPPLICANT_ONLY_PROVIDERS) $(HOSTAPD_ONLY_PROVIDERS) +SUPPLICANT_PROVIDERS:= +HOSTAPD_PROVIDERS:= LOCAL_TYPE=$(strip \ $(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \ @@ -153,10 +143,12 @@ define Package/hostapd/Default URL:=http://hostap.epitest.fi/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus PROVIDES:=hostapd + CONFLICTS:=$(HOSTAPD_PROVIDERS) + HOSTAPD_PROVIDERS+=$(1) endef define Package/hostapd -$(call Package/hostapd/Default) +$(call Package/hostapd/Default,$(1)) TITLE+= (full) VARIANT:=full-internal endef @@ -167,49 +159,33 @@ define Package/hostapd/description endef define Package/hostapd-openssl -$(call Package/hostapd/Default) +$(call Package/hostapd/Default,$(1)) TITLE+= (full) VARIANT:=full-openssl DEPENDS+=+libopenssl - CONFLICTS:=$(filter-out hostapd-openssl ,$(HOSTAPD_ONLY_PROVIDERS)) endef Package/hostapd-openssl/description = $(Package/hostapd/description) define Package/hostapd-wolfssl -$(call Package/hostapd/Default) +$(call Package/hostapd/Default,$(1)) TITLE+= (full) VARIANT:=full-wolfssl DEPENDS+=+libwolfssl - CONFLICTS:=$(filter-out hostapd-openssl ,$(filter-out hostapd-wolfssl ,$(HOSTAPD_ONLY_PROVIDERS))) endef Package/hostapd-wolfssl/description = $(Package/hostapd/description) define Package/hostapd-mini -$(call Package/hostapd/Default) +$(call Package/hostapd/Default,$(1)) TITLE+= (WPA-PSK only) VARIANT:=mini - CONFLICTS:=$(filter-out hostapd-wolfssl ,$(filter-out hostapd-openssl ,$(filter-out hostapd-mini ,$(HOSTAPD_ONLY_PROVIDERS)))) endef define Package/hostapd-mini/description This package contains a minimal IEEE 802.1x/WPA Authenticator (WPA-PSK only). endef -define Package/hostapd-utils - SECTION:=net - CATEGORY:=Network - TITLE:=IEEE 802.1x Authenticator (utils) - URL:=http://hostap.epitest.fi/ - DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(HOSTAPD_PROVIDERS),PACKAGE_$(pkg))) -endef - -define Package/hostapd-utils/description - This package contains a command line utility to control the - IEEE 802.1x/WPA/EAP/RADIUS Authenticator. -endef - define Package/wpad/Default SECTION:=net @@ -218,20 +194,15 @@ define Package/wpad/Default DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus URL:=http://hostap.epitest.fi/ PROVIDES:=hostapd wpa-supplicant + CONFLICTS:=$(HOSTAPD_PROVIDERS) $(SUPPLICANT_PROVIDERS) + HOSTAPD_PROVIDERS+=$(1) + SUPPLICANT_PROVIDERS+=$(1) endef define Package/wpad -$(call Package/wpad/Default) +$(call Package/wpad/Default,$(1)) TITLE+= (full) VARIANT:=wpad-full-internal - CONFLICTS:=$(filter-out wpad-mesh-wolfssl,\ - $(filter-out wpad-mesh-openssl ,\ - $(filter-out wpad-openssl ,\ - $(filter-out wpad-wolfssl ,\ - $(filter-out wpad-wolfssl ,\ - $(filter-out wpad ,\ - $(ANY_PROVIDERS)\ - )))))) endef define Package/wpad/description @@ -240,37 +211,27 @@ define Package/wpad/description endef define Package/wpad-openssl -$(call Package/wpad/Default) +$(call Package/wpad/Default,$(1)) TITLE+= (full) VARIANT:=wpad-full-openssl DEPENDS+=+libopenssl - CONFLICTS:=$(filter-out wpad-mesh-wolfssl,\ - $(filter-out wpad-mesh-openssl ,\ - $(filter-out wpad-openssl ,\ - $(ANY_PROVIDERS)))) endef Package/wpad-openssl/description = $(Package/wpad/description) define Package/wpad-wolfssl -$(call Package/wpad/Default) +$(call Package/wpad/Default,$(1)) TITLE+= (full) VARIANT:=wpad-full-wolfssl DEPENDS+=+libwolfssl - CONFLICTS:=$(filter-out wpad-mesh-wolfssl ,\ - $(filter-out wpad-mesh-openssl ,\ - $(filter-out wpad-openssl ,\ - $(filter-out wpad-wolfssl ,\ - $(ANY_PROVIDERS))))) endef Package/wpad-wolfssl/description = $(Package/wpad/description) define Package/wpad-mini -$(call Package/wpad/Default) +$(call Package/wpad/Default,$(1)) TITLE+= (WPA-PSK only) VARIANT:=wpad-mini - CONFLICTS:=$(SUPPLICANT_ONLY_PROVIDERS) endef define Package/wpad-mini/description @@ -278,7 +239,7 @@ define Package/wpad-mini/description endef define Package/wpad-mesh -$(call Package/wpad/Default) +$(call Package/wpad/Default,$(1)) TITLE+= (with 802.11s mesh and SAE support) DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) PROVIDES+=wpa-supplicant-mesh wpad-mesh @@ -289,19 +250,17 @@ define Package/wpad-mesh/description endef define Package/wpad-mesh-openssl -$(call Package/wpad-mesh) +$(call Package/wpad-mesh,$(1)) DEPENDS+=+libopenssl VARIANT:=wpad-mesh-openssl - CONFLICTS:=$(filter-out wpad-mesh-openssl ,$(ANY_PROVIDERS)) endef Package/wpad-mesh-openssl/description = $(Package/wpad-mesh/description) define Package/wpad-mesh-wolfssl -$(call Package/wpad-mesh) +$(call Package/wpad-mesh,$(1)) DEPENDS+=+libwolfssl VARIANT:=wpad-mesh-wolfssl - CONFLICTS:=$(filter-out wpad-mesh-openssl ,$(filter-out wpad-mesh-wolfssl ,$(ANY_PROVIDERS))) endef Package/wpad-mesh-wolfssl/description = $(Package/wpad-mesh/description) @@ -314,34 +273,23 @@ define Package/wpa-supplicant/Default URL:=http://hostap.epitest.fi/wpa_supplicant/ DEPENDS:=$(DRV_DEPENDS) PROVIDES:=wpa-supplicant + CONFLICTS:=$(SUPPLICANT_PROVIDERS) + SUPPLICANT_PROVIDERS+=$(1) endef define Package/wpa-supplicant - $(Package/wpa-supplicant/Default) +$(call Package/wpa-supplicant/Default,$(1)) VARIANT:=supplicant-full-internal - CONFLICTS:=wpa-supplicant-mini endef define Package/wpa-supplicant-openssl - $(Package/wpa-supplicant/Default) - CONFLICTS:=$(filter-out wpa-supplicant-wolfssl ,\ - $(filter-out wpa-supplicant-openssl ,\ - $(filter-out wpa-supplicant-mesh-openssl ,\ - $(filter-out wpa-supplicant-mesh-wolfssl ,\ - $(SUPPLICANT_ONLY_PROVIDERS)\ - )))) +$(call Package/wpa-supplicant/Default,$(1)) VARIANT:=supplicant-full-openssl DEPENDS+=+libopenssl endef define Package/wpa-supplicant-wolfssl - $(Package/wpa-supplicant/Default) - CONFLICTS:=$(filter-out wpa-supplicant-wolfssl ,\ - $(filter-out wpa-supplicant-openssl ,\ - $(filter-out wpa-supplicant-mesh-openssl ,\ - $(filter-out wpa-supplicant-mesh-wolfssl ,\ - $(SUPPLICANT_ONLY_PROVIDERS)\ - )))) +$(call Package/wpa-supplicant/Default,$(1)) VARIANT:=supplicant-full-wolfssl DEPENDS+=+libwolfssl endef @@ -351,57 +299,61 @@ define Package/wpa-supplicant/config endef define Package/wpa-supplicant-p2p - $(Package/wpa-supplicant/Default) +$(call Package/wpa-supplicant/Default,$(1)) TITLE:=WPA Supplicant (with Wi-Fi P2P support) DEPENDS+=@PACKAGE_kmod-cfg80211 - CONFLICTS:=$(filter-out wpa-supplicant-openssl ,\ - $(filter-out wpa-supplicant-wolfssl ,\ - $(filter-out wpa-supplicant-p2p ,\ - $(filter-out wpa-supplicant-mesh-openssl ,\ - $(filter-out wpa-supplicant-mesh-wolfssl ,\ - $(SUPPLICANT_ONLY_PROVIDERS)\ - ))))) - VARIANT:=supplicant-p2p-internal endef define Package/wpa-supplicant-mesh/Default - $(Package/wpa-supplicant/Default) +$(call Package/wpa-supplicant/Default,$(1)) TITLE:=WPA Supplicant (with 802.11s and SAE) DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) PROVIDES+=wpa-supplicant-mesh endef define Package/wpa-supplicant-mesh-openssl - $(Package/wpa-supplicant-mesh/Default) +$(call Package/wpa-supplicant-mesh/Default,$(1)) VARIANT:=supplicant-mesh-openssl - CONFLICTS:=$(filter-out wpa-supplicant-mesh-openssl ,$(SUPPLICANT_ONLY_PROVIDERS)) DEPENDS+=+libopenssl endef define Package/wpa-supplicant-mesh-wolfssl - $(Package/wpa-supplicant-mesh/Default) +$(call Package/wpa-supplicant-mesh/Default,$(1)) VARIANT:=supplicant-mesh-wolfssl - CONFLICTS:=$(filter-out wpa-supplicant-mesh-openssl ,$(filter-out wpa-supplicant-mesh-wolfssl ,$(SUPPLICANT_ONLY_PROVIDERS))) DEPENDS+=+libwolfssl endef define Package/wpa-supplicant-mini - $(Package/wpa-supplicant/Default) +$(call Package/wpa-supplicant/Default) TITLE:=WPA Supplicant (minimal version) VARIANT:=supplicant-mini endef -define Package/wpa-cli + +define Package/hostapd-common + TITLE:=hostapd/wpa_supplicant common support files SECTION:=net CATEGORY:=Network - DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(SUPPLICANT_PROVIDERS),PACKAGE_$(pkg))) - TITLE:=WPA Supplicant command line control utility endef -define Package/hostapd-common - TITLE:=hostapd/wpa_supplicant common support files +define Package/hostapd-utils + SECTION:=net + CATEGORY:=Network + TITLE:=IEEE 802.1x Authenticator (utils) + URL:=http://hostap.epitest.fi/ + DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(HOSTAPD_PROVIDERS),PACKAGE_$(pkg))) +endef + +define Package/hostapd-utils/description + This package contains a command line utility to control the + IEEE 802.1x/WPA/EAP/RADIUS Authenticator. +endef + +define Package/wpa-cli SECTION:=net CATEGORY:=Network + DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(SUPPLICANT_PROVIDERS),PACKAGE_$(pkg))) + TITLE:=WPA Supplicant command line control utility endef define Package/eapol-test