From bd4248de7dcdc62c55681bcce1776340f11a5779 Mon Sep 17 00:00:00 2001 From: Funda Wang Date: Tue, 21 Jan 2025 22:42:35 +0800 Subject: [PATCH] adopt to new cmake macro --- ...r-with-protobuf-25.1-and-grpc-1.60.x.patch | 46 ++++++++++-- iSulad.spec | 74 +++++++++---------- 2 files changed, 74 insertions(+), 46 deletions(-) diff --git a/0002-fix-compile-error-with-protobuf-25.1-and-grpc-1.60.x.patch b/0002-fix-compile-error-with-protobuf-25.1-and-grpc-1.60.x.patch index f43ce86..7210198 100644 --- a/0002-fix-compile-error-with-protobuf-25.1-and-grpc-1.60.x.patch +++ b/0002-fix-compile-error-with-protobuf-25.1-and-grpc-1.60.x.patch @@ -123,32 +123,64 @@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 860447de..d1bc65f9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -85,10 +85,8 @@ target_link_libraries(libisula_client libisulad_tools) +@@ -42,13 +42,14 @@ + ) + + add_library(libisulad_tools ${LIBTYPE} ${UTILS_SRCS}) ++target_link_options(libisulad_tools PRIVATE -Wl,--as-needed) + target_include_directories(libisulad_tools + PUBLIC ${SHARED_INCS} + PUBLIC ${ISULA_LIBUTILS_INCLUDE_DIR} + ) + + set_target_properties(libisulad_tools PROPERTIES PREFIX "") +-target_link_libraries(libisulad_tools ${ZLIB_LIBRARY} ${ISULA_LIBUTILS_LIBRARY} ${CRYPTO_LIBRARY} ${CAP_LIBRARY}) ++target_link_libraries(libisulad_tools ${ZLIB_LIBRARY} ${ISULA_LIBUTILS_LIBRARY} ${CRYPTO_LIBRARY} ${CAP_LIBRARY} ${PROTOBUF_LIBRARY} ${ISULAD_ABSL_USED_TARGETS}) + + if (ENABLE_OCI_IMAGE) + target_link_libraries(libisulad_tools ${LIBARCHIVE_LIBRARY}) +@@ -71,6 +72,7 @@ + ${CLIENT_SRCS} + ) + ++target_link_options(libisula_client PRIVATE -Wl,--as-needed) + target_include_directories(libisula_client PUBLIC + ${SHARED_INCS} + ${CLIENT_INCS} +@@ -84,11 +86,7 @@ + if (GRPC_CONNECTOR) target_link_libraries(libisula_client -Wl,--as-needed -lstdc++) - target_link_libraries(libisula_client -Wl,--as-needed ${PROTOBUF_LIBRARY}) +- target_link_libraries(libisula_client -Wl,--as-needed ${PROTOBUF_LIBRARY}) - target_link_libraries(libisula_client -Wl,--no-as-needed ${GRPC_PP_REFLECTION_LIBRARY} ${GRPC_PP_LIBRARY} ${GRPC_LIBRARY} ${GPR_LIBRARY}) - if(ABSL_SYNC_LIB) - target_link_libraries(libisula_client -Wl,--no-as-needed ${ABSL_SYNC_LIB}) - endif() -+ target_link_libraries(libisula_client -Wl,--as-needed ${GRPC_PP_REFLECTION_LIBRARY} ${GRPC_PP_LIBRARY} ${GRPC_LIBRARY} ${GPR_LIBRARY}) -+ target_link_libraries(libisula_client -Wl,--as-needed ${ISULAD_ABSL_USED_TARGETS}) ++ target_link_libraries(libisula_client ${GRPC_PP_REFLECTION_LIBRARY} ${GRPC_PP_LIBRARY} ${GRPC_LIBRARY} ${GPR_LIBRARY}) else() target_link_libraries(libisula_client -ldl libhttpclient) set_target_properties(libisula_client PROPERTIES LINKER_LANGUAGE "C") -@@ -182,13 +180,11 @@ endif() +@@ -100,6 +98,7 @@ + add_executable(isula + ${ISULA_SRCS} + ) ++target_link_options(isula PRIVATE -Wl,--as-needed) + target_include_directories(isula PUBLIC ${ISULA_INCS} ${SHARED_INCS}) + target_link_libraries(isula libisula_client ${LIBYAJL_LIBRARY}) + if (GRPC_CONNECTOR) +@@ -182,13 +181,11 @@ if (GRPC_CONNECTOR) target_link_libraries(isulad -Wl,--as-needed -lstdc++) target_link_libraries(isulad -Wl,--as-needed ${WEBSOCKET_LIBRARY} ${PROTOBUF_LIBRARY}) - target_link_libraries(isulad -Wl,--no-as-needed ${GRPC_PP_REFLECTION_LIBRARY} ${GRPC_PP_LIBRARY} ${GRPC_LIBRARY} ${GPR_LIBRARY}) -+ target_link_libraries(isulad -Wl,--as-needed ${GRPC_PP_REFLECTION_LIBRARY} ${GRPC_PP_LIBRARY} ${GRPC_LIBRARY} ${GPR_LIBRARY}) ++ target_link_libraries(isulad ${GRPC_PP_REFLECTION_LIBRARY} ${GRPC_PP_LIBRARY} ${GRPC_LIBRARY} ${GPR_LIBRARY}) if (ENABLE_METRICS) target_link_libraries(isulad ${EVHTP_LIBRARY} ${EVENT_LIBRARY}) endif() - if(ABSL_SYNC_LIB) - target_link_libraries(isulad -Wl,--no-as-needed ${ABSL_SYNC_LIB}) - endif() -+ target_link_libraries(isulad -Wl,--as-needed ${ISULAD_ABSL_USED_TARGETS}) ++ target_link_libraries(isulad ${ISULAD_ABSL_USED_TARGETS}) else() message("Restful iSulad") target_link_libraries(isulad ${EVHTP_LIBRARY} ${EVENT_LIBRARY}) diff --git a/iSulad.spec b/iSulad.spec index d9e894f..9fd9045 100644 --- a/iSulad.spec +++ b/iSulad.spec @@ -1,5 +1,5 @@ %global _version 2.1.5 -%global _release 18 +%global _release 19 %global is_systemd 1 %global enable_criv1 1 %global enable_cdi 1 @@ -19,7 +19,6 @@ 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} Patch0001: 0001-code-improve-for-sandbox.cc.patch Patch0002: 0002-fix-compile-error-with-protobuf-25.1-and-grpc-1.60.x.patch @@ -223,10 +222,10 @@ Requires: sqlite BuildRequires: gtest-devel gmock-devel %endif -%define lcrver_lower 2.1.4-0 -%define lcrver_upper 2.1.5-0 +%define lcrver 2.1.4 -BuildRequires: libisula-devel > %{lcrver_lower} libisula-devel < %{lcrver_upper} +BuildRequires: pkgconfig(libisula) = %{lcrver} +BuildRequires: pkgconfig(lcr) = %{lcrver} BuildRequires: cmake gcc-c++ yajl-devel BuildRequires: grpc grpc-plugins grpc-devel protobuf-devel ncurses-devel BuildRequires: libcurl libcurl-devel libarchive-devel device-mapper-devel @@ -240,7 +239,7 @@ BuildRequires: lib-shim-v2 lib-shim-v2-devel BuildRequires: isula-rust-extensions-devel %endif -Requires: libisula > %{lcrver_lower} libisula < %{lcrver_upper} +Requires: libisula = %{lcrver} Requires: grpc protobuf Requires: libcurl Requires: libseccomp @@ -263,8 +262,6 @@ Runtime Daemon, written by C. %autosetup -n iSulad-v%{_version} -Sgit -p1 %build -mkdir -p build -cd build %cmake \ -DDEBUG=ON \ -DCMAKE_SKIP_RPATH=TRUE \ @@ -290,73 +287,66 @@ cd build %endif -DENABLE_GRPC_REMOTE_CONNECT=OFF \ -DENABLE_GRPC=ON \ - -DCMAKE_CXX_STANDARD=%{cpp_std} \ - ../ + -DCMAKE_CXX_STANDARD=%{cpp_std} -sed -i "10 a\# undef linux" grpc/src/api/services/cri/v1alpha/api.pb.h +sed -i "10 a\# undef linux" %{__cmake_builddir}/grpc/src/api/services/cri/v1alpha/api.pb.h %if 0%{?enable_criv1} -sed -i "10 a\# undef linux" grpc/src/api/services/cri/v1/api_v1.pb.h +sed -i "10 a\# undef linux" %{__cmake_builddir}/grpc/src/api/services/cri/v1/api_v1.pb.h %endif -%make_build +%cmake_build -%check %if %{defined openeuler} -cd build +%check # registry_images_ut and volume_ut must run with root user -ctest -E "registry_images_ut|volume_ut" +%ctest -E "registry_images_ut|volume_ut" %endif %install -rm -rf %{buildroot} -cd build install -d $RPM_BUILD_ROOT/%{_libdir} -install -m 0755 ./src/libisula_client.so %{buildroot}/%{_libdir}/libisula_client.so -install -m 0755 ./src/utils/http/libhttpclient.so %{buildroot}/%{_libdir}/libhttpclient.so -install -m 0755 ./src/libisulad_tools.so %{buildroot}/%{_libdir}/libisulad_tools.so +install -m 0755 %{__cmake_builddir}/src/libisula_client.so %{buildroot}/%{_libdir}/libisula_client.so +install -m 0755 %{__cmake_builddir}/src/utils/http/libhttpclient.so %{buildroot}/%{_libdir}/libhttpclient.so +install -m 0755 %{__cmake_builddir}/src/libisulad_tools.so %{buildroot}/%{_libdir}/libisulad_tools.so install -d $RPM_BUILD_ROOT/%{_libdir}/pkgconfig -install -m 0640 ./conf/isulad.pc %{buildroot}/%{_libdir}/pkgconfig/isulad.pc +install -m 0640 %{__cmake_builddir}/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 %{__cmake_builddir}/src/isula %{buildroot}/%{_bindir}/isula +install -m 0755 %{__cmake_builddir}/src/isulad-shim %{buildroot}/%{_bindir}/isulad-shim -install -m 0755 ./src/isulad %{buildroot}/%{_bindir}/isulad +install -m 0755 %{__cmake_builddir}/src/isulad %{buildroot}/%{_bindir}/isulad install -d $RPM_BUILD_ROOT/%{_includedir}/isulad install -d $RPM_BUILD_ROOT/%{_sysconfdir}/isulad -install -m 0640 ../src/contrib/config/daemon.json %{buildroot}/%{_sysconfdir}/isulad/daemon.json -install -m 0440 ../src/contrib/config/daemon_constants.json %{buildroot}/%{_sysconfdir}/isulad/daemon_constants.json -install -m 0640 ../src/contrib/config/seccomp_default.json %{buildroot}/%{_sysconfdir}/isulad/seccomp_default.json +install -m 0640 %{_vpath_srcdir}/src/contrib/config/daemon.json %{buildroot}/%{_sysconfdir}/isulad/daemon.json +install -m 0440 %{_vpath_srcdir}/src/contrib/config/daemon_constants.json %{buildroot}/%{_sysconfdir}/isulad/daemon_constants.json +install -m 0640 %{_vpath_srcdir}/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 +install -m 0640 %{_vpath_srcdir}/src/contrib/config/config.json %{buildroot}/%{_sysconfdir}/default/isulad/config.json +install -m 0640 %{_vpath_srcdir}/src/contrib/config/systemcontainer_config.json %{buildroot}/%{_sysconfdir}/default/isulad/systemcontainer_config.json +install -m 0550 %{_vpath_srcdir}/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 +cp %{_vpath_srcdir}/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 -m 0640 %{_vpath_srcdir}/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 +install -p -m 0640 %{_vpath_srcdir}/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 +install -p -m 0640 %{_vpath_srcdir}/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 +install -p -m 0640 %{_vpath_srcdir}/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 @@ -463,6 +453,12 @@ fi %endif %changelog +* Tue Jan 21 2025 Funda Wang - 2.1.5-19 +- Type: bugfix +- ID: NA +- SUG: NA +- DESC: adopt to new cmake macro, and fix linkage of libisulad_tools + * Mon Dec 30 2024 jingxiaolu - 2.1.5-18 - Type: bugfix - ID: NA -- Gitee