You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

797 lines
23 KiB

  1. #
  2. # Copyright (C) 2008-2020 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=freeradius3
  9. PKG_VERSION:=release_3_0_21
  10. PKG_RELEASE:=4
  11. PKG_SOURCE:=$(PKG_VERSION).tar.gz
  12. PKG_SOURCE_URL:=https://github.com/FreeRADIUS/freeradius-server/archive
  13. PKG_HASH:=b2014372948a92f86cfe2cf43c58ef47921c03af05666eb9d6416bdc6eeaedc2
  14. PKG_MAINTAINER:=
  15. PKG_LICENSE:=GPL-2.0
  16. PKG_LICENSE_FILES:=COPYRIGHT LICENSE
  17. PKG_CPE_ID:=cpe:/a:freeradius:freeradius
  18. PKG_BUILD_DIR:=$(BUILD_DIR)/freeradius-server-$(PKG_VERSION)
  19. PKG_FIXUP:=autoreconf
  20. PYTHON3_PKG_BUILD:=0
  21. PKG_CONFIG_DEPENDS := \
  22. FREERADIUS3_OPENSSL \
  23. FREERADIUS3_NOSSL
  24. CFLAGS += $(FPIC)
  25. include $(INCLUDE_DIR)/package.mk
  26. include ../../lang/python/python3-package.mk
  27. define Package/freeradius3/config
  28. source "$(SOURCE)/Config.in"
  29. endef
  30. define Package/freeradius3/Default
  31. SECTION:=net
  32. CATEGORY:=Network
  33. URL:=https://freeradius.org/
  34. SUBMENU:=FreeRADIUS (version 3)
  35. endef
  36. define Package/freeradius3
  37. $(call Package/freeradius3/Default)
  38. DEPENDS:=+freeradius3-common
  39. TITLE:=A flexible RADIUS server (version 3)
  40. endef
  41. define Package/freeradius3/conffiles
  42. /etc/freeradius3/clients.conf
  43. /etc/freeradius3/policy.d/accounting
  44. /etc/freeradius3/policy.d/filter
  45. /etc/freeradius3/proxy.conf
  46. /etc/freeradius3/radiusd.conf
  47. /etc/freeradius3/sites-available/default
  48. /etc/freeradius3/sites-enabled/default
  49. endef
  50. define Package/freeradius3-common
  51. $(call Package/freeradius3/Default)
  52. TITLE:=common files
  53. DEPENDS:=+USE_GLIBC:libpthread +FREERADIUS3_OPENSSL:libopenssl +libcap +libpcap +libncurses +libpcre +libreadline +libtalloc +libatomic
  54. endef
  55. define Package/freeradius3-default
  56. $(call Package/freeradius3/Default)
  57. DEPENDS:=freeradius3 \
  58. +freeradius3-democerts \
  59. +freeradius3-mod-always \
  60. +freeradius3-mod-attr-filter \
  61. +freeradius3-mod-chap \
  62. +freeradius3-mod-detail \
  63. +freeradius3-mod-digest \
  64. +freeradius3-mod-eap \
  65. +freeradius3-mod-eap-gtc \
  66. +freeradius3-mod-eap-leap \
  67. +freeradius3-mod-eap-md5 \
  68. +freeradius3-mod-eap-mschapv2 \
  69. +freeradius3-mod-eap-peap \
  70. +freeradius3-mod-eap-pwd \
  71. +freeradius3-mod-eap-tls \
  72. +freeradius3-mod-eap-ttls \
  73. +freeradius3-mod-exec \
  74. +freeradius3-mod-expiration \
  75. +freeradius3-mod-expr \
  76. +freeradius3-mod-files \
  77. +freeradius3-mod-logintime \
  78. +freeradius3-mod-mschap \
  79. +freeradius3-mod-pap \
  80. +freeradius3-mod-preprocess \
  81. +freeradius3-mod-radutmp \
  82. +freeradius3-mod-realm \
  83. +freeradius3-mod-unix
  84. TITLE:=Modules needed for Radius default configuration
  85. endef
  86. define Package/freeradius3-democerts
  87. $(call Package/freeradius3/Default)
  88. DEPENDS:=freeradius3
  89. TITLE:=Demo certificates to test the server
  90. endef
  91. define Package/freeradius3-mod-always
  92. $(call Package/freeradius3/Default)
  93. DEPENDS:=freeradius3
  94. TITLE:=Always module
  95. endef
  96. define Package/freeradius3-mod-always/conffiles
  97. /etc/freeradius3/mods-available/always
  98. /etc/freeradius3/mods-enabled/always
  99. endef
  100. define Package/freeradius3-mod-attr-filter
  101. $(call Package/freeradius3/Default)
  102. DEPENDS:=freeradius3
  103. TITLE:=ATTR filter module
  104. endef
  105. define Package/freeradius3-mod-attr-filter/conffiles
  106. /etc/freeradius3/mods-available/attr_filter
  107. /etc/freeradius3/mods-enabled/attr_filter
  108. /etc/freeradius3/mods-config/attr_filter/access_challenge
  109. /etc/freeradius3/mods-config/attr_filter/access_reject
  110. /etc/freeradius3/mods-config/attr_filter/accounting_response
  111. /etc/freeradius3/mods-config/attr_filter/post-proxy
  112. /etc/freeradius3/mods-config/attr_filter/pre-proxy
  113. endef
  114. define Package/freeradius3-mod-attr-rewrite
  115. $(call Package/freeradius3/Default)
  116. DEPENDS:=freeradius3
  117. TITLE:=ATTR rewrite module
  118. endef
  119. define Package/freeradius3-mod-chap
  120. $(call Package/freeradius3/Default)
  121. DEPENDS:=freeradius3
  122. TITLE:=CHAP module
  123. endef
  124. define Package/freeradius3-mod-chap/conffiles
  125. /etc/freeradius3/mods-available/chap
  126. /etc/freeradius3/mods-enabled/chap
  127. endef
  128. define Package/freeradius3-mod-detail
  129. $(call Package/freeradius3/Default)
  130. DEPENDS:=freeradius3
  131. TITLE:=Detailed accounting module
  132. endef
  133. define Package/freeradius3-mod-detail/conffiles
  134. /etc/freeradius3/mods-available/detail
  135. /etc/freeradius3/mods-enabled/detail
  136. endef
  137. define Package/freeradius3-mod-digest
  138. $(call Package/freeradius3/Default)
  139. DEPENDS:=freeradius3
  140. TITLE:=HTTP Digest Authentication
  141. endef
  142. define Package/freeradius3-mod-digest/conffiles
  143. /etc/freeradius3/mods-available/digest
  144. /etc/freeradius3/mods-enabled/digest
  145. endef
  146. define Package/freeradius3-mod-eap
  147. $(call Package/freeradius3/Default)
  148. DEPENDS:=freeradius3
  149. TITLE:=Base EAP module
  150. endef
  151. define Package/freeradius3-mod-eap/conffiles
  152. /etc/freeradius3/mods-available/eap
  153. /etc/freeradius3/mods-enabled/eap
  154. /etc/freeradius3/policy.d/eap
  155. /etc/freeradius3/sites-enabled/inner-tunnel
  156. /etc/freeradius3/sites-available/inner-tunnel
  157. endef
  158. define Package/freeradius3-mod-eap-gtc
  159. $(call Package/freeradius3/Default)
  160. DEPENDS:=freeradius3-mod-eap
  161. TITLE:=EAP/GTC module
  162. endef
  163. define Package/freeradius3-mod-eap-leap
  164. $(call Package/freeradius3/Default)
  165. DEPENDS:=freeradius3-mod-eap
  166. TITLE:=EAP/LEAP module
  167. endef
  168. define Package/freeradius3-mod-eap-md5
  169. $(call Package/freeradius3/Default)
  170. DEPENDS:=freeradius3-mod-eap
  171. TITLE:=EAP/MD5 module
  172. endef
  173. define Package/freeradius3-mod-eap-mschapv2
  174. $(call Package/freeradius3/Default)
  175. DEPENDS:=freeradius3-mod-eap +freeradius3-mod-mschap
  176. TITLE:=EAP/MS-CHAPv2 module
  177. endef
  178. define Package/freeradius3-mod-eap-peap
  179. $(call Package/freeradius3/Default)
  180. DEPENDS:=freeradius3-mod-eap @FREERADIUS3_OPENSSL
  181. TITLE:=EAP/PEAP module
  182. endef
  183. define Package/freeradius3-mod-eap-pwd
  184. $(call Package/freeradius3/Default)
  185. DEPENDS:=freeradius3-mod-eap @FREERADIUS3_OPENSSL
  186. TITLE:=EAP/PWD module
  187. endef
  188. define Package/freeradius3-mod-eap-tls
  189. $(call Package/freeradius3/Default)
  190. DEPENDS:=freeradius3-mod-eap @FREERADIUS3_OPENSSL
  191. TITLE:=EAP/TLS module
  192. endef
  193. define Package/freeradius3-mod-eap-ttls
  194. $(call Package/freeradius3/Default)
  195. DEPENDS:=freeradius3-mod-eap-tls
  196. TITLE:=EAP/TTLS module
  197. endef
  198. define Package/freeradius3-mod-exec
  199. $(call Package/freeradius3/Default)
  200. DEPENDS:=freeradius3
  201. TITLE:=EXEC module
  202. endef
  203. define Package/freeradius3-mod-exec/conffiles
  204. /etc/freeradius3/mods-available/exec
  205. /etc/freeradius3/mods-enabled/exec
  206. endef
  207. define Package/freeradius3-mod-expiration
  208. $(call Package/freeradius3/Default)
  209. DEPENDS:=freeradius3
  210. TITLE:=Expiration module
  211. endef
  212. define Package/freeradius3-mod-expiration/conffiles
  213. /etc/freeradius3/mods-available/expiration
  214. /etc/freeradius3/mods-enabled/expiration
  215. endef
  216. define Package/freeradius3-mod-expr
  217. $(call Package/freeradius3/Default)
  218. DEPENDS:=freeradius3
  219. TITLE:=EXPR module
  220. endef
  221. define Package/freeradius3-mod-expr/conffiles
  222. /etc/freeradius3/mods-available/expr
  223. /etc/freeradius3/mods-enabled/expr
  224. endef
  225. define Package/freeradius3-mod-files
  226. $(call Package/freeradius3/Default)
  227. DEPENDS:=freeradius3
  228. TITLE:=Module using local files for authorization
  229. endef
  230. define Package/freeradius3-mod-files/conffiles
  231. /etc/freeradius3/mods-available/files
  232. /etc/freeradius3/mods-enabled/files
  233. /etc/freeradius3/mods-config/files/accounting
  234. /etc/freeradius3/mods-config/files/authorize
  235. /etc/freeradius3/mods-config/files/pre-proxy
  236. endef
  237. define Package/freeradius3-mod-ldap
  238. $(call Package/freeradius3/Default)
  239. DEPENDS:=freeradius3 +libopenldap @FREERADIUS3_OPENSSL
  240. TITLE:=LDAP Authentication
  241. endef
  242. define Package/freeradius3-mod-ldap/conffiles
  243. /etc/freeradius3/mods-available/ldap
  244. endef
  245. define Package/freeradius3-mod-logintime
  246. $(call Package/freeradius3/Default)
  247. DEPENDS:=freeradius3
  248. TITLE:=Logintime module
  249. endef
  250. define Package/freeradius3-mod-logintime/conffiles
  251. /etc/freeradius3/mods-available/logintime
  252. /etc/freeradius3/mods-enabled/logintime
  253. endef
  254. define Package/freeradius3-mod-mschap
  255. $(call Package/freeradius3/Default)
  256. DEPENDS:=freeradius3
  257. TITLE:=MS-CHAP and MS-CHAPv2 module
  258. endef
  259. define Package/freeradius3-mod-mschap/conffiles
  260. /etc/freeradius3/mods-available/mschap
  261. /etc/freeradius3/mods-enabled/mschap
  262. endef
  263. define Package/freeradius3-mod-pap
  264. $(call Package/freeradius3/Default)
  265. DEPENDS:=freeradius3
  266. TITLE:=PAP module
  267. endef
  268. define Package/freeradius3-mod-pap/conffiles
  269. /etc/freeradius3/mods-available/pap
  270. /etc/freeradius3/mods-enabled/pap
  271. endef
  272. define Package/freeradius3-mod-passwd
  273. $(call Package/freeradius3/Default)
  274. DEPENDS:=freeradius3
  275. TITLE:=Rlm passwd module
  276. endef
  277. define Package/freeradius3-mod-passwd/conffiles
  278. /etc/freeradius3/mods-available/passwd
  279. /etc/freeradius3/mods-enabled/passwd
  280. endef
  281. define Package/freeradius3-mod-preprocess
  282. $(call Package/freeradius3/Default)
  283. DEPENDS:=freeradius3
  284. TITLE:=Request pre-processing module
  285. endef
  286. define Package/freeradius3-mod-preprocess/conffiles
  287. /etc/freeradius3/mods-config/preprocess/hints
  288. /etc/freeradius3/mods-config/preprocess/huntgroups
  289. /etc/freeradius3/mods-available/preprocess
  290. /etc/freeradius3/mods-enabled/preprocess
  291. endef
  292. define Package/freeradius3-mod-python3
  293. $(call Package/freeradius3/Default)
  294. DEPENDS:=freeradius3 +python3
  295. TITLE:=Python3 module
  296. endef
  297. define Package/freeradius3-mod-python3/conffiles
  298. /etc/freeradius3/mods-available/python3
  299. endef
  300. define Package/freeradius3-mod-radutmp
  301. $(call Package/freeradius3/Default)
  302. DEPENDS:=freeradius3
  303. TITLE:=Radius UTMP module
  304. endef
  305. define Package/freeradius3-mod-radutmp/conffiles
  306. /etc/freeradius3/mods-available/radutmp
  307. /etc/freeradius3/mods-enabled/radutmp
  308. /etc/freeradius3/mods-available/sradutmp
  309. /etc/freeradius3/mods-enabled/sradutmp
  310. endef
  311. define Package/freeradius3-mod-realm
  312. $(call Package/freeradius3/Default)
  313. DEPENDS:=freeradius3
  314. TITLE:=Realms handling module
  315. endef
  316. define Package/freeradius3-mod-realm/conffiles
  317. /etc/freeradius3/mods-available/realm
  318. /etc/freeradius3/mods-enabled/realm
  319. endef
  320. define Package/freeradius3-mod-rest
  321. $(call Package/freeradius3/Default)
  322. DEPENDS:=freeradius3 +libcurl +libjson-c
  323. TITLE:=Radius REST module
  324. endef
  325. define Package/freeradius3-mod-rest/conffiles
  326. /etc/freeradius3/mods-available/rest
  327. endef
  328. define Package/freeradius3-mod-sql
  329. $(call Package/freeradius3/Default)
  330. DEPENDS:=freeradius3
  331. TITLE:=Radius generic SQL front-end
  332. endef
  333. define Package/freeradius3-mod-sql/conffiles
  334. /etc/freeradius3/mods-available/sql
  335. endef
  336. define Package/freeradius3-mod-sql-mysql
  337. $(call Package/freeradius3/Default)
  338. DEPENDS:=freeradius3-mod-sql +libmysqlclient
  339. TITLE:=Radius MySQL back-end drivers
  340. endef
  341. define Package/freeradius3-mod-sql-mysql/conffiles
  342. /etc/freeradius3/mods-config/sql/main/mysql
  343. endef
  344. define Package/freeradius3-mod-sql-null
  345. $(call Package/freeradius3/Default)
  346. DEPENDS:=freeradius3-mod-sql
  347. TITLE:=Radius Dummy SQL back-end drivers
  348. endef
  349. define Package/freeradius3-mod-sql-postgresql
  350. $(call Package/freeradius3/Default)
  351. DEPENDS:=freeradius3-mod-sql +libpq
  352. TITLE:=Radius PostgreSQL back-end drivers
  353. endef
  354. define Package/freeradius3-mod-sql-postgresql/conffiles
  355. /etc/freeradius3/mods-config/sql/main/postgresql
  356. endef
  357. define Package/freeradius3-mod-sql-sqlite
  358. $(call Package/freeradius3/Default)
  359. DEPENDS:=freeradius3-mod-sql +libsqlite3
  360. TITLE:=Radius SQLite back-end drivers
  361. endef
  362. define Package/freeradius3-mod-sql-sqlite/conffiles
  363. /etc/freeradius3/mods-config/sql/main/sqlite
  364. endef
  365. define Package/freeradius3-mod-sqlcounter
  366. $(call Package/freeradius3/Default)
  367. DEPENDS:=+freeradius3-mod-sql
  368. TITLE:=Packet counter using accounting records written into an SQL database
  369. endef
  370. define Package/freeradius3-mod-sqlcounter/conffiles
  371. /etc/freeradius3/mods-config/sql/counter
  372. /etc/freeradius3/mods-available/sqlcounter
  373. endef
  374. define Package/freeradius3-mod-sqlippool
  375. $(call Package/freeradius3/Default)
  376. DEPENDS:=+freeradius3-mod-sql
  377. TITLE:=Radius SQL Based IP Pool module
  378. endef
  379. define Package/freeradius3-mod-sqlippool/conffiles
  380. /etc/freeradius3/mods-config/sql/ippool
  381. /etc/freeradius3/mods-config/sql/ippool-dhcp
  382. /etc/freeradius3/mods-available/dhcp_sqlippool
  383. /etc/freeradius3/mods-available/sqlippool
  384. endef
  385. define Package/freeradius3-mod-unix
  386. $(call Package/freeradius3/Default)
  387. DEPENDS:=freeradius3
  388. TITLE:=System Authentication
  389. endef
  390. define Package/freeradius3-mod-unix/conffiles
  391. /etc/freeradius3/mods-available/unix
  392. /etc/freeradius3/mods-enabled/unix
  393. endef
  394. define Package/freeradius3-utils
  395. $(call Package/freeradius3/Default)
  396. DEPENDS:=+freeradius3-common
  397. TITLE:=Misc. client utilities
  398. endef
  399. # This is a workaround for a bug in configure.ac, that does not check
  400. # for the openss/rand.h header. Setting the macro is safe for openwrt,
  401. # and faster than rebuilding configure.
  402. # This has been fixed upstream in the 3.0.x branch, and should not be
  403. # needed in a future release.
  404. EXTRA_CFLAGS+= -DHAVE_OPENSSL_RAND_H
  405. CONFIGURE_ARGS+= \
  406. --libdir=/usr/lib/freeradius3 \
  407. --libexecdir=/usr/lib/freeradius3 \
  408. --disable-developer \
  409. --with-threads \
  410. $(if $(CONFIG_FREERADIUS3_OPENSSL),--with,--without)-openssl \
  411. $(if $(CONFIG_FREERADIUS3_OPENSSL),--with-openssl-includes="$(STAGING_DIR)/usr/include",) \
  412. $(if $(CONFIG_FREERADIUS3_OPENSSL),--with-openssl-libraries="$(STAGING_DIR)/usr/lib",) \
  413. $(if $(CONFIG_FREERADIUS3_OPENSSL),--disable-openssl-version-check,) \
  414. --with-talloc-include-dir="$(STAGING_DIR)/usr/include" \
  415. --with-talloc-lib-dir="$(STAGING_DIR)/usr/lib" \
  416. --enable-strict-dependencies \
  417. --with-dictdir=/usr/share/freeradius3 \
  418. --with-raddbdir=/etc/freeradius3 \
  419. --with-radacctdir=/var/db/radacct \
  420. --with-logdir=/var/log \
  421. --without-edir \
  422. --without-snmp \
  423. --without-rlm_cache \
  424. --without-rlm_cache_memcached \
  425. --without-rlm_couchbase \
  426. --without-rlm_counter \
  427. --without-rlm_eap_ikev2 \
  428. --without-rlm_eap_sim \
  429. --without-rlm_eap_tnc \
  430. --without-rlm_example \
  431. --without-rlm_idn \
  432. --without-rlm_ippool \
  433. --without-rlm_krb5 \
  434. --without-rlm_opendirectory \
  435. --without-rlm_pam \
  436. --without-rlm_perl \
  437. --without-rlm_python \
  438. --without-rlm_redis \
  439. --without-rlm_rediswho \
  440. --without-rlm_ruby \
  441. --without-rlm_securid \
  442. --without-rlm_smsotp \
  443. --without-rlm_sql_db2 \
  444. --without-rlm_sql_firebird \
  445. --without-rlm_sql_freetds \
  446. --without-rlm_sql_iodbc \
  447. --without-rlm_sql_oracle \
  448. --without-rlm_sql_unixodbc \
  449. --without-rlm_unbound \
  450. --without-rlm_yubikey \
  451. CONFIGURE_LIBS+= -latomic
  452. PKG_DICTIONARIES:= \
  453. compat \
  454. freeradius freeradius.internal \
  455. rfc2865 rfc2866 rfc2867 rfc2868 rfc2869 rfc3162 rfc3576 rfc3580 \
  456. rfc4372 rfc4675 rfc4679 rfc5580\
  457. microsoft \
  458. wispr \
  459. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-eap-peap),)
  460. CONFIGURE_ARGS+= \
  461. --with-rlm_eap_peap \
  462. --with-rlm_eap_peap-include-dir="$(STAGING_DIR)/usr/include" \
  463. --with-rlm_eap_peap-lib-dir="$(STAGING_DIR)/usr/lib"
  464. CONFIGURE_LIBS+= -lcrypto -lssl
  465. else
  466. CONFIGURE_ARGS+= --without-rlm_eap_peap
  467. endif
  468. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-eap-pwd),)
  469. CONFIGURE_ARGS+= \
  470. --with-rlm_eap_pwd \
  471. --with-rlm_eap_pwd-include-dir="$(STAGING_DIR)/usr/include" \
  472. --with-rlm_eap_pwd-lib-dir="$(STAGING_DIR)/usr/lib"
  473. CONFIGURE_LIBS+= -lcrypto -lssl
  474. else
  475. CONFIGURE_ARGS+= --without-rlm_eap_pwd
  476. endif
  477. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-eap-tls),)
  478. CONFIGURE_ARGS+= \
  479. --with-rlm_eap_tls \
  480. --with-rlm_eap_tls-include-dir="$(STAGING_DIR)/usr/include" \
  481. --with-rlm_eap_tls-lib-dir="$(STAGING_DIR)/usr/lib"
  482. CONFIGURE_LIBS+= -lcrypto -lssl
  483. else
  484. CONFIGURE_ARGS+= --without-rlm_eap_tls
  485. endif
  486. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-eap-ttls),)
  487. CONFIGURE_ARGS+= \
  488. --with-rlm_eap_ttls \
  489. --with-rlm_eap_ttls-include-dir="$(STAGING_DIR)/usr/include" \
  490. --with-rlm_eap_ttls-lib-dir="$(STAGING_DIR)/usr/lib"
  491. CONFIGURE_LIBS+= -lcrypto -lssl
  492. else
  493. CONFIGURE_ARGS+= --without-rlm_eap_ttls
  494. endif
  495. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-ldap),)
  496. CONFIGURE_ARGS+= --with-rlm_ldap \
  497. --with-rlm_ldap-include-dir="$(STAGING_DIR)/usr/include" \
  498. --with-rlm_ldap-lib-dir="$(STAGING_DIR)/usr/lib"
  499. else
  500. CONFIGURE_ARGS+= --without-rlm_ldap
  501. endif
  502. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-python3),)
  503. CFLAGS+= -fPIC
  504. CONFIGURE_ARGS+= \
  505. --with-modules="rlm_python3" \
  506. --with-rlm-python3-config-bin="$(STAGING_DIR)/host/bin/python$(PYTHON3_VERSION)-config"
  507. else
  508. CONFIGURE_ARGS+= --without-rlm_python3
  509. endif
  510. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-radutmp),)
  511. CONFIGURE_ARGS+= --with-rlm_radutmp
  512. else
  513. CONFIGURE_ARGS+= --without-rlm_radutmp
  514. endif
  515. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-rest),)
  516. CONFIGURE_ARGS+= --with-rlm_rest
  517. else
  518. CONFIGURE_ARGS+= --without-rlm_rest
  519. endif
  520. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-sql),)
  521. CONFIGURE_ARGS+= --with-rlm_sql
  522. else
  523. CONFIGURE_ARGS+= --without-rlm_sql
  524. endif
  525. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-sql-mysql),)
  526. CONFIGURE_ARGS+= \
  527. --with-rlm_sql_mysql \
  528. --with-mysql-include-dir="$(STAGING_DIR)/usr/include/mysql"
  529. else
  530. CONFIGURE_ARGS+= --without-rlm_sql_mysql
  531. endif
  532. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-sql-postgresql),)
  533. CONFIGURE_ARGS+= --with-rlm_sql_postgresql
  534. else
  535. CONFIGURE_ARGS+= --without-rlm_sql_postgresql
  536. endif
  537. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-sql-sqlite),)
  538. CONFIGURE_ARGS+= --with-rlm_sql_sqlite
  539. else
  540. CONFIGURE_ARGS+= --without-rlm_sql_sqlite
  541. endif
  542. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-sqlcounter),)
  543. CONFIGURE_ARGS+= --with-rlm_sqlcounter
  544. else
  545. CONFIGURE_ARGS+= --without-rlm_sqlcounter
  546. endif
  547. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-sqlippool),)
  548. CONFIGURE_ARGS+= --with-rlm_sqlippool
  549. else
  550. CONFIGURE_ARGS+= --without-rlm_sqlippool
  551. endif
  552. ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius3-mod-unix),)
  553. CONFIGURE_ARGS+= --with-rlm_unix
  554. else
  555. CONFIGURE_ARGS+= --without-rlm_unix
  556. endif
  557. ifeq ($(CONFIG_USE_GLIBC),y)
  558. TARGET_CFLAGS+= -DLIBBSD_OVERLAY -I$(STAGING_DIR)/usr/include/bsd \
  559. -D_RPC_NETDB_H
  560. #^^^^^^^^^^^^^ avoid inclusion of librpc's netdb.h
  561. CONFIGURE_LIBS+= -Wl,--push-state,--as-needed -lbsd -Wl,--pop-state
  562. endif
  563. CONFIGURE_VARS+= \
  564. LDFLAGS="$$$$LDFLAGS" \
  565. LIBS="$(CONFIGURE_LIBS)" \
  566. MYSQL_CONFIG="no" \
  567. ac_cv_lib_readline=no \
  568. ax_cv_cc_builtin_choose_expr=yes \
  569. ax_cv_cc_builtin_types_compatible_p=yes ax_cv_cc_builtin_bswap64=yes \
  570. ax_cv_cc_bounded_attribute=no \
  571. ac_cv_lib_collectdclient_lcc_connect=no \
  572. ac_cv_lib_execinfo_backtrace_symbols=no
  573. define Build/Compile
  574. # Compile jlibtool for the host once the configuration is done
  575. (cd $(PKG_BUILD_DIR); \
  576. mkdir -p build/make; \
  577. $(HOSTCC) $(HOST_CFLAGS) scripts/jlibtool.c -o build/make/jlibtool; \
  578. )
  579. $(MAKE) -C $(PKG_BUILD_DIR) \
  580. R="$(PKG_INSTALL_DIR)" \
  581. INSTALLSTRIP="" \
  582. all install
  583. endef
  584. define Package/freeradius3-common/install
  585. $(INSTALL_DIR) $(1)/etc/freeradius3
  586. chmod 771 $(1)/etc/freeradius3
  587. $(CP) $(PKG_INSTALL_DIR)/etc/freeradius3/dictionary $(1)/etc/freeradius3/ ; \
  588. $(INSTALL_DIR) $(1)/usr/lib/freeradius3
  589. $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius3/libfreeradius-{dhcp,eap,radius,server}.so $(1)/usr/lib/freeradius3
  590. $(INSTALL_DIR) $(1)/usr/share/freeradius3
  591. $(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius3/dictionary $(1)/usr/share/freeradius3/
  592. $(SED) "s,^\(\$$$$INCLUDE\),#\1,g" $(1)/usr/share/freeradius3/dictionary
  593. for f in $(PKG_DICTIONARIES); do \
  594. $(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius3/dictionary.$$$${f} $(1)/usr/share/freeradius3/ ; \
  595. $(SED) "s,^#\(\$$$$INCLUDE dictionary\.$$$${f}\)$$$$,\1,g" $(1)/usr/share/freeradius3/dictionary ; \
  596. done
  597. endef
  598. define Package/freeradius3/install
  599. $(INSTALL_DIR) $(1)/etc/freeradius3
  600. $(INSTALL_DIR) $(1)/etc/freeradius3/policy.d
  601. $(INSTALL_DIR) $(1)/etc/freeradius3/sites-available
  602. $(INSTALL_DIR) $(1)/etc/freeradius3/sites-enabled
  603. for f in clients.conf radiusd.conf proxy.conf; do \
  604. $(CP) $(PKG_INSTALL_DIR)/etc/freeradius3/$$$${f} $(1)/etc/freeradius3/ ; \
  605. done
  606. for f in accounting filter; do \
  607. $(CP) $(PKG_INSTALL_DIR)/etc/freeradius3/policy.d/$$$${f} $(1)/etc/freeradius3/policy.d/ ; \
  608. done
  609. for f in default; do \
  610. $(CP) $(PKG_INSTALL_DIR)/etc/freeradius3/sites-available/$$$${f} $(1)/etc/freeradius3/sites-available/ ; \
  611. $(CP) $(PKG_INSTALL_DIR)/etc/freeradius3/sites-enabled/$$$${f} $(1)/etc/freeradius3/sites-enabled/ ; \
  612. done
  613. $(INSTALL_DIR) $(1)/usr/sbin
  614. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/radiusd $(1)/usr/sbin/
  615. $(INSTALL_DIR) $(1)/etc/init.d
  616. $(INSTALL_BIN) ./files/radiusd.init $(1)/etc/init.d/radiusd
  617. endef
  618. define Package/freeradius3-democerts/install
  619. $(INSTALL_DIR) $(1)/etc/freeradius3/certs
  620. $(CP) \
  621. $(PKG_INSTALL_DIR)/etc/freeradius3/certs/ca.pem \
  622. $(PKG_INSTALL_DIR)/etc/freeradius3/certs/dh \
  623. $(PKG_INSTALL_DIR)/etc/freeradius3/certs/server.pem \
  624. $(1)/etc/freeradius3/certs/
  625. endef
  626. define Package/freeradius3-utils/install
  627. $(INSTALL_DIR) $(1)/usr/bin
  628. for f in radclient radeapclient radwho; do \
  629. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$${f} $(1)/usr/bin/ ; \
  630. done
  631. endef
  632. define BuildPlugin
  633. define Package/$(1)/install
  634. [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/freeradius3
  635. for m in $(2); do \
  636. $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius3/$$$$$$$${m}.so $$(1)/usr/lib/freeradius3 ; \
  637. done
  638. # Install configuration files
  639. for f in $(strip $(call Package/$(1)/conffiles)); do \
  640. $(INSTALL_DIR) $$(1)/$$$$$$$${f%/*} ; \
  641. $(CP) $(PKG_INSTALL_DIR)/$$$$$$$${f} $$(1)/$$$$$$$${f}; \
  642. done
  643. endef
  644. $$(eval $$(call BuildPackage,$(1)))
  645. endef
  646. $(eval $(call BuildPackage,freeradius3))
  647. $(eval $(call BuildPackage,freeradius3-common))
  648. $(eval $(call BuildPackage,freeradius3-default))
  649. $(eval $(call BuildPackage,freeradius3-democerts))
  650. $(eval $(call BuildPlugin,freeradius3-mod-always,rlm_always,))
  651. $(eval $(call BuildPlugin,freeradius3-mod-attr-filter,rlm_attr_filter,))
  652. $(eval $(call BuildPlugin,freeradius3-mod-chap,rlm_chap,))
  653. $(eval $(call BuildPlugin,freeradius3-mod-detail,rlm_detail,))
  654. $(eval $(call BuildPlugin,freeradius3-mod-digest,rlm_digest,))
  655. $(eval $(call BuildPlugin,freeradius3-mod-eap,rlm_eap,))
  656. $(eval $(call BuildPlugin,freeradius3-mod-eap-gtc,rlm_eap_gtc,))
  657. $(eval $(call BuildPlugin,freeradius3-mod-eap-leap,rlm_eap_leap,))
  658. $(eval $(call BuildPlugin,freeradius3-mod-eap-md5,rlm_eap_md5,))
  659. $(eval $(call BuildPlugin,freeradius3-mod-eap-mschapv2,rlm_eap_mschapv2,))
  660. $(eval $(call BuildPlugin,freeradius3-mod-eap-peap,rlm_eap_peap,))
  661. $(eval $(call BuildPlugin,freeradius3-mod-eap-pwd,rlm_eap_pwd,))
  662. $(eval $(call BuildPlugin,freeradius3-mod-eap-tls,rlm_eap_tls,))
  663. $(eval $(call BuildPlugin,freeradius3-mod-eap-ttls,rlm_eap_ttls,))
  664. $(eval $(call BuildPlugin,freeradius3-mod-exec,rlm_exec,))
  665. $(eval $(call BuildPlugin,freeradius3-mod-expiration,rlm_expiration,))
  666. $(eval $(call BuildPlugin,freeradius3-mod-expr,rlm_expr,))
  667. $(eval $(call BuildPlugin,freeradius3-mod-files,rlm_files,))
  668. $(eval $(call BuildPlugin,freeradius3-mod-ldap,rlm_ldap,))
  669. $(eval $(call BuildPlugin,freeradius3-mod-logintime,rlm_logintime,))
  670. $(eval $(call BuildPlugin,freeradius3-mod-mschap,rlm_mschap,))
  671. $(eval $(call BuildPlugin,freeradius3-mod-pap,rlm_pap,))
  672. $(eval $(call BuildPlugin,freeradius3-mod-passwd,rlm_passwd,))
  673. $(eval $(call BuildPlugin,freeradius3-mod-preprocess,rlm_preprocess,))
  674. $(eval $(call BuildPlugin,freeradius3-mod-python3,rlm_python3,))
  675. $(eval $(call BuildPlugin,freeradius3-mod-radutmp,rlm_radutmp,))
  676. $(eval $(call BuildPlugin,freeradius3-mod-realm,rlm_realm,))
  677. $(eval $(call BuildPlugin,freeradius3-mod-rest,rlm_rest,))
  678. $(eval $(call BuildPlugin,freeradius3-mod-sql,rlm_sql,))
  679. $(eval $(call BuildPlugin,freeradius3-mod-sql-mysql,rlm_sql_mysql,))
  680. $(eval $(call BuildPlugin,freeradius3-mod-sql-null,rlm_sql_null,))
  681. $(eval $(call BuildPlugin,freeradius3-mod-sql-postgresql,rlm_sql_postgresql,))
  682. $(eval $(call BuildPlugin,freeradius3-mod-sql-sqlite,rlm_sql_sqlite,))
  683. $(eval $(call BuildPlugin,freeradius3-mod-sqlcounter,rlm_sqlcounter,))
  684. $(eval $(call BuildPlugin,freeradius3-mod-sqlippool,rlm_sqlippool,))
  685. $(eval $(call BuildPlugin,freeradius3-mod-unix,rlm_unix,))
  686. $(eval $(call BuildPackage,freeradius3-utils))