%global _version 2.0.8 %global _release 20210323.094917.git7e6aa593 %global is_systemd 1 Name: iSulad Version: %{_version} Release: %{_release} Summary: Lightweight Container Runtime Daemon License: Mulan PSL v2 URL: https://gitee.com/openeuler/iSulad Source: https://gitee.com/openeuler/iSulad/repository/archive/v%{version}.tar.gz BuildRoot: {_tmppath}/iSulad-%{version} ExclusiveArch: x86_64 aarch64 Patch1: 0001-make-thread-detach-to-avoid-resource-leak.patch Patch2: 0002-devmapper-fix-udev-wait-thread-resource-leak.patch Patch3: 0003-clean-code-fix-clean-code.patch Patch4: 0004-judge-isula-load-file-exists.patch Patch5: 0005-modify-image_load.sh-CI-to-test-file-not-exist.patch Patch6: 0006-do-not-pause-container-when-copy.patch Patch7: 0007-add-testcases-for-isula-cp.patch Patch8: 0008-image_cb-rename-the-function-isula_-docker_-to-do_.patch Patch9: 0009-fix-small-probability-of-coredump-in-CRI-streaming-s.patch Patch10: 0010-fix-ramdom-coredump-if-pull-failed.patch Patch11: 0011-shim-optimize-io-stream.patch Patch12: 0012-add-CI-to-test-shim-io.patch Patch13: 0013-CI-add-testcase-for-exec-without-pty.patch Patch14: 0014-adapt-for-sparse-file-when-tar-file.patch Patch15: 0015-driver-do-not-unlock-and-destroy-lock-when-clean-up.patch Patch16: 0016-driver-do-not-set-g_graphdriver-to-NULL.patch Patch17: 0017-ignore-error-if-get-ip-failed.patch Patch18: 0018-GC-add-log-container-info-when-add-into-gc.patch Patch19: 0019-log-use-the-same-function-to-init-log-in-export-paus.patch Patch20: 0020-init-log-config-should-before-command-parse.patch Patch21: 0021-spec-add-verify-for-device-cgroup-access-mode.patch Patch22: 0022-log-change-log-level-from-warn-to-error.patch Patch23: 0023-Fix-create-env-path-dir-if-dir-exist.patch Patch24: 0024-iSulad-calculate-memusage-with-used-total_inactive_f.patch Patch25: 0025-fix-container-exit-health-check-residue-and-multiple.patch Patch26: 0026-CI-supplementary-testcase-for-health-check-monitor.patch Patch27: 0027-add-container-lock-when-clean-container-resource.patch Patch28: 0028-sleep-some-time-before-calculate-to-make-sure-fd-clo.patch Patch29: 0029-stats-fix-wrong-memory-usage-info-in-stats.patch Patch30: 0030-save-health-check-log-to-disk-before-unhealthy.patch Patch31: 0031-unpack-try-to-remove-and-replace-dst_path-while-unpa.patch Patch32: 0032-fd-leak-check-in-cp.sh-should-not-include-pull-fd-ch.patch Patch33: 0033-devmapper-modify-log-msg.patch Patch34: 0034-name_id_index-fix-restore-fail-to-remove-name-index.patch Patch35: 0035-thread-function-calls-DAEMON_CLEAR_ERRORMSG-to-preve.patch Patch36: 0036-modify-resume-task-name.patch Patch37: 0037-cleadcode-Remove-extra-semicolons.patch Patch38: 0038-restart-policy-add-support-unless-stopped-policy.patch Patch39: 0039-CI-add-testcase-for-unless-stopped-restart-policy.patch Patch40: 0040-bugfix-for-embedded-image.patch Patch41: 0041-console-client-ignore-stdin-close-event.patch Patch42: 0042-delete-lxc-from-runc-CI-test.patch Patch43: 0043-add-embedded-testcases.patch Patch44: 0044-fix-the-error-of-ContainerStats-interface-field-valu.patch Patch45: 0045-rollback-setuped-network-if-mult-network-failed.patch Patch46: 0046-add-testcase-for-rollback-mutlnetworks.patch Patch47: 0047-log-adjust-log-level-from-EVENT-to-WARN-to-reduce-lo.patch Patch48: 0048-isulad-shim-fix-shim-exit-bug.patch Patch49: 0049-remove-redundant-code.patch Patch50: 0050-devicemapper-umount-when-resize2fs-command-failed.patch Patch51: 0051-ignore-to-create-mtab-when-runtime-is-kata-runtime.patch Patch52: 0052-remove-unchecked-layer-ignore-rootfs-layer.patch Patch53: 0053-add-test-to-check-running-container-with-image-integ.patch %ifarch x86_64 aarch64 Provides: libhttpclient.so()(64bit) Provides: libisula.so()(64bit) Provides: libisulad_img.so()(64bit) %endif %if 0%{?is_systemd} # Systemd 230 and up no longer have libsystemd-journal BuildRequires: pkgconfig(systemd) Requires: systemd-units %else Requires(post): chkconfig Requires(preun): chkconfig # This is for /sbin/service Requires(preun): initscripts %endif BuildRequires: cmake gcc-c++ lxc lxc-devel lcr-devel yajl-devel clibcni-devel BuildRequires: grpc grpc-plugins grpc-devel protobuf-devel BuildRequires: libcurl libcurl-devel sqlite-devel libarchive-devel device-mapper-devel BuildRequires: http-parser-devel BuildRequires: libseccomp-devel libcap-devel libselinux-devel libwebsockets libwebsockets-devel BuildRequires: systemd-devel git chrpath Requires: lcr lxc clibcni Requires: grpc protobuf Requires: libcurl Requires: sqlite http-parser libseccomp Requires: libcap libselinux libwebsockets libarchive device-mapper Requires: systemd %description This is a umbrella project for gRPC-services based Lightweight Container Runtime Daemon, written by C. %prep %autosetup -n %{name} -Sgit -p1 %build mkdir -p build cd build %cmake -DDEBUG=ON -DLIB_INSTALL_DIR=%{_libdir} -DCMAKE_INSTALL_PREFIX=/usr ../ %make_build %install rm -rf %{buildroot} cd build install -d $RPM_BUILD_ROOT/%{_libdir} install -m 0644 ./src/libisula.so %{buildroot}/%{_libdir}/libisula.so install -m 0644 ./src/utils/http/libhttpclient.so %{buildroot}/%{_libdir}/libhttpclient.so chrpath -d ./src/daemon/modules/image/libisulad_img.so install -m 0644 ./src/daemon/modules/image/libisulad_img.so %{buildroot}/%{_libdir}/libisulad_img.so chmod +x %{buildroot}/%{_libdir}/libisula.so chmod +x %{buildroot}/%{_libdir}/libhttpclient.so chmod +x %{buildroot}/%{_libdir}/libisulad_img.so install -d $RPM_BUILD_ROOT/%{_libdir}/pkgconfig install -m 0640 ./conf/isulad.pc %{buildroot}/%{_libdir}/pkgconfig/isulad.pc install -d $RPM_BUILD_ROOT/%{_bindir} chrpath -d ./src/isula install -m 0755 ./src/isula %{buildroot}/%{_bindir}/isula install -m 0755 ./src/isulad-shim %{buildroot}/%{_bindir}/isulad-shim chrpath -d ./src/isulad install -m 0755 ./src/isulad %{buildroot}/%{_bindir}/isulad install -d $RPM_BUILD_ROOT/%{_includedir}/isulad install -m 0644 ../src/daemon/modules/api/image_api.h %{buildroot}/%{_includedir}/isulad/image_api.h install -d $RPM_BUILD_ROOT/%{_sysconfdir}/isulad install -m 0640 ../src/contrib/config/daemon.json %{buildroot}/%{_sysconfdir}/isulad/daemon.json install -m 0640 ../src/contrib/config/seccomp_default.json %{buildroot}/%{_sysconfdir}/isulad/seccomp_default.json install -d $RPM_BUILD_ROOT/%{_sysconfdir}/default/isulad install -m 0640 ../src/contrib/config/config.json %{buildroot}/%{_sysconfdir}/default/isulad/config.json install -m 0640 ../src/contrib/config/systemcontainer_config.json %{buildroot}/%{_sysconfdir}/default/isulad/systemcontainer_config.json install -m 0550 ../src/contrib/sysmonitor/isulad-check.sh %{buildroot}/%{_sysconfdir}/default/isulad/isulad-check.sh mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysmonitor/process cp ../src/contrib/sysmonitor/isulad-monit $RPM_BUILD_ROOT/etc/sysmonitor/process install -d $RPM_BUILD_ROOT/%{_sysconfdir}/default/isulad/hooks install -m 0640 ../src/contrib/config/hooks/default.json %{buildroot}/%{_sysconfdir}/default/isulad/hooks/default.json install -d $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig install -p -m 0640 ../src/contrib/config/iSulad.sysconfig $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/iSulad %if 0%{?is_systemd} install -d $RPM_BUILD_ROOT/%{_unitdir} install -p -m 0640 ../src/contrib/init/isulad.service $RPM_BUILD_ROOT/%{_unitdir}/isulad.service %else install -d $RPM_BUILD_ROOT/%{_initddir} install -p -m 0640 ../src/contrib/init/isulad.init $RPM_BUILD_ROOT/%{_initddir}/isulad.init %endif %clean rm -rf %{buildroot} %pre # support update from lcrd to isulad, will remove in next version if [ "$1" = "2" ]; then %if 0%{?is_systemd} systemctl stop lcrd systemctl disable lcrd if [ -e %{_sysconfdir}/isulad/daemon.json ];then sed -i 's#/etc/default/lcrd/hooks#/etc/default/isulad/hooks#g' %{_sysconfdir}/isulad/daemon.json fi %else /sbin/chkconfig --del lcrd %endif fi %post if ! getent group isula > /dev/null; then groupadd --system isula fi if [ "$1" = "1" ]; then %if 0%{?is_systemd} systemctl enable isulad systemctl start isulad %else /sbin/chkconfig --add isulad %endif elif [ "$1" = "2" ]; then %if 0%{?is_systemd} # support update from lcrd to isulad, will remove in next version if [ -e %{_unitdir}/lcrd.service.rpmsave ]; then mv %{_unitdir}/lcrd.service.rpmsave %{_unitdir}/isulad.service sed -i 's/lcrd/isulad/g' %{_unitdir}/isulad.service fi systemctl status isulad | grep 'Active:' | grep 'running' if [ $? -eq 0 ]; then systemctl restart isulad else systemctl start isulad fi %else /sbin/service isulad status | grep 'Active:' | grep 'running' if [ $? -eq 0 ]; then /sbin/service isulad restart fi %endif fi if ! getent group isula > /dev/null; then groupadd --system isula fi %preun %if 0%{?is_systemd} %systemd_preun isulad %else if [ $1 -eq 0 ] ; then /sbin/service isulad stop >/dev/null 2>&1 /sbin/chkconfig --del isulad fi %endif %postun %if 0%{?is_systemd} %systemd_postun_with_restart isulad %else if [ "$1" -ge "1" ] ; then /sbin/service isulad condrestart >/dev/null 2>&1 || : fi %endif %files %attr(0600,root,root) %{_sysconfdir}/sysmonitor/process/isulad-monit %attr(0550,root,root) %{_sysconfdir}/default/isulad/isulad-check.sh %defattr(0640,root,root,0750) %{_sysconfdir}/isulad %{_sysconfdir}/isulad/* %{_sysconfdir}/default/* %defattr(-,root,root,-) %if 0%{?is_systemd} %{_unitdir}/isulad.service %attr(0640,root,root) %{_unitdir}/isulad.service %else %{_initddir}/isulad.init %attr(0640,root,root) %{_initddir}/isulad.init %endif %{_includedir}/isulad/* %attr(0755,root,root) %{_libdir}/pkgconfig %attr(0640,root,root) %{_libdir}/pkgconfig/isulad.pc %defattr(0755,root,root,0755) %{_bindir}/* %{_libdir}/* %attr(0640,root,root) %{_sysconfdir}/sysconfig/iSulad %attr(0640,root,root) %{_sysconfdir}/isulad/daemon.json %config(noreplace,missingok) %{_sysconfdir}/sysconfig/iSulad %config(noreplace,missingok) %{_sysconfdir}/isulad/daemon.json %if 0%{?is_systemd} %config(noreplace,missingok) %{_unitdir}/isulad.service %else %config(noreplace,missingok) %{_initddir}/isulad.init %endif %changelog * Tue Mar 23 2021 haozi007 - 20210323.094917.git7e6aa593 - Type: sync from upstream - ID: NA - SUG: NA - DESC: update from master * Tue Feb 2 2021 lifeng - 2.0.8-20210202.153251.gite082dcf3 - Type: sync from upstream - ID: NA - SUG: NA - DESC: update from master * Mon Jan 18 2020 lifeng - 2.0.8-20210118.195254.git077e10f2 - Type: sync from upstream - ID: NA - SUG: NA - DESC: update from master * Wed Dec 30 2020 lifeng - 2.0.8-20201230.155843.git6557a6eb - Type: update to v2.0.8 - ID: NA - SUG: NA - DESC: update from master * Mon Dec 7 2020 zhangxiaoyu - 2.0.7-20201207.151847.gita1fce123 - Type: update - ID: NA - SUG: NA - DESC: update from master * Sat Dec 5 2020 lifeng - 2.0.7-20201205.145752.gita461cc51 - Type: bugfix - ID:NA - SUG:NA - DESC: ignore list containers errors * Thu Dec 3 2020 haozi007 - 2.0.7-20201203.190902.git48f598fd - Type:update from master - ID:NA - SUG:NA - DESC: update from master * Sat Nov 28 2020 lifeng - 2.0.7-20201128.095506.git1e1623a5 - Type: bugfix - ID:NA - SUG:NA - DESC: Mounts: only qsort the configed mounts and make possible to bind mount /proc and /sys/fs. - related lxc PR fixed: - 1.add check whether have /proc mounts entry, if has, skip the auto - 2.mount cgroup before do mount entrys - 3.pass if the mount on top of /proc and the source of the mount is a proc filesystem * Wed Nov 25 2020 wangfengtu - 2.0.7-20201125.165149.git7d150c3c - Type: bugfix - ID:NA - SUG:NA - DESC: update from openeuler * Wed Nov 25 2020 wangfengtu - 2.0.6-20201125.160534.git9fb5e75d - Type: bugfix - ID:NA - SUG:NA - DESC: fix rpath not work * Thu Nov 12 2020 gaohuatao - 2.0.6-20201112.193005.git8a6b73c8 - Type: update from openeuler - ID:NA - SUG:NA - DESC: update from openeuler * Wed Oct 14 2020 lifeng68 - 2.0.6-20201014.152749.gitc8a43925 - Type: upgrade to v2.0.6 - ID:NA - SUG:NA - DESC: upgrade to v2.0.6 * Fri Sep 18 2020 - 2.0.5-20200918.112827.git9aea9b75 - Type:bugfix - ID:NA - SUG:NA - DESC: modify log level to warn * Mon Sep 14 2020 - 2.0.5-20200914.172527.gitae86920a - Type:bugfix - ID:NA - SUG:NA - DESC: remove unused config * Tue Sep 10 2020 - 2.0.5-20200910.144345.git71b1055b - Type:enhancement - ID:NA - SUG:NA - DESC: add chrpath * Fri Sep 04 2020 zhangxiaoyu - 2.0.5-20200904.114315.gitff1761c3 - Type:enhancement - ID:NA - SUG:NA - DESC: upgrade from v2.0.3 to v2.0.5 * Wed Sep 02 2020 YoungJQ - 2.0.3-20200902.114727.git6d945f26 - Type:enhancement - ID:NA - SUG:NA - DESC: modify source0 address