init
This commit is contained in:
parent
870225ed7b
commit
f82d618a19
104
nis.sh
Normal file
104
nis.sh
Normal file
@ -0,0 +1,104 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# nis.sh: dhclient-script plugin for NIS settings,
|
||||
# place in /etc/dhcp/dhclient.d and 'chmod +x nis.sh' to enable
|
||||
#
|
||||
# Copyright (C) 2008 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Author(s): David Cantrell <dcantrell@redhat.com>
|
||||
|
||||
CONF=/etc/yp.conf
|
||||
SAVECONF=${SAVEDIR}/${CONF##*/}.predhclient.${interface}
|
||||
|
||||
fix_context() {
|
||||
if [ -x /sbin/restorecon ]; then
|
||||
/sbin/restorecon ${1} >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
save_config_file() {
|
||||
if [ ! -d ${SAVEDIR} ]; then
|
||||
mkdir -p ${SAVEDIR}
|
||||
fi
|
||||
|
||||
if [ -e ${CONF} ]; then
|
||||
# cp+rm instead of mv: preserve SELinux context
|
||||
# rhbz#509240
|
||||
# Do not rely on restorecon.
|
||||
cp -c ${CONF} ${SAVECONF}
|
||||
rm ${CONF}
|
||||
else
|
||||
echo > ${SAVECONF}
|
||||
# Try restorecon
|
||||
fix_context ${SAVECONF}
|
||||
fi
|
||||
}
|
||||
|
||||
nis_config() {
|
||||
if [ ! "${PEERNIS}" = "no" ]; then
|
||||
if [ -n "${new_nis_domain}" ]; then
|
||||
domainname "${new_nis_domain}"
|
||||
save_config_file
|
||||
echo '# generated by /sbin/dhclient-script' > ${CONF}
|
||||
fix_context ${CONF}
|
||||
|
||||
if [ -n "${new_nis_servers}" ]; then
|
||||
for i in ${new_nis_servers} ; do
|
||||
echo "domain ${new_nis_domain} server ${i}" >> ${CONF}
|
||||
done
|
||||
else
|
||||
echo "domain ${new_nis_domain} broadcast" >> ${CONF}
|
||||
fi
|
||||
|
||||
elif [ -n "${new_nis_servers}" ]; then
|
||||
save_config_file
|
||||
echo '# generated by /sbin/dhclient-script' > ${CONF}
|
||||
fix_context ${CONF}
|
||||
|
||||
for i in ${new_nis_servers} ; do
|
||||
echo "ypserver ${i}" >> ${CONF}
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
# dimainname or servers changed, restart ypbind
|
||||
if [ "${old_nis_domain}" != "${new_nis_domain}" ] \
|
||||
|| [ "${old_nis_servers}" != "${new_nis_servers}" ]
|
||||
then
|
||||
service ypbind condrestart >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
nis_restore() {
|
||||
if [ ! "${PEERNIS}" = "no" ]; then
|
||||
if [ -f ${SAVECONF} ]; then
|
||||
rm -f ${CONF}
|
||||
# cp+rm instead of mv: preserve SELinux context
|
||||
# rhbz#509240
|
||||
cp -c ${SAVECONF} ${CONF}
|
||||
rm ${SAVECONF}
|
||||
fix_context ${CONF} # Restorecon again to be sure.
|
||||
service ypbind condrestart >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Local Variables:
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 4
|
||||
# show-trailing-whitespace: t
|
||||
# End:
|
||||
12
ypbind-1.11-gettextdomain.patch
Normal file
12
ypbind-1.11-gettextdomain.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up ./po/Makevars.gettextdomain ./po/Makevars
|
||||
--- ./po/Makevars.gettextdomain 2004-01-14 20:25:25.000000000 +0100
|
||||
+++ ./po/Makevars 2013-05-06 19:07:24.961484803 +0200
|
||||
@@ -1,7 +1,7 @@
|
||||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
-DOMAIN = $(PACKAGE)
|
||||
+DOMAIN = ypbind
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
10
ypbind-2.4-gettext_version.patch
Normal file
10
ypbind-2.4-gettext_version.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/configure.ac.gettext_version 2016-03-02 15:10:26.000000000 +0100
|
||||
+++ b/configure.ac 2017-02-15 13:39:12.295019148 +0100
|
||||
@@ -59,7 +60,6 @@ JH_CHECK_XML_CATALOG([http://docbook.sou
|
||||
AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_man != xno)
|
||||
|
||||
dnl internationalization macros
|
||||
-AM_GNU_GETTEXT_VERSION
|
||||
AM_GNU_GETTEXT([external])
|
||||
|
||||
AC_OUTPUT(Makefile lib/Makefile src/Makefile man/Makefile po/Makefile.in)
|
||||
BIN
ypbind-mt-2.6.tar.gz
Normal file
BIN
ypbind-mt-2.6.tar.gz
Normal file
Binary file not shown.
57
ypbind-post-waitbind
Normal file
57
ypbind-post-waitbind
Normal file
@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# ypbind-domain
|
||||
#
|
||||
# description: This is part of former ypbind init script, which is used
|
||||
# to fix problems with the init scripts continuing even when
|
||||
# we are really not bound yet to a server, and then things
|
||||
# that need NIS fail.
|
||||
#
|
||||
|
||||
# NISTIMEOUT should be a multiple of 15 since
|
||||
# ypwhich has a hardcoded 15sec timeout
|
||||
[ -z "$NISTIMEOUT" ] && NISTIMEOUT=45
|
||||
|
||||
logger -t ypbind $"Binding NIS service"
|
||||
|
||||
timeout=$NISTIMEOUT
|
||||
firsttime=1
|
||||
rpcbound=0
|
||||
SECONDS=0
|
||||
retval=0
|
||||
while [ $SECONDS -lt $timeout ] || [ $firsttime -eq 1 ] ; do
|
||||
firsttime=0
|
||||
if /usr/sbin/rpcinfo -p | LC_ALL=C fgrep -q ypbind
|
||||
then
|
||||
rpcbound=1
|
||||
/usr/bin/ypwhich > /dev/null 2>&1
|
||||
retval=$?
|
||||
if [ $retval -eq 0 ]; then
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
|
||||
logger -t ypbind "Binding took $SECONDS seconds"
|
||||
|
||||
if [ $retval -eq 0 ]; then
|
||||
if [ $rpcbound -eq 0 ]; then
|
||||
logger -t ypbind \
|
||||
"NIS domain: `domainname`, ypbind not registered with rpcbind."
|
||||
else
|
||||
logger -t ypbind \
|
||||
"NIS domain: `domainname`, NIS server: `ypwhich 2> /dev/null`"
|
||||
fi
|
||||
else
|
||||
logger -t ypbind \
|
||||
"NIS server for domain `domainname` is not responding."
|
||||
logger -t ypbind \
|
||||
"Killing ypbind with PID $MAINPID."
|
||||
kill -s 15 $MAINPID || :
|
||||
logger -t ypbind \
|
||||
"Try increase NISTIMEOUT in /etc/sysconfig/ypbind"
|
||||
fi
|
||||
|
||||
exit $retval
|
||||
|
||||
44
ypbind-pre-setdomain
Normal file
44
ypbind-pre-setdomain
Normal file
@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# ypbind-domain
|
||||
#
|
||||
# description: This is part of former ypbind init script, which is used
|
||||
# to setup proper domainname before starting ypbind daemon
|
||||
# itself. If $NISDOMAIN is not defined, it reads config file.
|
||||
#
|
||||
|
||||
TIMEOUT=5
|
||||
DOMAINNAME=`domainname`
|
||||
if [ "$DOMAINNAME" = "(none)" -o "$DOMAINNAME" = "" ]; then
|
||||
echo -n $"Setting NIS domain: "
|
||||
seconds=0
|
||||
while [ $seconds -lt $TIMEOUT ]; do
|
||||
if [ -n "$NISDOMAIN" ]; then
|
||||
domainname $NISDOMAIN
|
||||
echo $"'$NISDOMAIN' (environment variable)"
|
||||
break
|
||||
else # See if the domain is set in config file
|
||||
NISDOMAIN=`awk '{ if ($1 == "domain") {print $2; exit} }' /etc/yp.conf`
|
||||
if [ -n "$NISDOMAIN" ]; then
|
||||
domainname $NISDOMAIN
|
||||
echo $"'$NISDOMAIN' (/etc/yp.conf)"
|
||||
break
|
||||
else
|
||||
seconds=$(($seconds+1))
|
||||
sleep 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# Give up if NISDOMAIN is still not set
|
||||
[ -z "$NISDOMAIN" ] && logger -t ypbind $"domain not found" && exit 1
|
||||
fi
|
||||
|
||||
#/etc/rpc check
|
||||
grep ypbind /etc/rpc > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
logger -t ypbind $"Error: Missing ypbind entry in /etc/rpc."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
22
ypbind.service
Normal file
22
ypbind.service
Normal file
@ -0,0 +1,22 @@
|
||||
# For details how to adjust this file or change daemon settings, please, read ypbind(8).
|
||||
[Unit]
|
||||
Description=NIS/YP (Network Information Service) Clients to NIS Domain Binder
|
||||
Requires=rpcbind.service
|
||||
Wants=nss-user-lookup.target network-online.target
|
||||
After=syslog.target rpcbind.service ypserv.service
|
||||
Before=systemd-user-sessions.service
|
||||
Before=nss-user-lookup.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
NotifyAccess=all
|
||||
EnvironmentFile=-/etc/sysconfig/network
|
||||
EnvironmentFile=-/etc/sysconfig/ypbind
|
||||
ExecStartPre=/usr/libexec/ypbind-pre-setdomain
|
||||
ExecStartPre=-/usr/sbin/setsebool allow_ypbind=1
|
||||
ExecStart=/usr/sbin/ypbind -n $OTHER_YPBIND_OPTS
|
||||
ExecStartPost=/usr/libexec/ypbind-post-waitbind
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
97
ypbind.spec
Normal file
97
ypbind.spec
Normal file
@ -0,0 +1,97 @@
|
||||
Name: ypbind
|
||||
Epoch: 3
|
||||
Version: 2.6
|
||||
Release: 3
|
||||
Summary: NIS binding software
|
||||
License: GPLv2
|
||||
URL: http://www.linux-nis.org/nis/ypbind-mt/index.html
|
||||
Source0: https://github.com/thkukuk/ypbind-mt/archive/v%{version}.tar.gz#/ypbind-mt-%{version}.tar.gz
|
||||
Source1: nis.sh
|
||||
Source2: ypbind.service
|
||||
Source3: ypbind-pre-setdomain
|
||||
Source4: ypbind-post-waitbind
|
||||
Patch0: ypbind-1.11-gettextdomain.patch
|
||||
Patch2: ypbind-2.4-gettext_version.patch
|
||||
|
||||
BuildRequires: git gcc systemd automake autoconf libxslt
|
||||
BuildRequires: dbus-glib-devel systemd-devel docbook-style-xsl
|
||||
BuildRequires: libtirpc-devel libnsl2-devel gettext-devel
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
Requires: rpcbind nss_nis yp-tools >= 4.2.2-2
|
||||
|
||||
%description
|
||||
This package helps create and maintain a binding to a YP server.
|
||||
It can finds the server for a YP domain and stores the information
|
||||
about it.
|
||||
|
||||
%package help
|
||||
Summary: Doc files for ypbind
|
||||
Buildarch: noarch
|
||||
|
||||
%description help
|
||||
The help package contains doc files for ypbind.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-mt-%{version} -p1 -S git
|
||||
autoreconf -fiv
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fpic"
|
||||
export LDFLAGS="$LDFLAGS -pie -Wl,-z,relro,-z,now"
|
||||
|
||||
%configure
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
|
||||
mkdir -p %{buildroot}/%{_libexecdir}
|
||||
mkdir -p %{buildroot}/%{_unitdir}
|
||||
mkdir -p %{buildroot}/%{_sysconfdir}/dhcp/dhclient.d
|
||||
mkdir -p %{buildroot}/%{_localstatedir}/yp/binding
|
||||
install -m 755 %{SOURCE1} %{buildroot}/%{_sysconfdir}/dhcp/dhclient.d/nis.sh
|
||||
install -m 644 %{SOURCE2} %{buildroot}/%{_unitdir}/ypbind.service
|
||||
install -m 755 %{SOURCE3} %{buildroot}/%{_libexecdir}/ypbind-pre-setdomain
|
||||
install -m 755 %{SOURCE4} %{buildroot}/%{_libexecdir}/ypbind-post-waitbind
|
||||
install -m 644 etc/yp.conf %{buildroot}/%{_sysconfdir}/yp.conf
|
||||
%{find_lang} %{name}
|
||||
|
||||
%post
|
||||
%systemd_post %{name}.service
|
||||
|
||||
%preun
|
||||
%systemd_preun %{name}.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart %{name}.service
|
||||
|
||||
%files -f %{name}.lang
|
||||
%license COPYING
|
||||
%config(noreplace) %{_sysconfdir}/yp.conf
|
||||
%{_sysconfdir}/dhcp/dhclient.d/nis.sh
|
||||
%{_unitdir}/%{name}.service
|
||||
%{_sbindir}/%{name}
|
||||
%{_libexecdir}/%{name}*
|
||||
%dir %{_localstatedir}/yp/binding
|
||||
|
||||
%files help
|
||||
%doc README NEWS
|
||||
%{_mandir}/*/*
|
||||
|
||||
%changelog
|
||||
* Tue Dec 31 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.6-3
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:optimization the spec
|
||||
|
||||
* Thu Nov 7 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.6-2
|
||||
- Type:enhancement
|
||||
- Id:NA
|
||||
- SUG:NA
|
||||
- DESC:modify the release
|
||||
|
||||
* Mon Sep 9 2019 luhuaxin <luhuaxin@huawei.com> - 2.6-1
|
||||
- Package init
|
||||
Loading…
x
Reference in New Issue
Block a user