[freeradius2]: move into it's own submenu, add option to build without openssl
[openwrt/svn-archive/archive.git] / net / freeradius2 / Makefile
index 9d9b3729742c73255e18dd4bfbe0af58efb24c74..d36dad51a87a0c1c78807be72e8cfa4952f323bd 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2010 OpenWrt.org
+# Copyright (C) 2008-2014 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,29 +8,37 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freeradius2
-PKG_VERSION:=2.1.7
-PKG_RELEASE:=2
+PKG_VERSION:=2.2.3
+PKG_RELEASE:=3
 
 PKG_SOURCE:=freeradius-server-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=ftp://ftp.freeradius.org/pub/freeradius/
-PKG_MD5SUM:=b8df6cf0c3df1dded205ad5f954feb78
+PKG_MD5SUM:=25fb44cc1bc121f44f61f439bf45a420
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/freeradius-server-$(PKG_VERSION)
-PKG_FIXUP:=libtool
+PKG_FIXUP:=autoreconf
+
+PKG_CONFIG_DEPENDS := \
+  FREERADIUS_OPENSSL \
+  FREERADIUS_NOSSL
 
 include $(INCLUDE_DIR)/package.mk
 
+define Package/freeradius2/config
+  source "$(SOURCE)/Config.in"
+endef
+
 define Package/freeradius2/Default
   SECTION:=net
   CATEGORY:=Network
   URL:=http://freeradius.org/
+  SUBMENU:=FreeRADIUS (version 2)
 endef
 
 define Package/freeradius2
   $(call Package/freeradius2/Default)
-  DEPENDS:=+libltdl +libopenssl +libpthread +libreadline
+  DEPENDS:=+libltdl +libreadline +freeradius2-common
   TITLE:=A flexible RADIUS server (version 2)
-  MENU:=1
 endef
 
 define Package/freeradius2/conffiles
@@ -45,6 +53,12 @@ define Package/freeradius2-democerts
   TITLE:=Demo certificates to test the server
 endef
 
+define Package/freeradius2-common
+  $(call Package/freeradius2/Default)
+  TITLE:=common files
+  DEPENDS:=+libpthread +FREERADIUS_OPENSSL:libopenssl
+endef
+
 define Package/freeradius2-mod-chap
   $(call Package/freeradius2/Default)
   DEPENDS:=freeradius2
@@ -89,19 +103,19 @@ endef
 
 define Package/freeradius2-mod-eap-mschapv2
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2-mod-eap
+  DEPENDS:=freeradius2-mod-eap +freeradius2-mod-mschap
   TITLE:=EAP/MS-CHAPv2 module
 endef
 
 define Package/freeradius2-mod-eap-peap
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2-mod-eap
+  DEPENDS:=freeradius2-mod-eap @FREERADIUS_OPENSSL
   TITLE:=EAP/PEAP module
 endef
 
 define Package/freeradius2-mod-eap-tls
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2-mod-eap
+  DEPENDS:=freeradius2-mod-eap @FREERADIUS_OPENSSL
   TITLE:=EAP/TLS module
 endef
 
@@ -131,6 +145,16 @@ define Package/freeradius2-mod-expiration/conffiles
 /etc/freeradius2/modules/expiration
 endef
 
+define Package/freeradius2-mod-always
+  $(call Package/freeradius2/Default)
+  DEPENDS:=freeradius2
+  TITLE:=Always module
+endef
+
+define Package/freeradius2-mod-always/conffiles
+/etc/freeradius2/modules/always
+endef
+
 define Package/freeradius2-mod-expr
   $(call Package/freeradius2/Default)
   DEPENDS:=freeradius2
@@ -178,9 +202,19 @@ define Package/freeradius2-mod-files/conffiles
 /etc/freeradius2/modules/files
 endef
 
+define Package/freeradius2-mod-passwd
+  $(call Package/freeradius2/Default)
+  DEPENDS:=freeradius2
+  TITLE:=Rlm passwd module
+endef
+
+define Package/freeradius2-mod-passwd/conffiles
+/etc/freeradius2/modules/passwd
+endef
+
 define Package/freeradius2-mod-ldap
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2 +libopenldap
+  DEPENDS:=freeradius2 +PACKAGE_freeradius2-mod-ldap:libopenldap
   TITLE:=LDAP module
 endef
 
@@ -254,16 +288,25 @@ endef
 
 define Package/freeradius2-mod-sql-mysql
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2-mod-sql +libmysqlclient
+  DEPENDS:=freeradius2-mod-sql \
+       +PACKAGE_freeradius2-mod-sql-mysql:libmysqlclient-r
   TITLE:=MySQL module
 endef
 
 define Package/freeradius2-mod-sql-pgsql
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2-mod-sql +libpq
+  DEPENDS:=freeradius2-mod-sql \
+       +PACKAGE_freeradius2-mod-sql-pgsql:libpq
   TITLE:=PostgreSQL module
 endef
 
+define Package/freeradius2-mod-sql-sqlite
+  $(call Package/freeradius2/Default)
+  DEPENDS:=freeradius2-mod-sql \
+       +PACKAGE_freeradius2-mod-sql-sqlite:libsqlite3
+  TITLE:=SQLite module
+endef
+
 define Package/freeradius2-mod-sqlcounter
   $(call Package/freeradius2/Default)
   DEPENDS:=freeradius2-mod-sql
@@ -283,10 +326,16 @@ endef
 
 define Package/freeradius2-utils
   $(call Package/freeradius2/Default)
-  DEPENDS:=freeradius2
+  DEPENDS:=+freeradius2-common
   TITLE:=Misc. client utilities
 endef
 
+define Package/freeradius2-mod-sqllog
+  $(call Package/freeradius2/Default)
+  DEPENDS:=freeradius2
+  TITLE:=SQL Logging module
+endef
+
 CONFIGURE_ARGS+= \
        --libdir=/usr/lib/freeradius2 \
        --libexecdir=/usr/lib/freeradius2 \
@@ -294,8 +343,9 @@ CONFIGURE_ARGS+= \
        --disable-static \
        --disable-developer \
        --with-threads \
-       --with-openssl-includes="$(STAGING_DIR)/usr/include" \
-       --with-openssl-libraries="$(STAGING_DIR)/usr/lib" \
+       $(if $(CONFIG_FREERADIUS_OPENSSL),--with,--without)-openssl \
+       $(if $(CONFIG_FREERADIUS_OPENSSL),--with-openssl-includes="$(STAGING_DIR)/usr/include",) \
+       $(if $(CONFIG_FREERADIUS_OPENSSL),--with-openssl-libraries="$(STAGING_DIR)/usr/lib",) \
        --with-system-libtool \
        --with-system-libltdl \
        --enable-strict-dependencies \
@@ -319,7 +369,6 @@ CONFIGURE_ARGS+= \
        --without-rlm_perl \
        --without-rlm_python \
        --without-rlm_smb \
-       --without-rlm_always \
        --with-rlm_sql \
        --with-rlm_sqlcounter \
        --without-rlm_sqlhpwippool \
@@ -332,12 +381,31 @@ CONFIGURE_ARGS+= \
        --without-rlm_sql_sybase \
        --without-rlm_sql_unixodbc \
        --without-rlm_sql_log \
-       --without-rlm_sql_sqlite \
        --without-rlm_unix \
        --without-rlm_eap_tnc \
        --without-rlm_eap_ikev2 \
        --without-rlm_opendirectory \
        --without-rlm_wimax \
+       --without-rlm_ruby \
+       --without-rlm_caching \
+       --without-rlm_redis \
+       --without-rlm_rediswho \
+       --without-rlm_soh \
+       --without-rlm_sim \
+       --without-rlm_replicate \
+       --without-rlm_protocol_filter \
+       --without-rlm_policy \
+       --without-rlm_linelog \
+       --without-rlm_jradius \
+       --without-rlm_fastusers \
+       --without-rlm_eap_leap \
+       --without-rlm_dynamic_clients \
+       --without-rlm_digest \
+       --without-rlm_cram \
+       --without-rlm_copy_packet \
+       --without-rlm_acct_unique \
+       --without-rlm_acctlog
+       
 
 PKG_DICTIONARIES:= \
        freeradius freeradius.internal \
@@ -373,6 +441,25 @@ else
   CONFIGURE_ARGS+= --without-rlm_sql_postgresql
 endif
 
+ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-sqllog),)
+  CONFIGURE_ARGS+= \
+        --with-rlm_sql_log \
+        --with-experimental-modules \
+else
+  CONFIGURE_ARGS+= --without-rlm_sql_log
+endif
+
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-sql-sqlite),)
+  CONFIGURE_ARGS+= \
+       --with-rlm_sql_sqlite \
+       --with-experimental-modules \
+       --with-sqlite-include-dir="$(STAGING_DIR)/usr/include" \
+       --with-sqlite-lib-dir="$(STAGING_DIR)/usr/lib"
+else
+  CONFIGURE_ARGS+= --without-rlm_sql_sqlite
+endif
+
 ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-eap-peap),)
   CONFIGURE_ARGS+= \
                --with-rlm_eap_peap \
@@ -427,6 +514,12 @@ else
   CONFIGURE_ARGS+= --without-rlm_expiration
 endif
 
+ifneq ($(SDK)$(CONFIG_PACKAGE_freeradius2-mod-always),)
+  CONFIGURE_ARGS+= --with-rlm_always
+else
+  CONFIGURE_ARGS+= --without-rlm_always
+endif
+
 CONFIGURE_VARS+= \
        LDFLAGS="$$$$LDFLAGS" \
        LIBS="$(CONFIGURE_LIBS)" \
@@ -440,14 +533,13 @@ define Build/Compile
                all certs install
 endef
 
-define Package/freeradius2/install
+define Package/freeradius2-common/install
        $(INSTALL_DIR) $(1)/etc/freeradius2
-       $(INSTALL_DIR) $(1)/etc/freeradius2/modules
-       $(INSTALL_DIR) $(1)/etc/freeradius2/sites
-       for f in clients.conf dictionary radiusd.conf policy.conf; do \
-               $(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/$$$${f} $(1)/etc/freeradius2/ ; \
-       done
-       $(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/sites-available/default $(1)/etc/freeradius2/sites/default
+       chmod 771 $(1)/etc/freeradius2
+       $(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/dictionary $(1)/etc/freeradius2/ ; \
+       $(INSTALL_DIR) $(1)/usr/lib/freeradius2
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius2/libfreeradius-radius{,-*}.so $(1)/usr/lib/freeradius2
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius2/libfreeradius-eap{,-*}.so $(1)/usr/lib/freeradius2
        $(INSTALL_DIR) $(1)/usr/share/freeradius2
        $(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary $(1)/usr/share/freeradius2/
        $(SED) "s,^\(\$$$$INCLUDE\),#\1,g" $(1)/usr/share/freeradius2/dictionary
@@ -455,8 +547,15 @@ define Package/freeradius2/install
                $(CP) $(PKG_INSTALL_DIR)/usr/share/freeradius/dictionary.$$$${f} $(1)/usr/share/freeradius2/ ; \
                $(SED) "s,^#\(\$$$$INCLUDE dictionary\.$$$${f}\),\1,g" $(1)/usr/share/freeradius2/dictionary ; \
        done
-       $(INSTALL_DIR) $(1)/usr/lib/freeradius2
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/freeradius2/libfreeradius-radius{,-*}.so $(1)/usr/lib/freeradius2
+endef
+
+define Package/freeradius2/install
+       $(INSTALL_DIR) $(1)/etc/freeradius2/modules
+       $(INSTALL_DIR) $(1)/etc/freeradius2/sites
+       for f in clients.conf radiusd.conf policy.conf; do \
+               $(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/$$$${f} $(1)/etc/freeradius2/ ; \
+       done
+       $(CP) $(PKG_INSTALL_DIR)/etc/freeradius2/sites-available/default $(1)/etc/freeradius2/sites/default
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/radiusd $(1)/usr/sbin/
        $(INSTALL_DIR) $(1)/etc/init.d
@@ -475,7 +574,7 @@ endef
 
 define Package/freeradius2-utils/install
        $(INSTALL_DIR) $(1)/usr/bin
-       for f in radclient radeapclient; do \
+       for f in radclient radeapclient radwho; do \
                $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$${f} $(1)/usr/bin/ ; \
        done
 endef
@@ -497,10 +596,11 @@ define BuildPlugin
 endef
 
 $(eval $(call BuildPackage,freeradius2))
+$(eval $(call BuildPackage,freeradius2-common))
 $(eval $(call BuildPackage,freeradius2-democerts))
 $(eval $(call BuildPlugin,freeradius2-mod-chap,rlm_chap,modules/chap,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-detail,rlm_detail,modules/detail,modules,))
-$(eval $(call BuildPlugin,freeradius2-mod-eap,libfreeradius-eap rlm_eap,eap.conf))
+$(eval $(call BuildPlugin,freeradius2-mod-eap,rlm_eap,eap.conf))
 $(eval $(call BuildPlugin,freeradius2-mod-eap-gtc,rlm_eap_gtc,))
 $(eval $(call BuildPlugin,freeradius2-mod-eap-md5,rlm_eap_md5,))
 $(eval $(call BuildPlugin,freeradius2-mod-eap-mschapv2,rlm_eap_mschapv2,))
@@ -510,6 +610,7 @@ $(eval $(call BuildPlugin,freeradius2-mod-eap-ttls,rlm_eap_ttls,))
 $(eval $(call BuildPlugin,freeradius2-mod-exec,rlm_exec,modules/exec modules/echo ,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-attr-rewrite,rlm_attr_rewrite,modules/attr_rewrite,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-files,rlm_files,acct_users preproxy_users users modules/files,modules,))
+$(eval $(call BuildPlugin,freeradius2-mod-passwd,rlm_passwd,modules/passwd,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-ldap,rlm_ldap,ldap.attrmap modules/ldap,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-mschap,rlm_mschap,modules/mschap,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-pap,rlm_pap,modules/pap,modules,))
@@ -518,10 +619,13 @@ $(eval $(call BuildPlugin,freeradius2-mod-realm,rlm_realm,proxy.conf modules/rea
 $(eval $(call BuildPlugin,freeradius2-mod-sql,rlm_sql,sql.conf,))
 $(eval $(call BuildPlugin,freeradius2-mod-sql-mysql,rlm_sql_mysql,))
 $(eval $(call BuildPlugin,freeradius2-mod-sql-pgsql,rlm_sql_postgresql,))
+$(eval $(call BuildPlugin,freeradius2-mod-sql-sqlite,rlm_sql_sqlite,))
 $(eval $(call BuildPlugin,freeradius2-mod-sqlcounter,rlm_sqlcounter,))
+$(eval $(call BuildPlugin,freeradius2-mod-sqllog,rlm_sql_log,))
 $(eval $(call BuildPlugin,freeradius2-mod-radutmp,rlm_radutmp,modules/radutmp modules/sradutmp,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-logintime,rlm_logintime,modules/logintime,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-expr,rlm_expr,modules/expr,modules,))
 $(eval $(call BuildPlugin,freeradius2-mod-attr-filter,rlm_attr_filter,modules/attr_filter attrs attrs.access_reject attrs.accounting_response attrs.pre-proxy,modules,,))
 $(eval $(call BuildPlugin,freeradius2-mod-expiration,rlm_expiration,modules/expiration,modules,))
+$(eval $(call BuildPlugin,freeradius2-mod-always,rlm_always,modules/always,modules,))
 $(eval $(call BuildPackage,freeradius2-utils))