%global _version 2.0.6 %global _release 20201112.193005.git8a6b73c8 %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 Patch6001: 0001-iSulad-modify-defattr-to-755-in-spec.patch Patch6002: 0002-Dockerfile-update-dockerfile-to-isulad-v2.0.6-use-mu.patch Patch6003: 0003-isulad-rt_isula_start-should-read-the-isulad-shim-pi.patch Patch6004: 0004-Realpath-add-get-realpath-for-root-and-state-dir.patch Patch6005: 0005-CI-add-testcase-for-root-and-run-dir-realpath.patch Patch6006: 0006-info-fix-typo-driverr-to-driver.patch Patch6007: 0007-create-fix-wrong-ret-code.patch Patch6008: 0008-add-iSulad-s-build-guide-for-RISC-V.patch Patch6009: 0009-add-non-root-group.patch Patch6010: 0010-add-nonroot-execute-CI.patch Patch6011: 0011-cni-support-extension-data-transmission.patch Patch6012: 0012-unpack-add-remove-target-file-in-handle-.wh.patch Patch6013: 0013-iSulad-internal-change.patch Patch6014: 0014-unlink-etc-dir-when-link-exists.patch Patch6015: 0015-support-variable-extension-cni-args.patch Patch6016: 0016-CI-for-support-variable-extension-cni-args.patch Patch6017: 0017-add-unlink-dir-comments.patch Patch6018: 0018-iSulad-add-ISULAD_TMPDIR-env-variable.patch Patch6019: 0019-CI-remove-test-data-from-iSulad-repo.patch Patch6020: 0020-add-ISULAD_TMPDIR-env-CI.patch Patch6021: 0021-iSulad-fix-memory-leak-in-inspect-grpc-service.patch Patch6022: 0022-clean-code-remove-unused-code-in-connect.patch Patch6023: 0023-add-newline-character-at-end-of-iSulad.sysconfig.patch Patch6024: 0024-clean-code-remove-unused-in-code.patch Patch6025: 0025-utils-add-fdatasync-when-do-atomic-write-file.patch Patch6026: 0026-network-support-mutlnetworks.patch Patch6027: 0027-add-testcases-for-mutl-networks.patch Patch6028: 0028-add-filter-to-get-only-non-sandbox-containers.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 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 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} install -m 0755 ./src/isula %{buildroot}/%{_bindir}/isula install -m 0755 ./src/isulad-shim %{buildroot}/%{_bindir}/isulad-shim install -m 0755 ./src/isulad %{buildroot}/%{_bindir}/isulad chrpath -d ./src/isula chrpath -d ./src/isulad-shim chrpath -d ./src/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 * 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