diff --git a/.gitignore b/.gitignore index 7f32732..0edb983 100644 --- a/.gitignore +++ b/.gitignore @@ -11,55 +11,3 @@ /initscripts-9.54.tar.bz2 /initscripts-9.55.tar.bz2 /initscripts-9.56.1.tar.bz2 -/initscripts-9.58.tar.bz2 -/initscripts-9.59.tar.bz2 -/initscripts-9.60.tar.bz2 -/initscripts-9.61.tar.bz2 -/initscripts-9.62.tar.bz2 -/initscripts-9.63.tar.bz2 -/initscripts-9.64.tar.bz2 -/initscripts-9.65.tar.bz2 -/initscripts-9.66.tar.bz2 -/initscripts-9.67.tar.bz2 -/initscripts-9.68.tar.bz2 -/initscripts-9.69.tar.bz2 -/initscripts-9.70.tar.gz -/initscripts-9.71.tar.gz -/initscripts-9.72.tar.gz -/initscripts-9.74.tar.gz -/initscripts-9.75.tar.gz -/initscripts-9.76.tar.gz -/initscripts-9.77.tar.gz -/initscripts-9.78.tar.gz -/initscripts-9.79.tar.gz -/initscripts-9.80.tar.gz -/initscripts-9.81.tar.gz -/initscripts-9.82.tar.gz -/initscripts-9.83.tar.gz -/initscripts-10.00.tar.gz -/initscripts-10.01.tar.gz -/initscripts-10.02.tar.gz -/initscripts-10.03.tar.gz -/initscripts-10.04.tar.gz -/initscripts-10.05.tar.gz -/initscripts-10.06.tar.gz -/initscripts-10.07.tar.gz -/initscripts-10.08.tar.gz -/initscripts-10.09.tar.gz -/initscripts-10.10.tar.gz -/initscripts-10.11.tar.gz -/initscripts-10.12.tar.gz -/initscripts-10.13.tar.gz -/initscripts-10.14.tar.gz -/initscripts-10.15.tar.gz -/initscripts-10.16.tar.gz -/initscripts-10.17.tar.gz -/initscripts-10.18.tar.gz -/initscripts-10.19.tar.gz -/initscripts-10.20.tar.gz -/initscripts-10.21.tar.gz -/initscripts-10.23.tar.gz -/initscripts-10.24.tar.gz -/initscripts-10.25.tar.gz -/initscripts-10.26.tar.gz -/initscripts-10.27.tar.gz diff --git a/0001-adjust-LINKDELAY-when-STP-is-on.patch b/0001-adjust-LINKDELAY-when-STP-is-on.patch new file mode 100644 index 0000000..e08f242 --- /dev/null +++ b/0001-adjust-LINKDELAY-when-STP-is-on.patch @@ -0,0 +1,63 @@ +From 6708502ce8724feb143e5a97af43687cec901c99 Mon Sep 17 00:00:00 2001 +From: Laine Stump +Date: Tue, 11 Nov 2014 14:13:22 -0500 +Subject: [PATCH] adjust LINKDELAY when STP is on + +This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1162822 + +When ifup is called on an interface that has BOOTPROTO=dhcp, ifup-eth +will call network-functions:check_link_down() to wait for carrier on +the interface before starting dhclient. If the interface happens to be +a bridge device, carrier will not come on until at least one attached +device is in "forwarding" mode. If the bridge has STP enabled, it +takes at least $DELAY * 2 + 5 seconds (sometimes slightly longer) for +any attached device to go into forwarding mode. + +However, check_link_down() will only wait for max(${LINKDELAY}, 5) +seconds for carrier, and there are *many* existing configs that have +STP enabled but no setting for LINKDELAY. Every one of those configs +will now fail to ifup the bridge device. + +The solution implemented in this patch is for ifup-eth to set +LINKDELAY to at least ${DELAY} * 2 + 7 when the device is a bridge an +STP is enabled. Since check_link_down() returns within .5 sec of +carrier coming up, the worst effect this could have would be to take +longer to fail in the case of a config where carrier was *never* going +to come up. Otherwise, it will not create any more delay than is +already present in cases that currently work, and will cause many +other configs to become unbroken. +--- + sysconfig/network-scripts/ifup-eth | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth +index c8154dc..1ee026b 100755 +--- a/sysconfig/network-scripts/ifup-eth ++++ b/sysconfig/network-scripts/ifup-eth +@@ -1,6 +1,6 @@ + #!/bin/bash + # Network Interface Configuration System +-# Copyright (c) 1996-2010 Red Hat, Inc. all rights reserved. ++# Copyright (c) 1996-2014 Red Hat, Inc. all rights reserved. + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License, version 2, +@@ -64,6 +64,15 @@ if [ "${TYPE}" = "Bridge" ]; then + value=${arg##*=}; + echo $value > /sys/class/net/${DEVICE}/bridge/$key + done ++ # set LINKDELAY (used as timeout when calling check_link_down()) ++ # to at least (${DELAY} * 2) + 7 if STP is enabled. This is the ++ # minimum time required for /sys/class/net/$REALDEVICE/carrier to ++ # become 1 after "ip link set dev $DEVICE up" is called. ++ if [ "${STP}" = "yes" -o "${STP}" = "on" ]; then ++ TMPD=7 ++ [ -n "${DELAY}" ] && TMPD=$(expr ${DELAY} \* 2 + ${TMPD}) ++ [ 0$LINKDELAY -lt $TMPD ] && LINKDELAY=$TMPD ++ fi + fi + + # Create tap device. +-- +1.8.3.1 + diff --git a/0001-ifdown-ipv6-reset-addrgenmode-to-eui64-for-device.patch b/0001-ifdown-ipv6-reset-addrgenmode-to-eui64-for-device.patch new file mode 100644 index 0000000..ae7ef6f --- /dev/null +++ b/0001-ifdown-ipv6-reset-addrgenmode-to-eui64-for-device.patch @@ -0,0 +1,24 @@ +From 7e548d51df2b8df098bc7584ad75258ac7064509 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 16 Dec 2014 14:12:36 +0100 +Subject: [PATCH] ifdown-ipv6: reset addrgenmode to eui64 for device + +--- + sysconfig/network-scripts/ifdown-ipv6 | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/sysconfig/network-scripts/ifdown-ipv6 b/sysconfig/network-scripts/ifdown-ipv6 +index 7bfcfb3..d2207b7 100755 +--- a/sysconfig/network-scripts/ifdown-ipv6 ++++ b/sysconfig/network-scripts/ifdown-ipv6 +@@ -66,6 +66,7 @@ fi + /sbin/sysctl -e -w net.ipv6.conf.$SYSCTLDEVICE.forwarding=0 >/dev/null 2>&1 + /sbin/sysctl -e -w net.ipv6.conf.$SYSCTLDEVICE.accept_ra=0 >/dev/null 2>&1 + /sbin/sysctl -e -w net.ipv6.conf.$SYSCTLDEVICE.accept_redirects=0 >/dev/null 2>&1 ++/sbin/ip link set $DEVICE addrgenmode eui64 >/dev/null 2>&1 + + # Test status of tun6to4 device + ipv6_test_device_status tun6to4 +-- +1.8.3.1 + diff --git a/0001-ifup-fix-typo.patch b/0001-ifup-fix-typo.patch new file mode 100644 index 0000000..234c78e --- /dev/null +++ b/0001-ifup-fix-typo.patch @@ -0,0 +1,25 @@ +From 2444fc5a4060e4f78059b1bff9fa37a10b6fd648 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 16 Dec 2014 12:14:08 +0100 +Subject: [PATCH] ifup: fix typo + +--- + sysconfig/network-scripts/ifup | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup +index 911707e..bb58685 100755 +--- a/sysconfig/network-scripts/ifup ++++ b/sysconfig/network-scripts/ifup +@@ -90,7 +90,7 @@ if [ "${VLAN}" = "yes" ] && [ "$ISALIAS" = "no" ] && [ -n $DEVICE ]; then + fi + MATCH='^vlan[0-9]{1,4}?' + if [[ "${DEVICE}" =~ $MATCH ]]; then +- VID=$(echo "${DEVICE}" | LC_ALL=C sed 's/^vlan0*//'): ++ VID=$(echo "${DEVICE}" | LC_ALL=C sed 's/^vlan0*//') + # PHYSDEV should be set in ifcfg-vlan* file + if test -z "$PHYSDEV"; then + net_log $"PHYSDEV should be set for device ${DEVICE}" +-- +1.8.3.1 + diff --git a/0001-ifup-vlan-fix-typo.patch b/0001-ifup-vlan-fix-typo.patch new file mode 100644 index 0000000..30ece47 --- /dev/null +++ b/0001-ifup-vlan-fix-typo.patch @@ -0,0 +1,25 @@ +From ca531a88a9dfb8675a908bae8af49e81f061baef Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 8 Jul 2014 13:18:29 +0200 +Subject: [PATCH] ifup,vlan: fix typo + +--- + sysconfig/network-scripts/ifup | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup +index f2a1c8f..911707e 100755 +--- a/sysconfig/network-scripts/ifup ++++ b/sysconfig/network-scripts/ifup +@@ -76,7 +76,7 @@ fi + + # Ethernet 802.1Q VLAN support + if [ "${VLAN}" = "yes" ] && [ "$ISALIAS" = "no" ] && [ -n $DEVICE ]; then +- if [ -n ${VID} ]; then ++ if [ -n "${VID}" ]; then + if test -z "$PHYSDEV"; then + net_log $"PHYSDEV should be set for device ${DEVICE}" + exit 1 +-- +1.8.3.1 + diff --git a/0001-improve_check_for_bond_master_in_install_bonding_dri.patch b/0001-improve_check_for_bond_master_in_install_bonding_dri.patch new file mode 100644 index 0000000..cdd1e0d --- /dev/null +++ b/0001-improve_check_for_bond_master_in_install_bonding_dri.patch @@ -0,0 +1,56 @@ +From 30ecd15eb772de10f9c2f94cc9bad4eac5439d24 Mon Sep 17 00:00:00 2001 +From: Ashish Samant +Date: Wed, 29 Oct 2014 17:47:29 -0700 +Subject: [PATCH] improve_check_for_bond_master_in_install_bonding_driver + +The current grep check (fgrep -sqx) in install_bonding_driver, to determine +whether bond master exists, fails when there are multiple bond masters. +The fix assumes that multiple bond masters are on different lines in the file +"/sys/class/net/bonding_masters", while they are in fact on the same line. +Since fgrep -sqx checks for the entire line,it will never match any one bond +master within the line and always fail if there are multiple bonds. + +This patch improves the check by creating a new function, bond_master_exists() +to handle this and other conditions. + +Orabug: 19897586 + +Signed-off-by: Ashish Samant +Signed-off-by: John Haxby +Acked-by: Mukesh Kacker +--- + sysconfig/network-scripts/network-functions | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions +index 0e86efd..e6273bb 100644 +--- a/sysconfig/network-scripts/network-functions ++++ b/sysconfig/network-scripts/network-functions +@@ -458,10 +458,22 @@ phy_wireless_device () + cat /sys/class/net/$1/phy80211/name + } + ++bond_master_exists () ++{ ++ local bond_name ++ [ -z "${1}" ] && return 1 ++ [ ! -f /sys/class/net/bonding_masters ] && return 1 ++ ++ for bond_name in $(< /sys/class/net/bonding_masters); do ++ [ "${bond_name}" == "${1}" ] && return 0 ++ done ++ return 1 ++} ++ + install_bonding_driver () + { +- [ ! -f /sys/class/net/bonding_masters ] && ( modprobe bonding || return 1 ) +- if ! fgrep -sqx "$1" /sys/class/net/bonding_masters; then ++ if ! bond_master_exists ${1}; then ++ modprobe bonding || return 1 + echo "+$1" > /sys/class/net/bonding_masters 2>/dev/null + fi + ( +-- +1.8.3.1 + diff --git a/0001-network-functions-is_available_wait-should-wait-even.patch b/0001-network-functions-is_available_wait-should-wait-even.patch new file mode 100644 index 0000000..327f06e --- /dev/null +++ b/0001-network-functions-is_available_wait-should-wait-even.patch @@ -0,0 +1,38 @@ +From 1f230a3d2e2733e30577c91645005801ab2c0f40 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Mon, 12 Jan 2015 12:49:46 +0100 +Subject: [PATCH] network-functions: is_available_wait should wait even in the + case that is_available returns 2 + +--- + sysconfig/network-scripts/network-functions | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions +index 1ecbcfc..9a5e359 100644 +--- a/sysconfig/network-scripts/network-functions ++++ b/sysconfig/network-scripts/network-functions +@@ -336,18 +336,16 @@ is_available_wait () + + local retry=${2##*[!0-9]*} + +- is_available $1 ++ is_available $1 && return 0 + ret=$? + +- [ 0"$ret" -ne 1 ] && return $ret +- + while [ 0"$retry" -gt 0 ]; do + sleep 1 + [ -d "/sys/class/net/$1" ] && return 0 + retry=$(($retry -1)) + done + +- return 1 ++ return $ret + } + + need_hostname () +-- +1.8.3.1 + diff --git a/README.md b/README.md deleted file mode 100644 index c4d7518..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Additional information - -Check upstream's [README.md](https://github.com/fedora-sysv/initscripts/blob/master/README.md) for more info. diff --git a/initscripts.spec b/initscripts.spec index 6dcbe5c..e418b12 100644 --- a/initscripts.spec +++ b/initscripts.spec @@ -1,812 +1,228 @@ -# === GLOBAL MACROS =========================================================== - -# According to Fedora Package Guidelines, it is advised that packages that can -# process untrusted input are build with position-idenpendent code (PIC). -# -# Koji should override the compilation flags and add the -fPIC or -fPIE flags by -# default. This is here just in case this wouldn't happen for some reason. -# For more info: https://fedoraproject.org/wiki/Packaging:Guidelines#PIE -%global _hardened_build 1 - -%global shared_requirements \ -Requires: bash \ -Requires: filesystem >= 3 \ -Requires: coreutils \ -Requires: gawk \ - -# ============================================================================= - -Name: initscripts -Summary: Basic support for legacy System V init scripts -Version: 10.27 -Release: 1%{?dist} - -License: GPL-2.0-only - -URL: https://github.com/fedora-sysv/initscripts -Source: https://github.com/fedora-sysv/initscripts/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz - -%shared_requirements - -Requires: findutils -Requires: grep -Requires: procps-ng -Requires: setup -Requires: systemd -Requires: util-linux -Requires: chkconfig -Requires: initscripts-service -Requires: initscripts-rename-device - -Requires(pre): shadow-utils -Requires(post): coreutils - -BuildRequires: filesystem >= 3 -BuildRequires: gcc -BuildRequires: git -BuildRequires: gettext -BuildRequires: glib2-devel -BuildRequires: pkgconfig -BuildRequires: popt-devel -BuildRequires: setup -BuildRequires: make - -%{?systemd_requires} -BuildRequires: systemd - -Obsoletes: %{name} < 10.16-1 -Obsoletes: network-scripts < 10.25-1 - -# === PATCHES ================================================================= - -# NOTE: 'autosetup' macro (below) uses 'git' for applying the patches: -# ->> All the patches should be provided in 'git format-patch' format. -# ->> Auxiliary repository will be created during 'fedpkg prep', you -# can see all the applied patches there via 'git log'. - -# Upstream patches -- official upstream patches released by upstream since the -# ---------------- last rebase that are necessary for any reason: -#Patch000: example000.patch - - -# Downstream patches -- these should be always included when doing rebase: -# ------------------ -#Patch100: example100.patch - - -# Downstream patches for RHEL -- patches that we keep only in RHEL for various -# --------------------------- reasons, but are not enabled in Fedora: -%if %{defined rhel} || %{defined centos} -#Patch200: example200.patch -%endif - - -# Patches to be removed -- deprecated functionality which shall be removed at -# --------------------- some point in the future: +Summary: Scripts to bring up network interfaces +Name: initscripts +Version: 9.56.1 +License: GPLv2 +Group: System Environment/Base +Release: 7%{?dist} +URL: http://fedorahosted.org/releases/i/n/initscripts/ +Source: http://fedorahosted.org/releases/i/n/initscripts/initscripts-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +Obsoletes: initscripts-legacy <= 9.39 +Requires: /bin/awk, sed, coreutils +Requires: grep +Requires: module-init-tools +Requires: util-linux >= 2.16 +Requires: bash >= 3.0 +Requires: procps-ng >= 3.3.8-16 +Conflicts: systemd < 216-3 +Conflicts: systemd-units < 23-1 +Conflicts: lvm2 < 2.02.98-3 +Conflicts: dmraid < 1.0.0.rc16-18 +Requires: systemd +Requires: iproute, /sbin/arping, findutils +# Not strictly required, but nothing else requires it +Requires: /etc/system-release +Requires: udev >= 125-1 +Requires: cpio +Requires: hostname +Conflicts: ipsec-tools < 0.8.0-2 +Conflicts: NetworkManager < 0.9.9.0-37.git20140131.el7 +Conflicts: ppp < 2.4.6-4 +Requires(pre): /usr/sbin/groupadd +Requires(post): /sbin/chkconfig, coreutils +Requires(preun): /sbin/chkconfig +BuildRequires: glib2-devel popt-devel gettext pkgconfig +Provides: /sbin/service +Patch1: 0001-ifup-vlan-fix-typo.patch +Patch2: 0001-adjust-LINKDELAY-when-STP-is-on.patch +Patch3: 0001-improve_check_for_bond_master_in_install_bonding_dri.patch +Patch4: 0001-ifdown-ipv6-reset-addrgenmode-to-eui64-for-device.patch +Patch5: 0001-ifup-fix-typo.patch +Patch6: 0001-network-functions-is_available_wait-should-wait-even.patch %description -This package provides basic support for legacy System V init scripts, and some -other legacy tools & utilities. +This package contains the script that activates and deactivates most +network interfaces, some utilities, and other legacy files. -# === SUBPACKAGES ============================================================= +%package -n debugmode +Summary: Scripts for running in debug mode +Requires: initscripts +Group: System Environment/Base -%package -n initscripts-rename-device -Summary: Udev helper utility that provides network interface naming +%description -n debugmode +The debugmode package contains some basic scripts that are used to run +the system in a debug mode. -%shared_requirements - -%description -n initscripts-rename-device -Udev helper utility that provides network interface naming - -# --------------- - -%package -n initscripts-service -Summary: Support for service command -BuildArch: noarch - -%shared_requirements - -Requires: systemd - -Provides: /sbin/service - -%description -n initscripts-service -This package provides service command. - -# --------------- - -%package -n netconsole-service -Summary: Service for initializing of network console logging -Requires: %{name} = %{version}-%{release} -BuildArch: noarch - -%shared_requirements - -Requires: glibc-common -Requires: iproute -Requires: iputils -Requires: kmod -Requires: sed -Requires: util-linux - -Obsoletes: %{name} < 9.82-2 - -%description -n netconsole-service -This packages provides a 'netconsole' service for loading of netconsole kernel -module with the configured parameters. The netconsole kernel module itself then -allows logging of kernel messages over the network. - -# --------------- - -%package -n readonly-root -Summary: Service for configuring read-only root support -Requires: %{name} = %{version}-%{release} -BuildArch: noarch - -%shared_requirements - -Requires: cpio -Requires: findutils -Requires: hostname -Requires: iproute -Requires: ipcalc -Requires: util-linux - -Obsoletes: %{name} < 9.82-2 - -%description -n readonly-root -This package provides script & configuration file for setting up read-only root -support. Additional configuration is required after installation. - -Please note that readonly-root package is considered deprecated with limited support. -Please use systemd-volatile-root functionality instead, if possible. - -# === BUILD INSTRUCTIONS ====================================================== +Currently, this consists of various memory checking code. %prep -%autosetup -S git - -# --------------- +%setup -q +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 %build -%make_build PYTHON=%{__python3} - -# --------------- +make %install -%make_install NO_NETWORK_SCRIPTS=true +rm -rf $RPM_BUILD_ROOT +make ROOT=$RPM_BUILD_ROOT SUPERUSER=`id -un` SUPERGROUP=`id -gn` mandir=%{_mandir} install -# This installs the NLS language files: %find_lang %{name} -%if "%{_sbindir}" == "%{_bindir}" -# Some files get installed wrong, but if $(sbindir) is overriden, the build fails :( -mv -v %{buildroot}/usr/sbin/* %{buildroot}%{_bindir}/ +%ifnarch s390 s390x +rm -f \ + $RPM_BUILD_ROOT/etc/sysconfig/network-scripts/ifup-ctc \ +%else +rm -f \ + $RPM_BUILD_ROOT/etc/sysconfig/init.s390 %endif -# ============================================================================= +rm -f $RPM_BUILD_ROOT/etc/rc.d/rc.local $RPM_BUILD_ROOT/etc/rc.local +touch $RPM_BUILD_ROOT/etc/rc.d/rc.local +chmod 755 $RPM_BUILD_ROOT/etc/rc.d/rc.local %post -%systemd_post import-state.service loadmodules.service +/usr/sbin/chkconfig --add network +/usr/sbin/chkconfig --add netconsole +if [ $1 -eq 1 ]; then + /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || : +fi %preun -%systemd_preun import-state.service loadmodules.service +if [ $1 = 0 ]; then + /usr/sbin/chkconfig --del network + /usr/sbin/chkconfig --del netconsole +fi + +%triggerun -- initscripts < 7.62 +/usr/sbin/chkconfig --del random +/usr/sbin/chkconfig --del rawdevices +exit 0 %postun -%systemd_postun import-state.service loadmodules.service +if [ $1 -ge 1 ]; then + /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || : +fi -# --------------- - -%post -n netconsole-service -%systemd_post netconsole.service - -%preun -n netconsole-service -%systemd_preun netconsole.service - -%postun -n netconsole-service -%systemd_postun netconsole.service - -# --------------- - -%post -n readonly-root -%systemd_post readonly-root.service - -%preun -n readonly-root -%systemd_preun readonly-root.service - -%postun -n readonly-root -%systemd_postun readonly-root.service - -# === PACKAGING INSTRUCTIONS ================================================== +%clean +rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang +%defattr(-,root,root) +%dir /etc/sysconfig/network-scripts +%config(noreplace) %verify(not md5 mtime size) /etc/adjtime +%config(noreplace) /etc/sysconfig/init +%config(noreplace) /etc/sysconfig/netconsole +%config(noreplace) /etc/sysconfig/readonly-root +/etc/sysconfig/network-scripts/ifdown +/usr/sbin/ifdown +/etc/sysconfig/network-scripts/ifdown-post +/etc/sysconfig/network-scripts/ifup +/usr/sbin/ifup +%dir /etc/sysconfig/console +%dir /etc/sysconfig/modules +/etc/sysconfig/network-scripts/network-functions +/etc/sysconfig/network-scripts/network-functions-ipv6 +/etc/sysconfig/network-scripts/init.ipv6-global +%config(noreplace) /etc/sysconfig/network-scripts/ifcfg-lo +/etc/sysconfig/network-scripts/ifup-post +/etc/sysconfig/network-scripts/ifup-routes +/etc/sysconfig/network-scripts/ifdown-routes +/etc/sysconfig/network-scripts/ifup-plip +/etc/sysconfig/network-scripts/ifup-plusb +/etc/sysconfig/network-scripts/ifup-bnep +/etc/sysconfig/network-scripts/ifdown-bnep +/etc/sysconfig/network-scripts/ifup-eth +/etc/sysconfig/network-scripts/ifdown-eth +/etc/sysconfig/network-scripts/ifup-ipv6 +/etc/sysconfig/network-scripts/ifdown-ipv6 +/etc/sysconfig/network-scripts/ifup-sit +/etc/sysconfig/network-scripts/ifdown-sit +/etc/sysconfig/network-scripts/ifup-tunnel +/etc/sysconfig/network-scripts/ifdown-tunnel +/etc/sysconfig/network-scripts/ifup-aliases +/etc/sysconfig/network-scripts/ifup-ippp +/etc/sysconfig/network-scripts/ifdown-ippp +/etc/sysconfig/network-scripts/ifup-wireless +/etc/sysconfig/network-scripts/ifup-isdn +/etc/sysconfig/network-scripts/ifdown-isdn +%ifarch s390 s390x +/etc/sysconfig/network-scripts/ifup-ctc +%endif +%config(noreplace) /etc/networks +/etc/rwtab +%dir /etc/rwtab.d +/etc/statetab +%dir /etc/statetab.d +/usr/lib/systemd/fedora-* +/usr/lib/systemd/system/* +%dir /etc/rc.d +%dir /etc/rc.d/rc[0-9].d +/etc/rc[0-9].d +%dir /etc/rc.d/init.d +/etc/rc.d/init.d/* +%ghost %verify(not md5 size mtime) %config(noreplace,missingok) /etc/rc.d/rc.local +/usr/lib/sysctl.d/00-system.conf +%exclude /etc/profile.d/debug* +/etc/profile.d/* +/usr/sbin/sys-unconfig +/usr/bin/ipcalc +/usr/bin/usleep +%attr(4755,root,root) /usr/sbin/usernetctl +/usr/sbin/consoletype +/usr/sbin/genhostid +/usr/sbin/sushell +%attr(2755,root,root) /usr/sbin/netreport +/usr/lib/udev/rules.d/* +/usr/lib/udev/rename_device +/usr/sbin/service +%{_mandir}/man*/* +%dir %attr(775,root,root) /var/run/netreport +%dir /etc/NetworkManager +%dir /etc/NetworkManager/dispatcher.d +/etc/NetworkManager/dispatcher.d/00-netreport +%doc sysconfig.txt sysvinitfiles static-routes-ipv6 ipv6-tunnel.howto ipv6-6to4.howto changes.ipv6 +%doc examples +%{!?_licensedir:%global license %%doc} %license COPYING -%doc doc/sysconfig.txt +/var/lib/stateless +%dir /usr/lib/tmpfiles.d +/usr/lib/tmpfiles.d/initscripts.conf +%dir /usr/libexec/initscripts +%dir /usr/libexec/initscripts/legacy-actions -# NOTE: /etc/profile.d/ is owned by setup package. -# /etc/sysconfig/ is owned by filesystem package. -%dir %{_sysconfdir}/rc.d -%dir %{_sysconfdir}/rc.d/init.d -%dir %{_sysconfdir}/rc.d/rc[0-6].d -%dir %{_sysconfdir}/sysconfig/console -%dir %{_sysconfdir}/sysconfig/modules -%dir %{_libexecdir}/%{name} -%dir %{_libexecdir}/%{name}/legacy-actions - -# --------------- - -%{_sysconfdir}/rc.d/init.d/functions - -# RC symlinks: -%{_sysconfdir}/rc[0-6].d - -%{_sysconfdir}/init.d - -# --------------- - -%{_bindir}/usleep -%{_sbindir}/consoletype -%{_sbindir}/genhostid - -%{_libexecdir}/import-state -%{_libexecdir}/loadmodules - -%{_prefix}/lib/systemd/system/import-state.service -%{_prefix}/lib/systemd/system/loadmodules.service - -%{_mandir}/man1/* - -# ============================================================================= - -%files -n initscripts-rename-device -%license COPYING - -%{_prefix}/lib/udev/rename_device - -%{_udevrulesdir}/* - -# --------------- - -%files -n initscripts-service -%license COPYING - -%dir %{_libexecdir}/%{name} -%dir %{_libexecdir}/%{name}/legacy-actions - -%{_sbindir}/service - -%{_mandir}/man8/service.* - -# --------------- - -%files -n netconsole-service -%license COPYING -%config(noreplace) %{_sysconfdir}/sysconfig/netconsole - -%{_libexecdir}/netconsole -%{_prefix}/lib/systemd/system/netconsole.service - -# --------------- - -%files -n readonly-root -%license COPYING - -%dir %{_sharedstatedir}/stateless -%dir %{_sharedstatedir}/stateless/state -%dir %{_sharedstatedir}/stateless/writable - -%config(noreplace) %{_sysconfdir}/rwtab -%config(noreplace) %{_sysconfdir}/statetab -%config(noreplace) %{_sysconfdir}/sysconfig/readonly-root - -%{_libexecdir}/readonly-root -%{_prefix}/lib/systemd/system/readonly-root.service - -# ============================================================================= +%files -n debugmode +%defattr(-,root,root) +%config(noreplace) /etc/sysconfig/debug +/etc/profile.d/debug* %changelog -* Thu Dec 11 2025 Jan Macku - 10.27-1 -- spec: add missing license files -- build(deps): bump actions/checkout from 5 to 6 -- build(deps): bump actions/upload-artifact from 4 to 5 -- build(deps): bump github/codeql-action from 3 to 4 -- ci: fix issues with missing base commit -- Translated using Weblate (Georgian) -- Translated using Weblate (Indonesian) -- Translated using Weblate (English (United Kingdom)) -- Translated using Weblate (Korean) -- Translated using Weblate (Turkish) -- man: add ifdown.8 -- build(deps): bump actions/checkout from 4 to 5 -- Translated using Weblate (Spanish) -- Translated using Weblate (Georgian) -- Translated using Weblate (Korean) -- Translated using Weblate (Portuguese (Brazil)) -- Translated using Weblate (Polish) -- Translated using Weblate (Greek) -- Translated using Weblate (Greek) -- Translated using Weblate (Spanish) -- Translated using Weblate (Georgian) -- Translated using Weblate (Greek) -- Translated using Weblate (Italian) -- Translated using Weblate (Chinese (Traditional) (zh_TW)) -- Translated using Weblate (Spanish) -- Translated using Weblate (Finnish) -- retry arping one more time in ifup-eth when sendto failed -- Translated using Weblate (French) -- ci: add dependency glib-2.0 -- network-functions: Fix a bug in is_nm_handling() +* Tue Feb 24 2015 Lukáš Nykrýn - 9.56.1-7 +- network-functions: is_available_wait should wait even in the case that + is_available returns 2 -* Tue Aug 27 2024 Jan Macku - 10.26-1 -- Translated using Weblate (Turkish) -- netconsole: var/lock -> run/lock -- netconsole: source sysconfig/network only if it exists -- netconsole: remove unused variables -- netconsole: remove trailing whitespaces -- Translated using Weblate (Turkish) - -* Tue Jun 25 2024 Jan Macku - 10.25-1 -- Revert "fix: return support for network-scripts for Fedora 40" - -* Wed May 29 2024 Jan Macku - 10.24-1 -- Fix build when %_bindir==%_sbindir - -* Tue Apr 16 2024 Jan Macku - 10.23-1 -- fix: return support for network-scripts for Fedora 40 - -* Wed Mar 06 2024 Jan Macku - 10.22-1 -- Translated using Weblate (Georgian) -- rename_device: free path after it is used -- rename_device: remove trailing whitespaces - -* Wed Feb 07 2024 Jan Macku - 10.21-1 -- fedora: don't build network-scripts rpm in f40+ (2/2) -- ci: trigger copr build on every push to main branch -- ifup-routes: print warning when ADDRESS0 entry is missing -- fedora: don't build network-scripts rpm in f40+ - -* Tue Jan 30 2024 Jan Macku - 10.20-1 -- Translated using Weblate (Georgian) -- Add -r to while read as per shellcheck -- Fix splitting spaces in paths from statetab files -- build(deps): bump actions/upload-artifact from 3 to 4 -- build(deps): bump github/codeql-action from 2 to 3 -- Translated using Weblate (Georgian) -- Translated using Weblate (Czech) -- Translated using Weblate (Punjabi) -- Translated using Weblate (Portuguese (Brazil)) -- build(deps): bump redhat-plumbers-in-action/differential-shellcheck -- build(deps): bump actions/checkout from 3 to 4 -- Translated using Weblate (Hungarian) -- Translated using Weblate (Finnish) -- Translated using Weblate (Georgian) -- Translated using Weblate (Chinese (Simplified) (zh_CN)) -- Translated using Weblate (English (United Kingdom)) -- Translated using Weblate (Korean) -- Translated using Weblate (Ukrainian) -- Translated using Weblate (Swedish) -- Translated using Weblate (Polish) -- Update translation files -- Translated using Weblate (Korean) - -* Fri May 05 2023 Jan Macku - 10.19-1 -- ci: update Packit configuration -- spec: add missing changelog entry -- Revert "releng: Enable Packit to handle Fedora updates" -- Revert "releng: Convert to rpmautospec" -- doc: update translations -- spec: remove changelog - -* Thu Mar 23 2023 Jan Macku - 10.18-1 -- Translated using Weblate (English (United Kingdom)) -- migrate to SPDX license -- ci(Mergify): configuration update -- Translated using Weblate (German) -- Translated using Weblate (English (United Kingdom)) -- doc: update badges -- ci(lint): Add Differential PyLint GitHub Action -- ci(lint): Add permission `security-events: write` -- ci: Update Differential ShellCheck to `@v4` -- doc: fix markdown warnings and update badge -- ci: Setup CodeQL to replace deprecated LGTM -- releng: Enable Packit to handle Fedora updates -- releng: Convert to rpmautospec -- build(deps): bump redhat-plumbers-in-action/differential-shellcheck - -* Wed Aug 24 2022 Jan Macku - 10.17-1 -- service: Exit when `/etc/init.d` is missing -- ci: Update workflows to run on main branch -- ci: remove differential-shellcheck configs -- doc: Use main branch in links -- dependabot: Monthly updates -- ci(Mergify): configuration update -- Translated using Weblate (Georgian) -- Translated using Weblate (Georgian) -- ci: Update `packit.yml` -- ci: Update Github workflows & add Dependabot -- Translated using Weblate (Estonian) -- Translated using Weblate (Georgian) -- Translated using Weblate (Georgian) -- Translated using Weblate (Czech) -- Drop unnecessary obsoletes - -* Wed Feb 23 2022 Adam Williamson - 10.16-2 -- Drop unnecessary obsoletes - -* Wed Feb 23 2022 Jan Macku - 10.16-1 -- spec: Move rename_device to subpackage `initscripts-rename-device` - -* Tue Feb 15 2022 Jan Macku - 10.15-1 -- spec: network-scripts needs to depend on dbus-tools for NetworkManager detection -- packit: Run copr builds on release as well -- ci: Update `.packit.yml` to run on `c8s` `c9s` and `rawhide` -- Translated using Weblate (Finnish) -- ci: Use Differential ShellCheck action -- ci(Mergify): configuration update - -* Mon Jan 24 2022 Jan Macku - 10.14-1 -- ifup-routes: Revert quotes -- ifup-routes: Use `ip replace` only on type `route` -- ci(Mergify): configuration update -- ci: remove testing branch from `shellcheck_test.yml` - -* Thu Jan 13 2022 Jan Macku - 10.13-1 -- ifup-routes: Log when using `ip $type replace` -- ifup-routes: Use `ip route repace` to avoid race -- Translated using Weblate (German) -- Add LGTM badges to README -- ci: set default merge method to rebase -- ci: disable comments under opened PR in order to fix CI -- network scripts: do not use c-style for-loop -- network scripts: replace "<<<" with pipe -- rc.d/functions: do not use "+=" to concatenate string -- ci: Use default github-token (#395) -- ci(Mergify): configuration update (#394) -- ci: Output shellcheck results using PR comments (#393) -- ci: Update path to csdiff repository (#391) -- spec: Fix issue with $NEXT_VERSION (#390) -- Translated using Weblate (Indonesian) -- Translated using Weblate (Spanish) -- Translated using Weblate (Czech) - -* Fri Sep 03 2021 Jan Macku - 10.12-1 -- spec: Update relation between initscripts and initscripts-service (#386) - -* Fri Aug 27 2021 Jan Macku - 10.11-1 -- specfile: Update obsoletes to allow upgrades (#385) - -* Thu Aug 26 2021 Jan Macku - 10.10-1 -- Translated using Weblate (Friulian) (#381) -- Translations update from Weblate (#378) -- added veth support -- ifup-eth: add a new PERSISTENT_DHCLIENT_IPV6 option for IPv6 dhclient daemon -- ifdown removes veth pair if both peers are down -- rename_device: also support dracut-style kernel cmdline configuration -- spec: Mark network-scripts as deprecated -- spec: Initscripts now requires chkconfig (#374) -- Translations update from Weblate (#371) -- spec: Move service script into subpackage -- ci: Onboard initscripts to Packit -- ci: Migrate from Travis to GH Actions - -* Mon Feb 15 2021 Jan Macku - 10.09-1 -- doc: Document ARPING_WAIT and ARPING_UPDATE_WAIT -- network scripts: Avoid infinite loop of arping - -* Thu Feb 4 2021 Jan Macku - 10.08-1 -- network: fix condition in set_link_up() -- spec: sync with Fedora - -* Fri Jan 22 2021 Jan Macku - 10.07-1 -- doc: Fix "Duplicated string found in the file." -- doc: Documents RES_OPTIONS option -- doc: Documents ifcfg option LINKSTATUS -- ci: use up to date keywords and fix some warnings -- network: fix set_link_up() -- network: add option to keep the link down -- Rework of shell ci -- Translations update from Weblate - -* Fri Nov 13 2020 Jan Macku - 10.06-1 -- service: catch unsupported action keywords -- makefile: Use rpmdev-bumpspec's legacy date option - -* Fri Nov 06 2020 Jan Macku - 10.05-1 -- service: Prevent variables from globbing -- init.d/functions: Make usage msgs more clear -- network-scripts: Use net_log() instead of logger -- Allow updating rfkill switch status while in readonly root mode -- Add info into specfile about readonly-root deprecation -- Allow updating mlocate.db while in readonly root mode -- rc.d/functions: replace grep's --quiet with -q -- Add warning to warn user when ETHTOOL_OPTS is set and ethtool binary is missing - Olav Vitters -- Fix spacing in Makefile -- Add optional 'dev' keyword - -* Tue Jul 14 2020 Jan Macku - 10.04-1 -- Maintain permisision to set umask -- rwtab: Add support for chrony -- Correct spelling, IP, … -- Fix spelling, for more info -- Fix spelling of SELinux -- Translations update from Weblate - -* Tue Mar 24 2020 Jan Macku - 10.03-1 -- Replace grep -EL with subshell since -L changed behaviour -- Wait for scope link addresses as well as for scope global addresses -- Remove deprecated option -m of pidof -- Use function is_true for testing true conditions -- Adding new travis job for testing shell-scripts -- Remove zanata conf -- pull latest translations -- Update of translations and remove files with no translations -- Fix service network stop cmd -- Change spacing of service file to folow spacing of project -- network-function: bridges are created by ifup-eth -- Initscripts no longer care about rc.local -- Repalace hardcoded tests for yes and no with testing functions -- ifup-eth: Fix bridge setting stp option -- Fix bug in service(8) -- ifup-eth: Check that device name is set -- Fix missing python3 during build phase -- rc.d/functions: fix escape sequence being output under systemd service units -- Add ip6gre tunnel option -- ifup/ifdown: print DEPRECATION_WARNING_ISSUED waring info after source_config - -* Fri Jun 28 2019 Jan Macku - 10.02-1 -- network: don't fail with IFDOWN_ON_SHUTDOWN -- rc.d/functions: remove support cgroups -- Create symlink (/etc/init.d) to /etc/rc.d/init.d -- Add option to wait until target is reachable -- ifup-eth: apply PERSISTENT_DHCLIENT to IPv6 dhclient daemon -- ifup-post: fix incorrect condition for RESOLV_MODS -- make tag: updated message -- make release-commit: do not create tag automatically - -* Mon Aug 06 2018 David Kaspar [Dee'Kej] - 10.01-1 -- network/ifup/ifdown: deprecations warnings redirected to stderr -- ifup-eth: use 'bc' instead of 'expr' when computing $forward_delay -- network/ifup/ifdown: deprecation warnings for 'network-scripts' added -- network: parsing of /proc/mounts returned - -* Thu Jun 21 2018 David Kaspar [Dee'Kej] - 10.00-1 -- Move the /etc/rwtab.d & /etc/statetab.d folders to 'filesystem' -- specfile: fix failing build because of incorrect use of %{_isa} - -* Thu Jun 14 2018 David Kaspar [Dee'Kej] - 9.83-1 -- network-scripts: Add previously dropped error checking -- network-scripts: Replace brctl with ip-link -- Makefile: new release-commit rule added -- src/rename_device.c: GCC warnings about unused return value suppressed -- src/usernetctl.c: GCC warnings about unused return value suppressed -- Makefile: allow sub-makefiles to run in parallel -- specfile: netconsole service moved to /usr/libexec -- specfile: services from /usr/lib/systemd moved to /usr/libexec -- specfile: summary & description updated -- specfile: no longer needed conflicts dropped -- specfile: requirements cleanup -- specfile: obsoletes on previous version of initscripts package added -- specfile: network-scripts subpackage created -- specfile: readonly-root subpackage created -- specfile: netconsole-service subpackage created -- README.md: Travis CI build icon added -- .travis.yml: check the 'make install' proceeds as well -- .travis.yml: initial commit -- README.md: bug reporting described -- README.dm: future of initscripts described -- README.md: description added -- README.md: references to old git branches added -- README.md: initial commit -- network-scripts: setting of firewall ZONE fixed -- ifdown-post: artifact whitespace removed from the DBus call -- l10n: drop .tx directory -- l10n: add zanata.xml - -* Mon Jun 04 2018 David Kaspar [Dee'Kej] - 9.82-1 -- Makefile: make the creation of symlinks relative to path again -- specfile: trailing file of netreport removed - -* Thu May 31 2018 David Kaspar [Dee'Kej] - 9.81-1 -- src/consoletype.c: deprecation warning added -- src/genhostid.c: deprecation warning added -- src/genhostid.c: fixed to not override /etc/hostid if it already exists -- src/usleep.c: GCC warnings fixed -- nis-domainname.service removed -- fedora-* services renamed to more general names -- specfile: missing fedora-domainname.service returned in systemd macros -- COPYING updated to latest GNU version (GPLv2+) -- network-scripts: control 'network' service with alternatives as well -- netreport functionality dropped -- networks moved into 'setup' package -- lang.{sh,csh} moved into setup package -- lang.{sh,csh} cleanup before moving to 'setup' package -- src/sushell moved into 'policycoreutils' package -- src/shvar.* removed -- po/xgettext_sh removed -- sys-unconfig removed -- Outdated files from doc/ folder removed -- make archive: ChangeLog generating removed -- network-scripts: ifup & ifdown -- use alternatives system -- adjtime moved into 'util-linux' package -- specfile: simplified & updated to new repository layout -- .gitignore files updated to new repository layout -- Makefile simplified & updated to new repository layout -- po/Makefile simplified & updated to new repository layout -- src/Makefile simplified & updated to new repository layout -- Repository scheme updated to new layout -- fedora-readonly: command substitution warning fixed (null-byte input) - -* Fri May 25 2018 David Kaspar [Dee'Kej] - 9.80-1 -- sysconfig/readonly-root: Clarify the usage of readonly-root -- use proper shebang where appropriate -- specfile: remove the systemctl call in the %postun phase -- network-functions: use tr to upper case strings rather than awk -- network-functions: add error messages for bonding installation -- ifdown-eth: no longer needed 'pidof -x dhclient' condition removed -- netconsole: LSB header added -- po/xgettext_sh*: converted to use to python3 -- network.service: 'reload' removed -- ifup-tunnel: Support 'external' tunnels -- spec: add gcc to BuildRequires -- init.d/functions: fix sourcing for ksh - -* Tue Jan 02 2018 David Kaspar [Dee'Kej] - 9.79-1 -- ifdown-post: fix logical error in commit 5d61564 -- network: add knob to optionally keep interfaces up during shutdown -- network-functions: use POSIX forwarding instead of bash-ism - -* Wed Nov 08 2017 David Kaspar [Dee'Kej] - 9.78-1 -- specfile: drop dependancy on /etc/system-release -- ifup-post: always update nameserver & search entries in /etc/resolv.conf -- network-scripts: forward DBus calls to /dev/null -- Spelling fixes -- Tell git to ignore *.o -- Use grep -E instead of deprecated egrep -- Avoid some unnecessary stat calls -- systemd/system: symlinks for fedora-* services removed -- network-scripts: firewall-cmd replaced with DBus calls -- 'debugmode' subpackage dropped completely -- sysconfig/init* files dropped -- sysctl.conf.s390 dropped -- usleep: change the error message to print the full replacement commandline - -* Tue Aug 15 2017 David Kaspar [Dee'Kej] - 9.77-1 -- specfile: Fix failing build for s390* architecture -- Drop no longer supported SPARC architecture - -* Mon Aug 07 2017 David Kaspar [Dee'Kej] - 9.76-1 -- Makefile: return make archive for testing purposes -- Revert "Makefile: replace /var/run with /run" - -* Mon Aug 07 2017 David Kaspar [Dee'Kej] - 9.75-1 -- Makefile: $ROOT variable is now empty by default -- Makefile: Fix additional error in commit b119d37d1 -- ifup-eth: wait for STP to complete setup on bridge if $DELAY is not set -- init.d/functions: is_true() & is_false() extended by ON/OFF support -- init.d/functions: convert2sec() function added - -* Fri Aug 04 2017 David Kaspar [Dee'Kej] - 9.74-1 -- Makefile: fix whitespace error in commit b119d37d1 - -* Thu Aug 03 2017 David Kaspar [Dee'Kej] - 9.73-1 -- Makefile: replace /var/run with /run -- Replace /var/run with /run everywhere -- Update references to sysctl.conf -- Drop sysctl.d/00-system.conf -- Drop 256term.{sh,csh} -- ARPUPDATE introduced - -* Thu May 25 2017 David Kaspar [Dee'Kej] - 9.72-1 -- rename_device.c: rewrite of isCfg() function -- Add *.old to list of ignored files -- Replace usleep(1) calls with sleep(1) calls - -* Wed May 24 2017 David Kaspar [Dee'Kej] - 9.71-1 -- usleep: print deprecation warning from now on -- sysconfig.txt: mention previously introduced NO_DHCP_HOSTNAME option -- DHCP_FQDN and DHCP_SEND_HOSTNAME introduced -- re-add missing $HOSTNAME initialization -- ifup: add support for VLAN_EGRESS_PRIORITY_MAP -- specfile: mark 'rwtab' and 'statetab' as config files -- killproc/status: add missing '-b ' option -- ifdown-eth: we need to flush global scope as well -- ifup-eth: remove quote marks -- po: download latest translations from zanata -- rwtab: add /var/lib/systemd/timers -- Update initscripts.pot -- Port headers in xgettext_sh.py to 2017 - -* Fri Feb 24 2017 Lukáš Nykrýn - 9.70-1 -- move source to github - -* Tue Aug 30 2016 David Kaspar [Dee'Kej] - 9.69-1 -- fedora-import-state should no longer try to create folder with empty name (#1370259) - -* Tue Aug 9 2016 David Kaspar [Dee'Kej] - 9.68-1 -- fedora-import-state: skip modifying of existing folders (#1347436) -- functions: systemctl show now returns an error when unit does not exist - -* Tue Jul 19 2016 Lukáš Nykrýn - 9.67-1 -- import-state: restore also sensitivity part of SELinux context -- network: run after network-pre.target -- ifup-eth: fix setting preferred_lft and valid_lft -- ifup: don't call nmcli on any lo device -- source_config: tell NetworkManger to load ifcfg file even for NM_CONTROLLED=no -- ipv6: wait for all global IPv6 addresses to leave the "tentative" state -- rwtab: /var/lib/nfs needs to copy the files -- functions: improve killing loops -- ifup: set valid_lft and preferred_lft to forever for static ip -- service: use systemd mangle for given service - -* Mon Apr 25 2016 Lukáš Nykrýn - 9.66-1 -- remove autorelabel stuff -- autorelabel: turn quota off before relabeling -- network: Treat other tunnel interfaces, fixes ifdown stage -- autorelabel: call dracut-initramfs-restore before forced reboot -- sysconfig.txt: document PPPOE_EXTRA and PPPD_EXTRA -- ifdown-eth: fix comparison - -* Mon Dec 07 2015 Lukáš Nykrýn - 9.65-1 -- init.d/functions: end with 0 -- fedora-loadmodules: we don't have readahead anymore -- network-scripts: DEVICE and HWADRR could be quoted by apostrophe -- ifup-wireless: fix calling of phy_wireless_device -- ifdown: clean ipv4 localhost addresses -- ifup-eth: some bridge options are applied later -- service: improve status and stop function for daemon with intscripts -- init.d/functions: reload systemd if it can't see an initscript - -* Thu Aug 06 2015 Lukáš Nykrýn - 9.64-1 -- network-functions: fix wireless detection -- fedora-readonly: use --make-slave with --bind mounts -- import-state: don't run restorecon when it does not exist -- network: modem type interfaces should explicitly start after and stop before common interfaces -- ifup-post: should be interpreted in bash - -* Mon May 18 2015 Lukáš Nykrýn - 9.63-1 -- remove ipcalc, it has its own package now -- network: tell NM to reload its configuration during start -- bonding: warn if the ifup for slave device failed -- sysctl.conf: drop SHMALL and SHMMAX, they have sane default values in kernel -- ifup: don't call NM for loopback -- clarify daemon() usage message -- rename_device: allow non-channel nics for s390x machines -- ifup: add missing quotes - -* Thu Apr 09 2015 Lukáš Nykrýn - 9.62-1 -- network-functions: fix change_resolv_conf after grep update -- ifup-aliases: don't return with error when arping fails -- init.d/functions: rc.debug option to debug initscripts -- ifup-aliases: inherit ARPCHECK from parent device -- network: report that we can't shut down network for root on netfs -- ifdown-eth: use scope host for lo - -* Thu Jan 22 2015 Lukáš Nykrýn - 9.61-1 -- specfile cleanup -- ifup-ipv6: set accept_ra to 2 when IPV6FORWARDING=yes and IPV6_AUTOCONF=yes -- ifup-post: check resolve.conf also with DNS2 -- ifup-aliases: do not fail when only ipv6 addr is specified -- fedora-import-state.service: run a little bit later -- fedora-readonly: Updates for systemd random-seed handling -- network-functions: is_available_wait should wait even in the case that is_available returns 2 -- ifdown-post: remove resolv.conf only in specific cases -- network-functions: fix check in install_bonding_driver - -* Tue Dec 16 2014 Lukáš Nykrýn - 9.60-1 -- improve check for bond master in install bonding driver -- network-functions: reeplace iwconfig with iw -- ifup: fix typo +* Tue Dec 16 2014 Lukáš Nykrýn - 9.56.1-6 - ifdown-ipv6: reset addrgenmode to eui64 for device +- ifup: fix typo -* Wed Nov 12 2014 Lukáš Nykrýn - 9.59-1 -- adjust LINKDELAY when STP is on +* Mon Dec 08 2014 Lukáš Nykrýn - 9.56.1-5 +- improve check for bond_master in install bonding driver -* Thu Nov 06 2014 Lukáš Nykrýn - 9.58-1 +* Wed Nov 12 2014 Lukáš Nykrýn - 9.56.1-4 +- adjust LINKDELAY when STP is on (#1162822) + +* Thu Nov 06 2014 Lukáš Nykrýn - 9.56.1-3 - ifup,vlan: fix typo -- doc: be consistent and use BOOTPROTO=none -* Tue Oct 07 2014 Zbigniew Jędrzejewski-Szmek - 9.57 +* Mon Oct 13 2014 Lukáš Nykrýn - 9.56.1-2 +- Conflict with older systemd due to move of files + +* Tue Oct 07 2014 Zbigniew Jędrzejewski-Szmek - 9.56.1-1 - Remove /etc/inittab, /etc/crypttab, utmp, wtmp, btmp * Tue Oct 07 2014 Lukáš Nykrýn - 9.56-1 @@ -876,7 +292,7 @@ ng * Tue Jan 14 2014 Lukáš Nykrýn 9.51-1 - readonly-root: bind-mount only necessary subset of entries in rwtab - readonly-root: Add /var/log/audit/audit.log to rwtab -- readonly-root: restore SELinux context after bind mount +- readonly-root: restore selinux context after bind mount - rename_device: remove comments and trailing whitespaces - service: suggest using systemctl if unknown action is used - ifup-eth: fix typo in error message @@ -905,7 +321,7 @@ ng * Fri May 31 2013 Lukáš Nykrýn - 9.47-1 - network-functions: to determine state of nscd check socket not lock (#960779) -- sysconfig.txt advised saslauthd -a instead of -v +- sysconfig.txt advised saslauthd -a instad of -v - update translations from transifex - drop translation for other initscripts - tweak ifup/ifdown usage and man page (#961917) @@ -1551,7 +967,7 @@ ng by booting) - serial: add a crude hack to wait for runlevels to finish (#437379) - serial: frob /etc/securetty when necessary (#437381) -- add an upstart-specific inittab +- add a upstart-specific inittab - translation updates: as, bn_IN, cs, de, es, fi, fr, gu, hi, it, ja, kn, ml, mr, nb, nl, pa, pl, pt_BR, ru, sk, sr, ta, te, zh_CN @@ -2042,7 +1458,7 @@ ng - network-functions: don't error out if hotplug doesn't exist (#140008) - ifup: always return errors on trying to bring up nonexistent devices (#131461) - ifup: fix error message (#143674) -- rc.sysinit: add an autorelabel boot target (#154496) +- rc.sysinit: add a autorelabel boot target (#154496) - prefdm: if something else is specified as $DISPLAYMANAGER, try that (#147304) - remove support for the old firewall type - network: optimize some (#138557, ) @@ -2368,7 +1784,7 @@ ng - readonly root fixes () * Tue May 25 2004 Karsten Hopp 7.56-1 -- special TYPE for qeth devices to differentiate them from ethX +- special TYPE for qeth devices to differenciate them from ethX * Mon May 24 2004 Bill Nottingham - fix pppd vs. ppp typo in conflicts (#123680) @@ -2892,7 +2308,7 @@ ng * Sun Sep 2 2001 Than Ngo - add ISDN patches from pekkas@netcore.fi and pb@bieringer.de (bug #52491) -- fix handling of ISDN LSZ Compression +- fix handling of ISDN LSZ Compresssion * Thu Aug 30 2001 Than Ngo - po/de.po: fix typo bug, lo instead 1o diff --git a/rebase.sh b/rebase.sh deleted file mode 100755 index 0015558..0000000 --- a/rebase.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# We always do a rebase to new upstream's tarball for Fedora Rawhide. -# -# For non-Rawhide Fedora releases, we can sometimes backport specific patches, -# if the rebase is not possible. -# -# This scripts automates this process. - -# Since we are operating in a dist-git repository where we can't fix things with -# --force-push if something goes wrong, we need to be extra careful and exit -# immediately if something fails. -set -e - -curl https://raw.githubusercontent.com/fedora-sysv/initscripts/master/initscripts.spec -o initscripts.spec || exit 1 -spectool -g initscripts.spec - -# Make a local scratch build in mock first. If it fails, do not upload new tarball! -# srpm_file="$(basename $(fedpkg srpm | grep -i "wrote" | cut -d ':' -f 2))" -# arch="$(uname -p)" - -# mock -r "fedora-rawhide-${arch}" "${srpm_file}" || exit 2 - -# Scratch build passed, the build should pass in Koji as well. Let's proceed: -fedpkg new-sources "$(basename $(spectool -S -l initscripts.spec | gawk '{print $2;}'))" || exit 3 -git add initscripts.spec -git commit -m "$(grep Version initscripts.spec | gawk '{print $2;}')" - -git show diff --git a/sources b/sources index e24e8e9..abecb85 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (initscripts-10.27.tar.gz) = 951f88158eaf7409f7d65c9875c9ba2611e6a805c17112ddbb34167a1638d87d2433c3962d20e66564669f3424dd7be1265cbe03a1a7d6b1c5413ed43d80148d +8ca2abb3877e8019a5e726c25501e8e3 initscripts-9.56.1.tar.bz2 diff --git a/tests/Sanity-init-scripts-LSB/Makefile b/tests/Sanity-init-scripts-LSB/Makefile deleted file mode 100644 index 460c83f..0000000 --- a/tests/Sanity-init-scripts-LSB/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /CoreOS/initscripts/Sanity/init-scripts-LSB -# Description: Init scripts should meet LSB specifications -# Author: Yulia Kopkova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2009 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/CoreOS/initscripts/Sanity/init-scripts-LSB -export TESTVERSION=1.4 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Jan Scotka " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Init scripts should meet LSB specifications" >> $(METADATA) - @echo "Type: Sanity" >> $(METADATA) - @echo "TestTime: 5m" >> $(METADATA) - @echo "RunFor: initscripts" >> $(METADATA) - @echo "Requires: initscripts" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Releases: RedHatEnterpriseLinux6" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Sanity-init-scripts-LSB/PURPOSE b/tests/Sanity-init-scripts-LSB/PURPOSE deleted file mode 100644 index 7246d5e..0000000 --- a/tests/Sanity-init-scripts-LSB/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/initscripts/Sanity/init-scripts-LSB -Description: Init scripts should meet LSB specifications -Author: Yulia Kopkova diff --git a/tests/Sanity-init-scripts-LSB/runtest.sh b/tests/Sanity-init-scripts-LSB/runtest.sh deleted file mode 100755 index a2274d0..0000000 --- a/tests/Sanity-init-scripts-LSB/runtest.sh +++ /dev/null @@ -1,228 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /CoreOS/initscripts/Sanity/init-scripts-LSB -# Description: Init scripts should meet LSB specifications -# Author: Jan Scotka , Yulia Kopkova -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2009 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include rhts environment -. /usr/bin/rhts-environment.sh -. /usr/share/rhts-library/rhtslib.sh - -PACKAGE="initscripts" - - -SRV_NETCONSOLE=netconsole -SRV_NETFS=netfs -TRG_REMOTEFS=remote-fs.target -SRV_NETWORK=network - -rlJournalStart - - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "useradd testuserqa" 0 "Add test user" - rlFileBackup /etc/sysconfig/netconsole - if rlIsRHEL '<7'; then #there is no syslog in rhel7 and highier - rlRun "sed -i -e 's,^# SYSLOGADDR=,SYSLOGADDR=redhat.com,' /etc/sysconfig/netconsole" 0 "Set remote syslog server address /etc/sysconfig/netconsole" - fi - rlPhaseEnd - - - rlPhaseStartTest "netconsole service LSB compliance test" -if ls /lib*/modules/*/kernel/drivers/net/netconsole.ko*; then - rlRun "ls /lib*/modules/*/kernel/drivers/net/netconsole.ko*" 0 - if rlIsRHEL '<7'; then - - SERVICE=$SRV_NETCONSOLE - rlServiceStop $SERVICE - rlLog ">>>>>>>>> service start" - rlRun "service $SERVICE start" 0 " Service must start without problem " - rlRun "service $SERVICE status" 0 " Then Status command " - rlRun "service $SERVICE start" 0 " Already started service " - rlRun "service $SERVICE status" 0 " Again status command " - - rlLog ">>>>>>>>> service restart" - rlRun "service $SERVICE restart" 0 " Restarting of service " - rlRun "service $SERVICE status" 0 " Status command " - - rlLog ">>>>>>>>> service stop" - rlRun "service $SERVICE stop" 0 " Stopping service " - rlRun "service $SERVICE status" 3 " Status of stopped service " - rlRun "service $SERVICE stop" 0 " Stopping service again " - rlRun "service $SERVICE status" 3 " Status of stopped service " - - rlLog ">>>>>>>>> insufficient rights" - rlRun "service $SERVICE start " 0 " Starting service for restarting under nonpriv user " - rlRun "su testuserqa -c 'service $SERVICE restart'" 1 "Insufficient rights, restarting resrvice under nonprivileged user must fail " - - rlLog ">>>>>>>>> operations" - rlServiceStop $SERVICE - rlRun "service $SERVICE start" 0 " Service have to implement start function " - rlRun "service $SERVICE restart" 0 " Service have to implement restart function " - rlRun "service $SERVICE status" 0 " Service have to implement status function " - rlRun "service $SERVICE condrestart" 0 " Service have to implement condrestart function " - rlRun "service $SERVICE reload" 0 " Service have to implement reload function " - rlRun "service $SERVICE force-reload" 0 " Service have to implement force-reload function " - - rlLog ">>>>>>>>> nonexist operations" - rlRun "service $SERVICE noexistop" 2 " Testing proper return code when nonexisting function " - - rlServiceRestore $SERVICE - fi # rhel 6 or less -else - rlLog ">>>> no netconsole kernel module appear here" - rlRun "ls /lib*/modules/*/kernel/drivers/net/netconsole.ko*" 1,2 -fi - rlLog "NIC should support polling, NETPOLL should be compliled in kernel and netconsole module should be loaded" - rlLog "`cat /usr/src/kernels/$(uname -r)/.config | grep -i poll`" - rlLog "netconsole module: `lsmod | grep -i netconsole && echo true || echo false`" - rlLog "`cat /var/log/messages | grep -i netconsole | tail -n 10`" - rlPhaseEnd - - # for RHEL6 and lower - if rlIsRHEL '<7'; then - rlPhaseStartTest "netfs service LSB compliance test" - - SERVICE=$SRV_NETFS - rlServiceStop $SERVICE - rlLog ">>>>>>>>> service start" - rlRun "service $SERVICE start" 0 " Service must start without problem " - rlRun "service $SERVICE status" 0 " Then Status command " - rlRun "service $SERVICE start" 0 " Already started service " - rlRun "service $SERVICE status" 0 " Again status command " - - rlLog ">>>>>>>>> service restart" - rlRun "service $SERVICE restart" 0 " Restarting of service " - rlRun "service $SERVICE status" 0 " Status command " - - rlLog ">>>>>>>>> service stop" - rlRun "service $SERVICE stop" 0 " Stopping service " - rlRun "service $SERVICE status" 3 " Status of stopped service " - rlRun "service $SERVICE stop" 0 " Stopping service again " - rlRun "service $SERVICE status" 3 " Status of stopped service " - - rlLog ">>>>>>>>> insufficient rights" - rlRun "service $SERVICE start " 0 " Starting service for restarting under nonpriv user " - rlRun "su testuserqa -c 'service $SERVICE restart'" 4 "Insufficient rights, restarting resrvice under nonprivileged user must fail " - - rlLog ">>>>>>>>> operations" - rlServiceStop $SERVICE - rlRun "service $SERVICE start" 0 " Service have to implement start function " - rlRun "service $SERVICE restart" 0 " Service have to implement restart function " - rlRun "service $SERVICE status" 0 " Service have to implement status function " - - rlLog ">>>>>>>>> nonexist operations" - rlRun "service $SERVICE noexistop" 2 " Testing proper return code when nonexisting function " - - rlServiceRestore $SERVICE - - rlPhaseEnd - else - rlPhaseStartTest "remote-fs target LSB compliance test" - - TARGET=$TRG_REMOTEFS - rlServiceStop $TARGET - rlLog ">>>>>>>>> target start" - rlRun "service $TARGET start" 0 " Target must start without problem " - rlRun "service $TARGET status" 0 " Then Status command " - rlRun "service $TARGET start" 0 " Already started target " - rlRun "service $TARGET status" 0 " Again status command " - - rlLog ">>>>>>>>> target restart" - rlRun "service $TARGET restart" 0 " Restarting target " - rlRun "service $TARGET status" 0 " Status command " - - rlLog ">>>>>>>>> target stop" - rlRun "service $TARGET stop" 0 " Stopping target " - rlRun "service $TARGET status" 3 " Status of stopped target " - rlRun "service $TARGET stop" 0 " Stopping target again " - rlRun "service $TARGET status" 3 " Status of stopped target " - - rlLog ">>>>>>>>> insufficient rights" - rlRun "service $TARGET start " 0 " Starting target for restarting under nonpriv user " - rlRun "su testuserqa -c 'service $TARGET restart'" 1 " Insufficient rights, restarting target under nonprivileged user must fail " # returns 1 instead of 4 because of polkit - - rlLog ">>>>>>>>> operations" - rlServiceStop $TARGET - rlRun "service $TARGET start" 0 " Target have to implement start function " - rlRun "service $TARGET restart" 0 " Target have to implement restart function " - rlRun "service $TARGET status" 0 " Target have to implement status function " - - rlLog ">>>>>>>>> nonexist operations" - rlRun "service $TARGET noexistop" 2 " Testing proper return code when nonexisting function " - - rlServiceRestore $TARGET - - rlPhaseEnd - fi - - -# rlPhaseStartTest "$SRV_NETWORK service LSB compliance test" -# -# SERVICE=$SRV_NETWORK -# rlServiceStop $SERVICE -# rlLog ">>>>>>>>> service start" -# rlRun "service $SERVICE start" 0 " Service must start without problem " -# rlRun "service $SERVICE status" 0 " Then Status command " -# rlRun "service $SERVICE start" 1,0 " Already started service " -# rlRun "service $SERVICE status" 0 " Again status command " - -# rlLog ">>>>>>>>> service restart" -# rlRun "service $SERVICE restart" 0 " Restarting of service " -# rlRun "service $SERVICE status" 0 " Status command " - -# rlLog ">>>>>>>>> service stop" -# rlRun "service $SERVICE stop" 0 " Stopping service " -# rlRun "service $SERVICE status" 0 " Status of stopped service " -# rlRun "service $SERVICE stop" 0 " Stopping service again " -# rlRun "service $SERVICE status" 0 " Status of stopped service " - -# rlLog ">>>>>>>>> insufficient rights" -# rlRun "service $SERVICE start " 0 " Starting service for restarting under nonpriv user " -# rlRun "su testuserqa -c 'service $SERVICE restart'" 4 "Insufficient rights, restarting resrvice under nonprivileged user must fail " - -# rlLog ">>>>>>>>> operations" -# rlServiceStop $SERVICE -# rlRun "service $SERVICE start" 0 " Service have to implement start function " -# rlRun "service $SERVICE restart" 0 " Service have to implement restart function " -# rlRun "service $SERVICE status" 0 " Service have to implement status function " -# rlRun "service $SERVICE reload" 0 " Service have to implement reload function " -# rlRun "service $SERVICE force-reload" 0 " Service have to implement force-reload function " - -# rlLog ">>>>>>>>> nonexist operations" -# rlRun "service $SERVICE noexistop" 2 " Testing proper return code when nonexisting function " - -# rlServiceRestore $SERVICE -# service $SERVICE start - rlPhaseEnd - - - rlPhaseStartCleanup - rlRun "userdel -fr testuserqa" 0 "Remove test user" - rlFileRestore - rlPhaseEnd - -rlJournalPrintText -rlJournalEnd diff --git a/tests/standard-inventory-qcow2 b/tests/standard-inventory-qcow2 deleted file mode 100755 index a9e2c64..0000000 --- a/tests/standard-inventory-qcow2 +++ /dev/null @@ -1,291 +0,0 @@ -#!/usr/bin/env python - -import argparse -import errno -import json -import os -import shutil -import shlex -import signal -import socket -import subprocess -import sys -import tempfile -import time -import distutils.util - -IDENTITY = """ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEA1DrTSXQRF8isQQfPfK3U+eFC4zBrjur+Iy15kbHUYUeSHf5S -jXPYbHYqD1lHj4GJajC9okle9rykKFYZMmJKXLI6987wZ8vfucXo9/kwS6BDAJto -ZpZSj5sWCQ1PI0Ce8CbkazlTp5NIkjRfhXGP8mkNKMEhdNjaYceO49ilnNCIxhpb -eH5dH5hybmQQNmnzf+CGCCLBFmc4g3sFbWhI1ldyJzES5ZX3ahjJZYRUfnndoUM/ -TzdkHGqZhL1EeFAsv5iV65HuYbchch4vBAn8jDMmHh8G1ixUCL3uAlosfarZLLyo -3HrZ8U/llq7rXa93PXHyI/3NL/2YP3OMxE8baQIDAQABAoIBAQCxuOUwkKqzsQ9W -kdTWArfj3RhnKigYEX9qM+2m7TT9lbKtvUiiPc2R3k4QdmIvsXlCXLigyzJkCsqp -IJiPEbJV98bbuAan1Rlv92TFK36fBgC15G5D4kQXD/ce828/BSFT2C3WALamEPdn -v8Xx+Ixjokcrxrdeoy4VTcjB0q21J4C2wKP1wEPeMJnuTcySiWQBdAECCbeZ4Vsj -cmRdcvL6z8fedRPtDW7oec+IPkYoyXPktVt8WsQPYkwEVN4hZVBneJPCcuhikYkp -T3WGmPV0MxhUvCZ6hSG8D2mscZXRq3itXVlKJsUWfIHaAIgGomWrPuqC23rOYCdT -5oSZmTvFAoGBAPs1FbbxDDd1fx1hisfXHFasV/sycT6ggP/eUXpBYCqVdxPQvqcA -ktplm5j04dnaQJdHZ8TPlwtL+xlWhmhFhlCFPtVpU1HzIBkp6DkSmmu0gvA/i07Z -pzo5Z+HRZFzruTQx6NjDtvWwiXVLwmZn2oiLeM9xSqPu55OpITifEWNjAoGBANhH -XwV6IvnbUWojs7uiSGsXuJOdB1YCJ+UF6xu8CqdbimaVakemVO02+cgbE6jzpUpo -krbDKOle4fIbUYHPeyB0NMidpDxTAPCGmiJz7BCS1fCxkzRgC+TICjmk5zpaD2md -HCrtzIeHNVpTE26BAjOIbo4QqOHBXk/WPen1iC3DAoGBALsD3DSj46puCMJA2ebI -2EoWaDGUbgZny2GxiwrvHL7XIx1XbHg7zxhUSLBorrNW7nsxJ6m3ugUo/bjxV4LN -L59Gc27ByMvbqmvRbRcAKIJCkrB1Pirnkr2f+xx8nLEotGqNNYIawlzKnqr6SbGf -Y2wAGWKmPyEoPLMLWLYkhfdtAoGANsFa/Tf+wuMTqZuAVXCwhOxsfnKy+MNy9jiZ -XVwuFlDGqVIKpjkmJyhT9KVmRM/qePwgqMSgBvVOnszrxcGRmpXRBzlh6yPYiQyK -2U4f5dJG97j9W7U1TaaXcCCfqdZDMKnmB7hMn8NLbqK5uLBQrltMIgt1tjIOfofv -BNx0raECgYEApAvjwDJ75otKz/mvL3rUf/SNpieODBOLHFQqJmF+4hrSOniHC5jf -f5GS5IuYtBQ1gudBYlSs9fX6T39d2avPsZjfvvSbULXi3OlzWD8sbTtvQPuCaZGI -Df9PUWMYZ3HRwwdsYovSOkT53fG6guy+vElUEDkrpZYczROZ6GUcx70= ------END RSA PRIVATE KEY----- -""" - -USER_DATA = """#cloud-config -users: - - default - - name: root - groups: sudo - shell: /bin/bash - ssh_authorized_keys: - - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUOtNJdBEXyKxBB898rdT54ULjMGuO6v4jLXmRsdRhR5Id/lKNc9hsdioPWUePgYlqML2iSV72vKQoVhkyYkpcsjr3zvBny9+5xej3+TBLoEMAm2hmllKPmxYJDU8jQJ7wJuRrOVOnk0iSNF+FcY/yaQ0owSF02Nphx47j2KWc0IjGGlt4fl0fmHJuZBA2afN/4IYIIsEWZziDewVtaEjWV3InMRLllfdqGMllhFR+ed2hQz9PN2QcapmEvUR4UCy/mJXrke5htyFyHi8ECfyMMyYeHwbWLFQIve4CWix9qtksvKjcetnxT+WWrutdr3c9cfIj/c0v/Zg/c4zETxtp standard-test-qcow2 -ssh_pwauth: True -chpasswd: - list: | - root:foobar - expire: False -runcmd: - - mkfs.ext4 /dev/sdb - - mount /dev/sdb /usr/local - - sudo mount -o remount,rw /usr - - mkdir /expected /output -""" - -def main(argv): - parser = argparse.ArgumentParser(description="Inventory for a QCow2 test image") - parser.add_argument("--list", action="store_true", help="Verbose output") - parser.add_argument('--host', help="Get host variables") - parser.add_argument("subjects", nargs="*", default=shlex.split(os.environ.get("TEST_SUBJECTS", ""))) - opts = parser.parse_args() - - try: - if opts.host: - data = host(opts.host) - else: - data = list(opts.subjects) - sys.stdout.write(json.dumps(data, indent=4, separators=(',', ': '))) - except RuntimeError as ex: - sys.stderr.write("{0}: {1}\n".format(os.path.basename(sys.argv[0]), str(ex))) - return 1 - - return 0 - - -def list(subjects): - hosts = [] - variables = {} - for subject in subjects: - if subject.endswith((".qcow2", ".qcow2c")): - vars = host(subject) - if vars: - hosts.append(subject) - variables[subject] = vars - return {"localhost": {"hosts": hosts, "vars": {}}, "subjects": {"hosts": hosts, "vars": {}}, - "_meta": {"hostvars": variables}} - - -def start_qemu(image, cloudinit, log, disk_directory=None, disk_size=None, portrange=(2222, 5555)): - for port in xrange(*portrange): - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - try: - sock.bind(("127.0.0.3", port)) - - if disk_size: - return subprocess.Popen(["/usr/bin/qemu-system-x86_64", "-m", "1024", image, - "-enable-kvm", "-snapshot", "-cdrom", cloudinit, - "-hdb", disk_directory, - "-net", "nic,model=virtio", "-net", - "user,hostfwd=tcp:127.0.0.3:{0}-:22".format(port), - "-device", "isa-serial,chardev=pts2", "-chardev", "file,id=pts2,path=" + log, - "-display", "none"], stdout=open(os.devnull, 'w')), port - else: - return subprocess.Popen(["/usr/bin/qemu-system-x86_64", "-m", "1024", image, - "-enable-kvm", "-snapshot", "-cdrom", cloudinit, - "-net", "nic,model=virtio", "-net", - "user,hostfwd=tcp:127.0.0.3:{0}-:22".format(port), - "-device", "isa-serial,chardev=pts2", "-chardev", "file,id=pts2,path=" + log, - "-display", "none"], stdout=open(os.devnull, 'w')), port - except IOError: - pass - finally: - sock.close() - else: - raise RuntimeError("unable to find free local port to map SSH to") - - -def host(image): - null = open(os.devnull, 'w') - - try: - tty = os.open("/dev/tty", os.O_WRONLY) - os.dup2(tty, 2) - except OSError: - tty = None - pass - - # A directory for temporary stuff - directory = tempfile.mkdtemp(prefix="inventory-cloud") - identity = os.path.join(directory, "identity") - with open(identity, 'w') as f: - f.write(IDENTITY) - os.chmod(identity, 0o600) - metadata = os.path.join(directory, "meta-data") - with open(metadata, 'w') as f: - f.write("") - userdata = os.path.join(directory, "user-data") - with open(userdata, 'w') as f: - f.write(USER_DATA) - - # Create additional disk - disk_size = None - disk_directory = None - try: - disk_size = os.environ.get("EXTEND_DISK_SIZE") - if disk_size: - sys.stderr.write("\nCreate additional cloud init disk DISK SIZE {}\n".format(disk_size)) - - disk_directory = "{}/atomic-host-disk2-{}".format(directory, disk_size) - subprocess.check_call(["qemu-img", "create", "-f", "qcow2", disk_directory, disk_size], stdout=null) - - except KeyError: - sys.stderr.write("\nCouldn't create additional cloud init disk DISK SIZE\n") - pass - - # Create our cloud init so we can log in - cloudinit = os.path.join(directory, "cloud-init.iso") - subprocess.check_call(["/usr/bin/genisoimage", "-input-charset", "utf-8", - "-volid", "cidata", "-joliet", "-rock", "-quiet", - "-output", cloudinit, userdata, metadata], stdout=null) - - # Determine if virtual machine should be kept available for diagnosis after completion - try: - diagnose = distutils.util.strtobool(os.getenv("TEST_DEBUG", "0")) - except ValueError: - diagnose = 0 - - sys.stderr.write("Launching virtual machine for {0}\n".format(image)) - - # And launch the actual VM - artifacts = os.environ.get("TEST_ARTIFACTS", os.path.join(os.getcwd(), "artifacts")) - try: - os.makedirs(artifacts) - except OSError as exc: - if exc.errno != errno.EEXIST or not os.path.isdir(artifacts): - raise - log = os.path.join(artifacts, "{0}.log".format(os.path.basename(image))) - - proc = None # for failure detection - cpe = None # for exception scoping - for tries in xrange(0, 5): - try: - proc, port = start_qemu(image, cloudinit, log, disk_directory=disk_directory, disk_size=disk_size) - break - except subprocess.CalledProcessError as cpe: - time.sleep(1) - continue - if proc is None: - raise RuntimeError("Could not launch VM for qcow2 image" - " '{0}':{1}".format(image, cpe.output)) - - # The variables - variables = {"ansible_ssh_port": "{0}".format(port), - "ansible_ssh_host": "127.0.0.3", - "ansible_ssh_user": "root", - "ansible_ssh_pass": "foobar", - "ansible_ssh_private_key_file": identity, - "ansible_ssh_common_args": "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"} - - # Write out a handy inventory file, for our use and for debugging - args = " ".join(["{0}='{1}'".format(*item) for item in variables.items()]) - inventory = os.path.join(directory, "inventory") - with open(inventory, "w") as f: - f.write("[subjects]\nlocalhost {1}\n".format(image, args)) - - # Wait for ssh to come up - ping = ["/usr/bin/ansible", "--inventory", inventory, "localhost", "--module-name", "raw", "--args", "/bin/true"] - - for tries in xrange(0, 30): - try: - (pid, ret) = os.waitpid(proc.pid, os.WNOHANG) - if pid != 0: - raise RuntimeError("qemu failed to launch qcow2 image: {0}".format(image)) - subprocess.check_call(ping, stdout=null, stderr=null) - break - except subprocess.CalledProcessError: - time.sleep(3) - else: - # Kill the qemu process - try: - os.kill(proc.pid, signal.SIGTERM) - except OSError: - pass - raise RuntimeError("could not access launched qcow2 image: {0}".format(image)) - - # Process of our parent - ppid = os.getppid() - - child = os.fork() - if child: - return variables - - # Daemonize and watch the processes - os.chdir("/") - os.setsid() - os.umask(0) - - if tty is None: - tty = null.fileno() - - # Duplicate standard input to standard output and standard error. - os.dup2(null.fileno(), 0) - os.dup2(tty, 1) - os.dup2(tty, 2) - - # Now wait for the parent process to go away, then kill the VM - while True: - time.sleep(3) - try: - os.kill(ppid, 0) - os.kill(proc.pid, 0) - except OSError: - break # Either of the processes no longer exist - - if diagnose: - sys.stderr.write("\n") - sys.stderr.write("DIAGNOSE: ssh -p {0} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null " - "root@{1} # password: {2}\n".format(port, "127.0.0.3", "foobar")) - sys.stderr.write("DIAGNOSE: export ANSIBLE_INVENTORY={0}\n".format(inventory)) - sys.stderr.write("DIAGNOSE: kill {0} # when finished\n".format(os.getpid())) - - def _signal_handler(*args): - sys.stderr.write("\nDIAGNOSE ending...\n") - - signal.signal(signal.SIGTERM, _signal_handler) - signal.pause() - - # Kill the qemu process - try: - os.kill(proc.pid, signal.SIGTERM) - except OSError: - pass - - shutil.rmtree(directory) - sys.exit(0) - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 2e7b831..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- hosts: localhost - roles: - - role: standard-test-beakerlib - tags: - - classic - - container - - atomic - tests: - - Sanity-init-scripts-LSB - required_packages: - - initscripts