Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:garloff:OTC
bms-network-setup
bms-network-setup.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bms-network-setup.spec of Package bms-network-setup
%if 0%{?suse_version} >= 1000 # SUSE %if 0%{?suse_version} < 1200 %define nosystemd 1 %else %define nosystemd 0 %endif %else # REDHAT/CentOS/Oracle/Euler %if 0%{?rhel_version} < 700 && 0%{?centos_version} < 700 %define nosystemd 1 %else %define nosystemd 0 %endif %endif %if 0%{?rocky_ver} >= 8 || 0%{?almalinux_ver} >= 8 %define nosystemd 0 %endif %if 0%{?suse_version} >= 1500 || 0%{?rhel_version} >= 800 || 0%{?centos_version} >= 800 || 0%{?fedora_version} >= 30 || 0%{?almalinux_version} >= 800 || 0%{?rocky_version} >= 800 %define use_python python3 %define py_sitelib %{python3_sitelib} %else %define use_python python %define py_sitelib %{python_sitelib} %endif # FIXME: This workaround might be needed elsewhere too %if 0%{?suse_version} > 1200 || 0%{?centos_version} >= 700 || 0%{?rhel_version} >= 700 || 0%{?rocky_version} >= 800 || 0%{?almalinux_version} >= 800 %define needdisable 1 %endif Name: bms-network-setup Version: 1.9 Release: 1 Summary: OTC Bare Metal Network Device Configuration Scripts Group: Development/Tools License: CC-BY-SA-3.0 URL: https://github.com/bms-network/bms-network-config Source: %{name}-%{version}.tar.bz2 Patch1: bms-before-nm.diff Patch2: bms-no-ifcfg-lan.diff Patch3: bms-multi-user.diff Autoreqprov: on %if 0%{?suse_version} >= 1210 BuildRequires: systemd-rpm-macros %endif %if %{nosystemd} != 1 BuildRequires: systemd %endif %if 0%{?suse_version} >= 1000 && 0%{?suse_version} < 1200 PreReq: %insserv_prereq %endif %if 0%{?suse_version} >= 1000 PreReq: sysconfig %endif Requires: %{use_python} Requires: %{use_python}-six Requires: cloud-init BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch %define instpath /opt/otc/bms-setup %description Simple creation of ifcfg from ConfigDrive DataSource This is a much simpler version of Huawei's bms-network-config, which can do a lot more. This script is simple and does nothing more than writing out ifcfg-* files from the network_data.json configuration. It is designed to coexist with cloud-init. %prep %setup %global _default_patch_fuzz 2 %if 0%{?centos_version} >= 700 || 0%{?rhel_version} >= 700 || 0%{?rocky_version} >= 800 || 0%{?almalinux_version} >= 800 sed -i 's/WantedBy=cloud-init.target/WantedBy=cloud-config.target/' bms-network-setup.service %patch1 -p1 %patch2 -p1 %else %patch3 -p1 %endif sed -i 's/env python$/env %{use_python}/' bms-network-setup.py echo "nosystemd %{nosystemd} needdisable %{needdisable}" %build %install #cd %{name}-%{version} mkdir -p %{buildroot}/%{instpath} mkdir -p %{buildroot}/%{_initddir} mkdir -p %{buildroot}/%{_sbindir} install -m 0755 bms-network-setup.py %{buildroot}/%{instpath}/ install -m 0755 bms-setup.sh %{buildroot}/%{instpath}/ install -m 0755 bms-disable-cloudinit-network %{buildroot}/%{instpath}/ %if %{nosystemd} == 1 cp -p bms-network-setup %{buildroot}%{_initddir}/ %if 0%{?suse_version} >= 1000 ln -sf "%{_initddir}/bms-network-setup" "%{buildroot}/%{_sbindir}/rcbms-network-setup" %endif %else # Systemd mkdir -p %{buildroot}%{_unitdir} install -m 0644 bms-network-setup.service %{buildroot}%{_unitdir}/ %endif # FIXME: This workaround might be needed elsewhere too %if 0%{?needdisable} == 1 mkdir -p %{buildroot}/etc/cloud/cloud.cfg.d/ touch %{buildroot}/etc/cloud/cloud.cfg.d/91_bms_netdisable.cfg touch %{buildroot}/etc/cloud/cloud.cfg.d/92_bms_configdrivedisable.cfg %endif touch %{buildroot}/etc/is_bms %clean rm -rf %{buildroot} #%pre # %post %if 0%{?suse_version} >= 1000 && 0%{?suse_version} < 1200 sed -i '/# Should-Start:/s@$@ bms-network-setup@' /etc/init.d/network %{fillup_and_insserv -f -y bms-network-setup} %else if [ $1 -eq 1 ] ; then %if %{nosystemd} == 1 chkconfig -a bms-network-setup chkconfig bms-network-setup on %else ##%if 0%{?centos_version} >= 700 ##if [[ "$(cat /etc/os-release | grep -i ^NAME= | sed 's/NAME="//' | sed 's/"$//')" == "EulerOS" ]]; then ## sed -i 's/Before=cloud-init-local.service network-pre.target NetworkManager.service/Before=cloud-init.service NetworkManager.service/' /usr/lib/systemd/system/bms-network-setup.service ## sed -i 's/After=local-fs.target/After=network.service/' /usr/lib/systemd/system/bms-network-setup.service ##fi ##%endif systemctl enable bms-network-setup.service > /dev/null 2>&1 || : %endif fi %endif %preun %if 0%{?suse_version} >= 1000 && 0%{?suse_version} < 1200 sed -i '/# Should-Start:/s@ bms-network-setup$@@' /etc/init.d/network %stop_on_removal bms-network-setup %else if [ $1 -eq 0 ] ; then %if %{nosystemd} == 1 service bms-network-setup stop chkconfig --del bms-network-config %else systemctl --no-reload disable bms-network-setup.service > /dev/null 2>&1 || : systemctl stop bms-network-setup.service > /dev/null 2>&1 || : rm -f /usr/lib/systemd/system/bms-network-setup.service rm -f /etc/cloud/cloud.cfg.d/91_bms_netdisable.cfg rm -f /etc/cloud/cloud.cfg.d/92_bms_configdrivedisable.cfg %endif fi %endif %postun %if 0%{?suse_version} >= 1000 && 0%{?suse_version} < 1200 %restart_on_update bms-network-setup %insserv_cleanup %else %if %{nosystemd} != 1 systemctl daemon-reload >/dev/null 2>&1 || : %endif %endif %files %defattr(-,root,root) %dir %instpath %dir /opt/otc %instpath/* %if %{nosystemd} == 1 %attr(0755, root, root) %{_initddir}/bms-network-setup %if 0%{?suse_version} >= 1000 %{_sbindir}/rcbms-network-setup %endif %else %attr(0644, root, root) %{_unitdir}/bms-network-setup.service %endif %if 0%{?needdisable} == 1 %ghost %config /etc/cloud/cloud.cfg.d/91_bms_netdisable.cfg %ghost %config /etc/cloud/cloud.cfg.d/92_bms_configdrivedisable.cfg %dir /etc/cloud %dir /etc/cloud/cloud.cfg.d %endif %ghost /etc/is_bms %changelog * Mon May 22 2017 huawei - Init
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor