diff --git a/generate_package.sh b/generate_package.sh index ec90a54436ab853a7ce2b7c7de55e9d3991e7238..cd19e1a468685a3dd877d5ce7c1f788733dbc688 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="renoseven" +readonly REPO_URL="https://gitee.com/$REPO_PROVIDER/$REPO_NAME" +readonly REPO_BRANCH="master" -# 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.1.0.tar.gz index 545e40a74845ea01127d71af876878a177f49a08..4f4d5efea055925e2ffd6e806a96369c81a78725 100644 Binary files a/syscare-1.1.0.tar.gz and b/syscare-1.1.0.tar.gz differ diff --git a/syscare.spec b/syscare.spec index 16efada1415c1527f102432dd84f3044a8120e42..931b9a5695ed4c8e3970e4dfd8307c95c3c06049 100644 --- a/syscare.spec +++ b/syscare.spec @@ -1,19 +1,16 @@ +%define _debugsource_template %{nil} + %define build_version %{version}-%{release} %define kernel_devel_rpm %(echo $(rpm -q kernel-devel | head -n 1)) %define kernel_version %(echo $(rpm -q --qf "\%%{VERSION}" %{kernel_devel_rpm})) %define kernel_name %(echo $(rpm -q --qf "\%%{VERSION}-\%%{RELEASE}.\%%{ARCH}" %{kernel_devel_rpm})) -%define pkg_kmod %{name}-kmod -%define pkg_build %{name}-build -%define pkg_build_kmod %{pkg_build}-kmod -%define pkg_build_ebpf %{pkg_build}-ebpf - ############################################ ############ Package syscare ############### ############################################ Name: syscare Version: 1.1.0 -Release: 5 +Release: 6k Summary: System hot-fix service License: MulanPSL-2.0 and GPL-2.0-only URL: https://gitee.com/openeuler/syscare @@ -21,7 +18,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 +35,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} \ + -D_BUILD_UPATCH=0 \ + .. + make ################# Install ################## @@ -47,10 +48,6 @@ make 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 ################ %post mkdir -p /usr/lib/syscare/patches @@ -61,9 +58,9 @@ systemctl start syscare ############### PreUninstall ############### %preun +systemctl daemon-reload systemctl stop syscare systemctl disable syscare -systemctl daemon-reload ############## PostUninstall ############### %postun @@ -80,39 +77,8 @@ 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 ############################################ ########## Package syscare-build ########### @@ -120,7 +86,6 @@ echo "/lib/modules/%{kernel_name}/extra/syscare/upatch.ko" | /sbin/weak-modules %package build Summary: Syscare build tools. BuildRequires: elfutils-libelf-devel -Requires: (%{pkg_build_kmod} >= %{build_version} or %{pkg_build_ebpf} >= %{build_version}) Requires: coreutils Requires: patch Requires: kpatch @@ -133,22 +98,13 @@ Syscare patch building toolset. ############### PostInstall ################ %post build -mkdir -p /etc/syscare -systemctl daemon-reload -systemctl enable syscare-upatch -systemctl start syscare-upatch ############### PreUninstall ############### %preun build -systemctl stop syscare-upatch -systemctl disable syscare-upatch -systemctl daemon-reload ############## PostUninstall ############### %postun build if [ "$1" -eq 0 ] || { [ -n "$2" ] && [ "$2" -eq 0 ]; }; then - rm -rf /etc/syscare - rm -f /var/log/syscare/upatchd*.log* if [ -z "$(ls -A /var/log/syscare)" ]; then rm -rf /var/log/syscare fi @@ -158,80 +114,17 @@ fi %files build %defattr(-,root,root,-) %dir /usr/libexec/syscare -%attr(644,root,root) /usr/lib/systemd/system/syscare-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 -%attr(755,root,root) /usr/libexec/syscare/upatch-diff -%attr(755,root,root) /usr/libexec/syscare/as-hijacker -%attr(755,root,root) /usr/libexec/syscare/cc-hijacker -%attr(755,root,root) /usr/libexec/syscare/c++-hijacker -%attr(755,root,root) /usr/libexec/syscare/gcc-hijacker -%attr(755,root,root) /usr/libexec/syscare/g++-hijacker - -############################################ -######## Package syscare-build-kmod ######## -############################################ -%package build-kmod -Summary: Kernel module for syscare patch build tools. -BuildRequires: make gcc -BuildRequires: kernel-devel -Requires: kernel >= %{kernel_version} -Conflicts: %{pkg_build_ebpf} - -############### Description ################ -%description build-kmod -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 - -############### PreUninstall ############### -%preun build-kmod -# Nothing - -############## PostUninstall ############### -%postun build-kmod -echo "/lib/modules/%{kernel_name}/extra/syscare/upatch_hijacker.ko" | /sbin/weak-modules --remove-module --no-initramfs - -################## Files ################### -%files build-kmod -%dir /lib/modules/%{kernel_name}/extra/syscare -%attr(640,root,root) /lib/modules/%{kernel_name}/extra/syscare/upatch_hijacker.ko - -############################################ -######## Package syscare-build-ebpf ######## -############################################ -%package build-ebpf -Summary: eBPF for syscare patch build tools. -BuildRequires: make llvm clang bpftool -BuildRequires: libbpf libbpf-devel libbpf-static -Conflicts: %{pkg_build_kmod} - -############### Description ################ -%description build-ebpf -Syscare build dependency - eBPF. - -############### PostInstall ################ -%post build-ebpf - -############### PreUninstall ############### -%preun build-ebpf -# Nothing - -############## PostUninstall ############### -%postun build-ebpf -# Nothing - -################## Files ################### -%files build-ebpf -%attr(755,root,root) /usr/libexec/syscare/upatch_hijacker ############################################ ################ Change log ################ ############################################ %changelog +* Wed Oct 11 2023 renoseven - 1.1.0-6k +- Disable upatch support +* 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