Makefile 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. include ${ADK_TOPDIR}/rules.mk
  4. PKG_NAME:= freeradius-server
  5. PKG_VERSION:= 3.0.21
  6. PKG_RELEASE:= 1
  7. PKG_HASH:= 2bf914d471d4409fd72e708e308fa32ca8d01d698c518497a1d4b867d50132ae
  8. PKG_DESCR:= flexible radius server
  9. PKG_SECTION:= net/radius
  10. PKG_DEPENDS:= libltdl libpcre libtalloc libressl libatomic
  11. PKG_BUILDDEP:= libtool pcre talloc libressl
  12. PKG_NEEDS:= threads
  13. PKG_URL:= http://www.freeradius.org/
  14. PKG_SITES:= ftp://ftp.freeradius.org/pub/radius/
  15. DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
  16. PKG_SUBPKGS:= FREERADIUS_SERVER FREERADIUS_DEMOCERTS FREERADIUS_MOD_CHAP FREERADIUS_MOD_DETAIL
  17. PKG_SUBPKGS+= FREERADIUS_MOD_DIGEST FREERADIUS_MOD_FILES FREERADIUS_MOD_LDAP FREERADIUS_MOD_MSCHAP
  18. PKG_SUBPKGS+= FREERADIUS_MOD_PAP FREERADIUS_MOD_PREPROCESS FREERADIUS_MOD_REALM FREERADIUS_MOD_SQL
  19. PKG_SUBPKGS+= FREERADIUS_MOD_SQL_MYSQL FREERADIUS_MOD_SQL_PGSQL FREERADIUS_UTILS
  20. # sub package build dependencies
  21. PKGSB_FREERADIUS_MOD_LDAP:= openldap
  22. PKGSB_FREERADIUS_MOD_SQL_MYSQL:= mariadb
  23. PKGSB_FREERADIUS_MOD_SQL_PGSQL:= postgresql
  24. PKGSS_FREERADIUS_MOD_LDAP:= libopenldap
  25. PKGSS_FREERADIUS_MOD_SQL_MYSQL:= libmariadbclient
  26. PKGSS_FREERADIUS_MOD_SQL_PGSQL:= libpq
  27. PKGSD_FREERADIUS_DEMOCERTS:= Demo certificates to test the server
  28. PKGSN_FREERADIUS_DEMOCERTS:= freeradius-server
  29. PKGSD_FREERADIUS_MOD_CHAP:= CHAP authentication module
  30. PKGSN_FREERADIUS_MOD_CHAP:= freeradius-server
  31. PKGSD_FREERADIUS_MOD_DETAIL:= Detailed accounting module
  32. PKGSN_FREERADIUS_MOD_DETAIL:= freeradius-server
  33. PKGSD_FREERADIUS_MOD_DIGEST:= Digest authentication module
  34. PKGSN_FREERADIUS_MOD_DIGEST:= freeradius-server
  35. PKGSD_FREERADIUS_MOD_FILES:= Module using local files for authorization
  36. PKGSN_FREERADIUS_MOD_FILES:= freeradius-server
  37. PKGSD_FREERADIUS_MOD_LDAP:= LDAP module
  38. PKGSN_FREERADIUS_MOD_LDAP:= freeradius-server
  39. PKGSD_FREERADIUS_MOD_MSCHAP:= MS-CHAP and MS-CHAPv2 module
  40. PKGSN_FREERADIUS_MOD_MSCHAP:= freeradius-server
  41. PKGSD_FREERADIUS_MOD_PAP:= PAP authentication module
  42. PKGSN_FREERADIUS_MOD_PAP:= freeradius-server
  43. PKGSD_FREERADIUS_MOD_PREPROCESS:= Request pre-processing module
  44. PKGSN_FREERADIUS_MOD_PREPROCESS:= freeradius-server
  45. PKGSD_FREERADIUS_MOD_REALM:= Realms handling module
  46. PKGSN_FREERADIUS_MOD_REALM:= freeradius-server
  47. PKGSD_FREERADIUS_MOD_SQL:= Base SQL module
  48. PKGSN_FREERADIUS_MOD_SQL:= freeradius-server
  49. PKGSD_FREERADIUS_MOD_SQL_MYSQL:= MySQL module
  50. PKGSN_FREERADIUS_MOD_SQL_MYSQL:= freeradius-server
  51. PKGSD_FREERADIUS_MOD_SQL_PGSQL:= PostgreSQL module
  52. PKGSN_FREERADIUS_MOD_SQL_PGSQL:= freeradius-server
  53. PKGSD_FREERADIUS_UTILS:= Misc. client utilities
  54. PKGSN_FREERADIUS_UTILS:= freeradius-server
  55. PKG_CONFIGURE_OPTS:=
  56. ifneq (${ADK_PACKAGE_FREERADIUS_MOD_LDAP},)
  57. PKG_CONFIGURE_LIBS+= -lcrypto -lssl
  58. PKG_CONFIGURE_OPTS+= --with-rlm_ldap-include-dir="${STAGING_TARGET_DIR}/usr/include" \
  59. --with-rlm_ldap-lib-dir="${STAGING_TARGET_DIR}/usr/lib"
  60. else
  61. PKG_CONFIGURE_OPTS+= --without-rlm_ldap
  62. endif
  63. ifneq (${ADK_PACKAGE_FREERADIUS_MOD_SQL_MYSQL},)
  64. PKG_CONFIGURE_LIBS+= -lz
  65. PKG_CONFIGURE_OPTS+= --with-mysql-include-dir="${STAGING_TARGET_DIR}/usr/include" \
  66. --with-mysql-lib-dir="${STAGING_TARGET_DIR}/usr/lib/mysql" \
  67. --without-threads \
  68. --with-rlm_sql
  69. else
  70. PKG_CONFIGURE_OPTS+= --without-rlm_sql_mysql
  71. endif
  72. ifneq (${ADK_PACKAGE_FREERADIUS_MOD_SQL_PGSQL},)
  73. PKG_CONFIGURE_OPTS+= --with-rlm_sql_postgresql-include-dir="${STAGING_TARGET_DIR}/usr/include" \
  74. --with-rlm_sql_postgresql-lib-dir="${STAGING_TARGET_DIR}/usr/lib" \
  75. --with-rlm_sql
  76. else
  77. PKG_CONFIGURE_OPTS+= --without-rlm_sql_postgresql
  78. endif
  79. include ${ADK_TOPDIR}/mk/package.mk
  80. define PKG_mod_template
  81. INSTALL_MODS_$${ADK_PACKAGE_${1}}+= ${2}-install
  82. ${2}-install:
  83. ${INSTALL_DIR} $${IDIR_${1}}/usr/lib/freeradius
  84. for m in ${2}; do \
  85. ${CP} ${WRKINST}/usr/lib/freeradius/$$$${m}.so \
  86. $${IDIR_${1}}/usr/lib/freeradius/ ; \
  87. done
  88. -${INSTALL_DIR} $${IDIR_${1}}/etc/freeradius
  89. for f in ${3}; do \
  90. ${CP} ${WRKINST}/etc/freeradius/$$$${f} \
  91. $${IDIR_${1}}/etc/freeradius/ ; \
  92. done
  93. endef
  94. $(eval $(call PKG_template,FREERADIUS_SERVER,freeradius-server,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
  95. $(eval $(call PKG_template,FREERADIUS_DEMOCERTS,freeradius-democerts,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_DEMOCERTS},${PKG_SECTION}))
  96. $(eval $(call PKG_template,FREERADIUS_MOD_CHAP,freeradius-mod-chap,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_CHAP},${PKG_SECTION}))
  97. $(eval $(call PKG_template,FREERADIUS_MOD_DETAIL,freeradius-mod-detail,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_DETAIL},${PKG_SECTION}))
  98. $(eval $(call PKG_template,FREERADIUS_MOD_DIGEST,freeradius-mod-digest,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_DIGEST},${PKG_SECTION}))
  99. $(eval $(call PKG_template,FREERADIUS_MOD_FILES,freeradius-mod-files,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_FILES},${PKG_SECTION}))
  100. $(eval $(call PKG_template,FREERADIUS_MOD_LDAP,freeradius-mod-ldap,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS_LDAP},${PKGSD_FREERADIUS_MOD_LDAP},${PKG_SECTION}))
  101. $(eval $(call PKG_template,FREERADIUS_MOD_MSCHAP,freeradius-mod-mschap,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_MSCHAP},${PKG_SECTION}))
  102. $(eval $(call PKG_template,FREERADIUS_MOD_PAP,freeradius-mod-pap,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_PAP},${PKG_SECTION}))
  103. $(eval $(call PKG_template,FREERADIUS_MOD_PREPROCESS,freeradius-mod-preprocess,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_PREPROCESS},${PKG_SECTION}))
  104. $(eval $(call PKG_template,FREERADIUS_MOD_REALM,freeradius-mod-realm,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_REALM},${PKG_SECTION}))
  105. $(eval $(call PKG_template,FREERADIUS_MOD_SQL,freeradius-mod-sql,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_MOD_SQL},${PKG_SECTION}))
  106. $(eval $(call PKG_template,FREERADIUS_MOD_SQL_MYSQL,freeradius-mod-sql-mysql,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS_MYSQL},${PKGSD_FREERADIUS_MOD_SQL_MYSQL},${PKG_SECTION}))
  107. $(eval $(call PKG_template,FREERADIUS_MOD_SQL_PGSQL,freeradius-mod-sql-pgsql,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS_PGSQL},${PKGSD_FREERADIUS_MOD_SQL_PGSQL},${PKG_SECTION}))
  108. $(eval $(call PKG_template,FREERADIUS_UTILS,freeradius-utils,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FREERADIUS_UTILS},${PKG_SECTION}))
  109. $(eval $(call PKG_mod_template,FREERADIUS_MOD_CHAP,rlm_chap,))
  110. $(eval $(call PKG_mod_template,FREERADIUS_MOD_DETAIL,rlm_detail,))
  111. $(eval $(call PKG_mod_template,FREERADIUS_MOD_DIGEST,rlm_digest,))
  112. $(eval $(call PKG_mod_template,FREERADIUS_MOD_FILES,rlm_files,acct_users preproxy_users users))
  113. $(eval $(call PKG_mod_template,FREERADIUS_MOD_MSCHAP,rlm_mschap,))
  114. $(eval $(call PKG_mod_template,FREERADIUS_MOD_LDAP,rlm_ldap,))
  115. $(eval $(call PKG_mod_template,FREERADIUS_MOD_PAP,rlm_pap,))
  116. $(eval $(call PKG_mod_template,FREERADIUS_MOD_PREPROCESS,rlm_preprocess,hints huntgroups))
  117. $(eval $(call PKG_mod_template,FREERADIUS_MOD_REALM,rlm_realm,proxy.conf))
  118. $(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL,rlm_sql,))
  119. $(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL_MYSQL,rlm_sql_mysql,))
  120. $(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL_PGSQL,rlm_sql_postgresql,))
  121. AUTOTOOL_STYLE:= autoreconf
  122. CONFIGURE_ARGS+= ${PKG_CONFIGURE_OPTS} \
  123. --libdir=/usr/lib/freeradius \
  124. --libexecdir=/usr/lib/freeradius \
  125. --disable-openssl-version-check \
  126. --with-execinfo-include-dir=/dev/null \
  127. --with-openssl-includes=${STAGING_TARGET_DIR}/usr/include \
  128. --with-openssl-libraries=${STAGING_TARGET_DIR}/usr/lib \
  129. --with-system-libltld \
  130. --enable-strict-dependencies \
  131. --with-raddbdir=/etc/freeradius \
  132. --without-edir \
  133. --without-snmp \
  134. --without-experimental-modules \
  135. --without-rlm_attr-rewrite \
  136. --without-rlm_checkval \
  137. --without-rlm_counter \
  138. --without-rlm_dbm \
  139. --without-rlm_eap \
  140. --without-rlm_eap2 \
  141. --without-rlm_eap_sim \
  142. --without-rlm_example \
  143. --without-rlm_ippool \
  144. --without-rlm_krb5 \
  145. --without-rlm_otp \
  146. --without-rlm_smsotp \
  147. --without-rlm_pam \
  148. --without-rlm_perl \
  149. --without-rlm_python \
  150. --without-rlm_radutmp \
  151. --without-rlm_rest \
  152. --without-rlm_ruby \
  153. --without-rlm_smb \
  154. --without-rlm_sqlcounter \
  155. --without-rlm_sql_db2 \
  156. --without-rlm_sql_freetds \
  157. --without-rlm_sql_iodbc \
  158. --without-rlm_sql_oracle \
  159. --without-rlm_sql_sybase \
  160. --without-rlm_sql_unixodbc \
  161. --without-rlm_sql_log \
  162. --without-rlm_redis \
  163. --without-rlm_rediswho \
  164. --without-rlm_unix \
  165. --without-rlm_eap_ikev2 \
  166. --without-rlm_eap_tnc \
  167. --without-rlm_cache_memcached \
  168. --without-rlm_opendirectory \
  169. --without-rlm_sql_firebird \
  170. --without-rlm_sql_sqlite
  171. CONFIGURE_ENV+= ax_cv_cc_builtin_choose_expr=yes \
  172. ax_cv_cc_builtin_types_compatible_p=yes \
  173. ax_cv_cc_builtin_bswap64=yes \
  174. ax_cv_cc_bounded_attribute=yes
  175. FAKE_FLAGS+= R="${WRKINST}" \
  176. INSTALLSTRIP=""
  177. freeradius-server-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
  178. -${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/etc/freeradius
  179. ${CP} ./files/users ${IDIR_FREERADIUS_SERVER}/etc/freeradius/
  180. ${INSTALL_DATA} ./files/radiusd.conf \
  181. ${IDIR_FREERADIUS_SERVER}/etc/freeradius
  182. ${INSTALL_DATA} ./files/clients.conf \
  183. ${IDIR_FREERADIUS_SERVER}/etc/freeradius
  184. for f in dictionary; do \
  185. ${CP} ${WRKINST}/etc/freeradius/$${f} \
  186. ${IDIR_FREERADIUS_SERVER}/etc/freeradius/ ; \
  187. done
  188. ${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/usr/share/freeradius
  189. ${CP} ${WRKINST}/usr/share/freeradius/dictionary* \
  190. ${IDIR_FREERADIUS_SERVER}/usr/share/freeradius/
  191. ${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/usr/lib/freeradius
  192. ${CP} ${WRKINST}/usr/lib/freeradius/libfreeradius-{dhcp,eap,server,radius}.so \
  193. ${IDIR_FREERADIUS_SERVER}/usr/lib
  194. ${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/usr/sbin
  195. ${CP} ${WRKINST}/usr/sbin/radiusd \
  196. ${IDIR_FREERADIUS_SERVER}/usr/sbin/
  197. ${INSTALL_DIR} ${IDIR_FREERADIUS_DEMOCERTS}/etc/freeradius
  198. ${CP} ${WRKINST}/etc/freeradius/certs \
  199. ${IDIR_FREERADIUS_DEMOCERTS}/etc/freeradius/
  200. rm -rf ${IDIR_FREERADIUS_DEMOCERTS}/etc/freeradius/certs/README
  201. rm -rf ${IDIR_FREERADIUS_DEMOCERTS}/etc/freeradius/certs/new*
  202. rm -rf ${IDIR_FREERADIUS_DEMOCERTS}/etc/freeradius/certs/demoCA/index*
  203. rm -rf ${IDIR_FREERADIUS_DEMOCERTS}/etc/freeradius/certs/demoCA/serial*
  204. ${INSTALL_DIR} ${IDIR_FREERADIUS_UTILS}/usr/bin
  205. ${INSTALL_BIN} ${WRKINST}/usr/bin/radclient \
  206. ${IDIR_FREERADIUS_UTILS}/usr/bin
  207. include ${ADK_TOPDIR}/mk/pkg-bottom.mk