10 Star 0 Fork 20

src-anolis-os/cloud-init

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
cloud-init.spec 9.38 KB
一键复制 编辑 原始数据 按行查看 历史
%define anolis_release .0.2
%define commitid 80cf5dc
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%define use_systemd (0%{?fedora} && 0%{?fedora} >= 18) || (0%{?rhel} && 0%{?rhel} >= 7)
%define __python /usr/bin/python3
%if %{use_systemd}
%define init_system systemd
%else
%define init_system sysvinit
%endif
# See: http://www.zarb.org/~jasonc/macros.php
# Or: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets
# Or: http://www.rpm.org/max-rpm/ch-rpm-inside.html
Name: cloud-init
Version: 23.2.2
Release: 1%{anolis_release}%{?dist}
Summary: Cloud instance init scripts
Group: System Environment/Base
License: Dual-licesed GPLv3 or Apache 2.0
URL: http://launchpad.net/cloud-init
Source0: %{name}-%{commitid}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}
%if "%{?el6}" == "1"
BuildRequires: python-argparse
%endif
%if %{use_systemd}
Requires: systemd
BuildRequires: systemd
Requires: systemd-units
BuildRequires: systemd-units
%else
Requires: initscripts >= 8.36
Requires(postun): initscripts
Requires(post): chkconfig
Requires(preun): chkconfig
%endif
# These are runtime dependencies, but declared as BuildRequires so that
# - tests can be run here.
# - parts of cloud-init such (setup.py) use these dependencies.
BuildRequires: python3-requests
BuildRequires: python3-configobj
BuildRequires: python3-jsonschema
BuildRequires: python3-six
BuildRequires: python3-jinja2
BuildRequires: python3-pyyaml
BuildRequires: python3-oauthlib
BuildRequires: python3-jsonpatch
BuildRequires: e2fsprogs
BuildRequires: iproute
BuildRequires: net-tools
BuildRequires: procps
BuildRequires: rsyslog
BuildRequires: shadow-utils
BuildRequires: sudo
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pyserial
BuildRequires: python3-netifaces
# System util packages needed
%ifarch %{?ix86} x86_64 ia64
Requires: dmidecode
%endif
# python2.6 needs argparse
%if "%{?el6}" == "1"
Requires: python-argparse
%endif
# Install 'dynamic' runtime reqs from *requirements.txt and pkg-deps.json
Requires: python3-requests
Requires: python3-configobj
Requires: python3-jsonschema
Requires: python3-six
Requires: python3-jinja2
Requires: python3-pyyaml
Requires: python3-oauthlib
Requires: python3-jsonpatch
Requires: e2fsprogs
Requires: iproute
Requires: net-tools
Requires: procps
Requires: rsyslog
Requires: shadow-utils
Requires: sudo
Requires: python3-devel
Requires: python3-setuptools
Requires: python3-pyserial
Requires: python3-netifaces
# Custom patches
%if "%{init_system}" == "systemd"
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%else
Requires(post): chkconfig
Requires(postun): initscripts
Requires(preun): chkconfig
Requires(preun): initscripts
%endif
%description
Cloud-init is a set of init scripts for cloud instances. Cloud instances
need special scripts to run during initialization to retrieve and install
ssh keys and to let the user run various scripts.
%prep
%setup -q -n %{name}-%{commitid}
# Custom patches activation
%build
%{__python} setup.py build
%install
%{__python} setup.py install -O1 \
--skip-build --root $RPM_BUILD_ROOT \
--init-system=%{init_system}
# Note that /etc/rsyslog.d didn't exist by default until F15.
# el6 request: https://bugzilla.redhat.com/show_bug.cgi?id=740420
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d
cp -p tools/21-cloudinit.conf \
$RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf
# Remove the tests
rm -rf $RPM_BUILD_ROOT%{python_sitelib}/tests
# Required dirs...
mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/cloud
mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/%{name}
# patch in the full version to version.py
version_pys=$(cd "$RPM_BUILD_ROOT" && find . -name version.py -type f)
[ -n "$version_pys" ] ||
{ echo "failed to find 'version.py' to patch with version." 1>&2; exit 1; }
( cd "$RPM_BUILD_ROOT" &&
sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $version_pys )
%clean
rm -rf $RPM_BUILD_ROOT
%post
%if "%{init_system}" == "systemd"
if [ $1 -eq 1 ]
then
/bin/systemctl enable cloud-config.service >/dev/null 2>&1 || :
/bin/systemctl enable cloud-final.service >/dev/null 2>&1 || :
/bin/systemctl enable cloud-init.service >/dev/null 2>&1 || :
/bin/systemctl enable cloud-init-local.service >/dev/null 2>&1 || :
fi
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "/Before=sshd.service/d" /usr/lib/systemd/system/cloud-init.service
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "/Before=sshd-keygen.service/d" /usr/lib/systemd/system/cloud-init.service
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "s/Before=network-online.target/After=network-online.target/g" /usr/lib/systemd/system/cloud-init.service
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "/Wants=network-pre.target/d" /usr/lib/systemd/system/cloud-init-local.service
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "/Before=NetworkManager.service/d" /usr/lib/systemd/system/cloud-init-local.service
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "s/Before=network-pre.target/Requires=network-online.target/g" /usr/lib/systemd/system/cloud-init-local.service
grep -Eiq 'qboot|quick boot' /etc/image-id && sed -i "s/After=systemd-remount-fs.service/After=systemd-remount-fs.service network-online.target/g" /usr/lib/systemd/system/cloud-init-local.service
%else
/sbin/chkconfig --add %{_initrddir}/cloud-init-local
/sbin/chkconfig --add %{_initrddir}/cloud-init
/sbin/chkconfig --add %{_initrddir}/cloud-config
/sbin/chkconfig --add %{_initrddir}/cloud-final
%endif
ln -sf /sys/firmware/qemu_fw_cfg/by_name/etc/cloud-init/vendor-data/raw /etc/cloud/cloud.cfg.d/aliyun_cloud.cfg
%preun
%if "%{init_system}" == "systemd"
if [ $1 -eq 0 ]
then
/bin/systemctl --no-reload disable cloud-config.service >/dev/null 2>&1 || :
/bin/systemctl --no-reload disable cloud-final.service >/dev/null 2>&1 || :
/bin/systemctl --no-reload disable cloud-init.service >/dev/null 2>&1 || :
/bin/systemctl --no-reload disable cloud-init-local.service >/dev/null 2>&1 || :
fi
%else
if [ $1 -eq 0 ]
then
/sbin/service cloud-init stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-init || :
/sbin/service cloud-init-local stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-init-local || :
/sbin/service cloud-config stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-config || :
/sbin/service cloud-final stop >/dev/null 2>&1 || :
/sbin/chkconfig --del cloud-final || :
fi
%endif
%postun
unlink /etc/cloud/cloud.cfg.d/aliyun_cloud.cfg
%if "%{init_system}" == "systemd"
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
%endif
%files
/etc/cloud/clean.d/README
/etc/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.conf
/usr/lib/udev/rules.d/66-azure-ephemeral.rules
%if "%{init_system}" == "systemd"
/usr/lib/systemd/system-generators/cloud-init-generator
%{_unitdir}/cloud-*
%else
%attr(0755, root, root) %{_initddir}/cloud-config
%attr(0755, root, root) %{_initddir}/cloud-final
%attr(0755, root, root) %{_initddir}/cloud-init-local
%attr(0755, root, root) %{_initddir}/cloud-init
%endif
# Program binaries
%{_bindir}/cloud-init*
%{_bindir}/cloud-id*
# Docs
%doc LICENSE ChangeLog TODO.rst requirements.txt
%doc %{_defaultdocdir}/cloud-init/*
# Configs
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg
%dir %{_sysconfdir}/cloud/cloud.cfg.d
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/*.cfg
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/README
%dir %{_sysconfdir}/cloud/templates
%config(noreplace) %{_sysconfdir}/cloud/templates/*
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
# Bash completion script
%{_datadir}/bash-completion/completions/cloud-init
%{_libexecdir}/%{name}
%dir %{_sharedstatedir}/cloud
# Python code is here...
%{python_sitelib}/*
%changelog
* Tue Jul 23 2024 Xiaoping Liu <lxp01404969@alibaba-inc.com> - 23.2.2-1.0.2
- unlink aliyun_cloud.cfg after uninstalling
* Tue Jan 23 2024 Xiaoping Liu <lxp01404969@alibaba-inc.com> - 23.2.2-1.0.1
- update to 23.2.2
* Tue Jun 28 2022 Chang Gao <gc-taifu@linux.alibaba.com> - 19.1.17-1.0.1
- Reversion to 19.1.17
- cancel disable network config
- Support vendor-data
* Thu Dec 16 2021 Mingyue Zhao <wb-zmy745940@alibaba-inc.com> - 19.1.14-1.1
- Supports non-root logins
* Fri Dec 12 2021 Mingyue Zhao <wb-zmy745940@alibaba-inc.com> - 19.1.13-1.2
- Fixed the Qboot image startup link timeout problem
* Wed Dec 08 2021 Mingyue Zhao <wb-zmy745940@alibaba-inc.com> - 19.1.13-1.1
- Optimized the Qboot image
* Mon Dec 06 2021 Mingyue Zhao <wb-zmy745940@alibaba-inc.com> - 19.1.12-1.1
- Optimized the Qboot image startup time
* Sat Oct 16 2021 Weitao Zhou <yunqi.zwt@alibaba-inc.com> - 19.1.8-1.4
- Bug fix: for Qboot Image, drop unexpected sshd service deps in cloud-init service
* Thu Jul 08 2021 jingni.wjj <jingni.wjj@alibaba-inc.com> - 19.1.8-1.3
- Add support for Alibaba Cloud Linux 3 Qboot Image
- Add support for Anolis OS 8
* Mon May 17 2021 Weisson Han <wenshu.hx@alibaba-inc.com> - 19.1.8-1.2
- Initial version for Alibaba Cloud Linux 3 on ECS
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-anolis-os/cloud-init.git
git@gitee.com:src-anolis-os/cloud-init.git
src-anolis-os
cloud-init
cloud-init
a8

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385