#Global macro or variabl
%define  debug_package %{nil}

#Basic Information
Name:           syscontainer-tools
Version:        0.9
Release:        49
Summary:        syscontainer tools for IT, work with iSulad
License:        Mulan PSL v2
URL:            https://gitee.com/openeuler/syscontainer-tools
Source0:        https://gitee.com/openeuler/syscontainer-tools/repository/archive/v%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-root

Patch1:      0001-fix-failed-build-with-golang-1.15.5.patch
Patch2:      0002-syscontainer-tools-build-security-option.patch
Patch3:      0003-add-dt-test.patch
Patch4:      0004-enable-external-linkmode-for-cgo-build.patch

#Dependency
BuildRequires: glibc-static 
BuildRequires: golang > 1.6
Requires: iSulad
Requires: util-linux

%description
This is syscontainer tools, to make it work, you need a isulad and util-linux

#Build sections
%prep
%autosetup -n %{name} -Sgit -p1

%build
make init && make
strip build/syscontainer-hooks
strip build/syscontainer-tools

%install
HOOK_DIR=$RPM_BUILD_ROOT/var/lib/isulad/hooks
ISULAD_TOOLS_DIR=$RPM_BUILD_ROOT/usr/local/bin
ISULAD_TOOLS_WRAPPER=$RPM_BUILD_ROOT/lib/udev

mkdir -p -m 0700 ${HOOK_DIR}
mkdir -p -m 0750 ${ISULAD_TOOLS_DIR}
mkdir -p -m 0750 ${ISULAD_TOOLS_WRAPPER}

install -m 0750 build/syscontainer-hooks ${HOOK_DIR}
install -m 0750 build/syscontainer-tools ${ISULAD_TOOLS_DIR}
install -m 0750 hack/syscontainer-tools_wrapper  ${ISULAD_TOOLS_WRAPPER}/syscontainer-tools_wrapper

%check
make localtest

#Install and uninstall scripts
%pre

%preun

%post
GRAPH=`isula info | grep -Eo "iSulad Root Dir:.+" | grep -Eo "\/.*"` 
if [ "$GRAPH" == "" ]; then
    GRAPH="/var/lib/isulad"
fi

if [[ "$GRAPH" != "/var/lib/isulad" ]]; then
    mkdir -p -m 0550 $GRAPH/hooks
    install -m 0550 -p /var/lib/isulad/hooks/syscontainer-hooks $GRAPH/hooks

    echo
    echo "=================== WARNING! ================================================"
    echo " 'iSulad Root Dir' is $GRAPH, move /var/lib/isulad/hooks/syscontainer-hooks to  $GRAPH/hooks"
    echo "============================================================================="
    echo
fi
HOOK_SPEC=/etc/syscontainer-tools
HOOK_DIR=${GRAPH}/hooks
mkdir -p -m 0750 ${HOOK_SPEC}
mkdir -p -m 0550 ${HOOK_DIR}
cat << EOF > ${HOOK_SPEC}/hookspec.json
{
        "prestart": [
        {
                "path": "${HOOK_DIR}/syscontainer-hooks",
                "args": ["syscontainer-hooks", "--state", "prestart"],
                "env": []
        }
        ],
        "poststart":[
        {
                "path": "${HOOK_DIR}/syscontainer-hooks",
                "args": ["syscontainer-hooks", "--state", "poststart"],
                "env": []
        }
	],
        "poststop":[
        {
                "path": "${HOOK_DIR}/syscontainer-hooks",
                "args": ["syscontainer-hooks", "--state", "poststop"],
                "env": []
        }
	]
}
EOF
chmod 0640 ${HOOK_SPEC}/hookspec.json

%postun

#Files list
%files
%defattr(0550,root,root,0550)
/usr/local/bin/syscontainer-tools
%attr(0550,root,root) /var/lib/isulad/hooks
%attr(0550,root,root) /var/lib/isulad/hooks/syscontainer-hooks
%attr(0550,root,root) /lib/udev/syscontainer-tools_wrapper


#Clean section
%clean 
rm -rfv %{buildroot}

%changelog
* Mon Nov 13 2023 yangjiaqi <yangjiaqi16@huawei.com> - 0.9-49
- fix compile option

* Wed Feb 15 2023 yangjiaqi <yangjiaqi16@huawei.com> - 0.9-48
- add dt test for util.go

* Mon Feb 08  2021 zhangsong234<zhangsong34@huawei.com> - 0.9-47
- update version to 0.9-47

* Wed Dec 23  2020 wangkang101<873229877@qq.com> - 0.9-3
- fix failed build with golang 1.15.5

* Mon Sep 07 2020 wangkang101<873229877@qq.com> - 0.9-2
- modify url of source0

* Tue Apr 26 2020 Zhangsong<zhangsong34@huawei.com> - 0.9-1
- release version 0.9
