diff --git a/generate_package.sh b/generate_package.sh index ec90a54436ab853a7ce2b7c7de55e9d3991e7238..b9b3c407a8a486c31e502825b1b6969a1a32d64d 100755 --- a/generate_package.sh +++ b/generate_package.sh @@ -1,19 +1,25 @@ #!/bin/bash -e readonly REPO_NAME="syscare" -readonly REPO_URL="https://gitee.com/openeuler/$REPO_NAME" +readonly REPO_PROVIDER="openeuler" +readonly REPO_URL="https://gitee.com/$REPO_PROVIDER/$REPO_NAME" +readonly REPO_BRANCH="openEuler-22.03" -# Prepare +echo "Cloning source code..." repo_version=$(grep "Version" "$REPO_NAME.spec" | head -n 1 | awk -F ' ' '{print $NF}') repo_dir="$REPO_NAME-$repo_version" rm -rf "$REPO_NAME" "$repo_dir" git clone "$REPO_URL" -# Prepare package build requirements +echo "Prepare build requirements..." pushd "$REPO_NAME" -cargo vendor --respect-source-config +echo "Checking out dest branch..." +git checkout "$REPO_BRANCH" + +echo "Vendoring dependencies..." +cargo vendor --respect-source-config --sync upatch/Cargo.toml mkdir -p .cargo cat << EOF > .cargo/config.toml @@ -26,10 +32,12 @@ EOF popd -# Create tarball +echo "Compressing package..." mv "$REPO_NAME" "$repo_dir" -tar -czvf "$repo_dir.tar.gz" "$repo_dir" +tar -czf "$repo_dir.tar.gz" "$repo_dir" -# Clean up +echo "Cleaning up..." rm -rf "$repo_dir" +echo "Done" + diff --git a/syscare-1.1.0.tar.gz b/syscare-1.2.0.tar.gz similarity index 55% rename from syscare-1.1.0.tar.gz rename to syscare-1.2.0.tar.gz index 545e40a74845ea01127d71af876878a177f49a08..b9bae513182743546b47ec55c69ea2429bec54e3 100644 Binary files a/syscare-1.1.0.tar.gz and b/syscare-1.2.0.tar.gz differ diff --git a/syscare.spec b/syscare.spec index 16efada1415c1527f102432dd84f3044a8120e42..be4ad1c7bd085cc7167f1019ba81a9cb0ab458be 100644 --- a/syscare.spec +++ b/syscare.spec @@ -12,8 +12,8 @@ ############ Package syscare ############### ############################################ Name: syscare -Version: 1.1.0 -Release: 5 +Version: 1.2.0 +Release: 1 Summary: System hot-fix service License: MulanPSL-2.0 and GPL-2.0-only URL: https://gitee.com/openeuler/syscare @@ -21,7 +21,6 @@ Source0: %{name}-%{version}.tar.gz BuildRequires: cmake >= 3.14 make BuildRequires: rust >= 1.51 cargo >= 1.51 BuildRequires: gcc gcc-c++ -Requires: %{pkg_kmod} >= %{build_version} Requires: coreutils systemd Requires: kpatch-runtime @@ -39,7 +38,12 @@ The host can fix the system problem without rebooting. mkdir -p build cd build -cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_VERSION=%{build_version} -DKERNEL_VERSION=%{kernel_name} .. +cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_VERSION=%{build_version} \ + -DKERNEL_VERSION=%{kernel_name} \ + .. + make ################# Install ################## @@ -48,7 +52,6 @@ cd build %make_install mkdir -p %{buildroot}/lib/modules/%{kernel_name}/extra/syscare -mv -f %{buildroot}/usr/libexec/syscare/upatch.ko %{buildroot}/lib/modules/%{kernel_name}/extra/syscare mv -f %{buildroot}/usr/libexec/syscare/upatch_hijacker.ko %{buildroot}/lib/modules/%{kernel_name}/extra/syscare ############### PostInstall ################ @@ -61,9 +64,9 @@ systemctl start syscare ############### PreUninstall ############### %preun +systemctl daemon-reload systemctl stop syscare systemctl disable syscare -systemctl daemon-reload ############## PostUninstall ############### %postun @@ -80,39 +83,9 @@ fi %defattr(-,root,root,-) %dir /usr/libexec/syscare %attr(644,root,root) /usr/lib/systemd/system/syscare.service -%attr(755,root,root) /usr/bin/syscare %attr(755,root,root) /usr/bin/syscared -%attr(755,root,root) /usr/libexec/syscare/upatch-tool - -############################################ -########## Package syscare-kmod ############ -############################################ -%package kmod -Summary: Syscare kernel module. -BuildRequires: make gcc -BuildRequires: kernel-devel -Requires: kernel >= %{kernel_version} - -############### Description ################ -%description kmod -Syscare dependency - kernel module. - -############### PostInstall ################ -%post kmod -echo "/lib/modules/%{kernel_name}/extra/syscare/upatch.ko" | /sbin/weak-modules --add-module --no-initramfs - -############### PreUninstall ############### -%preun kmod -# Nothing - -############## PostUninstall ############### -%postun kmod -echo "/lib/modules/%{kernel_name}/extra/syscare/upatch.ko" | /sbin/weak-modules --remove-module --no-initramfs - -################## Files ################### -%files kmod -%dir /lib/modules/%{kernel_name}/extra/syscare -%attr(640,root,root) /lib/modules/%{kernel_name}/extra/syscare/upatch.ko +%attr(755,root,root) /usr/bin/syscare +%attr(755,root,root) /usr/libexec/syscare/upatch-manage ############################################ ########## Package syscare-build ########### @@ -135,14 +108,14 @@ Syscare patch building toolset. %post build mkdir -p /etc/syscare systemctl daemon-reload -systemctl enable syscare-upatch -systemctl start syscare-upatch +systemctl enable upatch +systemctl start upatch ############### PreUninstall ############### %preun build -systemctl stop syscare-upatch -systemctl disable syscare-upatch systemctl daemon-reload +systemctl stop upatch +systemctl disable upatch ############## PostUninstall ############### %postun build @@ -158,7 +131,7 @@ fi %files build %defattr(-,root,root,-) %dir /usr/libexec/syscare -%attr(644,root,root) /usr/lib/systemd/system/syscare-upatch.service +%attr(644,root,root) /usr/lib/systemd/system/upatch.service %attr(755,root,root) /usr/bin/upatchd %attr(755,root,root) /usr/libexec/syscare/syscare-build %attr(755,root,root) /usr/libexec/syscare/upatch-build @@ -186,6 +159,7 @@ Syscare build dependency - kernel module. ############### PostInstall ################ %post build-kmod echo "/lib/modules/%{kernel_name}/extra/syscare/upatch_hijacker.ko" | /sbin/weak-modules --add-module --no-initramfs +depmod ############### PreUninstall ############### %preun build-kmod @@ -194,6 +168,7 @@ echo "/lib/modules/%{kernel_name}/extra/syscare/upatch_hijacker.ko" | /sbin/weak ############## PostUninstall ############### %postun build-kmod echo "/lib/modules/%{kernel_name}/extra/syscare/upatch_hijacker.ko" | /sbin/weak-modules --remove-module --no-initramfs +depmod ################## Files ################### %files build-kmod @@ -232,6 +207,11 @@ Syscare build dependency - eBPF. ################ Change log ################ ############################################ %changelog +* Wed Nov 22 2023 renoseven - 1.2.0-1 +- Fix various issue +* Wed Oct 11 2023 renoseven - 1.1.0-6 +- Support build patch for kernel moudules +- Fix various issue * Fri Sep 22 2023 renoseven - 1.1.0-5 - Fix various issue * Thu Sep 21 2023 renoseven - 1.1.0-4