hostapd.mk 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. ################################################################################
  2. #
  3. # hostapd
  4. #
  5. ################################################################################
  6. HOSTAPD_VERSION = 2.9
  7. HOSTAPD_SITE = http://w1.fi/releases
  8. HOSTAPD_SUBDIR = hostapd
  9. HOSTAPD_CONFIG = $(HOSTAPD_DIR)/$(HOSTAPD_SUBDIR)/.config
  10. HOSTAPD_PATCH = \
  11. https://w1.fi/security/2020-1/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch \
  12. https://w1.fi/security/2020-1/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch \
  13. https://w1.fi/security/2020-1/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \
  14. https://w1.fi/security/2021-1/0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch
  15. HOSTAPD_DEPENDENCIES = host-pkgconf
  16. HOSTAPD_CFLAGS = $(TARGET_CFLAGS)
  17. HOSTAPD_LICENSE = BSD-3-Clause
  18. HOSTAPD_LICENSE_FILES = README
  19. # 0001-AP-Silently-ignore-management-frame-from-unexpected-.patch
  20. HOSTAPD_IGNORE_CVES += CVE-2019-16275
  21. # 0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch
  22. HOSTAPD_IGNORE_CVES += CVE-2020-12695
  23. # 0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch
  24. HOSTAPD_IGNORE_CVES += CVE-2021-30004
  25. # 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch
  26. HOSTAPD_IGNORE_CVES += CVE-2021-27803
  27. HOSTAPD_CPE_ID_VENDOR = w1.fi
  28. HOSTAPD_SELINUX_MODULES = hostapd
  29. HOSTAPD_CONFIG_SET =
  30. HOSTAPD_CONFIG_ENABLE = \
  31. CONFIG_INTERNAL_LIBTOMMATH \
  32. CONFIG_DEBUG_FILE \
  33. CONFIG_DEBUG_SYSLOG
  34. HOSTAPD_CONFIG_DISABLE =
  35. # Try to use openssl if it's already available
  36. ifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
  37. HOSTAPD_DEPENDENCIES += host-pkgconf libopenssl
  38. HOSTAPD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl`
  39. HOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=openssl\)/\1/'
  40. else
  41. HOSTAPD_CONFIG_DISABLE += CONFIG_EAP_PWD CONFIG_EAP_TEAP
  42. HOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=\).*/\1internal/'
  43. endif
  44. ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP),)
  45. HOSTAPD_CONFIG_DISABLE += CONFIG_DRIVER_HOSTAP
  46. endif
  47. ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_NL80211),)
  48. HOSTAPD_CONFIG_DISABLE += CONFIG_DRIVER_NL80211
  49. endif
  50. ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_WIRED),y)
  51. HOSTAPD_CONFIG_ENABLE += CONFIG_DRIVER_WIRED
  52. endif
  53. ifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_NONE),y)
  54. HOSTAPD_CONFIG_ENABLE += CONFIG_DRIVER_NONE
  55. endif
  56. # Add options for wireless drivers
  57. ifeq ($(BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS),y)
  58. HOSTAPD_CONFIG_ENABLE += \
  59. CONFIG_HS20 \
  60. CONFIG_IEEE80211AC \
  61. CONFIG_IEEE80211N \
  62. CONFIG_IEEE80211R \
  63. CONFIG_IEEE80211AX \
  64. CONFIG_INTERWORKING
  65. endif
  66. ifeq ($(BR2_PACKAGE_HOSTAPD_ACS),y)
  67. HOSTAPD_CONFIG_ENABLE += CONFIG_ACS
  68. endif
  69. ifeq ($(BR2_PACKAGE_HOSTAPD_EAP),y)
  70. HOSTAPD_CONFIG_ENABLE += \
  71. CONFIG_EAP \
  72. CONFIG_RADIUS_SERVER
  73. # Enable both TLS v1.1 (CONFIG_TLSV11) and v1.2 (CONFIG_TLSV12)
  74. HOSTAPD_CONFIG_ENABLE += CONFIG_TLSV1
  75. else
  76. HOSTAPD_CONFIG_DISABLE += CONFIG_EAP
  77. HOSTAPD_CONFIG_ENABLE += \
  78. CONFIG_NO_ACCOUNTING \
  79. CONFIG_NO_RADIUS
  80. endif
  81. ifeq ($(BR2_PACKAGE_HOSTAPD_WPS),y)
  82. HOSTAPD_CONFIG_ENABLE += CONFIG_WPS
  83. endif
  84. ifeq ($(BR2_PACKAGE_HOSTAPD_WPA3),y)
  85. HOSTAPD_CONFIG_SET += \
  86. CONFIG_DPP \
  87. CONFIG_SAE
  88. HOSTAPD_CONFIG_ENABLE += \
  89. CONFIG_OWE
  90. else
  91. HOSTAPD_CONFIG_DISABLE += \
  92. CONFIG_OWE
  93. endif
  94. ifeq ($(BR2_PACKAGE_HOSTAPD_VLAN),)
  95. HOSTAPD_CONFIG_ENABLE += CONFIG_NO_VLAN
  96. endif
  97. ifeq ($(BR2_PACKAGE_HOSTAPD_VLAN_DYNAMIC),y)
  98. HOSTAPD_CONFIG_ENABLE += CONFIG_FULL_DYNAMIC_VLAN
  99. HOSTAPD_CONFIG_SET += NEED_LINUX_IOCTL
  100. endif
  101. ifeq ($(BR2_PACKAGE_HOSTAPD_VLAN_NETLINK),y)
  102. HOSTAPD_CONFIG_ENABLE += CONFIG_VLAN_NETLINK
  103. endif
  104. # Options for building with libnl
  105. ifeq ($(BR2_PACKAGE_LIBNL),y)
  106. HOSTAPD_DEPENDENCIES += libnl
  107. HOSTAPD_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl3/
  108. HOSTAPD_CONFIG_ENABLE += CONFIG_LIBNL32
  109. # libnl-3 needs -lm (for rint) and -lpthread if linking statically
  110. # And library order matters hence stick -lnl-3 first since it's appended
  111. # in the hostapd Makefiles as in LIBS+=-lnl-3 ... thus failing
  112. ifeq ($(BR2_STATIC_LIBS),y)
  113. HOSTAPD_LIBS += -lnl-3 -lm -lpthread
  114. endif
  115. endif
  116. define HOSTAPD_CONFIGURE_CMDS
  117. cp $(@D)/hostapd/defconfig $(HOSTAPD_CONFIG)
  118. sed -i $(patsubst %,-e 's/^#\(%\)/\1/',$(HOSTAPD_CONFIG_ENABLE)) \
  119. $(patsubst %,-e 's/^\(%\)/#\1/',$(HOSTAPD_CONFIG_DISABLE)) \
  120. $(patsubst %,-e '1i%=y',$(HOSTAPD_CONFIG_SET)) \
  121. $(patsubst %,-e %,$(HOSTAPD_CONFIG_EDITS)) \
  122. $(HOSTAPD_CONFIG)
  123. endef
  124. define HOSTAPD_BUILD_CMDS
  125. $(TARGET_MAKE_ENV) CFLAGS="$(HOSTAPD_CFLAGS)" \
  126. LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(HOSTAPD_LIBS)" \
  127. $(MAKE) CC="$(TARGET_CC)" -C $(@D)/$(HOSTAPD_SUBDIR)
  128. endef
  129. define HOSTAPD_INSTALL_TARGET_CMDS
  130. $(INSTALL) -m 0755 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd \
  131. $(TARGET_DIR)/usr/sbin/hostapd
  132. $(INSTALL) -m 0755 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd_cli \
  133. $(TARGET_DIR)/usr/bin/hostapd_cli
  134. $(INSTALL) -m 0644 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd.conf \
  135. $(TARGET_DIR)/etc/hostapd.conf
  136. endef
  137. $(eval $(generic-package))