4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
21 # Copyright (c) 2024, Friedrich Kink
24 include ..
/..
/..
/make-rules
/shared-macros.mk
26 COMPONENT_NAME
= freeradius
27 COMPONENT_VERSION
= 3.2.6
29 COMPONENT_VERSION_
= $(subst .
,_
,$(COMPONENT_VERSION
))
30 COMPONENT_SUMMARY
= The FreeRADIUS server
31 COMPONENT_DESCRIPTION
= The FreeRADIUS Server Project is a high performance and highly \
32 configurable multi-protocol policy server
, supporting RADIUS
, DHCPv4 DHCPv6
, DNS
, \
33 TACACS
+ and VMPS. Using RADIUS allows authentication and authorization for a \
34 network to be centralized
, and minimizes the number of changes that have to be \
35 done when adding or deleting new users to a network.
36 COMPONENT_SRC
= $(COMPONENT_NAME
)-server-release_
$(COMPONENT_VERSION_
)
37 COMPONENT_ARCHIVE
= $(COMPONENT_SRC
).
tar.gz
38 COMPONENT_PROJECT_URL
= https
://freeradius.org
/
39 COMPONENT_ARCHIVE_URL
= https
://github.com
/FreeRADIUS
/freeradius-server
/archive
/refs
/tags/release_
$(COMPONENT_VERSION_
).
tar.gz
40 COMPONENT_ARCHIVE_HASH
= sha256
:65e099edf5d72ac2f9f7198c800cf0199544f974aae13c93908ab739815b9625
41 COMPONENT_FMRI
= network
/radius
42 COMPONENT_CLASSIFICATION
= Applications
/Internet
43 COMPONENT_LICENSE
= GPLv2
44 COMPONENT_LICENSE_FILE
= LICENSE
46 TEST_TARGET
= $(NO_TESTS
)
47 include $(WS_MAKE_RULES
)/common.mk
49 COMPONENT_PRE_CONFIGURE_ACTION
+= ( \
50 $(CLONEY
) $(SOURCE_DIR
) $(@D
); \
51 $(GSED
) -i
-e
's/-D_LIBRADIUS/-D_LIBRADIUS -D_XPG4_2/' $(@D
)/src
/lib
/all.mk
; );
55 CONFIGURE_OPTIONS
+= CFLAGS
="-I/usr/include/odbc"
56 CONFIGURE_OPTIONS
+= LDFLAGS
="-lldap_r"
57 CONFIGURE_OPTIONS
+= --srcdir=$(BUILD_DIR
)/$(MACH64
)
58 CONFIGURE_OPTIONS
+= --sysconfdir
=$(ETCDIR
)
59 CONFIGURE_OPTIONS
+= --localstatedir
=$(VARDIR
)
60 CONFIGURE_OPTIONS
+= --with-pcap-lib-dir
=$(USRLIBDIR
)
61 CONFIGURE_OPTIONS
+= --with-pcap-include-dir
=/usr
/include/pcap
62 CONFIGURE_OPTIONS
+= --with-rlm-ldap-include-dir
=/usr
/include/openldap
63 CONFIGURE_OPTIONS
+= --with-rlm-sql_postgresql-include-dir
=/usr
/postgres
/$(PG_VERSION
)/include
64 CONFIGURE_OPTIONS
+= --with-openssl-lib-dir
=$(OPENSSL_LIBDIR
)
65 CONFIGURE_OPTIONS
+= --with-openssl-include-dir
=$(OPENSSL_INCDIR
)
66 CONFIGURE_OPTIONS
+= --without-static-modules
68 COMPONENT_INSTALL_ARGS
+= R
=$(PROTO_DIR
)
69 COMPONENT_POST_INSTALL_ACTION
= \
70 $(CP
) $(SOURCE_DIR
)/raddb
/mods-config
/attr_filter
/* $(PROTOETCDIR
)/raddb
/mods-config
/attr_filter
; \
71 $(CP
) $(SOURCE_DIR
)/raddb
/mods-config
/files
/* $(PROTOETCDIR
)/raddb
/mods-config
/files
; \
72 $(CP
) $(SOURCE_DIR
)/raddb
/policy.d
/* $(PROTOETCDIR
)/raddb
/policy.d
; \
73 /usr
/bin
/elfedit
-e
'dyn:value -s RUNPATH "$(MYSQL_LIBDIR)"' $(PROTOUSRLIBDIR64
)/rlm_sql_mysql.so
; \
74 /usr
/bin
/elfedit
-e
'dyn:value -s RPATH "$(MYSQL_LIBDIR)"' $(PROTOUSRLIBDIR64
)/rlm_sql_mysql.so
; \
75 /usr
/bin
/elfedit
-e
'dyn:value -s RUNPATH "$(GCC_LIBDIR)"' $(PROTOUSRLIBDIR64
)/rlm_sql_unixodbc.so
; \
76 /usr
/bin
/elfedit
-e
'dyn:value -s RPATH "$(GCC_LIBDIR)"' $(PROTOUSRLIBDIR64
)/rlm_sql_unixodbc.so
; \
77 /usr
/bin
/elfedit
-e
'dyn:value -s RUNPATH "$(PG_LIBDIR)"' $(PROTOUSRLIBDIR64
)/rlm_sql_postgresql.so
; \
78 /usr
/bin
/elfedit
-e
'dyn:value -s RPATH "$(PG_LIBDIR)"' $(PROTOUSRLIBDIR64
)/rlm_sql_postgresql.so
; \
79 /usr
/bin
/elfedit
-e
'dyn:delete NEEDED' $(PROTOUSRLIBDIR64
)/rlm_python.so
; \
80 /usr
/bin
/elfedit
-e
'dyn:value -s NEEDED "libpython$(PYTHON_VERSION).so.1.0"' $(PROTOUSRLIBDIR64
)/rlm_python.so
; \
81 /usr
/bin
/elfedit
-e
'dyn:value -s RUNPATH "$(GCC_LIBDIR):$(USRLIBDIR)/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION)"' $(PROTOUSRLIBDIR64
)/rlm_python.so
; \
82 /usr
/bin
/elfedit
-e
'dyn:value -s RPATH "$(GCC_LIBDIR):$(USRLIBDIR)/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION)"' $(PROTOUSRLIBDIR64
)/rlm_python.so
;
84 # Manually added build dependencies
85 REQUIRED_PACKAGES
+= $(PG_DEVELOPER_PKG
)
87 # Auto-generated dependencies
88 PERL_REQUIRED_PACKAGES
+= runtime
/perl
89 PYTHON_REQUIRED_PACKAGES
+= runtime
/python
90 REQUIRED_PACKAGES
+= $(MYSQL_LIBRARY_PKG
)
91 REQUIRED_PACKAGES
+= $(OPENSSL_PKG
)
92 REQUIRED_PACKAGES
+= $(PG_LIBRARY_PKG
)
93 REQUIRED_PACKAGES
+= $(READLINE_PKG
)
94 REQUIRED_PACKAGES
+= SUNWcs
95 REQUIRED_PACKAGES
+= database
/sqlite-3
96 REQUIRED_PACKAGES
+= library
/database
/gdbm
97 REQUIRED_PACKAGES
+= library
/freetds
98 REQUIRED_PACKAGES
+= library
/json-c
99 REQUIRED_PACKAGES
+= library
/libmemcached
100 REQUIRED_PACKAGES
+= library
/openldap
101 REQUIRED_PACKAGES
+= library
/talloc
102 REQUIRED_PACKAGES
+= library
/unixodbc
103 REQUIRED_PACKAGES
+= runtime
/perl
104 REQUIRED_PACKAGES
+= service
/network
/unbound
105 REQUIRED_PACKAGES
+= service
/security
/kerberos-5
106 REQUIRED_PACKAGES
+= shell/ksh93
107 REQUIRED_PACKAGES
+= system
/library
108 REQUIRED_PACKAGES
+= system
/library
/libpcap
109 REQUIRED_PACKAGES
+= web
/curl