Package init

This commit is contained in:
overweight 2019-09-30 11:20:48 -04:00
commit a71fa0cdf6
8 changed files with 266 additions and 0 deletions

34
dotzshrc Normal file
View File

@ -0,0 +1,34 @@
#
# .zshrc is sourced in interactive shells.
# It should contain commands to set up aliases,
# functions, options, key bindings, etc.
#
autoload -U compinit
compinit
#allow tab completion in the middle of a word
setopt COMPLETE_IN_WORD
## keep background processes at full speed
#setopt NOBGNICE
## restart running processes on exit
#setopt HUP
## history
#setopt APPEND_HISTORY
## for sharing history between zsh processes
#setopt INC_APPEND_HISTORY
#setopt SHARE_HISTORY
## never ever beep ever
#setopt NO_BEEP
## automatically decide when to page a list of completions
#LISTMAX=0
## disable mail checking
#MAILCHECK=0
# autoload -U colors
#colors

8
zlogin.rhs Normal file
View File

@ -0,0 +1,8 @@
#
# /etc/zlogin and .zlogin are sourced in login shells. It should
# contain commands that should be executed only in
# login shells. It should be used to set the terminal
# type and run a series of external commands (fortune,
# msgs, from, etc).
#

7
zlogout.rhs Normal file
View File

@ -0,0 +1,7 @@
#
#
# /etc/zlogout and ~/.zlogout are run when an interactive session ends
#
#
clear

22
zprofile.rhs Normal file
View File

@ -0,0 +1,22 @@
#
# /etc/zprofile and ~/.zprofile are run for login shells
#
PATH="$PATH:$HOME/bin"
export PATH
_src_etc_profile()
{
# Make /etc/profile happier, and have possible ~/.zshenv options like
# NOMATCH ignored.
#
emulate -L ksh
# source profile
if [ -f /etc/profile ]; then
source /etc/profile
fi
}
_src_etc_profile
unset -f _src_etc_profile

BIN
zsh-5.6.2.tar.xz Normal file

Binary file not shown.

131
zsh.spec Normal file
View File

@ -0,0 +1,131 @@
%define _bindir /bin
Name: zsh
Version: 5.6.2
Release: 2
Summary: A shell designed for interactive use
License: MIT
URL: http://zsh.sourceforge.net
Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz
# Source1 to Source6 get from fedora
Source1: zlogin.rhs
Source2: zlogout.rhs
Source3: zprofile.rhs
Source4: zshrc.rhs
Source5: zshenv.rhs
Source6: dotzshrc
BuildRequires: autoconf coreutils gawk gdbm-devel libcap-devel
BuildRequires: ncurses-devel pcre-devel sed texi2html texinfo hostname
Requires(post): info grep
Requires(preun): info
Requires(postun): coreutils grep
Provides: /bin/zsh
%description
The zsh is a shell designed for interactive use, and it is also a powerful scripting language. Many of
the useful features of bash, ksh, and tcsh were incorporated into zsh. It can match files by file extension
without running an external program, share command history with any shell, and more.
%package help
Summary: zsh shell manual in html format
BuildArch: noarch
Provides: zsh-html
Obsoletes: zsh-html
%description help
This package contains the zsh manual in html format.
%prep
%autosetup -p1
autoreconf -fiv
sed -e 's|^\.NOTPARALLEL|#.NOTPARALLEL|' -i 'Config/defs.mk.in'
%build
%undefine _strict_symbol_defs_build
export LIBLDFLAGS='-z lazy'
%configure --enable-etcdir=%{_sysconfdir} --with-tcsetpgrp --enable-maildir-support --enable-pcre
make -C Src headers
make -C Src -f Makemod zsh{path,xmod}s.h version.h
%make_build all html
%check
make check
%install
%make_install install.info fndir=%{_datadir}/%{name}/%{version}/functions sitefndir=%{_datadir}/%{name}/site-functions \
scriptdir=%{_datadir}/%{name}/%{version}/scripts sitescriptdir=%{_datadir}/%{name}/scripts \
runhelpdir=%{_datadir}/%{name}/%{version}/help
rm -f $RPM_BUILD_ROOT%{_bindir}/zsh-%{version}
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
install -d ${RPM_BUILD_ROOT}%{_sysconfdir}
for i in %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5}; do
install -m 644 $i $RPM_BUILD_ROOT%{_sysconfdir}/"$(basename $i .rhs)"
done
install -d $RPM_BUILD_ROOT%{_sysconfdir}/skel
install -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.zshrc
for i in checkmail harden run-help zcalc zkbd; do
sed -i -e 's!/usr/local/bin/zsh!%{_bindir}/zsh!' $RPM_BUILD_ROOT%{_datadir}/zsh/%{version}/functions/$i
chmod +x $RPM_BUILD_ROOT%{_datadir}/zsh/%{version}/functions/$i
done
%post
if [ "$1" = 1 ]; then
if [ ! -f %{_sysconfdir}/shells ] ; then
echo "%{_bindir}/%{name}" > %{_sysconfdir}/shells
echo "/bin/%{name}" >> %{_sysconfdir}/shells
else
grep -q "^%{_bindir}/%{name}$" %{_sysconfdir}/shells || echo "%{_bindir}/%{name}" >> %{_sysconfdir}/shells
grep -q "^/bin/%{name}$" %{_sysconfdir}/shells || echo "/bin/%{name}" >> %{_sysconfdir}/shells
fi
fi
if [ -f %{_infodir}/zsh.info.gz ]; then
/sbin/install-info %{_infodir}/zsh.info.gz %{_infodir}/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
fi
%preun
if [ "$1" = 0 ] ; then
if [ -f %{_infodir}/zsh.info.gz ]; then
/sbin/install-info --delete %{_infodir}/zsh.info.gz %{_infodir}/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
fi
fi
%postun
if [ "$1" = 0 ] && [ -f %{_sysconfdir}/shells ] ; then
sed -i '\!^%{_bindir}/%{name}$!d' %{_sysconfdir}/shells
sed -i '\!^/bin/%{name}$!d' %{_sysconfdir}/shells
fi
%files
%doc README LICENCE Etc/* FEATURES MACHINES NEWS
%attr(755,root,root) %{_bindir}/zsh
%{_libdir}/zsh
%config(noreplace) %{_sysconfdir}/skel/.z*
%config(noreplace) %{_sysconfdir}/z*
%files help
%doc Doc/*.html
%{_mandir}/*/*
%{_infodir}/*
%{_datadir}/zsh
%changelog
* Wed Sep 18 2019 dongjian <dongjian13@huawei.com> - 5.6.2-2
- modify summary

14
zshenv.rhs Normal file
View File

@ -0,0 +1,14 @@
# /etc/zsh/zshenv: system-wide .zshenv file for zsh(1).
#
# This file is sourced on all invocations of the shell.
# If the -f flag is present or if the NO_RCS option is
# set within this file, all other initialization files
# are skipped.
#
# This file should contain commands to set the command
# search path, plus other important environment variables.
# This file should not contain commands that produce
# output or assume the shell is attached to a tty.
#
# Global Order: zshenv, zprofile, zshrc, zlogin

50
zshrc.rhs Normal file
View File

@ -0,0 +1,50 @@
#
# /etc/zshrc is sourced in interactive shells. It
# should contain commands to set up aliases, functions,
# options, key bindings, etc.
#
## shell functions
#setenv() { export $1=$2 } # csh compatibility
# Set prompts
PROMPT='[%n@%m]%~%# ' # default prompt
#RPROMPT=' %~' # prompt for right side of screen
# bindkey -v # vi key bindings
# bindkey -e # emacs key bindings
bindkey ' ' magic-space # also do history expansion on space
# Provide pathmunge for /etc/profile.d scripts
pathmunge()
{
if ! echo $PATH | /bin/grep -qE "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
_src_etc_profile_d()
{
# Make the *.sh things happier, and have possible ~/.zshenv options like
# NOMATCH ignored.
emulate -L ksh
# from bashrc, with zsh fixes
if [[ ! -o login ]]; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
fi
}
_src_etc_profile_d
unset -f pathmunge _src_etc_profile_d