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

%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

%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
openSUSE Build Service is sponsored by