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