aboutsummaryrefslogtreecommitdiff
path: root/shells
diff options
context:
space:
mode:
authorYasuhiro Kimura <yasu@FreeBSD.org>2021-10-12 16:47:27 +0000
committerYasuhiro Kimura <yasu@FreeBSD.org>2021-11-26 00:53:36 +0000
commitae1787aab23e44e369dbb0cc814e8318c6f86e0d (patch)
tree76211b7368294010b1f681d5cd129402224bb5f6 /shells
parent41681784479696645755afcd3489fb098f67dd85 (diff)
downloadports-ae1787aab23e44e369dbb0cc814e8318c6f86e0d.tar.gz
ports-ae1787aab23e44e369dbb0cc814e8318c6f86e0d.zip
shells/zsh: Add BASE_ZSH option
Add new option BASE_ZSH that makes zsh and rzsh also available as /bin/zsh and /bin/rzsh. Under ports flamework everything is installed under /usr/local unless custom prefix is used. And according to it zsh is installed as /usr/local/bin/zsh. But on most Linux based OSes zsh is installed as /bin/zsh. And it causes problem if user's account information is shared between FreeBSD and Linux by using such tools as LDAP or NIS as account information also includes absolute path of user's login shell. To work around it I have created /bin/zsh as symbolic link referencing /usr/local/bin/zsh and also edited /etc/shells to add /bin/zsh to it every time I set up new FreeBSD system. But it's quite bothersome and that is why I add new BASE_ZSH option. While I'm here, * Pet portclippy * Re-format Makefile with portfmt PR: 259109 Proposed by: Chris Hutchinson (more intuitive option name) Approved by: maintainer timeout (> 2 weeks)
Diffstat (limited to 'shells')
-rw-r--r--shells/zsh/Makefile80
-rw-r--r--shells/zsh/pkg-plist2
2 files changed, 45 insertions, 37 deletions
diff --git a/shells/zsh/Makefile b/shells/zsh/Makefile
index 2298ee440644..3d107054fe63 100644
--- a/shells/zsh/Makefile
+++ b/shells/zsh/Makefile
@@ -17,69 +17,69 @@ LICENSE_NAME= ZSH license
LICENSE_FILE= ${WRKSRC}/LICENCE
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
-MAKE_JOBS_UNSAFE= yes
-
-USES= autoreconf cpe iconv localbase:ldflags ncurses shebangfix tar:xz
+USES= autoreconf cpe iconv localbase:ldflags ncurses shebangfix \
+ tar:xz
+SHEBANG_FILES= Functions/Calendar/* Functions/Misc/*
SHEBANG_LANG= zsh
-zsh_OLD_CMD= zsh # shebang appears as /bin/zsh and just zsh
-SHEBANG_FILES= Functions/Calendar/* \
- Functions/Misc/*
-
-CONFIGURE_ARGS= --with-tcsetpgrp \
- --enable-function-subdirs \
- --enable-maildir-support \
- --enable-multibyte \
- --enable-zsh-secure-free \
- --sysconfdir=${PREFIX}/etc
-
+zsh_OLD_CMD= zsh # shebang appears as /bin/zsh and just zsh
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --enable-function-subdirs \
+ --enable-maildir-support \
+ --enable-multibyte \
+ --enable-zsh-secure-free \
+ --sysconfdir=${PREFIX}/etc \
+ --with-tcsetpgrp
# fix PREFIX != LOCALBASE
-CONFIGURE_ARGS+=--disable-site-fndir \
- --enable-additional-fpath=${DATADIR}/site-functions
+CONFIGURE_ARGS+= --disable-site-fndir \
+ --enable-additional-fpath=${DATADIR}/site-functions
+CONFIGURE_ENV+= ac_cv_header_sys_capability_h=no \
+ zsh_cv_sys_path_dev_fd=no
-CONFIGURE_ENV+= zsh_cv_sys_path_dev_fd=no \
- ac_cv_header_sys_capability_h=no
+MAKE_JOBS_UNSAFE= yes
+TEST_TARGET= test
-GNU_CONFIGURE= yes
CPPFLAGS+= -DBOOL_DEFINED
LDFLAGS+= -Wl,--as-needed
-TEST_TARGET= test
-OPTIONS_DEFINE= DEBUG ETCDIR GDBM MEM PCRE STATIC \
- DOCS EXAMPLES
+SUB_FILES= pkg-message
+
+PLIST_SUB+= ZSH_VER="${ZSH_VER}"
+PORTDOCS= *
+
+OPTIONS_DEFINE= BASE_ZSH DEBUG DOCS ETCDIR EXAMPLES GDBM MEM PCRE STATIC
OPTIONS_SUB= yes
+BASE_ZSH_DESC= Make zsh and rzsh also available as /bin/zsh and /bin/rzsh
ETCDIR_DESC= System-wide defaults in /etc (instead of $${PREFIX}/etc)
GDBM_DESC= Enable GDBM support (GPL)
MEM_DESC= Enable zsh-mem options
-GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
-PCRE_LIB_DEPENDS= libpcre.so:devel/pcre
-
DEBUG_CONFIGURE_ENABLE= zsh-debug
+DOCS_DISTFILES= ${DISTNAME}-doc${EXTRACT_SUFX}:doc
ETCDIR_CONFIGURE_OFF= --enable-etcdir=${PREFIX}/etc
+GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm
GDBM_CONFIGURE_ENABLE= gdbm
MEM_CONFIGURE_ENABLE= zsh-mem
+PCRE_LIB_DEPENDS= libpcre.so:devel/pcre
PCRE_CONFIGURE_ENABLE= pcre
## Some modules can only be built as a shared library.
## If you enable STATIC, you may get strange errors if you, a script,
## or a plugin tries to use the regex module.
+STATIC_CONFIGURE_ON= --disable-dynamic \
+ --with-term-lib="tinfow tinfo"
+STATIC_CONFIGURE_OFF= --enable-dynamic \
+ --with-term-lib="ncursesw ncurses"
STATIC_LDFLAGS= -static
-STATIC_CONFIGURE_ON= --disable-dynamic --with-term-lib="tinfow tinfo"
-STATIC_CONFIGURE_OFF= --enable-dynamic --with-term-lib="ncursesw ncurses"
-DOCS= LICENCE META-FAQ README \
- Etc/BUGS Etc/CONTRIBUTORS Etc/FAQ Etc/completion-style-guide \
- Doc/zsh*.html Doc/zsh.dvi
-DOCS_DISTFILES= ${DISTNAME}-doc${EXTRACT_SUFX}:doc
+DOCS= LICENCE META-FAQ README Etc/BUGS Etc/CONTRIBUTORS Etc/FAQ \
+ Etc/completion-style-guide Doc/zsh*.html Doc/zsh.dvi
-PORTDOCS= *
PORTEXAMPLES= zlogin zshenv zshrc
ZSH_VER= ${PORTVERSION}
-PLIST_SUB+= ZSH_VER="${ZSH_VER}"
-SUB_FILES= pkg-message
.include <bsd.port.pre.mk>
@@ -123,12 +123,18 @@ post-install:
${CHMOD} 644 $$i.zwc ; \
done')
-post-install-EXAMPLES-on:
- @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
- (cd ${WRKSRC}/StartupFiles && ${INSTALL_DATA} ${PORTEXAMPLES} ${STAGEDIR}${EXAMPLESDIR})
+post-install-BASE_ZSH-on:
+ @${MKDIR} ${STAGEDIR}/bin
+.for f in zsh rzsh
+ ${RLN} ${STAGEDIR}${PREFIX}/bin/${f} ${STAGEDIR}/bin/${f}
+.endfor
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR})
+post-install-EXAMPLES-on:
+ @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+ (cd ${WRKSRC}/StartupFiles && ${INSTALL_DATA} ${PORTEXAMPLES} ${STAGEDIR}${EXAMPLESDIR})
+
.include <bsd.port.post.mk>
diff --git a/shells/zsh/pkg-plist b/shells/zsh/pkg-plist
index e51f7e5c411b..27783c0543af 100644
--- a/shells/zsh/pkg-plist
+++ b/shells/zsh/pkg-plist
@@ -1,5 +1,7 @@
@shell bin/zsh
@shell bin/rzsh
+%%BASE_ZSH%%@shell /bin/zsh
+%%BASE_ZSH%%@shell /bin/rzsh
bin/zsh-%%ZSH_VER%%
%%NO_STATIC%%lib/zsh/%%ZSH_VER%%/zsh/cap.so
%%NO_STATIC%%lib/zsh/%%ZSH_VER%%/zsh/clone.so