Zsh is the Swiss Army knife of shells. It combines the most popular
features of every other shell, and then lets you customize every
inch of it. Users of bourne-style and C-style shells will feel at
home in it.
Zsh does intelligent completion, spell-checking, has a rich syntax
for precise globbing, and is fully extensible through plugin
systems.
To fire up the zsh completion system, type the following commands:
$ autoload -U compinstall
$ compinstall
===> The following configuration options are available for zsh-5.9.2:
DEBUG=off: Build with debugging support
DOCS=on: Build and/or install documentation
ETCDIR=off: System-wide defaults in /etc (instead of ${PREFIX}/etc)
EXAMPLES=on: Build and/or install examples
GDBM=off: Enable GDBM support (GPL)
PCRE=off: Use Perl Compatible Regular Expressions
STATIC=off: Build static executables and/or libraries
===> Use 'make config' to modify these settings
shells/zsh: update to 5.9.1
While here switch from pcre to pcre2
Add a patch to support new RLIMITS_PIPEBUF[1] and RLIMITS_VMS
Remove patch which has been upstreamed
PR: 282487 [1]
Submitted by: Martin Birgmeier <d8zNeCFG@aon.at> [1]
shells/zsh: Add Functions/VCS_Info to SHEBANG_FILES
Otherwise, the build fails when LOCALBASE is set to a non-default value.
PR: 288748
Approved by: maintainer (timeout, > 30 days), arrowd (ports)
Reviewed by: arrowd
Differential Revision: https://reviews.freebsd.org/D52640
shells/zsh: cache the utx.active location
On fresh jails or chroot the /var/run/utx.active might not exist (like
in poudriere for example) but configure script is looking for its
existance to determine its existance and activate the build of the
utmx logging feature internally.
Caching it makes the configure script always build the logging features.
While here, make ZSH_VER use the distversion, which fixes the usecase of
building snapshots of zsh via the port.
PR: 268714
Reported by: okiddle@yahoo.co.uk
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
shells/zsh: remove the MEM option
Remove the option allowing to use zsh memory allocator, it is only
useful for zsh developers who won't use the port anyway.
PR: 259997
shells/zsh: remove the modification of the configure script
We used to modify the configure script to avoid zsh to link against
librt because clock_gettime on FreeBSD is in libc not librt.
It's been a while that we are configuring zsh with the --as-needed
linker flag which means now even if -lrt is passed we will not end
up linked to it librt anymore.
besides, modifying the configure script at the patch phase makes it
newer than stamp.h.in which results in the build system triggering a
regeneration of itself (hence the USES= autoreconf we had), not
touching anymore that script can remove the need for USES=autoreconf
and the load if build dependencies it drags in
Removing the USES=autoreconf highlights also the lack of build
dependency on perl which is needed to be able to the help files for
run-help to work on builtins. this is fixed now
shells: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* Adam Weinberger <adamw@FreeBSD.org>
* Andreas Kohn <andreas@syndrom23.de>
* Carlos Jacobo Puga Medina <cpm@FreeBSD.org>
* Cyrille.Lefevre@laposte.net
* Danijel Tasov <danielt@pilgerer.org>
* David O'Brien <obrien@NUXI.com>
* Emanuel Haupt <ehaupt@FreeBSD.org>
* Hajimu UMEMOTO <ume@FreeBSD.org>
* Igor Pokrovsky <ip@unixway.org>
* Jean-Yves Lefort <jylefort@brutele.be>
* Kai Wang <kaiw27@gmail.com>
(Only the first 15 lines of the commit message are shown above )
shell/zsh: remove unnneeded patch
files/extra-patch-Src_Modules_curses__keys.awk is no longer needed
and broke patch phase if ports ncurses is installed.
The patch is already incorporated upstream, so doesn't apply.
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)
Update `databases/gdbm' to version 1.18.1, an important bugfix release
which restores compatibility with old databases (version 1.8) and some
later versions which were built without mmap(2) support. Due to shlib
version change, bump port revisions of the consumer ports.
PR: 233059
Exp-run by: antoine
Approved by: maintainer (johans, numerous timeouts)
Update ZSH to 5.3
Among the usual bugs fixes and completion updates, FreeBSD users will now
benefit new completion functions for:
- cu
- gstat
- jot
- rcctl
- sysrc
Reorganize, simplify, and improve the Makefile.
A couple options changes:
The MAILDIR and SECURE_FREE knobs were both removed and switched to
always-on. Having maildir support does not preclude mbox support, so
there's no reason not to include it for everybody. The secure-free
run-time free() safety check is good practice and is a mandatory default
on a number of other OS's, so now it's enabled for all zsh here as well.
PORTREVISION bump for the above changes.
The rest of the changes are simplifications, and reorganizing things to
be more legible. An EXTRA_PATCHES that was being applied unconditionally
was converted to a normal files/patch-, and I added in some comments
on things I got confused by.
While here, I also rewrote the descr to better describe what Zsh is
in relation to other shells. I also removed
"See also zshcompsys(1) manpage. :)"
Not even a smiley face can undo the pain of trying to read zshcompsys(1).
Switch zsh back to looking for system-wide files under ${PREFIX}/etc,
rather than /etc. Add an option, ETCDIR, to switch it back to /etc.
Also includes a couple whitespace cleanups. PORTREVISION bump, and a
note in UPDATING.
PR: 201866
Clean up Makefile and regenerate patches.
Reorganize Makefile for clarity, and add a few comments.
While here, regenerate the patches with makepatch.
No functional changes.
Fix ncurses detection properly. Now zsh builds and packages properly with
base and ports ncurses, static or non-static.
Many thanks to bapt for showing me the magic trick here!
Partially revert r403755. It can't build the curses module against ncurses from
ports. It probably can, but configure is too smart to figure that out.
I have no confidence that linking against curses from ports results in a
properly
working zshell. So, for now, back out the change. It will build a shared lib zsh
against ncurses from ports, but breaks statically-linked zsh's. Mark the port
as IGNORE if we're using ncurses from ports and building a static zsh.
Also, remove a regression-test target that isn't useful anymore (thanks to bapt
for the reminder about this).
I am not enthused about this change. It doesn't really "fix" the below PR, so
much as shoot ourselves in the other foot instead.
PR: 205500
Fix static build against devel/ncurses by correcting how zsh tries to link
against the terminal libraries. No PORTREVISION bump as this shouldn't really
change the generated packages.
PR: 181720
Submitted by: wulf@mail.mipt.ru
While here, fix a spacing nit and wrap compound commands in parens.
Update to zsh 5.2
While here:
- ensure zsh looks ${PREFIX}/etc for zshrc [1]
- hook the testsuite to our test framework
PR: 201866
Submitted by: Georgy <delycid@gmail.com>
Update to 5.0.8
Among the usual updates, users will be happy to discover plenty of new FreeBSD
related completion as well as zpty working out of box (which wasn't the case
anymore for a while)
shells/zsh: Fix runtime error when built by gcc-5 with upstream patch
The previous approved fix for building with gcc5 still didn't work right.
Sure enough, upstream updated their patch. When we take that update,
zshell finally behaves. Piggybacking on previous approval.
shells/zsh: Fix runtime error when built by gcc-5 with upstream patch
ZSH was misbuilt on gcc-5 due to an intentional change in behavior of
gcc5's cpp. This patch to execute cpp with the -P switch comes from
upstream. No revbump necessary as GCC5 isn't used by default on FreeBSD.
Reported by: DragonFly ZSH users
Approved by: maintainer (bapt, IRC)
Add a patch the kld* completion to find modules in /boot/modules [1]
While here, fix manpages so they render correctly with mandoc
PR: 194621 [1]
Submitted by: clutton@zoho.com [1]
Update to 5.0.7
Note from upstream release note:
Note in particular there is a security fix to disallow evaluation of the
initial values of integer variables imported from the environment (they
are instead treated as literal numbers). That could allow local
privilege escalation, under some specific and atypical conditions where
zsh is being invoked in privilege elevation contexts when the
environment has not been properly sanitized, such as when zsh is invoked
by sudo on systems where "env_reset" has been disabled.
Fix building zsh on a FreeBSD which is a NIS client [1]
Fix hangs upon '>(command)' redirections (enforce always using pipes) [2]
PR: 183253 [1], 180178 [2]
Submitted by: Yasuhiro KIMURA <yasu@utahime.org> [1], danielsh@apache.org [2]
With help of: jilles [2]
Add an @shell keyword to handle adding and remove a shell path in /etc/shell
Bump port revision of all ports that were doing it wrong prior to the keyword
CR: D208
Reviewed by: antoine
With hat: portmgr
- Fix a typo in configure arguments
- Bump port revision as it concerns a default option
Submitted by: Paul Mulders <justinkb@gmail.com> (by private mail)
Variable that start with _ are considered private to the defining
makefile and may not be used by ports makefiles.
In addition, avoid problems should the defaults ever change.
Approved by: portmgr (tabthorpe)