File sysconfig.spec of Package sysconfig
#
# spec file for package sysconfig
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: sysconfig
Version: 0.72.6
Release: 2.<RELEASE8>
Summary: The sysconfig scheme
Group: System/Base
License: GPLv2+
AutoReqProv: on
PreReq: %fillup_prereq %insserv_prereq textutils fileutils gawk sed grep
Requires: iproute2 dbus-1 hal procps
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: %name-%version.tar.bz2
Patch1: sysconfig-attr-in-convert_persistent_name_rules.bnc546575.diff
Patch2: sysconfig-allow-ifup-lo-in-nm-flow.bnc547620.diff
Patch3: sysconfig-no-wireless-ap-for-wl-driver.bnc555774.diff
Patch4: sysconfig-avoid-pcmcia-prod_id-err-msg.bnc551640.diff
Patch5: sysconfig-ifup-dhcp-running-detection.bnc562030.diff
Patch6: sysconfig-ifup-dhcp-dhcpcd-config-sync.bnc518219.diff
Patch7: sysconfig-ifup-tunnel-allow-existing-tap.bnc557864.diff
Patch8: sysconfig-udevmountd-don-t-handle-crypto-devices.bnc568577.diff
Patch9: sysconfig-same-vlan-id-on-multiple-ifaces.bnc572186.diff
Patch10: sysconfig-ifstatus-route-skip-foreign-routes.bnc572205.diff
Patch11: sysconfig-ifplugd-selectif-carrier-error-reporting.bnc637183.diff
Patch12: sysconfig-Fixed-order-of-addr-flush-and-link-down-in-ifdown.patch
Patch14: sysconfig-CVE-2011-4182-fixed-quoting-in-ifservices-script.patch
Patch15: sysconfig-Disabled-bash-posix-mode-to-allow-bash-features.patch
%description
This package provides the SuSE system configuration scheme.
Authors:
--------
Olaf Kirch <okir@suse.de>
Bjoern Jacke <bjoern@j3e.de>
Mads Martin Joergensen <mmj@suse.de>
Peter Poeml <poeml@suse.de>
Arvin Schnell <arvin@suse.de>
Michal Svec <msvec@suse.cz>
Christian Zoz <zoz@suse.de>
Werner Fink <werner@suse.de>
Marius Tomaschewski <mt@suse.de>
%prep
%setup -n sysconfig-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p0
%patch14 -p1
%patch15 -p1
%build
autoreconf --force --install
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC" \
./configure --prefix=/ \
--sbindir=/sbin \
--libdir=/%_lib \
--libdir=/usr/%_lib \
--sysconfdir=%_sysconfdir \
--mandir=%_mandir \
--with-fillup-templatesdir=/var/adm/fillup-templates
%{__make}
%check
make check
%clean
rm -rf $RPM_BUILD_ROOT
%install
make DESTDIR=$RPM_BUILD_ROOT install
# This directory is not used since some time (was used for ifup locking)
mkdir -p $RPM_BUILD_ROOT/var/lock/subsys/sysconfig
touch $RPM_BUILD_ROOT/etc/sysconfig/network/config
touch $RPM_BUILD_ROOT/etc/sysconfig/network/dhcp
# install udevmountd
mkdir -p $RPM_BUILD_ROOT/lib/udev
mv $RPM_BUILD_ROOT/sbin/udevmountd $RPM_BUILD_ROOT/lib/udev
# remove template dir
rm -rf $RPM_BUILD_ROOT/etc/sysconfig/network/ifservices.template/
%files
%defattr(-,root,root)
/etc/init.d/*
%ghost /etc/sysconfig/network/config
%ghost /etc/sysconfig/network/dhcp
%config(noreplace) /etc/sysconfig/network/ifcfg-lo
%config(noreplace) /etc/sysconfig/network/ifroute-lo
%config(noreplace) /etc/ppp/ip-up
%config(noreplace) /etc/ppp/ip-down
%config(noreplace) /etc/ppp/ipv6-up
%config(noreplace) /etc/ppp/ipv6-down
%dir /etc/udev
%dir /etc/udev/rules.d
%config /etc/udev/rules.d/77-network.rules
%config /etc/udev/rules.d/81-mount.rules
%dir /lib/udev
/lib/udev/udevmountd
%dir /etc/modprobe.d
%config /etc/modprobe.d/50-blacklist.conf
%config(noreplace) /etc/modprobe.d/50-ipv6.conf
/etc/sysconfig/network/ifcfg.template
/etc/sysconfig/network/scripts/*
/etc/sysconfig/hardware
/etc/netconfig.d
/etc/ppp/poll.tcpip
/etc/NetworkManager
/sbin/*
%doc /usr/share/doc/packages/sysconfig
%_mandir/*/*
/usr/share/omc/svcinfo.d/network.xml
/var/adm/fillup-templates/sysconfig.dhcp-network
/var/adm/fillup-templates/sysconfig.config-network
%dir /var/lock/subsys/sysconfig
%pre
if [ -f etc/sysconfig/hardware ] ; then
mv etc/sysconfig/hardware etc/sysconfig/ide
fi
# package update ?
if [ ${1:-0} -gt 1 ]; then
# conversion of persistent name rules
if [ -f /etc/udev/rules.d/30-net_persistent_names.rules ] ; then
mv -v /etc/udev/rules.d/30-net_persistent_names.rules \
/etc/udev/rules.d/30-net_persistent_names.rules.to_convert
fi
# if oldversion < 0.70.0
touch etc/sysconfig/network/__convert_hwdesc_to_iface__
# fi
# update to >= 0.72.1
if [ ! -f etc/sysconfig/network/scripts/move_shm_sysconfig.sh ] ; then
touch etc/sysconfig/network/__move_shm_sysconfig__
fi
fi
%post
# * update to >= 0.72.1: before anything else, move state
# files from dev/shm/sysconfig to dev/.sysconfig/network
if [ -f etc/sysconfig/network/__move_shm_sysconfig__ ] ; then
etc/sysconfig/network/scripts/move_shm_sysconfig.sh .
rm -f etc/sysconfig/network/__move_shm_sysconfig__
fi
pushd etc/sysconfig/network >/dev/null
for i in ifcfg-ppp* ifcfg-ippp* ifcfg-dsl* ifcfg-modem* ; do
case $i in
ifcfg-ippp\*|ifcfg-ppp\*|ifcfg-dsl\*|ifcfg-modem\*)
# drop no matching file
continue ;;
*~*|*.*)
# drop backup files, rpm{save,new,orig}
continue ;;
ifcfg-ippp*|ifcfg-ppp*|ifcfg-dsl*|ifcfg-modem*)
# optfile
grep -q -s "^USERCONTROL" $i
if [ $? -ne 0 ] ; then
echo "USERCONTROL=\"yes\"" >> $i
fi
;;
esac
done
popd >/dev/null
if [ -d etc/sysconfig/isdn ]; then
pushd etc/sysconfig/isdn >/dev/null
for i in cfg-net* ; do
case $i in
cfg-net\*)
# drop no matching file
continue ;;
*~*|*.*)
# drop backup files, rpm{save,new,orig}
continue ;;
cfg-net*)
PROTOCOL=""
proto=`grep "^PROTOCOL" $i`
eval $proto
if [ "$PROTOCOL" = "syncppp" ] ; then
grep -q -s "^USERCONTROL" $i
if [ $? -ne 0 ] ; then
echo "USERCONTROL=\"yes\"" >> $i
fi
fi
;;
esac
done
popd >/dev/null
fi
# conversion of persistent name rules
if [ -f /etc/udev/rules.d/30-net_persistent_names.rules.to_convert ] ; then
etc/sysconfig/network/scripts/convert_persistent_name_rules
fi
# convert hwdescs to interface names in config filenames and variables
if [ -f etc/sysconfig/network/__convert_hwdesc_to_iface__ ] ; then
pushd etc/sysconfig/network
scripts/hwdesc2iface netconfig .
for cf in ifcfg-*; do
scripts/hwdesc2iface $cf
done
if [ -f ../SuSEfirewall2 ] ; then
scripts/hwdesc2iface ../SuSEfirewall2 FW_DEV_
fi
rm -f __convert_hwdesc_to_iface__
popd
fi
#
pushd /etc/sysconfig/hardware > /dev/null
for cfg in hwcfg-*-ccw-* hwcfg-*-iucv-* ; do
[ -f $cfg ] && bash ./hwcfg2rules $cfg
done
popd > /dev/null
#
## we provide own, improved variant of the remove_and_set suse
## rpm macro that is able to handle files in subdirs, and more
. etc/sysconfig/network/scripts/functions.rpm-utils
#
%{fillup_and_insserv -fY network}
%{fillup_and_insserv -fY network-remotefs}
# remove first, we need the new default value
sysconfig_remove_and_set network/dhcp DHCLIENT_TIMEOUT
%{fillup_only -dns dhcp network network}
%{fillup_only -dns config network network}
/sbin/ldconfig
echo "Removing old autogenerated device configuration files:"
rm -vf $(grep -sl "HOTPLUG-FLAG: *autocreated" /etc/sysconfig/hardware/hwcfg-*)
sysconfig_remove_and_set storage HOTPLUG_MOUNT_FSTAB HOTPLUG_CHECK_FILESYSTEMS
#
# * update to >= 11.1 / SLE11:
#
# convert dns / modify_resolvconf to netconfig
if [ -e etc/sysconfig/network/scripts/convert_to_netconfig_dns ] ; then
ROOT=$PWD bash etc/sysconfig/network/scripts/convert_to_netconfig_dns
fi
# convert nis / dhclient variables to netconfig
if [ -e etc/sysconfig/network/scripts/convert_to_netconfig_nis ] ; then
ROOT=$PWD bash etc/sysconfig/network/scripts/convert_to_netconfig_nis
fi
# remove ntp variables obsoleted by netconfig (new default is "yes")
# as well as some another obsolete dhcp variables
_umask=`umask`
for file in etc/sysconfig/network/dhcp etc/sysconfig/network/ifcfg-* ; do
name="${file##*\/ifcfg-}"
case $name in
(lo|""|*" "*|*~|*.old|*.rpmnew|*.rpmsave|*.scpmbackup) continue ;;
esac
case $file in
(*/ifcfg-*) umask 0177 ;;
esac
sysconfig_remove_and_set -b "" $file \
DHCLIENT_MODIFY_NTP_CONF \
DHCLIENT_ADDITIONAL_OPTIONS \
DHCLIENT_SCRIPT_EXE
umask $_umask
done
# erroneous move from network/dhcp to network/config while 11.1 beta
sysconfig_remove_and_set network/config WRITE_HOSTNAME_TO_HOSTS
#
# * update to >= 11.2
#
# move ipv6 settings created by yast2-network before 11.2
if test -f etc/modprobe.d/ipv6 ; then
mv -f etc/modprobe.d/ipv6 etc/modprobe.d/50-ipv6.conf
fi
# be a little bit paranoid and set the correct mode even we set umask
chmod 0600 etc/sysconfig/network/ifcfg-*
%postun
%{insserv_cleanup}
/sbin/ldconfig
%preun
%{stop_on_removal network}
%changelog