git: ae1787aab23e - main - shells/zsh: Add BASE_ZSH option
Date: Fri, 26 Nov 2021 00:55:10 UTC
The branch main has been updated by yasu: URL: https://cgit.FreeBSD.org/ports/commit/?id=ae1787aab23e44e369dbb0cc814e8318c6f86e0d commit ae1787aab23e44e369dbb0cc814e8318c6f86e0d Author: Yasuhiro Kimura <yasu@FreeBSD.org> AuthorDate: 2021-10-12 16:47:27 +0000 Commit: Yasuhiro Kimura <yasu@FreeBSD.org> CommitDate: 2021-11-26 00:53:36 +0000 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) --- shells/zsh/Makefile | 80 ++++++++++++++++++++++++++++------------------------ shells/zsh/pkg-plist | 2 ++ 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