X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=package%2Fnetwork%2Fservices%2Fhostapd%2FMakefile;h=06cf0469ef9ccb5a8a2e88c7241ce09c17879036;hp=344896ca62174100583ae2dd9c17e1d2469e95ed;hb=18c6c93a3b83831a1e7d7d80c22c477412c56cb4;hpb=c0882035353238b061369fcff4bb1e248409e71a diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 344896ca62..06cf0469ef 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -7,16 +7,17 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hostapd -PKG_RELEASE:=1 +PKG_RELEASE:=4 PKG_SOURCE_URL:=http://w1.fi/hostap.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2017-08-24 -PKG_SOURCE_VERSION:=c2d4f2eb5dba0b5c5a8c5805823084da958a9b52 -PKG_MIRROR_HASH:=c6ad9a73fc1ae0ba8bc48f71cf14394b274bc9c2c1d1b53c2775f08312597e74 +PKG_SOURCE_DATE:=2018-05-21 +PKG_SOURCE_VERSION:=62566bc23d041e88f8e35933d5fd8c2fd0f7cf2a +PKG_MIRROR_HASH:=f234b24f9471ae9cb34460feec6d6614641691544101535673595272c91448eb PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-3-Clause +PKG_CPE_ID:=cpe:/a:w1.fi:hostapd PKG_BUILD_PARALLEL:=1 @@ -29,33 +30,49 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_WPA_RFKILL_SUPPORT \ CONFIG_DRIVER_WEXT_SUPPORT \ CONFIG_DRIVER_11N_SUPPORT \ - CONFIG_DRIVER_11AC_SUPPORT + CONFIG_DRIVER_11AC_SUPPORT \ + +EAPOL_TEST_PROVIDERS:=eapol-test eapol-test-openssl eapol-test-wolfssl + +SUPPLICANT_PROVIDERS:= +HOSTAPD_PROVIDERS:= LOCAL_TYPE=$(strip \ $(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \ $(if $(findstring supplicant,$(BUILD_VARIANT)),supplicant, \ hostapd \ - ))) -LOCAL_VARIANT=$(patsubst wpad-%,%,$(patsubst supplicant-%,%,$(BUILD_VARIANT))) + ))) + +LOCAL_AND_LIB_VARIANT=$(patsubst hostapd-%,%,\ + $(patsubst wpad-%,%,\ + $(patsubst supplicant-%,%,\ + $(BUILD_VARIANT)\ + ))) + +LOCAL_VARIANT=$(patsubst %-internal,%,\ + $(patsubst %-openssl,%,\ + $(patsubst %-wolfssl,%,\ + $(LOCAL_AND_LIB_VARIANT)\ + ))) + +SSL_VARIANT=$(strip \ + $(if $(findstring openssl,$(LOCAL_AND_LIB_VARIANT)),openssl,\ + $(if $(findstring wolfssl,$(LOCAL_AND_LIB_VARIANT)),wolfssl,\ + internal\ + ))) + CONFIG_VARIANT:=$(LOCAL_VARIANT) ifeq ($(LOCAL_VARIANT),mesh) CONFIG_VARIANT:=full endif -ifneq ($(LOCAL_TYPE),hostapd) - ifeq ($(LOCAL_VARIANT),full) - PKG_CONFIG_DEPENDS += \ - CONFIG_WPA_SUPPLICANT_INTERNAL \ - CONFIG_WPA_SUPPLICANT_OPENSSL - endif -endif - PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk STAMP_CONFIGURED:=$(STAMP_CONFIGURED)_$(CONFIG_WPA_MSG_MIN_PRIORITY) + ifneq ($(CONFIG_DRIVER_11N_SUPPORT),) HOSTAPD_IEEE80211N:=y endif @@ -71,21 +88,36 @@ DRIVER_MAKEOPTS= \ CONFIG_IEEE80211AC=$(HOSTAPD_IEEE80211AC) \ CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \ +space := +space += + ifeq ($(LOCAL_VARIANT),full) DRIVER_MAKEOPTS += CONFIG_IEEE80211W=$(CONFIG_DRIVER_11W_SUPPORT) endif +ifeq ($(LOCAL_VARIANT),full) + ifeq ($(SSL_VARIANT),openssl) + DRIVER_MAKEOPTS += CONFIG_TLS=openssl CONFIG_SAE=y CONFIG_OWE=y + TARGET_LDFLAGS += -lcrypto -lssl + endif + ifeq ($(SSL_VARIANT),wolfssl) + DRIVER_MAKEOPTS += CONFIG_TLS=wolfssl CONFIG_WPS_NFC=1 CONFIG_SAE=y CONFIG_OWE=y + TARGET_LDFLAGS += -lwolfssl + endif +endif + ifneq ($(LOCAL_TYPE),hostapd) - ifdef CONFIG_WPA_SUPPLICANT_OPENSSL - ifeq ($(LOCAL_VARIANT),full) - DRIVER_MAKEOPTS += CONFIG_TLS=openssl + ifeq ($(LOCAL_VARIANT),mesh) + ifeq ($(SSL_VARIANT),openssl) + DRIVER_MAKEOPTS += CONFIG_TLS=openssl CONFIG_AP=y CONFIG_SAE=y CONFIG_MESH=y TARGET_LDFLAGS += -lcrypto -lssl endif + ifeq ($(SSL_VARIANT),wolfssl) + DRIVER_MAKEOPTS += CONFIG_TLS=wolfssl CONFIG_WPS_NFC=1 CONFIG_AP=y CONFIG_SAE=y CONFIG_MESH=y + TARGET_LDFLAGS += -lwolfssl + endif endif - ifeq ($(LOCAL_VARIANT),mesh) - DRIVER_MAKEOPTS += CONFIG_TLS=openssl CONFIG_AP=y CONFIG_SAE=y CONFIG_MESH=y - TARGET_LDFLAGS += -lcrypto -lssl - endif + ifdef CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK TARGET_CFLAGS += -DNO_TIMESTAMP_CHECK endif @@ -103,19 +135,22 @@ endif DRV_DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny + define Package/hostapd/Default SECTION:=net CATEGORY:=Network TITLE:=IEEE 802.1x Authenticator 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 - CONFLICTS:=wpad wpad-mini wpad-mesh + VARIANT:=full-internal endef define Package/hostapd/description @@ -123,27 +158,34 @@ define Package/hostapd/description Authenticator. endef +define Package/hostapd-openssl +$(call Package/hostapd/Default,$(1)) + TITLE+= (full) + VARIANT:=full-openssl + DEPENDS+=+libopenssl +endef + +Package/hostapd-openssl/description = $(Package/hostapd/description) + +define Package/hostapd-wolfssl +$(call Package/hostapd/Default,$(1)) + TITLE+= (full) + VARIANT:=full-wolfssl + DEPENDS+=+libwolfssl +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:=wpad wpad-mini wpad-mesh endef define Package/hostapd-mini/description This package contains a minimal IEEE 802.1x/WPA Authenticator (WPA-PSK only). endef -define Package/hostapd-utils - $(call Package/hostapd/Default) - TITLE+= (utils) - DEPENDS:=@PACKAGE_hostapd||PACKAGE_hostapd-mini||PACKAGE_wpad||PACKAGE_wpad-mesh||PACKAGE_wpad-mini -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 @@ -151,13 +193,16 @@ define Package/wpad/Default TITLE:=IEEE 802.1x Authenticator/Supplicant 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) - DEPENDS+=+WPA_SUPPLICANT_OPENSSL:libopenssl - VARIANT:=wpad-full + VARIANT:=wpad-full-internal endef define Package/wpad/description @@ -165,8 +210,26 @@ define Package/wpad/description Authenticator and Supplicant endef +define Package/wpad-openssl +$(call Package/wpad/Default,$(1)) + TITLE+= (full) + VARIANT:=wpad-full-openssl + DEPENDS+=+libopenssl +endef + +Package/wpad-openssl/description = $(Package/wpad/description) + +define Package/wpad-wolfssl +$(call Package/wpad/Default,$(1)) + TITLE+= (full) + VARIANT:=wpad-full-wolfssl + DEPENDS+=+libwolfssl +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 endef @@ -176,24 +239,59 @@ 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:=$(DRV_DEPENDS) +libubus +PACKAGE_wpad-mesh:libopenssl @PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) - VARIANT:=wpad-mesh + DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) + PROVIDES+=wpa-supplicant-mesh wpad-mesh endef define Package/wpad-mesh/description This package contains a minimal IEEE 802.1x/WPA Authenticator and Supplicant (with 802.11s mesh and SAE support). endef -define Package/wpa-supplicant +define Package/wpad-mesh-openssl +$(call Package/wpad-mesh,$(1)) + DEPENDS+=+libopenssl + VARIANT:=wpad-mesh-openssl +endef + +Package/wpad-mesh-openssl/description = $(Package/wpad-mesh/description) + +define Package/wpad-mesh-wolfssl +$(call Package/wpad-mesh,$(1)) + DEPENDS+=+libwolfssl + VARIANT:=wpad-mesh-wolfssl +endef + +Package/wpad-mesh-wolfssl/description = $(Package/wpad-mesh/description) + + +define Package/wpa-supplicant/Default SECTION:=net CATEGORY:=Network TITLE:=WPA Supplicant URL:=http://hostap.epitest.fi/wpa_supplicant/ - DEPENDS:=$(DRV_DEPENDS) +WPA_SUPPLICANT_OPENSSL:libopenssl - CONFLICTS:=wpad wpad-mini wpad-mesh - VARIANT:=supplicant-full + DEPENDS:=$(DRV_DEPENDS) + PROVIDES:=wpa-supplicant + CONFLICTS:=$(SUPPLICANT_PROVIDERS) + SUPPLICANT_PROVIDERS+=$(1) +endef + +define Package/wpa-supplicant +$(call Package/wpa-supplicant/Default,$(1)) + VARIANT:=supplicant-full-internal +endef + +define Package/wpa-supplicant-openssl +$(call Package/wpa-supplicant/Default,$(1)) + VARIANT:=supplicant-full-openssl + DEPENDS+=+libopenssl +endef + +define Package/wpa-supplicant-wolfssl +$(call Package/wpa-supplicant/Default,$(1)) + VARIANT:=supplicant-full-wolfssl + DEPENDS+=+libwolfssl endef define Package/wpa-supplicant/config @@ -201,48 +299,90 @@ define Package/wpa-supplicant/config endef define Package/wpa-supplicant-p2p - $(Package/wpa-supplicant) - TITLE:=WPA Supplicant (with Wi-Fi P2P support) - DEPENDS:=$(DRV_DEPENDS) @PACKAGE_kmod-cfg80211 - CONFLICTS:=wpad wpad-mini wpad-mesh - VARIANT:=supplicant-p2p +$(call Package/wpa-supplicant/Default,$(1)) + TITLE+= (with Wi-Fi P2P support) + DEPENDS+=@PACKAGE_kmod-cfg80211 + VARIANT:=supplicant-p2p-internal +endef + +define Package/wpa-supplicant-mesh/Default +$(call Package/wpa-supplicant/Default,$(1)) + TITLE+= (with 802.11s and SAE) + DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) + PROVIDES+=wpa-supplicant-mesh +endef + +define Package/wpa-supplicant-mesh-openssl +$(call Package/wpa-supplicant-mesh/Default,$(1)) + VARIANT:=supplicant-mesh-openssl + DEPENDS+=+libopenssl endef -define Package/wpa-supplicant-mesh - $(Package/wpa-supplicant) - TITLE:=WPA Supplicant (with 802.11s and SAE) - DEPENDS:=$(DRV_DEPENDS) +PACKAGE_wpa-supplicant-mesh:libopenssl @PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) - CONFLICTS:=wpad wpad-mesh wpad-mesh - VARIANT:=supplicant-mesh +define Package/wpa-supplicant-mesh-wolfssl +$(call Package/wpa-supplicant-mesh/Default,$(1)) + VARIANT:=supplicant-mesh-wolfssl + DEPENDS+=+libwolfssl endef define Package/wpa-supplicant-mini - $(Package/wpa-supplicant) - TITLE:=WPA Supplicant (minimal version) - DEPENDS:=$(DRV_DEPENDS) - CONFLICTS:=wpad wpad-mini wpad-mesh +$(call Package/wpa-supplicant/Default,$(1)) + TITLE+= (minimal version) VARIANT:=supplicant-mini endef + +define Package/hostapd-common + TITLE:=hostapd/wpa_supplicant common support files + SECTION:=net + CATEGORY:=Network +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/wpa-cli SECTION:=net CATEGORY:=Network - DEPENDS:=@PACKAGE_wpa-supplicant||PACKAGE_wpa-supplicant-p2p||PACKAGE_wpad-mini||PACKAGE_wpad||PACKAGE_wpad-mesh + 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/eapol-test + TITLE:=802.1x authentication test utility SECTION:=net CATEGORY:=Network + VARIANT:=supplicant-full-internal + DEPENDS:=$(DRV_DEPENDS) endef -define Package/eapol-test +define Package/eapol-test-openssl + TITLE:=802.1x authentication test utility + SECTION:=net + CATEGORY:=Network + VARIANT:=supplicant-full-openssl + CONFLICTS:=$(filter-out eapol-test-openssl ,$(EAPOL_TEST_PROVIDERS)) + DEPENDS:=$(DRV_DEPENDS) +libopenssl + PROVIDES:=eapol-test +endef + +define Package/eapol-test-wolfssl TITLE:=802.1x authentication test utility SECTION:=net CATEGORY:=Network - VARIANT:=supplicant-full - DEPENDS:=$(DRV_DEPENDS) +WPA_SUPPLICANT_OPENSSL:libopenssl + VARIANT:=supplicant-full-wolfssl + CONFLICTS:=$(filter-out eapol-test-openssl ,$(filter-out eapol-test-wolfssl ,$(EAPOL_TEST_PROVIDERS))) + DEPENDS:=$(DRV_DEPENDS) +libwolfssl + PROVIDES:=eapol-test endef @@ -272,8 +412,8 @@ TARGET_CPPFLAGS := \ -D_GNU_SOURCE \ $(if $(CONFIG_WPA_MSG_MIN_PRIORITY),-DCONFIG_MSG_MIN_PRIORITY=$(CONFIG_WPA_MSG_MIN_PRIORITY)) -TARGET_CFLAGS += -ffunction-sections -fdata-sections -TARGET_LDFLAGS += -Wl,--gc-sections +TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto +TARGET_LDFLAGS += -Wl,--gc-sections -flto=jobserver -fuse-linker-plugin ifeq ($(findstring supplicant,$(BUILD_VARIANT)),) TARGET_LDFLAGS += -lubox -lubus endif @@ -289,6 +429,7 @@ define Build/RunMake $(DRIVER_MAKEOPTS) \ LIBS="$(TARGET_LDFLAGS)" \ LIBS_c="$(TARGET_LDFLAGS_C)" \ + AR="$(TARGET_CROSS)gcc-ar" \ BCHECK= \ $(2) endef @@ -310,7 +451,7 @@ define Build/Compile/wpad MULTICALL=1 \ wpa_cli wpa_supplicant_multi.a \ ) - $(TARGET_CC) -o $(PKG_BUILD_DIR)/wpad \ + +export MAKEFLAGS="$(MAKE_JOBSERVER)"; $(TARGET_CC) -o $(PKG_BUILD_DIR)/wpad \ $(TARGET_CFLAGS) \ ./files/multicall.c \ $(PKG_BUILD_DIR)/hostapd/hostapd_multi.a \ @@ -330,7 +471,19 @@ define Build/Compile/supplicant ) endef -define Build/Compile/supplicant-full +define Build/Compile/supplicant-full-internal + +$(call Build/RunMake,wpa_supplicant, \ + eapol_test \ + ) +endef + +define Build/Compile/supplicant-full-openssl + +$(call Build/RunMake,wpa_supplicant, \ + eapol_test \ + ) +endef + +define Build/Compile/supplicant-full-wolfssl +$(call Build/RunMake,wpa_supplicant, \ eapol_test \ ) @@ -359,6 +512,8 @@ define Package/hostapd/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostapd/hostapd $(1)/usr/sbin/ endef Package/hostapd-mini/install = $(Package/hostapd/install) +Package/hostapd-openssl/install = $(Package/hostapd/install) +Package/hostapd-wolfssl/install = $(Package/hostapd/install) ifneq ($(LOCAL_TYPE),supplicant) define Package/hostapd-utils/install @@ -376,7 +531,10 @@ define Package/wpad/install $(LN) wpad $(1)/usr/sbin/wpa_supplicant endef Package/wpad-mini/install = $(Package/wpad/install) -Package/wpad-mesh/install = $(Package/wpad/install) +Package/wpad-openssl/install = $(Package/wpad/install) +Package/wpad-wolfssl/install = $(Package/wpad/install) +Package/wpad-mesh-openssl/install = $(Package/wpad/install) +Package/wpad-mesh-wolfssl/install = $(Package/wpad/install) define Package/wpa-supplicant/install $(call Install/supplicant,$(1)) @@ -384,7 +542,10 @@ define Package/wpa-supplicant/install endef Package/wpa-supplicant-mini/install = $(Package/wpa-supplicant/install) Package/wpa-supplicant-p2p/install = $(Package/wpa-supplicant/install) -Package/wpa-supplicant-mesh/install = $(Package/wpa-supplicant/install) +Package/wpa-supplicant-openssl/install = $(Package/wpa-supplicant/install) +Package/wpa-supplicant-wolfssl/install = $(Package/wpa-supplicant/install) +Package/wpa-supplicant-mesh-openssl/install = $(Package/wpa-supplicant/install) +Package/wpa-supplicant-mesh-wolfssl/install = $(Package/wpa-supplicant/install) ifneq ($(LOCAL_TYPE),hostapd) define Package/wpa-cli/install @@ -393,23 +554,47 @@ ifneq ($(LOCAL_TYPE),hostapd) endef endif -ifeq ($(BUILD_VARIANT),supplicant-full) +ifeq ($(BUILD_VARIANT),supplicant-full-internal) define Package/eapol-test/install $(INSTALL_DIR) $(1)/usr/sbin $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/ endef endif +ifeq ($(BUILD_VARIANT),supplicant-full-openssl) + define Package/eapol-test-openssl/install + $(INSTALL_DIR) $(1)/usr/sbin + $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/ + endef +endif + +ifeq ($(BUILD_VARIANT),supplicant-full-wolfssl) + define Package/eapol-test-wolfssl/install + $(INSTALL_DIR) $(1)/usr/sbin + $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/ + endef +endif + $(eval $(call BuildPackage,hostapd)) $(eval $(call BuildPackage,hostapd-mini)) +$(eval $(call BuildPackage,hostapd-openssl)) +$(eval $(call BuildPackage,hostapd-wolfssl)) $(eval $(call BuildPackage,wpad)) -$(eval $(call BuildPackage,wpad-mesh)) +$(eval $(call BuildPackage,wpad-mesh-openssl)) +$(eval $(call BuildPackage,wpad-mesh-wolfssl)) $(eval $(call BuildPackage,wpad-mini)) +$(eval $(call BuildPackage,wpad-openssl)) +$(eval $(call BuildPackage,wpad-wolfssl)) $(eval $(call BuildPackage,wpa-supplicant)) -$(eval $(call BuildPackage,wpa-supplicant-mesh)) +$(eval $(call BuildPackage,wpa-supplicant-mesh-openssl)) +$(eval $(call BuildPackage,wpa-supplicant-mesh-wolfssl)) $(eval $(call BuildPackage,wpa-supplicant-mini)) $(eval $(call BuildPackage,wpa-supplicant-p2p)) +$(eval $(call BuildPackage,wpa-supplicant-openssl)) +$(eval $(call BuildPackage,wpa-supplicant-wolfssl)) $(eval $(call BuildPackage,wpa-cli)) $(eval $(call BuildPackage,hostapd-utils)) $(eval $(call BuildPackage,hostapd-common)) $(eval $(call BuildPackage,eapol-test)) +$(eval $(call BuildPackage,eapol-test-openssl)) +$(eval $(call BuildPackage,eapol-test-wolfssl))