402 lines
11 KiB
RPMSpec
402 lines
11 KiB
RPMSpec
# === 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.18
|
|
Release: %autorelease
|
|
|
|
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
|
|
|
|
# === 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:
|
|
|
|
|
|
%description
|
|
This package provides basic support for legacy System V init scripts, and some
|
|
other legacy tools & utilities.
|
|
|
|
# === SUBPACKAGES =============================================================
|
|
|
|
%package -n initscripts-rename-device
|
|
Summary: Udev helper utility that provides network interface naming
|
|
|
|
%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 network-scripts
|
|
Summary: Legacy scripts for manipulating of network devices
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%shared_requirements
|
|
|
|
Requires: bc
|
|
Requires: dbus
|
|
Requires: dbus-tools
|
|
Requires: gawk
|
|
Requires: grep
|
|
Requires: hostname
|
|
Requires: iproute
|
|
Requires: ipcalc
|
|
Requires: kmod
|
|
Requires: procps-ng
|
|
Requires: sed
|
|
Requires: systemd
|
|
|
|
Requires(post): chkconfig
|
|
Requires(preun): chkconfig
|
|
|
|
Requires(post): %{_sbindir}/update-alternatives
|
|
Requires(postun): %{_sbindir}/update-alternatives
|
|
|
|
Obsoletes: %{name} < 9.82-2
|
|
|
|
# This is legacy and deprecated, so nobody should depend on this!
|
|
# If ifcfg-style configuration is still desired, NetworkManager can do this.
|
|
# Thus, mark this as deprecated to ensure people know to not depend on it.
|
|
# Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/
|
|
Provides: deprecated()
|
|
|
|
%description -n network-scripts
|
|
This package contains the legacy scripts for activating & deactivating of most
|
|
network interfaces. It also provides a legacy version of 'network' service.
|
|
|
|
The 'network' service is enabled by default after installation of this package,
|
|
and if the network-scripts are installed alongside NetworkManager, then the
|
|
ifup/ifdown commands from network-scripts take precedence over the ones provided
|
|
by NetworkManager.
|
|
|
|
If user has both network-scripts & NetworkManager installed, and wishes to
|
|
use ifup/ifdown from NetworkManager primarily, then they has to run command:
|
|
$ update-alternatives --config ifup
|
|
|
|
Please note that running the command above will also disable the 'network'
|
|
service.
|
|
|
|
# ---------------
|
|
|
|
%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 ======================================================
|
|
|
|
%prep
|
|
%autosetup -S git
|
|
|
|
# ---------------
|
|
|
|
%build
|
|
%make_build PYTHON=%{__python3}
|
|
|
|
# ---------------
|
|
|
|
%install
|
|
%make_install
|
|
|
|
# This installs the NLS language files:
|
|
%find_lang %{name}
|
|
|
|
%ifnarch s390 s390x
|
|
rm -f %{buildroot}%{_sysconfdir}/sysconfig/network-scripts/ifup-ctc
|
|
%endif
|
|
|
|
# Additional ways to access documentation:
|
|
install -m 0755 -d %{buildroot}%{_docdir}/network-scripts
|
|
|
|
ln -s %{_docdir}/%{name}/sysconfig.txt %{buildroot}%{_docdir}/network-scripts/
|
|
ln -sr %{_mandir}/man8/ifup.8 %{buildroot}%{_mandir}/man8/ifdown.8
|
|
|
|
# We are now using alternatives approach to better co-exist with NetworkManager:
|
|
touch %{buildroot}%{_sbindir}/ifup
|
|
touch %{buildroot}%{_sbindir}/ifdown
|
|
|
|
# =============================================================================
|
|
|
|
%post
|
|
%systemd_post import-state.service loadmodules.service
|
|
|
|
%preun
|
|
%systemd_preun import-state.service loadmodules.service
|
|
|
|
%postun
|
|
%systemd_postun import-state.service loadmodules.service
|
|
|
|
# ---------------
|
|
|
|
%post -n network-scripts
|
|
chkconfig --add network > /dev/null 2>&1 || :
|
|
|
|
[ -L %{_sbindir}/ifup ] || rm -f %{_sbindir}/ifup
|
|
[ -L %{_sbindir}/ifdown ] || rm -f %{_sbindir}/ifdown
|
|
|
|
%{_sbindir}/update-alternatives --install %{_sbindir}/ifup ifup %{_sysconfdir}/sysconfig/network-scripts/ifup 90 \
|
|
--slave %{_sbindir}/ifdown ifdown %{_sysconfdir}/sysconfig/network-scripts/ifdown \
|
|
--initscript network
|
|
|
|
%preun -n network-scripts
|
|
if [ $1 -eq 0 ]; then
|
|
chkconfig --del network > /dev/null 2>&1 || :
|
|
%{_sbindir}/update-alternatives --remove ifup %{_sysconfdir}/sysconfig/network-scripts/ifup
|
|
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 ==================================================
|
|
|
|
%files -f %{name}.lang
|
|
%license COPYING
|
|
%doc doc/sysconfig.txt
|
|
|
|
# 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}/*
|
|
%{_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
|
|
|
|
%{_prefix}/lib/udev/rename_device
|
|
|
|
%{_udevrulesdir}/*
|
|
|
|
# ---------------
|
|
|
|
%files -n initscripts-service
|
|
|
|
%dir %{_libexecdir}/%{name}
|
|
%dir %{_libexecdir}/%{name}/legacy-actions
|
|
|
|
%{_sbindir}/service
|
|
|
|
%{_mandir}/man8/service.*
|
|
|
|
# ---------------
|
|
|
|
%files -n network-scripts
|
|
%doc doc/examples/
|
|
%dir %{_sysconfdir}/sysconfig/network-scripts
|
|
|
|
%{_sysconfdir}/rc.d/init.d/network
|
|
%{_sysconfdir}/sysconfig/network-scripts/*
|
|
|
|
%config(noreplace) %{_sysconfdir}/sysconfig/network-scripts/ifcfg-lo
|
|
|
|
%ghost %{_sbindir}/ifup
|
|
%ghost %{_sbindir}/ifdown
|
|
%attr(4755,root,root) %{_sbindir}/usernetctl
|
|
|
|
%{_mandir}/man8/ifup.*
|
|
%{_mandir}/man8/ifdown.*
|
|
%{_mandir}/man8/usernetctl.*
|
|
%{_docdir}/network-scripts/*
|
|
|
|
# ---------------
|
|
|
|
%files -n netconsole-service
|
|
%config(noreplace) %{_sysconfdir}/sysconfig/netconsole
|
|
|
|
%{_libexecdir}/netconsole
|
|
%{_prefix}/lib/systemd/system/netconsole.service
|
|
|
|
# ---------------
|
|
|
|
%files -n readonly-root
|
|
%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
|
|
|
|
# =============================================================================
|
|
|
|
%changelog
|
|
%autochangelog
|