1
0
mirror of https://git.freebsd.org/ports.git synced 2026-06-02 11:08:52 +00:00
Files
Joseph Mingrone bc45b7ec88 Emacs Lisp ports framework: Overhaul
This overhaul introduces four key changes to the elisp ports framework:

1. Remove support for packaged byte-compiled elisp.

   The primary motivation is to remove a large number of flavor-specific
   packages and to simplify the ports tree.  As an example, supporting
   byte-compiled elisp for devel/tablist required six packages, one for
   each flavor of editors/emacs and editors/emacs-devel.  With over 100
   elisp ports and requests for new Emacs flavors, this was
   unmanageable.

2. Install configuration to integrate with Emacs's native compilation
   machinery, allowing elisp from ports to be compiled into the standard
   cache under the user's home directory.

   This matches the behavior of GNU ELPA packages and generally results
   in a faster experience.  Speedups vary depending on the
   characteristics of the elisp code, but are often reported to be 2.5
   to 5 times faster than byte-compiled code.

3. Perform byte compilation on the target host, but only when native
   compilation is unavailable.  Compilation is initiated when Emacs
   starts, and the resulting .elc files are cached under the user's
   home directory.

4. Load all autoload files installed by FreeBSD elisp ports.  This
   mirrors what package.el does for ELPA packages, ensuring that
   autoloaded functions are available without requiring users to
   explicitly load each package.

Users with elisp packages (*-emacs_*) installed should consult the
2026-04-11 UPDATING entry for instructions on handling the transition.

Reviewed by:	ashish, Benjamin Jacobs <freebsd@dev.thsi.be>, dinoex,
		mandree, mce, nobutaka, Pat Maddox <pat@patmaddox.com>,
		rhurlin
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D56001
2026-04-11 13:03:58 -03:00

78 lines
1.9 KiB
Makefile

PORTNAME= gnu-radius
PORTVERSION= 1.6.1
PORTREVISION= 18
CATEGORIES= net
MASTER_SITES= GNU/radius
DISTNAME= radius-${PORTVERSION}
MAINTAINER= ports@FreeBSD.org
COMMENT= GNU RADIUS server
WWW= https://www.gnu.org/software/radius/
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libltdl.so:devel/libltdl
USES= cpe gmake libtool
USE_RC_SUBR= radiusd
USE_SUBMAKE= yes
USE_LDCONFIG= yes
CPE_PRODUCT= radius
CPE_VENDOR= gnu
CONFLICTS= freeradius-0.* openradius-0.* radiusd-cistron-1.*
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
INSTALL_TARGET= install-strip
PLIST_SUB= PORTVERSION=${PORTVERSION}
DATADIR= ${PREFIX}/share/radius
INFO= radius
SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \
CURDIR="${.CURDIR}" \
MKDIR="${MKDIR}"
CONFIGURE_ARGS+=--with-include-path="${LOCALBASE}/include/" \
--with-lib-path="${LOCALBASE}/lib/"
OPTIONS_DEFINE= CLIENT MYSQL PGSQL EXAMPLES DBM SNMP EMACS PAM NLS
OPTIONS_DEFAULT=MYSQL
OPTIONS_SUB= yes
CLIENT_DESC= Build client
EMACS_DESC= Install Emacs dotfiles
SNMP_CONFIGURE_ENABLE= snmp
CLIENT_CONFIGURE_ENABLE= client
CLIENT_USES= guile:1.8,alias
CLIENT_CONFIGURE_OFF= --without-guile
MYSQL_USES= mysql
MYSQL_CONFIGURE_WITH= mysql
PGSQL_USES= pgsql
PGSQL_CONFIGURE_WITH= postgres
DBM_CONFIGURE_ENABLE= dbm=ndbm
EMACS_USES= emacs
NLS_USES= gettext
NLS_CONFIGURE_OFF= --disable-nls
PAM_CONFIGURE_ENABLE= pam
post-patch:
${REINPLACE_CMD} -e 's|extern unsigned scheme_gc_interval;||g' \
${WRKSRC}/include/radiusd.h
${REINPLACE_CMD} -e 's|int getline|ssize_t getline|' \
${WRKSRC}/radtest/input.l ${WRKSRC}/radtest/input.c
post-install:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
( cd ${WRKSRC}/examples && ${COPYTREE_SHARE} .\
${STAGEDIR}${EXAMPLESDIR}\
"! ( -name Makefile -o -name Makefile\.* ) " )
post-install-EMACS-on:
@${MKDIR} ${STAGEDIR}${PREFIX}/${EMACS_SITE_LISPDIR}
${INSTALL_DATA} ${WRKSRC}/elisp/*.el \
${STAGEDIR}${PREFIX}/${EMACS_SITE_LISPDIR}
.include <bsd.port.mk>